diff options
Diffstat (limited to 'newlib')
1520 files changed, 282237 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog new file mode 100644 index 000000000..b4147c2aa --- /dev/null +++ b/newlib/ChangeLog @@ -0,0 +1,6803 @@ +Mon Feb 21 11:43:50 2000 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/vfprintf.c (VFPRINTF): Added CHECK_INIT + call prior to calling _VFPRINTF_R so reentrant data area is set. + (_VFPRINTF_R): Removed now extraneous CHECK_INIT call. + +Thu Feb 17 01:42:50 2000 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/stdio/vfscanf.c (limits.h): #include. + (MAX_LONG_LEN): #define. + (__svfscanf): Handle floating point numbers with arbitrary amounts + of leading zeroes. + +2000-02-15 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (_fstat): Initialise all fields to + zero. Set the blocksize to 1024/ + +Thu Jan 20 18:57:00 2000 Fernando Nasser <fnasser@redhat.com> + + * setvbuf.c (setvbuf): Set size to BUFSIZ when passed a zero size + with line buffering. + +Mon Jan 10 18:43:00 2000 Jeff Johnston <jjohnstn@cygnus.com> + + * acinclude.m4: Changed include directory for winsup headers. + * aclocal.m4 configure libc/aclocal.m4 + libc/configure libc/ctype/Makefile.in libc/errno/Makefile.in + libc/locale/Makefile.in libc/machine/aclocal.m4 + libc/machine/configure libc/machine/a29k/aclocal.m4 + libc/machine/a29k/configure libc/machine/arm/aclocal.m4 + libc/machine/arm/configure libc/machine/d10v/aclocal.m4 + libc/machine/d10v/configure libc/machine/d30v/aclocal.m4 + libc/machine/d30v/configure libc/machine/fr30/aclocal.m4 + libc/machine/fr30/configure + libc/machine/h8300/aclocal.m4 + libc/machine/h8300/configure libc/machine/h8500/aclocal.m4 + libc/machine/h8500/configure libc/machine/hppa/aclocal.m4 + libc/machine/hppa/configure libc/machine/i386/aclocal.m4 + libc/machine/i386/configure libc/machine/i960/aclocal.m4 + libc/machine/i960/configure libc/machine/m32r/aclocal.m4 + libc/machine/m32r/configure libc/machine/m68k/aclocal.m4 + libc/machine/m68k/configure libc/machine/m88k/aclocal.m4 + libc/machine/m88k/configure libc/machine/mips/aclocal.m4 + libc/machine/mips/configure libc/machine/mn10200/aclocal.m4 + libc/machine/mn10200/configure libc/machine/mn10300/aclocal.m4 + libc/machine/mn10300/configure libc/machine/necv70/aclocal.m4 + libc/machine/necv70/configure libc/machine/powerpc/aclocal.m4 + libc/machine/powerpc/configure + libc/machine/sh/aclocal.m4 + libc/machine/sh/configure libc/machine/sparc/aclocal.m4 + libc/machine/sparc/configure + libc/machine/tic80/aclocal.m4 libc/machine/tic80/configure + libc/machine/v850/aclocal.m4 libc/machine/v850/configure + libc/machine/w65/aclocal.m4 libc/machine/w65/configure + libc/machine/z8k/aclocal.m4 libc/machine/z8k/configure + libc/misc/Makefile.in libc/posix/Makefile.in + libc/reent/Makefile.in + libc/signal/Makefile.in + libc/string/Makefile.in libc/sys/aclocal.m4 libc/sys/configure + libc/sys/a29khif/aclocal.m4 libc/sys/a29khif/configure + libc/sys/arm/Makefile.in libc/sys/arm/aclocal.m4 + libc/sys/arm/configure libc/sys/cygwin/aclocal.m4 + libc/sys/cygwin/configure libc/sys/d10v/Makefile.in + libc/sys/d10v/aclocal.m4 libc/sys/d10v/configure + libc/sys/decstation/aclocal.m4 libc/sys/decstation/configure + libc/sys/go32/aclocal.m4 libc/sys/go32/configure + libc/sys/h8300hms/aclocal.m4 libc/sys/h8300hms/configure + libc/sys/h8500hms/aclocal.m4 libc/sys/h8500hms/configure + libc/sys/m88kbug/aclocal.m4 libc/sys/m88kbug/configure + libc/sys/netware/aclocal.m4 libc/sys/netware/configure + libc/sys/rtems/aclocal.m4 libc/sys/rtems/configure + libc/sys/sh/Makefile.in libc/sys/sh/aclocal.m4 + libc/sys/sh/configure libc/sys/sparc64/aclocal.m4 + libc/sys/sparc64/configure libc/sys/sun4/aclocal.m4 + libc/sys/sun4/configure libc/sys/sysmec/aclocal.m4 + libc/sys/sysmec/configure libc/sys/sysnec810/aclocal.m4 + libc/sys/sysnec810/configure libc/sys/sysnecv850/aclocal.m4 + libc/sys/sysnecv850/configure libc/sys/sysvi386/aclocal.m4 + libc/sys/sysvi386/configure libc/sys/sysvnecv70/aclocal.m4 + libc/sys/sysvnecv70/configure libc/sys/tic80/aclocal.m4 + libc/sys/tic80/configure libc/sys/w65/aclocal.m4 + libc/sys/w65/configure libc/sys/z8ksim/aclocal.m4 + libc/sys/z8ksim/configure libc/syscalls/Makefile.in + libc/time/Makefile.in libc/unix/Makefile.in libm/aclocal.m4 + libm/configure: Regenerated. + +Mon Jan 10 18:43:46 2000 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdlib/putenv_r.c (_putenv_r): New file. + * libc/stdlib/strdup_r.c (_strdup_r): New file. + * libc/include/string.h: Added _strdup_r. + * libc/stdlib/putenv.c: Added call to reentrant version. + * libc/stdlib/strdup.c: Ditto. + * libc/stdlib/Makefile.am: Added _putenv_r and _unsetenv_r. + * libc/include/stdlib.h: Ditto. + * libc/stdlib/Makefile.in: Regenerated. + * libc/string/Makefile.in: Regenerated. + * libc/stdlib/setenv.c: Added reentrant version of unsetenv. + * libc/stdlib/setenv_r.c: Added unsetenv_r and changed memory + management calls to reentrant versions. + * libc/stdlib/wcstombs.c: Added #ifndef _REENT_ONLY wrapper. + * libc/stdlib/wctomb.c: Ditto. + * libc/stdlib/mblen.c: Ditto. + * libc/stdlib/mbstowcs.c: Ditto. + * libc/stdlib/mbtowc.c: Ditto. + * libc/stdlib/getenv.c: Ditto. + * libc/reent/reent.tex: Added references to _putenv_r, _setenv_r, + and _strdup_r. + +Thu Jan 6 15:33:46 2000 Christopher Faylor <cgf@cygnus.com> + + patch from Corinna Vinschen <corinna@vinschen.de> + * libc/sys/cygwin/sys/param.h: Define NGROUP_MAX as 16. + +Mon Jan 03 14:36:00 2000 Ranjith Kumaran <ranjith@cygnus.com> + + * libm/mathfp/s_atangent.c: Fix exponent calculation. + * libm/mathfp/s_ldexp.c: Ditto. + * libm/mathfp/sf_atangent.c: Ditto. + * libm/mathfp/sf_ldexp.c: Ditto. + +Tue Dec 14 5:42:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/machine/i960/setjmp.S: fix typo leaving .link_pix uncommented + * libc/include/locale.h: define NULL to be 0. + +Tue Dec 7 15:41:45 1999 Jim Wilson <wilson@cygnus.com> + + * libc/sys/sh/syscalls.c (stack_ptr): Move definition before first + function. + +Wed Dec 1 17:39:29 1999 Jeffrey A Law (law@cygnus.com) + + * libc/machine/mn10300/setjmp.S: Handle am33. + +1999-11-26 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c: Add function prototypes. + (stack_ptr): Move declaration before function definitions. + +Sat Nov 20 17:13:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * NEWS: Updated version information. + * README: Ditto. + +Tue Nov 09 12:19:21 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/i386/strchr.S: Fixed alignment test. + +Thu Oct 28 05:30:46 1999 Andrew Cagney <cagney@makita.cygnus.com> + + * libc/sys/d10v/crt0.S (_start): Construct a real stack frame. + +Thu Oct 28 15:29:11 1999 Andrew Cagney <cagney@b1.cygnus.com> + + * libc/sys/d10v/crt0.S (_start): Initialize both SPI and SPU + ensuring that there is space between the two. + +Thu Oct 14 13:39:21 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/stdio/flags.c: Conditionalize check for 't' for cygwin case + only. + +1999-10-08 Vadim Egorov <egorovv@1c.ru> + + * libc/include/stdlib.h: add ptsname, grantpt, unlockpt to cygwin + section + +Sat Oct 2 02:02:00 MEST 1999 Ralf Corsepius <corsepiu@faw.uni-ulm.de> + + * libc/machine/sh/asm.h: Added __SH4_SINGLE__ to DELAYED_BRANCHES + * libc/machine/sh/memcpy.S: Fix line wrapping in SL macro + +Fri Oct 1 13:17:59 CDT 1999 <joel@OARcorp.com> + * libc/include/grp.h: Added getgrnam_r and getgrgid_r prototypes + per POSIX 1003.1b. + * libc/include/pwd.h: Added getpwnam_r and getpwuid_r prototypes + per POSIX 1003.1b. + +1999-09-13 DJ Delorie <dj@cygnus.com> + + * libc/stdio/mktemp.c (_gettemp): on cygwin, check for EACCESS + also. + +Thu Sep 9 15:31:00 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * setvbuf.c (setvbuf): When mallocing a buffer of size BUFSIZ, + also note BUFSIZ as its size. + +Tue Sep 7 17:15:00 1999 Joel Sherrill <joel@OARcorp.com> + + * configure.host: Corrected feature defines for RTEMS. + * libc/include/sys/stat.h: Added protototype for RTEMS mknod. + * libc/include/sys/stat.h: mkfifo() should take const path arg. + * libc/include/sys/unistd.h: pathconf() should take const path arg. + Enabled usleep(), ftruncate(), and truncate() prototypes for RTEMS. + Added defines for _POSIX_JOB_CONTROL, _POSIX_SAVED_IDS, and + _POSIX_VERSION for RTEMS. Added defines for _PC_ASYNC_IO, + _PC_PRIO_IO, and _PC_SYNC_IO. + * libc/machine/m68k/Makefile.am: Added strcpy.c and strlen.c. + * libc/machine/m68k/Makefile.in: Regenerated. + * libc/machine/m68k/strcpy.c: New file. + * libc/machine/m68k/strlen.c: New file. + * libc/stdio/tmpnam.c: Always make the returned name usable. + * libc/sys/rtems/crt0.c: New version that passes all autoconf tests. + * libc/sys/rtems/sys/dirent.h: New file. + * libc/sys/rtems/sys/types.h: Added dev_t. + +Tue Sep 7 17:15:00 1999 Jay Kulpinski <jskulpin@eng01.gdds.com> + + * libc/stdlib/mprec.c: Fixed unitialized variable problem. + +Fri Sep 3 12:35:20 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/ftell.c (ftell): Backing off Joern's fix and + my patch. + +Thu Sep 2 22:05:20 1999 Christopher Faylor <cgf@cygnus.com> + + patch from Jeff Johnston <jjohnstn@cygnus.com> + * libc/stdio/ftell.c (ftell): Avoid using buffer position when the + buffer is not in a useful state. + +1999-09-01 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (_link): Add stub. + +Fri Aug 27 23:09:09 1999 J"orn Rennecke <amylaar@cygnus.co.uk> + + * ftell.c (ftell): Use actual position within buffer for text mode. + * findfp.c (std): Initialize ptr->_bf._size. + +Wed Aug 18 18:48:02 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/unistd.h: Add nice() declaration. + +1999-08-09 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/crt0.S (change_mode): Rename to __change_mode and + declare as a thumb function so that the disassembler will see the + mode change. + +Thu Aug 5 17:37:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/reent/reent.tex: Updated list of reentrant functions. + +1999-07-09 Michael Meissner <meissner@cygnus.com> + + * libc/include/stdlib.h (_findenv{,_r}): Add prototypes. + +Tue Jul 6 10:46:24 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/sprintf.c: Moved snprintf and _snprintf_r to + separate file. + * libc/stdio/snprintf.c: New file. + * libc/stdio/vsprintf.c: Moved vsnprintf and _vsnprintf_r to + separate file. + * libc/stdio/vsnprintf.c: New file. + * libc/stdio/Makefile.am: Added snprintf.c and vsnprintf.c. + * libc/stdio/Makefile.in: Regenerated. + +Mon Jul 5 14:43:24 1999 Christopher Faylor <cgf@cygnus.com> + + Patch submitted by Egor Duda <deo@logos-m.ru>: + * libc/include/stdio.h: Add declarations for *nprintf. + * libc/stdio/sprintf.c (snprintf): New function. + (_snprintf_r): New function. + * libc/stdio/vsprintf.c (vsnprintf): New function. + (_vnsprintf_r): New function. + +Wed Jun 30 16:36:27 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/Makefile.am (stmp-targetdep): Remove extraneous blank. + * libm/Makefile.am (stmp-targetdep): Ditto. + * libc/Makefile.in: Regenerated. + * libm/Makefile.in: Ditto. + +Fri Jun 25 10:49:27 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/Makefile.am (stmp-targetdep): Ignore "." in SUBDIRS. + * libm/Makefile.am (stmp-targetdep): Ditto. + * libc/Makefile.in: Regenerated. + * libm/Makefile.in: Ditto. + +Thu June 03 16:25:00 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * Makefile.am: Removed dependencies on all-recursive and added "." + to the SUBDIRS list to prevent infinite recursion from occurring. + Also removed any references to EXTRA_DATA. + * libc/Makefile.am: Ditto. + * libc/machine/Makefile.am: Ditto. + * libc/machine/i386/Makefile.am: Ditto. + * libm/Makefile.am: Ditto. + * libc/sys/Makefile.am: Ditto. + * Makefile.in: Regenerated. + * aclocal.m4: Ditto. + * configure: Ditto. + * doc/Makefile.in: Ditto. + * doc/aclocal.m4: Ditto. + * doc/configure: Ditto. + * libc/Makefile.in: Ditto. + * libc/aclocal.m4: Ditto. + * libc/configure: Ditto. + * libc/machine/Makefile.in: Ditto. + * libc/machine/aclocal.m4: Ditto. + * libc/machine/configure: Ditto. + * libc/machine/mn10300/Makefile.in: Ditto. + * libc/machine/mn10300/aclocal.m4: Ditto. + * libc/machine/mn10300/configure: Ditto. + * libc/sys/Makefile.in: Ditto. + * libc/sys/aclocal.m4: Ditto. + * libc/sys/configure: Ditto. + * libm/Makefile.in: Ditto. + * libm/aclocal.m4: Ditto. + * libm/configure: Ditto. + +Thu June 03 16:20:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/include/stdlib/stdlib.tex: Add link to env_lock. + +Fri May 28 17:09:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/include/stdlib.h: Add reentrant routines. + * libc/stdlib/Makefile.am: Add reentrant routines. + * libc/stdlib/Makefile.in: Ditto. + * libc/stdlib/envlock.c: New file. + * libc/stdlib/envlock.h: New file. + * libc/stdlib/getenv.c: Modify to call reentrant routine. + * libc/stdlib/getenv_r.c: New file. + * libc/stdlib/mblen.c: Modify to call reentrant routine. + * libc/stdlib/mblen_r.c: New file. + * libc/stdlib/setenv.c: Modify to call reentrant routine. + * libc/stdlib/setenv_r.c: New file. + * libc/stdlib/stdlib.tex: Add reentrant routines. + +Mon May 17 22:01:38 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/types.h: Define __MS_types__ whenever + cygwin or win32. + +Sun May 16 16:02:41 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/include/machine/ieeefp.h: Always default to little + endian if Windows, regardless of architecture. + * libc/include/machine/sethmp.h: Define JBLEN if CYGWIN + regardless of architecture. + +Mon May 3 11:49:18 1999 Geoffrey Noer <noer@cygnus.com> + + * libc/include/machine/setjmp.h: Accept CYGWIN define, even if + _WIN32 isn't defined. + +Mon May 3 11:41:51 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libm/common/s_rint.c (rint): Add volatile qualifier for + intermediate value w. + * libm/common/sf_rint.c (rintf): Ditto. + +Thu Apr 29 20:34:27 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/sys/arm/syscalls.c (remap_handle): Added check to + ensure that std streams are initialized before being referenced. + +1999-04-27 Jason Molenda (jsm@bugshack.cygnus.com) + + * README: Update reference to newlib@cygnus.com new + newlib@sourceware.cygnus.com address. + +Mon Apr 26 18:17:33 1999 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/types.h: Define MS_types if CYGWIN is defined. + * libc/include/sys/fcntl.h: Define _O_BINARY et al if CYGWIN is + defined, even if _WIN32 isn't defined. + +Sat Apr 24 19:59:55 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/fcntl.h: Correct _O_CREATE to _O_CREAT. + +Wed Apr 21 18:01:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/include/sys/reent.h: Change Long and ULong to __Long and + __ULong. + * libc/stdlib/dtoa.c: Ditto. + * libc/stdlib/mprec.c: Ditto. + * libc/stdlib/mprec.h: Ditto. + * libc/stdlib/strtod.c: Ditto. + +1999-04-21 Nick Clifton <nickc@cygnus.com> + + * configure.host (mcore): Remove mcore machine directory. + +1999-04-18 Nick Clifton <nickc@cygnus.com> + + * libc/include/machine/ieeefp.h: Add support for mcore target. + * libc/include/machine/setjmp.h: Add support for mcore target. + * configure.host: Add support for mcore target. + +1999-04-13 Mark Salter <msalter@cygnus.com> + + * libc/sys/arm/libcfunc.c: Moved isatty to syscall.c + * libc/sys/arm/syscalls.c: Added isatty. + +Wed Apr 07 16:06:04 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdlib/ecvtbuf.c (fcvtbuf): Fixed code to properly + insert zeroes after significant digits. + +Wed Mar 17 22:06:04 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/vfprintf.c (cvt): Changed floating point + cvt routine to use union used by dtoa to properly determine + if the sign bit is on or not. + * libc/stdio/vfieeefp.h: New file + +Wed Mar 17 17:35:04 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * aclocal.m4: Regenerated. + * configure: Regenerated. + +Wed Mar 17 16:35:04 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/i386/Makefile.am (lib_a_SOURCES): Added missing + f_tanf reference. + * libc/machine/i386/Makefile.in: Regenerated. + +Tue Mar 16 14:56:36 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * acinclude.m4: Changed to work with new automake. + * configure: Regenerated. + * libc/machine/i386/aclocal.m4: Regenerated. + * libc/machine/i386/configure: Regenerated. + +Tue Mar 16 13:55:36 1999 Corinna Vinschen <corinna.vinschen@cityweb.de> + + * libc/sys/cygwin/sys/dirent.h: Add additional prototypes + for telldir() and seekdir(). Rename unused structure element + for use with these two routines. + +Fri Mar 12 19:11:58 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/time/mktime.c (validate_structure): Multiple fixes to + code to handle cases where input fields are outside valid ranges. + * libc/stdlib/div.c (div): Modified invalid rounding check. + * libc/stdlib/ldiv.c (ldiv): Ditto. + +Thu Mar 11 21:32:13 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/i386/memcpy.S: Performance rewrite. + * libc/machine/i386/memmove.S: Ditto. + * libc/machine/i386/i386mach.h: Added more register definitions. + * libc/include/math.h: Include <machine/fastmath.h> if -ffast-math + option used. + * libc/include/machine/fastmath.h: Add definitions for x86 + fast-math routines. + +Wed Mar 10 17:56:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/stdlib/strtod.c: Change from unsigned long to ULong. + +Tue Mar 9 14:31:58 1999 Geoffrey Noer <noer@cygnus.com> + + Adjust newlib headers for new Cygwin Win32 API header files: + * libc/include/sys/time.h: Check _WINSOCK_H rather than + _GNU_H_WINDOWS32_SOCKETS. + * libc/include/sys/types.h: Ditto. + +Tue Mar 09 15:55:00 1999 Ranjith Kumaran <ranjith@cygnus.com> + + *include/sys/reent.h: Add checks for size of Bigint element Long. + *libc/dtoa.c: Change routines to use generic Long type. + *libc/mprec.c: Change routines to use generic Long type. + *libc/mprec.h: Change routines to use generic Long type. + +Tue Mar 02 18:07:49 1999 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/Makefile.am: Add .def files. + * libc/Makefile.in: Regenerate. + * libc/e_acosh.c: Documentation update. + * libc/e_atanh.c: Documentation update. + * libc/e_hypot.c: Documentation update. + * libc/e_remainder.c: Documentation update. + * libc/er_lgamma.c: Documentation update. + * libc/mathfp.tex: Documentation update. + * libc/s_acos.c: Documentation update. + * libc/s_atan.c: Documentation update. + * libc/s_atan2.c: Documentation update. + * libc/s_cosh.c: Documentation update. + * libc/s_fmod.c: Documentation update. + * libc/s_isnan.c: Documentation update. + * libc/s_log10.c: Documentation update. + * libc/s_pow.c: Documentation update. + * libc/w_jn.c: Documentation update. + +Sun Feb 28 23:18:49 1999 Geoffrey Noer <noer@cygnus.com> + + * aclocal.m4: Regenerate. + * configure: Regenerate. + +Tue Feb 23 13:57:26 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/mn10300/setjmp.S (_longjmp): Fixed longjmp + to return 1 if user specified return code is 0. + * libc/machine/mn10200/setjmp.S (_longjmp): Ditto. + +Thu Feb 18 11:13:28 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/mn10200/setjmp.S (_setjmp/_longjmp): Fixed setjmp + to save the return address. Fixed longjmp to return to the original + calling address of setjmp and to return the user specified return code + rather than default to 1. + * libc/machine/mn10300/setjmp.S (_setjmp/_longjmp): Ditto. + +Mon Feb 15 17:48:17 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdlib/mprec.h (mult): Define mult to be _multiply instead of _mult. + +1999-02-10 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (initialise_monitor_handles): Make block + volatile so that its assignments will not be discarded. + +Wed Feb 10 17:19:40 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/include/_ansi.h: Corrected _STRICT_ANSI reference to + be __STRICT_ANSI__ which is generated by compiler. + * libc/include/ctype.h: Ditto. + * libc/include/math.h: Ditto. + * libc/include/stdio.h: Ditto. + * libc/include/stdlib.h: Ditto. + * libc/include/string.h: Ditto. + * libc/include/sys/signal.h: Ditto. + +1999-02-08 Nick Clifton <nickc@cygnus.com> + + * configure.host: Add support for StrongARM target. + +Fri Feb 5 11:13:14 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/string/strncpy.c (strncpy): Removed redundant code + that was copying bytes if data unaligned. + +1999-02-02 Brendan Kehoe <brendan@cygnus.com> + + * libc/stdlib/Makefile.{am,in} (CHEWOUT_FILES): Add mblen.def, + mbstowcs.def, and wcstombs.def. + +Sat Jan 30 02:36:33 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/errno.h: Add Cygwin errno. + * libc/stdio/flags.c: Don't default to O_TEXT if no other flag + is specified. + +1999-01-29 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c: Move C library functions into seperate + file. + + * libc/sys/arm/libcfunc.c: New file containing C library functions + from syscalls.c + + * libc/sys/arm/Makefile.am (lib_a_SOURCES): Add libcfuncs.c + * libc/sys/arm/Makefile.in (lib_a_SOURCES): Regenerate. + + +1999-01-27 Michael Meissner <meissner@cygnus.com> + + * libc/include/machine/setjmp.h (D30V _JBLEN/_JBTYPE): Use double + type, and cut size in half so that the jmp_buf array is guaranteed + to be aligned on a 64-bit boundary. + +Mon Jan 25 12:05:38 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/string/strings.tex: Added information about + strcasecmp and strncasecmp. + * libc/stdlib/stdlib.tex: Added missing information + about mblen, mbstowcs, and wcstombs. + * libc/string/strchr.c: Changed how mask is built to use + shift operators so register will be used instead of storage. + +1999-01-22 DJ Delorie <dj@cygnus.com> + + * libc/include/stdlib.h: don't use dllimport if we're building + newlib, since it's inside cygwin.dll + +Fri Jan 22 14:57:18 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/ctype/ctype_.c: Need to use __declspec(dllexport) for + _ctype_ under cygwin. + +Fri Jan 22 09:50:19 1999 Christopher Faylor <cgf@cygnus.com> + + * include/stdlib.h: Fix typo from previous checkin. + +Thu Jan 21 22:42:21 1999 Christopher Faylor <cgf@cygnus.com> + + * include/ctype.h: Use __declspec(dllimport) method for exporting + variable from cygwin DLL. + * include/time.h: Ditto. + * sys/errno.h: Ditto. + * include/stdlib.h: Export __mb_cur_max from cygwin DLL. + * libc/locale/locale.c: Use __declspec(dllexport) method for + exporting variable from cygwin DLL. + +Sat Jan 16 13:29:54 1999 Christopher Faylor <cgf@cygnus.com> + + * libc/stdio/setvbuf.c: Always clean up when _IONBF or possible + access of bogus pointer will result in SIGSEGV. + +1999-01-07 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/setjmp.S: Use C macros to cope with the possibility + of an underscore prefix to function names. + +Fri Jan 8 19:00:07 1999 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/i386/i386mach.h (__REG_PREFIX__): Create new + define __REG_PREFIX__ instead of using __REGISTER_PREFIX__. + +1998-12-31 Michael Meissner <meissner@cygnus.com> + + * libc/machine/i386/i386mach.h (__REGISTER_PREFIX__): Only define + to `%' if not already defined. + +1998-12-30 Michael Meissner <meissner@cygnus.com> + + * libc/stdio/tmpnam.c (_tempnam_r): Make directory and prefix + arguments const char *, not char *. + * libc/include/stdio.h (_tempnam_r): Ditto. + + * libc/include/sys/reent.h (struct _reent): The _sig_func type + points to a function taking an integer, not void. + +Tue Dec 29 14:35:53 1998 Christopher Faylor <cgf@cygnus.com> + + * configure.host: Add a define for Cygwin builds. + * libc/include/ctype.h: Don't use dll imported variables in newlib. + +Mon Dec 28 09:19:56 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/ctype.h: Define _ctype_ as dll imported variable + for use with Cygwin. + * libc/include/sys/errno.h: Define _sys_errlist and _sys_nerr as + dll imported variables for use with Cygwin. + * libc/ctype/ctype_.c: Undefine _ctype_ in case it has been defined + as a dll imported variable for Cygwin. + +Sat Dec 26 00:13:53 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/unistd.h: Add proto for getpass. + +Fri Dec 18 19:28:19 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin/sys/dirent.h: add protos for scandir and + alphasort. + +Fri Dec 18 16:33:25 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/posix/execvp.c (execvp): call cygwin_posix_path_list_p, + not posix_path_list_p. + +1998-12-15 Nick Clifton <nickc@cygnus.com> + + * libc/string/memchr.c: Treat 'c' argument as an unsigned byte not + a signed int. + +1998-12-13 Nick Clifton <nickc@cygnus.com> + + * libc/include/machine/setjmp.h (_JBLEN): Set to 10. + +1998-12-12 Nick Clifton <nickc@cygnus.com> + + * libc/machine/fr30/setjmp.S: New file, supplied by Mark Slater + <msalter@cygnus.com> + * libc/machine/fr30/Makefile.am: Add build of setjmp.S + * libc/machine/fr30/Makefile.in: Regenerated. + +1998-12-11 Nick Clifton <nickc@cygnus.com> + + * configure.host: Remove use of libc/sys for FR30 port. + * libc/sys/fr30: Remove directory (replaced by libgloss). + +1998-12-10 Ken Raeburn <raeburn@cygnus.com> + + * libc/string/strcat.c (ALIGNED): Sense of result was reversed. + * libc/string/strncat.c (ALIGNED): Ditto. + +Wed Dec 9 14:37:57 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/time.h: include sys/types.h + +Tue Dec 8 15:53:18 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/i386/memcmp.S (memcmp): Fix for unequal + comparison found when checking word at a time. + +1998-12-04 Nick Clifton <nickc@cygnus.com> + + * libc/sys/fr30/crt0.s (_start): Initialise frame pointer. + +1998-12-03 Nick Clifton <nickc@cygnus.com> + + * libc/sys/fr30/syscalls.c (_times): New function stub. + +Thu Dec 3 15:59:19 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * configure.host (mach_add_setjmp): Replaced mach_add_objs + with mach_add_setjmp flag which indicates if setjmp should + be added to the machine directory objects. + * acinclude.m4: Removed reference to mach_add_objs. + * aclocal.m4: Regenerated. + * Makefile.in: Regenerated. + * configure: Regenerated. + * libc/aclocal.m4: Regenerated. + * libc/Makefile.in: Regenerated. + * libc/configure: Regenerated. + * libc/machine/aclocal.m4: Regenerated. + * libc/machine/Makefile.in: Regenerated. + * libc/machine/configure: Regenerated. + * libc/machine/i386/aclocal.m4: Regenerated. + * libc/machine/i386/Makefile.am: Altered to selectively add + setjmp.S to the src files list. + * libc/machine/i386/Makefile.in: Regenerated. + * libc/machine/i386/configure.in: Altered to test mach_add_setjmp. + * libc/machine/i386/configure: Regenerated. + +1998-12-02 Nick Clifton <nickc@cygnus.com> + + * libc/sys/fr30/crt0.s (_start): Fix function names. + + * libc/machine/fr30: New directory + * libc/machine/fr30/Makefile.am: New file. + * libc/machine/fr30/Makefile.in: New generated file. + * libc/machine/fr30/configure.in: New file. + * libc/machine/fr30/configure: New generated file. + * libc/machine/fr30/aclocal.m4: New generated file. + * libc/sys/fr30/Makefile.am: New file. + * libc/sys/fr30/Makefile.in: New generated file. + * libc/sys/fr30/configure.in: New file. + * libc/sys/fr30/configure: New generated file. + * libc/sys/fr30/syscalls.c: New file. + +Tue Dec 1 16:28:56 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin/sys/utmp.h: new file, moved from winsup/include. + +1998-12-01 Ken Raeburn <raeburn@cygnus.com> + + * libc/time/strftime.c (strftime): Also handle %y for years before + 1900. + +Tue Dec 1 13:26:07 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/string/strcasecmp.c (strcasecmp): Adhere to standard + UNIX convention. Perform tolower on characters before comparing + them rather than use toupper. + * libc/string/strncasecmp.c (strncasecmp): Ditto. + +Mon Nov 30 16:24:19 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * configure.host: Added using i386 machine directory + for all x86 cross-compiler and configuring + which added object files to use via new "mach_add_objs" variable. + * configure: Regenerated. + * libc/configure: Regenerated. + * libc/Makefile.in: Regenerated. + * libc/aclocal.m4: Regenerated. + * libc/ctype/Makefile.in: Regenerated. + * libc/errno/Makefile.in: Regenerated. + * libc/locale/Makefile.in: Regenerated. + * libc/machine/Makefile.in: Regenerated. + * libc/machine/aclocal.m4: Regenerated. + * libc/machine/configure: Regenerated. + * libc/posix/Makefile.in: Regenerated. + * libc/reent/Makefile.in: Regenerated. + * libc/signal/Makefile.in: Regenerated. + * libc/stdio/Makefile.in: Regenerated. + * libc/stdlib/Makefile.in: Regenerated. + * libc/string/Makefile.in: Regenerated. + * libc/string/memmove.c: Optimized code to use memcpy + logic when performing a non-destructive copy. + * libc/string/strncmp.c: Altered code to allow building + optimized for size or speed. + * libc/syscalls/Makefile.in: Regenerated. + * libc/time/Makefile.in: Regenerated. + * libc/unix/Makefile.in: Regenerated. + * libc/machine/i386/Makefile.am: Added new files and reference + to "mach_add_objs" to indicate optional object files. + * libc/machine/i386/Makefile.in: Regenerated. + * libc/machine/i386/aclocal.m4: Regenerated. + * libc/machine/i386/configure: Regenerated. + * libc/machine/i386/memchr.S: New file that implements + function in Intel assembler. + * libc/machine/i386/memcmp.S: ditto. + * libc/machine/i386/memcpy.S: ditto. + * libc/machine/i386/memmove.S: ditto. + * libc/machine/i386/memset.S: ditto. + * libc/machine/i386/strchr.S: ditto. + * libc/machine/i386/strlen.S: ditto. + * libc/machine/i386/f_atan2.S: New file that implements + fast version of math function to be used by compiler when + --ffast_math compile option is used. + * libc/machine/i386/f_atan2f.S: ditto. + * libc/machine/i386/f_exp.c: ditto. + * libc/machine/i386/f_expf.c: ditto. + * libc/machine/i386/f_frexp.S: ditto. + * libc/machine/i386/f_frexpf.S: ditto. + * libc/machine/i386/f_ldexp.S: ditto. + * libc/machine/i386/f_ldexpf.S: ditto. + * libc/machine/i386/f_log.S: ditto. + * libc/machine/i386/f_logf.S: ditto. + * libc/machine/i386/f_log10.S: ditto. + * libc/machine/i386/f_log10f.S: ditto. + * libc/machine/i386/f_math.h: New file. + * libc/machine/i386/f_pow.c: ditto. + * libc/machine/i386/f_powf.S: ditto. + * libc/machine/i386/f_tan.S: ditto. + * libc/machine/i386/f_tan.S: ditto. + * libc/machine/i386/i386mach.h: New file. + +Mon Nov 30 13:02:17 1998 Christopher Faylor <cgf@cygnus.com> + + patch from Mumit Khan <khan@xraylith.wisc.edu> + * libc/include/stdio.h (tempnam): Add prototype. + * libc/stdio/tmpnam.c (_tempnam_r): Handle NULL prefix. + (tempnam): Adhere to prototype. + +Thu Nov 26 00:21:32 1998 Christopher Faylor <cgf@cygnus.com> + + * Makefile.am: Add default for AR_FLAGS. + * Makefile.in: Regenerate. + +Tue Nov 24 18:48:56 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/time.h: move __cplusplus wrapper after includes + * libc/include/sys/time.h: ditto. If Cygwin, include + sys/select.h. + * libc/include/sys/types.h: lose "32" in comment about Cygwin. + +1998-11-23 Ken Raeburn <raeburn@cygnus.com> + + * libc/time/strftime.c (strftime): Handle %y after year 2000. + +Wed Nov 18 12:22:41 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/fr30/crt0.s (_start): Switch over to using int #9 as + abnormnal end-of-crt0 marker. + +Tue Nov 17 16:27:58 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/fr30/crt0.s: New file/directory. + * libc/include/machine/setjmp.h: Add FR30 target. + * libc/include/machine/ieeefp.h: Add FR30 target. + * configure.host: Add FR30 target. + +Mon Nov 16 23:15:00 1998 Ranjith Kumaran <ranjith@cygnus.com> + + * libm/math: Files that are duplicated in common directory removed. + * libm/math/fdlibm.h: Removed. + * libm/math/s_cbrt.c: Removed. + * libm/math/s_copysign.c: Removed. + * libm/math/s_expm1.c: Removed. + * libm/math/s_finite.c: Removed. + * libm/math/s_ilogb.c: Removed. + * libm/math/s_infinity.c: Removed. + * libm/math/s_lib_ver.c: Removed. + * libm/math/s_log1p.c: Removed. + * libm/math/s_logb.c: Removed. + * libm/math/s_matherr.c: Removed. + * libm/math/s_modf.c: Removed. + * libm/math/s_nan.c: Removed. + * libm/math/s_nextafter.c: Removed. + * libm/math/s_rint.c: Removed. + * libm/math/s_scalbn.c: Removed. + * libm/math/sf_cbrt.c: Removed. + * libm/math/sf_copysign.c: Removed. + * libm/math/sf_expm1.c: Removed. + * libm/math/sf_finite.c: Removed. + * libm/math/sf_ilogb.c: Removed. + * libm/math/sf_infinity.c: Removed. + * libm/math/sf_log1p.c: Removed. + * libm/math/sf_logb.c: Removed. + * libm/math/sf_modf.c: Removed. + * libm/math/sf_nan.c: Removed. + * libm/math/sf_nextafter.c: Removed. + * libm/math/sf_rint.c: Removed. + * libm/math/sf_scalbn.c: Removed. + * libm/math/Makefile.am: Removed references to deleted files (above). + * libm/math/Makefile.in: Regenerated. + * libm/Makefile.am: Added common directory to math. + * libm/Makefile.in: Regenerated. + +Mon Nov 2 23:12:00 1998 Ranjith Kumaran <ranjith@cygnus.com> + + * libm/mathfp: Add non-ANSI functions. + * libm/mathfp/e_acosh.c acosh(): New file. + * libm/mathfp/e_atanh.c atanh(): New file. + * libm/mathfp/e_hypot.c hypot(): New file. + * libm/mathfp/e_j0.c j0(): New file. + * libm/mathfp/e_j1.c j1(): New file. + * libm/mathfp/e_remainder.c remainder(): New file. + * libm/mathfp/e_scalb.c scalb(): New file. + * libm/mathfp/ef_acosh.c acoshf(): New file. + * libm/mathfp/ef_atanh.c atanhf(): New file. + * libm/mathfp/ef_hypot.c hypotf(): New file. + * libm/mathfp/ef_j0.c j0f(): New file. + * libm/mathfp/ef_j1.c j1f(): New file. + * libm/mathfp/ef_remainder.c remainderf(): New file. + * libm/mathfp/ef_scalb.c scalbf(): New file. + * libm/mathfp/er_gamma.c gamma_r: New file. + * libm/mathfp/er_lgamma.c lgamma_r(): New file. + * libm/mathfp/erf_gamma.c gamma_rf(): New file. + * libm/mathfp/erf_lgamma.c lgamma_rf(): New file. + * libm/mathfp/w_cabs.c cabs(): New file. + * libm/mathfp/w_drem.c drem(): New file. + * libm/mathfp/w_jn.c jn(): New file. + * libm/mathfp/wf_cabs.c cabsf(): New file. + * libm/mathfp/wf_drem.c dremf(): New file. + * libm/mathfp/wf_jn.c jnf(): New file. + +Mon Nov 2 16:43:18 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32: remove directory and contents + * libc/sys/cygwin: and add back, losing the "32". + * configure.host: check for cygwin* instead of cygwin32. + * acinclude.m4: ditto. + * aclocal.m4: regenerate with aclocal + * configure: regenerate with autoconf + +Tue Oct 20 17:28:28 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/stdio/tmpnam.c (_tempnam_r): not enough memory allocated + for length + +Tue Oct 20 18:49:05 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/include/sys/reent.h (struct _reent): Added variables _rand_next, _strtok_last, + _asctime_buf, _localtime_buf and _gamma_signgam to struct reent + to make rand/srand, strtok, asctime, localtime, w_gamma, + w_lgamma, wf_gamma, and wf_lgamma reentrant. Included + time.h to bring in struct tm definition. + * libc/stdlib/rand.c (rand, srand): Don't emit functions 'rand' and 'srand' if + '_REENT_ONLY' is set. Used variable '_rand_next' from struct reent. + * libc/stdlib/strtok.c (strtok): Used variable '_strtok_last' from struct reent + instead of static variable. + * libc/stdlib/asctime.c (asctime): Used variable '_asctime_buf' from + struct reent instead of static variable. + * libc/stdlib/lcltime.c (localtime): Used variable '_localtime_buf' from + struct reent instead of static variable. + * libm/math/Makefile.am: Removed s_signgam.o. + * libm/math/Makefile.in: Regenerated. + * libm/math/w_gamma.c (gamma): Used variable '_gamma_signgam' from + struct reent instead of global variable 'signgam'. + * libm/math/w_lgamma.c (lgamma): Likewise. + * libm/math/wf_gamma.c (gammaf): Likewise. + * libm/math/wf_lgamma.c (lgammaf): Likewise. + * libm/math/s_signgam.c: Removed. + * libc/include/unctrl.h: Defined arrays __unctrl and __unctrllen + to be const. + * libc/misc/unctrl.c: Defined arrays __unctrl and __unctrllen + to be const. + * libc/reent/Makefile.am: Added dependence for impure.o on impure.c and + libc/include/reent.h. + * libc/reent/Makefile.in: Regenerated. + * libc/stdio/vfprintf.c (_vfprintf_r): Defined arrays 'blanks' and 'zeroes' + to be const. + * libc/stdlib/mbtowc_r.c (_mbtowc_r): Defined arrays 'JIS_state_table' and + 'JIS_action_table' to be const. + * libm/math/s_lib_ver.c: define variable _LIB_VERSION to be const. + +Mon Oct 12 00:26:33 1998 Christopher Faylor <cgf@cygnus.com> + + * acinclude.m4: $with_target_subdir should default to '.' + or confusion results when configuring in same directory as sources. + * Regenerate all aclocal.m4 and configure files. + +Fri Oct 9 16:27:36 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdlib/mallocr.c: Added 16 byte alignment support which + can be set by defining MALLOC_ALIGNMENT=16. Also added support + for platforms where sizeof(size_t) < sizeof(long) via + SIZE_T_SMALLER_THAN_LONG macro. + +Wed Oct 7 14:02:40 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/include/time.h (CLOCKS_PER_SEC): Change CLOCKS_PER_SEC + to refer to _CLOCKS_PER_SEC_ and added including <machine/time.h> + which sets _CLOCKS_PER_SEC_ for selected machines. + * libc/include/machine/time.h: New file. + +Tue Oct 6 16:08:05 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/syscalls/sysexecve.c: New file. + * libc/syscalls/sysgettod.c: New file. + * libc/syscalls/systimes.c: New file. + * libc/syscalls/Makefile.am: Added new objects. + * libc/syscalls/Makefile.in: Regenerated. + * libc/include/_syslist.h (_execve): Moved define in file. + * libc/include/reent.h: Added _execve_r declaration. + * libc/Makefile.in: Regenerated. + * libc/ctype/Makefile.in: Regenerated. + * libc/errno/Makefile.in: Regenerated. + * libc/locale/Makefile.in: Regenerated. + * libc/machine/Makefile.in: Regenerated. + * libc/misc/Makefile.in: Regenerated. + * libc/posix/Makefile.in: Regenerated. + * libc/reent/Makefile.in: Regenerated. + * libc/reent/execr.c (_execve_r): Added _execve_r function. + * libc/signal/Makefile.in: Regenerated. + * libc/stdio/Makefile.in: Regenerated. + * libc/time/Makefile.in: Regenerated. + * libc/unix/Makefile.in: Regenerated. + * libm/mathfp/Makefile.in: Regenerated. + +Tue Oct 6 14:14:05 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/string/Makefile.in: Regenerated. + * libc/string/memchr.c (memchr): Moved code to reduce object size. + * libc/string/memcpy.c (memcpy): Ditto. + * libc/string/memcmp.c (memcmp): Ditto. + * libc/string/memset.c (memset): Ditto. + * libc/string/strchr.c (strchr): Ditto. + * libc/string/strcmp.c (strcmp): Ditto. + * libc/string/strcpy.c (strcpy): Ditto. + * libc/string/strlen.c (strlen): Ditto. + +Tue Oct 6 13:58:05 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libm/acinclude.m4: Removed since newlib/acinclude.m4 can be used + to generate aclocal.m4. + * libm/Makefile.in: Regenerated. + * libm/aclocal.m4: Regenerated. + * libm/configure: Regenerated. + * libm/math/Makefile.in: Regenerated. + * libm/mathfp/Makefile.in: Regenerated. + +1998-09-25 Mark Salter <msalter@cygnus.com> + + * libc/include/machine/setjmp.h: Fixed test for mn10300 and mn10200 + by adding leading and trailing underscores to symbol names. + +Tue Sep 22 15:33:41 1998 Christopher Faylor <cgf@cygnus.com> + + * Makefile.in: Add default for AR_FLAGS. + +Tue Sep 22 15:02:49 1998 Christopher Faylor <cgf@cygnus.com> + + patch from ian@airs.com (Ian Taylor): + * acinclude.m4: Run AC_CANONICAL_BUILD explicitly before + NEWLIB_CONFIGURE so AC_CANONICAL_HOST will be run before it + is needed for detecting the build machine. Required for + cygwin native builds. + + * Regenerate all aclocal.m4 and configure files. + +Mon Sep 21 14:44:16 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/crt0.S: Prepend a period to all local labels that + used to start with LC. + +Thu Sep 17 18:18:11 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/setjmp.S (setjmp): Handle __SH4* like __SH3E__ . + (longjmp): Likewise. + +Thu Sep 17 16:25:33 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/memset.S (memset): Move copy from r4 to r4 before + the test for small number of bytes. + +Thu Sep 10 11:40:00 1998 Ranjith Kumaran <ranjith@cygnus.com> + + * Makefile.am: Add --enable-newlib-hw-fp check. This builds the new + math library that uses floating point algorithms instead of the old + libm. + * Makefile.in: Regenerate with automake version 1.3b. + * configure: Rebuild. + * libm/Makefile.in: Regenerate with automake version 1.3b. + * libm/aclocal.m4: Regenerate. + * libm/configure: Rebuild. + * libm/configure.in: Add newlib_hw_fp definition and mathfp directory. + * libm/acinclude.m4: Define macros for configure.in. + * libm/config.h.in: Generate. + * libm/mathfp/Makefile.am: New file. + * libm/mathfp/Makefile.in: Generate. + * libm/mathfp/s_acos.c (acos): New file. + * libm/mathfp/s_asin.c (asin): New file. + * libm/mathfp/s_asine.c (asine): New file. + * libm/mathfp/s_atan.c (atan): New file. + * libm/mathfp/s_atan2.c (atan2): New file. + * libm/mathfp/s_atangent.c (atangent): New file. + * libm/mathfp/s_ceil.c (ceil): New file. + * libm/mathfp/s_copysign.c (copysign): New file. + * libm/mathfp/s_cos.c (cos): New file. + * libm/mathfp/s_cosh.c (cosh): New file. + * libm/mathfp/s_exp.c (exp): New file. + * libm/mathfp/s_fabs.c (fabs): New file. + * libm/mathfp/s_finite.c (finite): New file. + * libm/mathfp/s_floor.c (floor): New file. + * libm/mathfp/s_fmod.c (fmod): New file. + * libm/mathfp/s_frexp.c (frexp): New file. + * libm/mathfp/s_infconst.c: New file. + * libm/mathfp/s_isinf (isinf).c: New file. + * libm/mathfp/s_isnan.c (isnan): New file. + * libm/mathfp/s_ispos.c (ispos): New file. + * libm/mathfp/s_ldexp.c (ldexp): New file. + * libm/mathfp/s_log.c (log): New file. + * libm/mathfp/s_log10.c (log10): New file. + * libm/mathfp/s_logarithm.c (logarithm): New file. + * libm/mathfp/s_mathcnst.c: New file. + * libm/mathfp/s_modf (modf).c: New file. + * libm/mathfp/s_numtest.c (numtest): New file. + * libm/mathfp/s_pow.c (pow): New file. + * libm/mathfp/s_scalbn.c (scalbn): New file. + * libm/mathfp/s_sin (sin).c: New file. + * libm/mathfp/s_sine.c (sine): New file. + * libm/mathfp/s_sineh.c (sineh): New file. + * libm/mathfp/s_sinf.c (sinf): New file. + * libm/mathfp/s_sinh.c (sinh): New file. + * libm/mathfp/s_sqrt.c (sqrt): New file. + * libm/mathfp/s_tan.c (tan): New file. + * libm/mathfp/s_tanh.c (tanh): New file. + * libm/mathfp/sf_acos.c (acosf): New file. + * libm/mathfp/sf_asin.c (asinf): New file. + * libm/mathfp/sf_asine.c (asinef): New file. + * libm/mathfp/sf_atan.c (atanf): New file. + * libm/mathfp/sf_atan2.c (atan2f): New file. + * libm/mathfp/sf_atangent.c (atangent): New file. + * libm/mathfp/sf_ceil.c (ceilf): New file. + * libm/mathfp/sf_copysign.c (copysignf): New file. + * libm/mathfp/sf_cos.c (cosf): New file. + * libm/mathfp/sf_cosh.c (coshf): New file. + * libm/mathfp/sf_exp.c (expf): New file. + * libm/mathfp/sf_fabs.c (fabsf): New file. + * libm/mathfp/sf_finite.c (finitef): New file. + * libm/mathfp/sf_floor.c (floorf): New file. + * libm/mathfp/sf_fmod.c (fmodf): New file. + * libm/mathfp/sf_frexp.c (frexpf): New file. + * libm/mathfp/sf_isinf.c (isinff): New file. + * libm/mathfp/sf_isnan.c (isnanf): New file. + * libm/mathfp/sf_ispos.c (isposf): New file. + * libm/mathfp/sf_ldexp.c (ldexpf): New file. + * libm/mathfp/sf_log.c (logf): New file. + * libm/mathfp/sf_log10.c (log10f): New file. + * libm/mathfp/sf_logarithm.c (logarithmf): New file. + * libm/mathfp/sf_modf.c (modff): New file. + * libm/mathfp/sf_numtest.c (numtestf): New file. + * libm/mathfp/sf_pow.c (powf): New file. + * libm/mathfp/sf_scalbn.c (scalbnf): New file. + * libm/mathfp/sf_sin.c (sinf): New file. + * libm/mathfp/sf_sine.c (sinef): New file. + * libm/mathfp/sf_sineh.c (sinehf): New file. + * libm/mathfp/sf_sinh.c (sinhf): New file. + * libm/mathfp/sf_sqrt.c (sqrtf): New file. + * libm/mathfp/sf_tan.c (tanf): New file. + * libm/mathfp/sf_tanh.c (tanhf): New file. + * libm/mathfp/zmath.h: New file. + +Wed Sep 2 02:49:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/strcmp.S (L_char_loop): Re-load r0 at loop + exit if it has been overwritten by pre-fetching in delay slot. + +1998-09-01 Michael Meissner <meissner@cygnus.com> + + * Makefile.am (tooldir): Add in host_alias, so that multilib + libraries are installed in the directory the compiler looks in. + * Makefile.in: Regenerate. + + * libc/stdlib/Makefile.in: Regenerate with automake version 1.3b. + +Mon Aug 31 11:39:31 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/mn10300/memcpy.S (_memcpy): Move alignment test + ahead of test for number of bytes being moved. + +Thu Aug 27 14:07:53 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/unistd.h: Nothing special needed for + _exit under cygwin. + +Wed Aug 26 15:05:21 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (_sbrk): Rename '_end' to 'end' to + conform to user label naming conventions. + +Mon Aug 24 14:46:19 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/sys/utime.h: variable names in + protos should start with two leading underscores + * libc/include/string.h: ditto + * libc/include/sys/signal.h: ditto + * libc/include/sys/stat.h: ditto + * libc/include/sys/time.h: ditto + * libc/include/sys/unistd.h: ditto + * libc/include/ctype.h: ditto + * libc/include/stdlib.h: ditto + * libc/include/sys/reent.h: struct _atexit function ptr takes a + void, same with _sig_func. + +Fri Aug 21 14:44:14 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdlib/mbtowc_r.c (_mbtowc_r): Added preprocessor checks + for MB_CAPABLE to reduce code size when newlib is not configured + with --enable-newlib-mb. + * libc/stdlib/Makefile.am: Specified -fshort-enums when building + mbtowc_r.o to minimize size. + * libc/stdlib/Makefile.in: Rebuild. + +Wed Aug 19 16:20:13 1998 Jim Wilson <wilson@cygnus.com> + + * libc/sys/sparc64/Makefile.am (.S_r.o, .c_r.o): Change -DREENTRANT + to -DREENT. + * libc/sys/sparc64/Makefile.in: Rebuild. + +Tue Aug 18 22:38:29 1998 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.am (MAKEOVERRIDES): Define. + * Makefile.in: Rebuild. + +Tue Aug 18 12:38:47 1998 Jim Wilson <wilson@cygnus.com> + + * libc/sys/sparc64/sys/stat.h (stat): Add const. + +Mon Aug 17 22:27:06 1998 Ian Lance Taylor <ian@cygnus.com> + + * acinclude.m4 (NEWLIB_CONFIGURE): Use top_builddir in + newlib_cflags when looking for targ-include. + * */aclocal.m4, */configure: Rebuild. + +Fri Jul 31 10:57:42 1998 Catherine Moore <clm@cygnus.com> + + * libc/sys/arm/syscalls.c (_sbrk): Change "__end__" + to "_end". + +Wed Jul 29 00:02:01 1998 Mark Alexander <marka@cygnus.com> + + * libc/include/sys/config.h: Define __IEEE_LITTLE_ENDIAN + on SPARCs with little-endian data. + * libc/include/machine/ieeefp.h: Ditto. + +Wed Jul 22 18:00:10 1998 Ian Lance Taylor <ian@cygnus.com> + + * acinclude.m4: Handle a relative srcdir correctly when setting + newlib_cflags. + * */aclocal.m4, */configure: Rebuild. + +Wed Jul 22 17:11:33 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libm/math/wrf_lgamma.c (lgammaf_r): Initialize exc.err to 0 and + also set exc.arg1, exc.arg2 appropriately in case matherr is supplied. + * libm/math/wrf_gamma.c (gammaf_r): ditto + * libm/math/wr_lgamma.c (lgamma_r): ditto + * libm/math/wr_gamma.c (gamma_r): ditto + * libm/math/wf_sqrt.c (sqrtf): ditto + * libm/math/wf_sinh.c (sinhf): ditto + * libm/math/wf_scalb.c (scalbf): ditto + * libm/math/wf_remainder.c (remainderf): ditto + * libm/math/wf_pow.c (powf): ditto + * libm/math/wf_log10.c (log10f): ditto + * libm/math/wf_log.c (logf): ditto + * libm/math/wf_lgamma.c (lgammaf): ditto + * libm/math/wf_jn.c (jnf, ynf): ditto + * libm/math/wf_j1.c (j1f, y1f): ditto + * libm/math/wf_j0.c (j0f, y0f): ditto + * libm/math/wf_hypot.c (hypotf): ditto + * libm/math/wf_gamma.c (gammaf): ditto + * libm/math/wf_fmod.c (fmodf): ditto + * libm/math/wf_exp.c (expf): ditto + * libm/math/wf_cosh.c (coshf): ditto + * libm/math/wf_atanh.c (atanhf): ditto + * libm/math/wf_atan2f.c (atan2f): ditto + * libm/math/wf_asin.c (asinf): ditto + * libm/math/wf_acosh.c (acoshf): ditto + * libm/math/wf_acos.c (acosf): ditto + * libm/math/w_sqrt.c (sqrt): ditto + * libm/math/w_sinh.c (sinh): ditto + * libm/math/w_scalb.c (scalb): ditto + * libm/math/w_remainder.c (remainder): ditto + * libm/math/w_pow.c (pow): ditto + * libm/math/w_log10.c (log10): ditto + * libm/math/w_log.c (log): ditto + * libm/math/w_lgamma.c (lgamma): ditto + * libm/math/w_jn.c (jn, yn): ditto + * libm/math/w_j1.c (j1, y1): ditto + * libm/math/w_j0.c (j0, y0): ditto + * libm/math/w_hypot.c (hypot): ditto + * libm/math/w_gamma.c (gamma): ditto + * libm/math/w_fmod.c (fmod): ditto + * libm/math/w_exp.c (exp): ditto + * libm/math/w_cosh.c (cosh): ditto + * libm/math/w_atanh.c (atanh): ditto + * libm/math/w_atan2f.c (atan2): ditto + * libm/math/w_asin.c (asin): ditto + * libm/math/w_acosh.c (acosh): ditto + * libm/math/w_acos.c (acos): ditto + +Tue Jul 21 12:34:54 1998 Ian Lance Taylor <ian@cygnus.com> + + * libm/math/Makefile.am (src): Add w_cabs.c and w_drem.c. + (fsrc): Add wf_cabs.c and wf_drem.c. + * libm/math/Makefile.in: Rebuild. + + * Makefile.am (AM_MAKEFLAGS): Add CFLAGS_FOR_BUILD. Remove some + unused directory variables. Remove duplicate CFLAGS. + * Makefile.in: Rebuild. + + * doc/Makefile.am ($(MKDOC)): Don't use $(CFLAGS) when building + with $(CC_FOR_BUILD). + (makedoc.o): Likewise. + * doc/Makefile.in: Rebuild. + + * libc/sys/cygwin32/Makefile.am (EXTRA_LIBRARIES): Define, to + force a definition of COMPILE. + (libfoo_a_SOURCES): Define. + * libc/sys/cygwin32/Makefile.in: Rebuild. + * libc/sys/tic80/Makefile.am (EXTRA_LIBRARIES): Define, to + force a definition of COMPILE. + (libfoo_a_SOURCES): Define. + * libc/sys/tic80/Makefile.in: Rebuild. + +Mon Jul 20 20:49:24 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/fcntl.h: Add O_NOINHERIT, Win32-specific + flag. + +Fri Jul 17 16:13:16 1998 Ian Lance Taylor <ian@cygnus.com> + + * Build using autoconf and automake. Added many Makefile.am and + configure.in files, plus generated files. Old configure.in files + and all old Makefile.in files completely replaced. Removed + host/any. Added acinclude.m4 and configure.host. + +Sat Jul 11 18:14:49 1998 Felix Lee <flee@cygnus.com> + + * libc/stdio/vfprintf.c: enable long long support, sometimes. + * configure.in (*-*-cygwin32): add -DWANT_PRINTF_LONG_LONG. + +Tue Jul 7 01:51:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/strcmp.S, libc/machine/sh/strcpy.S: New files. + * libc/machine/sh/Makefile.in: Add rules for new files. + +Tue Jul 7 01:40:55 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/asm.h (SL, DELAYED_BRANCHES): Define. + * libc/machine/sh/memset.S (memset): Remove uses of dt; shorten code. + * libc/machine/sh/memcpy.S (SL, DELAYED_BRANCHES): Don't define. + +Thu Jul 2 10:33:16 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (_exit): Add comment, noting that exit + code is ignored. + +Wed Jun 24 13:56:54 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/tmpnam.c (_tmpnam_r): Changed routine to use + internal static buffer when s is NULL, as prescribed by ANSI. + +1998-06-22 Vladimir N. Makarov <vmakarov@cygnus.com> + + * libc/sys/h8300hms/Makefile.in (OFILES): malloc.o has been + removed. + * libc/sys/h8300hms/malloc.c: has been removed. Now malloc.c from + libc/stdlib will be used for h8300hms. + +Thu Jun 18 16:56:05 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/mn10300/strlen.S (_strlen): New optimized assembler + version that can be built either for speed or size. + * libc/machine/mn10300/memset.S (_memset): ditto + * libc/machine/mn10300/memchr.S (_memchr): ditto + * libc/machine/mn10300/memcpy.S (_memcpy): ditto + * libc/machine/mn10300/memcmp.S (_memcmp): ditto + * libc/machine/mn10300/strchr.S (_strchr): ditto + * libc/machine/mn10300/strcmp.S (_strcmp): ditto + * libc/machine/mn10300/strcpy.S (_strcpy): ditto + * libc/machine/mn10300/Makefile.in: Added entries for + memchr.o, memcmp.o, memcpy.o, memset.o, strchr.o, + strcmp.o, strcpy.o, and strlen.o. + +Wed Jun 17 12:50:26 1998 Mark Alexander <marka@cygnus.com> + + * configure.in: Don't use libc/sys/sysmec for MN10200; it's + been replaced with libgloss/mn10200. + +Fri Jun 12 14:34:39 1998 Michael Meissner <meissner@cygnus.com> + + * libc/string/strchr.c (strchr): Make s a constant pointer to + avoid warning. + +Tue Jun 9 16:29:30 1998 Jason Molenda (crash@bugshack.cygnus.com) + + * configure.in (target == arm* or thumb*): Define ARM_RDI_MONITOR + instead of ARM_RDP_MONITOR (sys/libc/arm/crt0.S to assume Angel + board SWIs instead of Demon board SWIs). + +Thu Jun 4 12:16:46 1998 Michael Meissner <meissner@cygnus.com> + + * libc/string/strncat.c (strncat): Make -Os act the same as + PREFER_SIZE_OVER_SPEED being defined. + +Wed Jun 3 17:52:33 1998 Michael Meissner <meissner@cygnus.com> + + * libc/string/memchr.c (memchr): Make -Os act the same as + PREFER_SIZE_OVER_SPEED being defined. + * libc/string/memcmp.c (memcmp): Ditto. + * libc/string/memcpy.c (memcpy): Ditto. + * libc/string/memset.c (memset): Ditto. + * libc/string/strcat.c (strcat): Ditto. + * libc/string/strchr.c (strchr): Ditto. + * libc/string/strcmp.c (strcmp): Ditto. + * libc/string/strcpy.c (strcpy): Ditto. + * libc/string/strlen.c (strlen): Ditto. + * libc/string/strncat.c (strncat): Ditto. + * libc/string/strncmp.c (strncmp): Ditto. + * libc/string/strncpy.c (strncpy): Ditto. + +Mon Jun 1 15:25:07 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/itimer.h: remove + * libc/include/sys/time.h: itimer stuff should be here + +Mon Jun 1 16:31:29 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/vfprintf.c (cvt): Changed code to look at sign + bit instead of comparing to 0 so -0.0 can be printed correctly. + +Sat May 30 09:33:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/stdlib/mprec.c (b2d): Inilialize d in non-VAX case too. + +Fri May 29 22:25:10 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/unistd.h: fix sync() proto + * libc/include/sys/fcntl.h: remove _close which is already + defined in unistd.h. + * libc/include/sys/time.h: add getitimer proto + +Fri May 29 16:10:28 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/string/strchr.c: convert arg to unsigned char + * libc/include/stdlib.h: add protos for random, srandom + * libc/include/sys/stat.h: add lstat proto + * libc/include/sys/time.h: add setitimer proto + * libc/include/sys/unistd.h: add readlink, symlink protos + * libc/include/process.h: instead of including windows.h and using + HANDLEs in sexec protos, just use void *s. Need to include + sys/types.h. + +Fri May 29 03:04:29 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/fcntl.h: add _close proto for Cygwin32 + +Thu May 28 16:34:21 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/process.h: add secure exec protos + +Wed May 27 13:54:51 1998 Jeffrey A Law (law@cygnus.com) + + * libc/stdlib/dtoa.c (_dtoa_r): Use "double_union" for variables + which are accessed as both doubles and integers. + * libc/stdlib/mprec.c (ulp, b2d, ratio): Likewise. + * libc/stdlib/strtod.c (_strtod_r): Likewise. + * libc/stdlib/mprec.h: Add "union double_union" and change + word0/word1 macros to use it. + +Tue May 26 18:04:21 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: add __cplusplus wrapper + +Tue May 26 15:10:22 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/utime.h: new generic file that gets replaced by + libc/sys/SYSDIR/sys/utime.h on systems that support the utime + function. + * sys/cygwin32/sys/utime.h: use _EXFUN in utime proto + * libc/include/time.h: remove duplicate utime proto + * libc/include/utime.h: add comment + +Sun May 24 23:56:20 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/time.h: Add missing include to + allow use of _EXFUN. Remove times function that is + already defined in times.h. + +Sun May 24 01:32:14 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/time.h: Fix typo in tzset. + +Fri May 22 17:00:48 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/time.h: add missing Cygwin32 function protos + * libc/include/sys/unistd.h: ditto + * libc/include/time.h: ditto + +Wed May 20 20:35:11 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/sys/param.h: add protected NULL def, remove + FIXME. + * libc/include/sys/types.h: add a new __MS_types__ section + to define vm_offset_t, vm_size_t, int32_t et al, register_t, + __BIT_TYPES_DEFINED__. + +Wed May 20 18:49:21 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/sys/param.h: move here from winsup/include/sys + since it overrides the one in libc/include/sys. Also, start + including types.h. + +Wed May 20 14:45:40 1998 Geoffrey Noer <noer@cygnus.com> + + * libm/math/Makefile.in: add s_signgam.o to obj list + +Tue May 19 11:57:11 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/include/sys/reent.h (_REENT_INIT): Initialize current locale to "C". + +Mon May 18 22:36:12 1998 Christopher Faylor <cgf@cygnus.com> + + * libc/include/sys/signal.h: cygwin32 exports sig{empty,add}set, + so don't use defines. + +Mon May 18 19:01:02 1998 Michael Meissner <meissner@cygnus.com> + + * libc/sys/d10v/crt0.S: Use correct stab for 16-bit ints. + +Sun May 17 18:40:32 1998 Frank Ch. Eigler <fche@cygnus.com> + + * libc/stdlib/mbtowc_r.c (_mbtowc_r): Accept a NULL + _current_locale as default locale. + +Sat May 16 21:59:59 1998 Bob Manson <manson@charmed.cygnus.com> + + * libc/stdlib/mallocr.c (mALLOc): Add explicit tests for + insufficient space in a chunk. + +Tue May 12 14:41:01 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * configure.in (links): Added check for --enable-newlib-mb configure + option which defines the MB_CAPABLE macro. + * libc/locale/locale.c (_setlocale_r): Added support for setting + LC_CTYPE to "C-JIS", "C-SJIS" or "C-EUCJP", when MB_CAPABLE is + defined. + * libc/stdlib/mbtowc_r.c (_mbtowc_r): New function _mbtowc_r that + implements mbtowc() with multibyte support for JIS, SJIS, and EUC-JP. + * libc/stdlib/wctomb_r.c (_wctomb_r): New function _wctomb_r that + implements wctomb() with multibyte support for JIS, SJIS, and EUC-JP. + * libc/stdlib/mbstowcs_r.c (_mbstowcs_r): New function _mbstowcs_r that + implements mbstowcs() with multibyte support for JIS, SJIS, and EUC-JP. + * libc/stdlib/wcstombs_r.c (_wcstombs_r): New function _wcstomb_r that implements + wcstombs() with multibyte support for JIS, SJIS, and EUC-JP. + * libc/stdlib/Makefile.in: Added new multibyte + routines: _mbtowc_r(), _wctomb_r(), _mbstowcs_r(), and _wcstombs_r(). + * libc/include/stdlib.h: Added declarations of _mbtowc_r(), _wctomb_r(), + _mbstowcs_r(), and _wcstombs_r(). + * libc/stdlib/mbctype.h: New internal header file that contains macros to test + for JIS, SJIS, and EUC-JP characters. + * libc/stdlib/mblen.c (mblen): Added code to call _mbtowc_r() if + MB_CAPABLE defined. + * libc/stdlib/mbtowc.c (mbtowc): Added code to call _mbtowc_r() if + MB_CAPABLE defined. + * libc/stdlib/wctomb.c (wctomb): Added code to call _wctomb_r() if + MB_CAPABLE defined. + * libc/stdlib/mbstowcs.c (mbstowcs): Added code to call _mbstowcs_r() + if MB_CAPABLE defined. + * libc/stdlib/wcstombs.c (wcstombs): Added code to call _wcstombs_r() + if MB_CAPABLE defined. + * libc/stdio/vfscanf.c (__svfscanf): Added multibyte tolerance + to the format string processing when MB_CAPABLE. + * libc/stdio/vfprintf.c (_VFPRINTF_R): Changed mbtowc() call to + call _mbtowc_r(). + +Tue May 5 16:07:23 1998 Nick Clifton <nickc@cygnus.com> + + The following modifications are courtesy of Anthony Thompson, + athompson@cambridge.arm.com: + * libc/sys/arm/syscalls.c: Initialise and track stdin/out/err for + boith RDI and RDP monitors. + * libc/sys/arm/crt0.S: Call initialise_monitor_handles() for both + RDI and RDP monitors. + +Wed Apr 29 15:22:15 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * configure.in (links): Added -DHAVE_GETTIMEOFDAY for arm and thumb. + * libc/sys/arm/syscalls.c (_gettimeofday _times): Added functions. + (_swiopen): Fixed open flags to treat write with append as just append. + (_swilseek): Fixed lseek support to properly handle offsets from SEEK_END. + * libc/sys/arm/sys/param.h: New file to override param.h for ARM. + +Fri Apr 24 18:00:09 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/memcpy.S (L_odddst, big endian version): + When needing to transfer an initial 2-byte-word, store as + two single bytes. + +Wed Apr 22 17:56:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/sys/sh/crt0.S (start): Handle __SH4_SINGLE_ONLY__ like + __SH3E__ . + * libc/machine/sh/memcpy.S (DELAYED_BRANCHES, SL): Likewise. + * libc/include/machine/ieeefp.h (_DOUBLE_IS_32BITS): Likewise. + +Wed Apr 22 12:28:03 1998 Michael Meissner <meissner@cygnus.com> + + * configure.in (target_cflags): If --enable-target-optspace, use + -Os to compile newlib rather than -O2. Default to using -Os for + d10v, d30v and m32r if --{enable,disable}-target-optspace is not + used. + +Tue Apr 21 23:13:34 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/machine/setjmp.h: change sigsetjmp and + siglongjmp definitions to use an array instead of a struct + for __CYGWIN32__ + +Tue Apr 14 11:47:47 1998 Doug Evans <devans@canuck.cygnus.com> + + * libc/reent/impure.c (__ATTRIBUTE_IMPURE_DATA__): Fix spelling. + +Mon Apr 6 15:05:08 1998 Jonathan Larmour <jlarmour@cygnus.co.uk> + + * libc/string/strxfrm.c: fix to get correct return value + +Wed Apr 1 16:09:05 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/crt0.S: Set top of RAM to be 0x800000 for PE + builds. Make mode change labels global so that they will be seen + by the debugger. + +Wed Mar 18 09:45:10 1998 Nick Clifton <nickc@cygnus.com> + + * configure.in (links): Do not use ARM debiugging protocols for PE + builds. + + * libc/sys/arm/syscalls.c (_sbrk): Add "_sbrk: " to error + message. + +Fri Mar 13 11:24:34 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/stdio/findfp.c (__sinit): Made stdout default to + line buffered mode as defined by ANSI. + +Tue Mar 10 11:41:26 1997 Bob Manson <manson@charmed.cygnus.com> + + * libc/include/sys/itimer.h: New file. + + * libc/signal/signal.c (__sigtramp_r,__sigtramp): New functions. + +Mon Mar 9 14:19:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/machine/sh/memcpy.S: (_memcpy): Fix for execute/memcpy-1.c + failure. + +Fri Feb 27 13:56:10 1998 Michael Meissner <meissner@cygnus.com> + + * libc/machine/d30v/setjmp.S (longjmp): Fix order of parallel + insns. + +Wed Feb 25 09:29:54 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (_open): Add varags to conform to prototype. + +Tue Feb 24 18:00:13 1998 Michael Meissner <meissner@cygnus.com> + + * libc/machine/d30v/{setjmp.S,Makefile.in}: New files for D30V + support. + + * libc/include/machine/setjmp.h: Add D30V support. + + * configure.in (d30v-*): Add d30v machine directory. + +Mon Feb 23 09:32:58 1998 Mark Alexander <marka@cygnus.com> + + * configure.in: Don't use libc/sys/sysmec for MN10300; it's + been replaced with libgloss/mn10300. + +Sat Feb 21 17:44:43 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/stdlib/mallocr.c: remove __malloc_copy routine now that + it is no longer needed. + +Thu Feb 19 16:15:10 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: add sigpause proto for Cygwin32 + +Wed Feb 18 23:51:08 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/stdio/fdopen.c (fdopen): Make all writes go to the end of + the file when O_APPEND is set, wherever the EOF happens to be at + that time. + +Wed Feb 18 23:25:02 1998 Geoffrey Noer <noer@cygnus.com> + + patch from cgf@bbc.com (Christopher Faylor): + * libc/stdio/freopen.c (freopen): Conform to standard UNIX + convention of closing fp prior to attempting to open the file + argument. This allows correct operation when reopening + stdin/stdout/stderr. Replaces last freopen.c patch. + +Wed Feb 18 16:27:40 1998 Geoffrey Noer <noer@cygnus.com> + + patch from cgf@bbc.com (Christopher Faylor): + * libc/stdio/freopen.c: freopen was not preserving the fd + of the stream being operated on. This confuses programs that + expect that the handles for stdout and stderr will be 1 and 2. + +Mon Feb 16 23:34:07 1998 Andrew Cagney <cagney@b1.cygnus.com> + + * libc/sys/d10v/crt0.S (_start): Set PSW{SW} - select SPU. + +Thu Feb 12 15:09:20 1998 Ranjith Kumaran <ranjith@cygnus.com> + + * libc/sys/go32/longjmp.S: Fix longjmp to not return 0. + +Wed Feb 11 17:50:45 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/powerpc/setjmp.S (setjmp, longjmp): Alignment code + altered to not use a branch. Also added hint that last + bclr in longjmp will likely result in branch. + + +Mon Feb 9 03:44:02 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/crt0.c: add missing args to main() extern + +Fri Feb 6 16:32:32 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/crt0.S (_start): Initialise _ctbp even for + v850 builds. + + * configure.in: Add -msmall-sld to target_cflags for v850 builds. + +Wed Feb 4 16:56:20 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/powerpc/setjmp.S (longjmp): Fixed code + that loads FR14 to specify offset of 8 rather than 4 + so it loads from offset 96 (where setjmp stored it). + +Tue Feb 3 18:08:34 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/sh/memcpy.S: (_memcpy): Update to + latest version supplied by customer. + * libc/machine/sh/memset.S (_memset): Ditto. + +Mon Feb 2 16:20:39 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/Makefile.in (OFILES): Add link.o (for + PR14730). + +Mon Feb 2 15:13:26 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/string.h: remove redefinition of ffs + +Wed Jan 28 13:30:14 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: include _ansi.h so _EXFUN is + defined + +Wed Jan 28 10:38:34 1998 Jeff Johnston <jjohnstn@cygnus.com> + + * libc/machine/tic80/setjmp.S: Adding _setjmp to allow + TI Libraries to link to libc.a + +Sat Jan 24 10:15:56 1998 Michael Meissner <meissner@cygnus.com> + + * libc/include/sys/fcntl.h (_open,_fcntl): Add prototypes. + * libc/include/sys/stat.h (_{,f}stat): Ditto. + * libc/include/sys/wait.h (_wait): Ditto. + * libc/include/sys/unistd.h (_close,_fork,_getpid): Ditto. + (_link,_lseek,_read,_sbrk,_unlink,_write): Ditto. + +Fri Jan 23 11:32:10 1998 Michael Meissner <meissner@cygnus.com> + + * libc/machine/d10v/setjmp.S: Change to new ABI. Add simple + minded stabs so function name shows up when running the simulator + with -t. + * libc/sys/d10v/{crt0,trap}.S: Ditto. + +Thu Jan 22 15:57:14 1998 Fred Fish <fnf@cygnus.com> + + * libc/sys/d10v/trap.S: Change syscalls to use trap 15. + * libc/sys/d10v/crt0.S: Use R6 where we used to use R2. + Use R5 where we used to use R3. + +Wed Jan 21 14:22:23 1998 Bill Moyer <billm@cygnus.com> + + * libc/stdlib/getopt.c (getopt): replaced __progname + with nargv[0] to improve portability to imbedded systems. + +Thu Jan 15 12:32:38 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c (initialise_angel_handles): Applied + patch supplied by Tont.Thompson@arm.com to fix the creation of the + stdout file. + +Wed Jan 14 13:00:19 1998 Ian Lance Taylor <ian@cygnus.com> + + * libc/stdio/tmpnam.c (worker): Generate a different file name + each time. + + * libc/posix/popen.c (popen): If __CYGWIN32__, and execing /bin/sh + fails, try an execlp for sh. + + * host/any (INCLUDES): If target_os is cygwin32, then add a -I + option for the winsup include directory. + +Wed Jan 7 17:02:58 1998 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/syscalls.c: Applied patches for Angel based remote + debugging interface from Tony.Thompson@arm.com. + + * libc/sys/arm/crt0.S (_mainCRTStartup): ditto. + * libc/sys/arm/swi.h: ditto. + +Tue Jan 6 14:15:10 1998 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/sys/dirent.h: add __d_dirhash field to + DIR struct used for readdir hashes. + +Thu Jan 1 11:22:22 1998 Jeffrey A Law (law@cygnus.com) + + * libc/string/strchr.c: Use "unsigned chars" as necessary. + +Wed Dec 31 04:25:30 1997 Jeffrey A Law (law@cygnus.com) + + * libc/stdlib/mallocr.c (idx2binblock): Don't lose on 16bit + integer targets. + +Sat Dec 13 15:11:06 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/stdlib/mallocr.c (__malloc_copy): New function, compiled if + INTERNAL_NEWLIB and __CYGWIN32__ and DEFINE_MALLOC. + * libc/include/malloc.h: Add extern "C" if __cplusplus. + (__malloc_copy): Declare. + +Wed Dec 10 12:15:54 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/stdlib/mallocr.c: If INTERNAL_NEWLIB, include + <sys/config.h>. + (POINTER_UINT): Define. + (DEFAULT_TRIM_THRESHOLD): Mark constants as long. + (MALLOC_ALIGNMENT): Don't define if already defined. + (malloc_extend_top): Cast pointers to POINTER_UINT, not unsigned + long. + +Tue Dec 9 19:23:42 1997 Michael Meissner <meissner@cygnus.com> + + * libc/string/memset.c (memset): Fiddle with code so that the long + value being stored is not a stack value. Unroll storing longs 4 + times. + +Tue Dec 9 14:13:18 1997 Jeff Johnston <jjohnstn@cygnus.com> + + * Reduce code size for libm modules. + * libm/math/w_sqrt.c (sqrt): Remove call to kernel_standard + and simply move code into sqrt. + * libm/math/wrf_lgamma.c (lgammaf_r): Likewise. + * libm/math/wr_lgamma.c (lgamma_r): Likewise. + * libm/math/wrf_gamma.c (gammaf_r): Likewise. + * libm/math/wr_gamma.c (gamma_r): Likewise. + * libm/math/wf_sinh.c (sinfh): Likewise. + * libm/math/w_sinh.c (sinh): Likewise. + * libm/math/wf_scalb.c (scalbf): Likewise. + * libm/math/w_scalb.c (scalb): Likewise. + * libm/math/wf_remainder.c (remainderf): Likewise. + * libm/math/w_remainder.c (remainder): Likewise. + * libm/math/wf_pow.c (powf): Likewise. + * libm/math/w_pow.c (pow): Likewise. + * libm/math/wf_log10.c (log10f): Likewise. + * libm/math/w_log10.c (log10): Likewise. + * libm/math/wf_log.c (logf): Likewise. + * libm/math/w_log.c (log): Likewise. + * libm/math/w_lgamma.c (lgamma): Likewise. + * libm/math/wf_lgamma.c (lgammaf): Likewise. + * libm/math/wf_jn.c (jnf): Likewise. + * libm/math/w_jn.c (jn): Likewise. + * libm/math/wf_j1.c (j1f): Likewise. + * libm/math/w_j1.c (j1): Likewise. + * libm/math/wf_j0.c (j0f): Likewise. + * libm/math/w_j0.c (j0): Likewise. + * libm/math/wf_hypot.c (hypotf): Likewise. + * libm/math/w_hypot.c (hypot): Likewise. + * libm/math/wf_gamma.c (gammaf): Likewise. + * libm/math/w_gamma.c (gamma): Likewise. + * libm/math/wf_fmod.c (fmodf): Likewise. + * libm/math/w_fmod.c (fmod): Likewise. + * libm/math/wf_exp.c (expf): Likewise. + * libm/math/w_exp.c (exp): Likewise. + * libm/math/wf_cosh.c (coshf): Likewise. + * libm/math/w_cosh.c (cosh): Likewise. + * libm/math/wf_atanh.c (atanhf): Likewise. + * libm/math/w_atanh.c (atanh): Likewise. + * libm/math/wf_atan2.c (atan2f): Likewise. + * libm/math/w_atan2.c (atan2): Likewise. + * libm/math/wf_asin.c (asinf): Likewise. + * libm/math/w_asin.c (asin): Likewise. + * libm/math/wf_acosh.c (acoshf): Likewise. + * libm/math/w_acosh.c (acosh): Likewise. + * libm/math/wf_acos.c (asocf): Likewise. + * libm/math/w_acos.c (acos): Likewise. + * libm/math/wf_sqrt.c (sqrtf): Likewise. + * libm/math/k_standard.c (_k_standard): Don't require SVID behavior + for embedded systems. + +Mon Dec 8 12:12:58 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/stdlib/mallocr.c (malloc_extend_top): Add patch from Doug + Lea in case of a foreign sbrk. + +Fri Dec 5 23:27:28 1997 Ian Lance Taylor <ian@cygnus.com> + + Incorporate Doug Lea's malloc: + * libc/stdlib/mallocr.c: Completely replaced. + * libc/stdlib/malloc.c: Document malloc_usable_size and memalign. + (realloc): Remove. + * libc/stdlib/calloc.c (calloc): Just call _calloc_r. + * libc/stdlib/mstats.c: Document mallinfo, malloc_stats, and + mallopt. + (mallinfo, malloc_stats, mallopt): New functions. + (_mstats_r): Just call _malloc_stats_r. + * libc/stdlib/malign.c: New file. + * libc/stdlib/mlock.c: New file. + * libc/stdlib/msize.c: New file. + * libc/stdlib/mtrim.c: New file. + * libc/stdlib/realloc.c: New file. + * libc/stdlib/valloc.c: New file. + * libc/stdlib/malloc.h: Remove. + * libc/stdlib/callocr.c: Remove. + * libc/stdlib/Makefile.in (OFILES): Add cfreer.o, freer.o, + malign.o, malignr.o, mallinfor.o, malloptr.o, mallstatsr.o, + mlock.o, msize.o, msizer.o, mtrim.o, pvallocr.o, realloc.o, + reallocr.o, valloc.o, vallocr.o. + (CHEWOUT_FILES): Add mlock.def, mstats.def. + (MALLOC_CFLAGS): New variable. + (mallocr.o): New target, build from mallocr.c. + (freer.o, reallocr.o, callocr.o, cfreer.o, malignr.o): Likewise. + (vallocr.o, pvallocr.o, mallinfor.o, mallstatsr.o): Likewise. + (msizer.o, malloptr.o): Likewise. + (malign.o, mlock.o, msize.o, mtrim.o, realloc.o): New targets. + (valloc.o): New target. + * libc/stdlib/stdlib.tex: Include mlock.def and mstats.def. + * libc/include/malloc.h: Declare struct mallinfo, and new + routines. + * libc/include/stdlib.h (cfree): Correct declaration. + +Tue Dec 2 10:12:16 1997 Nick Clifton <nickc@cygnus.com> + + * libc/include/machine/setjmp.h: Add support for Thumb target. + + * libc/include/machine/ieeefp.h: Add support for Thumb target. + + * configure.in (links): Add support for Thumb target. + +Wed Nov 26 09:56:17 1997 Nick Clifton <nickc@cygnus.com> + + * libc/sys/arm/setjmp.S: Updated with version from branch. + +Thu Nov 20 01:21:43 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/stdio.h: add POSIX-required define L_ctermid + for ctermid + +Wed Nov 19 16:11:40 1997 Michael Meissner <meissner@cygnus.com> + + * configure.in (d30v-*-*): Define ABORT_MESSAGE, SMALL_MEMORY, in + addition to MISSING_SYSCALL_NAMES. + +Mon Nov 17 20:05:05 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/include/sys/config.h: (UINT_MAX, for D10V): Make unsigned. + +Mon Nov 10 22:26:55 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/string.h: change strsignal proto to return + a char *. This eliminates compile problems in gdb resulting + from gdb's definition of strsignal in defs.h. + +Mon Nov 10 17:11:08 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/sys/utime.h: new (moved here from + winsup/include) so as not to conflict with the one in + libc/include. + * libc/include/string.h: add protos for strsignal, strtosigno + +Mon Nov 10 13:49:54 1997 Michael Meissner <meissner@cygnus.com> + + * libc/include/sys/config.h: Define __IEEE_BIG_ENDIAN if d30v. + + * configure.in (d30v-*-*): Add configuration. + +Thu Oct 30 14:01:23 1997 Nick Clifton <nickc@cygnus.com> + + * configure.in (links): Add -DARM_RD[P|I]_MONITOR to target_cflags + to select which kind of debug monitor is in use for an ARM target. + + * libc/sys/arm/crt0.S: New version: Supports Thumb startups and + Angel and Demon debug monitors. Part of this code was supplied by + Tony Thompson at ARM: athompso@arm.com. + +Fri Oct 24 18:57:05 1997 Jeffrey A Law (law@cygnus.com) + + * strncat.c (strncat): Don't call strncpy; strncay has the wrong + semantics when the count is greater than the length of the second + source string. + +Thu Oct 23 01:37:41 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: reorder CYGWIN32 signal numbers + * libc/include/sys/unistd.h: add protos for usleep, truncate, + truncate and ftruncate take off_t, not size_t + +Tue Oct 21 18:42:00 1997 Jim Wilson <wilson@cygnus.com> + + * libc/string/strcat.c (strcat): Add missing comment end. + * libc/string/strncat.c (strncat): Likewise. + +Tue Oct 21 17:23:34 1997 Nick Clifton <nickc@cygnus.com> + + * configure.in (links): Define PREFER_SIZE_OVER_SPEED for v850 + targets. + * libc/string/{memchr.c, memcmp.c, memcpy.c}: Add space + optimised version which is selected if PREFER_SIZE_OVER_SPEED is + defined. + * libc/string/{memset.c, strcat.c, strchr.c}: Likewise. + * libc/string/{strcmp.c, strcpy.c, strlen.c}: Likewise. + * libc/string/{strncat.c, strncmp.c, strncpy.c}: Likewise. + +Mon Oct 13 15:12:35 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/sys/param.h (BIG_ENDIAN): Define if __i386__. + (LITTLE_ENDIAN, BYTE_ORDER): Likewise. + +Thu Oct 9 13:54:44 1997 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/i386/setjmp.S: New file. + * libc/machine/i386/Makefile.in: Delete COPYOFILES. + (OFILES): Add setjmp.o. + (setjmp.o): Add rule for. + * configure.in: Don't set machine_dir for *-*-{go32,sco*,cygwin32}. + +Tue Oct 7 14:01:29 1997 Bill Moyer (billm@cygnus.com) + Jeffrey A Law (law@cygnus.com) + + * libc/string/{memchr.c, memcmp.c, memcpy.c}: Reimplement to run faster. + * libc/string/{memset.c, strcat.c, strchr.c}: Likewise. + * libc/string/{strcmp.c, strcpy.c, strlen.c}: Likewise. + * libc/string/{strncat.c, strncmp.c, strncpy.c}: Likewise. + +Mon Oct 6 14:07:59 1997 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/Makefile.in (crt0.o trap.o): Explicit + rules. + + * libc/include/sys/config.h: Use __v850 to select v850 + endianness. + + * libc/include/machine/setjmp.h: Use __v850 to select v850 jump + buffer size. + + * libc/include/machine/ieeefp.h: Use __v850 to select v850 + endianness. + +Thu Sep 25 14:11:37 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/stdlib/setenv.c: change unsetenv definition to match + style of setenv (with _DEFUN). The string should be a const. + * libc/include/stdlib.h: unsetenv proto should return void. + +Tue Sep 23 18:17:20 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/stdlib.h: define unsetenv proto for __CYGWIN32__ + +Thu Sep 18 12:50:15 1997 Angela Marie Thomas (angela@cygnus.com) + + * libc/stdio/glue.h: remove. + * libc/stdio/findfp.c, libc/stdio/fwalk.c: remove #include "glue.h" + * libc/stdio/Makefile.in: remove glue.h dependencies + +Wed Sep 17 17:42:27 1997 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/crt0.S: Created V850e version. + +Tue Sep 9 10:40:57 1997 Doug Evans <dje@canuck.cygnus.com> + + * configure.in (target_cpu): Add `arc'. + +Tue Sep 9 10:40:42 1997 Joel Sherrill <joel@OARcorp.com> + + * newlib/configure.in (*-*-rtems*): Add -DSIGNAL_PROVIDED and + -DREENTRANT_SYSCALLS_PROVIDED to the target_cflags. + * newlib/libc/include/sys/errno.h: Add ENOTSUP. + * newlib/libc/reent/reent.c: Add _wrapup_reent. + * newlib/libc/sys/rtems/sys/types.h: Avoid redefinitions for go32. + +Sun Sep 7 16:41:41 1997 Gavin Koch <gavin@cygnus.com> + + * libc/machine/mips/setjmp.S: Handle mips16 builds. + +Thu Aug 21 20:05:38 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/stdio.h (siprintf): Declare. + +Mon Aug 18 11:19:13 1997 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/Makefile.in (.c.o): Add rule that includes + TARGET_CFLAGS and NEWLIB_FLAGS. + +Mon Aug 18 11:15:43 1997 Nick Clifton <nickc@cygnus.com> + + * configure.in (links): Add support for v850ea target. + +Mon Aug 18 11:15:43 1997 Nick Clifton <nickc@cygnus.com> + + * configure.in (links): Add support for v850e target. + +Wed Aug 13 19:16:54 1997 Nick Clifton <nickc@cygnus.com> + + * libc/sys/sysnecv850/crt0.S: Remove initial setting of r0 to 0. + +Mon Aug 11 15:49:54 1997 Doug Evans <dje@canuck.cygnus.com> + + * configure.in (arc-*-*): Add support for. + * libc/include/machine/ieeefp.h (__arc__): Add support for the ARC. + +Fri Jul 25 17:37:41 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + + * libc/sys/sh/crt0.S (start): Add fpscr initialization for SH4. + +Thu Jul 24 18:32:17 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/stdlib/bsearch.c (bsearch): remove last unneeded + comparison which accesses invalid memory when the key is + larger than the last member of the array. + * libc/include/machine/setjmp.h: add sigsetjmp, siglongjmp + for CYGWIN32 + * libc/include/sys/unistd.h: add _POSIX defines for CYGWIN32 + +Tue Jul 22 16:03:06 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/stdlib.h (realpath): Declare if __CYGWIN32__ and + not _STRICT_ANSI. + +Thu Jul 10 15:11:52 1997 Doug Evans <dje@canuck.cygnus.com> + + * libm/math/k_standard.c (__kernel_standard): Call fflush(stdout) + ifndef _USE_WRITE, instead of ifdef _USE_WRITE. + +Thu Jul 10 16:00:09 1997 Mike Meissner <meissner@cygnus.com> + + * libc/machine/tic80/setjmp.S (setjmp,longjmp): Use ld.d and st.d + to load/store memory. + +Mon Jul 7 17:38:17 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/sys/fcntl.h: Define _O_* symbols with leading + underscores if _WIN32. + +Wed Jul 2 10:07:20 1997 Doug Evans <dje@canuck.cygnus.com> + + * libm/math/k_standard.c (__kernel_standard): Delete reentrancy + support ifdef _USE_WRITE missed in last change. + From Anders Blomdell <anders.blomdell@control.lth.se>. + +Wed Jun 25 10:18:49 1997 Doug Evans <dje@canuck.cygnus.com> + + * libc/stdio/tmpnam.c (worker): Handle _open_r being stubbed out. + (_tmpnam_r, _tempnam_r): Update. + +Wed Jun 25 00:16:55 1997 Mark Alexander <marka@cygnus.com> + + * libc/machine/sparc/setjmp.S: New file. + * libc/machine/sparc/Makefile.in: Add setjmp. + * libc/include/machine/setjmp.h: Increase jmpbuf size for sparc. + +Tue Jun 24 23:27:38 1997 Mark Alexander <marka@cygnus.com> + + * libc/include/machine/setjmp.h: Use __TIC80__ instead of __tic80__. + +Tue Jun 24 14:53:40 1997 Doug Evans <dje@canuck.cygnus.com> + + From Joel Sherrill <joel@oarcorp.com>. + * libc/stdlib/getenv.c (_findenv): Avoid dereferencing null `environ'. + + Add rtems support. From Joel Sherrill <joel@oarcorp.com>. + * configure.in: Recognize *-*-rtems*. + * libc/sys/rtems/{Makefile.in,crt0.c,dummysys.c}: New files. + * libc/sys/rtems/sys/{features.h,sched.h,siginfo.h,signal.h, + time.h,times.h,types.h}: New files. + * libc/sys/rtems/include/{limits.h,signal.h,time.h}. New files. + +Fri Jun 20 11:13:16 1997 Geoffrey Noer <noer@cygnus.com> + + patch from sos@prospect.com.ru (Sergey Okhapkin): + * include/sys/wait.h: correct operator precidence bug + in WIFSIGNALED + +Wed Jun 18 22:08:27 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/stdlib.h: remove unsetenv proto since it conflicts + with newlib's unsetenv function + * libc/sys/cygwin32/sys: new directory for includes + * libc/sys/cygwin32/sys/dirent.h: move cygwin32's dirent.h + here from winsup/include/sys + +Mon Jun 16 21:02:22 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/unistd.h: _exit should only be + labelled noreturn when not __CYGWIN32__ + * libc/include/stdlib.h: for __CYGWIN32__, add proto for unsetenv + * libc/include/sys/signal.h: add SIGIO to _WIN32 list and + increment NSIG + +Thu Jun 12 18:52:41 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/sys/time.h: Only define timeval and timezone if + _GNU_H_WINDOWS32_SOCKETS is not defined. + * libc/include/sys/stat.h: If _WIN32, define _S_IFMT, etc. + +Wed Jun 11 09:46:26 1997 Jeffrey A Law (law@cygnus.com) + + * libc/machine/mn10200/setjmp.S: Implement setjmp/longjmp + * libc/machine/mn10300/setjmp.S: Likewise. + + * libc/sys/sysmec/crt0.S: Use "call" instead of "calls" for + the mn10300 (more relaxing opportunities). + +Tue Jun 10 17:24:45 1997 Mike Meissner <meissner@cygnus.com> + + * configure.in (powerpc*-*-{eabi,elf,linux,rtems,sysv,solaris}): + Build libraries with -mstrict-align. + +Fri Jun 6 14:07:59 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/string/strlwr.c: New file. + * libc/string/strupr.c: New file. + * libc/include/string.h: Declare strlwr and strupr. + * libc/string/Makefile.in (OFILES): Add strlwr.o and strupr.o. + (CHEWOUT_FILES): Add strlwr.def and strupr.def. + (strlwr.o, strupr.o): New targets. + * libc/string/strings.tex: Include strlwr and strupr docs. + + * libc/include/sys/types.h: Don't define u_char, et. al., if + _GNU_H_WINDOWS32_SOCKETS is defined. Likewise for fd_set, + et. al. Make FD_SETSIZE default 64 rather than 60. Define + _types_fd_set rather than fd_set, and define fd_set as a macro. + + * libc/include/malloc.h: New file. + + * libc/include/string.h: Define strcmpi, stricmp, strncmpi, and + strnicmp if they are not already defined. + + * libc/include/time.h: If __CYGWIN32__, declare tzset and define + _timezone, _daylight, and _tzname. + +Wed Jun 4 12:51:16 1997 Doug Evans <dje@canuck.cygnus.com> + + * configure.in: Sort all configuration tables. + + From Joel Sherrill <joel@oarcorp.com> + * Makefile.in (stmp-targ-include): Copy $(sys_dir)/include/*.h. + +Tue Jun 3 14:47:46 1997 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/sys/signal.h: Don't include <sys/types.h>. Just + use int when declaring kill. + + * libc/include/sys/timeb.h: New file. + +Mon Jun 2 12:06:58 1997 Geoffrey Noer <noer@cirdan.cygnus.com> + + * libc/include/sys/time.h: add itimer support for Cygwin32 + +Mon May 19 11:56:46 1997 Mike Meissner <meissner@cygnus.com> + + * libc/stdlib/abort.c (abort): If ABORT_MESSAGE is defined, write + out a message that abort was called to stderr. + +Fri May 16 15:02:59 1997 Bob Manson <manson@charmed.cygnus.com> + + * libc/sys/sysmec/fstat.c (_fstat): Set st_blksize to 4096 + so that libio doesn't freak. + + * libc/sys/sysmec/sbrk.c (_sbrk): The argument is a size_t, not + int. + + * libc/stdlib/mallocr.c (_morecore_r): Use size_t for + memory sizes, not int. + +Wed May 14 21:16:58 1997 Bob Manson <manson@charmed.cygnus.com> + + * libm/math/ef_hypot.c: Use long constants where + appropriate. + * libm/math/ef_sqrt.c: Ditto. + + * libc/sys/sysmec/times.c(_times): Change to times. + + * libc/sys/sysmec/read.c(_read): The third argument is + size_t. + * libc/sys/sysmec/write.c (_write): Ditto. + + * libc/sys/sysmec/lseek.c: Include unistd.h for off_t. + (_lseek): It's off_t for the second argument. + +Wed May 14 15:23:36 1997 Mike Meissner <meissner@cygnus.com> + + * libc/include/sys/config.h (__IEEE_LITTLE_ENDIAN): Define here, + as well as machine/ieeefp.h. + +Thu May 8 15:47:25 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: add signal protos for winsup + functions (when __CYGWIN32__), include types.h + * libc/include/sys/types.h: Change __go32_types__ internal + define to __MS_types__ since it's used for more than just + GO32 configs. Define this if GO32, __MSDOS__, or _WIN32 are + defined. + * libc/include/sys/unistd.h: add ftruncate proto for + winsup functions (when __CYGWIN32__) + +Fri Apr 25 10:10:16 1997 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/h8300hms/sbrk.c (stack_ptr): Add definition. + +Thu Apr 24 15:46:51 1997 Mike Stump <mrs@cygnus.com> + + * libc/include/machine/setjmp.h: Add tic80 support. + * libc/machine/tic80/setjmp.S: Likewise. + +Tue Apr 22 16:54:40 1997 Geoffrey Noer <noer@pizza.cygnus.com> + + * libc/sys/cygwin32/crt0.c: Add reference to main() so we can + link programs from libraries only (such as in the X11 + distribution) + +Mon Apr 21 15:02:12 1997 Fred Fish <fnf@cygnus.com> + + * libc/sys/arm/syscalls.c (signal): Remove stub, signal() + supplied elsewhere in newlib. + +Mon Apr 14 16:25:55 1997 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (INSTALL): Change install.sh to install-sh. + +Fri Apr 11 17:04:02 1997 Jason Molenda (crash@godzilla.cygnus.co.jp) + + * README: update WWW address for on-line documentation. + +Wed Apr 9 00:38:13 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/sys/signal.h: for _WIN32, define SIGCONT and + increment NSIG + +Mon Apr 7 23:54:00 1997 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/crt0.S: Update for new calling conventions on the + mn10300. + * libc/sys/sysmec/trap.S: Don't compare a register to itself. + +Tue Mar 25 08:47:43 1997 Jeffrey A Law (law@cygnus.com) + + * libc/sys/arm/syscalls.c: Fix/add stack/heap collision detection. + * libc/sys/d10v/syscalls.c: Likewise. + * libc/sys/h8300hms/sbrk.c: Likewise. + * libc/sys/h8500hms/syscalls.c: Likewise. + * libc/sys/m88kbug/syscalls.c: Likewise. + * libc/sys/sh/syscalls.c: Likewise. + * libc/sys/sysmec/sbrk.c: Likewise. + * libc/sys/sysnecv850/sbrk.c: Likewise. + * libc/sys/w65/syscalls.c: Likewise. + * libc/sys.tex: Update sbrk sample code to include stack/heap collision. + +Tue Mar 18 14:14:34 1997 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/trap.S: Use "syscall" to trigger an + emulated syscall instead of "trap". + +Fri Mar 14 11:26:13 1997 Michael Meissner <meissner@cygnus.com> + + * libc/sys/d10v/trap.S (__trap0): Use trap 15 for system calls, + not trap 0. + +Sun Mar 9 23:27:04 1997 Doug Evans <dje@seba.cygnus.com> + + * configure.in (m32r-*-*): Add -msdata=sdata to target_cflags. + +Sat Mar 8 09:05:01 1997 Fred Fish <fnf@cygnus.com> + + * libc/machine/arm/Makefile.in: Fix comment, is for "arm" + not "sh". + * libc/machine/m32r/Makefile.in: Fix comment, is for "m32r" + not "d10v". + * libc/sys/tic80/crt0.c: New file for TIc80. + * libc/sys/tic80/Makefile.in: New file for TIc80. + * libc/machine/tic80/Makefile.in: New file for TIc80. + +Wed Mar 5 11:32:12 1997 J.T. Conklin <jtc@cygnus.com> + + * libc/machine/sh/memcpy.S: New file. + * libc/machine/sh/memset.S: New file. + * libc/machine/sh/Makefile.in (OFILES): Add memcpy.o and memset.o + +Thu Feb 27 16:27:55 1997 Fred Fish <fnf@cygnus.com> + + * libc/include/machine/ieeefp.h (_IEEE_LITTLE_ENDIAN): Define + for TIc80. + +Wed Feb 26 13:43:39 1997 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/crt0.S: Handle new calling conventions for + the mn10200. + +Wed Feb 26 07:11:03 1997 Michael Meissner <meissner@cygnus.com> + + * libc/machine/powerpc/setjmp.S (longjmp): Correct return status + (patch from andrew@pogo.WV.TEK.COM). + +Fri Feb 14 11:49:28 1997 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/m32r/setjmp.S (setjmp): Save r12. + (longjmp): Restore r12. Fix code that handles returning 1 if passed 0. + +Mon Feb 10 10:02:34 1997 Fred Fish <fnf@cygnus.com> + + * configure.in: Add cases for "tic80" to set machine_dir, + sys_dir, and syscall_dir. + +Sun Feb 2 17:57:15 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/sys/cygwin32/crt0.c: initialize floating pt registers + +Wed Jan 29 15:57:38 1997 Geoffrey Noer <noer@cygnus.com> + + * libc/include/math.h: avoid conflicts with ANSI C++ <exception> + +Mon Jan 27 12:50:01 1997 Doug Evans <dje@seba.cygnus.com> + + * libc/machine/m32r/setjmp.S: Use proper comment delimiter. + Use proper constant prefix. + +Fri Jan 24 10:59:04 1997 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/*.c: Don't cast args to syscall to integers, + that loses on the mn10200 where ints and pointers are different + sizes. + +Tue Jan 14 13:29:55 PST 1997 Jeremy Allison <jra@cygnus.com> + + * configure.in: Added -DSIGNAL_PROVIDED to cygwin32 + target as signal is provided in winsup. + +Tue Jan 14 11:10:13 1997 Jeremy Allison <jra@cygnus.com> + + * libc/include/sys/process.h: Corrected const definitions + in spawn functions. Added cwait. + +Thu Jan 2 12:22:41 1997 Jeffrey A Law (law@cygnus.com) + + * libc/include/machine/ieeefp.h: mn10200 uses 16bit ints and 32bit + doubles. + * libc/include/sys/config.h: Similarly. + +Tue Dec 31 18:36:14 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in (sparc-sun-sunos*): Add -DSIGNAL_PROVIDED to the + target_cflags. + (i[3456]86-*-sco*): Ditto. + + * libc/signal/Makefile.in (OFILES): Add signal.o. + (CFILES): Add signal.c. + + * libc/signal/raise.c (_raise_r): Only compile code if + SIGNAL_PROVIDED is defined. + + * libc/signal/signal.c: Redo whole file so that it works with + current newlib. Use _kill_r if no signal handler provided. + + * libc/sys/{go32,sparc64,sysmec}/Makefile.in: Delete raise and + signal stubs. + * libc/sys/sysvnecv70/Makefile.in: Ditto. + * libc/sys/sysnecv850/Makefile.in: Ditto. + + * libc/sys/{go32,sparc64}/signal.c: Delete, stub no longer used. + * libc/sys/sysmec/{raise,signal}.c: Ditto. + * libc/sys/sysvnecv70/signal.s: Ditto. + * libc/sys/sysnecv850/raise.c: Ditto. + + * libc/sys/sysnecv850/kill.c (_kill): Encode signal # so that + simulator and debugger can tell the difference between a signal + being raised and an exit system call. + + * NEWS: Document software signals being provided. + +Mon Dec 23 11:54:19 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/reent/impure.c (_REENT_ATTR): Delete in favor of + __ATTRIBUTE_IMPURE_PTR__. Move PowerPC definition to + include/sys/config.h. + (impure_data): Use __ATTRIBUTE_IMPURE_DATA__ for attributes. + Change from 'inpure_data'. + (_impure_ptr): Use __ATTRIBUTE_IMPURE_PTR__ for attributes. Use + &impure_data, not &inpure_data. + + * libc/include/sys/config.h (__ATTRIBUTE_IMPURE_PTR__): If PowerPC + and and System V ABI, define so that _impure_ptr lives in the + .sdata section. + +Sun Dec 22 23:33:05 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/sys/reent.h (__ATTRIBUTE_IMPURE_PTR__): Define as + nothing if not defined. + (_impure_ptr): Use __ATTRIBUTRE_IMPURE_PTR__, so a machine can set + its attributes. + + * libc/include/sys/config.h (__ATTRIBUTE_IMPURE_PTR__): + +Wed Dec 18 10:12:04 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/crt0.S: Fix mn10200 stuff. + * libc/sys/sysmec/trap.s: Handle mn10200 too. + * libc/machine/mn10200/setjmp.S: Fix mn10200 stuff. + +Mon Dec 16 10:05:36 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/crt0.S: Handle mn10200 too. + +Fri Dec 13 11:05:20 1996 Jeremy Allison <jra@cygnus.com> + + * libc/include/sys/errno.h: Added net errno's. + +Wed Dec 11 16:24:25 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/misc/ffs.c: New file to support ffs function for GCC test + gcc.c-torture/execute/960909-1.c. + + * libc/misc/Makefile.in ({O,CHEWOUT_}FILES): Add ffs. + +Sat Dec 7 10:12:37 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/crt0.S: Handle underscore prefix. + * libc/sys/sysmec/trap.S: Likewise. + +Fri Dec 6 15:08:49 1996 Jim Wilson <wilson@cygnus.com> + + * configure.in (mips*vr4300*-*-*): Delete use of sys/vr4300. + * libc/sys/vr4300/{Makefile.in,crt0.S,syscalls.c}: Delete. + +Wed Dec 4 16:25:27 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/signal.c: Dummy file. + * libc/sys/sysmec/Makefile.in: Build it. + +Wed Nov 27 13:10:18 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/machine/mips/machine/regdef.h: Define pc as $pc for + mips16. + +Mon Nov 25 09:58:28 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysmec/{crt0.S,trap0.S}: Actually try to implement + c-startup and simulator traps. + + + * libc/sys/sysmec/crt0.S: Remove bogus '_' symbol prefixing + * libc/sys/sysmec/trap0.S: Likewise. + +Sat Nov 23 09:01:03 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/stdlib/mallocr.c (ROUND_TO): If SMALL_MEMORY, set to 0x7 to + round to double word alignment. + (_morecore_r): Combine rounding up pointers to both ROUND_TO and 8 + byte alignment. + + * libc/include/sys/config.h (__IEEE_BIG_ENDIAN): Define if d10v. + + * libc/sys/d10v/syscalls.c (_sbrk): Add better checks for running + out of memory. + +Mon Nov 18 13:08:26 1996 Jeffrey A Law (law@cygnus.com) + + * configure.in: Handle mn10200 and mn10300. + * libc/include/machine/{ieeefp.h,setjmp.h}: Likewise. + * libc/include/sys/config.h: Likewise. + * libc/sys/sysmec: New directory for mec stuff. + * libc/machine/mn10300: New directory for mn10300 stuff. + * libc/machine/mn10200: Similarly for mn10200 stuff. + +Fri Nov 15 16:41:41 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/arm/crt0.S: Use .text, not .section .text. + * libc/sys/arm/syscalls.c: Rewrite to set errno properly. + + * libc/include/sys/types.h (_ST_INT32): New macro, local to file. + (nlink_t): Change type from unsigned int to unsigned short. + (mode_t): Ensure size is 32 bits even if int is 16. + * libc/include/sys/stat.h (st_nlink): Change type to nlink_t. + (st_spare[123]): Change type from int to long. + +Fri Nov 15 11:41:50 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/sys/d10v/syscalls.c (_sbrk): Align initial heap_end to 8 + byte boundary. + + * configure.in (d10v*): Define SMALL_MEMORY. + +Mon Nov 11 10:30:44 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in (powerpc*-{eabi,elf,linux,rtem,sysv,solaris}*): Add + -mrelocatable-lib and -mno-eabi flags. + +Mon Nov 11 09:01:39 1996 Jeffrey A Law (law@cygnus.com) + + * libc/machine/h8300/memcpy.S: Fix comments to reflect reality. + Fix handling of mis-aligned source operand when both the + destination & length are properly aligned. + +Wed Oct 30 09:41:11 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850/Makefile.in (OFILES): Add + times.o, time.o and gettime.o + * libc/sys/sysnecv850/{time.c, times.c, gettime.c}: New files. + * libc/sys/sysnecv850/sys/syscall.h: Add SYS_times and + SYS_gettimeofday. + +Tue Oct 29 13:40:09 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850/Makefile.in (OFILES): Add access.o + * libc/sys/sysnecv850/access.c: New file. + +Mon Oct 21 19:47:02 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/sys/vr4300/Makefile.in (clean): Remove $(OFILES). + + * libc/stdlib/mprec.h (word0, word1): Use __uint32_t, not unsigned + long. + +Mon Oct 21 14:43:07 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850/crt0.S: Initialize ep and gp registers. + +Thu Oct 17 11:47:16 1996 Doug Evans <dje@seba.cygnus.com> + + * libc/include/machine/{ieeefp.h,setjmp.h}: Add m32r support. + * libc/include/sys/config.h: Add m32r support. + +Wed Oct 16 23:08:05 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850/v850.ld: Remove. It doesn't belong + here. + +Wed Oct 16 21:18:07 1996 Mark Alexander <marka@cygnus.com> + + * libc/include/machine/setjmp.h: Add D10v support. + +Tue Oct 15 22:28:26 1996 Jeffrey A Law (law@cygnus.com) + + * configure.in: Configure the "libc/syscalls" directory for + the v850. + + * libc/sys/sysnecv850/{close.c, execve.c, fork.c}: Add missing '_'. + * libc/sys/sysnecv850/{fstat.c, getpid.c, kill.c}: Likewise. + * libc/sys/sysnecv850/{lseek.c, open.c, read.c}: Likewise. + * libc/sys/sysnecv850/{sbrk.c, stat.c, unlink.c}: Likewise. + * libc/sys/sysnecv850/{wait.c, write.c}: Likewise. + +Tue Oct 15 16:24:39 1996 Stu Grossman (grossman@critters.cygnus.com) + + * libc/sys/sysnecv850/crt0.S (start): Allocate spill space on + stack for args for main and other routines. Zero out args for + main. + + * libc/sys/sysnecv850/v850.ld: New. Linker script to layout memory + correctly. + +Tue Oct 15 11:51:42 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/stdio/findfp.c (std): Remove extraneous ';' after + function. + + * libc/sys/d10v/sys/syscall.h (SYS_kill): Add. + + * libc/sys/d10v/{syscalls.c,trap.S} (_kill,_getpid): Make these + real system calls now. + + * libc/stdio/setvbuf (setvbuf): Cast pointers to _POINTER_INT + before casting them to int. + * libc/stdio/tmpnam.c (_tempnam_r): Ditto. + + * libc/stdlib/mallocr.c (_morecore_r): Use _POINTER_INT when + aligning pointer. + * libc/string/memset.c (memset): Ditto. + + * libc/stdio/vfscanf.c (__svfscanf): When converting to pointer, + first convert ints to _POINTER_INT to eliminate GCC warning. + + * libc/stdio/vfprintf.c (_vfprintf_r): Use _POINTER_INT when + processing %p. + + * libm/math/ef_scalb.c (__ieee754_scalbf): Cut down range to 32000 + from 65000 if ints are only 16 bits. + + * libm/math/sf_scalbn.c (scalbnf): Cut down overflow test to 30000 + from 50000 if ints are only 16 bits. + + * libc/include/sys/config.h (_POINTER_INT): New macro, to give an + int type that is the same size as a pointer. + + * libc/misc/dprintf.c (__dprintf): Use _POINTER_INT when + processing %p. + (get_number): Explicitly cast number to long before shifting by 16 + or 24, in case ints are short. + + * libc/include/sys/config.h (_POINTER_INT): Define as short. + +Wed Oct 9 16:54:32 1996 Jeremy Allison <jra@cygnus.com> + + * libc/string.h: Added ffs, removed swab. + * libc/sys/errno.h: Added EOPNOTSUPP. + * libc/sys/unistd.h: Added swab. + +Thu Oct 3 17:08:50 1996 Jeremy Allison <jra@cygnus.com> + + * libc/include/sys/stat.h: Added fchmod. + * libc/include/sys/unistd.h: Added fsync. + +Tue Oct 1 17:34:08 1996 Jeremy Allison <jra@cygnus.com> + + * libc/include/sys/errno.h: Added defines for EPFNOSUPPORT (96) + and ECONNRESET (104) for cygwin32. + +Tue Oct 1 16:24:05 1996 Gavin Koch <gavin@cygnus.com> + + * libc/sys/sysnecv850/_exit.c: added _do_dtors to + do the static destructors. + +Mon Sep 30 15:59:05 1996 Stu Grossman (grossman@critters.cygnus.com) + + * libc/sys/sysnecv850/trap.S: Change I/O to use trap 31. + +Mon Sep 30 12:02:50 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/m32r/{Makefile.in,setjmp.S}: New files. + * configure.in: Recognize m32r-*-*. + +Mon Sep 30 00:34:41 1996 James G. Smith <jsmith@cygnus.co.uk> + + * libc/sys/arm/trap.S (__rt_stkovf_split_big, + __rt_stkovf_split_small): Added default software stack overflow + handlers, which just call SWI_Exit. + * libc/sys/arm/crt0.S (_mainCRTStartup): Simple software stack + limit initialisation. + +Fri Sep 27 13:08:03 1996 Mark Alexander <marka@cygnus.com> + + * libc/sys/d10v/{trap.S,sys/syscall.h}: Add time() function. + +Fri Sep 27 12:32:00 1996 Jeremy Allison <jra@cygnus.com> + + * libc/include/sys/types.h: Added ssize_t definition. + +Wed Sep 25 14:52:18 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/machine/d10v/setjmp.S: Use ';' for comments. + * libc/sys/d10v/{crt0.S,trap.S}: Ditto. + + * libc/machine/d10v/setjmp.S (longjmp): Use exef0t || instead of + branch around a single ldi instruction. + + * libc/sys/d10v/crt0.S (_start): Use auto-increment to zero bss. + Call exit, instead of just issuing a stop instruction. + +Sun Sep 22 17:26:55 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/sys/d10v/{trap.S,syscalls.c}: Add -mint32 support. + +Fri Sep 20 13:23:12 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/stdlib/mprec.h: Explicitly declare all large constants as + longs, and then cast them to __uint32_t. + + * libc/include/sys/config.h: Protect against multiple inclusions. + +Tue Sep 17 13:10:33 1996 Mark Alexander <marka@cygnus.com> + + * configure.in (d10v*): Set syscall_dir. + +Sun Sep 15 10:41:59 1996 Mark Alexander <marka@cygnus.com> + + * libc/sys/d10v/crt0.S: Set stack pointer. + +Thu Sep 12 13:02:38 1996 Mark Alexander <marka@cygnus.com> + + * libc/sys/d10v/{trap.S, syscalls.c}: Rewrite most system calls + in assembly for efficiency. Change calling convention to allow + long ints to be returned. + +Wed Sep 11 10:28:18 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/machine/v850/Makefile.in (setjmp.o): Fix dependency. + +Thu Sep 5 19:23:06 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/posix/execvp.c (execvp): Don't search PATH if file has '/'. + Handle empty entries in $PATH. + +Tue Sep 03 18:15:02 1996 Mark Alexander <marka@cygnus.com> + + * libc/machine/d10v/setjmp.S: Make it really work. + +Tue Sep 3 12:16:26 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/sys/sh/crt0.S: If __ELF__, use ELF section attributes for + the .stack section. + +Tue Sep 3 10:08:45 1996 Jeffrey A Law (law@cygnus.com) + + * sys/sysnecv850/sys/file.h: Remove. + * sys/sysnecv850/sys/syscall.h: New file. + * sys/sysnecv850/{misc.c,syscalls.c,malloc.c}: Deleted. + * sys/sysnecv850/{chmod.c, chown.c, close.c, creat.c} New files. + * sys/sysnecv850/{execv.c, execve.c, fork.c, fstat.c} New files. + * sys/sysnecv850/{getpid.c, isatty.c, kill.c, lseek.c} New files. + * sys/sysnecv850/{open.c, pipe.c, raise.c, read.c} New files. + * sys/sysnecv850/{stat.c, unlink.c, utime.c, wait.c} New files. + * sys/sysnec850/trap.S: New file. + * sys/sysnecv850/{_exit.c, write.c}: Use new TRAP0 mechanism for + syscalls. + * sys/sysnecv850/crt0.S: Use cmp/bl, not tst/bz. + * sys/sysnec850/sbrk.c: New version. + +Sun Sep 1 20:08:27 1996 Jeffrey A Law (law@cygnus.com) + + * sys/sysnecv850/crt0.S: Fix order of comparison args. Loop + as long as r6 is less than r7. + +Sun Sep 1 13:54:19 1996 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (mostlyclean): Separate from clean target. Don't + remove *.a or targ-include. + * libc/machine/sparc/Makefile.in (mostlyclean): New target. + +Sun Sep 1 11:35:26 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/machine/ieeefp.h (_DOUBLE_IS_32BITS): Define for + d10v. + (__SMALL_BITFIELDS): Ditto. + + * libc/include/sys/config.h (_DOUBLE_IS_32BITS): Define for d10v. + +Sat Aug 31 16:42:36 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850/misc.c (raise, getpid, kill): Remove '_' + prefix. + + * libc/sys/sysnecv850/sbrk.c (sbrk): Remove '_' prefix. + * libc/sys/sysnecv850/syscalls.c (read, lseek, close): Likewise. + * libc/sys/sysnecv850/syscalls.c (fstat, open, close): Likewise. + * libc/sys/sysnecv850/write.c (write): Likewise. + + * libc/sys/sysnecv850/crt0.S: Don't try to zero out an empty + .bss. + +Fri Aug 30 11:18:45 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/sys/config.h: Define INT_MAX, UINT_MAX + appropriately for D10V, depending on -mint16/-mint32. + +Thu Aug 29 16:09:37 1996 Mark Alexander <marka@cygnus.com> + + * configure.in: Add cases for D10V. + +Thu Aug 29 17:03:23 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in (i[345]86-*-*): Recognize i686 for pentium pro. + +Wed Aug 28 21:05:52 1996 Jeffrey A Law (law@cygnus.com) + + * libc/include/machine/ieeefp.h: Fix typo. + +Wed Aug 28 19:47:55 1996 Mark Alexander <marka@cygnus.com> + + * libc/sys/d10v: New directory for D10V stuff. + * libc/include/machine/ieeefp.h: Add D10V defines. + +Mon Aug 26 13:34:58 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/include/sys/errno.h: Add winsup/include/sys/errno.h values: + ELOOP, ENOBUFS, EAFNOSUPPORT, EPROTOTYPE, ENOTSOCK, ENOPROTOOPT, + ESHUTDOWN, ECONNREFUSED, EADDRINUSE, ECONNABORTED, EWOULDBLOCK. + * libc/string/strerror.c (strerror): Add them. + +Thu Aug 22 16:38:19 1996 Jeffrey A Law (law@cygnus.com) + + * libc/sys/sysnecv850: New directory for v850 stuff. + + * libc/machine/v850: New directory for v850 stuff. + * libc/machine/v850/setjmp.S: setjmp/longjmp support. + + * configure.in: Add support for the v850. + + * libc/include/machine/ieeefp.h: Add v850 defines. + * libc/include/machine/setjmp.h: Likewise. + * libc/include/sys/config.h: Add v850 defines. + +Sat Aug 17 04:06:36 1996 Geoffrey Noer <noer@cygnus.com> + + * libc/include/machine/ieeefp.h + * libc/include/machine/setjmp.h + * libc/include/sys/fcntl.h + * libc/include/sys/signal.h + * libc/include/sys/types.h + * libc/stdlib/system.c: + Fix preprocessor defines to match new scheme (_WIN32 for WIN32 + API availability, __CYGWIN32__ for cygwin32 environment specific). + +Thu Aug 15 17:09:21 1996 Geoffrey Noer <noer@cygnus.com> + + * libc/include/stdlib.h: add multibyte character functions. Add + __eprintf for assert. + +Thu Aug 15 11:15:40 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/stdlib/malloc.h (MALLOC_ALIGNMENT): Use either pointer + arithmetic or __alignof__ to properly get the alignment, instead + of hardwiring it to 4. + +Wed Aug 14 23:43:28 1996 Geoffrey Noer <noer@cygnus.com> + + * libc/stdio/fseek.c: add fflush call to adjust seek offset + on append stream (fix from NetBSD sources), adjust curoff offset + for ungetc's benefit. + * libc/stdio/ftell.c: adjust curoff offset for ungetc's benefit. + * libc/stdio/rewind.c: replace code with up to date NetBSD + code to undo hacks made to work around above problem of not + having fflush call mentioned above + +Fri Aug 2 18:28:07 1996 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/reent/{closer.c, execr.c, fstatr.c, linkr.c, lseekr.c, + openr.c, readr.c, sbrkr.c, signalr.c, statr.c, timer.c, writer.c}: + Partially revert last changes. The thread specific errno is set + iff if the underlying syscall fails and the global errno is not + zero. + +Fri Jul 19 11:41:52 1996 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/reent/filer.c: Removed files, all functions have split out + into their own files. + * libc/reent/{closer.c, lseekr.c, openr.c, readr.c, writer.c}: + New files containing functions formally in filer.c + * libc/reent/Makefile.in: Updated for above change. + + * libc/reent/execr.c (_fork_r, _wait_r): Set errno if underlying + syscall fails, not if errno is changed. + * libc/reent/filer.c (_open_r, _close_r, _lseek_r, _read_r, + _write_r): Likewise. + * libc/reent/fstatr.c (_fstat_r): Likewise. + * libc/reent/linkr.c (_link_r, _unlink_r): Likewise. + * libc/reent/sbrkr.c (_sbrk_r): Likewise. + * libc/reent/signalr.c (_kill_r): Likewise. + * libc/reent/statr.c (_stat_r): Likewise. + * libc/reent/timer.c (_gettimeofday_r): Likewise. + + * libc/reent/{execr.c, filer.c, fstatr.c, linkr.c, sbrkr.c, + signalr.c, statr.c, timer.c} (errno): declare extern rather + than as a common. + + * libc/stdio/vfprintf.c (__sbprintf): Use the VFPRINTF macro + instead of calling vfprintf so that i*printf will not require + floating point support code. + +Mon Jul 15 16:50:59 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/posix/execvp.c (execvp): Use posix_path_list_p to determine + path delimiter. + * libc/include/sys/unistd.h (_SC_PATH_RULES): Delete. + (_PATH_RULES_{UNKNOWN,WIN32,POSIX}): Delete. + +Thu Jul 11 14:34:14 1996 Geoffrey Noer <noer@cygnus.com> + + * libc/include/signal.h: _sig_func_ptr function takes an int + * libc/include/sys/signal.h: sa_handler function takes an int + +Tue Jul 9 21:22:32 1996 Jeffrey A Law (law@cygnus.com) + + * libc/include/machine/ieeefp.h: Simplify H8/S support. + * libc/include/sys/config.h: Add missing H8/S conditional. + +Sun Jun 30 12:05:46 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/include/sys/unistd.h (MAXPATHLEN): Add cygwin32 value. + +Wed Jun 26 09:57:54 1996 Jeffrey A Law (law@cygnus.com) + + * libc/include/machine/setjmp.h: Handle H8/S. + * libc/include/machine/ieeefp.h: Likewise. + * libc/include/sys/config.h: Likewise. + * libc/machine/h8300/{defines.h, memcpy.S, memset.S}: Likewise. + * libc/machine/h8300/{reg_memcpy.S, reg_memset.S}: Likewise. + * libc/machine/h8300/{strcmp.S, setjmp.S}: Likewise. + * libc/sys/h8300hms/crt0.S: Likewise. + +Tue Jun 25 23:15:45 1996 Jason Molenda (crash@godzilla.cygnus.co.jp) + + * Makefile.in (datadir): Set to $(prefix)/share. + (oldincludedir, docdir): Removed. + * doc/Makefile.in (datadir): Set to $(prefix)/share. + (oldincludedir, docdir): Removed. + * libc/Makefile.in (datadir): Set to $(prefix)/share. + (oldincludedir, docdir): Removed. + * libm/Makefile.in (datadir): Set to $(prefix)/share. + (oldincludedir, docdir): Removed. + +Fri Jun 21 19:24:41 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/sys/reent.h (_REENT_INIT): Update for change to + _reent struct. + +Wed Jun 19 14:00:09 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/posix/execvp.c: Delete _WIN32 support. For __CYGWIN32__ + fetch current path rules with sysconf and handler posix/win32 + appropriately. + + * libc/include/sys/unistd.h (_PATH_RULES{,_POSIX,_WIN32}): Define. + + * libc/include/process.h: Prepend '_' to P_{WAIT,NOWAIT,OVERLAY}. + (WAIT_CHILD): Always define. + +Sat Jun 15 17:50:42 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/stdlib/eprintf.c: New file. + * libc/stdlib/Makefile.in (OFILES): Add eprintf.o. + (eprintf.o): New target. + +Thu Jun 13 16:44:32 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/cygwin32/crt0.c (__cygwin_crt0_bp): New global. + (mainCRTStartup): Do int3 if __cygwin_crt0_bp non-zero. + +Thu Jun 13 17:45:17 1996 Mike Meissner <meissner@rtl.cygnus.com> + + * libc/include/machine/ieeefp.h: Add support for AIX and Windows + NT in PowerPC endianess cases. + +Tue Jun 11 12:26:28 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/machine/ieeefp.h: Clean up PowerPC endianess. + +Thu Jun 6 11:34:20 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/string/strtok.c: Fix doc typo. + +Mon Jun 3 11:30:00 1996 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/include/sys/reent.h (struct _reent): Removed _asctime, + _next, _scanpoint, _signgam fields. + + * libc/include/stdlib.h (rand_r): Added new declaration. + (_rand_r, _srand_r): Removed declarations. + * libc/stdlib/rand.c (_rand_r, _srand_r): Removed, these functions + have been made obsolete by rand_r. + * libc/stdlib/rand_r.c: New file, rand_r function as specified + by POSIX.1c. + + * libc/string/strtok.c: Update documentation to describe + strtok_r(). + +Sat Jun 1 23:50:39 1996 Michael Meissner <meissner@cygnus.com> + + * libc/include/sys/stat.h (stat structure): Use the expanded stat + structure on Solaris, and PowerPC systems even though __svr4__ is + defined. + +Tue May 28 13:02:42 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/go32/sys/errno.h (ENOSYS,ESPIPE): Keep values <= 255. + +Fri May 17 10:34:44 1996 Ian Lance Taylor <ian@cygnus.com> + + * host/any: Use ../.. rather than .. to get to the main build + directory. This matches the current layout of the build + directory. + +Wed May 15 15:52:27 1996 Jeffrey A Law (law@cygnus.com) + + * libc/machine/h8300/__main.S: Delete. No longer needed. + * libc/machine/h8300/Makefile.in: Corresponding changes. + * libc/sys/h8300hms/crt1.c: New file. + * libc/sys/h8300hms/Makefile.in: Corresponding changes. + * libc/sys/h8300hms/crt0.s: Call __main. + + * libc/sys/h8300hms/crt0.S: Use temporary label names + for branch targets. + +Mon May 13 14:26:30 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/stdio/fopen.c (_fopen_r): Fix arguments to fseek. + +Fri May 3 16:38:23 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/reent/impure.c (_impure_ptr): Force the impure pointer into + .sdata on the PowerPC so that we can link newlib with code + compiled with -msdata. + +Mon Apr 29 21:38:02 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/arm/syscalls.c (_sbrk): Rename end to __end__. + +Thu Apr 25 06:38:59 1996 Michael Meissner <meissner@cygnus.com> + + * libc/sys/cygwin32/crt0.c (mainCRTStartup): On PowerPC, set the + exception handler to __cygwin_exception_handler. + +Tue Apr 23 15:14:20 1996 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/machine/setjmp.h: Check _AM29K, not ___AM29K__. + +Sun Apr 21 12:11:51 1996 Doug Evans <dje@blues.cygnus.com> + + * libm/math/Makefile.in ({w,wf}_cabs.o,{w,wf}_drem.o): Add rule for + SunOS VPATH. + * libc/stdlib/Makefile.in (atoff.o,atol.o,mblen.o,mbstowcs.o, + wcstombs.o): Likewise. + +Thu Apr 18 12:37:01 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/stdlib/environ.c (initial_env): New static local. + (environ): Point to `initial_env'. + + * libc/include/machine/setjmp.h: Clean up. + (__H8300H__,__PPC__): Define _JBTYPE. + (__arm__): Provide entry for. + (sigjmp_buf): Delete. + (jmp_buf): Use _JBTYPE if defined, otherwise int. + +Thu Apr 18 12:10:52 1996 Jeffrey A Law (law@cygnus.com) + + * libc/machine/h8300/strcmp.S: Sign extend the result to + 32bits so we don't lose with -mint32. + +Sun Apr 14 19:59:52 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/go32/sys/errno.h: New file. + * libc/sys/go32/Makefile.in (stat.o): Depend on stat.c. + * libc/sys/go32/gerrno.s (syscall_error): Call __errno to get + errno's address (make compatible with rest of newlib). + * libc/sys/go32/stat.c (fixinode): Set errno upon failure. + * libc/string/strerror.c (strerror): Surround each case with #ifdef. + +Thu Mar 28 13:44:42 1996 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/sparc/{scan.c,shuffle.c}: New files. + * libc/machine/sparc/Makefile.in: Build them. + * libc/machine/sparc/machine/sparclet.h: New file. + +Mon Mar 25 15:29:14 1996 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/machine/sh/asm.h: New file. + * libc/machine/sh/setjmp.S: Only save clobbered registers. Added + support for SH3e's FP registers. Use asm.h. + +Mon Mar 25 11:59:23 1996 Jeffrey A Law (law@cygnus.com) + + * libc/stdio/vfprintf.c (cvt): Accept a reent structure + as first argument. Call _dtoa_r and pass the reent structure + instead of calling __dtoa. + +Fri Mar 22 13:59:37 1996 Jeffrey A Law (law@cygnus.com) + + * libc/include/sys/config.h: Define DOUBLE_IS_32BITS for + the h8300, h8500, and others. Add comments for some rather + dubious code. + +Thu Mar 14 18:04:43 1996 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (check): Check that testsuite exists before cd. + +Tue Mar 12 11:46:47 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/string.h (strsep): Correct prototype. + +Mon Mar 11 09:55:19 1996 Doug Evans <dje@charmed.cygnus.com> + + * libc/sys/h8300/_exit.c (_exit,__exit): Set r0 to 0 before `sleep'. + * libc/sys/h8300/misc.c (_kill): Set r0 to indicate abort and `sleep'. + * libc/sys/h8300/crt0.S (_start): Call exit instead of `sleep'. + +Wed Mar 6 11:51:55 1996 Doug Evans <dje@charmed.cygnus.com> + + * libc/posix/{creat.c,isatty.c}: New files. + * libc/posix/Makefile.in (OFILES): Add creat.o, isatty.o. + + * libc/sys/sparc64/crt0.S (environ): Delete. + (.LHaveBias): Renamed from HaveBias. + +Thu Feb 15 10:48:37 1996 Doug Evans <dje@charmed.cygnus.com> + + * libc/stdlib/mallocr.c (etext): Move decl inside ifdef WARN_VLIMIT. + (_morecore_r): Delete SBRK_IS_ALLOC support. + +Tue Feb 13 09:44:09 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/sys/cygwin32/Makefile.in (lib.a): Make lib.a with a dummy + module rather than touch, so we don't get warning messages when + all of the libraries are combined into libc.a. + +Tue Feb 13 06:32:07 1996 Doug Evans <dje@charmed.cygnus.com> + + * libc/sys/sparclite/{Makefile.in,crt0.s}: Deleted. + crt0.s replaced by version in libgloss. + +Mon Feb 5 15:17:51 1996 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/reent/Makefile.in (OFILES): Add impure.o. + * libc/reent/impure.o: New file, define initial reentrancy struct. + * libc/reent/reent.c: Remove above definition. + + * libm/math/sf_asinh.c: Fix typo. + + * Makefile.in (MATHOBJS_IN_LIBC): Removed sr_ldexp.o and + srf_ldexp.o. + + * libm/libm.texinfo: Change documentation to reflect changes + in reentrancy model. + * libm/math/w_gamma.c: Likewise. + +Wed Jan 31 18:49:45 1996 Steve Chamberlain <sac@slash.cygnus.com> + + * configure.in (*-*-cygwin32): New. + (*-*-win32): Deleted. + * libc/sys/win32 renamed libc/sys/cygwin32. + +Tue Jan 30 22:09:03 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/include/sys/file.h: New include file. + +Fri Jan 26 15:52:54 1996 Steve Chamberlain <sac@slash.cygnus.com> + + * libc/include/machine/setjmp.h: Increase size of PPC jmp_buf. + +Tue Jan 23 17:49:16 1996 Steve Chamberlain <sac@slash.cygnus.com> + + * libc/include/sys/wait.h (WIFSIGNALED): Fix. + +Tue Jan 16 09:28:10 1996 Michael Meissner <meissner@tiktok.cygnus.com> + + * doc/makedoc.c (realloc): Declare at file scope. + (catchar): Not here. + +Wed Dec 27 15:45:23 1995 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.in (VERSION): Update to 1.7.0. + * {libc,libm}/Makefile.in (VERSION): Likewise. + * configure.in: Minor clean up of multilib stuff. + + From David Johnson <davidj@ICSI.Berkeley.EDU> + * {libc,libm}/Makefile.in (lib[cm].a): Delete library first. + + * libc/stdlib/environ.c: New file. + * libc/stdlib/Makefile.in (OFILES): Build it. + * libc/sys/h8500hms/crt0.c (environ): Deleted. + * libc/sys/m88kbug/crt0.c (environ): Deleted. + * libc/sys/z8ksim/crt0.c (environ): Deleted. + * libc/sys/netware/environ.c: Deleted. + +Tue Dec 19 15:24:46 1995 Kim Knuttila <krk@cygnus.com> + + * configure.in (links): set sys_dir, posix_dir, syscall_dir + +Wed Dec 13 04:16:25 1995 Michael Meissner <meissner@wogglebug.tiac.net> + + * doc/makedoc.c (init_string_with_size,nextword): Move malloc + declaration out to external scope and declare it PTR, not char *. + +Mon Dec 11 17:35:12 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/include/sys/unistd.h (getpagesize): New declaration. + (_SC_PAGESIZE): New definition. + * libc/include/time.h (CLK_TCK): Defined as CLOCKS_PER_SEC. + * libc/configure.in (i[345]86-*-win32): Remove -DNO_FORK. + +Fri Dec 1 16:48:46 1995 James G. Smith <jsmith@cygnus.co.uk> + + * libc/sys/vr4300/syscalls.c (sbrk): Fixed memory + addressing. System call returns size, not (last address + 1). + +Thu Nov 30 15:05:26 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libm/math/*.c: Removed _foo_r() reentrancy API. + * libc/include/math.h: Removed _foo_r prototypes and macros. + + * libm/math/*.c: On systems with IEEE single precision "doubles" + move foo() -> foof() wrapper code from the files that implement + the standard IEEE double precision functions to the files that + implement IEEE single precision functions. (ie. On those systems + sin is moved from s_sin.c to sf_sin.c). There should eventually + be use of a C extension (like gcc's alias attribute) so that the + wrappers are not needed at all. + + * libc/sys/sysnec810/sbrk.c: Cast &end to char * to get around + strict NEC V810 compiler. + * libc/misc/dprintf.c (getnumber): Cast char * to unsigned char * + for same reason. + +Wed Nov 29 14:25:05 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/strtol.c (_strtol_r): Replaced with implementation + from NetBSD C library. + * libc/stdlib/strtoul.c (_strtoul_r): Likewise. + + * libc/stdlib/assert.c (__assert): Renamed from __assertfail + and adapted from implementation I wrote for NetBSD C library. + The difference is __assert doesn't take a format argument, + so that there won't be multiple copies of the same string + constant in the executable if assertions are enabled in + more than one source module. + * libc/include/assert.h (assert): Changed to call __assert. + +Tue Nov 28 16:54:26 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/strtod.c (_strtod_r): Changed to not assign to + word1 on systems with 32 bit doubles. + * libc/stdlib/qsort.c (qsort): Cast some void *'s to char *'s + so that we can do arithmetic on them. + * libc/misc/dprintf.c: Changed to support stdarg.h for ANSI + compilers. + +Tue Nov 28 16:03:32 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/arm/crt0.S: Zero bss. + +Fri Nov 24 16:09:23 1995 Doug Evans <dje@deneb.cygnus.com> + + * libc/include/unctrl.h: New file. + * libc/misc/{Makefile.in,dprintf.c,unctrl.c,misc.tex}: New files. + * configure.in (subdirs): Add libc/misc. + * libc/Makefile.in (SUBDIRS): Add misc. + (SUBLIBS): Add misc/lib.a. + + * libc/include/sys/reent.h (struct _reent): Make __sf last member. + +Wed Nov 22 19:49:47 1995 Doug Evans <dje@deneb.cygnus.com> + + * libc/stdio/vfprintf.c (__sbprintf): Init fake._data. + (_vfprintf_r): Call CHECK_INIT. + +Tue Nov 14 02:52:12 1995 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.in (MULTITOP): Delete. + (MULTISRCTOP, MULTIBUILDTOP): Add. + * configure.in: Delete call to cfg-ml-com.in. Call config-ml.in + instead of cfg-ml-pos.in. + +Wed Nov 8 01:24:08 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk> + + * libc/sys/vr4300/syscalls.c: Added clean version of sbrk(). + * libc/sys/vr4300/crt0.S: Cleaned up. Added check for FPU + presence. + +Thu Nov 2 22:25:06 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * libc/string/strtok.c: Include string.h to pick up strtok_r + prototype. + +Wed Nov 1 18:54:11 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/string/strtok.c: include <_ansi.h>. + * libc/time/asctime_r.c: `reresult' -> `result'. + +Wed Nov 1 14:35:52 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/time/{ctime.c, gmtime.c, lcltime.c}: Wrap functions + in #ifndef _REENT_ONLY ... #endif conditional. + + * libc/include/string.h (_strtok_r): Remove declaration. + * libc/include/time.h (_asctime_r): Remove declaration. + * libc/string/strtok.c (_strtok_r): Removed. + * libc/time/asctime.c (_asctime_r): Removed. + + * libc/string/Makefile.in (OFILES): Add new object. + * libc/string/strtok_r.c: New file. strtok_r function as + specified by POSIX.1c, adapted from strtok implementation + from NetBSD C library. + * libc/string/strtok.c (strtok): Reimplemented in terms of + strtok_r. + + * libc/time/Makefile.in (OFILES): Add new objects. + * libc/time/{asctime_r.c, ctime_r.c, gmtime_r.c, lcltime_r.c}: + New files, reentrant time functions specified by POSIX.1c. + * libc/time/{asctime.c, ctime.c, gmtime.c, lcltime.c}: Non- + reentrant time functions re-written in terms of reentrant + functions. + * libc/time/lcltime.c: Renamed from localtime.c + + * libc/include/time.h: Add prototypes for asctime_r, ctime_r, + gmtime_r, and localtime_r. + +Sat Oct 28 14:34:31 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/crt0.c (mainCRTStartup): Call cygwin_crt0. + * libc/include/sys/unistd.h (getlogin): Revert change of + Oct 19. + * libc/include/sys/signal.h (sigprocmask): Change prototype + so it compiles with c++. + +Wed Oct 25 15:43:18 1995 Michael Meissner <meissner@cygnus.com> + + * libc/include/machine/setjmp.h (PowerPC _JBLEN): Consider it a + PowerPC if __PPC__ is defined. Bump jump_buf length to 62 ints, + to give some room in case we need to align the jmp_buf. + + * libc/machine/powerpc/setjmp.S (setjmp, longjmp): Rewrite to use + the new ppc-asm.h include file the compiler provides to specify + function prologue/epilogue. Eliminate saves of the xer and ctr + registers, which are volatile. Before starting to save registers, + align to 8 byte boundary. + +Mon Oct 23 11:20:51 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk> + + * libc/sys/vr4300/syscalls.c: Added empty kill() function, + referenced by standard libraries. + +Thu Oct 19 21:39:47 1995 Fred Fish <fnf@cygnus.com> + + * libc/unix/Makefile.in, libc/string/Makefile.in, + libc/stdio/Makefile.in, libc/reent/Makefile.in, + libc/posix/Makefile.in: + Remove tabs from otherwise empty line. Confuses some + older non-GNU versions of "make". + +Thu Oct 19 16:32:17 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/unistd.h (getlogin): Returns const char *. + +Wed Oct 18 12:57:50 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/include/fcntl.h (O_BINARY, O_TEXT): New. + * libc/include/errno.h: Moved into and include... + * libc/include/sys/errno.h: New file. + * libc/include/sys/wait.h: New file. + * libc/stdio/rename.c (_rename_r): Use _rename system call if available. + * libc/sys/win32/*: Moved out. + * libc/sys/win32/crt0.c: Rewritten to cope with shared library. + * configure.in (i[345]86-*-win32): HAVE_RENAME + +Wed Oct 18 09:58:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com> + + * libc/unix/sigset.c (sigemptyset, sigaddset): Prefix #undef to + avoid macro expansion for these two names. + +Tue Oct 17 08:45:33 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/h8500/psi.S: r6 renamed to fp. + +Sun Oct 15 12:58:10 1995 Michael Meissner <meissner@wogglebug.tiac.net> + + * configure.in (powerpc*): No longer need to define + NO_LONGLONG_POINTERS to supress warnings. + +Sat Oct 14 12:55:08 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * libc/reent/reent.c (_reclaim_reent): Call cleanup indirectly + through PTR instead of directly. + + * libc/sys/sh/crt0.S: Clean up formatting. Delete unused + non-standard constructor support. + +Thu Oct 12 11:39:42 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/dtoa.c (_dtoa_r): Set result pointer to the + address of the Bigint instead of the address of its _x field, + as the size the result buffer was calculated accordingly. + Fix from Jim Wilson <wilson@chestnut@cygnus.com>. + + * libc/stdlib/{div.c, ldiv.c}: Replaced with implementation + from NetBSD C library. No longer special cases division by + zero (which needs to be done by the application anyway), but + it doesn't need to call abs() (or labs()) four times either. + + * libc/stdlib/qsort.c: Replaced with implementation from + NetBSD C library. + +Tue Oct 10 14:01:10 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdio/vfprintf.c: Replaced with implementation from + NetBSD C library (which is derived from the 4.4BSD C library). + * libc/stdio/cvt.c: Removed. + * libc/stdio/Makefile: Updated. + +Tue Oct 10 12:15:23 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/syscalls.c (rename): New. + * libc/sys/win32/include/winkernel.h (MoveFileExA): New. + +Fri Oct 6 12:18:43 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * libc/machine/sh/Makefile.in (setjmp.o): Depend on setjmp.S. + * libc/machine/sh/setjmp.S: Rename from setjmp.s. + + * libc/sys/sh/Makefile.in (OFILES, all): Delete setjmp.o. + (setjmp.o): Delete rule to build setjmp.o. + * libc/sys/sh/setjmp.S: Delete file. + +Fri Oct 6 11:19:05 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/mprec.c (d2b): Added support for _DOUBLE_IS_32BITS. + * libc/stdlib/mprec.h: Fixed constants used for IEEE single float + format. Added #defines to map d2b, i2b, low0bits, lshift, mult, + pow5mult and s2b to identifiers with leading underscores. + * libc/stdlib/Makefile.in: Add mprec.h as a dependency to dtoa.o, + ecvtbuf.o, mprec.o and strtod.o. Sort dependencies. + +Thu Oct 5 17:27:30 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/posix/popen.c (sys/types.h): Include. + +Thu Oct 5 16:33:01 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/syscalls.h (fhandler): New struct. + (__lookup_fhandler, __lookup_fhandler_hook): Declare. + (__fhandler_normal): Declare. + (hinfo): New member op_handlers. + * libc/sys/win32/syscalls.c (__read): Don't validate fd. + (__write): Likewise. + (_read, _write, _open, _close, _lseek): Validate fd here. + Move file type specific stuff to foo_normal. + (read_normal, write_normal, open_normal, close_normal, lseek_normal): + New functions. + (__lookup_fhandler): New function. + (__lookup_fhandler_hook, __fhandler_normal): New variables. + + From anders.blomdell@control.lth.se (Anders Blomdell) + * libc/sys/win32/crt0.c (vfork_init): Unset __FD_TABLE__. + Don't touch standard handles. + * libc/sys/win32/spawn.c (_spawn): Use STARTF_USESTDHANDLES. + (_execve): Only create __FD_TABLE__ if necessary. + * libc/sys/win32/include/winkernel.h (STARTF_*): Define. + +Thu Oct 5 14:25:14 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/sys/termios.h (FLUSHO): New. + * libc/sys/win32/include/win*.h: Moved a load of prototypes around. + * libc/sys/win32/pipe.c (_fctnl): Ignore F_SETFL without errors. + * libc/sys/win32/exception.c (ehandler3): set strace when a signal + without a handler is received. + * libc/sys/win32/Makefile.in: Remove --nodelete. + * libc/sys/win32/resouce.c (gettimeofday): New. + * libc/sys/win32/syscalls.c (path_to_real_path): New. + * libc/sys/win32/syscalls.h (include/wincon.h): Don't include. + +Wed Oct 4 13:10:35 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/dirsearch.c (opendir): stat real path name. + Don't append "/*" to search pattern if trailing '/' already there, + append "*". + * libc/sys/win32/spawn.c (_spawn): CreateProcess doesn't seem to + like /'s, convert them to \'s. Handle //<drive>/ path names. + Add space for quoted \'s in arg string. Print translated prog name + and original prog name. + (_execve): Handle parent doing exec a teensy bit better. + * libc/sys/win32/syscalls.h (__path_to_real_path): Update prototype. + * libc/sys/win32/syscalls.c (__path_to_real_path): Don't assume + path needs conversion, handle both cases. Delete `const' from result. + (hash_path_name): New function. + (_open): Call it. + (_stat): Likewise. Fill in more fields for directories. + * libc/sys/win32/wait.c (_wait): Explicitly pass -1 to waitpid. + (wait_for_any): Fix trace message. + (waitpid): Explicitly test for intpid == 0. + + From anders.blomdell@control.lth.se (Anders Blomdell) + * libc/sys/win32/spawn.c (__vfork_get_empty_entry): zero fill result + so `next' is valid. + +Sat Sep 30 15:00:15 1995 Jason Molenda (crash@phyeaux.cygnus.com) + + * libc/sys/win32/spawn.c (_spawn): Make quoting rules more + complicated. + +Sat Sep 30 10:25:57 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/include/_ansi.h: set _HAVE_STDC if __STDC__ is defined + at all, not just == 1. + * libm/math/wf_acos.c (acosf): check for _HAVE_STDC, not __STDC__. + +Sat Sep 30 04:30:09 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/include/winbase.h: include <wintypes.h> and <winnt.h> + * libc/sys/win32/include/wintypes.h: include <winnt.h> + * libc/sys/win32/include/winnt.h: avoid multiple inclusion of this + file. + +Fri Sep 29 01:49:17 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/syscalls.c (getcwd): Fix off by one error. + + * libc/sys/signal.c (sleep): Fill it in. + * libc/sys/termios.c (tcflush): Use PurgeComm + (tcsetattr): Set some more of the bits. + * libc/sys/include/winkernel.h: Add PurgeComm and Sleep. + +Fri Sep 29 04:33:53 1995 Doug Evans <dje@deneb.cygnus.com> + + * libc/sys/arm/crt0.S (fp): Initialize to 0. + Conditionally include .idata$3 stuff ifdef __pe__. + +Fri Sep 29 01:49:17 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/crt0.c (hmap_init): Call __init_hinfo. + * libc/sys/win32/pipe.c (pipe): Ditto. + * libc/sys/win32/syscalls.c (__read): Use new vtime and vmin fields. + * libc/sys/win32/syscalls.h (hinfo): vtime, vmin are new. + * libc/sys/win32/termios.c (tcsetattr): Init new fields. + (tcgetattr): Contents are new. + * libc/sys/win32/include/winkernel.h (DCB): New. + (GetCommState, SetCommState): New. + +Thu Sep 28 16:29:09 1995 Doug Evans <dje@deneb.cygnus.com> + + * libc/sys/arm/crt0.S (_start): Define. + +Thu Sep 28 12:26:45 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/arm/crt0.S: Move stack to top of RAM on PIE board. + * libc/sys/arm/syscalls.c (_read, _write): Use the SWI properly. + + * libc/sys/win32/sysconf.c: New + * libc/sys/win32/sys/winadvapi.h: New + * libc/sys/win32/syscalls.h (hinfo): Added timeout_len, w_binary, r_binary. + * libc/sys/win32/crt0.c (hmap_init): Initialize new fields. + * libc/sys/win32/pipe.c (pipe): Ditto. + * libc/sys/win32/signal.c (_raise): New. + (_kill): Moved from spawn.c + * libc/sys/win32/spawn.c (kill): Moved to signal.c + * libc/sys/win32/syscalls.c (__read): Use new fields. + (_open): Ditto. + * libc/sys/win32/termios.c (tcflush, tcsetattr, tcgetattr): Fill in. + * libc/sys/win32/exceptions.c (__stack_trace): Keep going for longer. + * libc/include/sys/unistd.h (rmdir): Takes const path. + * libc/include/sys/stat.h (mkdir): Takes const path. + * libc/include/sys/signal.h (SIGTTOU, SIGTTIN): New for win32. + +Thu Sep 28 10:11:27 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/spawn.c (_spawn): Fix quoting. + + Add support for specifying paths as //<drive>/foo/bar. + * libc/sys/win32/syscalls.h (__path_needs_conversion_p): Declare. + (__path_to_real_path): Declare. + (PATH_TO_REAL_PATH): New macro. + * libc/sys/win32/syscalls.c (__win32_pid_to_posix_pid): Minor cleanup. + (__path_needs_conversion_p, __path_to_real_path): New functions. + (_open): Fix test for error return from CreateFileA. + Handle new path syntax. + (_link, mkdir, rmdir, getcwd, chdir, stat): Handle new path syntax. + * libc/sys/win32/dirsearch.c (opendir): Likewise. + +Wed Sep 27 16:36:46 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/include/*.h: Reorganized + * libc/sys/win32/include/WINREADME: New. + * libc/sys/win32/Makefile.in (DLLS): Build version.a. + * libc/sys/win32/*.c: Fix for new include scheme. + * libc/sys/win32/crt0.c (__this_uinfo_buf, __this_uinfo): New. + * libc/sys/win32/getlogin.c (getlogin): Use uinfo. + * libc/sys/win32/passwd.c (*): Fix. + * libc/sys/win32/syscalls.c (get[e|][g|u]id): Use passwd info. + (_stat): Get directory owner and permissions right. + * libc/sys/win32/syscalls.h (uinfo): New. + * libc/sys/win32/version.def: Remove leading underscores. + +Tue Sep 26 18:18:47 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/key.c: include "include/wincon.h". + +Tue Sep 26 07:21:48 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/{key, stubs}.c: New. + * libc/sys/win32/Makefile: Adjust to cope. + * libc/sys/win32/crt0.c (vfork_init_first): Cope with -ve pids. + (environ_init): Change env names to upper case. + * libc/sys/win32/dirsearch.c (readdir): Don't fill in inode number. + * libc/sys/win32/passwd.c (*): Fill in the functions. + * libc/sys/win32/pipe.c (_fcntl): F_GETFL returns O_RDWR. + * libc/sys/win32/spawn.c (_spawn): Cope with -ve pids. + * libc/sys/win32/syscalls.c (__win32_pid_to_posix_pid): New function. + (_open): Initialze hmap->execable_p too. + * libc/sys/win32/syscalls.c (getuid, getgid, geteuid, getegid): Return from macros. + (_fstat): Fill in permissions. + * libc/sys/win32/syscalls.h (hinfo): Add execable_p. + +Fri Sep 22 13:47:27 1995 Doug Evans <dje@canuck.cygnus.com> + + * configure.in (cfg-ml-com.in invocation): Use ${with_multilib_top} + if defined. + (cfg-ml-pos.in invocation): Likewise. + +Fri Sep 22 11:43:44 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * Makefile.in (MATHOBJS_IN_LIBC): Added s_isinf.o, sf_isinf.o, + s_isnan.o and sf_isnan.o. + +Wed Sep 20 14:50:19 1995 Ian Lance Taylor <ian@cygnus.com> + + * All Makefile.in files: added maintainer-clean target as a + synonym for realclean. + +Wed Sep 20 11:02:50 1995 Jeff Law (law@snake.cs.utah.edu) + + * libc/include/machine/setjmp.h: Add hppa support. + * libc/machine/hppa/setjmp.S: New file with setjmp/longjmp + support. + * libc/machine/hppa/Makefile.in: Related changes. + +Tue Sep 19 12:09:01 1995 J.T. Conklin <jtc@blues.cygnus.com> + + * configure.in (machine_dir): Don't set for v810-*-*. + +Fri Sep 15 20:22:08 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/crt0.c (passover): Change to handle MKS quoting + conventions correctly. + +Thu Sep 14 13:37:22 1995 J.T. Conklin <jtc@blues.cygnus.com> + + * libc/stdio/puts.c: Update documentation of return value to match + ANSI standard. + +Thu Sep 14 01:52:37 1995 Doug Evans <dje@canuck.cygnus.com> + + Fix file descriptor inheritance. + * libc/sys/win32/syscalls.h (CHILD_P): Define again. + (NOT_OPEN_FD): Fix. + * libc/sys/win32/spawn.c (vfork0): Only create inheritable handle if + close-on-exec flag not set. Initialize child's entire fd table. + * libc/sys/win32/syscalls.c (_open): Only create inheritable handle if + CHILD_P. + * libc/sys/win32/pipe.c (pipe): Only create new handle as inheritable + if CHILD_P. Initialize entire hmap entry. + (dup): Only create new handle as inheritable if CHILD_P. + (dup2): Likewise. Properly initialize hmap entry. + + * libc/sys/win32/spawn.c (_execve): Don't pass _P_SEARCH_PATH to + _spawn. + (_exit): Use CHILD_P. + * libc/sys/win32/syscalls.c (_fstat): Fix call to memset. + (_stat): Likewise. + +Mon Sep 11 23:09:39 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/crt0.c (passover): fix up the state table. + * libc/posix/popen.c: Added. + * libc/posix/Makefile.in: compile popen.c. + +Mon Sep 11 11:43:38 1995 J.T. Conklin <jtc@cygnus.com> + + * libc/include/machine/ieeefp.h: On the h8/300, h8/300h and + h8/500 define _DOUBLE_IS_32BITS. + +Sat Sep 9 17:55:54 1995 Doug Evans <dje@canuck.cygnus.com> + + Get vfork/exec/spawn/cwait/wait working again. + * libc/sys/win32/syscalls.h (VFORK_NEWBORN_PSEUDO_PID): Define. + (procinfo): New member vfork_level. + * libc/sys/win32/crt0.c (__vfork_next_pid): Delete. + (vfork_init_first): Use GetCurrentProcessId to get pid. + Initialize vfork_level. + (vfork_init): Delete __PID__. + (environ_init): New function. Undo patch of Aug 19, Posix says + environment variables are case sensitive. + (mainCRTStartup): Call it. + * libc/sys/win32/spawn.c (__vfork_next_pid): Delete. + (my_longjump: Make static. + (_spawn): New argument `h'. Delete setting of __PID__. + Delete local `idx'. Look for chars that need quotes, rather than + ones that don't. Set handle of created process in `h'. + Result is process id if created task. + (allocate_spawn_entry): New function. + (spawnvp, spawnv): Call it. Store handle and pid in procinfo entry. + (_execve): Set __FD_TABLE__ before spawning child. + Scan our fd table when passing fds, not our parent's. + Store handle and pid in procinfo entry. + (vfork0): Ensure strace message always printed. + Set child pid to VFORK_NEWBORN_PSEUDO_PID. + (vfork): Don't clobber result of vfork0. + * libc/sys/win32/wait.c (cwait): Fix non-error result (is pid). + (wait_for_any): Ignore processes in state FORK_STATE_VFORK_0. + + * libc/sys/win32/syscalls.h (procinfo): New members `handle_valid_p' + and `exit_code'. + * libc/sys/win32/spawn.c (allocate_spawn_entry): Initialize them. + (vfork0): Likewise. Distinguish children, grandchildren, etc. by + adding vfork level to pseudo-pid. + (vfork1): If not root, set state back to FORK_STATE_VFORK_0. + (spawnvp, spawnv, _execve): Set handle_valid_p if success. + (_exit): If child, set exit code. + (__vfork_record_death): Only close process handle if valid. + * libc/sys/win32/wait.c (wait_for_single): Watch for children that + didn't exec. + (wait_for_any): Likewise. Start scan after root entry. + +Fri Sep 8 18:48:02 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/include/sys/types.h (off_t): off_t back to 32 bits. + * libc/include/sys/_types.h (_off_t): _off_t back to 32 bits. + * libc/sys/win32/syscalls.c (_fstat): st_size is lower 32-bits + of actual file length. + + * libc/sys/win32/sys/wait.h: include <sys/types.h>. + * libc/include/paths.h: _PATH_BSHELL added. + * libc/include/sys/unistd.h: define STDIN_FILENO, STDOUT_FILENO, + and STDERR_FILENO. + +Thu Sep 7 21:02:22 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/include/ar.h: Added. + * libc/include/sys/types.h: ino_t goes back to 32-bits. + * libc/sys/win32/syscalls.h (hinfo): added .namehash field. + * libc/sys/win32/syscalls.c (_open): compute .namehash based + on filename. + (_fstat): use .namehash for inode number of the fd. + +Thu Sep 7 12:57:19 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/{console,ioctl,pipe,spawn,syscalls,wait}.? (*): + Change hinfo to __this_procinfo. + * libc/sys/win32/crt0.c: Remove procinfo_list. + +Wed Sep 6 18:38:26 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/include/sys/types.h (ino_t): Define ino_t correctly for + win32 environment. + +Wed Sep 6 18:09:29 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/include/grp.h: Removed. + * libc/sys/include/grp.h: Added. + * libc/sys/win32/grp.c: Include <grp.h>. + +Wed Sep 6 16:52:48 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/include/sys/signal.h (__need_MAX_SIGNALS): Removed. + (sigset_t, sigaction, SIG_SETMASK, SIG_BLOCK, SIG_UNBLOCK): + Defined for all but strict ANSI. + * libc/include/sys/reent.h (__need_MAX_SIGNALS): Removed. + * libc/include/machine/setjmp.h: Get win32 _JBLEN right. + * libc/signal/signal.c (_signal_r): Changed from using + _MAX_SIGNALS to NSIG. + * libc/sys/win32/crt0.c (__current_pid, __parent_hmap, __child_hmap, + __hmap): Deleted. + (__strace, __vfork_next_pid): New. + (__exe_suffix): Default to 1. + (passover, table): Understand quoted arguments. + (vfork_init_first): New. + (vfork_init): Initialize new process structure. + (mainCRTStartup): Pass environ to main. + * exceptions.c (__sig_mask): New + (ehandler3): Ignore signals in mask. + (really_exit): Remove CHILD_P test. + * pipe.c (pipe, dup, dup2): Use new process and file structure. + * resource.c (getrusage): Ditto. + * signal.c (sigprocmask): New. + * spawn.c (*): Rewritten. + * syscalls.c (*): Use new process and file structure. + (find_unused_handle): New. + * syscalls.h (MAX_HANDLES): Deleted. + (hinfo): Removed child_created_p. + (MAX_CHILDREN): Deleted. + (vfork_jmp_info, procinfo): New. + * wait.c (*): Mostly new. + * sys/strace.h (_STRACE_PARANOID): New. + * sys/param.h: New file. + +Wed Sep 6 17:03:53 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/include/sys/stat.h: add S_BLKSIZE. + * libc/include/sys/_types.h: _off_t is a 64-bit type under win32. + * libc/include/sys/types.h: define off_t and ino_t to be 64 bit + types under win32. + (mode_t): add a #else to avoid multiple definitons. + + * libc/sys/win32/Makefile.in: add grp.c. + * libc/sys/win32/grp.c: include grp.h correctly. + * libc/sys/win32/syscalls.c (_fstat): set almost all of the fields + of the st structure with real information. + * libc/sys/win32 (dirent): d_ino is of type ino_t. + +Wed Sep 6 10:41:34 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/include/sys/types.h (mode_t): Correct for svr4 sparc's + and (maybe) sparc64. + (nlink_t): Provide typedef. + +Tue Sep 5 18:46:05 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/grp.c: New file. + * libc/sys/win32/include/grp.h: New file. + +Tue Sep 5 13:47:27 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/include/machine/ieeefp.h: Added whitespace to make this + file easier to maintain. + On the sh, define either __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN + depending on the value of __LITTLE_ENDIAN__. + On the sh3e, define _DOUBLE_IS_32BITS. + +Fri Sep 1 15:35:18 1995 James G. Smith <jsmith@beauty.cygnus.com> + + * libc/sys/vr4300/syscalls.c: Added missing support + routines. _raise() and getpid(). + +Fri Sep 1 14:12:48 1995 James G. Smith <jsmith@rtl.cygnus.com> + + * configure.in (mips*vr4300*-*-elf): Fixed silly mistake + +Fri Sep 1 08:42:11 1995 James G. Smith <jsmith@beauty.cygnus.com> + + * configure.in (mips*vr4300*-idt-*) Add support for RISQ monitor + and VR4300 processor. + * libc/sys/vr4300: Add directory. + * libc/sys/vr4300/{Makefile.in, crt0.S, syscalls.c}: Add SIM + monitor run-time support. + +Thu Aug 31 09:16:52 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/Makefile.in (CHEWOUT_FILES): Removed atol.def. + * libc/stdlib/stdlib.tex: Don't include atol.def. + +Wed Aug 30 20:38:28 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/uname.c (uname): hardcode processor as `i386'. + +Wed Aug 30 10:48:08 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/ctype/Makefile.in: Fill in _to* dependencies. + +Tue Aug 29 17:14:29 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/{dirsearch.c,sys/dirent.h}: Fix namespace problems. + * libc/sys/win32/sys/dirent.h (struct dirent): Added d_ino. + * libc/sys/win32/strace.c (__sys_printf): Increase size of buffer. + * libc/sys/win32/smallprint.c (__small_vsprintf): Remove debug. + * libc/sys/win32/dirsearch.c (readdir): Set d_ino. + +Tue Aug 29 19:00:09 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/stdlib/atol.c (atol): DEFUN -> _DEFUN. + +Tue Aug 29 16:08:09 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/Makefile.in (OFILES): Added atoff.o and atol.o. + * libc/stdlib/atoff.c: New file. + * libc/stdlib/atof.c (atoff): Moved to atoff.c. + * libc/stdlib/atoi.c (atol): Removed. + * libc/stdlib/atol.c: Removed duplicate documentation. + + * libc/include/ctype.h (_tolower, _toupper): Moved inside + #ifndef _STRICT_ANSI conditional. + * libc/ctype/Makefile.in (OFILES): Added _tolower.o and _toupper.o + * libc/ctype/_tolower.c: New file. + * libc/ctype/_toupper.c: New file. + * libc/ctype/tolower.c (_tolower): Moved to _tolower.c. + * libc/ctype/toupper.c (_toupper): Moved to _toupper.c. + * libc/ctype/toascii.c (_toascii): Removed. + +Tue Aug 29 12:17:32 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/sparc64/sys/types.h: Deleted. + +Mon Aug 28 22:06:08 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/uname.c (uname): change `Windows/NT' to `Windows_NT' + and recognize Windows_95 systems. + +Mon Aug 28 19:50:54 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/crt0.c (vfork_init, hmap_init): standard I/O fds + and passed fds should be opened in text mode. + +Mon Aug 28 18:51:22 1995 Jason Molenda (crash@phydeaux.cygnus.com) + + * libc/sys/win32/crt0.c (vfork_init): mark passed fds as used + in __hmap, set to binary mode by default. + +Tue Aug 22 14:12:37 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/sys/sh/syscalls.c: Updated all functions to call __trap34. + * libc/sys/sh/trap.S (__trap34): Renamed from __trap3. Use trap + vector 34. + +Sat Aug 19 18:25:37 1995 steve chamberlain <sac@slash.cygnus.com> + + * Makefile.in (install): Install all libraries found in the + top level. If there's a sys/<type>/include directory, + install those headers into include. + + * libc/sys/win32/kernel.def351: Delete + * libc/sys/win32/{comctl32.def, comdlg32.def, ctl3d32.def, + glaux.def, glu32.def, largeint.def, libc.def, libcmt.def, + lz32.def, mgmtapi.def, mpr.def, msacm32.def, msvcrt.def, + nddeapi.def, netapi32.def, odbc32.def, odbccp32.def, oldnames.def, + ole32.def, oleaut32.def, opengl32.def, rasapi32.def, rpcndr.def, + rpcns4.def, rpcrt4.def, scrnsave.def, shell32.def, snmp.def, + uuid.def, vdmdbg.def, version.def, vfw32.def, win32spl.def, + winmm.def, winspool.def, winstrm.def, wsock32.def}: New. + + * libc/sys/win32/Makefile.in: Update for new files and new dlltool options. + * libc/sys/win32/crt0.c: Force all env names to upper case. + * libc/sys/win32/sys/win*.h -> libc/sys/win32/include + * libc/sys/win32/*.c: Headers have moved. + * libs/sys/win32/*.[ch]: Test for open_p rather than BAD_HANDLE, + __vfork_child_idx is now __vfork_child_ptr. + + * posix/execvp (execvp): Don't crash if no PATH envname. + +Fri Aug 18 12:22:59 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/include/sys/reent.h (_Bigint): Removed _reclaim field. + * libc/reent/reent.c (_reclaim_reent): Free Bigint's by going + through the _freelist instead of through the _reclaim list. + * libc/stdlib/mprec.c (_Balloc): Don't put new node on _reclaim list. + * libc/stdlib/mprec.c (_Bcopy): Make like version in master dtoa.c + sources. + +Thu Aug 17 11:03:27 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/machine/h8500/setjmp.S: New file. + * libc/include/machine/setjmp.h: Updated for H8/500. + +Wed Aug 16 16:19:11 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/syscalls.c (_open): More stracing. + (_stat): Open the file in O_BINARY. + +Wed Aug 16 15:49:01 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/machine/h8300/setjmp.S: New file. + * libc/include/machine/setjmp.h: Updated for H8/300 and H8/300H. + +Tue Aug 15 10:31:09 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/crt0.c (__exe_suffix): New global. + (mainCRTStartup): Set __exe_suffix from LIBC_EXE_SUFFIX. + * libc/sys/win32/spawn.c (_spawn): Add .exe suffix based on + __exe_suffix. Free fd_tab after setting env variable. + (spawnv,_execve): Update. + * libc/sys/win32/syscalls.h (__exe_suffix): Declare. + * libc/sys/win32/smallprint.c (puts,putn): New (static) functions. + (__small_vfprintf): New function. + * libc/sys/win32/strace.c (__sys_printf): Call __small_vfprintf. + * libc/sys/win32/wait.c (cwait): Validate argument. + + * libc/sys/win32/syscalls.c (queue_file_deletion): Add trace message. + (process_deletion_queue): Likewise. + + * libc/sys/win32/Makefile.in (lib.a): Don't call $(RANLIB). + +Mon Aug 14 10:14:10 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32: Copyrights and gratuitous indenting. + +Mon Aug 14 01:32:58 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/syscalls.c (queue_file_deletion): Finish. + (process_deletion_queue): Likewise. + (__close_all_files): New function. + (_close): Only queue file deletion if really a file. + * libc/sys/win32/spawn.c (_spawn): Only ensure .exe suffix if + _P_APPEND_EXE. + (_exit): Call __close_all_files. + + * libc/stdlib/system.c: #include <errno.h>. + (_system_r): Fix results in -DNO_EXEC case. + + * libc/sys/win32/sys/dirent.h (DIR): New member __d_dirname. + Reorganize structure. + * libc/sys/win32/dirsearch.c (opendir): Use stat to determine + if argument is valid. Save directory name in DIR. malloc space + for dirent struct separately. + * libc/sys/win32/syscalls.c (stat): Fix test for directory. + + * libc/include/errno.h (ENAMETOOLONG): Define. + * libc/string/strerror.c (strerror): Reword ENFILE. + Add ENOSYS, ENMFILE, ENOTEMPTY, ENAMETOOLONG. + +Sun Aug 13 22:42:25 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/crt0.c (__progname): New global. + (mainCRTStartup): Support strace=bitmask,filename. + * libc/sys/win32/dirsearch.c (all fns): Add trace messages. + * libc/sys/win32/syscalls.c (_write): Print parent trace message + if error. + (getcwd): Handle len too small. Convert '\\' to '/'. + * libc/sys/win32/sys/fcntl.h (O_RDWR): = O_RDONLY|O_WRONLY. + Add prototypes for open, creat, fcntl. + (O_APPEND): Change value to conform to Microsoft's value. + * libc/sys/win32/sys/strace.h (_STRACE): Protect in do/while. + + * libc/stdlib/getopt.c: New file. + * libc/stdlib/Makefile.in: Build it. + +Sat Aug 12 12:17:14 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/posix/execvp.c (execvp): Watch for DOS drives ifdef _WIN32. + Fix scanning of $PATH. + * libc/posix/exec*.c: Call _execve, not execve. + * libc/posix/execve.c: New file. + * libc/posix/Makefile.in (OFILES): Add execve.o. + + * libc/sys/win32/sys/strace.h (_STRACE_ALL, _STRACE_UHOH, + _STRACE_STARTUP, _STRACE_SYSCALL): More bit masks of things to trace. + (_STRACE): If level==0, always print. Handle new bit mask scheme. + * libc/sys/win32/crt0.c: Update _STRACE calls. + * libc/sys/win32/{pipe.c,resource.c,spawn.c,syscalls.c,wait.c}: Ditto. + + * libc/sys/win32/smallprint.c (rn): Fix digit list. + + * libc/sys/win32/syscalls.c (__really_exit): Move from here, + * libc/sys/win32/exceptions.c (really_exit): to here. Avoid recursion. + * libc/sys/win32/spawn.c (spawnvp): Pass `prog' as image name. + Print __seterrno trace message first. + (_execve): Renamed from execve. + (vfork): Update __strace usage. + (__vfork_child_pid): Deleted. + (__vfork_children, __vfork_child_idx): New globals. + (_spawnvp): New function. + (spawnvp, spawnv, _execve): Call _spawnvp. + (init_child): Record child in __vfork_children. + (__vfork_get_entry, __vfork_record_death): New functions. + * libc/sys/win32/crt0.c (mainCRTStartup): Initialize __vfork_children. + * libc/sys/win32/kernel32.def (WaitForMultipleObjects): Define. + * libc/sys/win32/syscalls.h (CHILD_P): New macro. All files updated. + (MAX_CHILDREN, CHILD_INTERIM_PID): Define. + (children): New typedef. + (__vfork_children,__vfork_child_idx): Declare. + (__vfork_get_entry,__vfork_record_death): Declare. + * libc/sys/win32/wait.c (wait_for_single,wait_for_any): New functions. + (waitpid): Handle pid == -1. + * libc/sys/win32/sys/wintypes.h (WaitForMultipleObjects): Declare. + * configure.in (i386-win32): Add -DNO_FORK. + * libc/syscalls/sysfork.c (fork): Don't define for NO_FORK. + * libc/reent/execr.c (_fork_r): Likewise. + * libc/stdlib/system.c (do_system): New function. + If WIN32, try to get shell path from $SH_PATH, use vfork. + (_system_r): Return 1 for (s == NULL) if WIN32 or unix, + otherwise return 0. + +Sat Aug 12 11:08:00 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/stdlib/{mallocr.c, mstats.c}: Move mstats from mallocr to mstats.c. + * libc/sys/win32/fcntl.h: Don't include self. + * libc/sys/win32/sys/strace.h (_STRACE_WM, _strace_wm): New. + * libc/sys/win32/sys/winbase.h: (GetUserName) New. + * libc/sys/win32/sys/wincon.h (HANDLER_ROUTINE): Define correctly. + * libc/sys/win32/sys/wintypes.h (GetFileType, GetCurrentProcess, CloseHandle, + SetFilePointer, CreateFileA, GetFileInformationByHandle, GetStdHandle): + Correct prototypes. + * libc/sys/win32/strace.c: New file. + * libc/sys/win32/smallprint.c: New file. + * libc/sys/win32/crt0.c (func): Delete. + (mainCRTStartup): Fix alloca usage. Set handles explictly. + * libc/sys/win32/dirsearch.c: Clean up handle usage, fix calls to __seterrno. + * libc/sys/win32/exceptions.c: Lint. + * libc/sys/win32/{ioctl.c, pipe.c, resource.c, spawn.c, cwait.c, syscalls.c}: + Clean up handle usage. + * libc/sys/win32/syscalls.c (__sys_printf): Moved into strace.c + (open.c): Default file type is text. + * libc/sys/win32/uname.c (uname): Use __small_sprintf. + * libc/sys/win32/advapi32.def: New + +Fri Aug 11 17:11:52 1995 Doug Evans <dje@canuck.cygnus.com> + + * configure.in (posix_dir, libc_posix_lib): New variables. + Define LIBC_POSIX_LIB in makefile to be $libc_posix_lib. + (i[345]86-*-win32): Define posix_dir. + Delete -DNO_EXEC. Define -DHAVE_OPENDIR. + (if unix_dir): Fix typo. + * libc/posix/{Makefile.in,closedir,opendir,readdir,rewinddir, + scandir,seekdir,telldir}: New files. + * libc/posix/{execl.c,execle.c,execlp.c,execv.c,execvp.c}: Move here + from libc/unix. + * libc/Makefile.in (LIBC_POSIX_LIB): Define. + (SUBDIRS): Add posix. + (SUBLIBS): Add $(LIBC_POSIX_LIB). + + * libc/include/sys/signal.h (SIGCHLD): Add for _WIN32. + (NSIG): Increase to 21. + * libc/include/sys/unistd.h (pid_t): Move from here, + * libc/include/sys/types.h (pid_t): to here. + + * libc/sys/win32/syscalls.h: #include "sys/strace.h". + (__ptrace): Delete. + (hinfo): New members close_exec_p, child_created_p. + (struct exception_list): Define. + (__hmap): Redefine as pointer to table. + (__parent_hmap, __child_hmap): New globals. + (__set_errno, __really_exit): Declare. + (__vfork_child_pid): Declare. + * libc/sys/win32/crt0.c (__strace, __trace_file): New global. + (__orig_stdin, __orig_stdout, __orig_stderr): New globals. + (__parent_hmap, __child_hmap): New globals. + (__hmap): Redefine as pointer to active map. + (__get_console): New function. + (mainCRTStartup): Change leading '=' in environ vars to '!'. + (env __FD_TABLE__): Watch for this and initialize our fd/handle + mapping table from it if defined. + (argv, envp): Dump if __strace >= 4. + (main): Call here. + * libc/sys/win32/exceptions.c (myp): Redefine. + (__syscalls_b): Delete. + (__stack_trace): New function. + (ehandler3): Update to use _STRACE. Print stack trace. + Call __really_exit instead of exit. + (init_exceptions): Delete args argc,argv. New arg mine. + * libc/sys/win32/kernel32.def (CreatePipe, DuplicateHandle, FindClose, + FindFirstFileA, FindNextFileA, GetComputerNameA, + GetEnvironmentVariableA, ReadFile, SetEnvironmentVariableA): Define. + * libc/sys/win32/signal.c (signal): Validate arg. + (alarm, sleep): Define as stubs for now. + * libc/sys/win32/syscalls.c (all fns): Update to use _STRACE. + (__syscalls_b, errno): Delete. + (__vfork_child_pid, __vfork_jmp_buf): New globals. + (__seterrno): Handle more errors. + (__sys_printf): Renamed from _ptrace. + (__really_exit): New function. + (queue_file_deletion, process_deletion_queue): New functions. + (__resume_parent): New function. + (_unlink): Handle trying to delete open file. + (__totime_t): Renamed from totime_t. + (setsid, __read, __write): New functions. + (cwait, spawnvp, R, D, getrusage, _execve, _fork, _wait): Delete. + * libc/sys/win32/{dirsearch.c,getlogin.c,misc.c,resource.c,passwd.c, + times.c,spawn.c,pipe.c,wait.c,termios.c,ioctl.c,uname.c}: New files. + * libc/sys/win32/console.c: Update to new definition of __hmap. + * libc/sys/win32/Makefile.in: Build new files. + * libc/sys/win32/sys/{dirent.h,winerror.h,wait.h,termios.h}: New files. + * libc/sys/win32/sys/{ioctl.h,utsname.h}: New files. + * libc/sys/win32/sys/strace.h: Renamed from ptrace.h. + * libc/sys/win32/sys/wintypes.h (GetCurrentDirectoryA): Fix prototype. + +Thu Aug 10 16:32:52 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/h8500hms/misc.c (kill): Handle SIGABRT. + +Thu Aug 10 12:07:38 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/stdlib/{dtoa.c, strtod.c}: Merged assorted changes that + have been made to the master dtoa.c sources (from netlib.att.com) + since they were integrated into newlib in early 1992. Fixes + problems with storage leaks and handling of numbers with very + negative exponents. + +Wed Aug 9 14:18:39 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * Makefile.in (all): set rootpre and srcrootpre before calling + sub-makes. + +Tue Aug 8 17:20:45 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/crt0.c: Change __hmap usage. + * libc/sys/win32/exceptions.c: Use _ptrace call. + * libc/sys/win32/syscalls.c: Use _ptrace call. + (read, write): Cope with DOS style CRLF when in TEXT mode. + * libc/sys/win32/syscalls.h: Declare hinfo struct. + * libc/sys/win32/user32.def: Get DefWindowProc arg list right. + * libc/sys/win32/sys/fcntl.h, ptrace.h: New. + * libc/sys/win32/sys/windows.h: Fill in rest of messages. + * libc/sys/win32/sys/wintypes.h: Fix attribute syntax. + +Mon Aug 7 13:04:54 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/include/math.h (cabs, cabsf, drem, dremf): New declarations. + + * libm/math/{w_cabs.c, wf_cabs.c, w_drem.c, wf_drem.c}: New files, + wrappers for hypot() and remainder() for BSD libm compatibility. + These are public domain implementations written by me for the + NetBSD libm some time ago. Note cabs() is required by ucbtest. + * libm/math/Makefile.in (obj): Added w_cabs.o and w_drem.o. + (fobj): Added wf_cabs.o and wf_drem.o. + +Thu Aug 3 08:13:05 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/sys/h8500hms/misc.c: New file. + * libc/sys/h8500hms/Makefile.in (OFILES): Add misc.o. + +Wed Aug 2 16:46:27 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/time/localtime.c (localtime): Fix problem with leap year + handling. Stole algorithm from Arthur David Olson's tz code. + +Mon Jul 31 10:21:54 1995 steve chamberlain <sac@slash.cygnus.com> + + * configure.in: (z8k-*sim): Renamed z8k-*-coff. + + * libc/sys/z8ksim/glue.c (_getpid, _kill): New + (_exit): Use argument. + +Fri Jul 28 15:17:04 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/win32/sys/winbase.h (_WINBASE_H): Define. + +Wed Jul 26 16:24:19 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/sh/trap.S (perrno): Align correctly. (pr 7532) + +Mon Jul 24 13:42:52 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * configure.in (sparc*): Add -DMALLOC_ALIGNMENT=8 to + target_cflags. + +Mon Jul 24 11:42:07 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/sys/win32/crt0.c (mainCRTStartup): Look for + ptrace with case insensitivity + * libc/sys/win32/{user32.def, gdi32.def, exceptions.c, screen.c, + sys/winbase.h, sys/windows.h, sys/wintypes.h, sys/winuser.h}: + New files. + +Fri Jul 21 11:22:26 1995 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.in: Multilib support moved to ../cfg-ml-{com,pos}.in. + (MULTITOP, MULTIDIRS, MULTISUBDIR, MULTIDO, MULTICLEAN): New variables. + (all, install, *clean): Use new multilib support. + * configure.in: Multilib support moved to ../cfg-ml-{com,pos}.in. + +Fri Jul 21 07:11:42 1995 steve chamberlain <sac@slash.cygnus.com> + + * libc/include/sys/signal.h (__WIN32__): New. + + * configure.in (i386-*-win32): Remobe SBRK_IS_ALLOC. + + * libc/stdlib/mprec.c (Balloc): Fix trampling problem. + (ulp, b2d): Handle 32 bit doubles. + * libc/stdlib/mprec.h: Handle 32 bit doubles. + * libc/stdlib/strtod.c (_strtod_r): Ditto. + +Fri Jul 14 08:24:58 1995 steve chamberlain <sac@slash.cygnus.com> + + from medp@primag.co.uk: + * libc/stdio/setvbuf.c (setvbuf): Fix line buffering on + dynamically allocated buffers. + +Thu Jul 20 10:11:03 1995 Fred Fish <fnf@fishbowl> + + * libc/include/sys/unistd.h (_exit): Add _ATTRIBUTE ((noreturn)). + * libc/stdlib/exit.c (unistd.h): Include to pick up _exit() declaration. + +Thu Jul 20 10:16:25 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in (powerpc): Fix previous fix. + +Wed Jul 19 14:08:55 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in (powerpc-*eabiaix*): Update PowerPC multilib + directories for this target. + +Wed Jul 19 00:34:30 1995 Jeffrey A. Law <law@rtl.cygnus.com> + + * configure.in (hppa): Add machine_dir definition. + * libc/machine/hppa: New directory with PA specific implementations + of the basic memory/string functions. + +Tue Jul 18 21:16:00 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in: Update current PowerPC multilib directories. + Split big and little endian configurations. + +Tue Jul 18 11:55:33 1995 Ian Lance Taylor <ian@cygnus.com> + + * configure.in: Add --enable-single-float option to configure to + control use of MIPS single-float directories. Default to yes. + + * Makefile.in (all): Don't recurse into multilib directory if it + does not exist. + +Mon Jul 17 15:51:30 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/sys/sh/syscalls.c: Fix typo. + +Mon Jul 3 14:38:52 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * Makefile.in, libc/Makefile.in, libc/sys/Makefile.in: + Pass down DLLTOOL. + * libc/include/process.h: Define WAIT_CHILD. + * libc/include/types.h: Get sizes right for win32. + * configure.in (i386-*-pe): Becomes i386-win32. + * libc/sys/win32/{crt0.c, kernel32.def, longjmp.c, setjmp.c, syscalls.c + wintypes.h,sys/file.h,sys/resource.h}: Second pass. + * libc/stdlib/mallocr.c: Don't round up memory block if SBRK_IS_ALLOC + is defined. + +Wed Jun 28 18:34:54 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * configure.in (i[345]86-*-pe): New target (NT). + * host/any: DLLTOOL new. + * libc/sys/win32/{crt0.c, kernel32.def, longjmp.c, setjmp.c, syscalls.c + wintypes.h,sys/file.h,sys/resource.h}: Preliminary support for + WIN32 (just enough to cross host the comp-tools). + +Thu Jun 22 11:45:18 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/machine/h8300/{cmpsi.S,ucmpsi.S,divhi3.S,mulhi3.S,mulsi3.S}: + Deleted. These files live in gcc/config/h8300/lib1funcs.asm now. + +Mon Jun 19 11:40:40 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/include/machine/ieeefp.h (arm): Change to always be + __IEEE_BIG_ENDIAN (even on little endian ARM's). + +Thu Jun 8 14:22:28 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * libc/sys/crt0.S: Initialze sp, and call exit after main. + * libc/sys/syscalls.c (abort): New. + * configure.in (arm): Define ABORT_PROVIDED. + +Wed Jun 7 14:04:35 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * configure.in (powerpc): Define multidirs. + +Mon Jun 5 16:10:13 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/arm/crt0.S: Add __USER_LABEL_PREFIX__ support. + +Thu Jun 1 10:51:47 1995 Sean Eric Fagan <sef@cygnus.com> + + * configure.in (sparclite): Delete target_cflags. Define multidirs. + +Wed May 24 14:23:25 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * configure.in, libc/include/machine/ieeefp.h: Modified + for arm: + libc/machine/arm/*, libc/sys/arm/*: New + +Tue May 23 13:53:07 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libc/include/machine/ieeefp.h: Use __PPC__ instead of + __powerpc__ when determining endianness. + +Wed May 10 07:55:56 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * configure.in (m68*): Add multidir for the m68332. + + * host/any (CC): Fix typo in last change. + +Fri Apr 14 22:20:31 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * libc/include/sys/config.h: Test __m68k__ instead of __m68000__ + when determining endianness. + * libc/include/machine/ieeefp.h: Ditto. + * libc/machine/m68k/setjmp.S: Use '&' instead of '#' for immediate + operands. + +Fri Apr 14 14:14:29 1995 Doug Evans <dje@chestnut.cygnus.com> + + * libc/include/errno.h (ENOTEMPTY): Define. + +Thu Apr 6 12:21:20 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * configure.in (sparc-sun-sunos*): Add -DMALLOC_ALIGNMENT=8 to + target_cflags. + + * libc/sys/sun4/Makefile.in (COPYOFILES): Added rem.o, multiply.o, + and umultiply.o. + + * libc/stdio/tmpnam.c (worker): Unconditionally increment count + instead of only when open succeeds. ANSI requires that multiple + calls to tmpnam() result in different files. + + * libc/sys/sun4/Makefile.in (COPYRENAMEOFILES): New macro, list of + objects pulled in from /lib/libc.a that must be renamed before + being pulled into newlib. /lib/libc.a's div.o conflicted with + newlib's file with the same name. + + * libc/stdlib/ldiv.c (ldiv): Call labs() instead of abs(). + + * host/any (CC, AS, AR, RANLIB): Changed so that executables in + the build tree will only be used if the executables are present + (instead of just the Makefiles). + + * libc/include/stdlib.h (mblen, mbtowc, wctomb, mbstowcs, + wcstombs): Define. + * libc/stdlib/{mblen.c, mbstowcs.c, wcstombs.c}: New files, null + versions of these functions that I orignally wrote for the + NetBSD C library. + * libc/stdlib/{mbtowc.c, wctomb.c}: Replaced functions with + versions I wrote for NetBSD. + +Wed Mar 29 12:42:42 1995 Kung Hsu <kung@mexican.cygnus.com> + + * libc/sys/sparclite/Makefile.in: add crt0.s and make info. + * libc/sys/sparclite/crt0.s: ditto. + +Tue Mar 28 20:28:03 1995 Rob Savoye <rob@rtl.cygnus.com> + + * configure.in: Add soft-float for proelf. + +Mon Mar 27 12:07:56 1995 Steve Chamberlain <sac@bang.hack.com> + + * libc/stdlib/mprec.h (Bcopy): Copy the right number + of bytes. + +Mon Mar 27 11:24:22 1995 Doug Evans <dje@chestnut.cygnus.com> + + * Makefile.in (all): Depend on `force'. + * configure.in (syscall_dir): Renamed from fake_sys_dir. + (libc_syscall_lib): Renamed from libc_fake_sys_lib. + (LIBC_SYSCALL_LIB): Renamed from LIBC_FAKE_SYS_LIB. + * libc/Makefile.in: Likewise. + * libc/include/reent.h: Update syscall references. + (_fcntl_r): Add prototype. + * libc/syscalls/*.c #include <reent.h>. + (*) Call reentrant version if REENTRANT_SYSCALLS_PROVIDED. + +Mon Mar 20 16:57:39 1995 Doug Evans <dje@deneb.cygnus.com> + + * libc/include/sys/stat-dj.h (S_ISBLK): Define. + (S_ISCHR, S_ISDIR, S_ISFIFO, S_ISREG): Define. + * libc/include/sys/stat.h (stat-dj.h): Include ifdef MSDOS. + (time.h, sys/types.h): Always include (even if MSDOS). + (stat): Fix prototype. + +Fri Mar 10 11:30:38 1995 Ian Lance Taylor <ian@cygnus.com> + + * configure.in (i[345]86-*-go32): Compile with -DNO_EXEC. + +Mon Feb 27 18:00:39 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * libc/machine/h8500/psi.S (EXTPSIHI_RN_SN): Ifdef out. + +Mon Feb 13 16:10:03 1995 Ian Lance Taylor <ian@cygnus.com> + + * libc/include/regdef.h: New file. + * libc/machine/mips/machine/regdef.h: New file. + +Mon Feb 6 15:24:29 1995 Doug Evans <dje@canuck.cygnus.com> + + * libc/sys/sparc64/sys/fcntl.h (open): Add ellipsis. + +Fri Jan 27 13:52:10 1995 Steve Chamberlain <sac@splat> + + * libc/sys/sh/crt0.S: Pass main's return to exit. + * libc/sys/sh/trap.S: Put errno in the right place. + +Tue Jan 24 18:57:56 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * libm/math/e_rem_pio2.c (__ieee754_rem_pio2): Integrate change + from fdlibm 5.2: handle |x| < 3pi/4 more efficiently. + * libm/math/ef_rem_pio2.c: Likewise. + * libm/math/e_log10.c: Remove unused static one. + * libm/math/ef_log10.c: Likewise. + * libm/math/s_frexp.c: Likewise. + * libm/math/sf_frexp.c: Likewise. + +Sun Jan 22 21:26:14 1995 Steve Chamberlain <sac@splat> + + * libc/sys/go32/Makefile.in, clock.S, dir.c, setjmp.S, stat.c, + longjmp.S: Upgraded. + * libc/sys/go32/sys/setjmp.h: Upgraded. + * libc/sys/go32/sys/go32.h, dpmi.h: New files. + +Fri Jan 20 18:33:18 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * configure.in: Add many entries to multidirs for mips targets. + +Wed Jan 18 10:19:25 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * libm/math/e_jn.c (__ieee754_yn): Integrate change from fdlibm + 5.2 which fixes bug where jn(-1,x) is three times larger than + the actual answer. + * libm/math/ef_jn.c (__ieee754_ynf): Likewise. + +Sun Jan 15 21:48:58 1995 Steve Chamberlain <sac@splat> + + * libc/sys/w65/sys/syscalls.h: New file + * libc/include/machine/ieeefp.h: W65 support. + * libc/include/sys/config.h: Ditto. + * libc/machine/w65/Makefile.in, cmpsi, divsi3, lshrhi.s, mulsi3.c, + sdivhi3.s, smulhi3.s, udivhi3.s, umodhi3.s: New files. + * libc/sys/w65/Makefile.in, crt0.c, syscalls.c, trap.c: New files. + +Wed Jan 11 15:59:01 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * libc/sys/Makefile.in (lib.a, crt0.o): Depend upon subs. + +Tue Jan 3 15:57:03 1995 Rob Savoye <rob@darkstar.cygnus.com> + + * Makefile.in, configure.in: Remove any references to the old + "stub" dir. + +Thu Dec 22 10:42:08 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * libc/syscalls/sysopen.c: Write _HAVE_STDC version of open, which + uses ... in prototype. + + +Wed Nov 30 08:39:42 1994 Ian Lance Taylor <ian@rtl.cygnus.com> + + * libc/sys/a29khif/sys/libconfig.h: Remove. + * libc/sys/go32/sys/libconfig.h: Remove. + * libc/sys/sun4/sys/libconfig.h: Remove. + * libc/sys/sysvi386/sys/libconfig.h: Remove. + * libc/sys/sysvnecv70/sys/libconfig.h: Remove. + * libc/sys/sparc64/sys/libconfig.h: Remove. + + * libc/include/_ansi.h (_FLOAT_ARG, _FLOAT_RET): Don't define. + * libc/include/sys/config.h (_FLOAT_ARG, _FLOAT_RET): Likewise. + * libc/include/math.h: Change all uses of _FLOAT_RET and + _FLOAT_ARG to float. + * libm/test/math.c: Likewise. + * testsuite/libm.sac/math.c: Likewise. + * testsuite/libm.sac/working/math.c: Likewise. + +Wed Nov 23 22:39:28 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * libc/sys/sh/trap.s,crt0.s,setjmp.s: Renamed with .S so that + gcc calls gas with endian option. + * configure.in (sh): Build little endian version too. + +Wed Nov 16 18:21:45 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * configure.in: Configure big and little endian versions for MIPS + targets. + +Sat Nov 12 21:12:51 1994 Doug Evans <dje@canuck.cygnus.com> + + * libc/include/limits.h: Deleted. + * libc/include/machine/limits.h: Deleted. + +Thu Nov 10 15:32:44 1994 Rob Savoye <rob@rtl.cygnus.com> + + * ChangeLog: Remove stub directory. This has all been rewritten + and moved to devo/libgloss. + +Thu Sep 29 18:31:04 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * Makefile.in (dvi): Add to info target, use $@ in sub make. + (docs): Merge into info target. + * libm/Makefile.in (dvi): Add $(srcdir). + * libm/math/Makefile.in (chobjs): Remove underscores from file + names. Texinfo doesn't like them. + (wacos.def, ...): Add explicit targets for all .def files. + * libm/math/math.tex: Remove underscores from @include file names. + * doc/Makefile.in (dvi): Add dummy target. + * testsuite/Makefile.in (dvi): Add dummy target. + +Mon Sep 26 21:17:46 1994 Doug Evans (dje@canuck.cygnus.com) + + * Makefile.in (VERSION): Define. For net newlib releases. + +Thu Sep 22 19:01:26 1994 Doug Evans (dje@canuck.cygnus.com) + + * README: New file. + +Mon Sep 19 16:35:23 1994 Jim Wilson (wilson@sphagnum.cygnus.com) + + * libc/stdlib/ecvtbuf.c (_gcvt): Undo last change. + +Mon Sep 19 11:44:23 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * libc/stdlib/setenv.c (_findenv): Declare. + + * libc/include/sys/fcntl.h: Fix declarations of open, creat, and + fcntl to not use _EXFUN, and change string parameters to open and + creat to be ``const char *''. + * libc/sys/sparc64/sys/fcntl.h: Likewise. + * libc/sys/sparc64/creat.c (creat): Make PATH const. + * libc/syscalls/sysopen.c: Include <fcntl.h>. + (open) Make _FILE const. + * libc/sys/z8ksim/glue.c (_open): Make BUF const. + (_creat): Make PATH const. + * libc/sys/h8300hms/syscalls.c (_open): Make PATH const. + * libc/sys/h8500hms/syscalls.c (_open): Likewise. + * libc/sys/m88kbug/syscalls.c (open): Likewise. + * libc/sys/sh/syscalls.c (_open): Likewise. + * stub/shared/glue.c (open): Make BUF const. + * stub/ex93x/syscalls.c (open): Make FILENAME const. + +Thu Sep 8 16:39:12 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * libc/include/errno.h: Add ENMFILE + * libc/include/sys/config.h: Support Z8000. + * libc/include/sys/signal.h: New signals for go32. + * libc/machine/h8500/psi.S (__addpsir0r0): New function + * libc/machine/h8500/cmpsi.S (__ucmppsi2): New function + * libc/machine/sh/sdivsi3.s (__sdivsi3): Rewritten. + * libc/stdlib/mallocr.c (_morecore_r): Minimum chunk + size is variable, depending upon CHUNK_POWER. + * libc/sys/go32/*.c: Upgrade to new go32 stuff. + +Sun Sep 4 17:42:43 1994 Jim Wilson (wilson@sphagnum.cygnus.com) + + * libc/stdlib/ecvtbuf.c (_gcvt): Output '-' for negative numbers. + +Fri Sep 2 10:56:01 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * libc/include/_ansi.h (_PARAMS): Don't define if already defined. + +Wed Aug 24 11:11:03 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * configure.in: Change i[34]86 to i[345]86. + + * libc/include/math.h: Don't define HUGE_VAL if it is already + defined. + +Wed Aug 17 15:18:02 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * testsuite/libm.sac/test_erfc.c: Correct some result values. + * testsuite/libm.sac/test_gammaf.c: Likewise. + * testsuite/libm.sac/test_sin.c: Likewise. + * testsuite/libm.sac/test_tanh.c: Likewise. + +Tue Aug 16 16:12:53 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * libc/include/machine/ieeefp.h: Don't try set endianness if it is + already set. Define typedefs __int32_t and __uint32_t. + * libc/include/math.h: Include <machine/ieeefp.h>. + (union __dmath): Use __uint32_t. + * libm/math/fdlibm.h, libm/math/*.c: Use __int32_t and __uint32_t + instead of int and unsigned int. + +Thu Aug 11 15:16:09 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + Replace the math library with the SunPRO fdlibm package. + * libm/math: Completely changed all files. + * libm/ieeefp: Remove contents and directory. + * libm/Makefile.in (LIBM_FP_LIB): Remove. + (SUBDIRS): Just set to math/lib.a. + * libm/libm.texinfo: Updated for new library. + * libc/include/math.h: Extensive changes for new math library. + * libc/include/ieeefp.h (isnanf, isinff, finitef): Change argument + from _FLOAT_ARG to float. + (maxpowtwo, maxpowtwof): Don't declare. + * configure.in (fp_dir): Removed; was always ieeefp anyhow. + (libm_fp_lib): Removed. + * Makefile.in (MATHOBJS_IN_LIBC): Updated with new file names. + * testsuite/libm.paranoia/Makefile.in (check): Correct --srcdir + argument to ${RUNTEST}. + * testsuite/libm.sac/Makefile.in (LOCAL_CFLAGS): Define. + (.c.o): New rule. + (RUNTESTFLAGS): Set CC and CFLAGS. + (TESTS): Remove test_log2 and test_log2f. + (${TESTS}): Pass ${LOCAL_CFLAGS}, not ${CFLAGS}. + * testsuite/libm.sac/math.c (run_vector_1): Use float, not + _FLOAT_ARG, for single precision argument type. + * testsuite/libm.sac/sac.exp: Treat an error in bit 63 as an + expected failure. Close the input pipe. + * testsuite/libm.sac/test.c (test_sok, test_iok, test_scok): + Correct misspelling of inaccurate. + (test_mok): Use ``inaccurate'', not ``wrong''. + * testsuite/libm.sac/{test_acos.c, test_acosh.c, test_asin.c, + test_asinh.c, test_atan.c, test_atanh.c, test_ceil.c, + test_ceilf.c, test_cos.c, test_cosh.c, test_erf.c, test_erf.c, + test_fabs.c, test_floor.c, test_floorf.c, test_fmod.c, + test_fmodf.c, test_gamma.c, test_log1p.c, test_log1pf.c, + test_yn.c): Correct many result values. Many are still wrong. + + * libc/stdlib/ecvtbuf.c (print_e): If _dtoa_r sets decpt to 9999, + just copy the string. + (_gcvt): Always return the buffer. + +Tue Aug 9 13:43:23 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * bcopy.c: fixed documentation, bcopy was not specified by ANSI. + +Wed Aug 3 05:39:41 1994 D. V. Henkel-Wallace (gumby@cygnus.com) + + * libc/include/sys/reent.h: (struct _Bigint): add _reclaim + structure. + (struct _reent): add _p5s, _cvtlen, _cvtbuf. + (_reclaim_reent): declare new entry point. + * libc/reent/reent.c (cleanup_glue, _reclaim_reent): new + functions. + + * libc/stdlib/mprec.c (Balloc): Keep track of every struct bigint + ever allocated, so that we can later reclaim them all. + (pow5mult): make reentrant. + + * libc/stdlib/ecvtbuf.c (fcvtbuf, ecvtbuf): extend these functions + so that when given NULL as a buffer, return a pointer to static + space in the rent structure. This is not documented behaviour; + it's only to support ecvt and fcvt, which aren't ANSI anyway. + * libc/stdlib/efgcvt.c (fcvt, ecvt) Use new functionality (and + therefore become reentrant). + + * libc/stdlib/dtoastub.c: remove spurious inclusion of mprec.h. + +Mon Aug 1 16:52:24 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * libc/include/machine/ieeefp.h: Check _AM29K, not ___AM29K__. + +Thu Jul 28 15:40:21 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * Makefile.in: Make link to libg.a after libc.a; this is needed + for the testsuites to build executables when everything comes + from the tree. + +Mon Jun 27 17:14:29 1994 Bill Cox (bill@rtl.cygnus.com) + + * libc/Makefile.in: Add a VERSION variable so we can keep track. + * libm/Makefile.in: Add a VERSION variable so we can keep track. + +Wed Jun 22 10:26:00 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * libc/include/stdio.h: Use __VALIST, not va_list. + +Tue May 17 15:43:28 1994 Bill Cox (bill@rtl.cygnus.com) + + * testsuite/config/unix-libm.exp, testsuite/lib/libm.exp, + testsuite/libm.sac/execute.exp: + Replace error proc calls with perror calls. + +Wed May 11 09:25:28 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/*.h: #include "_ansi.h" instead of <_ansi.h>. + * libc/include/time.h: #define NULL as 0L. + +Mon May 9 18:41:20 1994 Doug Evans (dje@canuck.cygnus.com) + + * host/any (INCLUDES): Delete -I of gcc/include, gcc -B takes + care of it. + +Mon May 9 18:39:39 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * libc/include/sys/signal.h: Check for __GO32__, not __i386__ and + not __unix__. + +Sat May 7 17:07:36 1994 Steve Chamberlain (sac@cygnus.com) + + * configure.in (TARGET_CFLAGS): Set -O2 as default. + (z8k-*-*): Use syscalls fake sys dir. + * libc/sys/z8k/glue.c: Rename syscalls. + * libc/sys/go32/Makefile.in: Use new routines. + * libc/machine/Makefile.in: Fix typo in ln stuff. + +Thu May 5 13:47:48 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (libm.a, crt0.o): Use cp if ln fails. + * libc/Makefile.in (crt0.o): Likewise. + * libc/machine/Makefile.in (lib.a): Likewise. + * libc/sys/Makefile.in (lib.a, crt0.o): Likewise. + + All Makefile.in files: Added mostlyclean, realclean and distclean + targets. + + * Makefile.in: Don't bother to unexport XTRAFLAGS or + XTRAFLAGS_FOR_TARGET, since they are no longer passed down from + the top level Makefile. + +Tue Apr 26 15:10:34 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/sys/stat.h: New file. + * libc/sys/sparc64/sys/time.h: New file. + * libc/sys/sparc64/sys/types.h: New file. + +Fri Apr 22 12:58:24 1994 Stan Shebs (shebs@andros.cygnus.com) + + * stub/ex93x/crt0.s (start): Add code to clear bss. + +Wed Apr 13 10:34:58 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/sys/types.h (time_t): Properly protect inside + #ifndef __time_t_defined. + + * libc/stdio/fileno.c: New file. + * libc/stdio/Makefile.in (OFILES, CHEWOUT_FILES): Add fileno. + (fileno.o): Add dependency. + * libc/include/stdio.h (__sgetc): Rename never to _never. + (fileno macro): Disable, needs to do CHECK_INIT first. + +Mon Apr 11 17:37:09 1994 Bill Cox (bill@rtl.cygnus.com) + + * testsuite/Makefile.in (EXPECT, RUNTEST): Set these for the check + goal. + + * testsuite/Makefile.in (check): Set TCL_LIBRARY for runtest. + * testsuite/libm.paranoia/Makefile.in (check): Set TCL_LIBRARY for + runtest. + * testsuite/libm.sac/Makefile.in (check): Set TCL_LIBRARY for + runtest. + +Sat Apr 9 16:18:09 1994 Doug Evans (dje@cygnus.com) + + * libc/sys/sparc64/sys/fcntl.h: New file, define solaris versions + of the various constants. + +Thu Apr 7 21:19:07 1994 Mark Eichin (eichin@cygnus.com) + + * libc/include/math.h: #ifndef __math_68881 around things which + conflict with the (gcc-provided) inline functions in + gcc/ginclude/math-68881.h. + +Thu Apr 7 02:50:43 1994 Doug Evans (dje@cygnus.com) + + * libc/include/_syslist.h (_gettimeofday): Define. + (_times): Ditto. + * libc/include/reent.h: #include <machine/types.h> to get _CLOCK_T_. + (struct tms, timeval, timezone): Declare. + (_gettimeofday_r, _times_r): Declare. + * libc/include/time.h (_CLOCK_T_): Don't #undef. Remove + #ifdef _CLOCK_T_ surrounding definition of clock_t. + (time_t): Add multiple definition protection, __time_t_defined. + * libc/include/sys/time.h: Don't #include <time.h>. + Always define struct timezone (remove #ifndef _TIME_H_). + * libc/include/sys/times.h (_CLOCK_T_): Don't #undef. Remove + #ifdef _CLOCK_T_ surrounding definition of clock_t. + * libc/reent/Makefile.in (OFILES): Add timer.o. + (CHEWOUT_FILES): Add timer.def. Add timer.o/timer.c dependence. + * libc/reent/timer.c: New file. + * libc/time/clock.c: #include <reent.h>. + (clock): Call _times_r instead of times. + * libc/time/time.c (HAVE_GETTIMEOFDAY): Renamed from + HAVE_GET_TIME_OF_DAY. + Add comment regarding supporting OS routine(s) required (for docs). + #include <reent.h>. + (time): Call _gettimeofday_r instead of gettimeofday. + * libc/time/asctime.c: Fix comment regarding supporting OS routines. + * libc/time/ctime.c: Ditto. + * libc/time/strftime.c: Ditto. + * libc/sys/sparc64/Makefile.in (TEMPLATE_SFILES): Remove gettimeofday. + (TEMPLATE_SFILES_R): Define here. Also define times. + Add times_r.o/times.S dependence. + (time2.c, junk.c): Deleted. + * libc/sys/sparc64/time2.c: Deleted. + * configure.in (sparc64-*-*): Define HAVE_GETTIMEOFDAY. + + * libc/stdio/mktemp.c (_getpid_r): Renamed from _getpid. + * libc/stdio/tmpnam.c (_getpid_r): Ditto. + * libc/sys/sparc64/junk.c: Deleted. + +Mon Mar 21 16:51:03 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/Makefile.in: Add times syscall. + * libc/sys/sparc64/crt0.S: Handle stack bias at run time so we can + be used with and without it. Add comment clarifying Medium/Anywhere + model requirements. + * libc/sys/sparc64/sigsetjmp.S (setjmp, longjmp): Add svr4 support. + * libc/sys/sparc64/sys/syscall.h (SYS_times): Define for sunos4 + even if obsolete. + +Sun Mar 20 15:51:47 1994 Doug Evans (dje@cygnus.com) + + * configure.in (target_cflags): Move init. + (sparc64-*-*): Define HAVE_BLKSIZE. + +Wed Mar 9 10:44:52 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/sys/_types.h: New file. + * libc/include/reent.h: #include it. + Add comment describing REENTRANT_SYSCALLS_PROVIDED and + MISSING_SYSCALL_NAMES. + Sort syscalls. + * libc/include/_syslist.h: Remove _raise. + * libc/reent/signalr.c: New file. + * libc/reent/Makefile.in: Compile it. + * libc/signal/signal.c: Only use ifdef SIMULATED_SIGNALS. + Add doc for raise and _raise_r. + * libc/signal/raise.c: Only use ifndef SIMULATED_SIGNALS. + (raise): Call _raise_r. + (_raise_r): Call _getpid_r and _kill_r. + * libc/stdlib/abort.c: Remove inclusion of stdio.h and _syslist.h. + (abort): Loop forever calling raise and _exit. + +Mon Mar 7 14:40:08 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in: Remove extraneous echo. + +Thu Mar 3 12:14:22 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/sys/dirent.h (MAXNAMLEN): #undef to avoid + collision with unistd.h, and fix for svr4. + +Wed Mar 2 13:55:25 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdio/local.h (_llicvt): Declare. + (CVT_BUF_SIZE): Define (and buffer size from 512 to 128). + * libc/stdio/cvt.c: Include "local.h" to get CVT_BUF_SIZE. + (_llicvt): Define. + (_sicvt): Fix function header (`value' is short). + * libc/stdio/vfprintf.c (_vfprintf_r): Use CVT_BUF_SIZE. + Add printing of long long's support. + Add printing of 8 byte pointer support. + +Fri Feb 11 21:52:11 1994 Steve Chamberlain (sac@sphagnum.cygnus.com) + + * libc/sys/sh/syscalls.c (pipe, execv, wait, fork, utime, chown, + stat, chmod): New hooks. + (sbrk): Abort if stack and heap collide. + * libc/machine/sh/udivsi3, libc/machine/sh/sdivsi3 Modified to + shortcut when given small args. + * libc/machine/sh/setjmp.s: Rewritten. + * libc/machine/sh/strcmp.s (strcmp): New function takes advantage + of cmp/str instruction. + +Wed Feb 9 15:12:35 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in: Accept powerpc* as a CPU type, using fp_dir ieeefp + and machine_dir powerpc. + * libc/include/machine/setjmp.h, libc/include/machine/ieeefp.h: + Add cases for __powerpc__. + * libc/machine/powerpc/Makefile.in, libc/machine/powerpc/setjmp.S: + New files. + + * libc/include/stdio.h (_iprintf_r): Declare correctly. + +Thu Jan 27 10:36:27 1994 Steve Chamberlain (sac@cygnus.com) + + * libc/stdlib/callocr.c: New file with _calloc_r in it. + * libc/stdlib/calloc.c (calloc_r): Now in callocr.c + +Thu Jan 20 15:14:37 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdlib/ecvtbuf.c (print_f): Remove local "done". + (print_e): More comments to describe args, etc. + "type" arg may now be 'g' or 'G' for %g/G format --> remove + trailing blanks. + (_gcvt): Remove locals decpt, sign, end, p, done. + More comments for print_e invocation. + Pass "type" to print_e as is (g/G). + +Wed Jan 19 16:34:18 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * stub/shared/m68k-crt0.S: Changed so it compiles (and runs) on a + stock m68000. + +Mon Jan 17 15:41:53 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdlib/mallocr.c (_morecore_r): Fix aligning of pointer so it + works with any sized pointer, including ones bigger than ints and + longs. + +Thu Jan 6 14:53:21 1994 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/{time2.c,utime.S,utime2.c}: New files. + +Sat Dec 11 16:17:20 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/include/stdlib.h (_calloc_r): Add prototype. + * libc/machine/h8500/negsi2.c: New file. + * libc/machine/h8500/divsi3.c: Prevent overflow when dividing v + large unsigned numbers. + * libc/machine/h8500/cmpsi.c: Add cmppsi. + * libc/stdlib/mallocr.c (morecore_r): Fix aligning pointers so it + works when sizeof(size_t) != sizeof(char *). + * libc/stdlib/mprec.c (Balloc): Call calloc rather than malloc to + get play area + * libc/stdlib/mprec.h: Define Just_16 if generating for z8000. + +Mon Dec 6 15:59:53 1993 Doug Evans (dje@rtl.cygnus.com) + + * libc/include/assert.h (assert): Handle -traditional. + +Tue Nov 16 15:49:24 1993 Mark Eichin (eichin@cygnus.com) + + * Makefile.in: added ; after every "fi" and "done" that wasn't at + the end of a line (ie. anything before a backslash continuation) + so that bash handles them. + +Tue Nov 16 12:31:57 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * libc/sys/go32/lstat.s: new file, copied from stat.s and renamed + stat to lstat + +Mon Nov 15 15:50:43 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * libc/sys/sh/crt0.s, libc/sys/sh/trap.s, + libc/machine/sh/sdivsi3.s, libc/machine/sh/setjmp.s, + libc/machine/sh/udivsi3.s: Use new calling convention. + +Mon Nov 15 15:25:38 1993 Mark Eichin (eichin@cygnus.com) + + * libc/include/sys/unistd.h, libc/include/sys/stat.h: ANSI-fy + chmod, access, chdir, chown by making _path const. Also fix _amode + param of access. + +Fri Nov 12 20:25:28 1993 Mark Eichin (eichin@cygnus.com) + + * libc/sys/a29khif/_tmpnam.s (_tmpnam): renamed function to + _khif_tmpnam, because it doesn't comply with ANSI but may be + useful anyway. Real tmpnam was already in libc/stdio, and was + colliding with this one (pr 2176.) + * libc/sys/a29khif/stubs.s (tmpnam): removed tmpnam. This file is + the wrong idea anyhow. + +Mon Nov 8 07:50:16 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Remove h8300h, we have multilib now. + +Fri Nov 5 12:37:27 1993 Mark Eichin (eichin@cygnus.com) + + * libc/string/strcasecmp.c, libc/string/strncasecmp.c: new + functions, to get preference over the ones in libiberty (since we + provide correct declarations in <string.h>. + * libc/string/Makefile.in: add support for strncasecmp, + strcasecmp. + +Fri Nov 5 09:05:45 1993 D. V. Henkel-Wallace (gumby@blues.cygnus.com) + + * Change netware config not to look for cpu explicitly. + +Thu Nov 4 14:21:25 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/{creat.c,junk.c}: New files. + * libc/sys/sparc64/Makefile.in: Add dependencies. + +Wed Nov 3 10:42:49 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Clean up v9 a bit, new "os" aoutv8. + +Tue Nov 2 10:00:44 1993 D. V. Henkel-Wallace (gumby@cygnus.com) + + * libc/include/sys/reent.h: make structure smaller by allocating + some stuff when needed. + * libc/signal/signal.c: allocate as needed + * libc/stdio/findfp.c,stdio/local.h: ditto + * libc/stdlib/mprec.c: ditto + + * libc/time/localtime.c: don't return a dangling stack ptr. + +Wed Sep 29 20:42:34 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * stub/mvme135/crt0.S, stub/mvme135/glue.c: Moved to stub/generic. + +Wed Sep 29 16:27:49 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * libc/include/stdio.h (__sputc): comment out static inline which + confuses coff toolchains. + +Thu Sep 2 16:31:36 1993 Mark Eichin (eichin@cygnus.com) + + * libc/sys/a29khif/{_close.s, _fstat.s, _lseek.s, _sbrk.s, + _write.s, getpid.c, kill.c, read.s}: + * libc/sys/a29khif/stubs.s: eliminated stubs that already go + through the syscalls directory. + +Fri Oct 29 13:59:58 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * configure.in: fixed double quote gotcha. + +Wed Oct 27 15:27:09 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * stub/ex931: stub library for sparclite board. + * stub/idp: Renamed from mc68ec. Added contructor table + stuff to linker script. + * stub/mvme135: Renamed from m68kmvme. Added contructor table + stuff to linker script. + +Tue Oct 26 17:01:23 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: Configure testsuites only if they exist. + +Tue Oct 26 12:37:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in: Don't set machine_dir for i386 until there is + something in libc/machine/i386 to compile. For i[34]86-*-netware* + use sys/netware, don't use signal, define NO_EXEC, ABORT_PROVIDED, + CLOCK_PROVIDED and MALLOC_PROVIDED. + + * libc/sys/netware: New directory. Contains simplistic and + probably incorrect stubs for NetWare. Should be enough to load + the library. + * libc/sys/netware/crt0.c, libc/sys/netware/environ.c, + libc/sys/netware/getpid.c, libc/sys/netware/link.c: New NetWare + stub files. + + * libc/reent/execr.c: Don't use if NO_EXEC is defined. + * libc/reent/sbrkr.c: Don't use if MALLOC_PROVIDED is defined. + * libc/stdlib/abort.c: Don't use if ABORT_PROVIDED is defined. + * libc/time/clock.c: Don't use if CLOCK_PROVIDED is defined. + +Mon Oct 25 16:48:08 1993 Roland H. Pesch (pesch@cygnus.com) + + * testsuite/Makefile.in: add "docs" dummy target for consistency + with rest of newlib; turn "info" and "install-info" into dummy + targets, since they wouldn't have worked. (Depended on + nonexistent "doc" subdir.) + +Fri Oct 22 20:37:32 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * configure.in: handle mips* instead of mips + +Thu Oct 21 08:57:24 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/sys/dirent.h: New file. If it is not overridden by + a version of libc/sys/*/sys/dirent.h, it includes the next + <dirent.h> file in case there is one lurking somewhere. + +Fri Oct 15 14:17:40 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * libc/stdlib/strtoul.c (_strtoul_r): Several changes for ANSI + compliance, namely: Accept a minus sign. Consider a single 0 with + a radix of 0 as being a conversion. Determine overflow correctly. + If an overflow occurs, set *ptr to the end of the number, not the + middle. + * lib/stdlib/strtol.c (_strtol_r): Determine overflow correctly. + +Thu Oct 14 21:49:52 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/machine/h8300/divsi3.S (divmodsi4): Fix h8300h case. + +Fri Oct 1 17:17:34 1993 Doug Evans (dje@canuck.cygnus.com) + + * Makefile.in (INSTALL): Use $srcrootpre. + (crt0.o): Replace $< with $(CRT0_DIR)/$(CRT0), Sun make + can't handle it. + * libc/Makefile.in (crt0.o): Spell out $<, Sun make can't handle + it. + * libc/sys/Makefile.in (crt0.o, lib.a): Ditto. + * stub/Makefile.in (crt0.o, TARGETLIB): Ditto. + * libc/sys/sparc64/Makefile.in (isatty.o): Sun VPATH lossage. + * libm/math/Makefile.in (matherr.o): Ditto. + +Thu Sep 30 11:09:17 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * configure.in: Build multidirs for z8k. + * libc/include/stdlib.h (_strtoul_r): add prototype. + * libc/include/machine/limits.h: Get INT_MIN right for all the z8k family. + * libc/include/machine/setjmp.h: Add for z8k. + * libc/machine/z8k/{mulsi.o, udivsi3.o, umodsi3.o, modsi3.o} obsolete. + * libc/sys/z8ksim/glue.c: tidy up. + +Mon Sep 20 14:04:46 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/unix/{execl.c execle.c execlp.c execv.c execvp.c}: + New files. Requires execve system call. + * libc/unix/Makefile.in: Use them. + * libc/sys/sparc64/{execl.c execle.c execlp.c execv.c execvp.c}: + Deleted, moved to libc/unix. + * libc/sys/sparc64/Makefile.in: Remove them. + +Mon Sep 20 10:38:32 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/{template.S template_r.S}: New files. + * libc/sys/sparc64/Makefile.in: Build source for trivial syscalls + from templates. + * libc/sys/sparc64/{chdir.S chmod.S close.S dup.S fcntl.S + fork.S fstat.S lseek.S link.S mkdir.S open.S pipe.S read.S rmdir.S + umask.S unlink.S wait4.S write.S}: Removed, now built from + templates. + +Sun Sep 19 14:52:57 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/time/time.c: #include <_ansi.h>. + +Sun Sep 19 13:43:25 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in (sparc64-*-*): Remove -D__SIZE_TYPE__. + +Mon Sep 13 13:52:16 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: match m8* rather than m88k so that m88110 is + recognized as well. + +Tue Sep 7 12:19:32 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/h8300hms/{Makefile.in, _exit.c, misc.c}: + Renamed exit.c to _exit.c to avoid collision with stdlib/exit.c. + misc.c: New file. + + * configure.in: Add multilib support to h8300. + +Mon Sep 6 14:07:06 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdlib/abort.c (abort): Remove _VOLATILE from return type. + * libc/include/_ansi.h (_ATTRIBUTE): New macro for __attribute__. + * libc/include/stdlib.h (exit, abort): Add noreturn attribute. + +Mon Sep 6 14:24:18 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in: Corrected multidirs for sparc target. + +Mon Aug 30 15:56:44 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + Support for building newlib multiple times with different + compilation flags. + * configure.in: Only configure doc at top level. Set multidirs + when appropriate for target, unless not at top level. If + multidirs is set, independently configure each subdirectory. + Adjust TOP, MULTIDIRS and MULTISUBDIR appropriately in Makefile. + * Makefile.in (MULTIDIRS, MULTISUBDIR): New variables, + automagically set by configure.in. + (all): If MULTIDIRS is set, build multiple copies of libraries. + (install): If MULTIDIRS is set, install multiple copies of + libraries. Install in $(tooldir)/lib/$(MULTISUBDIR). If + MULTISUBDIR is set, don't bother to install header files. + * host/any (INCLUDES, CHEW): Use $(SRCTOP) rather than $(TOP) from + ${srcrootpre}. + * stub/configure.in: Set MULTISUBDIR appropriately. + * stub/Makefile.in (install): Install in + $(tooldir)/lib/$(MULTISUBDIR). + * All Makefile.in files: Define SRCTOP as well as TOP. + +Mon Aug 30 10:34:24 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/machine/h8300/{mulhi3.S, divhi3.S}: Comment out if h8300h. + * libc/machine/h8300/{mulsi3.S, divsi3.S}: Add h8300h support. + +Thu Aug 26 19:38:12 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/h8300hms/exit.c (_exit): New function. + +Wed Aug 25 16:31:48 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: recognize m88110. + +Fri Aug 20 16:46:23 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * libc/sys/m88kbug/crt0.c: pretty up, remove extraneous comments, + prototype main and call with args. + +Fri Jul 30 16:52:47 1993 K. Richard Pixley (rich@cygnus.com) + + First real try at system traps for m88k-bug. + * libc/sys/m88kbug/syscalls.c: many changes. Convert from stubs + to real trap calls. + * libc/sys/m88kbug/sys/systraps.h: new file. + +Tue Jul 27 16:31:16 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + Patches to fix info building when target does not use sys + directory. + * libc/Makefile.in (targetdep.tex): add sys.tex separately. + * libc/sys.tex, libc/sys/sys.tex: moved from libc/sys/sys.tex to + libc/sys.tex. + * libc/sys/Makefile.in (doc): do nothing. + +Mon Jul 26 17:08:11 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * libc/Makefile.in (CRT0): new macro. + (all): depend on $(CRT0) rather than crt0.o. + + * configure.in: fix libc_sys_dir -> libc_sys_lib thinko. + do not default crt0, instead, set crt0 and crt0_dir based on + sys_dir and stub_dir. + + * Makefile.in (CRT0_DIR): new macro. + (all): depend on $(CRT0) rather than crt0.o which may not exist. + (crt0.o): depend on $(CRT0_DIR)/$(CRT0) rather than simply + $(CRT0). + ($(CRT0)): recur by cd'ing into $(CRT0_DIR). + +Sun Jul 25 17:51:51 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * testsuite/lib/libm.exp: + added code to support compiling and linking of tests for + libm.sac (paranoia to be added next) and processing the + pass or failure of the tests. + + * testsuite/config/unix-libm.exp: + platform specific proc's for dealing with compiler, linker + and the way we execute and process the test results. + + * testsuite/libm.sac/execute.exp: + generic framework for the sac tests. the config and lib + expect code for specific platforms tie it all together. + + * testsuite/libm.sac/test_is.c: + changed the output of the test to be consistant with the + other tests. parsing of pass nad fail messages is now fixed. + +Fri Jul 23 19:20:07 1993 Per Bothner (bothner@kalessin) + + * libc/include/{assert.h, ctype.h, dirent.h, errno.h, fastmath.h, + locale.h, math.h, pwd.h, reent.h, setjmp.h, signal.h, stdio.h, + stdlib.h, string.h, termios.h, time.h, utime.h, utmp.h}: For C++: + #ifdef __cplusplus, surround by extern ""C { ... }. + * libc/include/assert.h: Do *not* protect assert.h against + multiple inclusion! Also, #undef it before #define, to allow + redefinition. + * libc/include/stdio.h (getlogin, cuserid): Removed. These + should be only in unistd.h. + + * libc/include/sys/{fcntl.h, reent.h, stat.h, time.h, times.h, + unistd.h}: For C++: #ifdef __cplusplus, surround by extern ""C { + ... }. + +Fri Jul 23 10:15:33 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/machine/sparc/Makefile.in: Must create a library, even + if empty. + +Wed Jul 21 16:00:37 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: set machine_dir for m88k. edit crt0 definition + into makefiles. + + * Makefile.in, libc/Makefile.in (crt0): pull up from lower directories. + + * libc/Makefile.in (all): also build crt0.o. + + * libc/machine/i386/Makefile.in, libc/machine/sparc/Makefile.in, + libc/machine/z8k/Makefile.in, libm/Makefile.in (clean): no need + to remove CRT0. + + * libc/machine/m88k/Makefile.in (TOP, TARGETLIB): removed. + (all): reworked to build in place. + (clean): remove lib.a + (Makefile): remove redundant ./, call $(SHELL) rather than sh. + + * libc/sys/m88kbug/crt0.c (start): renamed to _start. + (_start): key off edata rather than _start_bss. + +Wed Jul 21 14:29:47 1993 david d `zoo' zuhn (zoo@cygnus.com) + + * libc/include/sys/unistd.h, libc/include/reent.h, + libc/reent/sbrkr.c: change sbrk to return void* instead of char*. + +Tue Jul 20 13:19:18 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * libm/Makefile.in, libc/Makefile.in ($(SUBDIRS)): dollar escape a dollar sign. + + * Makefile.in (libc.a): break into two rules, one for libc.a and + one for libc/libc.a. Force subdirs current before rebuilding + library. + (libm.a): break into two rules, one for libm.a and one for + libm/libm.a. Force subdirs current before rebuilding library. + + * libc/Makefile.in (SUBLIBS): fix typo. + + * libc/sys/Makefile.in (all): force descent into subdirs, then + rebuild library iff out of of date. + +Fri Jul 16 17:47:57 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + Rework so that library is built and then finished rather than + being built on each invocation of make. + + * host/any (machine_dir, sys_dir, signal_dir): these are not + shared and have been moved to their associated Makefile.in's. + (AR_FLAGS): switch to qc which is faster. + * configure.in: no longer assign machine_dir for m88k. set + stub_dir, stub_lib, & crt0 for m68k*-unknown-{aout,coff}. If + stub_dir set, then add to configdirs. add comment about silly + configuration. + (configdirs): drop stub. It will be added only + when needed. + (libm_fp_lib, libc_unix_lib, libc_signal_lib, libc_machine_lib, + libc_sys_dir, fake_sys_dir, libc_fake_sys_lib, stub_dir, + stub_lib, crt0): new variables for tailoring lower level + makefiles. Assign accordingly and edit into makefiles. + * libm/Makefile.in: updated copyright. + (TARGETLIB): removed. + (FLAGS_TO_PASS): removed TARGETLIB, machine_dir, sys_dir. + (SUBDIRS): removed TARGETDEP_DIRS. + (LIBM_FP_LIB, SUBLIBS): new macros. + (all): reworked. + (force): new target to force rebuilds. + (Makefile): call $(SHELL) rather than sh. drop redundant ./ + * libc/sys/a29khif/Makefile.in, libc/sys/decstation/Makefile.in, + libc/sys/go32/Makefile.in, libc/sys/h8300hms/Makefile.in, + libc/sys/h8500hms/Makefile.in, libc/sys/m88kbug/Makefile.in, + libc/sys/sh/Makefile.in, libc/sys/sparc64/Makefile.in, + libc/sys/sun4/Makefile.in, libc/sys/sysvi386/Makefile.in, + libc/sys/sysvnecv70/Makefile.in, libc/sys/z8ksim/Makefile.in, + stub/m68kmvme/Makefile.in: updated copyright. + (TARGETLIB, TARGETCRT0, CRT0): macros removed. + (all): reworked. made this the default rule. + (clean): also remove lib.a. + (Makefile): call $(SHELL) rather than sh. drop redundant ./ + * stub/Makefile.in: updated copyright. + (TARGETLIB, TARGETCRT0, CRT0, TOP): removed. + (stub_lib): new macro. + (FLAGS_TO_PASS): removed TARGETLIB, stub_dir, TARGETCRT0. Added + RANLIB. + (all): reworked. + (clean, install): assume stub_dir exists. + (Makefile): depend on configure.in. call $(SHELL) rather than + sh. drop redundant ./ + * stub/configure.in (stublib): new macro, assign it, edit it into + makefiles. + * Makefile, libc/Makefile.in, doc/Makefile.in, libc/sys/Makefile.in: + updated copyright. + (all): reworked. + (Makefile): call $(SHELL) rather than sh. drop redundant ./ + * libc/Makefile.in (TARGETCRT0): removed. + (FLAGS_TO_PASS): dropped TARGETLIB, machine_dir, sys_dir, + TARGETCRT0. + (SUBDIRS): drop TARGETDEP_DIRS. + (LIBC_SIGNAL_LIB, LIBC_SYS_LIB, LIBC_MACHINE_LIB, LIBC_UNIX_LIB, + LIBC_FAKE_SYS_LIB, SUBLIBS): new macros for configuration. + (force): new target to force rebuilds. + * libc/sys/Makefile.in (TARGETCRT0, sys_dir): removed. + (FLAGS_TO_PASS): TARGETLIB, machine_dir, sys_dir, TARGETCRT0 + removed. + (clean): assume sys_dir always exists. + * libm/test/Makefile.in (Makefile): call $(SHELL) rather than sh. + drop redundant ./ + * libc/ctype/Makefile.in, libc/errno/Makefile.in, + libc/locale/Makefile.in, libc/machine/Makefile.in, + libc/machine/a29k/Makefile.in, libc/machine/h8300/Makefile.in, + libc/machine/h8500/Makefile.in, libc/machine/i386/Makefile.in, + libc/machine/i960/Makefile.in, libc/machine/m68k/Makefile.in, + libc/machine/mips/Makefile.in, libc/machine/necv70/Makefile.in, + libc/machine/sh/Makefile.in, libc/machine/sparc/Makefile.in, + libc/machine/z8k/Makefile.in, libc/reent/Makefile.in, + libc/signal/Makefile.in, libc/stdio/Makefile.in, + libc/stdlib/Makefile.in, libc/string/Makefile.in, + libc/sys/Makefile.in, libc/syscalls/Makefile.in, + libc/time/Makefile.in, libc/unix/Makefile.in, + libm/ieeefp/Makefile.in, libm/math/Makefile.in: updated copyright. + (TARGETLIB): removed. + (all): reworked. + (clean): also remove lib.a. + (Makefile): call $(SHELL) rather than sh. drop redundant ./ + * Makefile.in: (machine_dir, sys_dir, stub_dir, stub_lib, CRT0): + new macros. + (SUBDIRS): moved to follow frag inclusion, change stub to + stub_dir. + (FLAGS_TO_PASS): removed machine_dir, sys_dir, signal_dir which + are now set in the libc Makefile. + * libc/machine/Makefile.in (TARGETCRT0, machine_dir): removed. + (FLAGS_TO_PASS): removed TARGETLIB, machine_dir, sys_dir, + TARGETCRT0. + (force): new target to force rebuilds. + * stub/configure.in: determine and set stub_lib for for Makefile. + +Thu Jul 15 12:01:27 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/h8300hms/Makefile.in: Make `all' the default target. + crt0.s renamed to crt0.S. + * libc/sys/h8300hms/crt0.S: Add h8/300h support. + + * libc/machine/h8300/Makefile.in: Make `all' the default target. + * libc/machine/h8300/{cmpsi.S,ucmpsi.S}: #ifdef out entire file if + h8300h. + * libc/machine/h8300/defines.h: Add macros to handle pointers for + h8300 (16 bits) and h8300h (32 bits). + * libc/machine/h8300/{divsi3.S,mulsi3.S,memcpy.S,memset.S, + reg_memcpy.S,reg_memset.S,strcmp.S}: Add h8300h support. + +Thu Jul 15 10:13:29 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/machine/m88k/setjmp.S, Makefile.in: New files; a simple + implementation of setjmp and longjmp for the m88k. + * libc/include/machine/setjmp.h: Added __m88000__ case. + +Wed Jul 14 10:10:30 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Recognize h8300h as variant of h8300. + +Tue Jul 13 12:24:11 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * libc/include/sys/unistd.h (read, write): get prototypes right. + (sbrk): New prototype. + * libc/reent/sbrkr.c (sbrkr): Use correct sbrk prototype. + * libc/stdio/local.h: Include unistd.h. + * libc/machine/h8300/syscalls.c: Names have changed. + +Mon Jul 12 18:08:42 1993 K. Richard Pixley (rich@cygnus.com) + + * configure.in: add sys_dir assignment for m88k-bug. + +Thu Jul 8 09:16:21 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/sys/syscallasm.h: New macros to handle either + a.out or elf. + * libc/sys/sparc64: all *.S files: Use new macros. + * libc/sys/sparc64/isatty.c: New file. + * libc/sys/sparc64/Makefile.in: Stop using /lib/libc.a for + functions beyond what newlib provides. + +Thu Jul 8 09:11:28 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/sys/stat.h: Move st_atime so not doubly defined for + svr4. + +Thu Jul 8 09:09:16 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/machine/ieeefp.h: Add support for h8/300h. + +Fri Jul 2 10:11:20 1993 K. Richard Pixley (rich@cygnus.com) + + * configure.in: add m88k. + * libc/include/machine/ieeefp.h: add case for m88k. Also add + sanity check so no one else need ever chase what I did to find + this. + + * libm/math/Makefile.in (FAKEC): added atanf.c log1pf.c scalbnf.c. + +Fri Jul 2 09:15:21 1993 Ian Lance Taylor (ian@cygnus.com) + + * doc/makedoc.c: Include <ctype.h>. + +Wed Jun 30 09:35:06 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/Makefile.in (FLAGS_TO_PASS): Add TARGET_ASFLAGS. + * libc/sys/Makefile.in (FLAGS_TO_PASS): Add TARGET_ASFLAGS. + * libc/machine/Makefile.in (FLAGS_TO_PASS): Add TARGET_ASFLAGS. + + * libm/test/Makefile.in (all): Link with ../../lib[cm].a. + +Sun Jun 27 17:05:20 1993 Doug Evans (dje@sphagnum.cygnus.com) + + * libc/include/errno.h (ENOSYS): Added. + + * libc/unix/getpwd.c (getcwd): Fix typo (_up -> up). + +Mon Jun 21 09:03:32 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * libc/stdio/fflush.c (fflush): Check for reent struct + initialization. + * libc/stdio/fdopen.c (fdopen): Avoid namespace conflict. + +Fri Jun 18 16:06:05 1993 Mark Eichin (eichin@rtl.cygnus.com) + + * libc/stdlib/dtoastub.c: new file -- move user callable "dtoa" + out of dtoa.c so it doesn't pollute the namespace. + * libc/include/_syslist.h: new file -- mappings from _function to + function, for systems where we can't win (by default, all of them, + until we start updating system calls.) + * libc/syscalls: new directory -- stubs for exporting _function + names as unmodified function names. + * libc/configure.in: add MISSING_SYSCALL_NAMES to enable + _syslist.h on all platforms by default, but put hooks in for + fake_sys_dir so we can include it when we've renamed the system + calls. + * libc/reent/execr.c libc/reent/filer.c libc/reent/fstatr.c + libc/reent/linkr.c libc/reent/sbrkr.c libc/reent/statr.c + libc/signal/raise.c libc/signal/signal.c libc/stdio/fdopen.c + libc/stdio/mktemp.c libc/stdio/tmpnam.c libc/stdlib/abort.c + libc/stdlib/system.c libc/unix/getcwd.c libc/unix/getlogin.c + libc/unix/getpass.c libc/unix/getut.c libc/unix/ttyname.c: change + non ANSI functions to call _function. + +Wed Jun 9 09:48:26 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/stdlib/strtoul.c (_strtoul_r): Handle leading 0 correctly + when base 16 is specified. Don't accept non-digits if radix > 10. + +Thu Jun 3 10:01:15 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/math.h: Rename xxx_r fns to _xxx_r. + +Wed Jun 2 16:54:16 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * libc/include/sys/stat.h: Surround text after #endif with + comments. + +Wed Jun 2 12:47:32 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/stdlib/mallocr.c: If MALLOC_PROVIDED is defined, just make + _malloc_r, _realloc_r, and free_r call the corresponding + non-reentrant functions. + + * libm/math/modf.c (modf): We now take the address of ipart, so + don't make it a register variable. + +Tue Jun 1 18:25:54 1993 Doug Evans (dje@canuck.cygnus.com) + + * libm/math/*: Rename all xxx_r fns to _xxx_r. + +Wed May 26 22:06:35 1993 Roland H. Pesch (pesch@cygnus.com) + + * libc/libc.texinfo and embedded docn throughout: formatting + improvements, minor rephrasing for clarity, and improved + reentrancy docn. + +Sun May 23 17:29:49 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * libm/ieeefp/infinity.c (maxpowtwof): Fix initialzation bug. + + * libc/stdio/cvt.c (_licvt): Print the right value on machines + where sizeof(int) != sizeof(long). + +Fri May 21 22:09:32 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/reent/execr.c, libc/reent/filer.c, libc/reent/linkr.c, + libc/reent/sbrkr.c, libc/reent/statr.c, libc/stdio/tmpnam.c, + libc/stdlib/atol.c, libc/stdlib/rand.c, libc/string/strpbrk.c, + libc/string/strspn.c, libm/ieeefp/isnan.c, libm/math/bessel.c, + libm/math/matherr.c: changes for better docn formatting (info). + + * libc/libc.texinfo, libc/ctype/ctype.tex, libc/locale/locale/tex, + libc/reent/reent.tex, libc/signal/signal.tex, + libc/stdio/stdio.tex, libc/stdlib/stdlib.tex, + libc/string/strings.tex, libc/sys/sys.tex, libc/time/time.tex, + libm/libm.texinfo, libm/ieeefp/ieeefp.tex, libm/math/math.tex: use + makeinfo node defaulting to get better Info file node structure. + (Requires recent sac change to doc/makedoc.c and doc/doc.str.) + Also include a few formerly missing sections (subroutines). + + * doc/doc.str: delete fossil expansion for "func" + + * default.menu, no-signal.menu: delete. + + * Makefile.in, libc/Makefile.in, configure.in, host/any: simplify + method used to adjust doc for missing "signals" chapter when + signal_dir is empty. + +Thu May 20 21:38:37 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * configure.in: added testsuite/libm.sac + +Wed May 19 14:52:34 1993 Doug Evans (dje@thepub.cygnus.com) + + * libc/sys/sparc64/crt0.S: Set %g4 to 0 (to test Medium/Anywhere + code model). + +Tue May 18 13:17:21 1993 Ian Lance Taylor (ian@cygnus.com) + + * libm/Makefile.in: Use $(MAKE) rather than make, and define + MAKEOVERRIDES to be empty. + +Mon May 17 08:42:44 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: Don't build mips-*-* with -msoft-float, since that + makes it incompatible with hard floating point. + +Mon May 17 00:03:35 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * Makefile.in: added recursive 'make check' + +Thu May 13 16:24:18 MDT 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * configure.in: added ./testsuite ./testsuite/libm.paranoia + * ./testsuite/Makefile.in: created + * ./testsuite/libm.paranoia: paranoia tests added + +Thu May 13 10:30:24 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: For mips-*-* set machine_dir to mips. + + * libc/machine/mips: New directory. + * libc/machine/mips/Makefile.in: New file. + * libc/machine/mips/setjmp.S: New file; simplistic MIPS version of + setjmp and longjmp. + * libc/include/machine/setjmp.h: Added __mips__ case. + + * libc/machine/lmips: Removed unused and useless directory. + +Mon May 3 10:22:31 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: Accept i486-*-sco* as well as i386-*-sco*. + +Thu Apr 15 15:16:44 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/crt0.S: Add comment (%g1 contains atexit arg at + start up). + +Fri Apr 9 13:32:26 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/machine/setjmp-dj.h: Use _SETJMP_DJ_H rather than + SETJMP_H. + +Thu Apr 8 10:07:18 1993 Doug Evans (dje@canuck.cygnus.com) + + * libm/test/convert.c: structure member errno -> errno_val. + Must include <errno.h> to use errno, it's a macro now. + * libm/test/math.c: Ditto. + * libm/test/math2.c: Include errno.h. + * libm/test/string.c: Ditto. + * libm/test/test.h: structure member errno -> errno_val. + Remove extern int errno decl. + +Thu Apr 8 07:56:33 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/stdio/Makefile.in: Added dependencies on local header + files. + * libc/stdio/std.h, libc/stdio/vfprintf.h: Removed unused header + files. + +Wed Apr 7 16:19:32 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/machine/ieeefp.h: Added __MIPSEB__ case. + +Wed Apr 7 10:55:21 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdio/siprintf.c libc/stdio/sscanf.c libc/stdio/vsprintf.c: + Initialize _data. + + * libc/stdio/vfprintf.c: No need to declare _icvt, _licvt, _sicvt. + * libc/stdio/local.h: Add prototype for _licvt. + + * libc/stdio/ungetc.c (__submore): Use _malloc_r,_realloc_r + instead of malloc,reealloc. + + * libc/stdlib/local.h: New file. + * libc/stdlib/efgcvt.c: #include local.h. + (gcvt): Fix call to _gcvt. + * libc/stdlib/ecvtbuf.c: #include local.h. + + * libc/stdlib/Makefile.in: new files mallocr.c mstats.c. + * libc/stdlib/mallocr.c mstats.c malloc.h: New files. + * libc/stdlib/malloc.c: main routines moved to mallocr.c. + + * libc/stdlib/atexit.c: moved global data to struct _reent. + * libc/stdlib/exit.c: use struct _atexit in struct _reent. + + * libc/reent/reent.c (inpure_data): _REENT_INIT macro modified. + +Wed Apr 7 09:41:50 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/sys/reent.h: Stuff required by ANSI headers moved + here from ../reent.h. + +Tue Apr 6 12:56:01 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (MATHOBJS_IN_LIBC): List of object files which + should be provided in both libc.a and libm.a. + (libc.a): Depend on targ-include and libm.a. Copy + $(MATHOBJS_IN_LIBC) from libm.a to libc.a. + (libm.a): Depend on targ-include. + * configure.in (subdirs): Removed libc/math. + +Mon Apr 5 10:18:16 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * libm/ieeefp/infinity.c (maxpowtwo): Fix initialization bug. + +Sat Apr 3 11:06:07 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/{errno.h, math.h, stdio.h, stdlib.h}: Use + sys/reent.h instead of reent.h. + * libc/include/reent.h: Split into two parts: stuff needed by ANSI + headers moved to sys/reent.h. + * libc/include/signal.h: _MAX_SIGNALS moved to sys/signal.h. + * libc/include/sys/signal.h: Define _MAX_SIGNALS if + __need__MAX_SIGNALS defined. + * libc/include/stdio.h: struct __sFILE moved to sys/reent.h. + std{in,out,err} refer to new _std{in,out,err} members. + +Fri Apr 2 11:27:12 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/include/sys/signal.h: #define _SYS_SIGNAL_H for general + case. + +Fri Apr 2 09:41:10 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/sys/sparc64/execve.S (execve): Insert nop in delay slot, + rather than whatever macro seterrno() has. + +Thu Apr 1 16:47:08 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/locale/locale.c: Reentrant routines _r_xxx renamed to + _xxx_r. struct reent_struct renamed to struct _reent for ANSI. + + * libc/include/machine/fastmath.h: Use _HAVE_STDC instead of + __STDC__. + + * libc/reent/{execr.c, filer.c, fstatr.c, linkr.c, reent.c, + reent.tex, sbrkr.c, statr.c}: _r_xxx reentrant routines renamed to + _xxx_r. struct reent_struct renamed to struct _reent for ANSI. + + * libc/signal/signal.c: Reentrant routines _r_xxx renamed to + _xxx_r. struct reent_struct renamed to struct _reent for ANSI. + + * libc/stdio/{fclose.c, fdopen.c, findfp.c, fiprintf.c, flags.c, + fopen.c, fprintf.c, freopen.c, fscanf.c, fseek.c, ftell.c, + fwalk.c, getchar.c, gets.c, iprintf.c, local.h, makebuf.c, + mktemp.c, perror.c, printf.c, putchar.c, puts.c, refill.c, + remove.c, rename.c, scanf.c, setvbuf.c, siprintf.c, sprintf.c, + sscanf.c, stdio.c, tmpfile.c, tmpnam.c, vfprintf.c, vfprintf.h, + vfscanf.c, vprintf.c, vsprintf.c}: Reentrant routines _r_xxx + renamed to _xxx_r. struct reent_struct renamed to struct _reent + for ANSI. structure members given leading "_" for ANSI. Use + _HAVE_STDC instead of __STDC__ and _HAVE_STDARG. + + * libc/stdlib/{__adjust.c, calloc.c, dtoa.c, ecvtbuf.c, malloc.c, + mprec.c, mprec.h, rand.c, std.h, strtod.c, strtol.c, strtoul.c, + system.c}: Reentrant routines _r_xxx renamed to _xxx_r. struct + reent_struct renamed to struct _reent for ANSI. + Structure members given leading "_" for ANSI. + _CONST --> const in prototypes. + Use _HAVE_STDC instead of __STDC__. + + * libc/string/strtok.c: Reentrant routines _r_xxx renamed to + _xxx_r. + struct reent_struct renamed to struct _reent for ANSI. + Structure members given leading "_" for ANSI. + + * libc/time/asctime.c: Reentrant routines _r_xxx renamed to + _xxx_r. + struct reent_struct renamed to struct _reent for ANSI. + + * libm/math/{acos.h, acosh.h, asin.c, asinh.h, atanh.h, bessel.h, + cbrt.h, cosh.h, erf.c, erf.h, error.c, exp.c, fmod.c, frexp.h, + gamma.h, hypot.h, ldexp.c, log.h, log10.c, log1p.c log2.c, + mathimpl.h, pow.c, remainder.c, sincos.c, sinh.h, sqrt.h, tan.c, + tanh.h}: struct reent_struct renamed to struct _reent for ANSI. + + * libc/include/{_ansi.h, ctype.h, math.h, reent.h, locale.h, + signal.h, stdio.h, stdlib.h, string.h, time.h}: + Use _HAVE_STDC instead of __STDC__ and _HAVE_STDARG. + #ifndef _STRICT_ANSI non-ANSI routines. + Reentrant routines renamed from _r_xxx to _xxx_r. + No need to use _STRICT_ANSI on _xxx_r reentrant routines. + Use _STRICT_ANSI instead of __STRICT_ANSI, _ANSI_SOURCE, etc. + Clean up namespace (structure members have leading "_"). + struct reent_struct renamed to struct _reent for ANSI compliance. + _CONST --> const in function prototypes. + + * libc/include/string.h: Add NULL and size_t. + + * libc/sys/sparc64/Makefile.in: New syscall routines for link, + unlink, wait, wait4. Reentrant syscall routines close, fork, + fstat, link, lseek, open, read, sbrk, stat, unlink, wait, wait4, + write. + * libc/sys/sparc64/cerror.S (cerror_r): New routine. + * libc/sys/sparc64/{close.S, fork.S, fstat.S, link.S, lseek.S, + open.S, read.S, sbrk.S, stat.S, unlink.S, wait.S, wait4.S, + write.S}: Define reentrant versions. + * libc/sys/sparc64/sys/syscallasm.h (defsyscall_r): New macro for + reentrant syscalls. + + * libc/sys/sparc64/crt0.S (start): Fix initialization of environ. + + * libc/include/stdlib.h (RAND_MAX): Fix value. + +Thu Apr 1 12:28:30 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/a29khif/_main.c: Removed unnecessary file. + * libc/sys/a29khif/Makefile.in (OFILES): Removed _main.c, moved + VPATH support targets after all: target. + + * stub/mvme135/mvme.S: Renamed exceptionhandler to + exceptionHandler, which is what mvme135-stub.c expects. + +Wed Mar 31 17:42:03 1993 Doug Evans (dje@cygnus.com) + + * libc/stdio/tmpnam.c (worker): Fix test for _r_open() failure. + + * libc/unix/getpass.c (getpass): Use stdin,stderr instead of + def_stdin/def_stderr (latter removed from stdio.h to make it ANSI + compliant). + +Tue Mar 30 09:58:21 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/reent/execr.c (_r_wait): Re-order args to make reent_struct + first. + libc/reent/filer.c (_r_open, _r_close, _r_lseek, _r_read, + _r_write): Ditto. + libc/reent/fstatr.c (_r_fstat): Ditto. + libc/reent/linkr.c (_r_link, _r_unlink): Ditto. + libc/reent/sbrkr.c (_r_sbrk): Ditto. + libc/reent/statr.c (_r_stat): Ditto. + + * libc/stdio/fopen.c (_r_fopen): Re-order args to _r_open. + * libc/stdio/freopen.c (freopen): Ditto for _r_open, _r_free. + * libc/stdio/fseek.c (fseek): Ditto for _r_fseek. + * libc/stdio/makebuf.c (__smakebuf): Ditto for _r_fstat. + * libc/stdio/mktemp.c (_gettemp): Ditto for _r_stat, _r_open. + * libc/stdio/remove.c (_r_remove): Ditto for _r_unlink. + * libc/stdio/rename.c (_r_rename): Ditto for _r_link, _r_unlink. + * libc/stdio/stdio.c (__sread): Ditto for _r_read. + (__swrite): Ditto for _r_lseek, _r_write. + (__sseek): Ditto for _r_lseek. + (__close): Ditto for _r_close. + * libc/stdio/tmpnam.c (worker): Ditto for _r_open, _r_close. + + * libc/stdlib/malloc.c (_r_morecore): Re-order args to _r_sbrk. + * libc/stdlib/system.c (_r_system): Ditto for _r_wait. + + * libc/include/reent.h: Re-order arguments to _r_xxx syscall fns + to make reent_struct the first argument (and thus consistent with + the rest of newlib). + + * stub/mvme135/mvme135-stub.c (initializeRemcomErrorFrame): Remove + reference to __STDC__. + +Mon Mar 29 12:34:32 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdlib/exit.c (exit): Use _REENT->__cleanup instead of + global __cleanup. + +Wed Mar 24 11:54:35 1993 Doug Evans (dje@canuck.cygnus.com) + + * libc/stdio/freopen.c (freopen): Ensure stdio is initialized + first. + libc/stdio/fclose.c (fclose): Ditto. + +Tue Mar 23 01:26:52 1993 Doug Evans (dje@rtl.cygnus.com) + + * Run through indent and rename reentrant routines for ANSI. + libc/stdio/{clearerr.c cvt.c fclose.c fdopen.c feof.c ferror.c + fflush.c fgetc.c fgetpos.c fgets.c findfp.c fiprintf.c flags.c + fopen.c fprintf.c fputc.c fputs.c fread.c freopen.c fscanf.c + fseek.c fsetpos.c ftell.c fvwrite.c fwalk.c fwrite.c getc.c + getchar.c gets.c iprintf.c makebuf.c mktemp.c perror.c printf.c + putc.c putchar.c puts.c refill.c remove.c rename.c rewind.c rget.c + scanf.c setbuf.c setvbuf.c siprintf.c sprintf.c sscanf.c stdio.c + tmpfile.c tmpnam.c ungetc.c vfprintf.c vfscanf.c vprintf.c + vsprintf.c wbuf.c wsetup.c local.h} + + * libc/locale/locale.c: Reformat and rename for ANSI, GNU style. + + * Run through indent and rename xxx_r fns to _r_xxx for ANSI. + libc/stdlib/{__adjust.c __exp10.c __ten_mu.c abort.c abs.c + assert.c atexit.c atof.c atoi.c atol.c bsearch.c calloc.c div.c + dtoa.c ecvtbuf.c efgcvt.c exit.c getenv.c labs.c ldiv.c malloc.c + mbtowc.c mprec.c putenv.c qsort.c rand.c setenv.c strdup.c + strtod.c strtol.c strtoul.c system.c wctomb.c mprec.h} + + * Run through indent. + libc/string/{bcmp.c bcopy.c bzero.c index.c memchr.c memcmp.c + memcpy.c memmove.c memset.c rindex.c strcat.c strchr.c strcmp.c + strcoll.c strcpy.c strcspn.c strerror.c strlen.c strncat.c + strncmp.c strncpy.c strpbrk.c strrchr.c strspn.c strstr.c strtok.c + strxfrm.c} + + * libc/time/{asctime.c clock.c ctime.c difftime.c gmtime.c + localtime.c mktime.c strftime.c time.c}: + Run through indent and rename xxx_r (reentrant) fns to _r_xxx for ANSI. + + * Reformatting + renaming (for ANSI, GNU style, consistency). + libc/include/{_ansi.h, assert.h, ctype.h, errno.h, fastmath.h, + ieeefp.h, locale.h, math.h, paths.h, pwd.h, reent.h, setjmp.h, + signal.h, stdio.h, stdlib.h, string.h, time.h, unistd.h} + +Fri Mar 19 11:28:01 1993 Doug Evans (dje@cygnus.com) + + * libc/include/stdio.h (stdin_r): Fix. + +Fri Mar 19 09:43:48 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: Unexport some variables to keep GNU make from + putting them in the environment and using up needed ARG_MAX space + (a hack is used to let this work with older makes as well). + +Tue Mar 16 15:11:08 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: Use $(MAKE) rather than make. + (MAKEOVERRIDES): Define to be empty. + (FLAGS_TO_PASS): Don't pass down LD (it's not used). + (libc.a, libm.a): Depend on targ-include. + * host/any (LD): Don't define. + (INCLUDES): Use targ-include. + * stub/Makefile.in (MAKEOVERRIDES): Define to be empty. + (FLAGS_TO_PASS): Don't pass down LD (it's not used). + * libc/Makefile.in: Use $(MAKE) rather than make. + (MAKEOVERRIDES): Define to be empty. + (FLAGS_TO_PASS): Don't pass LD (it's not used). + (all): Rewrote to be slightly smaller. + * libc/machine/Makefile.in, libc/sys/Makefile.in (MAKEOVERRIDES): + Define to be empty. + (FLAGS_TO_PASS): Don't pass LD (it's not used). + * libm/Makefile.in (FLAGS_TO_PASS): Don't pass LD (it's not used). + +Mon Mar 15 08:45:41 1993 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/go32/gerrno.s: Renamed from errno.s to avoid conflict + with errno/errno.c. + +Fri Mar 12 09:46:54 1993 Ian Lance Taylor (ian@cygnus.com) + + * Changes for reentrancy. + libc/stdio/fdopen.c, libc/stdio/freopen.c, libc/stdio/perror.c: + Use ptr->_errno, not errno. + libc/stdio/mktemp.c (mkstemp_r, mktemp_r): New functions. + libc/stdio/remove.c (remove_r): New function. + libc/stdio/rename.c (rename_r): New function. + libc/stdio/fopen.c, libc/stdio/freopen.c, libc/stdio/fseek.c, + libc/stdio/makebuf.c, libc/stdio/mktemp.c, libc/stdio/remove.c, + libc/stdio/rename.c, libc/stdio/stdio.c, libc/stdio/tmpnam.c: Use + reentrant versions of system calls. + libc/stdio/gets.c: Call getchar_f, not nonexistent getchar_r. + libc/stdio/scanf.c: Use stdin_r, not nonexistent stdin_n. + libc/stdio/tmpfile.c: Use tmpnam_f, not nonexistent tmpnam_r. + libc/stdio/findfp.c: Include <string.h>. + libc/stdio/fread.c, libc/stdio/rget.c, libc/stdio/scanf.c: Include + "local.h". + libc/stdio/wbuf.c: Include "fvwrite.h" + + * libc/stdlib/{dtoa.c, ecvtbuf.c, mprec.c, strtod.c}: Include + <string.h>. + libc/stdlib/malloc.c: Call sbrk_r rather than sbrk. + (NULL): Don't define if already defined. + libc/stdlib/system.c: Call reentrant versions of system calls. + (system_r): New function. + + * Changes for reentrancy. + libc/include/_ansi.h (_PARAMS): New macro. + libc/include/errno.h: Define errno as a macro that calls __errno. + (__errno_r): New macro for reentrant code. + libc/include/math.h: Include reent.h. Declare many reentrant + functions. + (signgam): Now a macro, not a variable. + (struct exception): Added err field. + libc/include/reent.h: Don't declare __sglue. Added function + declarations. + (struct reent_struct): Moved errno to beginning. Added _signgam. + libc/include/stdio.h, libc/include/stdlib.h: Added function + declarations. + + * More reentrancy hacking. + libc/errno/errno.c (__errno): New function. + libc/reent/execr.c, libc/reent/filer.c, libc/reent/fstatr.c, + libc/reent/linkr.c, libc/reent/sbrkr.c, libc/reent/statr.c: New + files. + + * Added many new reentrant functions to libm/math/*. + libm/math/error.c (__matherror): Added reent_struct pointer + argument. Changed all callers. + libm/math/gamma.c (signgam): Removed. Set ptr->_signgam, instead. + libm/math/exp.h, libm/math/pow.h, libm/math/sincos.h, + libm/math/tan.h: Removed obsolete unused header files. + + * libc/sys/a29khif/stubs.s: Use register lr0, not v0. + + * libc/sys/sun/Makefile.in (COPYOFILES): Don't pull in errno.o. + +Mon Mar 8 16:43:43 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/sys/a29khif/stubs.s: clobber safe register, and fill all + delay slots. + +Tue Mar 2 14:47:00 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * libc/libc.texinfo: comment out reentrancy chapter (duh) + +Tue Mar 2 14:34:16 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * libc/reent/reent.tex: New file. (text from + newlib/libc/libc.texinfo) + * libc/stdio/tmpnam.c: fixed doc typo + * libc/stdlib/rand.c: fixed doc typo + +Tue Mar 2 14:34:16 1993 Jeffrey Osier (jeffrey@fowanton.cygnus.com) + + * libc/reent/reent.tex: New file. (text from + newlib/libc/libc.texinfo) + +Fri Feb 26 12:20:54 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + support for reentrancy + * libc/reent/reent.c, libc/reent/Makefile.in, libc/reent/reent.c: + new files + * libc/errno/errno.c, libc/include/ieeefp.h, + libc/include/locale.h, libc/include/reent.h, + libc/include/signal.h, libc/include/stdio.h, + libc/include/stdlib.h, libc/include/string.h, libc/include/time.h, + libc/signal/signal.c libc/stdio/cvt.c, libc/stdio/fclose.c, + libc/stdio/fdopen.c, libc/stdio/fflush.c, libc/stdio/fgets.c, + libc/stdio/findfp.c, libc/stdio/flags.c, libc/stdio/fopen.c, + libc/stdio/fputc.c, libc/stdio/freopen.c, libc/stdio/fseek.c, + libc/stdio/ftell.c, libc/stdio/fwalk.c, libc/stdio/getchar.c, + libc/stdio/gets.c, libc/stdio/glue.h, libc/stdio/iprintf.c, + libc/stdio/local.h, libc/stdio/makebuf.c, libc/stdio/perror.c, + libc/stdio/printf.c, libc/stdio/putchar.c, libc/stdio/puts.c, + libc/stdio/refill.c, libc/stdio/scanf.c, libc/stdio/setvbuf.c, + libc/stdio/sprintf.c, libc/stdio/tmpfile.c, libc/stdio/tmpnam.c, + libc/stdio/ungetc.c, libc/stdio/vfprintf.c, libc/stdio/vfprintf.h, + libc/stdio/vfscanf.c, libc/stdio/vprintf.c, libc/stdio/wsetup.c, + libc/stdlib/__adjust.c, libc/stdlib/__exp10.c, + libc/stdlib/assert.c, libc/stdlib/atexit.c, libc/stdlib/atol.c, + libc/stdlib/dtoa.c, libc/stdlib/ecvtbuf.c, libc/stdlib/malloc.c, + libc/stdlib/mprec.c, libc/stdlib/mprec.h, libc/stdlib/rand.c, + libc/stdlib/setenv.c, libc/stdlib/std.h, libc/stdlib/strtod.c, + libc/stdlib/strtol.c, libc/stdlib/strtoul.c, libc/string/strtok.c, + libc/time/asctime.c, libc/time/localtime.c, libc/time/mktime.c, + libc/time/strftime.c: modify to provide reentracy. + + new routines: + strtok_r, asctime_r, fdopen_r, _cleanup_r, fopen_r, iprintf_r, + perror_r, printf_r, putchar_r, puts_r, scanf_r, sprintf_r, + tmpfile_r, vfiprintf_r, vfprintf_r, strtod_r, dtoa_r, rand_r, + srand_r, strtoul_r,strtol_r, free_r, malloc_r, morecore_r, + mstats_r, realloc_r, localeconv_r, setlocale_r + +Wed Feb 17 20:17:15 1993 Mark Eichin (eichin@cygnus.com) + + * libc/include/machine/ieeefp.h, libc/include/machine/setjmp.h, + libc/include/sys/config.h, libc/include/sys/signal.h, + libc/include/sys/stat.h, libc/include/sys/types.h: For compiler + provided macros (such as m68000), use the ansi version + (__m68000__) so that the library can be used with code compiled + -ansi. In particular, m68000, mc68000, _AM29K, i386, MIPSEL, unix, + and sparc. + +Wed Feb 17 13:01:34 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * configure.in (sparc*): Don't set -fsoft-float for sparc + configurations. Do set -fsoft-float for sparclite configurations. + +Fri Feb 12 16:25:52 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * default.menu, no-signal.menu: alternate forms of libc main menu + (in newlib rather than newlib/libc due to configuration restrictions) + + * configure.in: select one of the two menus above, link to + libc.menu + + * libc/libc.texinfo: include menu from separate file + +Fri Feb 12 12:50:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (FLAGS_TO_PASS): Put INSTALL back in. + (info): Split long shell command in half. + * libc/Makefile.in (info, targetdep.tex): Don't pass everything to + sub-makes, just CHEW and TARGETDOC. + (targetdep.tex): Removed now special handling of sys and machine + subdirectories, made obsolete some time ago. + * libc/machine/Makefile.in (doc): Don't pass everything to + sub-make, just CHEW and TARGETDOC. + (Makefile): New target. + * libc/sys/Makefile.in (Makefile): New target. + +Thu Feb 11 15:25:15 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (here and most subdirectories): Only pass down CHEW + and TARGETDOC when making info, not for other targets. + + * Makefile.in (here and most subdirectories), host/any: Use $(AR) + $(AR_FLAGS) rather than $(ARUPDATE). + +Wed Feb 10 11:57:52 1993 Ian Lance Taylor (ian@cygnus.com) + + * Try to reduce command line length: + * Makefile.in (FLAGS_TO_PASS): don't pass down exec_prefix, + CC_FOR_BUILD, CFLAGS_FOR_BUILD, INSTALL or CHEW. + (info, docs): pass CC_FOR_BUILD and CFLAGS_FOR_BUILD to doc. + (info): Pass CHEW to other subdirs. + +Tue Feb 9 14:01:42 1993 Mark Eichin (eichin@cygnus.com) + + * configure.in: add signal_dir, like unix_dir, but by default it + is set to "signal" so that a29khif can turn it off (since a29khif + has raise() as part of machine-specific signal.s.) + +Fri Jan 15 12:09:50 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/sys/config.h, libc/machine/ieeefp.h: add Z8000 support + * libc/stdio/Makefile.in: pass CFLAGS so vfiprintf.c gets built + correctly. + * libc/stdio/fdopen.c, libc/stdio/fgets.c, libc/stdio/fscanf.c, + libc/stdio/vfprintf: type lint. + * libc/sys/z8ksim/crt0.c (start): Z8001/Z8002 independent + initialzation code. + * libc/sys/z8ksim/glue.c: Z8001/Z8002 clean system calls. + +Tue Dec 29 10:15:33 1992 Ian Lance Taylor (ian@cygnus.com) + + * stub/mvme135/mvme135-asm.S: new file. + stub/mvme135mvme135-stub.c: moved all assembler routines into + mvme135-asm.S. + stub/mvme135/Makefile.in: build mvme135-stub.o. + +Mon Dec 28 12:40:43 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: don't pass down $(CPP); use $(CC) -E in + sub-Makefiles instead, to try to avoid line length limitations. + +Mon Dec 21 18:36:13 1992 Per Bothner (bothner@rtl.cygnus.com) + + * libc/include/unistd.h (read, write): Use void* instead of + char*. + +Thu Dec 17 13:49:46 1992 Mark Eichin (eichin@cygnus.com) + + * stub/go32/resetpc: sample script to send a reset packet to the + stub + + * stub/go32/I386STUB.C: new file, gdb/i386stub.c modified for the + DOS environment, which compiles with Turbo C. + + * stub/go32/DSER32.LNK: new file, linker commands for serial + remote stub. + + * stub/go32/CONTROL.C: turn off debug_mode, add CYGNUS tag line to + start up message to identify version; call set_debug_traps. + + * stub/go32/DEBUG.C: turn off debug_mode (so stub doesn't need any + keyboard interaction); call handle_exception() in go_til_stop, + rather than return, so that the remote stub gets control. + + * stub/go32/MAKEFILE: fixed to actually use DOS commands (del and + rename, rather than mv), set flags that work with current Turbo C, + including using the /3 flag; also, add commands to build dser32. + + * stub/go32/DEBUG32.LNK, stub/go32/GO32.LNK: fix paths to match + default Turbo C installation (\tc rather than \usr) + + * stub/go32/MONO.C (printf): current Turbo C uses "..." instead of + "&..." + +Mon Dec 14 09:37:33 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/include/math.h: added _DOUBLE_IS_32BITS checks + +Thu Nov 12 22:31:04 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/stdio/cvt.c (licvt): new function to convert ints when + sizeof(int) != sizeof(long). + + * libc/include/stdio.h: added prototype for iprintf. + * libc/include/machine/limits.h machine/ieeefp.h: z8k stuff + +Tue Nov 10 12:18:12 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/machine/m68k/setjmp.S: use __USER_LABEL_PREFIX__ and + __REGISTER_PREFIX__. + +Mon Nov 2 13:50:14 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/m68kbare: moved into stub directory. + +Mon Nov 2 13:40:42 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in, Makefile.in: created new directory stub, to hold + sample code for specific targets. + +Wed Oct 28 02:19:55 1992 Mark Eichin (eichin@cygnus.com) + + * restored libc/sys/go32/sys/fcntl.h, to override incorrect values + in the unified libc/include/sys/fcntl.h. + +Wed Oct 21 13:55:58 1992 Doug Evans (dje@rtl.cygnus.com) + + * libc/stdlib/ecvtbuf.c: (print_f,_gcvt): printf("%f", 0.01) + printed .01, not 0.01. + +Mon Oct 19 11:05:55 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: compile with -m68000 for m68* targets. + +Sun Oct 18 05:29:05 1992 Mark Eichin (eichin@cygnus.com) + + * libm/math/remainder.c (remainder): document the svr4 and sunos + references used to construct the function. + +Sat Oct 17 21:46:16 1992 Mark Eichin (eichin@cygnus.com) + + * libm/math/remainder.c (rint, remainder): fix old typos. + * libm/math/Makefile.in: actually build remainder.c (functions + rint and remainder, from SysVr4 Programmer's Guide floor(3m) man + page.) + +Thu Oct 15 07:48:05 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/string/bcopy.c: BSD version works on overlapping strings, + so ours should too. + + * libc/stdlib/system.c: always invoke /bin/sh, not getenv + ("SHELL"). + +Wed Oct 14 11:07:11 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (docs): new target. + +Wed Oct 14 07:44:25 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/sys/times.h: define clock_t as required by POSIX. + libc/include/time.h: protect clock_t from multiple definitions. + +Wed Oct 7 11:02:21 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * libm/math/sqrt.h (sqrt): actually, the final version of fp-bit + does not need more than the original three iterations to get + within 1 ulp. (Paranoia tests for rounding to better than that, + but further iterations *don't* help, only more subtle changes + can.) + +Tue Oct 6 09:22:12 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/vxworks68, libc/sys/vxworks960: removed, since they + were doing nothing useful. + +Tue Oct 6 08:48:13 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: define MALLOC_PROVIDED for vxworks targets; + removed sys_dir settings of vxworks68 and vxworks960. + host/any: don't pass -nostdinc to gcc, since newlib no longer + provides all required header files. + + * libc/stdlib/malloc.c: only compile this file if MALLOC_PROVIDED + is not defined; this provides a hook for VxWorks. + +Mon Oct 5 03:44:57 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * libc/stdio/setvbuf.c (setvbuf): while ANSI does say to malloc a + buffer if buf is NULL, don't do it here -- it is already being + done by makebuf elsewhere in stdio. + +Fri Oct 2 13:12:07 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/a29khif/Makefile.in: assemble Steve's list of stubs so + that C programs can call functions without using initial + underscores. + +Thu Oct 1 09:37:47 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/stdlib/abort.c (abort): call exit, in case kill returns. + +Wed Sep 30 08:22:18 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: set TARGET_CFLAGS for certain CPU types to + -msoft-float. + +Tue Sep 29 21:09:32 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * libc/sys/m68kbare/glue.c: use <_ansi.h> instead of <ansidecl.h> + +Mon Sep 28 14:58:44 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: added sys_dir m68kbare for m68k*-unknown-aout and + m68k*-unknown-coff. + +Fri Sep 25 08:33:21 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/stdio.h: define __need___va_list before including + <stdarg.h>, to avoid defining va_arg, et. al. + +Tue Sep 22 13:47:00 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/Makefile.in: handle the case of an empty $(sys_dir) + (don't cd to the user's home directory). + + * libc/Makefile.in: replaced all instances of $(MAKE) with make. + In general this is the wrong thing to do, but I can't get around + GNU make's insistence on passing command line arguments any other + way. + +Tue Sep 22 10:12:44 1992 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: always configure the libc/sys directory, since it + now provides a required documentation file. + + * Makefile.in: replaced all instances of $(MAKE) with make. In + general this is the wrong thing to do, but I can't get around GNU + make's insistence on passing command line arguments any other way. + +Mon Sep 21 22:42:26 1992 Ian Lance Taylor (ian@tweedledumbest.cygnus.com) + + * libc/stdlib/ecvtbuf.c (_gcvt): string for 0 was not null + terminated. + + * libc/stdio/local.h: include <stdarg.h> to define va_list. + libc/stdio/vsprintf.c: include <stdarg.h> rather than <varargs.h>. + + * libc/include/float.h, libc/include/stdarg.h, + libc/include/stddef.h, libc/include/varargs.h: removed; use gcc + versions instead. + libc/include/stdio.h: get size_t from <stddef.h>, and va_list from + <stdarg.h>, not from <machine/types.h>. Protect definition of + NULL. + libc/include/time.h: get size_t from stddef.h. Protect definition + of NULL. + libc/include/machine/limits.h: override gcc <limits.h> by defining + _LIMITS_H___. Don't define CLK_TCK. Copied in gcc <limits.h> to + get correct INT_MIN and LONG_LONG values. + libc/include/machine/types.h: don't define ptrdiff_t, wchar_t, + size_t or va_list at all; they're now gotten from stddef.h + instead. + libc/include/machine/varargs.h: removed; use gcc version instead. + libc/include/sys/types.h: explicitly include <machine/types.h>. + + * libm/math/sqrt.h: using the fp-bit routines appears to require + more iterations. + + * Makefile.in, host/any: let system include files override machine + include files. + +Sat Sep 19 21:10:06 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * libc/include/machine/types.h: allow __*_TYPE__ from cpp to + override _*_T_ definitions defaulted here. + +Tue Sep 15 11:14:46 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (install): install the include files in + $(tooldir)/include, not $(exec_prefix)/include. + +Fri Sep 11 15:48:43 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (install): fixed typo, and changed install to not + force rebuild of libc.a and libm.a. + +Thu Sep 10 10:46:09 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/sys/a29khif/*: Changed all .include's to include + sys/sysmac.h, not plain sysmac.h. The header files live in sys so + that they will be installed for the user. + + * Makefile.in (all): create targ-include, a directory holding the + machine and system specific header files during the build. + (install): fixed installation of machine and system specific + header files. + + * Makefile.in: fixed comment. + host/any: change .s.o rule to use $(AS) rather than $(CC), so that + we can pass $(INCLUDES) to it. + +Thu Sep 10 10:13:13 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/sys/param.h: new generic file, which may be + overridden for specific systems. + + * libc/include/sys/signal.h: define all ANSI signal names, and + NSIG (which is not ANSI) for a29k. + +Tue Sep 8 09:04:30 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: don't pass down arguments the lower level makes + will not need. + * libc/Makefile.in: recurse directly, rather than using subdir_do, + in hopes of avoiding argument length limits. + * libm/Makefile.in: recurse directly, rather using subdir_do, in + hopes of avoiding argument length limits. + +Tue Sep 8 08:27:22 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/sys/fcntl.h: include <sys/types.h> to ensure that + mode_t is defined. + +Mon Sep 7 14:02:07 1992 Ian Lance Taylor (ian@cygnus.com) + + * Fixed make info and make install-info for newlib, changing most + Makefile.in and several *.tex files. Moved doc directory from + libc to top level. + + * libc/time/mktime.c (_DAYS_IN_MONTH): actually, not const. + Should be rewritten. + + * libc/string/strings.tex: renamed node index to node index + function, so that it does not conflict with the top level index + node. + + * libc/include/sys/config.h: define __IEEE_BIG_ENDIAN for h8300. + +Fri Sep 4 02:34:06 1992 Ian Lance Taylor (ian@cygnus.com) + + * Overhauled general configuration for newlib. Eliminated all + target dependent Makefile fragments. Create libraries in newlib + rather than newlib/libc and newlib/libm. Use CC, et. al., rather + than CROSS_CC, et. al. Broke make docs; will fix later. + + * libc/time/localtime.c (_DAYS_IN_MONTH): actually, not const. + Should be rewritten. + +Tue Sep 1 15:21:14 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/configure.in: cleaned up somewhat; switch on ${target} + rather than ${target_alias}. + * libm/configure.in: cleaned up somewhat; switch on ${target} + rather than ${target_alias}. + + * libc/ctype/ctype_.c: marked _ctype_ array _CONST. + * libc/include/ctype.h: marked _ctype_ as _CONST. + + * libc/locale/locale.c (lconv, localeconv): marked static lconv as + _CONST. + + * libc/stdio/cvt.c, libc/stdio/findfp.c (__sfmoreglue), + libc/stdio/vfscanf.c (__svfscanf): made static variables const. + libc/stdio/gets.c (gets): removed non-ANSI warning message. + libc/stdio/tmpnam.c (tmpnam): removed unneeded filename variable. + + * libc/stdlib/mprec.h, libc/stdlib/mprec.c (pow5mult, tens, + bigtens, tinytens): marked arrays _CONST. + libc/stdlib/qsort.c (swap): if __GNUC__, use _builtin_alloca + rather than a static variable. + + * libc/time/asctime.c (asctime), libc/time/localtime.c + (_DAYS_IN_MONTH), libc/time/mktime.c (_DAYS_IN_MONTH, + _DAYS_BEFORE_MONTH), libc/time/strftime.c (dname_len, dname, + mname_len, mname): Marked static arrays _CONST. + + * libm/math/gamma.h: made local variables non-static. + + * libm/math/acos.h, libm/math/bessel.c, libm/math/erf.c, + libm/math/exp.c, libm/math/gamma.h: marked static arrays as + _CONST. + + * libm/math/constants.c: removed file, because the constants it + defined were never referenced. + libm/math/Makefile.in: removed references to constants.c. + libm/math/mathimpl.h: removed declarations of constants. + +Wed Aug 26 21:09:06 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/include/machine/varargs.h: only call __builtin_saveregs if + it is sensibly defined in libgcc2. Checks preprocessor defines, + which is not a good solution. + + * libm/sqrt.c: sqrt(Infinity) should not be a domain error. + + * libm/frexp.c: handle denormalized numbers as arguments. + + * libm/math/Makefile.in: added some dependencies for .c files + which include local .h files. + +Mon Aug 24 12:57:58 1992 Ian Lance Taylor (ian@cygnus.com) + + * libc/configure.in: set target_alias for OSE*. Replace + target_makefile_frag if it is blank. + + * libc/Makefile.in: make sure everything is passed to subsidiary + makes; create all directories when installing. + + * libm/ieeefp/Makefile.in, libm/math/Makefile.in: use + CROSS_ARUPDATE instead of AR. + + * libm/configure.in: set target_alias for OSE*. Replace + target_makefile_frag if it is blank. + + * libm/Makefile.in: make sure everything is passed to subsidiary + makes; create all directories when installing. + +Thu Aug 20 15:11:51 1992 Mark Eichin (eichin@cygnus.com) + + * add following change from libc copy. + +Wed Aug 19 18:54:49 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/libc.texinfo: make copyright disclaimers appear on back of + title page; make format of same slightly less ugly; avoid using + underbars in section headings (avoids nasty texinfo bug in table + of contents). + + * libc/ctype/tolower.c, libc/ctype/toupper.c: (doc changes in + comments only) avoid using underbars in section headings + + * libc/ieeefp/ieeefp.tex: include doc from fpsticky, infinity, + isnan ieeefp/fpmask.c, ieeefp/fpround.c, ieeefp/fpsticky.c (doc + changes in comments only): shorten headings ieeefp/infinity.c, + ieeefp/isnan.c: (doc, comments only) more informative headings + + * libc/math/bessel.c: (doc, comments only) shorten heading + + * libc/stdlib/efgcvt.c, libc/stdlib/mbtowc.c, libc/stdlib/wctomb.c + (doc, comments only) shorten headings + + * libc/time/localtime.c (doc, comments only): shorten headings + + * libm/ieeefp/ieeefp.tex: include doc from fpsticky, infinity, + isnan + libm/ieeefp/fpmask.c, libm/ieeefp/fpround.c, + libm/ieeefp/fpsticky.c (doc changes in comments only): shorten + headings + libm/ieeefp/infinity.c, libm/ieeefp/isnan.c: (doc, comments + only) more informative headings + * libm/math/bessel.c: (doc, comments only) shorten heading + +Wed Aug 19 07:06:37 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * .../Makefile.in: use CROSS_ARUPDATE consistently. + * config/*.mt: define CROSS_AR as well as CROSS_ARUPDATE + * config/*.mt: define CROSS_CPP based on CROSS_CC, not /lib/cpp. + * .../Makefile.in: get rid of .c.o rule - if TOP is correctly + defined, the one from the .mt file will be correct. + * libc/include/machine, libc/include/sys: created, and populated + with common files from machine/*/machine. ifdefs were used for + most, typically by handling exceptions first and then filling in + defaults. Files with D.J. Delorie copyright #included rather than + copied. Most files in include/sys really were the same in the + original. + * libc/include/...: cleaned up use of _EXFUN. + * libc/stdlib/mprec.c: mprec.h doesn't get installed, so include + it with double quotes, not angles. + +Mon Aug 10 11:43:20 1992 Ian Lance Taylor (ian@dumbest.cygnus.com) + + * libc/Makefile.in: always create installation directories. + +Sun Aug 9 22:45:48 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * libc/configure.in: handle host properly (using canonical + triples), better error message for the case of target not found + +Thu May 28 01:56:37 1992 Michael Tiemann (tiemann@rtl.cygnus.com) + + * libc/Makefile.in (insincdir): Ensure this directory exists + before attempting installation. + +Fri May 1 18:16:42 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/stdlib/assert.c: now calls abort like it should + * libc/sys/a29khif: many many patches for 29khif work + * libc/machine/i386: gnulib2 expanded there. + +Tue Apr 28 19:08:37 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + Added accurate fp conversion routines to stdlib, moved dcvt from + stdio to stdlib and called it ecvtbuf: + * libc/stdlib/mprec.c, mprec.h: new files for multiprec arithmetic + * libc/stdlib/Makefile.in, efgcvt.c, strtod.c: modified to use new + routines + * libc/libc.texinfo: Modifed to include the copyright info from + the mprec files + * libc/stdlib/efgcvt.c: now xref to ecvtbuf in stdlib. + * libc/test/ : many vector which tested for the implementation + defined returns of strange conversion requests have been updated + to relflect the new implementation + +Mon Apr 27 13:41:33 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/libc.texinfo: new chapter on variable arg lists + (stdarg.h/varargs.h) + * libc/libc.texinfo: new title + * libc/time/gmtime.c, libc/time/localtime./c, libc/time/mktime.c: + (doc only) shorter headings for better formatting. + +Fri Apr 24 11:26:48 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/libc.texinfo: three more info menu entries + * libc/locale/locale.tex: new chapter + * libc/locale/locale.c: new doc for setlocale, localeconv + * libc/locale/Makefile.in: use new locale doc + * libc/signal/signal.tex: new chapter + * libc/signal/raise.c, libc/signal/signal.c: new doc + * libc/signal/Makefile.in: use new doc + * libc/time/time.tex: new chapter + * libc/time/asctime.c libc/time/clock.c libc/time/ctime.c + libc/time/difftime.c libc/time/gmtime.c libc/time/localtime.c + libc/time/mktime.c libc/time/strftime.c libc/time/time.c: new doc + * libc/time/Makefile.in: use new doc + +Tue Apr 21 14:48:50 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * libm/math/log1p.c: split to use the new function way of float + function definition. math/log1p.h deleted + * libm/math/scalb.c: obsolete and deleted + * libm/math/scalbn.c: created from part log1p.c + * libm/math/Makefile.in: know about log1p and scalbn + +Tue Apr 21 12:32:21 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/ctype/isupper.c: revise doc; + libc/ctype/ctype.tex: use doc from isupper.c + + * libc/string/bzero.c: new doc + +Mon Apr 20 14:19:42 1992 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * libc/stdlib/system.c, libc/stdlib/exit.c, libc/stdlib/abort.c: + new doc + * libc/stdlib/Makefile.in: extract new doc + * libc/stdlib/stdlib.tex: use new doc + + * libc/string/strerror.c: expanded doc. + + * libc/stdio/Makefile.in: extract doc from more files + * libc/stdio/fopen.c, libc/stdio/perror.c, libc/stdio/remove.c, + libc/stdio/rename.c, libc/stdio/rewind.c, libc/stdio/setbuf.c, + libc/stdio/setvbuf.c, libc/stdio/sprintf.c, libc/stdio/tmpfile.c, + libc/stdio/tmpnam.c, libc/stdio/vfprintf.c, libc/stdio/vprintf.c, + libc/stdio/vsprintf.c: new doc + * libc/stdio/stdio.tex: use new doc + +Mon Apr 20 09:38:17 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * libc/config/ebmon29k: added CROSS_CPP rule and other fixes + * libc/include/ieeefp.h: fixed ansi conflict with isnanf, isinff, + finitef functions. + * libc/sys/a29khif/sys/*.h: ansidecl.h was renamed to _ansi.h some + time ago. + + * libc/stdio/stdio.h: added P_tmpdir for /tmp (SVID thing) + * libc/stdio/setbuf.c: added ansi style definition. + * libc/stdio/setvbuf.c: added ansi definition, now mallocs own + buffer if none provided. + * libc/stdio/tmpfile.c: lint + * libc/stdio/tmpnam.c (worker): created. (tmpnam): mallocs buffer + rather than using static, also make sure file isn't already + present. Uses P_tmpdir. (tempnam): rewritten to use new + subroutine, and uses P_tmpdir. + * libc/stdio/siprintf.c: created + +Mon Apr 13 09:12:58 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + Release 1.03 for NEC, major mods. Main differences from release + 1.02:: + + More tests in test/: + * jn_vec.c, jnf_vec.c, yn_vec.c, ynf_vec.c, log2_vec.c, + log2f_vec.c, atan2_vec.c, atan2f_vec.c: new test vectors. + * test_ieee.c: tests for ieee flags & masks - get/set rounding, + get/set mask, get/set sticky and get/set roundtoi. Tests + that setting the bits changes the way arithmetic is done. + * string.c: added test to make sure memcmp does it with unsigned + chars. + * test.c: cleaned up and removed lint. + * sprint_vec, sprint_ivec.c, convert.c, conv_vec.c, iconf_vec.c, + dvec.c: tests for string to value conversions, sprintf, scanf, + atof, atoff, strtod, strtodf, atoi, atol, strtol, ecvtbuf, ecvt, + ecvtf, fcvtbuf, fcvt, fcvtf, gcvt, gcvtf. Some attention paid to + rounding in sprintf too. + * test_is.c: tests for isalnum, isalpha, isascii, iscntrl, + isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, + isxdigit, toascii, tolower, toupper, _tolower, _toupper in macro + and function form. + * math2.c: test for frexp, frexpf, ldexp, ldexpf, modf modff, pow, + powf + + In the library: + * libc/stdlib/div.c, libc/stdlib/ldiv.c, libc/stdlib/strtod.c, + libc/stdlib/strtol.c, libc/stdlib/stroul.c, libc/stdlib/abs.c, + libc/stdlib/bsearch.c, libc/stdlib/calloc.c, libc/stdlib/getenv.c, + libc/stdlib/labs.c, libc/stdlib/malloc.c: new documentation + * libc/stdlib/efgcvt.c: rewritten to use new _dcvt routines rather + than sprintf. + * libc/stdio/dcvt.c: rewritten to make more useful elsewhere. + * Method of producting float versions of double functions has + changed, functions will be modified gradually. So far: + libm/math/exp.c, libm/math/pow.c, libm/math/modf.c, + libm/math/sincos.c, libm/math/fmod.c, libm/math/tan.c have been + altered + * libc/string/memcmp.c: now uses unsigned chars + * libc/string/bcmp.c, libc/string/strcpy.c, + libc/stsring/strxfrm.c: fixed doc + * libc/sys/sysvnecv70.tex: fix example of sbrk code + +Local Variables: +version-control: never +End: diff --git a/newlib/Makefile.am b/newlib/Makefile.am new file mode 100644 index 000000000..38e1d138e --- /dev/null +++ b/newlib/Makefile.am @@ -0,0 +1,191 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +# Multilib support variables. +MULTISRCTOP = +MULTIBUILDTOP = +MULTIDIRS = +MULTISUBDIR = +MULTIDO = true +MULTICLEAN = true + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS=$(CFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "EXPECT=$(EXPECT)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "prefix=$(prefix)" \ + "tooldir=$(tooldir)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "CC=$(CC)" \ + "LD=$(LD)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "NM=$(NM)" \ + "PICFLAG=$(PICFLAG)" \ + "RANLIB=$(RANLIB)" \ + "DESTDIR=$(DESTDIR)" + +if HAVE_DOC +DOCDIR = doc +endif + +SUBDIRS = libc libm $(DOCDIR) . + +tooldir = $(exec_prefix)/$(host_alias) +toollibdir = $(tooldir)/lib$(MULTISUBDIR) + +AR_FLAGS = rc + +toollib_LIBRARIES = libm.a libc.a +toollib_DATA = $(CRT0) +noinst_DATA = stmp-targ-include + +# The functions ldexp, frexp and modf are traditionally supplied in +# both libc.a and libm.a. We build them in libm.a and copy them over, +# along with some required supporting routines. +MATHOBJS_IN_LIBC = \ + s_isinf.o sf_isinf.o \ + s_isnan.o sf_isnan.o \ + s_ldexp.o sf_ldexp.o \ + s_frexp.o sf_frexp.o s_modf.o sf_modf.o \ + s_scalbn.o sf_scalbn.o s_finite.o sf_finite.o \ + s_copysign.o sf_copysign.o s_infconst.o + +libc.a: libc/libc.a libm.a + rm -rf libc.a libg.a tmp + mkdir tmp + cd tmp; \ + $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \ + $(AR) x ../libc/libc.a ; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) libc.a + ln libc.a libg.a + rm -rf tmp + +libc/libc.a: ; @true + +libm.a: libm/libm.a + rm -f $@ + ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@ + +libm/libm.a: ; @true + +crt0.o: $(CRT0_DIR)/$(CRT0) + rm -f $@ + ln $(CRT0_DIR)/$(CRT0) $@ >/dev/null 2>/dev/null \ + || cp $(CRT0_DIR)/$(CRT0) $@ + +$(CRT0_DIR)/$(CRT0): ; @true + +all-recursive: stmp-targ-include + +# The targ-include directory just holds the includes files for the +# particular system and machine we have been configured for. It is +# used while building. +stmp-targ-include: config.status + -rm -rf targ-include stmp-targ-include + mkdir targ-include targ-include/sys targ-include/machine + -for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/machine/`basename $$i`; \ + else true; fi ; \ + done + -for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/`basename $$i`; \ + else true; fi ; \ + done + -for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/sys/`basename $$i`; \ + else true; fi ; \ + done + touch $@ + +CLEANFILES = targ-include stmp-targ-include + +install-data-local: install-toollibLIBRARIES + rm -f $(toollibdir)/libg.a + ln $(toollibdir)/libc.a $(toollibdir)/libg.a + $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do + -if [ -z "$(MULTISUBDIR)" ]; then \ + for i in $(srcdir)/libc/include/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/include/machine/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/machine/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/machine/`basename $$i`; \ + else true; fi ; \ + done; \ + for i in $(srcdir)/libc/include/sys/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/sys/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/sys/`basename $$i`; \ + else true; fi ; \ + done ; \ + for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/`basename $$i`; \ + else true; fi ; \ + done ; \ + else true; fi + +# Force makedoc to be built before building info files. +info-recursive: doc/makedoc +dvi-recursive: doc/makedoc +doc/makedoc: + cd doc && $(MAKE) all + +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host + +# Multilib support. +.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ + maintainer-clean-multi + +all-recursive: all-multi +mostlyclean-recursive: mostlyclean-multi +clean-recursive: clean-multi +distclean-recursive: distclean-multi +maintainer-clean-recursive: maintainer-clean-multi + +all-multi: + $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do +mostlyclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean +clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean +distclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean +maintainer-clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean + +MAKEOVERRIDES= diff --git a/newlib/Makefile.in b/newlib/Makefile.in new file mode 100644 index 000000000..da4fed1f8 --- /dev/null +++ b/newlib/Makefile.in @@ -0,0 +1,625 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +CRT0_DIR = @CRT0_DIR@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +# Multilib support variables. +MULTISRCTOP = +MULTIBUILDTOP = +MULTIDIRS = +MULTISUBDIR = +MULTIDO = true +MULTICLEAN = true + +# Work around what appears to be a GNU make bug handling MAKEFLAGS +# values defined in terms of make variables, as is the case for CC and +# friends when we are called from the top level Makefile. +AM_MAKEFLAGS = \ + "AR_FLAGS=$(AR_FLAGS)" \ + "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ + "CFLAGS=$(CFLAGS)" \ + "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ + "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ + "INSTALL=$(INSTALL)" \ + "INSTALL_DATA=$(INSTALL_DATA)" \ + "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ + "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ + "LDFLAGS=$(LDFLAGS)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ + "MAKE=$(MAKE)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ + "PICFLAG=$(PICFLAG)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ + "SHELL=$(SHELL)" \ + "EXPECT=$(EXPECT)" \ + "RUNTEST=$(RUNTEST)" \ + "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ + "exec_prefix=$(exec_prefix)" \ + "infodir=$(infodir)" \ + "libdir=$(libdir)" \ + "prefix=$(prefix)" \ + "tooldir=$(tooldir)" \ + "AR=$(AR)" \ + "AS=$(AS)" \ + "CC=$(CC)" \ + "LD=$(LD)" \ + "LIBCFLAGS=$(LIBCFLAGS)" \ + "NM=$(NM)" \ + "PICFLAG=$(PICFLAG)" \ + "RANLIB=$(RANLIB)" \ + "DESTDIR=$(DESTDIR)" + + +@HAVE_DOC_TRUE@DOCDIR = \ +@HAVE_DOC_TRUE@doc + +SUBDIRS = libc libm $(DOCDIR) . + +tooldir = $(exec_prefix)/$(host_alias) +toollibdir = $(tooldir)/lib$(MULTISUBDIR) + +AR_FLAGS = rc + +toollib_LIBRARIES = libm.a libc.a +toollib_DATA = $(CRT0) +noinst_DATA = stmp-targ-include + +# The functions ldexp, frexp and modf are traditionally supplied in +# both libc.a and libm.a. We build them in libm.a and copy them over, +# along with some required supporting routines. +MATHOBJS_IN_LIBC = \ + s_isinf.o sf_isinf.o \ + s_isnan.o sf_isnan.o \ + s_ldexp.o sf_ldexp.o \ + s_frexp.o sf_frexp.o s_modf.o sf_modf.o \ + s_scalbn.o sf_scalbn.o s_finite.o sf_finite.o \ + s_copysign.o sf_copysign.o s_infconst.o + + +CLEANFILES = targ-include stmp-targ-include + +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host + +MAKEOVERRIDES = +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(toollib_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libm_a_LIBADD = +libm_a_SOURCES = libm.a.c +libm_a_OBJECTS = libm.a.o +libc_a_LIBADD = +libc_a_SOURCES = libc.a.c +libc_a_OBJECTS = libc.a.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DATA = $(noinst_DATA) $(toollib_DATA) + +DIST_COMMON = README ChangeLog Makefile.am Makefile.in NEWS \ +acinclude.m4 aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DIST_SUBDIRS = libc libm doc . +SOURCES = libm.a.c libc.a.c +OBJECTS = libm.a.o libc.a.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 + cd $(srcdir) && $(ACLOCAL) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-toollibLIBRARIES: + +clean-toollibLIBRARIES: + -test -z "$(toollib_LIBRARIES)" || rm -f $(toollib_LIBRARIES) + +distclean-toollibLIBRARIES: + +maintainer-clean-toollibLIBRARIES: + +install-toollibLIBRARIES: $(toollib_LIBRARIES) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(toollibdir) + @list='$(toollib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toollibdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(toollibdir)/$$p; \ + else :; fi; \ + done + @$(POST_INSTALL) + @list='$(toollib_LIBRARIES)'; for p in $$list; do \ + if test -f $$p; then \ + echo " $(RANLIB) $(DESTDIR)$(toollibdir)/$$p"; \ + $(RANLIB) $(DESTDIR)$(toollibdir)/$$p; \ + else :; fi; \ + done + +uninstall-toollibLIBRARIES: + @$(NORMAL_UNINSTALL) + list='$(toollib_LIBRARIES)'; for p in $$list; do \ + rm -f $(DESTDIR)$(toollibdir)/$$p; \ + done + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +install-toollibDATA: $(toollib_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(toollibdir) + @list='$(toollib_DATA)'; for p in $$list; do \ + if test -f $(srcdir)/$$p; then \ + echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toollibdir)/$$p"; \ + $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(toollibdir)/$$p; \ + else if test -f $$p; then \ + echo " $(INSTALL_DATA) $$p $(DESTDIR)$(toollibdir)/$$p"; \ + $(INSTALL_DATA) $$p $(DESTDIR)$(toollibdir)/$$p; \ + fi; fi; \ + done + +uninstall-toollibDATA: + @$(NORMAL_UNINSTALL) + list='$(toollib_DATA)'; for p in $$list; do \ + rm -f $(DESTDIR)$(toollibdir)/$$p; \ + done + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(DIST_SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: install-toollibLIBRARIES install-toollibDATA \ + install-data-local +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: uninstall-toollibLIBRARIES uninstall-toollibDATA +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(DATA) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(toollibdir) $(DESTDIR)$(toollibdir) + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-toollibLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-toollibLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-toollibLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-toollibLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-toollibLIBRARIES distclean-toollibLIBRARIES \ +clean-toollibLIBRARIES maintainer-clean-toollibLIBRARIES \ +uninstall-toollibLIBRARIES install-toollibLIBRARIES mostlyclean-compile \ +distclean-compile clean-compile maintainer-clean-compile \ +uninstall-toollibDATA install-toollibDATA install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-local \ +install-data-am install-data install-am install uninstall-am uninstall \ +all-redirect all-am all installdirs-am installdirs mostlyclean-generic \ +distclean-generic clean-generic maintainer-clean-generic clean \ +mostlyclean distclean maintainer-clean + + +libc.a: libc/libc.a libm.a + rm -rf libc.a libg.a tmp + mkdir tmp + cd tmp; \ + $(AR) x ../libm.a $(MATHOBJS_IN_LIBC) ; \ + $(AR) x ../libc/libc.a ; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) libc.a + ln libc.a libg.a + rm -rf tmp + +libc/libc.a: ; @true + +libm.a: libm/libm.a + rm -f $@ + ln libm/libm.a $@ >/dev/null 2>/dev/null || cp libm/libm.a $@ + +libm/libm.a: ; @true + +crt0.o: $(CRT0_DIR)/$(CRT0) + rm -f $@ + ln $(CRT0_DIR)/$(CRT0) $@ >/dev/null 2>/dev/null \ + || cp $(CRT0_DIR)/$(CRT0) $@ + +$(CRT0_DIR)/$(CRT0): ; @true + +all-recursive: stmp-targ-include + +# The targ-include directory just holds the includes files for the +# particular system and machine we have been configured for. It is +# used while building. +stmp-targ-include: config.status + -rm -rf targ-include stmp-targ-include + mkdir targ-include targ-include/sys targ-include/machine + -for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/machine/`basename $$i`; \ + else true; fi ; \ + done + -for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/`basename $$i`; \ + else true; fi ; \ + done + -for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \ + if [ -f $$i ]; then \ + cp $$i targ-include/sys/`basename $$i`; \ + else true; fi ; \ + done + touch $@ + +install-data-local: install-toollibLIBRARIES + rm -f $(toollibdir)/libg.a + ln $(toollibdir)/libc.a $(toollibdir)/libg.a + $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do + -if [ -z "$(MULTISUBDIR)" ]; then \ + for i in $(srcdir)/libc/include/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/include/machine/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/machine/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/machine/$(machine_dir)/machine/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/machine/`basename $$i`; \ + else true; fi ; \ + done; \ + for i in $(srcdir)/libc/include/sys/*.h; do \ + $(INSTALL_DATA) $$i $(tooldir)/include/sys/`basename $$i`; \ + done; \ + for i in $(srcdir)/libc/sys/$(sys_dir)/sys/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/sys/`basename $$i`; \ + else true; fi ; \ + done ; \ + for i in $(srcdir)/libc/sys/$(sys_dir)/include/*.h; do \ + if [ -f $$i ]; then \ + $(INSTALL_DATA) $$i $(tooldir)/include/`basename $$i`; \ + else true; fi ; \ + done ; \ + else true; fi + +# Force makedoc to be built before building info files. +info-recursive: doc/makedoc +dvi-recursive: doc/makedoc +doc/makedoc: + cd doc && $(MAKE) all + +# Multilib support. +.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \ + maintainer-clean-multi + +all-recursive: all-multi +mostlyclean-recursive: mostlyclean-multi +clean-recursive: clean-multi +distclean-recursive: distclean-multi +maintainer-clean-recursive: maintainer-clean-multi + +all-multi: + $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do +mostlyclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean +clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean +distclean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean +maintainer-clean-multi: + $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/NEWS b/newlib/NEWS new file mode 100644 index 000000000..733185d89 --- /dev/null +++ b/newlib/NEWS @@ -0,0 +1,79 @@ +*** Major changes in newlib version 1.8.2: + +* RTEMS features and fixes from Joel Sherrill. + +* More work on reentrant routines. + +* Floating point math library check, --enable-newlib-hw-fp. + +*** Major changes in newlib version 1.8.1: + +* Added check for --enable-newlib-mb configure option which defines the + MB_CAPABLE macro. Multibyte support for JIS, SJIS, and EUC-JP implemented. + +* Reduced code size for libm modules. + +* Replaced the BSD malloc with Doug Lea's malloc. + +*** Major changes in newlib version 1.8.0: + +* Added simulated signal handling functions _raise_r, _signal_r, raise, and + signal except for sparc-sun-sunos*, i[3456]86-*-sco*, and a29k-*-* systems, + which already provide access to signal. The signal functionality provided + does not interact with hardware generated signals. + +* Added reentrant function rand_r from POSIX.1c. + +* Removed _asctime, _next, _scanpoint, and _signgam fields from struct + _reent. These are no longer necessary since there are now functions + that explictly support multiple threads (asctime_r, ctime_r, gamma_r, + gmtime_r, lgamma_r, localtime_r, rand_r, & strtok_r). + + +*** Major changes in newlib version 1.7.0: + +* Cross compiler target libraries are now built in a subdir of the top level + build directory. + + Old way: build + /newlib + /m68020 + /m68881 + New way: + build + /m68k-coff + /m68020 + /m68881 + + where m68020 and m68881 are multilib subdirectories + +* m68k targets support --disable options to avoid building unwanted versions + of the libraries. + + --disable-softfloat - don't build libc, libg++, etc. for -msoft-float + --disable-m68881 - don't build libc, libg++, etc. for -m68881 + --disable-m68000 - don't build libc, libg++, etc. for -m68000 + --disable-m68020 - don't build libc, libg++, etc. for -m68020 + + These options have *no* effect on the default libraries, so if the default + is -m68020, --disable-m68020 is nilpotent. + +* Reentrancy support in libm removed. + +* strtok, strtol, strtoul, assert, div, ldiv, qsort, vfprintf + replaced with NetBSD versions. + +* Support for systems with 32 bit "doubles" added. + +* unctrl added. + +* dtoa.c updated from master dtoa.c soruces (netlib.att.com) + +* Various bug fixes. + +*** Major changes in newlib version 1.6.1: + +* Added reentrant functions (asctime_r, ctime_r, gmtime_r, localtime_r, +and strtok_r) from POSIX.1c. + +* Removed _asctime_r and _strtok_r functions. diff --git a/newlib/README b/newlib/README new file mode 100644 index 000000000..fdda052d3 --- /dev/null +++ b/newlib/README @@ -0,0 +1,231 @@ + README for newlib-1.8.2 release + (mostly cribbed from the README in the gdb-4.13 release) + +This is `newlib', a simple ANSI C library, math library, and collection +of board support packages. + +The newlib and libgloss subdirectories are a collection of software from +several sources, each with their own copyright. See the file COPYING.NEWLIB +for details. The rest of the release tree is under either the GNU GPL or +LPGL copyright. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +Unpacking and Installation -- quick overview +========================== + +When you unpack the newlib-1.8.2.tar.gz file, you'll find a directory +called `newlib-1.8.2', which contains: + +COPYING config/ install-sh* mpw-configure +COPYING.LIB config-ml.in libgloss/ mpw-install +COPYING.NEWLIB config.guess* mkinstalldirs* newlib/ +CYGNUS config.sub* move-if-change* symlink-tree* +ChangeLog configure* mpw-README texinfo/ +Makefile.in configure.in mpw-build.in +README etc/ mpw-config.in + +To build NEWLIB, you can just do: + + cd newlib-1.8.2 + ./configure --target=<your target> + make all install + +This will configure and build all the libraries and crt0 (if one exists). +If `configure' can't determine your host system type, specify one as its +argument, e.g., sun4 or sun4sol2. NEWLIB is most often used in cross +environments. + +NOTE THAT YOU MUST HAVE ALREADY BUILT AND INSTALLED GCC and BINUTILS. + + +More Documentation +================== + + Newlib documentation is available on the net via: + http://www.cygnus.com/pubs/gnupro + + All the documentation for NEWLIB comes as part of the machine-readable +distribution. The documentation is written in Texinfo format, which is +a documentation system that uses a single source file to produce both +on-line information and a printed manual. You can use one of the Info +formatting commands to create the on-line version of the documentation +and TeX (or `texi2roff') to typeset the printed version. + + If you want to format these Info files yourself, you need one of the +Info formatting programs, such as `texinfo-format-buffer' or `makeinfo'. + + If you want to typeset and print copies of this manual, you need TeX, +a program to print its DVI output files, and `texinfo.tex', the Texinfo +definitions file. + + TeX is a typesetting program; it does not print files directly, but +produces output files called DVI files. To print a typeset document, +you need a program to print DVI files. If your system has TeX +installed, chances are it has such a program. The precise command to +use depends on your system; `lpr -d' is common; another (for PostScript +devices) is `dvips'. The DVI print command may require a file name +without any extension or a `.dvi' extension. + + TeX also requires a macro definitions file called `texinfo.tex'. +This file tells TeX how to typeset a document written in Texinfo +format. On its own, TeX cannot read, much less typeset a Texinfo file. +`texinfo.tex' is distributed with NEWLIB and is located in the +`newlib-VERSION-NUMBER/texinfo' directory. + + + +Compiling NEWLIB in another directory +===================================== + + If you want to run NEWLIB versions for several host or target machines, +you need a different `newlib' compiled for each combination of host and +target. `configure' is designed to make this easy by allowing you to +generate each configuration in a separate subdirectory, rather than in +the source directory. If your `make' program handles the `VPATH' +feature correctly (like GNU `make') running `make' in each of these +directories builds the `newlib' libraries specified there. + + To build `newlib' in a separate directory, run `configure' with the +`--srcdir' option to specify where to find the source. (You also need +to specify a path to find `configure' itself from your working +directory. If the path to `configure' would be the same as the +argument to `--srcdir', you can leave out the `--srcdir' option; it +will be assumed.) + + For example, with version 1.8.2, you can build NEWLIB in a separate +directory for a Sun 4 cross m68k-aout environment like this: + + cd newlib-1.8.2 + mkdir ../newlib-m68k-aout + cd ../newlib-m68k-aout + ../newlib-1.8.2/configure --host=sun4 --target=m68k-aout + make + + When `configure' builds a configuration using a remote source +directory, it creates a tree for the binaries with the same structure +(and using the same names) as the tree under the source directory. In +the example, you'd find the Sun 4 library `libiberty.a' in the +directory `newlib-m68k-aout/libiberty', and NEWLIB itself in +`newlib-m68k-aout/newlib'. + + When you run `make' to build a program or library, you must run it +in a configured directory--whatever directory you were in when you +called `configure' (or one of its subdirectories). + + The `Makefile' that `configure' generates in each source directory +also runs recursively. If you type `make' in a source directory such +as `newlib-1.8.2' (or in a separate configured directory configured with +`--srcdir=PATH/newlib-1.8.2'), you will build all the required libraries. + + When you have multiple hosts or targets configured in separate +directories, you can run `make' on them in parallel (for example, if +they are NFS-mounted on each of the hosts); they will not interfere +with each other. + + +Specifying names for hosts and targets +====================================== + + The specifications used for hosts and targets in the `configure' +script are based on a three-part naming scheme, but some short +predefined aliases are also supported. The full naming scheme encodes +three pieces of information in the following pattern: + + ARCHITECTURE-VENDOR-OS + + For example, you can use the alias `sun4' as a HOST argument or in a +`--target=TARGET' option. The equivalent full name is +`sparc-sun-sunos4'. + + The `configure' script accompanying NEWLIB does not provide any query +facility to list all supported host and target names or aliases. +`configure' calls the Bourne shell script `config.sub' to map +abbreviations to full names; you can read the script, if you wish, or +you can use it to test your guesses on abbreviations--for example: + + % sh config.sub sun4 + sparc-sun-sunos4.1.1 + % sh config.sub sun3 + m68k-sun-sunos4.1.1 + % sh config.sub decstation + mips-dec-ultrix4.2 + % sh config.sub hp300bsd + m68k-hp-bsd + % sh config.sub i386v + i386-pc-sysv + % sh config.sub i786v + Invalid configuration `i786v': machine `i786v' not recognized + + +`configure' options +=================== + + Here is a summary of the `configure' options and arguments that are +most often useful for building NEWLIB. `configure' also has several other +options not listed here. + + configure [--help] + [--prefix=DIR] + [--srcdir=PATH] + [--target=TARGET] HOST + +You may introduce options with a single `-' rather than `--' if you +prefer; but you may abbreviate option names if you use `--'. + +`--help' + Display a quick summary of how to invoke `configure'. + +`--prefix=DIR' + Configure the source to install programs and files in directory + `DIR'. + +`--exec-prefix=DIR' + Configure the source to install host-dependent files in directory + `DIR'. + +`--srcdir=PATH' + *Warning: using this option requires GNU `make', or another `make' + that compatibly implements the `VPATH' feature. + Use this option to make configurations in directories separate + from the NEWLIB source directories. Among other things, you can use + this to build (or maintain) several configurations simultaneously, + in separate directories. `configure' writes configuration + specific files in the current directory, but arranges for them to + use the source in the directory PATH. `configure' will create + directories under the working directory in parallel to the source + directories below PATH. + +`--norecursion' + Configure only the directory level where `configure' is executed; + do not propagate configuration to subdirectories. + +`--target=TARGET' + Configure NEWLIB for running on the specified TARGET. + + There is no convenient way to generate a list of all available + targets. + +`HOST ...' + Configure NEWLIB to be built using a cross compiler running on + the specified HOST. + + There is no convenient way to generate a list of all available + hosts. + + +Reporting Bugs +============== + +The correct address for reporting bugs found in NEWLIB is +"newlib@sourceware.cygnus.com". Please email all bug reports to that +address. Please include the NEWLIB version number (e.g., newlib-1.8.2), +and how you configured it (e.g., "sun4 host and m68k-aout target"). +Since NEWLIB supports many different configurations, it is important +that you be precise about this. + +Archives of the newlib mailing list are on-line, see + http://sourceware.cygnus.com/ml/newlib/ diff --git a/newlib/acinclude.m4 b/newlib/acinclude.m4 new file mode 100644 index 000000000..d21f67c18 --- /dev/null +++ b/newlib/acinclude.m4 @@ -0,0 +1,144 @@ +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) diff --git a/newlib/aclocal.m4 b/newlib/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/configure b/newlib/configure new file mode 100755 index 000000000..d9da9417f --- /dev/null +++ b/newlib/configure @@ -0,0 +1,1865 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" +ac_help="$ac_help + --enable-newlib-hw-fp Turn on hardware floating point math" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=libc + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in .. $srcdir/..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in .. $srcdir/.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:580: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:633: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:690: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:723: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 728 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:739: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:756: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 761 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../." + else + newlib_basedir="${srcdir}/${with_multisrctop}." + fi +else + newlib_basedir="${srcdir}/." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:842: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:883: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:896: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:909: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:922: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:935: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:960: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:990: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1039: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1063: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1096: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1117: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1149: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1181: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1213: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1258: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1312: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1346: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1356: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/./targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +configdirs="libc libm" + +# Check whether --enable-newlib_hw_fp or --disable-newlib_hw_fp was given. +if test "${enable_newlib_hw_fp+set}" = set; then + enableval="$enable_newlib_hw_fp" + case "${enableval}" in + yes) newlib_hw_fp=true ;; + no) newlib_hw_fp=false ;; + *) { echo "configure: error: bad value ${enableval} for --enable-newlib-hw-fp" 1>&2; exit 1; } ;; + esac +else + newlib_hw_fp=false +fi + + + +if test x$newlib_hw_fp = xtrue; then + NEWLIB_HW_FP_TRUE= + NEWLIB_HW_FP_FALSE='#' +else + NEWLIB_HW_FP_TRUE='#' + NEWLIB_HW_FP_FALSE= +fi + +if test -z "${with_multisubdir}"; then + configdirs="${configdirs} doc" + have_doc=yes +else + have_doc= +fi + + +if test x$have_doc = xyes; then + HAVE_DOC_TRUE= + HAVE_DOC_FALSE='#' +else + HAVE_DOC_TRUE='#' + HAVE_DOC_FALSE= +fi + +subdirs="${configdirs}" + + +CRT0= +CRT0_DIR= +if test -n "${sys_dir}"; then + CRT0=crt0.o + CRT0_DIR=libc +fi + + + + + + +if test "${multilib}" = "yes"; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@NEWLIB_HW_FP_TRUE@%$NEWLIB_HW_FP_TRUE%g +s%@NEWLIB_HW_FP_FALSE@%$NEWLIB_HW_FP_FALSE%g +s%@HAVE_DOC_TRUE@%$HAVE_DOC_TRUE%g +s%@HAVE_DOC_FALSE@%$HAVE_DOC_FALSE%g +s%@subdirs@%$subdirs%g +s%@CRT0@%$CRT0%g +s%@CRT0_DIR@%$CRT0_DIR%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF +srcdir=${srcdir} +host=${host} +target=${target} +with_multisubdir=${with_multisubdir} +ac_configure_args="${multilib_arg} ${ac_configure_args}" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +newlib_basedir=${newlib_basedir} +CC="${CC}" + +EOF +cat >> $CONFIG_STATUS <<\EOF +if test -n "$CONFIG_FILES"; then + . ${newlib_basedir}/../config-ml.in +fi +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + +if test "$no_recursion" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $ac_configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in ${configdirs}; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$ac_config_dir; then + continue + fi + + echo configuring in $ac_config_dir + + case "$srcdir" in + .) ;; + *) + if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; + else + { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd $ac_config_dir + + # A "../" for each directory in /$ac_config_dir. + ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` + + case "$srcdir" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + /*) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_config_dir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + elif test -f $ac_sub_srcdir/configure.in; then + ac_sub_configure=$ac_configure + else + echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + + # Make the cache file name correct relative to the subdirectory. + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir + then : + else + { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } + fi + fi + + cd $ac_popdir + done +fi + diff --git a/newlib/configure.host b/newlib/configure.host new file mode 100644 index 000000000..fcfaa5c9a --- /dev/null +++ b/newlib/configure.host @@ -0,0 +1,457 @@ +# configure.host + +# This shell script handles all host based configuration for newlib. +# It sets various shell variables based on the the host and the +# configuration options. You can modify this shell script without +# needing to rerun autoconf. + +# This shell script should be invoked as +# . configure.host +# If it encounters an error, it will exit with a message. + +# FIXME: This script is too complicated. It does things in too many +# different ways. This was taken from the old Cygnus configure script +# with only minor changes. It should be cleaned up. + +# FIXME: The general approach of picking and choosing which +# directories to configure, other than machine_dir and sys_dir, is +# potentially confusing. + +# It uses the following shell variables: +# host The configuration host +# host_cpu The configuration host CPU +# newlib_mb --enable-newlib-mb ("yes", "no") +# target_optspace --enable-target-optspace ("yes", "no", "") + +# It sets the following shell variables: +# newlib_cflags Special CFLAGS to use when building +# machine_dir Subdirectory of libc/machine to configure +# sys_dir Subdirectory of libc/sys to configure +# posix_dir "posix" to build libc/posix, "" otherwise +# signal_dir "signal" to build libc/signal, "" otherwise +# syscall_dir "syscalls" to build libc/syscalls, "" otherwise +# unix_dir "unix" to build libc/unix, "" otherwise + +newlib_cflags= +machine_dir= +sys_dir= +posix_dir= +signal_dir=signal +syscall_dir= +unix_dir= +mach_add_setjmp= + +case "${target_optspace}:${host}" in + yes:*) + newlib_cflags="${newlib_cflags} -Os" + ;; + :m32r-* | :d10v-* | :d30v-*) + newlib_cflags="${newlib_cflags} -Os" + ;; + no:* | :*) + newlib_cflags="${newlib_cflags} -O2" + ;; +esac + +# Get the source directories to use for the CPU type. +# machine_dir should supply CPU dependent routines, such as setjmp. +# newlib_cflags is passed to gcc when compiling. +# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. + +case "${host_cpu}" in + a29k) + machine_dir=a29k + ;; + arc) + machine_dir= + ;; + arm) + machine_dir=arm + ;; + d10v*) + machine_dir=d10v + ;; + d30v*) + machine_dir=d30v + ;; + fr30) + machine_dir=fr30 + ;; + h8300) + machine_dir=h8300 + ;; + h8500) + machine_dir=h8500 + ;; + hppa*) + machine_dir=hppa + ;; + i960) + machine_dir=i960 + ;; + i[3456]86) + # Don't use for these since they provide their own setjmp. + case ${host} in + *-*-go32 | *-*-sco* | *-*-cygwin*) + machine_dir=i386 + ;; + *) + machine_dir=i386 + mach_add_setjmp=true + ;; + esac + ;; + m32r*) + machine_dir=m32r + ;; + m68*) + machine_dir=m68k + ;; + m88k) + machine_dir=m88k + newlib_cflags="${newlib_cflags} -m88000" + ;; + m88110) + machine_dir=m88k + newlib_cflags="${newlib_cflags} -m88110" + ;; + mcore) + ;; + mips*) + machine_dir=mips + ;; + mn10200) + machine_dir=mn10200 + ;; + mn10300) + machine_dir=mn10300 + ;; + powerpc*) + machine_dir=powerpc + ;; + sh) + machine_dir=sh + ;; + sparc*) + machine_dir=sparc + # FIXME: Might wish to make MALLOC_ALIGNMENT more generic. + newlib_cflags="${newlib_cflags} -DMALLOC_ALIGNMENT=8" + ;; + strongarm) + machine_dir=arm + ;; + thumb) + machine_dir=arm + ;; + tic80*) + machine_dir=tic80 + ;; + v70) + ;; + v810) + ;; + v850) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + v850e) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + v850ea) + machine_dir=v850 + newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 -mno-app-regs -msmall-sld" + ;; + w65*) + machine_dir=w65 + ;; + z8k) + machine_dir=z8k + ;; + *) + echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2 + exit 1 + ;; +esac + +# Enable multibyte support if requested. + +if [ "${newlib_mb}" = "yes" ] ; then + newlib_cflags="${newlib_cflags} -DMB_CAPABLE" +fi + +# Get the source directories to use for the host. unix_dir is set +# to unix to get some standard Unix routines. posix_dir is set to get some +# standard Posix routines. sys_dir should supply system dependent routines +# including crt0. +# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. + +case "${host}" in + *-*-cygwin*) + sys_dir=cygwin + posix_dir=posix + ;; + *-*-netware*) + signal_dir= + sys_dir=netware + ;; + *-*-rtems*) # generic RTEMS support + sys_dir=rtems + # RTEMS POSIX support is all inside RTEMS + ;; + a29k-*-*) + sys_dir=a29khif + signal_dir= + ;; + arc-*-*) + sys_dir=arc + ;; + arm-*-*) + sys_dir=arm + ;; + d10v*) + sys_dir=d10v + ;; + d30v*) + sys_dir= + ;; + h8300-*-hms*) + sys_dir=h8300hms + ;; + h8300-*-xray*) + sys_dir=h8300xray + ;; + h8500-*-hms*) + sys_dir=h8500hms + ;; + i[3456]86-*-go32) + sys_dir=go32 + ;; + i[3456]86-*-sco*) + sys_dir=sysvi386 + unix_dir=unix + ;; + m68k-sun-sunos*) + unix_dir=unix + ;; + m8*-bug-*) + sys_dir=m88kbug + ;; + mips*-dec-*) + sys_dir=decstation + ;; + powerpcle-*-pe) + sys_dir=cygwin + posix_dir=posix + ;; + sh*-*) + sys_dir=sh + ;; + sparc-sun-sunos*) + sys_dir=sun4 + unix_dir=unix + ;; + sparc64*) + sys_dir=sparc64 + unix_dir=unix + ;; + strongarm-*-*) + sys_dir=arm + ;; + thumb-*-*) + sys_dir=arm + ;; + tic80*) + sys_dir=tic80 + ;; + v70-nec-*) + sys_dir=sysvnecv70 + ;; + v810-*-*) + sys_dir=sysnec810 + ;; + v850-*-*) + sys_dir=sysnecv850 + ;; + v850e-*-*) + sys_dir=sysnecv850 + ;; + v850ea-*-*) + sys_dir=sysnecv850 + ;; + w65-*-*) + sys_dir=w65 + ;; + z8k-*-coff) + sys_dir=z8ksim + ;; +esac + +# Host specific flag settings -- usually for features that are not +# general enough or broad enough to be handled above. +# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY. + +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB" + syscall_dir=syscalls + ;; +# RTEMS supplies its own versions of some routines: +# malloc() (reentrant version) +# exit() RTEMS has a "global" reent to flush +# signal()/raise() RTEMS has its own including pthread signals +# _XYZ_r() RTEMS has its own reentrant routines +# +# NOTE: When newlib malloc uses a semaphore, RTEMS will switch to that. + *-*-rtems*) + newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR" + ;; +# VxWorks supplies its own version of malloc, and the newlib one +# doesn't work because VxWorks does not have sbrk. + *-wrs-vxworks*) + newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DMISSING_SYSCALL_NAMES" + ;; +# UDI doesn't have exec, so system() should fail the right way + a29k-amd-udi) + newlib_cflags="${newlib_cflags} -DNO_EXEC" + syscall_dir=syscalls + ;; + arc-*-*) + syscall_dir=syscalls + ;; + arm-*-pe) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Don't use the debugging protocols just yet. + ;; + arm-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Select which debug protocol is being used. +# ARM_RDP_MONITOR selects the Demon monitor. +# ARM_RDI_MONITOR selects the Angel monitor. +# If neither are defined, then hard coded defaults will be used +# to create the program's environment. +# See also thumb below. +# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + d10v*) + newlib_cflags="${newlib_cflags} -DSMALL_MEMORY" + syscall_dir=syscalls + ;; + d30v*) + newlib_cflags="${newlib_cflags} -DABORT_MESSAGE -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" + syscall_dir= + ;; + fr30-*-*) + newlib_cflags="${newlib_cflags}" + syscall_dir=syscalls + ;; + h8300*-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + h8500-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + i[3456]86-*-sco*) + newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" + ;; + i[3456]86-*-netware*) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DABORT_PROVIDED -DCLOCK_PROVIDED -DMALLOC_PROVIDED" + ;; + i[3456]86-*-go32) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC" + ;; + m32r-*-*) + # Pass -msdata=sdata so _impure_ptr goes in .sdata. + # We don't generate sda relocs however for upward compatibility. + # FIXME: This is necessary because the default multilib doesn't + # use --print-multi-lib. + newlib_cflags="${newlib_cflags} -msdata=sdata" + syscall_dir=syscalls + ;; + mcore-*-*) + newlib_cflags="${newlib_cflags}" + syscall_dir=syscalls + ;; + mn10?00-*-*) + syscall_dir=syscalls + ;; + powerpc*-*-eabi* | \ + powerpc*-*-elf* | \ + powerpc*-*-linux* | \ + powerpc*-*-rtem* | \ + powerpc*-*-sysv* | \ + powerpc*-*-solaris*) + newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES" + ;; + powerpcle-*-pe) + newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME" + syscall_dir=syscalls + ;; + sh*-*-*) + syscall_dir=syscalls + ;; + sparc-sun-sunos*) + newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" + ;; + sparc64-*-*) + newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_BLKSIZE -DHAVE_GETTIMEOFDAY" + # This either belongs elsewhere or nowhere. But I need *something*, + # so for now it's here ... + case "${host_os}" in + aoutv8 | *32p) + newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=32" ;; + *) + newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=64" ;; + esac + ;; + strongarm-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + thumb-*-pe) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Don't use the debugging protocols just yet. + ;; + thumb-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" +# Select which debug protocol is being used. +# ARM_RDP_MONITOR selects the Demon monitor. +# ARM_RDI_MONITOR selects the Angel monitor. +# If neither are defined, then hard coded defaults will be used +# to create the program's environment. +# See also arm and strongarm above. +# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" + newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" + ;; + tic80*) + syscall_dir=syscalls + ;; + v850-*-*) + syscall_dir=syscalls + ;; + v850e-*-*) + syscall_dir=syscalls + ;; + v850ea-*-*) + syscall_dir=syscalls + ;; + w65-*-*) + syscall_dir=syscalls + newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" + ;; + z8k-*-*) + syscall_dir=syscalls + ;; + *) + newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" + syscall_dir= + ;; +esac diff --git a/newlib/configure.in b/newlib/configure.in new file mode 100644 index 000000000..218e69e45 --- /dev/null +++ b/newlib/configure.in @@ -0,0 +1,64 @@ +dnl This is the newlib configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(libc) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(..) + +NEWLIB_CONFIGURE(.) + +configdirs="libc libm" + +AC_ARG_ENABLE(newlib_hw_fp, +[ --enable-newlib-hw-fp Turn on hardware floating point math], +[case "${enableval}" in + yes) newlib_hw_fp=true ;; + no) newlib_hw_fp=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-newlib-hw-fp) ;; + esac],[newlib_hw_fp=false]) +AM_CONDITIONAL(NEWLIB_HW_FP, test x$newlib_hw_fp = xtrue) + +if test -z "${with_multisubdir}"; then + configdirs="${configdirs} doc" + have_doc=yes +else + have_doc= +fi +AM_CONDITIONAL(HAVE_DOC, test x$have_doc = xyes) + +AC_CONFIG_SUBDIRS(${configdirs}) + +CRT0= +CRT0_DIR= +if test -n "${sys_dir}"; then + CRT0=crt0.o + CRT0_DIR=libc +fi +AC_SUBST(CRT0) +AC_SUBST(CRT0_DIR) + + + + +if test "${multilib}" = "yes"; then + multilib_arg="--enable-multilib" +else + multilib_arg= +fi + + +AC_OUTPUT(Makefile, +[if test -n "$CONFIG_FILES"; then + . ${newlib_basedir}/../config-ml.in +fi], +srcdir=${srcdir} +host=${host} +target=${target} +with_multisubdir=${with_multisubdir} +ac_configure_args="${multilib_arg} ${ac_configure_args}" +CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} +newlib_basedir=${newlib_basedir} +CC="${CC}" +) diff --git a/newlib/doc/Makefile.am b/newlib/doc/Makefile.am new file mode 100644 index 000000000..de802d61e --- /dev/null +++ b/newlib/doc/Makefile.am @@ -0,0 +1,21 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +# We can't use noinst_PROGRAMS, because automake will add $(EXEEXT). +noinst_DATA = makedoc + +MKDOC = makedoc$(EXEEXT_FOR_BUILD) + +# We don't use CFLAGS with CC_FOR_BUILD because here CFLAGS will +# actually be CFLAGS_FOR_TARGET, and in some cases that will include +# -Os, which CC_FOR_BUILD may not recognize. + +$(MKDOC): makedoc.o + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS) -o $(MKDOC) makedoc.o + +makedoc.o: makedoc.c + $(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -c $(srcdir)/makedoc.c + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/doc/Makefile.in b/newlib/doc/Makefile.in new file mode 100644 index 000000000..f93c1fe85 --- /dev/null +++ b/newlib/doc/Makefile.in @@ -0,0 +1,246 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CC_FOR_BUILD = @CC_FOR_BUILD@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +EXEEXT_FOR_BUILD = @EXEEXT_FOR_BUILD@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +# We can't use noinst_PROGRAMS, because automake will add $(EXEEXT). +noinst_DATA = makedoc + +MKDOC = makedoc$(EXEEXT_FOR_BUILD) + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +DATA = $(noinst_DATA) + +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +all: all-redirect +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ../acinclude.m4 \ + ../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) +tags: TAGS +TAGS: + + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(DATA) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-generic mostlyclean-am + +clean: clean-am + +distclean-am: distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: tags distdir info-am info dvi-am dvi check check-am \ +installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# We don't use CFLAGS with CC_FOR_BUILD because here CFLAGS will +# actually be CFLAGS_FOR_TARGET, and in some cases that will include +# -Os, which CC_FOR_BUILD may not recognize. + +$(MKDOC): makedoc.o + $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS) -o $(MKDOC) makedoc.o + +makedoc.o: makedoc.c + $(CC_FOR_BUILD) -g $(CFLAGS_FOR_BUILD) -c $(srcdir)/makedoc.c + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/doc/aclocal.m4 b/newlib/doc/aclocal.m4 new file mode 100644 index 000000000..6f1442ecb --- /dev/null +++ b/newlib/doc/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/doc/ansidecl.h b/newlib/doc/ansidecl.h new file mode 100644 index 000000000..1c7708fd5 --- /dev/null +++ b/newlib/doc/ansidecl.h @@ -0,0 +1,116 @@ +/* ANSI and traditional C compatability macros + Copyright 1991 Free Software Foundation, Inc. + This file is part of the GNU C Library. + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* ANSI and traditional C compatibility macros + + Some ANSI environments are "broken" in the sense that __STDC__ cannot be + relied upon to have it's intended meaning. Therefore we must use our own + concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib + sources! + + ANSI C is assumed if _HAVE_STDC is #defined. + + Macro ANSI C definition Traditional C definition + ----- ---- - ---------- ----------- - ---------- + PTR `void *' `char *' + LONG_DOUBLE `long double' `double' + CONST `const' `' + VOLATILE `volatile' `' + SIGNED `signed' `' + PTRCONST `void *const' `char *' + + DEFUN(name, arglist, args) + + Defines function NAME. + + ARGLIST lists the arguments, separated by commas and enclosed in + parentheses. ARGLIST becomes the argument list in traditional C. + + ARGS list the arguments with their types. It becomes a prototype in + ANSI C, and the type declarations in traditional C. Arguments should + be separated with `AND'. For functions with a variable number of + arguments, the last thing listed should be `DOTS'. + + DEFUN_VOID(name) + + Defines a function NAME, which takes no arguments. + + EXFUN(name, prototype) + + Is used in an external function declaration. + In ANSI C it is `NAMEPROTOTYPE' (so PROTOTYPE should be enclosed in + parentheses). In traditional C it is `NAME()'. + For a function that takes no arguments, PROTOTYPE should be `(NOARGS)'. + + For example: + extern int EXFUN(printf, (CONST char *format DOTS)); + int DEFUN(fprintf, (stream, format), + FILE *stream AND CONST char *format DOTS) { ... } + void DEFUN_VOID(abort) { ... } +*/ + +#ifndef _ANSIDECL_H + +#define _ANSIDECL_H 1 + + +/* Every source file includes this file, + so they will all get the switch for lint. */ +/* LINTLIBRARY */ + + +#ifdef _HAVE_STDC + +#define PTR void * +#define PTRCONST void *CONST +#define LONG_DOUBLE long double + +#define AND , +#define NOARGS void +#define CONST const +#define VOLATILE volatile +#define SIGNED signed +#define DOTS , ... + +#define EXFUN(name, proto) name proto +#define DEFUN(name, arglist, args) name(args) +#define DEFUN_VOID(name) name(NOARGS) + +#else /* Not ANSI C. */ + +#define PTR char * +#define PTRCONST PTR +#define LONG_DOUBLE double + +#define AND ; +#define NOARGS +#define CONST +#define VOLATILE +#define SIGNED +#define DOTS + +#define const + +#define EXFUN(name, proto) name() +#define DEFUN(name, arglist, args) name arglist args; +#define DEFUN_VOID(name) name() + +#endif /* ANSI C. */ + + +#endif /* ansidecl.h */ diff --git a/newlib/doc/configure b/newlib/doc/configure new file mode 100755 index 000000000..7955c8df5 --- /dev/null +++ b/newlib/doc/configure @@ -0,0 +1,1714 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=makedoc.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:567: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:620: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:677: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:710: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 715 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:726: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:743: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 748 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:755: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}.." + fi +else + newlib_basedir="${srcdir}/.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:829: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:870: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:883: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:896: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:909: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:922: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:947: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:977: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1026: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1035: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1050: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1083: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1104: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1136: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1168: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1200: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1245: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1299: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1333: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +# Put a plausible default for CC_FOR_BUILD in Makefile. +if test -z "$CC_FOR_BUILD"; then + if test "x$cross_compiling" = "xno"; then + CC_FOR_BUILD='$(CC)' + else + CC_FOR_BUILD=gcc + fi +fi + + +# Also set EXEEXT_FOR_BUILD. +if test "x$cross_compiling" = "xno"; then + EXEEXT_FOR_BUILD='$(EXEEXT)' +else + echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6 +echo "configure:1403: checking for build system executable suffix" >&5 +if eval "test \"`echo '$''{'newlib_cv_build_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > ac_c_test.c << 'EOF' +int main() { +/* Nothing needed here */ +} +EOF + ${CC_FOR_BUILD} -o ac_c_test am_c_test.c 1>&5 2>&5 + newlib_cv_build_exeext=`echo ac_c_test.* | grep -v ac_c_test.c | sed -e s/ac_c_test//` + rm -f ac_c_test* + test x"${newlib_cv_build_exeext}" = x && newlib_cv_build_exeext=no +fi + +echo "$ac_t""$newlib_cv_build_exeext" 1>&6 + EXEEXT_FOR_BUILD="" + test x"${newlib_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${newlib_cv_build_exeext} +fi + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g +s%@EXEEXT_FOR_BUILD@%$EXEEXT_FOR_BUILD%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/doc/configure.in b/newlib/doc/configure.in new file mode 100644 index 000000000..b116b3538 --- /dev/null +++ b/newlib/doc/configure.in @@ -0,0 +1,41 @@ +dnl This is the newlib/doc configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(makedoc.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../..) + +NEWLIB_CONFIGURE(..) + +# Put a plausible default for CC_FOR_BUILD in Makefile. +if test -z "$CC_FOR_BUILD"; then + if test "x$cross_compiling" = "xno"; then + CC_FOR_BUILD='$(CC)' + else + CC_FOR_BUILD=gcc + fi +fi +AC_SUBST(CC_FOR_BUILD) + +# Also set EXEEXT_FOR_BUILD. +if test "x$cross_compiling" = "xno"; then + EXEEXT_FOR_BUILD='$(EXEEXT)' +else + AC_CACHE_CHECK([for build system executable suffix], newlib_cv_build_exeext, + [cat > ac_c_test.c << 'EOF' +int main() { +/* Nothing needed here */ +} +EOF + ${CC_FOR_BUILD} -o ac_c_test am_c_test.c 1>&5 2>&5 + newlib_cv_build_exeext=`echo ac_c_test.* | grep -v ac_c_test.c | sed -e s/ac_c_test//` + rm -f ac_c_test* + test x"${newlib_cv_build_exeext}" = x && newlib_cv_build_exeext=no]) + EXEEXT_FOR_BUILD="" + test x"${newlib_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${newlib_cv_build_exeext} +fi +AC_SUBST(EXEEXT_FOR_BUILD) + +AC_OUTPUT(Makefile) diff --git a/newlib/doc/doc.str b/newlib/doc/doc.str new file mode 100644 index 000000000..4d557c6f5 --- /dev/null +++ b/newlib/doc/doc.str @@ -0,0 +1,178 @@ +: nokill_bogus_lines ; + +: ENDDD + skip_past_newline + ; + +: TABLE + skip_past_newline + "@table @code\n" catstr + ; + +: ENDTABLE + skip_past_newline + "@end table\n" + catstr + ; + +: QUICKREF + skip_past_newline + get_stuff_in_command + "&&~&&~&&\cr\tablerule\n" + quickref + ; + + +: ITEM + "@item " catstr ; + +: EXAMPLE + skip_past_newline + + get_stuff_in_command nokill_bogus_lines translatecomments + courierize catstr + + ; + +: INODE + "@node " catstr skip_past_newline copy_past_newline catstr + ; + +: CODE_FRAGMENT + EXAMPLE + ; + +: SYNOPSIS + skip_past_newline + "@strong{Synopsis}\n" catstr + "@example\n" catstr + get_stuff_in_command + do_fancy_stuff + nokill_bogus_lines + indent + catstr + "@end example\n" catstr + + ; + + +: ANSI_SYNOPSIS + skip_past_newline + "@strong{Synopsis}\n" catstr + "@example\n" catstr + get_stuff_in_command + do_fancy_stuff + nokill_bogus_lines + indent + catstr + "@end example\n" catstr + + ; + +: OLDTRAD_SYNOPSIS + skip_past_newline + "@strong{Traditional Synopsis}\n" catstr + "@example\n" catstr + get_stuff_in_command + do_fancy_stuff + nokill_bogus_lines + indent + catstr + "@end example\n" catstr + + ; + +: TRAD_SYNOPSIS + skip_past_newline + + ; + +: INDEX + "@findex " skip_past_newline copy_past_newline catstr catstr + ; + +: FUNCTION + "@node " - a + skip_past_newline + copy_past_newline + dup - a x x + get_stuff_in_angle -a x y + swap + do_fancy_stuff + "@section " - a x x b + swap + remchar + "\n" - a x b x c + catstr catstr catstr catstr catstr + ; + +: bodytext + get_stuff_in_command + bulletize + courierize + do_fancy_stuff + catstr + "@*\n" catstr + ; + +: asection + skip_past_newline + catstr + copy_past_newline + do_fancy_stuff catstr + bodytext + ; + +: SECTION + "@section " asection ; + +: SUBSECTION + "@section " asection ; + +: SUBSUBSECTION + "@subsection " asection ; + +: subhead + skip_past_newline + bodytext + ; + + + +: DESCRIPTION + "@strong{Description}@*\n" catstr subhead ; + +: RETURNS + "@strong{Returns}@*\n" catstr subhead ; + +: ERRORS + "@strong{Errors}@*\n" catstr subhead ; + + +: PORTABILITY + "@strong{Portability}@*\n" catstr subhead ; + + +: WARNINGS + "@strong{Warnings}@*\n" catstr subhead ; + + + +: INTERNAL_FUNCTION + func ; + + +: INTERNAL_DEFINITION + func ; + + +: INTERNAL + func ; + +: TYPEDEF + FUNCTION ; + + + +: NEWPAGE + "@page\n" catstr subhead ; diff --git a/newlib/doc/makedoc.c b/newlib/doc/makedoc.c new file mode 100644 index 000000000..12dfc90dd --- /dev/null +++ b/newlib/doc/makedoc.c @@ -0,0 +1,1469 @@ +/* chew + Copyright (C) 1990-1992 Free Software Foundation, Inc. + Contributed by steve chamberlain @cygnus + + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* + Yet another way of extracting documentation from source. + No, I haven't finished it yet, but I hope you people like it better + that the old way + + sac + +Basically, this is a sort of string forth, maybe we should call it +struth? + +You define new words thus: +: <newword> <oldwords> ; +There is no + +*/ + + + +#include "ansidecl.h" +#include <stdio.h> +#include <ctype.h> + +extern PTR malloc(); +extern PTR realloc(); + +#define DEF_SIZE 5000 +#define STACK 50 + +int internal_wanted; +int internal_mode; + + + +/* Here is a string type ... */ + +typedef struct buffer +{ + char *ptr; + unsigned int write_idx; + unsigned int size; +} string_type; + + + + + + + +static void DEFUN(init_string_with_size,(buffer, size), + string_type *buffer AND + unsigned int size ) +{ + buffer->write_idx = 0; + buffer->size = size; + buffer->ptr = malloc(size); +} + +static void DEFUN(init_string,(buffer), + string_type *buffer) +{ + init_string_with_size(buffer, DEF_SIZE); + +} + +static int DEFUN(find, (str, what), + string_type *str AND + char *what) +{ + unsigned int i; + char *p; + p = what; + for (i = 0; i < str->write_idx && *p; i++) + { + if (*p == str->ptr[i]) + p++; + else + p = what; + } + return (*p == 0); + +} + +static void DEFUN(write_buffer,(buffer), + string_type *buffer) +{ + fwrite(buffer->ptr, buffer->write_idx, 1, stdout); +} + + +static void DEFUN(delete_string,(buffer), + string_type *buffer) +{ + free(buffer->ptr); +} + + +static char *DEFUN(addr, (buffer, idx), + string_type *buffer AND + unsigned int idx) +{ + return buffer->ptr + idx; +} + +static char DEFUN(at,(buffer, pos), + string_type *buffer AND + unsigned int pos) +{ + if ( pos >= buffer->write_idx) + { + return 0; + } + return buffer->ptr[pos]; +} + +static void DEFUN(catchar,(buffer, ch), + string_type *buffer AND + char ch) +{ + if (buffer->write_idx == buffer->size) + { + buffer->size *=2; + buffer->ptr = realloc(buffer->ptr, buffer->size); + } + + buffer->ptr[buffer->write_idx ++ ] = ch; +} + + +static void DEFUN(overwrite_string,(dst, src), + string_type *dst AND + string_type *src) +{ + free(dst->ptr); + dst->size = src->size; + dst->write_idx = src->write_idx; + dst->ptr = src->ptr; +} + +static void DEFUN(catstr,(dst, src), + string_type *dst AND + string_type *src) +{ + unsigned int i; + for (i = 0; i < src->write_idx; i++) + { + catchar(dst, src->ptr[i]); + } +} + + +static void DEFUN(cattext,(buffer, string), + string_type *buffer AND + char *string) +{ + + while (*string) + { + catchar(buffer, *string); + string++; + } +} + +static void DEFUN(catbuf,(buffer, buf, len), + string_type *buffer AND + char *buf AND + unsigned int len) +{ + + while (len--) + { + catchar(buffer, *buf); + buf++; + } +} + + + +static unsigned int +DEFUN(skip_white_and_stars,(src, idx), + string_type *src AND + unsigned int idx) +{ + while (isspace(at(src,idx)) + || (at(src,idx) == '*' && at(src,idx +1) !='/')) + idx++; + return idx; + + +} +/***********************************************************************/ + + +string_type stack[STACK]; +string_type *tos; + +unsigned int idx = 0; /* Pos in input buffer */ +string_type *ptr; /* and the buffer */ +typedef void (*stinst_type)(); +stinst_type *pc; +stinst_type sstack[STACK]; +stinst_type *ssp = &sstack[0]; +int istack[STACK]; +int *isp = &istack[0]; + +typedef int *word_type; + + + +struct dict_struct +{ + char *word; + struct dict_struct *next; + stinst_type *code; + int code_length; + int code_end; + int var; + +}; +typedef struct dict_struct dict_type; +#define WORD(x) static void x() + +static void DEFUN(exec,(word), + dict_type *word) +{ + pc = word->code; + while (*pc) + { + (*pc)(); + } + +} +WORD(call) +{ +stinst_type *oldpc = pc; + dict_type *e; + e = (dict_type *)(pc [1]); + exec(e); + pc = oldpc + 2; + +} + +WORD(remchar) +{ + tos->write_idx--; + pc++; + +} + +WORD(push_number) +{ + isp++; + pc++; + *isp = (int)(*pc); + pc++; + +} + + + + +WORD(push_text) +{ + + tos++; + init_string(tos); + pc++; + cattext(tos,*((char **)pc)); + pc++; + +} + + + +/* This function removes everything not inside comments starting on + the first char of the line from the string, also when copying + comments, removes blank space and leading *'s + Blank lines are turned into one blank line + */ + +static void +DEFUN(remove_noncomments,(src,dst), + string_type *src AND + string_type *dst) +{ + unsigned int idx = 0; + + while (at(src,idx)) + { + /* Now see if we have a comment at the start of the line */ + if (at(src,idx) == '\n' + && at(src,idx+1) == '/' + && at(src,idx+2) == '*') + { + idx+=3; + + idx = skip_white_and_stars(src,idx); + + /* Remove leading dot */ + if (at(src, idx) == '.') + idx++; + + /* Copy to the end of the line, or till the end of the + comment */ + while (at(src, idx)) + { + if (at(src, idx) == '\n') + { + /* end of line, echo and scrape of leading blanks */ + if (at(src,idx +1) == '\n') + catchar(dst,'\n'); + catchar(dst,'\n'); + idx++; + idx = skip_white_and_stars(src, idx); + } + else if (at(src, idx) == '*' && at(src,idx+1) == '/') + { + idx +=2 ; + cattext(dst,"\nENDDD\n"); + break; + } + else + { + catchar(dst, at(src, idx)); + idx++; + } + } + } + else idx++; + } +} +/* turn foobar name(stuff); into foobar EXFUN(name,(stuff)); + + */ + +static void +DEFUN_VOID(exfunstuff) +{ + unsigned int openp; + unsigned int fname; + unsigned int idx; + string_type out; + init_string(&out); + + + /* make sure that it's not already exfuned */ + if(find(tos,"EXFUN") || find(tos,"PROTO") || !find(tos,"(")) { + catstr(&out,tos); + } + else + { + + /*Find the open paren*/ + for (openp = 0; at(tos, openp) != '(' && at(tos,openp); openp++) + ; + + fname = openp; + /* Step back to the fname */ + fname--; + while (fname && isspace(at(tos, fname))) + fname --; + while (fname && !isspace(at(tos,fname)) && at(tos,fname) != '*') + fname--; + + fname++; + + for (idx = 0; idx < fname; idx++) + { + catchar(&out, at(tos,idx)); + } + + cattext(&out,"EXFUN("); + for (idx = fname; idx < openp; idx++) + { + catchar(&out, at(tos,idx)); + } + cattext(&out,", "); + while (at(tos,idx) && at(tos,idx) !=';') + { + catchar(&out, at(tos, idx)); + idx++; + } + cattext(&out,");\n"); + } + overwrite_string(tos, &out); + pc++; + +} + + + +/* turn {* + and *} into comments */ + +WORD(translatecomments) +{ + unsigned int idx = 0; + string_type out; + init_string(&out); + + while (at(tos, idx)) + { + if (at(tos,idx) == '{' && at(tos,idx+1) =='*') + { + cattext(&out," /*"); + idx+=2; + } + else if (at(tos,idx) == '*' && at(tos,idx+1) =='}') + { + cattext(&out,"*/"); + idx+=2; + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + + + overwrite_string(tos, &out); + + pc++; + +} + +/* find something like + QUICKREF + memchar ansi pure + + into + merge with words on tos and output them to stderror + +*/ +WORD(quickref) +{ + string_type *nos = tos-1; + unsigned int scan=0; + unsigned int nosscan = 0; + unsigned int idx = 0; + + while (at(tos, idx)) + { + if (at(tos,idx) == '~') + { + /* Skip the whitespace */ + while (at(nos, nosscan) == ' ') + nosscan++; + + /* Sub the next word from the nos*/ + while (at(nos, nosscan) != ' ' && + at(nos, nosscan) != 0) + { + fprintf(stderr, "%c", at(nos, nosscan)); + nosscan++; + } + } + + else + { + fprintf(stderr,"%c", at(tos, idx)); + + } + idx++; + } + + delete_string(tos); + delete_string(nos); + tos-=2; + pc++; + +} + +/* turn everything not starting with a . into a comment */ + +WORD(manglecomments) +{ + unsigned int idx = 0; + string_type out; + init_string(&out); + + while (at(tos, idx)) + { + if (at(tos,idx) == '\n' && at(tos,idx+1) =='*') + { + cattext(&out," /*"); + idx+=2; + } + else if (at(tos,idx) == '*' && at(tos,idx+1) =='}') + { + cattext(&out,"*/"); + idx+=2; + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + + + overwrite_string(tos, &out); + + pc++; + +} + +/* Mod tos so that only lines with leading dots remain */ +static void +DEFUN_VOID(outputdots) +{ + unsigned int idx = 0; + string_type out; + init_string(&out); + + while (at(tos, idx)) + { + if (at(tos, idx) == '\n' && at(tos, idx+1) == '.') + { + idx += 2; + + while (at(tos, idx) && at(tos, idx)!='\n') + { + if (at(tos,idx) == '{' && at(tos,idx+1) =='*') + { + cattext(&out," /*"); + idx+=2; + } + else if (at(tos,idx) == '*' && at(tos,idx+1) =='}') + { + cattext(&out,"*/"); + idx+=2; + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + catchar(&out,'\n'); + } + else + { + idx++; + } + } + + overwrite_string(tos, &out); + pc++; + +} + +/* Find lines starting with . and | and put example around them on tos + turn + {* into open comment and *} into close comment + escape curlies + +*/ +WORD(courierize) +{ + string_type out; + unsigned int idx = 0; + + init_string(&out); + + while (at(tos, idx)) + { + if (at(tos, idx) == '\n' + && (at(tos, idx +1 ) == '.' + || at(tos,idx+1) == '|')) + { + cattext(&out,"\n@smallexample\n"); + do + { + idx += 2; + + while (at(tos, idx) && at(tos, idx)!='\n') + { + if (at(tos,idx)=='{' && at(tos,idx+1) =='*') + { + cattext(&out," /*"); + idx+=2; + } + else if (at(tos,idx)=='*' && at(tos,idx+1) =='}') + { + cattext(&out,"*/"); + idx+=2; + } + else if (at(tos,idx) == '{') + { + cattext(&out,"@{"); + idx++; + } + else if (at(tos,idx) == '}') + { + cattext(&out,"@}"); + idx++; + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + + } + catchar(&out,'\n'); + } + while (at(tos, idx) == '\n' + && (at(tos, idx+1) == '.') + || (at(tos,idx+1) == '|')); + cattext(&out,"@end smallexample"); + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + + overwrite_string(tos, &out); + pc++; + + +} + +/* + O+ emit @itemize @bullet + OO emit @item + O- emit @end itemize + + o+ emit @table @code + oo @item + o- emit @end table +*/ + + +WORD(bulletize) +{ + unsigned int idx = 0; + int on = 0; + string_type out; + init_string(&out); + + while (at(tos, idx)) { + if (at(tos, idx) == '@' && + at(tos, idx+1) == '*') + { + cattext(&out,"*"); + idx+=2; + } + + else + if (at(tos, idx) == '\n' && at(tos, idx+1) == 'o') + { + if (at(tos,idx+2) == '+') { + cattext(&out,"\n@table @code\n"); + idx+=3; + } + else if (at(tos,idx+2) == '-') { + cattext(&out,"\n@end table\n"); + idx+=3; + } + else if (isspace(at(tos,idx+2))) { + cattext(&out,"\n@item "); + idx+=3; + } + else { + catchar(&out, at(tos, idx)); + idx++; + } + } + + else + if (at(tos, idx) == '\n' && at(tos, idx+1) == 'O') + { + if (at(tos,idx+2) == '+') { + cattext(&out,"\n@itemize @bullet\n"); + idx+=3; + } + + else if (at(tos,idx+2) == '-') { + cattext(&out,"\n@end itemize\n"); + idx+=3; + } + else { + catchar(&out, at(tos, idx)); + idx++; + } + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + + delete_string(tos); + *tos = out; + pc++; + +} + +/* Turn <<foo>> into @code{foo} in place at TOS + Turn <[foo]> into @var{foo} in place at TOS + nest them too ! + +*/ + + +WORD(do_fancy_stuff) + { + unsigned int idx = 0; + string_type out; + init_string(&out); + while (at(tos, idx)) + { + if (at(tos, idx) == '<' + && at(tos, idx+1) == '<' + && (!isspace(at(tos,idx + 2)) || at(tos,idx+3) == '>')) + { + /* This qualifies as a << startup */ + idx +=2; + cattext(&out,"@code{"); + } + + else if (at(tos, idx) == '<' + && at(tos, idx+1) == '[' + && !isspace(at(tos,idx + 2))) + { + /* This qualifies as a <[ startup */ + idx +=2; + cattext(&out,"@var{"); + } + else if (at(tos, idx) == '>' + && at(tos,idx+1) =='>') + { + + cattext(&out,"}"); + idx+=2; + } + else if (at(tos, idx) == ']' + && at(tos,idx+1) =='>') + { + cattext(&out,"}"); + idx+=2; + } + else + { + catchar(&out, at(tos, idx)); + idx++; + } + } + delete_string(tos); + *tos = out; + pc++; + +} +/* A command is all upper case,and alone on a line */ +static int +DEFUN( iscommand,(ptr, idx), + string_type *ptr AND + unsigned int idx) +{ + unsigned int len = 0; + while (at(ptr,idx)) { + if (isupper(at(ptr,idx)) || at(ptr,idx) == ' ' || + at(ptr,idx) == '_') + { + len++; + idx++; + } + else if(at(ptr,idx) == '\n') + { + if (len >4) return 1; + return 0; + } + else return 0; + } + return 0; + +} + + +DEFUN(copy_past_newline,(ptr, idx, dst), + string_type *ptr AND + unsigned int idx AND + string_type *dst) +{ + while (at(ptr, idx) && at(ptr, idx) != '\n') + { + catchar(dst, at(ptr, idx)); + idx++; + + } + catchar(dst, at(ptr, idx)); + idx++; + return idx; + +} + +WORD(icopy_past_newline) +{ + tos++; + init_string(tos); + idx = copy_past_newline(ptr, idx, tos); + pc++; +} + + +/* indent + Take the string at the top of the stack, do some prettying */ + + + + +WORD(kill_bogus_lines) +{ + int sl ; + + int nl = 0; + int idx = 0; + int c; + int dot = 0 ; + + string_type out; + init_string(&out); + /* Drop leading nl */ + while (at(tos,idx) == '\n') + { + idx++; + } + c = idx; + + /* Find the last char */ + while (at(tos,idx)) + { + idx++; + } + + /* find the last non white before the nl */ + idx--; + + while (idx && isspace(at(tos,idx))) + idx--; + idx++; + + /* Copy buffer upto last char, but blank lines before and after + dots don't count */ + sl = 1; + + while (c < idx) + { + if (at(tos,c) == '\n' + && at(tos,c+1) == '\n' + && at(tos,c+2) == '.') + { + /* Ignore two linelines before a dot*/ + c++; + } + else if (at(tos,c) == '.' && sl) + { + /* remember that this line started with a dot */ + dot=2; + } + else if (at(tos,c) == '\n' + && at(tos,c+1) == '\n' + && dot) + { + c++; + /* Ignore two newlines when last line was dot */ + } + + catchar(&out, at(tos,c)); + if (at(tos,c) == '\n') + { + sl = 1; + + if (dot == 2)dot=1;else dot = 0; + } + + c++; + + } + + /* Append nl*/ + catchar(&out, '\n'); + pc++; + delete_string(tos); + *tos = out; + + +} + +WORD(indent) +{ + string_type out; + int tab = 0; + int idx = 0; + int ol =0; + init_string(&out); + while (at(tos,idx)) { + switch (at(tos,idx)) + { + case '\n': + cattext(&out,"\n"); + idx++; + if (tab) + { + cattext(&out," "); + } + ol = 0; + break; + case '(': + tab++; + if (ol == 0) + cattext(&out," "); + idx++; + cattext(&out,"("); + ol = 1; + break; + case ')': + tab--; + cattext(&out,")"); + idx++; + ol=1; + + break; + default: + catchar(&out,at(tos,idx)); + ol=1; + + idx++; + break; + } + } + + pc++; + delete_string(tos); + *tos = out; + +} + +/* Change the TOS so that all that is left is the stuff inside the + first <<foo>> . +*/ + +WORD(get_stuff_in_angle) +{ + unsigned int idx = 0; + string_type out; + init_string(&out); + + while (at(tos, idx)) + { + if (at(tos,idx) == '<' && at(tos,idx+1) =='<') + { + idx+=2; + + while (!(at(tos,idx) == '>' && at(tos,idx+1) == '>')) + { + catchar(&out, at(tos, idx)); + idx++; + } + break; + } + idx++; + } + catchar(&out,'\n'); + + overwrite_string(tos, &out); + pc++; +} + + +WORD(get_stuff_in_command) +{ + tos++; + init_string(tos); + + while (at(ptr, idx)) { + if (iscommand(ptr, idx)) break; + idx = copy_past_newline(ptr, idx, tos); + } + pc++; +} + +WORD(swap) +{ + string_type t; + + t = tos[0]; + tos[0] = tos[-1]; + tos[-1] =t; + pc++; + +} + +WORD(dup) +{ + tos++; + init_string(tos); + catstr(tos, tos-1); + pc++; + +} + + + +WORD(icatstr) +{ + catstr(tos-1, tos); + delete_string(tos); + tos--; + pc++; + +} + +WORD(skip_past_newline) +{ + while (at(ptr,idx) + && at(ptr,idx) != '\n') + idx++; + idx++; + pc++; +} + + +WORD(internalmode) +{ + internal_mode = *(isp); + isp--; + pc++; +} + +WORD(maybecatstr) +{ + if (internal_wanted == internal_mode) + { + catstr(tos-1, tos); + } + delete_string(tos); + tos--; + pc++; + +} + +char * +DEFUN(nextword,(string, word), + char *string AND + char **word) +{ + char *word_start; + int idx; + char *dst; + char *src; + + int length = 0; + + while (isspace(*string) || *string == '-') { + if (*string == '-') + { + while (*string && *string != '\n') + string++; + + } + else { + string++; + } + } + if (!*string) return 0; + + word_start = string; + if (*string == '"') + { + string++; + length++; + + while (*string != '"') + { + string++; + length++; + } + } + else + { + + + while (!isspace(*string)) + { + string++; + length++; + } + } + + *word = malloc(length + 1); + + dst = *word; + src = word_start; + + + for (idx= 0; idx < length; idx++) + { + + if (src[idx] == '\\' && src[idx+1] == 'n') + { + *dst++ = '\n'; + idx++; + + } + else *dst++ = src[idx]; + } + *dst++ = 0; + + + + + + if(*string) + return string + 1; + else + return 0; + +} +dict_type *root; +dict_type * +DEFUN(lookup_word,(word), + char *word) +{ + dict_type *ptr = root; + while (ptr) { + if (strcmp(ptr->word, word) == 0) return ptr; + ptr = ptr->next; + + } + fprintf(stderr,"Can't find %s\n",word); + return 0; + + +} + +static void DEFUN_VOID(perform) +{ + tos = stack; + + while (at(ptr, idx)) { + /* It's worth looking through the command list */ + if (iscommand(ptr, idx)) + { + unsigned int i; + int found = 0; + + char *next; + dict_type *word ; + + (void) nextword(addr(ptr, idx), &next); + + + word = lookup_word(next); + + + + + if (word) + { + exec(word); + } + else + { + fprintf(stderr,"warning, %s is not recognised\n", next); + skip_past_newline(); + } + + } + else skip_past_newline(); + + } +} + +dict_type * +DEFUN(newentry,(word), + char *word) +{ + dict_type *new = (dict_type *)malloc(sizeof(dict_type)); + new->word = word; + new->next = root; + root = new; + new->code = (stinst_type *)malloc(sizeof(stinst_type )); + new->code_length = 1; + new->code_end = 0; + return new; + +} + + +unsigned int +DEFUN(add_to_definition,(entry, word), + dict_type *entry AND + stinst_type word) +{ + if (entry->code_end == entry->code_length) + { + entry->code_length += 2; + entry->code = + (stinst_type *) realloc((char *)(entry->code), + entry->code_length *sizeof(word_type)); + } + entry->code[entry->code_end] = word; + +return entry->code_end++; +} + + + + + + + +void +DEFUN(add_intrinsic,(name, func), + char *name AND + void (*func)()) +{ + dict_type *new = newentry(name); + add_to_definition(new, func); + add_to_definition(new, 0); +} + +WORD(push_addr) +{ + + +} + +void +DEFUN(add_var,(name), + char *name) +{ + dict_type *new = newentry(name); + add_to_definition(new, push_number); + add_to_definition(new, (stinst_type)(&(new->var))); + add_to_definition(new,0); + +} + + + + +void +DEFUN(compile, (string), + char *string) + +{ + int jstack[STACK]; + int *jptr = jstack; + /* add words to the dictionary */ + char *word; + string = nextword(string, &word); + while (string && *string && word[0]) + { + if (strcmp(word,"var")==0) + { + string=nextword(string, &word); + + add_var(word); + string=nextword(string, &word); + } +else + + if (word[0] == ':') + { + dict_type *ptr; + /* Compile a word and add to dictionary */ + string = nextword(string, &word); + + ptr = newentry(word); + string = nextword(string, &word); + while (word[0] != ';' ) + { + switch (word[0]) + { + + + case '"': + /* got a string, embed magic push string + function */ + add_to_definition(ptr, push_text); + add_to_definition(ptr, (stinst_type)(word+1)); + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + /* Got a number, embedd the magic push number + function */ + add_to_definition(ptr, push_number); + add_to_definition(ptr, atol(word)); + break; + default: + add_to_definition(ptr, call); + add_to_definition(ptr, lookup_word(word)); + } + + string = nextword(string, &word); + } + add_to_definition(ptr,0); + string = nextword(string, &word); + } + else + { + fprintf(stderr,"syntax error at %s\n",string-1); + } + } + +} + + +static void DEFUN_VOID(bang) +{ +*(int *)((isp[0])) = isp[-1]; +isp-=2; +pc++; + +} + +WORD(atsign) +{ + isp[0] = *(int *)(isp[0]); + pc++; +} + +WORD(hello) +{ + + printf("hello\n"); + pc++; +} + + + +static void DEFUN(read_in, (str, file), + string_type *str AND + FILE *file) +{ + char buff[10000]; + unsigned int r; + do + { + r = fread(buff, 1, sizeof(buff), file); + catbuf(str, buff, r); + } + while (r); + buff[0] = 0; + + catbuf(str, buff,1); + +} + + +static void DEFUN_VOID(usage) +{ + fprintf(stderr,"usage: -[d|i|g] <file >file\n"); + exit(33); +} + +int DEFUN(main,(ac,av), +int ac AND +char *av[]) +{ + unsigned int i; + + + string_type buffer; + string_type pptr; + + + init_string(&buffer); + init_string(&pptr); + init_string(stack+0); + tos=stack+1; + ptr = &pptr; + + add_intrinsic("push_text", push_text); + add_intrinsic("!", bang); + add_intrinsic("@", atsign); + add_intrinsic("hello",hello); + add_intrinsic("skip_past_newline", skip_past_newline ); + add_intrinsic("catstr", icatstr ); + add_intrinsic("copy_past_newline", icopy_past_newline ); + add_intrinsic("dup", dup ); + add_intrinsic("remchar", remchar ); + add_intrinsic("get_stuff_in_command", get_stuff_in_command ); + add_intrinsic("get_stuff_in_angle", get_stuff_in_angle ); + add_intrinsic("do_fancy_stuff", do_fancy_stuff ); + add_intrinsic("bulletize", bulletize ); + add_intrinsic("courierize", courierize ); + add_intrinsic("swap", swap ); + add_intrinsic("outputdots", outputdots ); + add_intrinsic("exfunstuff", exfunstuff ); + add_intrinsic("maybecatstr", maybecatstr ); + add_intrinsic("translatecomments", translatecomments ); + add_intrinsic("kill_bogus_lines", kill_bogus_lines); + add_intrinsic("indent", indent); + add_intrinsic("quickref", quickref); + add_intrinsic("internalmode", internalmode); + + /* Put a nl at the start */ + catchar(&buffer,'\n'); + + read_in(&buffer, stdin); + remove_noncomments(&buffer, ptr); + for (i= 1; i < ac; i++) + { + if (av[i][0] == '-') + { + if (av[i][1] == 'f') + { + string_type b; + FILE *f; + init_string(&b); + + f = fopen(av[i+1],"r"); + if (!f) + { + fprintf(stderr,"Can't open the input file %s\n",av[i+1]); + return 33; + } + + + read_in(&b, f); + compile(b.ptr); + perform(); + } + else if (av[i][1] == 'i') + { + internal_wanted = 1; + } + } + + } + write_buffer(stack+0); + return 0; +} + + + diff --git a/newlib/libc/Makefile.am b/newlib/libc/Makefile.am new file mode 100644 index 000000000..b8e410c0c --- /dev/null +++ b/newlib/libc/Makefile.am @@ -0,0 +1,119 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +if HAVE_POSIX_DIR +POSIX_SUBDIR = posix +endif + +if HAVE_SIGNAL_DIR +SIGNAL_SUBDIR = signal +endif + +if HAVE_SYSCALL_DIR +SYSCALLS_SUBDIR = syscalls +endif + +if HAVE_UNIX_DIR +UNIX_SUBDIR = unix +endif + +# The order of SUBDIRS is important for the integrated documentation. +# Do not change the order without considering the doc impact. +SUBDIRS = stdlib ctype stdio string $(SIGNAL_SUBDIR) time locale sys reent \ + errno misc machine $(UNIX_SUBDIR) $(POSIX_SUBDIR) $(SYSCALLS_SUBDIR) . + +noinst_LIBRARIES = libc.a +noinst_DATA = $(CRT0) + +SUBLIBS = \ + stdlib/lib.a \ + ctype/lib.a \ + stdio/lib.a \ + string/lib.a \ + $(LIBC_SIGNAL_LIB) \ + time/lib.a \ + locale/lib.a \ + $(LIBC_SYS_LIB) \ + reent/lib.a \ + errno/lib.a \ + misc/lib.a \ + $(LIBC_MACHINE_LIB) \ + $(LIBC_UNIX_LIB) \ + $(LIBC_POSIX_LIB) \ + $(LIBC_SYSCALL_LIB) + +libc.a: $(SUBLIBS) + rm -f $@ + rm -rf tmp + mkdir tmp + cd tmp; \ + for i in $(SUBLIBS); do \ + $(AR) x ../$$i; \ + done; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) $@ + rm -rf tmp + +$(SUBLIBS): ; @true + +crt0.o: sys/crt0.o + rm -f $@ + ln sys/crt0.o $@ >/dev/null 2>/dev/null || cp sys/crt0.o $@ + +sys/crt0.o: ; @true + +info_TEXINFOS = libc.texinfo + +# This is a list of the stmp-def files in each subdirectory which +# builds .def files. We don't list subdirectories which don't build +# .def files; if the list of subdirectories changes, we must change +# this as well. +SUBDEFS = \ + stdlib/stmp-def \ + ctype/stmp-def \ + stdio/stmp-def \ + string/stmp-def \ + $(LIBC_SIGNAL_DEF) \ + time/stmp-def \ + locale/stmp-def \ + reent/stmp-def \ + misc/stmp-def + +libc.info: sigset.texi targetdep.tex $(SUBDEFS) + +stmp-sigset: config.status + if test -n "$(LIBC_SIGNAL_LIB)"; then \ + echo "@set SIGNALS" >tmp.texi; \ + else \ + echo "@clear SIGNALS" >tmp.texi; \ + fi + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi sigset.texi + touch $@ + +sigset.texi: stmp-sigset ; @true + +stmp-targetdep: force + rm -f tmp.texi + targetdoc=`pwd`/tmp.texi; \ + for d in $(SUBDIRS); do \ + if test "$$d" != "."; then \ + (cd $$d && $(MAKE) TARGETDOC=$${targetdoc} doc) || exit 1; \ + fi; \ + done + cat $(srcdir)/sys.tex >>tmp.texi + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi targetdep.tex + touch $@ + +targetdep.tex: stmp-targetdep ; @true + +$(SUBDEFS): stmp-targetdep ; @true + +.PHONY: force +force: + +CLEANFILES = crt0.o \ + sigset.texi stmp-sigset tmp.texi targetdep.tex stmp-targetdep + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/Makefile.in b/newlib/libc/Makefile.in new file mode 100644 index 000000000..a704b63d6 --- /dev/null +++ b/newlib/libc/Makefile.in @@ -0,0 +1,632 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +@HAVE_POSIX_DIR_TRUE@POSIX_SUBDIR = \ +@HAVE_POSIX_DIR_TRUE@posix + +@HAVE_SIGNAL_DIR_TRUE@SIGNAL_SUBDIR = \ +@HAVE_SIGNAL_DIR_TRUE@signal + +@HAVE_SYSCALL_DIR_TRUE@SYSCALLS_SUBDIR = \ +@HAVE_SYSCALL_DIR_TRUE@syscalls + +@HAVE_UNIX_DIR_TRUE@UNIX_SUBDIR = \ +@HAVE_UNIX_DIR_TRUE@unix + +# The order of SUBDIRS is important for the integrated documentation. +# Do not change the order without considering the doc impact. +SUBDIRS = stdlib ctype stdio string $(SIGNAL_SUBDIR) time locale sys reent \ + errno misc machine $(UNIX_SUBDIR) $(POSIX_SUBDIR) $(SYSCALLS_SUBDIR) . + + +noinst_LIBRARIES = libc.a +noinst_DATA = $(CRT0) + +SUBLIBS = \ + stdlib/lib.a \ + ctype/lib.a \ + stdio/lib.a \ + string/lib.a \ + $(LIBC_SIGNAL_LIB) \ + time/lib.a \ + locale/lib.a \ + $(LIBC_SYS_LIB) \ + reent/lib.a \ + errno/lib.a \ + misc/lib.a \ + $(LIBC_MACHINE_LIB) \ + $(LIBC_UNIX_LIB) \ + $(LIBC_POSIX_LIB) \ + $(LIBC_SYSCALL_LIB) + + +info_TEXINFOS = libc.texinfo + +# This is a list of the stmp-def files in each subdirectory which +# builds .def files. We don't list subdirectories which don't build +# .def files; if the list of subdirectories changes, we must change +# this as well. +SUBDEFS = \ + stdlib/stmp-def \ + ctype/stmp-def \ + stdio/stmp-def \ + string/stmp-def \ + $(LIBC_SIGNAL_DEF) \ + time/stmp-def \ + locale/stmp-def \ + reent/stmp-def \ + misc/stmp-def + + +CLEANFILES = crt0.o \ + sigset.texi stmp-sigset tmp.texi targetdep.tex stmp-targetdep + + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libc_a_LIBADD = +libc_a_SOURCES = libc.a.c +libc_a_OBJECTS = libc.a.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi` +TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex +INFO_DEPS = libc.info +DVIS = libc.dvi +TEXINFOS = libc.texinfo +DATA = $(noinst_DATA) + +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DIST_SUBDIRS = stdlib ctype stdio string signal time locale sys reent \ +errno misc machine unix posix syscalls . +SOURCES = libc.a.c +OBJECTS = libc.a.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .dvi .info .o .ps .s .texi .texinfo .txi +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ../acinclude.m4 \ + ../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libc.info: libc.texinfo +libc.dvi: libc.texinfo + + +DVIPS = dvips + +.texi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texi.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texi: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.txi.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< +.dvi.ps: + $(DVIPS) $< -o $@ + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(infodir) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$d/$$ifile; then \ + echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ + else : ; fi; \ + done; \ + done + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ + install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ + done; \ + else : ; fi + +uninstall-info: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + ii=yes; \ + else ii=; fi; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + test -z "$ii" \ + || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ + done + @$(NORMAL_UNINSTALL) + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ + done + +dist-info: $(INFO_DEPS) + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + for file in `cd $$d && eval echo $$base*`; do \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done; \ + done + +mostlyclean-aminfo: + -rm -f libc.aux libc.cp libc.cps libc.dvi libc.fn libc.fns libc.ky \ + libc.kys libc.ps libc.log libc.pg libc.toc libc.tp libc.tps \ + libc.vr libc.vrs libc.op libc.tr libc.cv libc.cn + +clean-aminfo: + +distclean-aminfo: + +maintainer-clean-aminfo: + for i in $(INFO_DEPS); do \ + rm -f $$i; \ + if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ + rm -f $$i-[0-9]*; \ + fi; \ + done +clean-info: mostlyclean-aminfo + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(DIST_SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info +info-am: $(INFO_DEPS) +info: info-recursive +dvi-am: $(DVIS) +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(DATA) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-aminfo mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-noinstLIBRARIES clean-compile clean-aminfo clean-tags \ + clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-aminfo distclean-tags distclean-generic \ + clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-aminfo \ + maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-info-am uninstall-info \ +mostlyclean-aminfo distclean-aminfo clean-aminfo \ +maintainer-clean-aminfo install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +libc.a: $(SUBLIBS) + rm -f $@ + rm -rf tmp + mkdir tmp + cd tmp; \ + for i in $(SUBLIBS); do \ + $(AR) x ../$$i; \ + done; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) $@ + rm -rf tmp + +$(SUBLIBS): ; @true + +crt0.o: sys/crt0.o + rm -f $@ + ln sys/crt0.o $@ >/dev/null 2>/dev/null || cp sys/crt0.o $@ + +sys/crt0.o: ; @true + +libc.info: sigset.texi targetdep.tex $(SUBDEFS) + +stmp-sigset: config.status + if test -n "$(LIBC_SIGNAL_LIB)"; then \ + echo "@set SIGNALS" >tmp.texi; \ + else \ + echo "@clear SIGNALS" >tmp.texi; \ + fi + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi sigset.texi + touch $@ + +sigset.texi: stmp-sigset ; @true + +stmp-targetdep: force + rm -f tmp.texi + targetdoc=`pwd`/tmp.texi; \ + for d in $(SUBDIRS); do \ + if test "$$d" != "."; then \ + (cd $$d && $(MAKE) TARGETDOC=$${targetdoc} doc) || exit 1; \ + fi; \ + done + cat $(srcdir)/sys.tex >>tmp.texi + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi targetdep.tex + touch $@ + +targetdep.tex: stmp-targetdep ; @true + +$(SUBDEFS): stmp-targetdep ; @true + +.PHONY: force +force: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/aclocal.m4 b/newlib/libc/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/configure b/newlib/libc/configure new file mode 100755 index 000000000..5fe538828 --- /dev/null +++ b/newlib/libc/configure @@ -0,0 +1,1887 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=sys.tex + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}.." + fi +else + newlib_basedir="${srcdir}/.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +subdirs="machine sys" + + +CRT0= +if test -n "${sys_dir}"; then + CRT0=crt0.o +fi + + + +LIBC_POSIX_LIB= +if test -n "${posix_dir}"; then + LIBC_POSIX_LIB=${posix_dir}/lib.a +fi + + + +if test x${posix_dir} != x; then + HAVE_POSIX_DIR_TRUE= + HAVE_POSIX_DIR_FALSE='#' +else + HAVE_POSIX_DIR_TRUE='#' + HAVE_POSIX_DIR_FALSE= +fi + +LIBC_SIGNAL_LIB= +LIBC_SIGNAL_DEF= +if test -n "${signal_dir}"; then + LIBC_SIGNAL_LIB=${signal_dir}/lib.a + LIBC_SIGNAL_DEF=${signal_dir}/stmp-def +fi + + + + +if test x${signal_dir} != x; then + HAVE_SIGNAL_DIR_TRUE= + HAVE_SIGNAL_DIR_FALSE='#' +else + HAVE_SIGNAL_DIR_TRUE='#' + HAVE_SIGNAL_DIR_FALSE= +fi + +LIBC_SYSCALL_LIB= +if test -n "${syscall_dir}"; then + LIBC_SYSCALL_LIB=${syscall_dir}/lib.a +fi + + + +if test x${syscall_dir} != x; then + HAVE_SYSCALL_DIR_TRUE= + HAVE_SYSCALL_DIR_FALSE='#' +else + HAVE_SYSCALL_DIR_TRUE='#' + HAVE_SYSCALL_DIR_FALSE= +fi + +LIBC_UNIX_LIB= +if test -n "${unix_dir}"; then + LIBC_UNIX_LIB=${unix_dir}/lib.a +fi + + + +if test x${unix_dir} != x; then + HAVE_UNIX_DIR_TRUE= + HAVE_UNIX_DIR_FALSE='#' +else + HAVE_UNIX_DIR_TRUE='#' + HAVE_UNIX_DIR_FALSE= +fi + + +LIBC_SYS_LIB= +if test -n "${sys_dir}"; then + LIBC_SYS_LIB=sys/lib.a +fi + + +LIBC_MACHINE_LIB= +if test -n "${machine_dir}"; then + LIBC_MACHINE_LIB=machine/lib.a +fi + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile ctype/Makefile errno/Makefile locale/Makefile misc/Makefile reent/Makefile stdio/Makefile stdlib/Makefile string/Makefile time/Makefile posix/Makefile signal/Makefile syscalls/Makefile unix/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@subdirs@%$subdirs%g +s%@CRT0@%$CRT0%g +s%@LIBC_POSIX_LIB@%$LIBC_POSIX_LIB%g +s%@HAVE_POSIX_DIR_TRUE@%$HAVE_POSIX_DIR_TRUE%g +s%@HAVE_POSIX_DIR_FALSE@%$HAVE_POSIX_DIR_FALSE%g +s%@LIBC_SIGNAL_LIB@%$LIBC_SIGNAL_LIB%g +s%@LIBC_SIGNAL_DEF@%$LIBC_SIGNAL_DEF%g +s%@HAVE_SIGNAL_DIR_TRUE@%$HAVE_SIGNAL_DIR_TRUE%g +s%@HAVE_SIGNAL_DIR_FALSE@%$HAVE_SIGNAL_DIR_FALSE%g +s%@LIBC_SYSCALL_LIB@%$LIBC_SYSCALL_LIB%g +s%@HAVE_SYSCALL_DIR_TRUE@%$HAVE_SYSCALL_DIR_TRUE%g +s%@HAVE_SYSCALL_DIR_FALSE@%$HAVE_SYSCALL_DIR_FALSE%g +s%@LIBC_UNIX_LIB@%$LIBC_UNIX_LIB%g +s%@HAVE_UNIX_DIR_TRUE@%$HAVE_UNIX_DIR_TRUE%g +s%@HAVE_UNIX_DIR_FALSE@%$HAVE_UNIX_DIR_FALSE%g +s%@LIBC_SYS_LIB@%$LIBC_SYS_LIB%g +s%@LIBC_MACHINE_LIB@%$LIBC_MACHINE_LIB%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile ctype/Makefile errno/Makefile locale/Makefile misc/Makefile reent/Makefile stdio/Makefile stdlib/Makefile string/Makefile time/Makefile posix/Makefile signal/Makefile syscalls/Makefile unix/Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + +if test "$no_recursion" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $ac_configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in machine sys; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$ac_config_dir; then + continue + fi + + echo configuring in $ac_config_dir + + case "$srcdir" in + .) ;; + *) + if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; + else + { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd $ac_config_dir + + # A "../" for each directory in /$ac_config_dir. + ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` + + case "$srcdir" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + /*) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_config_dir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + elif test -f $ac_sub_srcdir/configure.in; then + ac_sub_configure=$ac_configure + else + echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + + # Make the cache file name correct relative to the subdirectory. + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir + then : + else + { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } + fi + fi + + cd $ac_popdir + done +fi + diff --git a/newlib/libc/configure.in b/newlib/libc/configure.in new file mode 100644 index 000000000..19d0f2196 --- /dev/null +++ b/newlib/libc/configure.in @@ -0,0 +1,70 @@ +dnl This is the newlib/libc configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(sys.tex) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../..) + +NEWLIB_CONFIGURE(..) + +AC_CONFIG_SUBDIRS(machine sys) + +CRT0= +if test -n "${sys_dir}"; then + CRT0=crt0.o +fi +AC_SUBST(CRT0) + +dnl For each directory which we may or may not want, we define a name +dnl for the library and an automake conditional for whether we should +dnl build the library. + +LIBC_POSIX_LIB= +if test -n "${posix_dir}"; then + LIBC_POSIX_LIB=${posix_dir}/lib.a +fi +AC_SUBST(LIBC_POSIX_LIB) +AM_CONDITIONAL(HAVE_POSIX_DIR, test x${posix_dir} != x) + +LIBC_SIGNAL_LIB= +LIBC_SIGNAL_DEF= +if test -n "${signal_dir}"; then + LIBC_SIGNAL_LIB=${signal_dir}/lib.a + LIBC_SIGNAL_DEF=${signal_dir}/stmp-def +fi +AC_SUBST(LIBC_SIGNAL_LIB) +AC_SUBST(LIBC_SIGNAL_DEF) +AM_CONDITIONAL(HAVE_SIGNAL_DIR, test x${signal_dir} != x) + +LIBC_SYSCALL_LIB= +if test -n "${syscall_dir}"; then + LIBC_SYSCALL_LIB=${syscall_dir}/lib.a +fi +AC_SUBST(LIBC_SYSCALL_LIB) +AM_CONDITIONAL(HAVE_SYSCALL_DIR, test x${syscall_dir} != x) + +LIBC_UNIX_LIB= +if test -n "${unix_dir}"; then + LIBC_UNIX_LIB=${unix_dir}/lib.a +fi +AC_SUBST(LIBC_UNIX_LIB) +AM_CONDITIONAL(HAVE_UNIX_DIR, test x${unix_dir} != x) + +dnl We always recur into sys and machine, and let them decide what to +dnl do. However, we do need to know whether they will produce a library. + +LIBC_SYS_LIB= +if test -n "${sys_dir}"; then + LIBC_SYS_LIB=sys/lib.a +fi +AC_SUBST(LIBC_SYS_LIB) + +LIBC_MACHINE_LIB= +if test -n "${machine_dir}"; then + LIBC_MACHINE_LIB=machine/lib.a +fi +AC_SUBST(LIBC_MACHINE_LIB) + +AC_OUTPUT(Makefile ctype/Makefile errno/Makefile locale/Makefile misc/Makefile reent/Makefile stdio/Makefile stdlib/Makefile string/Makefile time/Makefile posix/Makefile signal/Makefile syscalls/Makefile unix/Makefile) diff --git a/newlib/libc/ctype/Makefile.am b/newlib/libc/ctype/Makefile.am new file mode 100644 index 000000000..4aab995a5 --- /dev/null +++ b/newlib/libc/ctype/Makefile.am @@ -0,0 +1,57 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + ctype_.c \ + isalnum.c \ + isalpha.c \ + isascii.c \ + iscntrl.c \ + isdigit.c \ + islower.c \ + isupper.c \ + isprint.c \ + ispunct.c \ + isspace.c \ + isxdigit.c \ + toascii.c \ + tolower.c \ + toupper.c \ + _tolower.c \ + _toupper.c + +CHEWOUT_FILES= \ + isalnum.def \ + isalpha.def \ + isascii.def \ + iscntrl.def \ + isdigit.def \ + islower.def \ + isprint.def \ + ispunct.def \ + isspace.def \ + isupper.def \ + isxdigit.def \ + toascii.def \ + tolower.def \ + toupper.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/ctype.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/ctype/Makefile.in b/newlib/libc/ctype/Makefile.in new file mode 100644 index 000000000..17a4f8d5f --- /dev/null +++ b/newlib/libc/ctype/Makefile.in @@ -0,0 +1,332 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + ctype_.c \ + isalnum.c \ + isalpha.c \ + isascii.c \ + iscntrl.c \ + isdigit.c \ + islower.c \ + isupper.c \ + isprint.c \ + ispunct.c \ + isspace.c \ + isxdigit.c \ + toascii.c \ + tolower.c \ + toupper.c \ + _tolower.c \ + _toupper.c + + +CHEWOUT_FILES = \ + isalnum.def \ + isalpha.def \ + isascii.def \ + iscntrl.def \ + isdigit.def \ + islower.def \ + isprint.def \ + ispunct.def \ + isspace.def \ + isupper.def \ + isxdigit.def \ + toascii.def \ + tolower.def \ + toupper.def + + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = ctype_.o isalnum.o isalpha.o isascii.o iscntrl.o \ +isdigit.o islower.o isupper.o isprint.o ispunct.o isspace.o isxdigit.o \ +toascii.o tolower.o toupper.o _tolower.o _toupper.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus ctype/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = ctype + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/ctype.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/ctype/_tolower.c b/newlib/libc/ctype/_tolower.c new file mode 100644 index 000000000..968dcf738 --- /dev/null +++ b/newlib/libc/ctype/_tolower.c @@ -0,0 +1,9 @@ +#include <_ansi.h> +#include <ctype.h> + +#undef _tolower +int +_DEFUN(_tolower,(c),int c) +{ + return isupper(c) ? (c) - 'A' + 'a' : c; +} diff --git a/newlib/libc/ctype/_toupper.c b/newlib/libc/ctype/_toupper.c new file mode 100644 index 000000000..db4e00dd0 --- /dev/null +++ b/newlib/libc/ctype/_toupper.c @@ -0,0 +1,9 @@ +#include <_ansi.h> +#include <ctype.h> + +#undef _toupper +int +_DEFUN(_toupper,(c),int c) +{ + return islower(c) ? c - 'a' + 'A' : c; +} diff --git a/newlib/libc/ctype/ctype.tex b/newlib/libc/ctype/ctype.tex new file mode 100644 index 000000000..a0971d88c --- /dev/null +++ b/newlib/libc/ctype/ctype.tex @@ -0,0 +1,68 @@ +@node Ctype +@chapter Character Type Macros and Functions (@file{ctype.h}) +This chapter groups macros (which are also available as subroutines) +to classify characters into several categories (alphabetic, +numeric, control characters, whitespace, and so on), or to perform +simple character mappings. + +The header file @file{ctype.h} defines the macros. +@menu +* isalnum:: Alphanumeric character predicate +* isalpha:: Alphabetic character predicate +* isascii:: ASCII character predicate +* iscntrl:: Control character predicate +* isdigit:: Decimal digit predicate +* islower:: Lower-case character predicate +* isprint:: Printable character predicates (isprint, isgraph) +* ispunct:: Punctuation character predicate +* isspace:: Whitespace character predicate +* isupper:: Uppercase character predicate +* isxdigit:: Hexadecimal digit predicate +* toascii:: Force integers to ASCII range +* tolower:: Translate characters to lower case +* toupper:: Translate characters to upper case +@end menu + +@page +@include ctype/isalnum.def + +@page +@include ctype/isalpha.def + +@page +@include ctype/isascii.def + +@page +@include ctype/iscntrl.def + +@page +@include ctype/isdigit.def + +@page +@include ctype/islower.def + +@page +@include ctype/isprint.def + +@page +@include ctype/ispunct.def + +@page +@include ctype/isspace.def + +@page +@include ctype/isupper.def + +@page +@include ctype/isxdigit.def + +@page +@include ctype/toascii.def + +@page +@include ctype/tolower.def + +@page +@include ctype/toupper.def + + diff --git a/newlib/libc/ctype/ctype_.c b/newlib/libc/ctype/ctype_.c new file mode 100644 index 000000000..45fcaa767 --- /dev/null +++ b/newlib/libc/ctype/ctype_.c @@ -0,0 +1,62 @@ +/* + * Copyright (c) 1989 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)ctype_.c 5.6 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <ctype.h> + +#if defined(__CYGWIN__) || defined(__CYGWIN32__) +_CONST char __declspec(dllexport) _ctype_[1 + 256] = { +#else +_CONST char _ctype_[1 + 256] = { +#endif + 0, + _C, _C, _C, _C, _C, _C, _C, _C, + _C, _C|_S, _C|_S, _C|_S, _C|_S, _C|_S, _C, _C, + _C, _C, _C, _C, _C, _C, _C, _C, + _C, _C, _C, _C, _C, _C, _C, _C, + _S|_B, _P, _P, _P, _P, _P, _P, _P, + _P, _P, _P, _P, _P, _P, _P, _P, + _N, _N, _N, _N, _N, _N, _N, _N, + _N, _N, _P, _P, _P, _P, _P, _P, + _P, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U|_X, _U, + _U, _U, _U, _U, _U, _U, _U, _U, + _U, _U, _U, _U, _U, _U, _U, _U, + _U, _U, _U, _P, _P, _P, _P, _P, + _P, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L|_X, _L, + _L, _L, _L, _L, _L, _L, _L, _L, + _L, _L, _L, _L, _L, _L, _L, _L, + _L, _L, _L, _P, _P, _P, _P, _C +}; diff --git a/newlib/libc/ctype/isalnum.c b/newlib/libc/ctype/isalnum.c new file mode 100644 index 000000000..7e05bd1a2 --- /dev/null +++ b/newlib/libc/ctype/isalnum.c @@ -0,0 +1,46 @@ +/* +FUNCTION + <<isalnum>>---alphanumeric character predicate + +INDEX + isalnum + +ANSI_SYNOPSIS + #include <ctype.h> + int isalnum(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int isalnum(<[c]>); + + +DESCRIPTION +<<isalnum>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for alphabetic or +numeric ASCII characters, and <<0>> for other arguments. It is defined +for all integer values. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isalnum>>'. + +RETURNS +<<isalnum>> returns non-zero if <[c]> is a letter (<<a>>--<<z>> or +<<A>>--<<Z>>) or a digit (<<0>>--<<9>>). + +PORTABILITY +<<isalnum>> is ANSI C. + +No OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + +#undef isalnum + +int +_DEFUN(isalnum,(c),int c) +{ + return((_ctype_ + 1)[c] & (_U|_L|_N)); +} + diff --git a/newlib/libc/ctype/isalpha.c b/newlib/libc/ctype/isalpha.c new file mode 100644 index 000000000..35f14d396 --- /dev/null +++ b/newlib/libc/ctype/isalpha.c @@ -0,0 +1,44 @@ +/* +FUNCTION + <<isalpha>>---alphabetic character predicate + +INDEX + isalpha + +ANSI_SYNOPSIS + #include <ctype.h> + int isalpha(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int isalpha(<[c]>); + +DESCRIPTION +<<isalpha>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero when <[c]> represents an +alphabetic ASCII character, and 0 otherwise. It is defined only when +<<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isalpha>>'. + +RETURNS +<<isalpha>> returns non-zero if <[c]> is a letter (<<A>>--<<Z>> or +<<a>>--<<z>>). + +PORTABILITY +<<isalpha>> is ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + +#undef isalpha +int +_DEFUN(isalpha,(c),int c) +{ + return((_ctype_ + 1)[c] & (_U|_L)); +} + diff --git a/newlib/libc/ctype/isascii.c b/newlib/libc/ctype/isascii.c new file mode 100644 index 000000000..109fd3ace --- /dev/null +++ b/newlib/libc/ctype/isascii.c @@ -0,0 +1,43 @@ +/* +FUNCTION + <<isascii>>---ASCII character predicate + +INDEX + isascii + +ANSI_SYNOPSIS + #include <ctype.h> + int isascii(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int isascii(<[c]>); + +DESCRIPTION +<<isascii>> is a macro which returns non-zero when <[c]> is an ASCII +character, and 0 otherwise. It is defined for all integer values. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isascii>>'. + +RETURNS +<<isascii>> returns non-zero if the low order byte of <[c]> is in the range +0 to 127 (<<0x00>>--<<0x7F>>). + +PORTABILITY +<<isascii>> is ANSI C. + +No supporting OS subroutines are required. +*/ +#include <_ansi.h> +#include <ctype.h> + + + +#undef isascii + +int +_DEFUN(isascii,(c),int c) +{ + return c >= 0 && c< 128; +} diff --git a/newlib/libc/ctype/iscntrl.c b/newlib/libc/ctype/iscntrl.c new file mode 100644 index 000000000..7b6da349d --- /dev/null +++ b/newlib/libc/ctype/iscntrl.c @@ -0,0 +1,48 @@ + +/* +FUNCTION + <<iscntrl>>---control character predicate + +INDEX + iscntrl + +ANSI_SYNOPSIS + #include <ctype.h> + int iscntrl(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int iscntrl(<[c]>); + +DESCRIPTION +<<iscntrl>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for control characters, and 0 +for other characters. It is defined only when <<isascii>>(<[c]>) is +true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef iscntrl>>'. + +RETURNS +<<iscntrl>> returns non-zero if <[c]> is a delete character or ordinary +control character (<<0x7F>> or <<0x00>>--<<0x1F>>). + +PORTABILITY +<<iscntrl>> is ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + + + +#undef iscntrl +int +_DEFUN(iscntrl,(c),int c) +{ + return((_ctype_ + 1)[c] & _C); +} + + diff --git a/newlib/libc/ctype/isdigit.c b/newlib/libc/ctype/isdigit.c new file mode 100644 index 000000000..5c21898e6 --- /dev/null +++ b/newlib/libc/ctype/isdigit.c @@ -0,0 +1,43 @@ +/* +FUNCTION +<<isdigit>>---decimal digit predicate + +INDEX +isdigit + +ANSI_SYNOPSIS +#include <ctype.h> +int isdigit(int <[c]>); + +TRAD_SYNOPSIS +#include <ctype.h> +int isdigit(<[c]>); + +DESCRIPTION +<<isdigit>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for decimal digits, and 0 for +other characters. It is defined only when <<isascii>>(<[c]>) is true +or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isdigit>>'. + +RETURNS +<<isdigit>> returns non-zero if <[c]> is a decimal digit (<<0>>--<<9>>). + +PORTABILITY +<<isdigit>> is ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + + +#undef isdigit +int +_DEFUN(isdigit,(c),int c) +{ + return((_ctype_ + 1)[c] & _N); +} diff --git a/newlib/libc/ctype/islower.c b/newlib/libc/ctype/islower.c new file mode 100644 index 000000000..81ad0bb27 --- /dev/null +++ b/newlib/libc/ctype/islower.c @@ -0,0 +1,43 @@ + +/* +FUNCTION +<<islower>>---lower-case character predicate + +INDEX +islower + +ANSI_SYNOPSIS +#include <ctype.h> +int islower(int <[c]>); + +TRAD_SYNOPSIS +#include <ctype.h> +int islower(<[c]>); + +DESCRIPTION +<<islower>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for minuscules +(lower-case alphabetic characters), and 0 for other characters. +It is defined only when <<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef islower>>'. + +RETURNS +<<islower>> returns non-zero if <[c]> is a lower case letter (<<a>>--<<z>>). + +PORTABILITY +<<islower>> is ANSI C. + +No supporting OS subroutines are required. +*/ +#include <_ansi.h> +#include <ctype.h> + +#undef islower +int +_DEFUN(islower,(c),int c) +{ + return((_ctype_ + 1)[c] & _L); +} + diff --git a/newlib/libc/ctype/isprint.c b/newlib/libc/ctype/isprint.c new file mode 100644 index 000000000..2ff00f4e3 --- /dev/null +++ b/newlib/libc/ctype/isprint.c @@ -0,0 +1,60 @@ + +/* +FUNCTION + <<isprint>>, <<isgraph>>---printable character predicates + +INDEX + isprint +INDEX + isgraph + +ANSI_SYNOPSIS + #include <ctype.h> + int isprint(int <[c]>); + int isgraph(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int isprint(<[c]>); + int isgraph(<[c]>); + + +DESCRIPTION +<<isprint>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for printable +characters, and 0 for other character arguments. +It is defined only when <<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining either macro using `<<#undef isprint>>' or `<<#undef isgraph>>'. + +RETURNS +<<isprint>> returns non-zero if <[c]> is a printing character, +(<<0x20>>--<<0x7E>>). +<<isgraph>> behaves identically to <<isprint>>, except that the space +character (<<0x20>>) is excluded. + +PORTABILITY +<<isprint>> and <<isgraph>> are ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + +#undef isgraph +int +_DEFUN(isgraph,(c),int c) +{ + return((_ctype_ + 1)[c] & (_P|_U|_L|_N)); +} + + +#undef isprint +int +_DEFUN(isprint,(c),int c) +{ + return((_ctype_ + 1)[c] & (_P|_U|_L|_N|_B)); +} + diff --git a/newlib/libc/ctype/ispunct.c b/newlib/libc/ctype/ispunct.c new file mode 100644 index 000000000..c5679323c --- /dev/null +++ b/newlib/libc/ctype/ispunct.c @@ -0,0 +1,46 @@ + +/* +FUNCTION +<<ispunct>>---punctuation character predicate + +INDEX +ispunct + +ANSI_SYNOPSIS +#include <ctype.h> +int ispunct(int <[c]>); + +TRAD_SYNOPSIS +#include <ctype.h> +int ispunct(<[c]>); + +DESCRIPTION +<<ispunct>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for printable +punctuation characters, and 0 for other characters. It is defined +only when <<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef ispunct>>'. + +RETURNS +<<ispunct>> returns non-zero if <[c]> is a printable punctuation character +(<<isgraph(<[c]>) && !isalnum(<[c]>)>>). + +PORTABILITY +<<ispunct>> is ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + + +#undef ispunct +int +_DEFUN(ispunct,(c),int c) +{ + return((_ctype_ + 1)[c] & _P); +} + diff --git a/newlib/libc/ctype/isspace.c b/newlib/libc/ctype/isspace.c new file mode 100644 index 000000000..1bc0798a2 --- /dev/null +++ b/newlib/libc/ctype/isspace.c @@ -0,0 +1,44 @@ + +/* +FUNCTION + <<isspace>>---whitespace character predicate + +INDEX + isspace + +ANSI_SYNOPSIS + #include <ctype.h> + int isspace(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int isspace(<[c]>); + +DESCRIPTION +<<isspace>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for whitespace +characters, and 0 for other characters. It is defined only when <<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isspace>>'. + +RETURNS +<<isspace>> returns non-zero if <[c]> is a space, tab, carriage return, new +line, vertical tab, or formfeed (<<0x09>>--<<0x0D>>, <<0x20>>). + +PORTABILITY +<<isspace>> is ANSI C. + +No supporting OS subroutines are required. +*/ +#include <_ansi.h> +#include <ctype.h> + + +#undef isspace +int +_DEFUN(isspace,(c),int c) +{ + return((_ctype_ + 1)[c] & _S); +} + diff --git a/newlib/libc/ctype/isupper.c b/newlib/libc/ctype/isupper.c new file mode 100644 index 000000000..8127e25da --- /dev/null +++ b/newlib/libc/ctype/isupper.c @@ -0,0 +1,43 @@ + +/* +FUNCTION +<<isupper>>---uppercase character predicate + +INDEX +isupper + +ANSI_SYNOPSIS +#include <ctype.h> +int isupper(int <[c]>); + +TRAD_SYNOPSIS +#include <ctype.h> +int isupper(<[c]>); + +DESCRIPTION +<<isupper>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for upper-case letters +(<<A>>--<<Z>>), and 0 for other characters. It is defined only when +<<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isupper>>'. + +RETURNS +<<isupper>> returns non-zero if <[c]> is a upper case letter (A-Z). + +PORTABILITY +<<isupper>> is ANSI C. + +No supporting OS subroutines are required. +*/ +#include <_ansi.h> +#include <ctype.h> + +#undef isupper +int +_DEFUN(isupper,(c),int c) +{ + return((_ctype_ + 1)[c] & _U); +} + diff --git a/newlib/libc/ctype/isxdigit.c b/newlib/libc/ctype/isxdigit.c new file mode 100644 index 000000000..f8a035f37 --- /dev/null +++ b/newlib/libc/ctype/isxdigit.c @@ -0,0 +1,45 @@ + +/* +FUNCTION +<<isxdigit>>---hexadecimal digit predicate + +INDEX +isxdigit + +ANSI_SYNOPSIS +#include <ctype.h> +int isxdigit(int <[c]>); + +TRAD_SYNOPSIS +#include <ctype.h> +int isxdigit(int <[c]>); + +DESCRIPTION +<<isxdigit>> is a macro which classifies ASCII integer values by table +lookup. It is a predicate returning non-zero for hexadecimal digits, +and <<0>> for other characters. It is defined only when +<<isascii>>(<[c]>) is true or <[c]> is EOF. + +You can use a compiled subroutine instead of the macro definition by +undefining the macro using `<<#undef isxdigit>>'. + +RETURNS +<<isxdigit>> returns non-zero if <[c]> is a hexadecimal digit +(<<0>>--<<9>>, <<a>>--<<f>>, or <<A>>--<<F>>). + +PORTABILITY +<<isxdigit>> is ANSI C. + +No supporting OS subroutines are required. +*/ +#include <_ansi.h> +#include <ctype.h> + + +#undef isxdigit +int +_DEFUN(isxdigit,(c),int c) +{ + return((_ctype_ + 1)[c] & ((_X)|(_N))); +} + diff --git a/newlib/libc/ctype/toascii.c b/newlib/libc/ctype/toascii.c new file mode 100644 index 000000000..4506f355d --- /dev/null +++ b/newlib/libc/ctype/toascii.c @@ -0,0 +1,41 @@ +/* +FUNCTION + <<toascii>>---force integers to ASCII range + +INDEX + toascii + +ANSI_SYNOPSIS + #include <ctype.h> + int toascii(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int toascii(<[c]>); + int (<[c]>); + +DESCRIPTION +<<toascii>> is a macro which coerces integers to the ASCII range (0--127) by zeroing any higher-order bits. + +You can use a compiled subroutine instead of the macro definition by +undefining this macro using `<<#undef toascii>>'. + +RETURNS +<<toascii>> returns integers between 0 and 127. + +PORTABILITY +<<toascii>> is not ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> +#undef toascii + +int +_DEFUN(toascii,(c),int c) +{ + return (c)&0177; +} + diff --git a/newlib/libc/ctype/tolower.c b/newlib/libc/ctype/tolower.c new file mode 100644 index 000000000..e43fa6c9d --- /dev/null +++ b/newlib/libc/ctype/tolower.c @@ -0,0 +1,55 @@ +/* +FUNCTION + <<tolower>>---translate characters to lower case + +INDEX + tolower +INDEX + _tolower + +ANSI_SYNOPSIS + #include <ctype.h> + int tolower(int <[c]>); + int _tolower(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int tolower(<[c]>); + int _tolower(<[c]>); + + +DESCRIPTION +<<tolower>> is a macro which converts upper-case characters to lower +case, leaving all other characters unchanged. It is only defined when +<[c]> is an integer in the range <<EOF>> to <<255>>. + +You can use a compiled subroutine instead of the macro definition by +undefining this macro using `<<#undef tolower>>'. + +<<_tolower>> performs the same conversion as <<tolower>>, but should +only be used when <[c]> is known to be an uppercase character (<<A>>--<<Z>>). + +RETURNS +<<tolower>> returns the lower-case equivalent of <[c]> when it is a +character between <<A>> and <<Z>>, and <[c]> otherwise. + +<<_tolower>> returns the lower-case equivalent of <[c]> when it is a +character between <<A>> and <<Z>>. If <[c]> is not one of these +characters, the behaviour of <<_tolower>> is undefined. + +PORTABILITY +<<tolower>> is ANSI C. <<_tolower>> is not recommended for portable +programs. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + +#undef tolower +int +_DEFUN(tolower,(c),int c) +{ + return isupper(c) ? (c) - 'A' + 'a' : c; +} diff --git a/newlib/libc/ctype/toupper.c b/newlib/libc/ctype/toupper.c new file mode 100644 index 000000000..7977beb79 --- /dev/null +++ b/newlib/libc/ctype/toupper.c @@ -0,0 +1,54 @@ +/* +FUNCTION + <<toupper>>---translate characters to upper case + +INDEX + toupper +INDEX + _toupper + +ANSI_SYNOPSIS + #include <ctype.h> + int toupper(int <[c]>); + int _toupper(int <[c]>); + +TRAD_SYNOPSIS + #include <ctype.h> + int toupper(<[c]>); + int _toupper(<[c]>); + + +DESCRIPTION +<<toupper>> is a macro which converts lower-case characters to upper +case, leaving all other characters unchanged. It is only defined when +<[c]> is an integer in the range <<EOF>> to <<255>>. + +You can use a compiled subroutine instead of the macro definition by +undefining this macro using `<<#undef toupper>>'. + +<<_toupper>> performs the same conversion as <<toupper>>, but should +only be used when <[c]> is known to be a lowercase character (<<a>>--<<z>>). + +RETURNS +<<toupper>> returns the upper-case equivalent of <[c]> when it is a +character between <<a>> and <<z>>, and <[c]> otherwise. + +<<_toupper>> returns the upper-case equivalent of <[c]> when it is a +character between <<a>> and <<z>>. If <[c]> is not one of these +characters, the behaviour of <<_toupper>> is undefined. + +PORTABILITY +<<toupper>> is ANSI C. <<_toupper>> is not recommended for portable programs. + +No supporting OS subroutines are required. +*/ + +#include <_ansi.h> +#include <ctype.h> + +#undef toupper +int +_DEFUN(toupper,(c),int c) +{ + return islower(c) ? c - 'a' + 'A' : c; +} diff --git a/newlib/libc/errno/Makefile.am b/newlib/libc/errno/Makefile.am new file mode 100644 index 000000000..67038849a --- /dev/null +++ b/newlib/libc/errno/Makefile.am @@ -0,0 +1,26 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = errno.c + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +# No doc for errno. +doc: + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/errno/Makefile.in b/newlib/libc/errno/Makefile.in new file mode 100644 index 000000000..d4073b7d8 --- /dev/null +++ b/newlib/libc/errno/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = errno.c + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = errno.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus errno/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = errno + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +# No doc for errno. +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/errno/errno.c b/newlib/libc/errno/errno.c new file mode 100644 index 000000000..fd1743d73 --- /dev/null +++ b/newlib/libc/errno/errno.c @@ -0,0 +1,16 @@ +/* The errno variable is stored in the reentrancy structure. This + function returns its address for use by the macro errno defined in + errno.h. */ + +#include <errno.h> +#include <reent.h> + +#ifndef _REENT_ONLY + +int * +__errno () +{ + return &_REENT->_errno; +} + +#endif diff --git a/newlib/libc/include/_ansi.h b/newlib/libc/include/_ansi.h new file mode 100644 index 000000000..b4dc01105 --- /dev/null +++ b/newlib/libc/include/_ansi.h @@ -0,0 +1,71 @@ +/* Provide support for both ANSI and non-ANSI environments. */ + +/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be + relied upon to have it's intended meaning. Therefore we must use our own + concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib + sources! + + To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will + "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header + files aren't affected). */ + +#ifndef _ANSIDECL_H_ +#define _ANSIDECL_H_ + +#include <sys/config.h> + +/* First try to figure out whether we really are in an ANSI C environment. */ +/* FIXME: This probably needs some work. Perhaps sys/config.h can be + prevailed upon to give us a clue. */ + +#ifdef __STDC__ +#define _HAVE_STDC +#endif + +#ifdef _HAVE_STDC +#define _PTR void * +#define _AND , +#define _NOARGS void +#define _CONST const +#define _VOLATILE volatile +#define _SIGNED signed +#define _DOTS , ... +#define _VOID void +#define _EXFUN(name, proto) name proto +#define _DEFUN(name, arglist, args) name(args) +#define _DEFUN_VOID(name) name(_NOARGS) +#define _CAST_VOID (void) +#ifndef _LONG_DOUBLE +#define _LONG_DOUBLE long double +#endif +#ifndef _PARAMS +#define _PARAMS(paramlist) paramlist +#endif +#else +#define _PTR char * +#define _AND ; +#define _NOARGS +#define _CONST +#define _VOLATILE +#define _SIGNED +#define _DOTS +#define _VOID void +#define _EXFUN(name, proto) name() +#define _DEFUN(name, arglist, args) name arglist args; +#define _DEFUN_VOID(name) name() +#define _CAST_VOID +#define _LONG_DOUBLE double +#ifndef _PARAMS +#define _PARAMS(paramlist) () +#endif +#endif + +/* Support gcc's __attribute__ facility. */ + +#ifdef __GNUC__ +#define _ATTRIBUTE(attrs) __attribute__ (attrs) +#else +#define _ATTRIBUTE(attrs) +#endif + +#endif /* _ANSIDECL_H_ */ diff --git a/newlib/libc/include/_syslist.h b/newlib/libc/include/_syslist.h new file mode 100644 index 000000000..fa552fb60 --- /dev/null +++ b/newlib/libc/include/_syslist.h @@ -0,0 +1,29 @@ +/* internal use only -- mapping of "system calls" for libraries that lose + and only provide C names, so that we end up in violation of ANSI */ +#ifndef __SYSLIST_H +#define __SYSLIST_H +#ifdef MISSING_SYSCALL_NAMES +#define _close close +#define _execve execve +#define _fcntl fcntl +#define _fork fork +#define _fstat fstat +#define _getpid getpid +#define _gettimeofday gettimeofday +#define _kill kill +#define _link link +#define _lseek lseek +#define _open open +#define _read read +#define _sbrk sbrk +#define _stat stat +#define _times times +#define _unlink unlink +#define _wait wait +#define _write write +/* functions not yet sysfaked */ +#define _opendir opendir +#define _readdir readdir +#define _closedir closedir +#endif +#endif diff --git a/newlib/libc/include/ar.h b/newlib/libc/include/ar.h new file mode 100644 index 000000000..ac2e4ca92 --- /dev/null +++ b/newlib/libc/include/ar.h @@ -0,0 +1,69 @@ +/* $NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $ */ + +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * This code is derived from software contributed to Berkeley by + * Hugh Smith at The University of Guelph. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)ar.h 8.2 (Berkeley) 1/21/94 + */ + +#ifndef _AR_H_ +#define _AR_H_ + +/* Pre-4BSD archives had these magic numbers in them. */ +#define OARMAG1 0177555 +#define OARMAG2 0177545 + +#define ARMAG "!<arch>\n" /* ar "magic number" */ +#define SARMAG 8 /* strlen(ARMAG); */ + +#define AR_EFMT1 "#1/" /* extended format #1 */ + +struct ar_hdr { + char ar_name[16]; /* name */ + char ar_date[12]; /* modification time */ + char ar_uid[6]; /* user id */ + char ar_gid[6]; /* group id */ + char ar_mode[8]; /* octal file permissions */ + char ar_size[10]; /* size in bytes */ +#define ARFMAG "`\n" + char ar_fmag[2]; /* consistency check */ +}; + +#endif /* !_AR_H_ */ diff --git a/newlib/libc/include/assert.h b/newlib/libc/include/assert.h new file mode 100644 index 000000000..b681a8518 --- /dev/null +++ b/newlib/libc/include/assert.h @@ -0,0 +1,29 @@ +/* + assert.h +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "_ansi.h" + +#undef assert + +#ifdef NDEBUG /* required by ANSI standard */ +#define assert(p) ((void)0) +#else + +#ifdef __STDC__ +#define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, #e)) +#else /* PCC */ +#define assert(e) ((e) ? (void)0 : __assert(__FILE__, __LINE__, "e")) +#endif + +#endif /* NDEBUG */ + +void _EXFUN(__assert,(const char *, int, const char *)); + +#ifdef __cplusplus +} +#endif diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h new file mode 100644 index 000000000..224b703ad --- /dev/null +++ b/newlib/libc/include/ctype.h @@ -0,0 +1,73 @@ +#ifndef _CTYPE_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _CTYPE_H_ + +#include "_ansi.h" + +int _EXFUN(isalnum, (int __c)); +int _EXFUN(isalpha, (int __c)); +int _EXFUN(iscntrl, (int __c)); +int _EXFUN(isdigit, (int __c)); +int _EXFUN(isgraph, (int __c)); +int _EXFUN(islower, (int __c)); +int _EXFUN(isprint, (int __c)); +int _EXFUN(ispunct, (int __c)); +int _EXFUN(isspace, (int __c)); +int _EXFUN(isupper, (int __c)); +int _EXFUN(isxdigit,(int __c)); +int _EXFUN(tolower, (int __c)); +int _EXFUN(toupper, (int __c)); + +#ifndef __STRICT_ANSI__ +int _EXFUN(isascii, (int __c)); +int _EXFUN(toascii, (int __c)); +int _EXFUN(_tolower, (int __c)); +int _EXFUN(_toupper, (int __c)); +#endif + +#define _U 01 +#define _L 02 +#define _N 04 +#define _S 010 +#define _P 020 +#define _C 040 +#define _X 0100 +#define _B 0200 + +#if !defined(__CYGWIN32__) || defined(__INSIDE_CYGWIN__) || defined(_COMPILING_NEWLIB) +extern _CONST char _ctype_[]; +#else +extern _CONST char _ctype_[] __declspec(dllimport); +#endif + +#define isalpha(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L)) +#define isupper(c) ((_ctype_+1)[(unsigned)(c)]&_U) +#define islower(c) ((_ctype_+1)[(unsigned)(c)]&_L) +#define isdigit(c) ((_ctype_+1)[(unsigned)(c)]&_N) +#define isxdigit(c) ((_ctype_+1)[(unsigned)(c)]&(_X|_N)) +#define isspace(c) ((_ctype_+1)[(unsigned)(c)]&_S) +#define ispunct(c) ((_ctype_+1)[(unsigned)(c)]&_P) +#define isalnum(c) ((_ctype_+1)[(unsigned)(c)]&(_U|_L|_N)) +#define isprint(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N|_B)) +#define isgraph(c) ((_ctype_+1)[(unsigned)(c)]&(_P|_U|_L|_N)) +#define iscntrl(c) ((_ctype_+1)[(unsigned)(c)]&_C) +/* Non-gcc versions will get the library versions, and will be + slightly slower */ +#ifdef __GNUC__ +# define toupper(c) \ + ({ int __x = (c); islower(__x) ? (__x - 'a' + 'A') : __x;}) +# define tolower(c) \ + ({ int __x = (c); isupper(__x) ? (__x - 'A' + 'a') : __x;}) +#endif + +#ifndef __STRICT_ANSI__ +#define isascii(c) ((unsigned)(c)<=0177) +#define toascii(c) ((c)&0177) +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _CTYPE_H_ */ diff --git a/newlib/libc/include/dirent.h b/newlib/libc/include/dirent.h new file mode 100644 index 000000000..eaa4c190d --- /dev/null +++ b/newlib/libc/include/dirent.h @@ -0,0 +1,7 @@ +#ifdef __cplusplus +extern "C" { +#endif +#include <sys/dirent.h> +#ifdef __cplusplus +} +#endif diff --git a/newlib/libc/include/errno.h b/newlib/libc/include/errno.h new file mode 100644 index 000000000..fa8efb7f5 --- /dev/null +++ b/newlib/libc/include/errno.h @@ -0,0 +1 @@ +#include <sys/errno.h> diff --git a/newlib/libc/include/fastmath.h b/newlib/libc/include/fastmath.h new file mode 100644 index 000000000..95eea5f34 --- /dev/null +++ b/newlib/libc/include/fastmath.h @@ -0,0 +1,13 @@ +#ifndef _FASTMATH_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _FASTMATH_H_ + +#include <math.h> +#include <machine/fastmath.h> + +#ifdef __cplusplus +} +#endif +#endif /* _FASTMATH_H_ */ diff --git a/newlib/libc/include/fcntl.h b/newlib/libc/include/fcntl.h new file mode 100644 index 000000000..86a916775 --- /dev/null +++ b/newlib/libc/include/fcntl.h @@ -0,0 +1 @@ +#include <sys/fcntl.h> diff --git a/newlib/libc/include/grp.h b/newlib/libc/include/grp.h new file mode 100644 index 000000000..b8680a5d8 --- /dev/null +++ b/newlib/libc/include/grp.h @@ -0,0 +1,85 @@ +/* $NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $ */ + +/*- + * Copyright (c) 1989, 1993 + * The Regents of the University of California. All rights reserved. + * (c) UNIX System Laboratories, Inc. + * All or some portions of this file are derived from material licensed + * to the University of California by American Telephone and Telegraph + * Co. or Unix System Laboratories, Inc. and are reproduced herein with + * the permission of UNIX System Laboratories, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)grp.h 8.2 (Berkeley) 1/21/94 + */ + +#ifndef _GRP_H_ +#define _GRP_H_ + +#include <sys/types.h> + +#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE) +#define _PATH_GROUP "/etc/group" +#endif + +struct group { + char *gr_name; /* group name */ + char *gr_passwd; /* group password */ + gid_t gr_gid; /* group id */ + char **gr_mem; /* group members */ +}; + + +#ifdef __cplusplus +extern "C" { +#endif + +struct group *getgrgid (gid_t); +struct group *getgrnam (const char *); +int getgrnam_r (const char *, struct group *, + char *, size_t, struct group **); +int getgrgid_r (gid_t, struct group *, + char *, size_t, struct group **); +#ifndef _POSIX_SOURCE +struct group *getgrent (void); +void setgrent (void); +void endgrent (void); +void setgrfile (const char *); +#ifndef _XOPEN_SOURCE +char *group_from_gid (gid_t, int); +int setgroupent (int); +#endif /* !_XOPEN_SOURCE */ +#endif /* !_POSIX_SOURCE */ + +#ifdef __cplusplus +} +#endif + +#endif /* !_GRP_H_ */ diff --git a/newlib/libc/include/ieeefp.h b/newlib/libc/include/ieeefp.h new file mode 100644 index 000000000..78bb5bf62 --- /dev/null +++ b/newlib/libc/include/ieeefp.h @@ -0,0 +1,241 @@ +#ifndef _IEEE_FP_H_ +#define _IEEE_FP_H_ + +#include "_ansi.h" + +#include <machine/ieeefp.h> + +/* FIXME FIXME FIXME: + Neither of __ieee_{float,double}_shape_tape seem to be used anywhere + except in libm/test. If that is the case, please delete these from here. + If that is not the case, please insert documentation here describing why + they're needed. */ + +#ifdef __IEEE_BIG_ENDIAN + +typedef union +{ + double value; + struct + { + unsigned int sign : 1; + unsigned int exponent: 11; + unsigned int fraction0:4; + unsigned int fraction1:16; + unsigned int fraction2:16; + unsigned int fraction3:16; + + } number; + struct + { + unsigned int sign : 1; + unsigned int exponent: 11; + unsigned int quiet:1; + unsigned int function0:3; + unsigned int function1:16; + unsigned int function2:16; + unsigned int function3:16; + } nan; + struct + { + unsigned long msw; + unsigned long lsw; + } parts; + long aslong[2]; +} __ieee_double_shape_type; + +#endif + +#ifdef __IEEE_LITTLE_ENDIAN + +typedef union +{ + double value; + struct + { +#ifdef __SMALL_BITFIELDS + unsigned int fraction3:16; + unsigned int fraction2:16; + unsigned int fraction1:16; + unsigned int fraction0: 4; +#else + unsigned int fraction1:32; + unsigned int fraction0:20; +#endif + unsigned int exponent :11; + unsigned int sign : 1; + } number; + struct + { +#ifdef __SMALL_BITFIELDS + unsigned int function3:16; + unsigned int function2:16; + unsigned int function1:16; + unsigned int function0:3; +#else + unsigned int function1:32; + unsigned int function0:19; +#endif + unsigned int quiet:1; + unsigned int exponent: 11; + unsigned int sign : 1; + } nan; + struct + { + unsigned long lsw; + unsigned long msw; + } parts; + + long aslong[2]; + +} __ieee_double_shape_type; + +#endif + +#ifdef __IEEE_BIG_ENDIAN + +typedef union +{ + float value; + struct + { + unsigned int sign : 1; + unsigned int exponent: 8; + unsigned int fraction0: 7; + unsigned int fraction1: 16; + } number; + struct + { + unsigned int sign:1; + unsigned int exponent:8; + unsigned int quiet:1; + unsigned int function0:6; + unsigned int function1:16; + } nan; + long p1; + +} __ieee_float_shape_type; + +#endif + +#ifdef __IEEE_LITTLE_ENDIAN + +typedef union +{ + float value; + struct + { + unsigned int fraction0: 7; + unsigned int fraction1: 16; + unsigned int exponent: 8; + unsigned int sign : 1; + } number; + struct + { + unsigned int function1:16; + unsigned int function0:6; + unsigned int quiet:1; + unsigned int exponent:8; + unsigned int sign:1; + } nan; + long p1; + +} __ieee_float_shape_type; + +#endif + + + + + +/* FLOATING ROUNDING */ + +typedef int fp_rnd; +#define FP_RN 0 /* Round to nearest */ +#define FP_RM 1 /* Round down */ +#define FP_RP 2 /* Round up */ +#define FP_RZ 3 /* Round to zero (trunate) */ + +fp_rnd _EXFUN(fpgetround,(void)); +fp_rnd _EXFUN(fpsetround, (fp_rnd)); + +/* EXCEPTIONS */ + +typedef int fp_except; +#define FP_X_INV 0x10 /* Invalid operation */ +#define FP_X_DX 0x80 /* Divide by zero */ +#define FP_X_OFL 0x04 /* Overflow exception */ +#define FP_X_UFL 0x02 /* Underflow exception */ +#define FP_X_IMP 0x01 /* imprecise exception */ + +fp_except _EXFUN(fpgetmask,(void)); +fp_except _EXFUN(fpsetmask,(fp_except)); +fp_except _EXFUN(fpgetsticky,(void)); +fp_except _EXFUN(fpsetsticky, (fp_except)); + +/* INTEGER ROUNDING */ + +typedef int fp_rdi; +#define FP_RDI_TOZ 0 /* Round to Zero */ +#define FP_RDI_RD 1 /* Follow float mode */ + +fp_rdi _EXFUN(fpgetroundtoi,(void)); +fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi)); + +int _EXFUN(isnan, (double)); +int _EXFUN(isinf, (double)); +int _EXFUN(finite, (double)); + + + +int _EXFUN(isnanf, (float)); +int _EXFUN(isinff, (float)); +int _EXFUN(finitef, (float)); + +#define __IEEE_DBL_EXPBIAS 1023 +#define __IEEE_FLT_EXPBIAS 127 + +#define __IEEE_DBL_EXPLEN 11 +#define __IEEE_FLT_EXPLEN 8 + + +#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1)) +#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1)) + +#define __IEEE_DBL_MAXPOWTWO ((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1)) +#define __IEEE_FLT_MAXPOWTWO ((float)(1L << (32-8) - 1)) + +#define __IEEE_DBL_NAN_EXP 0x7ff +#define __IEEE_FLT_NAN_EXP 0xff + + +#define isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \ + ((*(long *)&(x) & 0x007fffffL)!=0000000000L)) + +#define isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \ + ((*(long *)&(x) & 0x007fffffL)==0000000000L)) + +#define finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L)) + +#ifdef _DOUBLE_IS_32BITS +#undef __IEEE_DBL_EXPBIAS +#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS + +#undef __IEEE_DBL_EXPLEN +#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN + +#undef __IEEE_DBL_FRACLEN +#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN + +#undef __IEEE_DBL_MAXPOWTWO +#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO + +#undef __IEEE_DBL_NAN_EXP +#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP + +#undef __ieee_double_shape_type +#define __ieee_double_shape_type __ieee_float_shape_type + +#endif /* _DOUBLE_IS_32BITS */ + +#endif /* _IEEE_FP_H_ */ diff --git a/newlib/libc/include/locale.h b/newlib/libc/include/locale.h new file mode 100644 index 000000000..c8d9c081d --- /dev/null +++ b/newlib/libc/include/locale.h @@ -0,0 +1,60 @@ +/* + locale.h + Values appropriate for the formatting of monetary and other + numberic quantities. +*/ + +#ifndef _LOCALE_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _LOCALE_H_ + +#include "_ansi.h" + +#ifndef NULL +#define NULL 0 +#endif + +#define LC_ALL 0 +#define LC_COLLATE 1 +#define LC_CTYPE 2 +#define LC_MONETARY 3 +#define LC_NUMERIC 4 +#define LC_TIME 5 + +struct lconv +{ + char *decimal_point; + char *thousands_sep; + char *grouping; + char *int_curr_symbol; + char *currency_symbol; + char *mon_decimal_point; + char *mon_thousands_sep; + char *mon_grouping; + char *positive_sign; + char *negative_sign; + char int_frac_digits; + char frac_digits; + char p_cs_precedes; + char p_sep_by_space; + char n_cs_precedes; + char n_sep_by_space; + char p_sign_posn; + char n_sign_posn; +}; + +#ifndef _REENT_ONLY +char *_EXFUN(setlocale,(int category, const char *locale)); +struct lconv *_EXFUN(localeconv,(void)); +#endif + +struct _reent; +char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale)); +struct lconv *_EXFUN(_localeconv_r,(struct _reent *)); + +#ifdef __cplusplus +} +#endif +#endif /* _LOCALE_H_ */ diff --git a/newlib/libc/include/machine/fastmath.h b/newlib/libc/include/machine/fastmath.h new file mode 100644 index 000000000..b13befa22 --- /dev/null +++ b/newlib/libc/include/machine/fastmath.h @@ -0,0 +1,100 @@ +#ifdef __sysvnecv70_target +double EXFUN(fast_sin,(double)); +double EXFUN(fast_cos,(double)); +double EXFUN(fast_tan,(double)); + +double EXFUN(fast_asin,(double)); +double EXFUN(fast_acos,(double)); +double EXFUN(fast_atan,(double)); + +double EXFUN(fast_sinh,(double)); +double EXFUN(fast_cosh,(double)); +double EXFUN(fast_tanh,(double)); + +double EXFUN(fast_asinh,(double)); +double EXFUN(fast_acosh,(double)); +double EXFUN(fast_atanh,(double)); + +double EXFUN(fast_abs,(double)); +double EXFUN(fast_sqrt,(double)); +double EXFUN(fast_exp2,(double)); +double EXFUN(fast_exp10,(double)); +double EXFUN(fast_expe,(double)); +double EXFUN(fast_log10,(double)); +double EXFUN(fast_log2,(double)); +double EXFUN(fast_loge,(double)); + + +#define sin(x) fast_sin(x) +#define cos(x) fast_cos(x) +#define tan(x) fast_tan(x) +#define asin(x) fast_asin(x) +#define acos(x) fast_acos(x) +#define atan(x) fast_atan(x) +#define sinh(x) fast_sinh(x) +#define cosh(x) fast_cosh(x) +#define tanh(x) fast_tanh(x) +#define asinh(x) fast_asinh(x) +#define acosh(x) fast_acosh(x) +#define atanh(x) fast_atanh(x) +#define abs(x) fast_abs(x) +#define sqrt(x) fast_sqrt(x) +#define exp2(x) fast_exp2(x) +#define exp10(x) fast_exp10(x) +#define expe(x) fast_expe(x) +#define log10(x) fast_log10(x) +#define log2(x) fast_log2(x) +#define loge(x) fast_loge(x) + +#ifdef _HAVE_STDC +/* These functions are in assembler, they really do take floats. This + can only be used with a real ANSI compiler */ + +float EXFUN(fast_sinf,(float)); +float EXFUN(fast_cosf,(float)); +float EXFUN(fast_tanf,(float)); + +float EXFUN(fast_asinf,(float)); +float EXFUN(fast_acosf,(float)); +float EXFUN(fast_atanf,(float)); + +float EXFUN(fast_sinhf,(float)); +float EXFUN(fast_coshf,(float)); +float EXFUN(fast_tanhf,(float)); + +float EXFUN(fast_asinhf,(float)); +float EXFUN(fast_acoshf,(float)); +float EXFUN(fast_atanhf,(float)); + +float EXFUN(fast_absf,(float)); +float EXFUN(fast_sqrtf,(float)); +float EXFUN(fast_exp2f,(float)); +float EXFUN(fast_exp10f,(float)); +float EXFUN(fast_expef,(float)); +float EXFUN(fast_log10f,(float)); +float EXFUN(fast_log2f,(float)); +float EXFUN(fast_logef,(float)); +#define sinf(x) fast_sinf(x) +#define cosf(x) fast_cosf(x) +#define tanf(x) fast_tanf(x) +#define asinf(x) fast_asinf(x) +#define acosf(x) fast_acosf(x) +#define atanf(x) fast_atanf(x) +#define sinhf(x) fast_sinhf(x) +#define coshf(x) fast_coshf(x) +#define tanhf(x) fast_tanhf(x) +#define asinhf(x) fast_asinhf(x) +#define acoshf(x) fast_acoshf(x) +#define atanhf(x) fast_atanhf(x) +#define absf(x) fast_absf(x) +#define sqrtf(x) fast_sqrtf(x) +#define exp2f(x) fast_exp2f(x) +#define exp10f(x) fast_exp10f(x) +#define expef(x) fast_expef(x) +#define log10f(x) fast_log10f(x) +#define log2f(x) fast_log2f(x) +#define logef(x) fast_logef(x) +#endif +/* Override the functions defined in math.h */ +#endif /* __sysvnecv70_target */ + diff --git a/newlib/libc/include/machine/ieeefp.h b/newlib/libc/include/machine/ieeefp.h new file mode 100644 index 000000000..ce8f0ffc5 --- /dev/null +++ b/newlib/libc/include/machine/ieeefp.h @@ -0,0 +1,157 @@ +#ifndef __IEEE_BIG_ENDIAN +#ifndef __IEEE_LITTLE_ENDIAN + +#if defined(__arm__) || defined(__thumb__) +/* ARM always has big-endian words. Within those words the byte ordering + appears to be big or little endian. Newlib doesn't seem to care about + the byte ordering within words. */ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __hppa__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __sparc__ +#ifdef __LITTLE_ENDIAN_DATA__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#endif + +#if defined(__m68k__) || defined(__mc68000__) +#define __IEEE_BIG_ENDIAN +#endif + +#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) +#define __IEEE_BIG_ENDIAN +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __H8500__ +#define __IEEE_BIG_ENDIAN +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __sh__ +#ifdef __LITTLE_ENDIAN__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#if defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) +#define _DOUBLE_IS_32BITS +#endif +#endif + +#ifdef _AM29K +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef _WIN32 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __i386__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __i960__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __M32R__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __TIC80__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __MIPSEL__ +#define __IEEE_LITTLE_ENDIAN +#endif +#ifdef __MIPSEB__ +#define __IEEE_BIG_ENDIAN +#endif + +/* necv70 was __IEEE_LITTLE_ENDIAN. */ + +#ifdef __W65__ +#define __IEEE_LITTLE_ENDIAN +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#endif + +#if defined(__Z8001__) || defined(__Z8002__) +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __m88k__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mn10300__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __mn10200__ +#define __IEEE_LITTLE_ENDIAN +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#endif + +#ifdef __v800 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __v850 +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __D10V__ +#define __IEEE_BIG_ENDIAN +#define _DOUBLE_IS_32BITS +#define __SMALL_BITFIELDS +#endif + +#ifdef __PPC__ +#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX) +#define __IEEE_BIG_ENDIAN +#else +#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32) +#define __IEEE_LITTLE_ENDIAN +#endif +#endif +#endif + +#ifdef __arc__ +#ifdef __big_endian__ +#define __IEEE_BIG_ENDIAN +#else +#define __IEEE_LITTLE_ENDIAN +#endif +#endif + +#ifdef __fr30__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mcore__ +#define __IEEE_BIG_ENDIAN +#endif + + + +#ifndef __IEEE_BIG_ENDIAN +#ifndef __IEEE_LITTLE_ENDIAN +#error Endianess not declared!! +#endif /* not __IEEE_LITTLE_ENDIAN */ +#endif /* not __IEEE_BIG_ENDIAN */ + +#endif /* not __IEEE_LITTLE_ENDIAN */ +#endif /* not __IEEE_BIG_ENDIAN */ + diff --git a/newlib/libc/include/machine/setjmp-dj.h b/newlib/libc/include/machine/setjmp-dj.h new file mode 100644 index 000000000..0243f7e76 --- /dev/null +++ b/newlib/libc/include/machine/setjmp-dj.h @@ -0,0 +1,44 @@ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid + conflicting with setjmp.h. Ian Taylor, Cygnus support, April, + 1993. */ + +#ifndef _SETJMP_DJ_H_ +#define _SETJMP_DJ_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + unsigned long eax; + unsigned long ebx; + unsigned long ecx; + unsigned long edx; + unsigned long esi; + unsigned long edi; + unsigned long ebp; + unsigned long esp; + unsigned long eip; +} jmp_buf[1]; + +extern int setjmp(jmp_buf); +extern void longjmp(jmp_buf, int); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/newlib/libc/include/machine/setjmp.h b/newlib/libc/include/machine/setjmp.h new file mode 100644 index 000000000..4656c0ff1 --- /dev/null +++ b/newlib/libc/include/machine/setjmp.h @@ -0,0 +1,168 @@ +#if defined(__arm__) || defined(__thumb__) +/* + * All callee preserved registers: + * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7 + */ +#define _JBLEN 23 +#endif + +#ifdef __sparc__ +/* + * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). + * All else recovered by under/over(flow) handling. + */ +#define _JBLEN 13 +#endif + +/* necv70 was 9 as well. */ + +#ifdef __mc68000__ +/* + * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6, + * fp2-fp7 for 68881. + * All else recovered by under/over(flow) handling. + */ +#define _JBLEN 34 +#endif + +#if defined(__Z8001__) || defined(__Z8002__) +/* 16 regs + pc */ +#define _JBLEN 20 +#endif + +#ifdef _AM29K +/* + * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext). + * All else recovered by under/over(flow) handling. + */ +#define _JBLEN 9 +#endif + +#if defined(__CYGWIN__) && !defined (_JBLEN) +#define _JBLEN (13 * 4) +#elif defined (__i386__) +#ifdef __unix__ +# define _JBLEN 36 +#else +#include "setjmp-dj.h" +#endif +#endif + +#ifdef __i960__ +#define _JBLEN 35 +#endif + +#ifdef __M32R__ +/* Only 8 words are currently needed. 10 gives us some slop if we need + to expand. */ +#define _JBLEN 10 +#endif + +#ifdef __mips__ +#define _JBLEN 11 +#endif + +#ifdef __m88000__ +#define _JBLEN 21 +#endif + +#ifdef __H8300__ +#define _JBLEN 5 +typedef int jmp_buf[_JBLEN]; +#endif + +#ifdef __H8300H__ +/* same as H8/300 but registers are twice as big */ +#define _JBLEN 5 +#define _JBTYPE long +#endif + +#ifdef __H8300S__ +/* same as H8/300 but registers are twice as big */ +#define _JBLEN 5 +#define _JBTYPE long +#endif + +#ifdef __H8500__ +#define _JBLEN 4 +#endif + +#ifdef __sh__ +#define _JBLEN 20 +#endif + +#ifdef __v800 +#define _JBLEN 28 +#endif + +#ifdef __PPC__ +#define _JBLEN 32 +#define _JBTYPE double +#endif + +#ifdef __hppa__ +/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15. + Note space exists for the FP registers, but they are not + saved. */ +#define _JBLEN 28 +#endif + +#if defined(__mn10300__) || defined(__mn10200__) +/* A guess */ +#define _JBLEN 10 +#endif + +#ifdef __v850 +/* I think our setjmp is saving 15 regs at the moment. Gives us one word + slop if we need to expand. */ +#define _JBLEN 16 +#endif + +#ifdef __TIC80__ +#define _JBLEN 13 +#endif + +#ifdef __D10V__ +#define _JBLEN 8 +#endif + +#ifdef __D30V__ +#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2) +#define _JBTYPE double +#endif + + +#ifdef __fr30__ +#define _JBLEN 10 +#endif + +#ifdef __mcore__ +#define _JBLEN 16 +#endif + +#ifdef _JBLEN +#ifdef _JBTYPE +typedef _JBTYPE jmp_buf[_JBLEN]; +#else +typedef int jmp_buf[_JBLEN]; +#endif + +#if defined(__CYGWIN32__) || defined(__rtems__) +#include <signal.h> + +/* POSIX sigsetjmp/siglongjmp macros */ +typedef int sigjmp_buf[_JBLEN+2]; + +#define _SAVEMASK _JBLEN +#define _SIGMASK (_JBLEN+1) + +#define sigsetjmp(env, savemask) (env[_SAVEMASK] = savemask,\ + sigprocmask (SIG_SETMASK, 0, (sigset_t *) &env[_SIGMASK]),\ + setjmp (env)) + +#define siglongjmp(env, val) (((env[_SAVEMASK])?\ + sigprocmask (SIG_SETMASK, (sigset_t *) &env[_SIGMASK], 0):0),\ + longjmp (env, val)) + +#endif /* __CYGWIN32__ or __rtems__ */ +#endif diff --git a/newlib/libc/include/machine/time.h b/newlib/libc/include/machine/time.h new file mode 100644 index 000000000..13857bfde --- /dev/null +++ b/newlib/libc/include/machine/time.h @@ -0,0 +1,10 @@ +#ifndef _MACHTIME_H_ +#define _MACHTIME_H_ + +#if defined(__arm__) || defined(__thumb__) +#define _CLOCKS_PER_SEC_ 100 +#endif + +#endif /* _MACHTIME_H_ */ + + diff --git a/newlib/libc/include/machine/types.h b/newlib/libc/include/machine/types.h new file mode 100644 index 000000000..b71a67f56 --- /dev/null +++ b/newlib/libc/include/machine/types.h @@ -0,0 +1,9 @@ +#ifndef _MACHTYPES_H_ +#define _MACHTYPES_H_ + +#define _CLOCK_T_ unsigned long /* clock() */ +#define _TIME_T_ long /* time() */ + +#endif /* _MACHTYPES_H_ */ + + diff --git a/newlib/libc/include/malloc.h b/newlib/libc/include/malloc.h new file mode 100644 index 000000000..64abe91cf --- /dev/null +++ b/newlib/libc/include/malloc.h @@ -0,0 +1,97 @@ +/* malloc.h -- header file for memory routines. */ + +#ifndef _INCLUDE_MALLOC_H_ +#define _INCLUDE_MALLOC_H_ + +#include <_ansi.h> +#include <sys/reent.h> + +#define __need_size_t +#include <stddef.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* This version of struct mallinfo must match the one in + libc/stdlib/mallocr.c. */ + +struct mallinfo { + int arena; /* total space allocated from system */ + int ordblks; /* number of non-inuse chunks */ + int smblks; /* unused -- always zero */ + int hblks; /* number of mmapped regions */ + int hblkhd; /* total space in mmapped regions */ + int usmblks; /* unused -- always zero */ + int fsmblks; /* unused -- always zero */ + int uordblks; /* total allocated space */ + int fordblks; /* total non-inuse space */ + int keepcost; /* top-most, releasable (via malloc_trim) space */ +}; + +/* The routines. */ + +extern _PTR malloc _PARAMS ((size_t)); +extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t)); + +extern _VOID free _PARAMS ((_PTR)); +extern _VOID _free_r _PARAMS ((struct _reent *, _PTR)); + +extern _PTR realloc _PARAMS ((_PTR, size_t)); +extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t)); + +extern _PTR calloc _PARAMS ((size_t, size_t)); +extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t)); + +extern _PTR memalign _PARAMS ((size_t, size_t)); +extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t)); + +extern struct mallinfo mallinfo _PARAMS ((void)); +extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *)); + +extern void malloc_stats _PARAMS ((void)); +extern void _malloc_stats_r _PARAMS ((struct _reent *)); + +extern int mallopt _PARAMS ((int, int)); +extern int _mallopt_r _PARAMS ((struct _reent *, int, int)); + +extern size_t malloc_usable_size _PARAMS ((_PTR)); +extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR)); + +/* These aren't too useful on an embedded system, but we define them + anyhow. */ + +extern _PTR valloc _PARAMS ((size_t)); +extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t)); + +extern _PTR pvalloc _PARAMS ((size_t)); +extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t)); + +extern int malloc_trim _PARAMS ((size_t)); +extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t)); + +/* Some systems provide this, so do too for compatibility. */ + +extern void cfree _PARAMS ((_PTR)); + +/* A compatibility routine for an earlier version of the allocator. */ + +extern _VOID mstats _PARAMS ((char *)); +extern _VOID _mstats_r _PARAMS ((struct _reent *, char *)); + +#ifdef __CYGWIN32__ + +/* Cygwin32 needs to be able to copy all the malloc information from + the parent to the child. However, cygwin32 does not normally copy + any data in the DLL data section. This routine handles copying + that information. */ + +extern int __malloc_copy _PARAMS ((int (*) (void *, void *, void *, int), + void *, int)); +#endif /* __CYGWIN32 */ + +#ifdef __cplusplus +} +#endif + +#endif /* _INCLUDE_MALLOC_H_ */ diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h new file mode 100644 index 000000000..d3f2e99ae --- /dev/null +++ b/newlib/libc/include/math.h @@ -0,0 +1,273 @@ +/* math.h -- Definitions for the math floating point package. */ + +#ifndef _MATH_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _MATH_H_ + +#include <sys/reent.h> +#include <machine/ieeefp.h> +#include "_ansi.h" + +#ifndef HUGE_VAL + +/* Define HUGE_VAL as infinity, unless HUGE_VAL is already defined + (which might have been done by something like math-68881.h). */ + +union __dmath +{ + __uint32_t i[2]; + double d; +}; + +extern const union __dmath __infinity; + +#define HUGE_VAL (__infinity.d) + +#endif /* ! defined (HUGE_VAL) */ + +/* Reentrant ANSI C functions. */ + +#ifndef __math_68881 +extern double atan _PARAMS((double)); +extern double cos _PARAMS((double)); +extern double sin _PARAMS((double)); +extern double tan _PARAMS((double)); +extern double tanh _PARAMS((double)); +extern double frexp _PARAMS((double, int *)); +extern double modf _PARAMS((double, double *)); +extern double ceil _PARAMS((double)); +extern double fabs _PARAMS((double)); +extern double floor _PARAMS((double)); +#endif /* ! defined (__math_68881) */ + +/* Non reentrant ANSI C functions. */ + +#ifndef _REENT_ONLY +#ifndef __math_6881 +extern double acos _PARAMS((double)); +extern double asin _PARAMS((double)); +extern double atan2 _PARAMS((double, double)); +extern double cosh _PARAMS((double)); +extern double sinh _PARAMS((double)); +extern double exp _PARAMS((double)); +extern double ldexp _PARAMS((double, int)); +extern double log _PARAMS((double)); +extern double log10 _PARAMS((double)); +extern double pow _PARAMS((double, double)); +extern double sqrt _PARAMS((double)); +extern double fmod _PARAMS((double, double)); +#endif /* ! defined (__math_68881) */ +#endif /* ! defined (_REENT_ONLY) */ + +#ifndef __STRICT_ANSI__ + +/* Non ANSI double precision functions. */ + +extern double infinity _PARAMS((void)); +extern double nan _PARAMS((void)); +extern int isnan _PARAMS((double)); +extern int isinf _PARAMS((double)); +extern int finite _PARAMS((double)); +extern double copysign _PARAMS((double, double)); +extern int ilogb _PARAMS((double)); + +extern double asinh _PARAMS((double)); +extern double cbrt _PARAMS((double)); +extern double nextafter _PARAMS((double, double)); +extern double rint _PARAMS((double)); +extern double scalbn _PARAMS((double, int)); + +#ifndef __math_68881 +extern double log1p _PARAMS((double)); +extern double expm1 _PARAMS((double)); +#endif /* ! defined (__math_68881) */ + +#ifndef _REENT_ONLY +extern double acosh _PARAMS((double)); +extern double atanh _PARAMS((double)); +extern double remainder _PARAMS((double, double)); +extern double gamma _PARAMS((double)); +extern double gamma_r _PARAMS((double, int *)); +extern double lgamma _PARAMS((double)); +extern double lgamma_r _PARAMS((double, int *)); +extern double erf _PARAMS((double)); +extern double erfc _PARAMS((double)); +extern double y0 _PARAMS((double)); +extern double y1 _PARAMS((double)); +extern double yn _PARAMS((int, double)); +extern double j0 _PARAMS((double)); +extern double j1 _PARAMS((double)); +extern double jn _PARAMS((int, double)); +#define log2(x) (log (x) / M_LOG2_E) + +#ifndef __math_68881 +extern double hypot _PARAMS((double, double)); +#endif + +extern double cabs(); +extern double drem _PARAMS((double, double)); + +#endif /* ! defined (_REENT_ONLY) */ + +/* Single precision versions of ANSI functions. */ + +extern float atanf _PARAMS((float)); +extern float cosf _PARAMS((float)); +extern float sinf _PARAMS((float)); +extern float tanf _PARAMS((float)); +extern float tanhf _PARAMS((float)); +extern float frexpf _PARAMS((float, int *)); +extern float modff _PARAMS((float, float *)); +extern float ceilf _PARAMS((float)); +extern float fabsf _PARAMS((float)); +extern float floorf _PARAMS((float)); + +#ifndef _REENT_ONLY +extern float acosf _PARAMS((float)); +extern float asinf _PARAMS((float)); +extern float atan2f _PARAMS((float, float)); +extern float coshf _PARAMS((float)); +extern float sinhf _PARAMS((float)); +extern float expf _PARAMS((float)); +extern float ldexpf _PARAMS((float, int)); +extern float logf _PARAMS((float)); +extern float log10f _PARAMS((float)); +extern float powf _PARAMS((float, float)); +extern float sqrtf _PARAMS((float)); +extern float fmodf _PARAMS((float, float)); +#endif /* ! defined (_REENT_ONLY) */ + +/* Other single precision functions. */ + +extern float infinityf _PARAMS((void)); +extern float nanf _PARAMS((void)); +extern int isnanf _PARAMS((float)); +extern int isinff _PARAMS((float)); +extern int finitef _PARAMS((float)); +extern float copysignf _PARAMS((float, float)); +extern int ilogbf _PARAMS((float)); + +extern float asinhf _PARAMS((float)); +extern float cbrtf _PARAMS((float)); +extern float nextafterf _PARAMS((float, float)); +extern float rintf _PARAMS((float)); +extern float scalbnf _PARAMS((float, int)); +extern float log1pf _PARAMS((float)); +extern float expm1f _PARAMS((float)); + +#ifndef _REENT_ONLY +extern float acoshf _PARAMS((float)); +extern float atanhf _PARAMS((float)); +extern float remainderf _PARAMS((float, float)); +extern float gammaf _PARAMS((float)); +extern float gammaf_r _PARAMS((float, int *)); +extern float lgammaf _PARAMS((float)); +extern float lgammaf_r _PARAMS((float, int *)); +extern float erff _PARAMS((float)); +extern float erfcf _PARAMS((float)); +extern float y0f _PARAMS((float)); +extern float y1f _PARAMS((float)); +extern float ynf _PARAMS((int, float)); +extern float j0f _PARAMS((float)); +extern float j1f _PARAMS((float)); +extern float jnf _PARAMS((int, float)); +#define log2f(x) (logf (x) / (float) M_LOG2_E) +extern float hypotf _PARAMS((float, float)); + +extern float cabsf(); +extern float dremf _PARAMS((float, float)); + +#endif /* ! defined (_REENT_ONLY) */ + +/* The gamma functions use a global variable, signgam. */ + +extern int signgam; + +/* The exception structure passed to the matherr routine. */ + +#ifdef __cplusplus +struct __exception +#else +struct exception +#endif +{ + int type; + char *name; + double arg1; + double arg2; + double retval; + int err; +}; + +#ifdef __cplusplus +extern int matherr _PARAMS((struct __exception *e)); +#else +extern int matherr _PARAMS((struct exception *e)); +#endif + +/* Values for the type field of struct exception. */ + +#define DOMAIN 1 +#define SING 2 +#define OVERFLOW 3 +#define UNDERFLOW 4 +#define TLOSS 5 +#define PLOSS 6 + +/* Useful constants. */ + +#define M_E 2.7182818284590452354 +#define M_LOG2E 1.4426950408889634074 +#define M_LOG10E 0.43429448190325182765 +#define M_LN2 0.69314718055994530942 +#define M_LN10 2.30258509299404568402 +#define M_PI 3.14159265358979323846 +#define M_TWOPI (M_PI * 2.0) +#define M_PI_2 1.57079632679489661923 +#define M_PI_4 0.78539816339744830962 +#define M_3PI_4 2.3561944901923448370E0 +#define M_SQRTPI 1.77245385090551602792981 +#define M_1_PI 0.31830988618379067154 +#define M_2_PI 0.63661977236758134308 +#define M_2_SQRTPI 1.12837916709551257390 +#define M_SQRT2 1.41421356237309504880 +#define M_SQRT1_2 0.70710678118654752440 +#define M_LN2LO 1.9082149292705877000E-10 +#define M_LN2HI 6.9314718036912381649E-1 +#define M_SQRT3 1.73205080756887719000 +#define M_IVLN10 0.43429448190325182765 /* 1 / log(10) */ +#define M_LOG2_E 0.693147180559945309417 +#define M_INVLN2 1.4426950408889633870E0 /* 1 / log(2) */ + +/* Global control over fdlibm error handling. */ + +enum __fdlibm_version +{ + __fdlibm_ieee = -1, + __fdlibm_svid, + __fdlibm_xopen, + __fdlibm_posix +}; + +#define _LIB_VERSION_TYPE enum __fdlibm_version +#define _LIB_VERSION __fdlib_version + +extern _CONST _LIB_VERSION_TYPE _LIB_VERSION; + +#define _IEEE_ __fdlibm_ieee +#define _SVID_ __fdlibm_svid +#define _XOPEN_ __fdlibm_xopen +#define _POSIX_ __fdlibm_posix + +#endif /* ! defined (__STRICT_ANSI__) */ + +#ifdef __FAST_MATH__ +#include <machine/fastmath.h> +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _MATH_H_ */ diff --git a/newlib/libc/include/paths.h b/newlib/libc/include/paths.h new file mode 100644 index 000000000..36cf78a9b --- /dev/null +++ b/newlib/libc/include/paths.h @@ -0,0 +1,7 @@ +#ifndef _PATHS_H_ +#define _PATHS_H_ + +#define _PATH_DEV "/dev/" +#define _PATH_BSHELL "/bin/sh" + +#endif /* _PATHS_H_ */ diff --git a/newlib/libc/include/process.h b/newlib/libc/include/process.h new file mode 100644 index 000000000..ca5b451ce --- /dev/null +++ b/newlib/libc/include/process.h @@ -0,0 +1,60 @@ +/* process.h. This file comes with MSDOS and WIN32 systems. */ + +#ifndef __PROCESS_H_ +#define __PROCESS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +int execl(const char *path, const char *argv0, ...); +int execle(const char *path, const char *argv0, ... /*, char * const *envp */); +int execlp(const char *path, const char *argv0, ...); +int execlpe(const char *path, const char *argv0, ... /*, char * const *envp */); + +int execv(const char *path, char * const *argv); +int execve(const char *path, char * const *argv, char * const *envp); +int execvp(const char *path, char * const *argv); +int execvpe(const char *path, char * const *argv, char * const *envp); + +int spawnl(int mode, const char *path, const char *argv0, ...); +int spawnle(int mode, const char *path, const char *argv0, ... /*, char * const *envp */); +int spawnlp(int mode, const char *path, const char *argv0, ...); +int spawnlpe(int mode, const char *path, const char *argv0, ... /*, char * const *envp */); + +int spawnv(int mode, const char *path, const char * const *argv); +int spawnve(int mode, const char *path, char * const *argv, const char * const *envp); +int spawnvp(int mode, const char *path, const char * const *argv); +int spawnvpe(int mode, const char *path, const char * const *argv, const char * const *envp); + +#ifdef __CYGWIN32__ +/* Secure exec() functions family */ +/* The first arg should really be a HANDLE which is a void *. But we + can't include windows.h here so... */ +#include <sys/types.h> +pid_t sexecl(void *, const char *path, const char *argv0, ...); +pid_t sexecle(void *, const char *path, const char *argv0, ... /*, char * const *envp */); +pid_t sexeclp(void *, const char *path, const char *argv0, ...); +pid_t sexeclpe(void *, const char *path, const char *argv0, ... /*, char * const *envp */); + +pid_t sexecv(void *, const char *path, const char * const *argv); +pid_t sexecve(void *, const char *path, const char * const *argv, const char * const *envp); +pid_t sexecvp(void *, const char *path, const char * const *argv); +pid_t sexecvpe(void *, const char *path, const char * const *argv, const char * const *envp); +#endif + +int cwait(int *, int, int); + +#define _P_WAIT 1 +#define _P_NOWAIT 2 /* always generates error */ +#define _P_OVERLAY 3 +#define _P_NOWAITO 4 +#define _P_DETACH 5 + +#define WAIT_CHILD 1 + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/newlib/libc/include/pwd.h b/newlib/libc/include/pwd.h new file mode 100644 index 000000000..59d6ab555 --- /dev/null +++ b/newlib/libc/include/pwd.h @@ -0,0 +1,76 @@ +/*- + * Copyright (c) 1989 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)pwd.h 5.13 (Berkeley) 5/28/91 + */ + +#ifndef _PWD_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _PWD_H_ + +#include <sys/types.h> + +#ifndef _POSIX_SOURCE +#define _PATH_PASSWD "/etc/passwd" + +#define _PASSWORD_LEN 128 /* max length, not counting NULL */ +#endif + +struct passwd { + char *pw_name; /* user name */ + char *pw_passwd; /* encrypted password */ + int pw_uid; /* user uid */ + int pw_gid; /* user gid */ + char *pw_comment; /* comment */ + char *pw_gecos; /* Honeywell login info */ + char *pw_dir; /* home directory */ + char *pw_shell; /* default shell */ +}; + +struct passwd *getpwuid (uid_t); +struct passwd *getpwnam (const char *); +int getpwnam_r (const char *, struct passwd *, + char *, size_t , struct passwd **); +int getpwuid_r (uid_t, struct passwd *, char *, + size_t, struct passwd **); +#ifndef _POSIX_SOURCE +struct passwd *getpwent (void); +void setpwent (void); +void endpwent (void); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _PWD_H_ */ diff --git a/newlib/libc/include/reent.h b/newlib/libc/include/reent.h new file mode 100644 index 000000000..56fae91a4 --- /dev/null +++ b/newlib/libc/include/reent.h @@ -0,0 +1,87 @@ +/* This header file provides the reentrancy. */ + +/* The reentrant system calls here serve two purposes: + + 1) Provide reentrant versions of the system calls the ANSI C library + requires. + 2) Provide these system calls in a namespace clean way. + + It is intended that *all* system calls that the ANSI C library needs + be declared here. It documents them all in one place. All library access + to the system is via some form of these functions. + + There are three ways a target may provide the needed syscalls. + + 1) Define the reentrant versions of the syscalls directly. + (eg: _open_r, _close_r, etc.). Please keep the namespace clean. + When you do this, set "syscall_dir" to "syscalls" in configure.in, + and add -DREENTRANT_SYSCALLS_PROVIDED to target_cflags in configure.in. + + 2) Define namespace clean versions of the system calls by prefixing + them with '_' (eg: _open, _close, etc.). Technically, there won't be + true reentrancy at the syscall level, but the library will be namespace + clean. + When you do this, set "syscall_dir" to "syscalls" in configure.in. + + 3) Define or otherwise provide the regular versions of the syscalls + (eg: open, close, etc.). The library won't be reentrant nor namespace + clean, but at least it will work. + When you do this, add -DMISSING_SYSCALL_NAMES to target_cflags in + configure.in. + + Stubs of the reentrant versions of the syscalls exist in the libc/reent + source directory and are used if REENTRANT_SYSCALLS_PROVIDED isn't defined. + They use the native system calls: _open, _close, etc. if they're available + (MISSING_SYSCALL_NAMES is *not* defined), otherwise open, close, etc. + (MISSING_SYSCALL_NAMES *is* defined). */ + +/* WARNING: All identifiers here must begin with an underscore. This file is + included by stdio.h and others and we therefore must only use identifiers + in the namespace allotted to us. */ + +#ifndef _REENT_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _REENT_H_ + +#include <sys/reent.h> +#include <sys/_types.h> +#include <machine/types.h> + +#define __need_size_t +#include <stddef.h> + +/* FIXME: not namespace clean */ +struct stat; +struct tms; +struct timeval; +struct timezone; + +/* Reentrant versions of system calls. */ + +extern int _close_r _PARAMS ((struct _reent *, int)); +extern int _execve_r _PARAMS ((struct _reent *, char *, char **, char **)); +extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int)); +extern int _fork_r _PARAMS ((struct _reent *)); +extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *)); +extern int _getpid_r _PARAMS ((struct _reent *)); +extern int _kill_r _PARAMS ((struct _reent *, int, int)); +extern int _link_r _PARAMS ((struct _reent *, const char *, const char *)); +extern _off_t _lseek_r _PARAMS ((struct _reent *, int, _off_t, int)); +extern int _open_r _PARAMS ((struct _reent *, const char *, int, int)); +extern _ssize_t _read_r _PARAMS ((struct _reent *, int, void *, size_t)); +extern void *_sbrk_r _PARAMS ((struct _reent *, size_t)); +extern int _stat_r _PARAMS ((struct _reent *, const char *, struct stat *)); +extern _CLOCK_T_ _times_r _PARAMS ((struct _reent *, struct tms *)); +extern int _unlink_r _PARAMS ((struct _reent *, const char *)); +extern int _wait_r _PARAMS ((struct _reent *, int *)); +extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t)); + +/* This one is not guaranteed to be available on all targets. */ +extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *tp, struct timezone *tzp)); + +#ifdef __cplusplus +} +#endif +#endif /* _REENT_H_ */ diff --git a/newlib/libc/include/regdef.h b/newlib/libc/include/regdef.h new file mode 100644 index 000000000..8cf144b85 --- /dev/null +++ b/newlib/libc/include/regdef.h @@ -0,0 +1,7 @@ +/* regdef.h -- define register names. */ + +/* This is a standard include file for MIPS targets. Other target + probably don't define it, and attempts to include this file will + fail. */ + +#include <machine/regdef.h> diff --git a/newlib/libc/include/setjmp.h b/newlib/libc/include/setjmp.h new file mode 100644 index 000000000..53d0223fd --- /dev/null +++ b/newlib/libc/include/setjmp.h @@ -0,0 +1,22 @@ +/* + setjmp.h + stubs for future use. +*/ + +#ifndef _SETJMP_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _SETJMP_H_ + +#include "_ansi.h" +#include <machine/setjmp.h> + +void _EXFUN(longjmp,(jmp_buf __jmpb, int __retval)); +int _EXFUN(setjmp,(jmp_buf __jmpb)); + +#ifdef __cplusplus +} +#endif +#endif /* _SETJMP_H_ */ + diff --git a/newlib/libc/include/signal.h b/newlib/libc/include/signal.h new file mode 100644 index 000000000..311149146 --- /dev/null +++ b/newlib/libc/include/signal.h @@ -0,0 +1,37 @@ +#ifndef _SIGNAL_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _SIGNAL_H_ + +#include "_ansi.h" +#include <sys/signal.h> + +typedef int sig_atomic_t; /* Atomic entity type (ANSI) */ + +#if defined(__STDC__) || defined(__cplusplus) +#define SIG_DFL ((void (*)(int))0) /* Default action */ +#define SIG_IGN ((void (*)(int))1) /* Ignore action */ +#define SIG_ERR ((void (*)(int))-1) /* Error return */ +#else +#define SIG_DFL ((void (*)())0) /* Default action */ +#define SIG_IGN ((void (*)())1) /* Ignore action */ +#define SIG_ERR ((void (*)())-1) /* Error return */ +#endif + +typedef void (*_sig_func_ptr) (int); + +struct _reent; + +_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr)); +int _EXFUN(_raise_r, (struct _reent *, int)); + +#ifndef _REENT_ONLY +_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr)); +int _EXFUN(raise, (int)); +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _SIGNAL_H_ */ diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h new file mode 100644 index 000000000..2c2b46cf2 --- /dev/null +++ b/newlib/libc/include/stdio.h @@ -0,0 +1,313 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * @(#)stdio.h 5.3 (Berkeley) 3/15/86 + */ + +/* + * NB: to fit things in six character monocase externals, the + * stdio code uses the prefix `__s' for stdio objects, typically + * followed by a three-character attempt at a mnemonic. + */ + +#ifndef _STDIO_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _STDIO_H_ + +#include "_ansi.h" + +#define _FSTDIO /* ``function stdio'' */ + +#define __need_size_t +#include <stddef.h> + +#define __need___va_list +#include <stdarg.h> + +/* + * <sys/reent.h> defines __sFILE, _fpos_t. + * They must be defined there because struct _reent needs them (and we don't + * want reent.h to include this file. + */ + +#include <sys/reent.h> + +typedef _fpos_t fpos_t; + +typedef struct __sFILE FILE; + +#define __SLBF 0x0001 /* line buffered */ +#define __SNBF 0x0002 /* unbuffered */ +#define __SRD 0x0004 /* OK to read */ +#define __SWR 0x0008 /* OK to write */ + /* RD and WR are never simultaneously asserted */ +#define __SRW 0x0010 /* open for reading & writing */ +#define __SEOF 0x0020 /* found EOF */ +#define __SERR 0x0040 /* found error */ +#define __SMBF 0x0080 /* _buf is from malloc */ +#define __SAPP 0x0100 /* fdopen()ed in append mode - so must write to end */ +#define __SSTR 0x0200 /* this is an sprintf/snprintf string */ +#define __SOPT 0x0400 /* do fseek() optimisation */ +#define __SNPT 0x0800 /* do not do fseek() optimisation */ +#define __SOFF 0x1000 /* set iff _offset is in fact correct */ +#define __SMOD 0x2000 /* true => fgetline modified _p text */ + +/* + * The following three definitions are for ANSI C, which took them + * from System V, which stupidly took internal interface macros and + * made them official arguments to setvbuf(), without renaming them. + * Hence, these ugly _IOxxx names are *supposed* to appear in user code. + * + * Although these happen to match their counterparts above, the + * implementation does not rely on that (so these could be renumbered). + */ +#define _IOFBF 0 /* setvbuf should set fully buffered */ +#define _IOLBF 1 /* setvbuf should set line buffered */ +#define _IONBF 2 /* setvbuf should set unbuffered */ + +#ifndef NULL +#define NULL 0 +#endif + +#define BUFSIZ 1024 +#define EOF (-1) + +#define FOPEN_MAX 20 /* must be <= OPEN_MAX <sys/syslimits.h> */ +#define FILENAME_MAX 1024 /* must be <= PATH_MAX <sys/syslimits.h> */ +#define L_tmpnam 1024 /* XXX must be == PATH_MAX */ +#ifndef __STRICT_ANSI__ +#define P_tmpdir "/tmp" +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 /* set file offset to offset */ +#endif +#ifndef SEEK_CUR +#define SEEK_CUR 1 /* set file offset to current plus offset */ +#endif +#ifndef SEEK_END +#define SEEK_END 2 /* set file offset to EOF plus offset */ +#endif + +#define TMP_MAX 26 + +#define stdin (_impure_ptr->_stdin) +#define stdout (_impure_ptr->_stdout) +#define stderr (_impure_ptr->_stderr) + +#define _stdin_r(x) ((x)->_stdin) +#define _stdout_r(x) ((x)->_stdout) +#define _stderr_r(x) ((x)->_stderr) + +/* + * Functions defined in ANSI C standard. + */ + +#ifdef __GNUC__ +#define __VALIST __gnuc_va_list +#else +#define __VALIST char* +#endif + +#ifndef _REENT_ONLY +int _EXFUN(remove, (const char *)); +int _EXFUN(rename, (const char *, const char *)); +#endif +char * _EXFUN(tempnam, (const char *, const char *)); +FILE * _EXFUN(tmpfile, (void)); +char * _EXFUN(tmpnam, (char *)); +int _EXFUN(fclose, (FILE *)); +int _EXFUN(fflush, (FILE *)); +FILE * _EXFUN(freopen, (const char *, const char *, FILE *)); +void _EXFUN(setbuf, (FILE *, char *)); +int _EXFUN(setvbuf, (FILE *, char *, int, size_t)); +int _EXFUN(fprintf, (FILE *, const char *, ...)); +int _EXFUN(fscanf, (FILE *, const char *, ...)); +int _EXFUN(printf, (const char *, ...)); +int _EXFUN(scanf, (const char *, ...)); +int _EXFUN(sscanf, (const char *, const char *, ...)); +int _EXFUN(vfprintf, (FILE *, const char *, __VALIST)); +int _EXFUN(vprintf, (const char *, __VALIST)); +int _EXFUN(vsprintf, (char *, const char *, __VALIST)); +int _EXFUN(vsnprintf, (char *, size_t, const char *, __VALIST)); +int _EXFUN(fgetc, (FILE *)); +char * _EXFUN(fgets, (char *, int, FILE *)); +int _EXFUN(fputc, (int, FILE *)); +int _EXFUN(fputs, (const char *, FILE *)); +int _EXFUN(getc, (FILE *)); +int _EXFUN(getchar, (void)); +char * _EXFUN(gets, (char *)); +int _EXFUN(putc, (int, FILE *)); +int _EXFUN(putchar, (int)); +int _EXFUN(puts, (const char *)); +int _EXFUN(ungetc, (int, FILE *)); +size_t _EXFUN(fread, (_PTR, size_t _size, size_t _n, FILE *)); +size_t _EXFUN(fwrite, (const _PTR , size_t _size, size_t _n, FILE *)); +int _EXFUN(fgetpos, (FILE *, fpos_t *)); +int _EXFUN(fseek, (FILE *, long, int)); +int _EXFUN(fsetpos, (FILE *, const fpos_t *)); +long _EXFUN(ftell, ( FILE *)); +void _EXFUN(rewind, (FILE *)); +void _EXFUN(clearerr, (FILE *)); +int _EXFUN(feof, (FILE *)); +int _EXFUN(ferror, (FILE *)); +void _EXFUN(perror, (const char *)); +#ifndef _REENT_ONLY +FILE * _EXFUN(fopen, (const char *_name, const char *_type)); +int _EXFUN(sprintf, (char *, const char *, ...)); +int _EXFUN(snprintf, (char *, size_t, const char *, ...)); +#endif +#ifndef __STRICT_ANSI__ +int _EXFUN(vfiprintf, (FILE *, const char *, __VALIST)); +int _EXFUN(iprintf, (const char *, ...)); +int _EXFUN(fiprintf, (FILE *, const char *, ...)); +int _EXFUN(siprintf, (char *, const char *, ...)); +#endif + +/* + * Routines in POSIX 1003.1. + */ + +#ifndef __STRICT_ANSI__ +#ifndef _REENT_ONLY +FILE * _EXFUN(fdopen, (int, const char *)); +#endif +int _EXFUN(fileno, (FILE *)); +int _EXFUN(getw, (FILE *)); +int _EXFUN(pclose, (FILE *)); +FILE * _EXFUN(popen, (const char *, const char *)); +int _EXFUN(putw, (int, FILE *)); +void _EXFUN(setbuffer, (FILE *, char *, int)); +int _EXFUN(setlinebuf, (FILE *)); +#endif + +/* + * Recursive versions of the above. + */ + +FILE * _EXFUN(_fdopen_r, (struct _reent *, int, const char *)); +FILE * _EXFUN(_fopen_r, (struct _reent *, const char *, const char *)); +int _EXFUN(_getchar_r, (struct _reent *)); +char * _EXFUN(_gets_r, (struct _reent *, char *)); +int _EXFUN(_iprintf_r, (struct _reent *, const char *, ...)); +int _EXFUN(_mkstemp_r, (struct _reent *, char *)); +char * _EXFUN(_mktemp_r, (struct _reent *, char *)); +void _EXFUN(_perror_r, (struct _reent *, const char *)); +int _EXFUN(_printf_r, (struct _reent *, const char *, ...)); +int _EXFUN(_putchar_r, (struct _reent *, int)); +int _EXFUN(_puts_r, (struct _reent *, const char *)); +int _EXFUN(_remove_r, (struct _reent *, const char *)); +int _EXFUN(_rename_r, (struct _reent *, + const char *_old, const char *_new)); +int _EXFUN(_scanf_r, (struct _reent *, const char *, ...)); +int _EXFUN(_sprintf_r, (struct _reent *, char *, const char *, ...)); +int _EXFUN(_snprintf_r, (struct _reent *, char *, size_t, const char *, ...)); +char * _EXFUN(_tempnam_r, (struct _reent *, const char *, const char *)); +FILE * _EXFUN(_tmpfile_r, (struct _reent *)); +char * _EXFUN(_tmpnam_r, (struct _reent *, char *)); +int _EXFUN(_vfprintf_r, (struct _reent *, FILE *, const char *, __VALIST)); +int _EXFUN(_vprintf_r, (struct _reent *, const char *, __VALIST)); +int _EXFUN(_vsprintf_r, (struct _reent *, char *, const char *, __VALIST)); +int _EXFUN(_vsnprintf_r, (struct _reent *, char *, size_t, const char *, __VALIST)); + +/* + * Routines internal to the implementation. + */ + +int _EXFUN(__srget, (FILE *)); +int _EXFUN(__swbuf, (int, FILE *)); + +/* + * Stdio function-access interface. + */ + +#ifndef __STRICT_ANSI__ +FILE *_EXFUN(funopen,(const _PTR _cookie, + int (*readfn)(_PTR _cookie, char *_buf, int _n), + int (*writefn)(_PTR _cookie, const char *_buf, int _n), + fpos_t (*seekfn)(_PTR _cookie, fpos_t _off, int _whence), + int (*closefn)(_PTR _cookie))); + +#define fropen(cookie, fn) funopen(cookie, fn, (int (*)())0, (fpos_t (*)())0, (int (*)())0) +#define fwopen(cookie, fn) funopen(cookie, (int (*)())0, fn, (fpos_t (*)())0, (int (*)())0) +#endif + +/* + * The __sfoo macros are here so that we can + * define function versions in the C library. + */ +#define __sgetc(p) (--(p)->_r < 0 ? __srget(p) : (int)(*(p)->_p++)) +#ifdef _never /* __GNUC__ */ +/* If this inline is actually used, then systems using coff debugging + info get hopelessly confused. 21sept93 rich@cygnus.com. */ +static __inline int __sputc(int _c, FILE *_p) { + if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n')) + return (*_p->_p++ = _c); + else + return (__swbuf(_c, _p)); +} +#else +/* + * This has been tuned to generate reasonable code on the vax using pcc + */ +#define __sputc(c, p) \ + (--(p)->_w < 0 ? \ + (p)->_w >= (p)->_lbfsize ? \ + (*(p)->_p = (c)), *(p)->_p != '\n' ? \ + (int)*(p)->_p++ : \ + __swbuf('\n', p) : \ + __swbuf((int)(c), p) : \ + (*(p)->_p = (c), (int)*(p)->_p++)) +#endif + +#define __sfeof(p) (((p)->_flags & __SEOF) != 0) +#define __sferror(p) (((p)->_flags & __SERR) != 0) +#define __sclearerr(p) ((void)((p)->_flags &= ~(__SERR|__SEOF))) +#define __sfileno(p) ((p)->_file) + +#define feof(p) __sfeof(p) +#define ferror(p) __sferror(p) +#define clearerr(p) __sclearerr(p) + +#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */ +#define fileno(p) __sfileno(p) +#endif + +#ifndef lint +#define getc(fp) __sgetc(fp) +#define putc(x, fp) __sputc(x, fp) +#endif /* lint */ + +#define getchar() getc(stdin) +#define putchar(x) putc(x, stdout) + +#ifndef __STRICT_ANSI__ +/* fast always-buffered version, true iff error */ +#define fast_putc(x,p) (--(p)->_w < 0 ? \ + __swbuf((int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0)) + +#define L_cuserid 9 /* posix says it goes in stdio.h :( */ +#ifdef __CYGWIN32__ +#define L_ctermid 16 +#endif +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _STDIO_H_ */ diff --git a/newlib/libc/include/stdlib.h b/newlib/libc/include/stdlib.h new file mode 100644 index 000000000..8c21de647 --- /dev/null +++ b/newlib/libc/include/stdlib.h @@ -0,0 +1,142 @@ +/* + * stdlib.h + * + * Definitions for common types, variables, and functions. + */ + +#ifndef _STDLIB_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _STDLIB_H_ + +#include "_ansi.h" + +#define __need_size_t +#define __need_wchar_t +#include <stddef.h> + +#include <sys/reent.h> + +typedef struct +{ + int quot; /* quotient */ + int rem; /* remainder */ +} div_t; + +typedef struct +{ + long quot; /* quotient */ + long rem; /* remainder */ +} ldiv_t; + +#ifndef NULL +#define NULL 0 +#endif + +#define EXIT_FAILURE 1 +#define EXIT_SUCCESS 0 + +#define RAND_MAX 0x7fffffff + +#if (defined(__CYGWIN__) || defined(__CYGWIN32__)) && ! defined(_COMPILING_NEWLIB) +extern __declspec(dllimport) int __mb_cur_max; +#else +extern int __mb_cur_max; +#endif + +#define MB_CUR_MAX __mb_cur_max + +_VOID _EXFUN(abort,(_VOID) _ATTRIBUTE ((noreturn))); +int _EXFUN(abs,(int)); +int _EXFUN(atexit,(_VOID (*__func)(_VOID))); +double _EXFUN(atof,(const char *__nptr)); +#ifndef __STRICT_ANSI__ +float _EXFUN(atoff,(const char *__nptr)); +#endif +int _EXFUN(atoi,(const char *__nptr)); +long _EXFUN(atol,(const char *__nptr)); +_PTR _EXFUN(bsearch,(const _PTR __key, + const _PTR __base, + size_t __nmemb, + size_t __size, + int _EXFUN((*_compar),(const _PTR, const _PTR)))); +_PTR _EXFUN(calloc,(size_t __nmemb, size_t __size)); +div_t _EXFUN(div,(int __numer, int __denom)); +_VOID _EXFUN(exit,(int __status) _ATTRIBUTE ((noreturn))); +_VOID _EXFUN(free,(_PTR)); +char * _EXFUN(getenv,(const char *__string)); +char * _EXFUN(_getenv_r,(struct _reent *, const char *__string)); +char * _EXFUN(_findenv,(_CONST char *, int *)); +char * _EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *)); +long _EXFUN(labs,(long)); +ldiv_t _EXFUN(ldiv,(long __numer, long __denom)); +_PTR _EXFUN(malloc,(size_t __size)); +int _EXFUN(mblen,(const char *, size_t)); +int _EXFUN(_mblen_r,(struct _reent *, const char *, size_t, int *)); +int _EXFUN(mbtowc,(wchar_t *, const char *, size_t)); +int _EXFUN(_mbtowc_r,(struct _reent *, wchar_t *, const char *, size_t, int *)); +int _EXFUN(wctomb,(char *, wchar_t)); +int _EXFUN(_wctomb_r,(struct _reent *, char *, wchar_t, int *)); +size_t _EXFUN(mbstowcs,(wchar_t *, const char *, size_t)); +size_t _EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *, const char *, size_t, int *)); +size_t _EXFUN(wcstombs,(char *, const wchar_t *, size_t)); +size_t _EXFUN(_wcstombs_r,(struct _reent *, char *, const wchar_t *, size_t, int *)); +_VOID _EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, int(*_compar)(const _PTR, const _PTR))); +int _EXFUN(rand,(_VOID)); +_PTR _EXFUN(realloc,(_PTR __r, size_t __size)); +_VOID _EXFUN(srand,(unsigned __seed)); +double _EXFUN(strtod,(const char *__n, char **_end_PTR)); +#ifndef __STRICT_ANSI__ +float _EXFUN(strtodf,(const char *__n, char **_end_PTR)); +#endif +long _EXFUN(strtol,(const char *__n, char **_end_PTR, int __base)); +unsigned long _EXFUN(strtoul,(const char *_n_PTR, char **_end_PTR, int __base)); +unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *_n_PTR, char **_end_PTR, int __base)); +int _EXFUN(system,(const char *__string)); + +#ifndef __STRICT_ANSI__ +_VOID _EXFUN(cfree,(_PTR)); +int _EXFUN(putenv,(const char *__string)); +int _EXFUN(_putenv_r,(struct _reent *, const char *__string)); +int _EXFUN(setenv,(const char *__string, const char *__value, int __overwrite)); +int _EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite)); + +char * _EXFUN(gcvt,(double,int,char *)); +char * _EXFUN(gcvtf,(float,int,char *)); +char * _EXFUN(fcvt,(double,int,int *,int *)); +char * _EXFUN(fcvtf,(float,int,int *,int *)); +char * _EXFUN(ecvt,(double,int,int *,int *)); +char * _EXFUN(ecvtbuf,(double, int, int*, int*, char *)); +char * _EXFUN(fcvtbuf,(double, int, int*, int*, char *)); +char * _EXFUN(ecvtf,(float,int,int *,int *)); +char * _EXFUN(dtoa,(double, int, int, int *, int*, char**)); +int _EXFUN(rand_r,(unsigned *__seed)); + +#ifdef __CYGWIN32__ +char * _EXFUN(realpath,(const char *, char *)); +void _EXFUN(unsetenv,(const char *__string)); +void _EXFUN(_unsetenv_r,(struct _reent *, const char *__string)); +int _EXFUN(random,(_VOID)); +long _EXFUN(srandom,(unsigned __seed)); +char * _EXFUN(ptsname, (int)); +int _EXFUN(grantpt, (int)); +int _EXFUN(unlockpt,(int)); +#endif + +#endif /* ! __STRICT_ANSI__ */ + +char * _EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**)); +_PTR _EXFUN(_malloc_r,(struct _reent *, size_t)); +_PTR _EXFUN(_calloc_r,(struct _reent *, size_t, size_t)); +_VOID _EXFUN(_free_r,(struct _reent *, _PTR)); +_PTR _EXFUN(_realloc_r,(struct _reent *, _PTR, size_t)); +_VOID _EXFUN(_mstats_r,(struct _reent *, char *)); +int _EXFUN(_system_r,(struct _reent *, const char *)); + +_VOID _EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *)); + +#ifdef __cplusplus +} +#endif +#endif /* _STDLIB_H_ */ diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h new file mode 100644 index 000000000..a9494f826 --- /dev/null +++ b/newlib/libc/include/string.h @@ -0,0 +1,92 @@ +/* + * string.h + * + * Definitions for memory and string functions. + */ + +#ifndef _STRING_H_ +#define _STRING_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "_ansi.h" +#include <sys/reent.h> + +#define __need_size_t +#include <stddef.h> + +#ifndef NULL +#define NULL 0 +#endif + +_PTR _EXFUN(memchr,(const _PTR, int, size_t)); +int _EXFUN(memcmp,(const _PTR, const _PTR, size_t)); +_PTR _EXFUN(memcpy,(_PTR, const _PTR, size_t)); +_PTR _EXFUN(memmove,(_PTR, const _PTR, size_t)); +_PTR _EXFUN(memset,(_PTR, int, size_t)); +char *_EXFUN(strcat,(char *, const char *)); +char *_EXFUN(strchr,(const char *, int)); +int _EXFUN(strcmp,(const char *, const char *)); +int _EXFUN(strcoll,(const char *, const char *)); +char *_EXFUN(strcpy,(char *, const char *)); +size_t _EXFUN(strcspn,(const char *, const char *)); +char *_EXFUN(strerror,(int)); +size_t _EXFUN(strlen,(const char *)); +char *_EXFUN(strncat,(char *, const char *, size_t)); +int _EXFUN(strncmp,(const char *, const char *, size_t)); +char *_EXFUN(strncpy,(char *, const char *, size_t)); +char *_EXFUN(strpbrk,(const char *, const char *)); +char *_EXFUN(strrchr,(const char *, int)); +size_t _EXFUN(strspn,(const char *, const char *)); +char *_EXFUN(strstr,(const char *, const char *)); + +#ifndef _REENT_ONLY +char *_EXFUN(strtok,(char *, const char *)); +#endif + +size_t _EXFUN(strxfrm,(char *, const char *, size_t)); + +#ifndef __STRICT_ANSI__ +char *_EXFUN(strtok_r,(char *, const char *, char **)); + +int _EXFUN(bcmp,(const char *, const char *, size_t)); +void _EXFUN(bcopy,(const char *, char *, size_t)); +void _EXFUN(bzero,(char *, size_t)); +int _EXFUN(ffs,(int)); +char *_EXFUN(index,(const char *, int)); +_PTR _EXFUN(memccpy,(_PTR, const _PTR, int, size_t)); +char *_EXFUN(rindex,(const char *, int)); +int _EXFUN(strcasecmp,(const char *, const char *)); +char *_EXFUN(strdup,(const char *)); +char *_EXFUN(_strdup_r,(struct _reent *, const char *)); +int _EXFUN(strncasecmp,(const char *, const char *, size_t)); +char *_EXFUN(strsep,(char **, const char *)); +char *_EXFUN(strlwr,(char *)); +char *_EXFUN(strupr,(char *)); +#ifdef __CYGWIN32__ +char *_EXFUN(strsignal, (int __signo)); +int _EXFUN(strtosigno, (const char *__name)); +#endif + +/* These function names are used on Windows and perhaps other systems. */ +#ifndef strcmpi +#define strcmpi strcasecmp +#endif +#ifndef stricmp +#define stricmp strcasecmp +#endif +#ifndef strncmpi +#define strncmpi strncasecmp +#endif +#ifndef strnicmp +#define strnicmp strncasecmp +#endif + +#endif /* ! __STRICT_ANSI__ */ + +#ifdef __cplusplus +} +#endif +#endif /* _STRING_H_ */ diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h new file mode 100644 index 000000000..8186f2d9d --- /dev/null +++ b/newlib/libc/include/sys/_types.h @@ -0,0 +1,15 @@ +/* ANSI C namespace clean utility typedefs */ + +/* This file defines various typedefs needed by the system calls that support + the C library. Basically, they're just the POSIX versions with an '_' + prepended. This file lives in the `sys' directory so targets can provide + their own if desired (or they can put target dependant conditionals here). +*/ + +#ifndef _SYS__TYPES_H +#define _SYS__TYPES_H + +typedef long _off_t; +typedef long _ssize_t; + +#endif /* _SYS__TYPES_H */ diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h new file mode 100644 index 000000000..e274119bc --- /dev/null +++ b/newlib/libc/include/sys/config.h @@ -0,0 +1,115 @@ +#ifndef __SYS_CONFIG_H__ +#define __SYS_CONFIG_H__ + +/* exceptions first */ +/* ??? Why is much of this stuff duplicated with machine/ieeefp.h? */ +#if defined(__H8300__) || defined(__H8500__) || defined (__H8300H__) || defined(__W65__) || defined (__H8300S__) +#define _FLOAT_ARG float +#define __SMALL_BITFIELDS +#define _DOUBLE_IS_32BITS +#define __IEEE_BIG_ENDIAN +/* ??? This conditional is true for the h8500 and the w65, defining H8300 + in those cases probably isn't the right thing to do. */ +#define H8300 1 +#endif + +#ifdef __W65__ +#define _DOUBLE_IS_32BITS +#define __SMALL_BITFIELDS +#define __IEEE_BIG_ENDIAN +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX 32767 +#define UINT_MAX 65535 + +#endif + +/* 16 bit integer machines */ +#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8300__) || defined(__H8500__) || defined(__W65__) || defined (__H8300H__) || defined (__H8300S__) || defined (__mn10200__) + +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX 32767 +#define UINT_MAX 65535 +#endif + +#if defined(__D10V__) +#undef INT_MAX +#undef UINT_MAX +#define INT_MAX __INT_MAX__ +#define UINT_MAX (__INT_MAX__ * 2U + 1) +#define _DOUBLE_IS_32BITS +#define _POINTER_INT short +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef ___AM29K__ +#define _FLOAT_RET double +#endif + +#ifdef __i386__ +#ifndef __unix__ +/* in other words, go32 */ +#define _FLOAT_RET double +#endif +#endif + +#ifdef __M32R__ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __m68k__ +/* This is defined in machine/ieeefp.h; need to check is it redundant here? */ +#define __IEEE_BIG_ENDIAN +#endif + +#ifdef __mn10300__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __mn10200__ +#define _DOUBLE_IS_32BITS +#define __SMALL_BITFIELDS +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __TIC80__ +#define __IEEE_LITTLE_ENDIAN +#endif + +#ifdef __v850 +#define __IEEE_LITTLE_ENDIAN +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__)) +#endif + +#ifdef __D30V__ +#define __IEEE_BIG_ENDIAN +#endif + +/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */ +#if defined(__PPC__) && defined(_CALL_SYSV) +#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata"))) +#endif + +#ifdef __sparc__ +#ifdef __LITTLE_ENDIAN_DATA__ +#define __IEEE_LITTLE_ENDIAN +#else +#define __IEEE_BIG_ENDIAN +#endif +#endif + +#if INT_MAX == 32767 +typedef long int __int32_t; +typedef unsigned long int __uint32_t; +#else +typedef int __int32_t; +typedef unsigned int __uint32_t; +#endif + +#ifndef _POINTER_INT +#define _POINTER_INT long +#endif + + +#endif /* __SYS_CONFIG_H__ */ diff --git a/newlib/libc/include/sys/dirent.h b/newlib/libc/include/sys/dirent.h new file mode 100644 index 000000000..f2f2342d5 --- /dev/null +++ b/newlib/libc/include/sys/dirent.h @@ -0,0 +1,15 @@ +/* <dirent.h> includes <sys/dirent.h>, which is this file. On a + system which supports <dirent.h>, this file is overridden by + dirent.h in the libc/sys/.../sys directory. On a system which does + not support <dirent.h>, we will get this file which tries to find + any other <dirent.h> which may be lurking around. If there isn't + one, the user will get an error indicating that there is no + <dirent.h>. */ + +#ifdef __cplusplus +extern "C" { +#endif +#include_next <dirent.h> +#ifdef __cplusplus +} +#endif diff --git a/newlib/libc/include/sys/errno.h b/newlib/libc/include/sys/errno.h new file mode 100644 index 000000000..0247fa232 --- /dev/null +++ b/newlib/libc/include/sys/errno.h @@ -0,0 +1,154 @@ +/* errno is not a global variable, because that would make using it + non-reentrant. Instead, its address is returned by the function + __errno. */ + +#ifndef _SYS_ERRNO_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _SYS_ERRNO_H_ + +#include <sys/reent.h> + +#ifndef _REENT_ONLY +#define errno (*__errno()) +extern int *__errno _PARAMS ((void)); +#endif + +#if !defined(__CYGWIN32__) || defined(__INSIDE_CYGWIN__) +extern _CONST char * _CONST _sys_errlist[]; +extern int _sys_nerr; +#else +extern _CONST char * _CONST _sys_errlist[] __declspec(dllimport); +extern int _sys_nerr __declspec(dllimport); +#endif + +#define __errno_r(ptr) ((ptr)->_errno) + +#define EPERM 1 /* Not super-user */ +#define ENOENT 2 /* No such file or directory */ +#define ESRCH 3 /* No such process */ +#define EINTR 4 /* Interrupted system call */ +#define EIO 5 /* I/O error */ +#define ENXIO 6 /* No such device or address */ +#define E2BIG 7 /* Arg list too long */ +#define ENOEXEC 8 /* Exec format error */ +#define EBADF 9 /* Bad file number */ +#define ECHILD 10 /* No children */ +#define EAGAIN 11 /* No more processes */ +#define ENOMEM 12 /* Not enough core */ +#define EACCES 13 /* Permission denied */ +#define EFAULT 14 /* Bad address */ +#define ENOTBLK 15 /* Block device required */ +#define EBUSY 16 /* Mount device busy */ +#define EEXIST 17 /* File exists */ +#define EXDEV 18 /* Cross-device link */ +#define ENODEV 19 /* No such device */ +#define ENOTDIR 20 /* Not a directory */ +#define EISDIR 21 /* Is a directory */ +#define EINVAL 22 /* Invalid argument */ +#define ENFILE 23 /* Too many open files in system */ +#define EMFILE 24 /* Too many open files */ +#define ENOTTY 25 /* Not a typewriter */ +#define ETXTBSY 26 /* Text file busy */ +#define EFBIG 27 /* File too large */ +#define ENOSPC 28 /* No space left on device */ +#define ESPIPE 29 /* Illegal seek */ +#define EROFS 30 /* Read only file system */ +#define EMLINK 31 /* Too many links */ +#define EPIPE 32 /* Broken pipe */ +#define EDOM 33 /* Math arg out of domain of func */ +#define ERANGE 34 /* Math result not representable */ +#define ENOMSG 35 /* No message of desired type */ +#define EIDRM 36 /* Identifier removed */ +#define ECHRNG 37 /* Channel number out of range */ +#define EL2NSYNC 38 /* Level 2 not synchronized */ +#define EL3HLT 39 /* Level 3 halted */ +#define EL3RST 40 /* Level 3 reset */ +#define ELNRNG 41 /* Link number out of range */ +#define EUNATCH 42 /* Protocol driver not attached */ +#define ENOCSI 43 /* No CSI structure available */ +#define EL2HLT 44 /* Level 2 halted */ +#define EDEADLK 45 /* Deadlock condition */ +#define ENOLCK 46 /* No record locks available */ +#define EBADE 50 /* Invalid exchange */ +#define EBADR 51 /* Invalid request descriptor */ +#define EXFULL 52 /* Exchange full */ +#define ENOANO 53 /* No anode */ +#define EBADRQC 54 /* Invalid request code */ +#define EBADSLT 55 /* Invalid slot */ +#define EDEADLOCK 56 /* File locking deadlock error */ +#define EBFONT 57 /* Bad font file fmt */ +#define ENOSTR 60 /* Device not a stream */ +#define ENODATA 61 /* No data (for no delay io) */ +#define ETIME 62 /* Timer expired */ +#define ENOSR 63 /* Out of streams resources */ +#define ENONET 64 /* Machine is not on the network */ +#define ENOPKG 65 /* Package not installed */ +#define EREMOTE 66 /* The object is remote */ +#define ENOLINK 67 /* The link has been severed */ +#define EADV 68 /* Advertise error */ +#define ESRMNT 69 /* Srmount error */ +#define ECOMM 70 /* Communication error on send */ +#define EPROTO 71 /* Protocol error */ +#define EMULTIHOP 74 /* Multihop attempted */ +#define ELBIN 75 /* Inode is remote (not really error) */ +#define EDOTDOT 76 /* Cross mount point (not really error) */ +#define EBADMSG 77 /* Trying to read unreadable message */ +#define ENOTUNIQ 80 /* Given log. name not unique */ +#define EBADFD 81 /* f.d. invalid for this operation */ +#define EREMCHG 82 /* Remote address changed */ +#define ELIBACC 83 /* Can't access a needed shared lib */ +#define ELIBBAD 84 /* Accessing a corrupted shared lib */ +#define ELIBSCN 85 /* .lib section in a.out corrupted */ +#define ELIBMAX 86 /* Attempting to link in too many libs */ +#define ELIBEXEC 87 /* Attempting to exec a shared library */ +#define ENOSYS 88 /* Function not implemented */ +#define ENMFILE 89 /* No more files */ +#define ENOTEMPTY 90 /* Directory not empty */ +#define ENAMETOOLONG 91 /* File or path name too long */ +#define ELOOP 92 /* Too many symbolic links */ +#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ +#define EPFNOSUPPORT 96 /* Protocol family not supported */ +#define ECONNRESET 104 /* Connection reset by peer */ +#define ENOBUFS 105 /* No buffer space available */ +#define EAFNOSUPPORT 106 +#define EPROTOTYPE 107 +#define ENOTSOCK 108 +#define ENOPROTOOPT 109 +#define ESHUTDOWN 110 +#define ECONNREFUSED 111 /* Connection refused */ +#define EADDRINUSE 112 /* Address already in use */ +#define ECONNABORTED 113 /* Connection aborted */ +#define ENETUNREACH 114 +#define ENETDOWN 115 +#define ETIMEDOUT 116 +#define EHOSTDOWN 117 +#define EHOSTUNREACH 118 +#define EINPROGRESS 119 +#define EALREADY 120 +#define EDESTADDRREQ 121 +#define EMSGSIZE 122 +#define EPROTONOSUPPORT 123 +#define ESOCKTNOSUPPORT 124 +#define EADDRNOTAVAIL 125 +#define ENETRESET 126 +#define EISCONN 127 +#define ENOTCONN 128 +#define ETOOMANYREFS 129 +#define EPROCLIM 130 +#define EUSERS 131 +#define EDQUOT 132 +#define ESTALE 133 +#define ENOTSUP 134 +#define ENOMEDIUM 135 + +/* From cygwin32. */ +#define EWOULDBLOCK EAGAIN /* Operation would block */ + +#define __ELASTERROR 2000 /* Users can add values starting here */ + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_ERRNO_H */ diff --git a/newlib/libc/include/sys/fcntl.h b/newlib/libc/include/sys/fcntl.h new file mode 100644 index 000000000..ed32fab9b --- /dev/null +++ b/newlib/libc/include/sys/fcntl.h @@ -0,0 +1,178 @@ + +#ifndef _FCNTL_ +#ifdef __cplusplus +extern "C" { +#endif +#define _FCNTL_ +#include <_ansi.h> +#define _FOPEN (-1) /* from sys/file.h, kernel use only */ +#define _FREAD 0x0001 /* read enabled */ +#define _FWRITE 0x0002 /* write enabled */ +#define _FNDELAY 0x0004 /* non blocking I/O (4.2 style) */ +#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */ +#define _FMARK 0x0010 /* internal; mark during gc() */ +#define _FDEFER 0x0020 /* internal; defer for next gc pass */ +#define _FASYNC 0x0040 /* signal pgrp when data ready */ +#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */ +#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */ +#define _FCREAT 0x0200 /* open with file create */ +#define _FTRUNC 0x0400 /* open with truncation */ +#define _FEXCL 0x0800 /* error on open if file exists */ +#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */ +#define _FSYNC 0x2000 /* do all writes synchronously */ +#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ +#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */ + +#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) + +/* + * Flag values for open(2) and fcntl(2) + * The kernel adds 1 to the open modes to turn it into some + * combination of FREAD and FWRITE. + */ +#define O_RDONLY 0 /* +1 == FREAD */ +#define O_WRONLY 1 /* +1 == FWRITE */ +#define O_RDWR 2 /* +1 == FREAD|FWRITE */ +#define O_APPEND _FAPPEND +#define O_CREAT _FCREAT +#define O_TRUNC _FTRUNC +#define O_EXCL _FEXCL +/* O_SYNC _FSYNC not posix, defined below */ +/* O_NDELAY _FNDELAY set in include/fcntl.h */ +/* O_NDELAY _FNBIO set in 5include/fcntl.h */ +#define O_NONBLOCK _FNONBLOCK +#define O_NOCTTY _FNOCTTY +/* For machines which care - */ +#if defined (_WIN32) || defined (__CYGWIN__) +#define _FBINARY 0x10000 +#define _FTEXT 0x20000 +#define _FNOINHERIT 0x40000 + +#define O_BINARY _FBINARY +#define O_TEXT _FTEXT +#define O_NOINHERIT _FNOINHERIT + +/* The windows header files define versions with a leading underscore. */ +#define _O_RDONLY O_RDONLY +#define _O_WRONLY O_WRONLY +#define _O_RDWR O_RDWR +#define _O_APPEND O_APPEND +#define _O_CREAT O_CREAT +#define _O_TRUNC O_TRUNC +#define _O_EXCL O_EXCL +#define _O_TEXT O_TEXT +#define _O_BINARY O_BINARY +#define _O_RAW O_BINARY +#define _O_NOINHERIT O_NOINHERIT +#endif + +#ifndef _POSIX_SOURCE + +#define O_SYNC _FSYNC + +/* + * Flags that work for fcntl(fd, F_SETFL, FXXXX) + */ +#define FAPPEND _FAPPEND +#define FSYNC _FSYNC +#define FASYNC _FASYNC +#define FNBIO _FNBIO +#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ +#define FNDELAY _FNDELAY + +/* + * Flags that are disallowed for fcntl's (FCNTLCANT); + * used for opens, internal state, or locking. + */ +#define FREAD _FREAD +#define FWRITE _FWRITE +#define FMARK _FMARK +#define FDEFER _FDEFER +#define FSHLOCK _FSHLOCK +#define FEXLOCK _FEXLOCK + +/* + * The rest of the flags, used only for opens + */ +#define FOPEN _FOPEN +#define FCREAT _FCREAT +#define FTRUNC _FTRUNC +#define FEXCL _FEXCL +#define FNOCTTY _FNOCTTY + +#endif /* !_POSIX_SOURCE */ + +/* XXX close on exec request; must match UF_EXCLOSE in user.h */ +#define FD_CLOEXEC 1 /* posix */ + +/* fcntl(2) requests */ +#define F_DUPFD 0 /* Duplicate fildes */ +#define F_GETFD 1 /* Get fildes flags (close on exec) */ +#define F_SETFD 2 /* Set fildes flags (close on exec) */ +#define F_GETFL 3 /* Get file flags */ +#define F_SETFL 4 /* Set file flags */ +#ifndef _POSIX_SOURCE +#define F_GETOWN 5 /* Get owner - for ASYNC */ +#define F_SETOWN 6 /* Set owner - for ASYNC */ +#endif /* !_POSIX_SOURCE */ +#define F_GETLK 7 /* Get record-locking information */ +#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ +#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ +#ifndef _POSIX_SOURCE +#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ +#define F_RSETLK 11 /* Set or unlock a remote lock */ +#define F_CNVT 12 /* Convert a fhandle to an open fd */ +#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ +#endif /* !_POSIX_SOURCE */ + +/* fcntl(2) flags (l_type field of flock structure) */ +#define F_RDLCK 1 /* read lock */ +#define F_WRLCK 2 /* write lock */ +#define F_UNLCK 3 /* remove lock(s) */ +#ifndef _POSIX_SOURCE +#define F_UNLKSYS 4 /* remove remote locks for a given system */ +#endif /* !_POSIX_SOURCE */ + +/*#include <sys/stdtypes.h>*/ + +/* file segment locking set data type - information passed to system by user */ +struct flock { + short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ + short l_whence; /* flag to choose starting offset */ + long l_start; /* relative offset, in bytes */ + long l_len; /* length, in bytes; 0 means lock to EOF */ + short l_pid; /* returned with F_GETLK */ + short l_xxx; /* reserved for future use */ +}; + +#ifndef _POSIX_SOURCE +/* extended file segment locking set data type */ +struct eflock { + short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ + short l_whence; /* flag to choose starting offset */ + long l_start; /* relative offset, in bytes */ + long l_len; /* length, in bytes; 0 means lock to EOF */ + short l_pid; /* returned with F_GETLK */ + short l_xxx; /* reserved for future use */ + long l_rpid; /* Remote process id wanting this lock */ + long l_rsys; /* Remote system id wanting this lock */ +}; +#endif /* !_POSIX_SOURCE */ + + +#include <sys/types.h> +#include <sys/stat.h> /* sigh. for the mode bits for open/creat */ + +extern int open _PARAMS ((const char *, int, ...)); +extern int creat _PARAMS ((const char *, mode_t)); +extern int fcntl _PARAMS ((int, int, ...)); + +/* Provide _<systemcall> prototypes for functions provided by some versions + of newlib. */ +extern int _open _PARAMS ((const char *, int, ...)); +extern int _fcntl _PARAMS ((int, int, ...)); + +#ifdef __cplusplus +} +#endif +#endif /* !_FCNTL_ */ diff --git a/newlib/libc/include/sys/file.h b/newlib/libc/include/sys/file.h new file mode 100644 index 000000000..58d4fac31 --- /dev/null +++ b/newlib/libc/include/sys/file.h @@ -0,0 +1,2 @@ + +#include <sys/fcntl.h> diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h new file mode 100644 index 000000000..3470ef5d0 --- /dev/null +++ b/newlib/libc/include/sys/param.h @@ -0,0 +1,18 @@ +/* This is a dummy <sys/param.h> file, not customized for any + particular system. If there is a param.h in libc/sys/SYSDIR/sys, + it will override this one. */ + +#ifndef _SYS_PARAM_H +# define _SYS_PARAM_H + +# define HZ (60) +# define NOFILE (60) +# define PATHSIZE (1024) + +#ifdef __i386__ +#define BIG_ENDIAN 4321 +#define LITTLE_ENDIAN 1234 +#define BYTE_ORDER LITTLE_ENDIAN +#endif + +#endif diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h new file mode 100644 index 000000000..110493675 --- /dev/null +++ b/newlib/libc/include/sys/reent.h @@ -0,0 +1,238 @@ +/* This header file provides the reentrancy. */ + +/* WARNING: All identifiers here must begin with an underscore. This file is + included by stdio.h and others and we therefore must only use identifiers + in the namespace allotted to us. */ + +#ifndef _SYS_REENT_H_ +#ifdef __cplusplus +extern "C" { +#endif +#define _SYS_REENT_H_ + +#include <_ansi.h> +#include <time.h> + +#ifndef __Long +#if __LONG_MAX__ == 2147483647L +#define __Long long +typedef unsigned __Long __ULong; +#elif __INT_MAX__ == 2147483647 +#define __Long int +typedef unsigned __Long __ULong; +#endif +#endif + +#ifndef __Long +#define __Long __int32_t +typedef __uint32_t __ULong; +#endif + +struct _glue +{ + struct _glue *_next; + int _niobs; + struct __sFILE *_iobs; +}; + +struct _Bigint +{ + struct _Bigint *_next; + int _k, _maxwds, _sign, _wds; + __ULong _x[1]; +}; + +/* + * atexit() support + */ + +#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ + +struct _atexit { + struct _atexit *_next; /* next in list */ + int _ind; /* next index in this table */ + void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */ +}; + +/* + * Stdio buffers. + * + * This and __sFILE are defined here because we need them for struct _reent, + * but we don't want stdio.h included when stdlib.h is. + */ + +struct __sbuf { + unsigned char *_base; + int _size; +}; + +/* + * We need fpos_t for the following, but it doesn't have a leading "_", + * so we use _fpos_t instead. + */ + +typedef long _fpos_t; /* XXX must match off_t in <sys/types.h> */ + /* (and must be `long' for now) */ + +/* + * Stdio state variables. + * + * The following always hold: + * + * if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR), + * _lbfsize is -_bf._size, else _lbfsize is 0 + * if _flags&__SRD, _w is 0 + * if _flags&__SWR, _r is 0 + * + * This ensures that the getc and putc macros (or inline functions) never + * try to write or read from a file that is in `read' or `write' mode. + * (Moreover, they can, and do, automatically switch from read mode to + * write mode, and back, on "r+" and "w+" files.) + * + * _lbfsize is used only to make the inline line-buffered output stream + * code as compact as possible. + * + * _ub, _up, and _ur are used when ungetc() pushes back more characters + * than fit in the current _bf, or when ungetc() pushes back a character + * that does not match the previous one in _bf. When this happens, + * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff + * _ub._base!=NULL) and _up and _ur save the current values of _p and _r. + */ + +struct __sFILE { + unsigned char *_p; /* current position in (some) buffer */ + int _r; /* read space left for getc() */ + int _w; /* write space left for putc() */ + short _flags; /* flags, below; this FILE is free if 0 */ + short _file; /* fileno, if Unix descriptor, else -1 */ + struct __sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */ + int _lbfsize; /* 0 or -_bf._size, for inline putc */ + + /* operations */ + _PTR _cookie; /* cookie passed to io functions */ + + int _EXFUN((*_read),(_PTR _cookie, char *_buf, int _n)); + int _EXFUN((*_write),(_PTR _cookie, const char *_buf, int _n)); + _fpos_t _EXFUN((*_seek),(_PTR _cookie, _fpos_t _offset, int _whence)); + int _EXFUN((*_close),(_PTR _cookie)); + + /* separate buffer for long sequences of ungetc() */ + struct __sbuf _ub; /* ungetc buffer */ + unsigned char *_up; /* saved _p when _p is doing ungetc data */ + int _ur; /* saved _r when _r is counting ungetc data */ + + /* tricks to meet minimum requirements even when malloc() fails */ + unsigned char _ubuf[3]; /* guarantee an ungetc() buffer */ + unsigned char _nbuf[1]; /* guarantee a getc() buffer */ + + /* separate buffer for fgetline() when line crosses buffer boundary */ + struct __sbuf _lb; /* buffer for fgetline() */ + + /* Unix stdio files get aligned to block boundaries on fseek() */ + int _blksize; /* stat.st_blksize (may be != _bf._size) */ + int _offset; /* current lseek offset */ + + struct _reent *_data; +}; + +/* + * struct _reent + * + * This structure contains *all* globals needed by the library. + * It's raison d'etre is to facilitate threads by making all library routines + * reentrant. IE: All state information is contained here. + */ + +struct _reent +{ + /* local copy of errno */ + int _errno; + + /* FILE is a big struct and may change over time. To try to achieve binary + compatibility with future versions, put stdin,stdout,stderr here. + These are pointers into member __sf defined below. */ + struct __sFILE *_stdin, *_stdout, *_stderr; + + int _inc; /* used by tmpnam */ + char _emergency[25]; + + int _current_category; /* used by setlocale */ + _CONST char *_current_locale; + + int __sdidinit; /* 1 means stdio has been init'd */ + + void _EXFUN((*__cleanup),(struct _reent *)); + + /* used by mprec routines */ + struct _Bigint *_result; + int _result_k; + struct _Bigint *_p5s; + struct _Bigint **_freelist; + + /* used by some fp conversion routines */ + int _cvtlen; /* should be size_t */ + char *_cvtbuf; + + union + { + struct + { + unsigned int _rand_next; + char * _strtok_last; + char _asctime_buf[26]; + struct tm _localtime_buf; + int _gamma_signgam; + } _reent; + /* Two next two fields were once used by malloc. They are no longer + used. They are used to preserve the space used before so as to + allow addition of new reent fields and keep binary compatibility. */ + struct + { +#define _N_LISTS 30 + unsigned char * _nextf[_N_LISTS]; + unsigned int _nmalloc[_N_LISTS]; + } _unused; + } _new; + + /* atexit stuff */ + struct _atexit *_atexit; /* points to head of LIFO stack */ + struct _atexit _atexit0; /* one guaranteed table, required by ANSI */ + + /* signal info */ + void (**(_sig_func))(int); + + /* These are here last so that __sFILE can grow without changing the offsets + of the above members (on the off chance that future binary compatibility + would be broken otherwise). */ + struct _glue __sglue; /* root of glue chain */ + struct __sFILE __sf[3]; /* first three file descriptors */ +}; + +#define _REENT_INIT(var) \ + { 0, &var.__sf[0], &var.__sf[1], &var.__sf[2], 0, "", 0, "C", \ + 0, NULL, NULL, 0, NULL, NULL, 0, NULL, { {1, NULL, "", \ + { 0,0,0,0,0,0,0,0}, 0 } } } + +/* + * All references to struct _reent are via this pointer. + * Internally, newlib routines that need to reference it should use _REENT. + */ + +#ifndef __ATTRIBUTE_IMPURE_PTR__ +#define __ATTRIBUTE_IMPURE_PTR__ +#endif + +extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__; + +void _reclaim_reent _PARAMS ((struct _reent *)); + +/* #define _REENT_ONLY define this to get only reentrant routines */ + +#ifndef _REENT_ONLY +#define _REENT _impure_ptr +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_REENT_H_ */ diff --git a/newlib/libc/include/sys/resource.h b/newlib/libc/include/sys/resource.h new file mode 100644 index 000000000..eb827552c --- /dev/null +++ b/newlib/libc/include/sys/resource.h @@ -0,0 +1,15 @@ +#ifndef _SYS_RESOURCE_H_ +#define _SYS_RESOURCE_H_ + +#include <sys/time.h> + +#define RUSAGE_SELF 0 /* calling process */ +#define RUSAGE_CHILDREN -1 /* terminated child processes */ + +struct rusage { + struct timeval ru_utime; /* user time used */ + struct timeval ru_stime; /* system time used */ +}; + +#endif + diff --git a/newlib/libc/include/sys/signal.h b/newlib/libc/include/sys/signal.h new file mode 100644 index 000000000..00d25ead3 --- /dev/null +++ b/newlib/libc/include/sys/signal.h @@ -0,0 +1,182 @@ +/* sys/signal.h */ + +#ifndef _SYS_SIGNAL_H +#define _SYS_SIGNAL_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include "_ansi.h" + +#ifndef __STRICT_ANSI__ +typedef unsigned long sigset_t; +struct sigaction +{ + void (*sa_handler)(int); + sigset_t sa_mask; + int sa_flags; +}; +#define SA_NOCLDSTOP 1 /* only value supported now for sa_flags */ +#define SIG_SETMASK 0 /* set mask with sigprocmask() */ +#define SIG_BLOCK 1 /* set of signals to block */ +#define SIG_UNBLOCK 2 /* set of signals to, well, unblock */ + +/* These depend upon the type of sigset_t, which right now + is always a long.. They're in the POSIX namespace, but + are not ANSI. */ +#define sigaddset(what,sig) (*(what) |= (1<<(sig))) +#define sigemptyset(what) (*(what) = 0) + +int sigprocmask (int __how, const sigset_t *__a, sigset_t *__b); + +/* protos for functions found in winsup sources */ +#if defined(__CYGWIN32__) +#undef sigaddset +#undef sigemptyset +/* The first argument to kill should be pid_t. Right now + <sys/types.h> always defines pid_t to be int. If that ever + changes, then we will need to do something else, perhaps along the + lines of <machine/types.h>. */ +int _EXFUN(kill, (int, int)); +int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *)); +int _EXFUN(sigaddset, (sigset_t *, const int)); +int _EXFUN(sigdelset, (sigset_t *, const int)); +int _EXFUN(sigismember, (const sigset_t *, int)); +int _EXFUN(sigfillset, (sigset_t *)); +int _EXFUN(sigemptyset, (sigset_t *)); +int _EXFUN(sigpending, (sigset_t *)); +int _EXFUN(sigsuspend, (const sigset_t *)); +int _EXFUN(sigpause, (int)); +#endif + +#endif /* __STRICT_ANSI__ */ + +#if defined(___AM29K__) +/* These all need to be defined for ANSI C, but I don't think they are + meaningful. */ +#define SIGABRT 1 +#define SIGFPE 1 +#define SIGILL 1 +#define SIGINT 1 +#define SIGSEGV 1 +#define SIGTERM 1 +/* These need to be defined for POSIX, and some others do too. */ +#define SIGHUP 1 +#define SIGQUIT 1 +#define NSIG 2 +#elif defined(__GO32__) +#define SIGINT 1 +#define SIGKILL 2 +#define SIGPIPE 3 +#define SIGFPE 4 +#define SIGHUP 5 +#define SIGTERM 6 +#define SIGSEGV 7 +#define SIGTSTP 8 +#define SIGQUIT 9 +#define SIGTRAP 10 +#define SIGILL 11 +#define SIGEMT 12 +#define SIGALRM 13 +#define SIGBUS 14 +#define SIGLOST 15 +#define SIGSTOP 16 +#define SIGABRT 17 +#define SIGUSR1 18 +#define SIGUSR2 19 +#define NSIG 20 +#elif defined(__CYGWIN32__) /* BSD signals symantics */ +#define SIGHUP 1 /* hangup */ +#define SIGINT 2 /* interrupt */ +#define SIGQUIT 3 /* quit */ +#define SIGILL 4 /* illegal instruction (not reset when caught) */ +#define SIGTRAP 5 /* trace trap (not reset when caught) */ +#define SIGABRT 6 /* used by abort */ +#define SIGEMT 7 /* EMT instruction */ +#define SIGFPE 8 /* floating point exception */ +#define SIGKILL 9 /* kill (cannot be caught or ignored) */ +#define SIGBUS 10 /* bus error */ +#define SIGSEGV 11 /* segmentation violation */ +#define SIGSYS 12 /* bad argument to system call */ +#define SIGPIPE 13 /* write on a pipe with no one to read it */ +#define SIGALRM 14 /* alarm clock */ +#define SIGTERM 15 /* software termination signal from kill */ +#define SIGURG 16 /* urgent condition on IO channel */ +#define SIGSTOP 17 /* sendable stop signal not from tty */ +#define SIGTSTP 18 /* stop signal from tty */ +#define SIGCONT 19 /* continue a stopped process */ +#define SIGCHLD 20 /* to parent on child stop or exit */ +#define SIGCLD 20 /* System V name for SIGCHLD */ +#define SIGTTIN 21 /* to readers pgrp upon background tty read */ +#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ +#define SIGIO 23 /* input/output possible signal */ +#define SIGPOLL SIGIO /* System V name for SIGIO */ +#define SIGXCPU 24 /* exceeded CPU time limit */ +#define SIGXFSZ 25 /* exceeded file size limit */ +#define SIGVTALRM 26 /* virtual time alarm */ +#define SIGPROF 27 /* profiling time alarm */ +#define SIGWINCH 28 /* window changed */ +#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ +#define SIGUSR1 30 /* user defined signal 1 */ +#define SIGUSR2 31 /* user defined signal 2 */ +#define NSIG 32 /* signal 0 implied */ +#else +#define SIGHUP 1 /* hangup */ +#define SIGINT 2 /* interrupt */ +#define SIGQUIT 3 /* quit */ +#define SIGILL 4 /* illegal instruction (not reset when caught) */ +#define SIGTRAP 5 /* trace trap (not reset when caught) */ +#define SIGIOT 6 /* IOT instruction */ +#define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ +#define SIGEMT 7 /* EMT instruction */ +#define SIGFPE 8 /* floating point exception */ +#define SIGKILL 9 /* kill (cannot be caught or ignored) */ +#define SIGBUS 10 /* bus error */ +#define SIGSEGV 11 /* segmentation violation */ +#define SIGSYS 12 /* bad argument to system call */ +#define SIGPIPE 13 /* write on a pipe with no one to read it */ +#define SIGALRM 14 /* alarm clock */ +#define SIGTERM 15 /* software termination signal from kill */ + +#if defined(__svr4__) +/* svr4 specifics. different signals above 15, and sigaction. */ +#define SIGUSR1 16 +#define SIGUSR2 17 +#define SIGCLD 18 +#define SIGPWR 19 +#define SIGWINCH 20 +#define SIGPOLL 22 /* 20 for x.out binaries!!!! */ +#define SIGSTOP 23 /* sendable stop signal not from tty */ +#define SIGTSTP 24 /* stop signal from tty */ +#define SIGCONT 25 /* continue a stopped process */ +#define SIGTTIN 26 /* to readers pgrp upon background tty read */ +#define SIGTTOU 27 /* like TTIN for output if (tp->t_local<OSTOP) */ +#define NSIG 28 +#else +#define SIGURG 16 /* urgent condition on IO channel */ +#define SIGSTOP 17 /* sendable stop signal not from tty */ +#define SIGTSTP 18 /* stop signal from tty */ +#define SIGCONT 19 /* continue a stopped process */ +#define SIGCHLD 20 /* to parent on child stop or exit */ +#define SIGCLD 20 /* System V name for SIGCHLD */ +#define SIGTTIN 21 /* to readers pgrp upon background tty read */ +#define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */ +#define SIGIO 23 /* input/output possible signal */ +#define SIGPOLL SIGIO /* System V name for SIGIO */ +#define SIGXCPU 24 /* exceeded CPU time limit */ +#define SIGXFSZ 25 /* exceeded file size limit */ +#define SIGVTALRM 26 /* virtual time alarm */ +#define SIGPROF 27 /* profiling time alarm */ +#define SIGWINCH 28 /* window changed */ +#define SIGLOST 29 /* resource lost (eg, record-lock lost) */ +#define SIGUSR1 30 /* user defined signal 1 */ +#define SIGUSR2 31 /* user defined signal 2 */ +#define NSIG 32 /* signal 0 implied */ +#endif +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_SIGNAL_H */ diff --git a/newlib/libc/include/sys/stat-dj.h b/newlib/libc/include/sys/stat-dj.h new file mode 100644 index 000000000..b533a167a --- /dev/null +++ b/newlib/libc/include/sys/stat-dj.h @@ -0,0 +1,59 @@ +/* This is file STAT.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _STAT_H_ +#define _STAT_H_ + +struct stat { + short st_dev; + short st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + short st_rdev; + short st_align_for_word32; + long st_size; + long st_atime; + long st_mtime; + long st_ctime; + long st_blksize; +}; + +#define S_IFMT 0xF000 /* file type mask */ +#define S_IFDIR 0x4000 /* directory */ +#define S_IFIFO 0x1000 /* FIFO special */ +#define S_IFCHR 0x2000 /* character special */ +#define S_IFBLK 0x3000 /* block special */ +#define S_IFREG 0x8000 /* or just 0x0000, regular */ +#define S_IREAD 0x0100 /* owner may read */ +#define S_IWRITE 0x0080 /* owner may write */ +#define S_IEXEC 0x0040 /* owner may execute <directory search> */ + +#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) +#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) +#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) +#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) +#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) + +#ifdef __cplusplus +extern "C" { +#endif +int stat(const char *, struct stat *); +int fstat(int, struct stat *); +#ifdef __cplusplus +} +#endif + +#endif diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h new file mode 100644 index 000000000..31dfaf49f --- /dev/null +++ b/newlib/libc/include/sys/stat.h @@ -0,0 +1,149 @@ +#ifndef _SYS_STAT_H +#define _SYS_STAT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <_ansi.h> +#include <time.h> +#include <sys/types.h> + +#ifdef __i386__ +#ifdef __MSDOS__ +#include "stat-dj.h" +#endif +#endif + +/* dj's stat defines _STAT_H_ */ +#ifndef _STAT_H_ + +/* It is intended that the layout of this structure not change when the + sizes of any of the basic types change (short, int, long) [via a compile + time option]. */ + +struct stat +{ + dev_t st_dev; + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + off_t st_size; + /* SysV/sco doesn't have the rest... But Solaris, eabi does. */ +#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__) + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +#else + time_t st_atime; + long st_spare1; + time_t st_mtime; + long st_spare2; + time_t st_ctime; + long st_spare3; + long st_blksize; + long st_blocks; + long st_spare4[2]; +#endif +}; + +#define _IFMT 0170000 /* type of file */ +#define _IFDIR 0040000 /* directory */ +#define _IFCHR 0020000 /* character special */ +#define _IFBLK 0060000 /* block special */ +#define _IFREG 0100000 /* regular */ +#define _IFLNK 0120000 /* symbolic link */ +#define _IFSOCK 0140000 /* socket */ +#define _IFIFO 0010000 /* fifo */ + +#define S_BLKSIZE 1024 /* size of a block */ + +#define S_ISUID 0004000 /* set user id on execution */ +#define S_ISGID 0002000 /* set group id on execution */ +#ifndef _POSIX_SOURCE +#define S_ISVTX 0001000 /* save swapped text even after use */ +#define S_IREAD 0000400 /* read permission, owner */ +#define S_IWRITE 0000200 /* write permission, owner */ +#define S_IEXEC 0000100 /* execute/search permission, owner */ + +#define S_ENFMT 0002000 /* enforcement-mode locking */ + +#define S_IFMT _IFMT +#define S_IFDIR _IFDIR +#define S_IFCHR _IFCHR +#define S_IFBLK _IFBLK +#define S_IFREG _IFREG +#define S_IFLNK _IFLNK +#define S_IFSOCK _IFSOCK +#define S_IFIFO _IFIFO +#endif /* !_POSIX_SOURCE */ + +#ifdef _WIN32 +/* The Windows header files define _S_ forms of these, so we do too + for easier portability. */ +#define _S_IFMT _IFMT +#define _S_IFDIR _IFDIR +#define _S_IFCHR _IFCHR +#define _S_IFIFO _IFIFO +#define _S_IFREG _IFREG +#define _S_IREAD 0000400 +#define _S_IWRITE 0000200 +#define _S_IEXEC 0000100 +#endif + +#define S_IRWXU 0000700 /* rwx, owner */ +#define S_IRUSR 0000400 /* read permission, owner */ +#define S_IWUSR 0000200 /* write permission, owner */ +#define S_IXUSR 0000100 /* execute/search permission, owner */ +#define S_IRWXG 0000070 /* rwx, group */ +#define S_IRGRP 0000040 /* read permission, group */ +#define S_IWGRP 0000020 /* write permission, grougroup */ +#define S_IXGRP 0000010 /* execute/search permission, group */ +#define S_IRWXO 0000007 /* rwx, other */ +#define S_IROTH 0000004 /* read permission, other */ +#define S_IWOTH 0000002 /* write permission, other */ +#define S_IXOTH 0000001 /* execute/search permission, other */ + +#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK) +#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR) +#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR) +#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO) +#define S_ISREG(m) (((m)&_IFMT) == _IFREG) +#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK) +#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK) + + +int _EXFUN(chmod,( const char *__path, mode_t __mode )); +int _EXFUN(fchmod,(int __fd, mode_t __mode)); +int _EXFUN(fstat,( int __fd, struct stat *__sbuf )); +int _EXFUN(mkdir,( const char *_path, mode_t __mode )); +int _EXFUN(mkfifo,( const char *__path, mode_t __mode )); +int _EXFUN(stat,( const char *__path, struct stat *__sbuf )); +mode_t _EXFUN(umask,( mode_t __mask )); + +#if defined(__rtems__) +int _EXFUN(mknod,( const char *_path, mode_t _mode, dev_t dev )); +#endif + +/* Provide prototypes for most of the _<systemcall> names that are + provided in newlib for some compilers. */ +int _EXFUN(_fstat,( int __fd, struct stat *__sbuf )); +int _EXFUN(_stat,( const char *__path, struct stat *__sbuf )); + +#ifdef __CYGWIN32__ +int _EXFUN(lstat,( const char *__path, struct stat *__buf )); +#endif + +#if defined(__rtems__) +int _EXFUN(mknod,( const char *_path, mode_t _mode, dev_t dev )); +int _EXFUN(lstat,( const char *_path, struct stat *_sbuf )); +#endif + +#endif /* !_STAT_H_ */ +#ifdef __cplusplus +} +#endif +#endif /* _SYS_STAT_H */ diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h new file mode 100644 index 000000000..bc08820a5 --- /dev/null +++ b/newlib/libc/include/sys/time.h @@ -0,0 +1,51 @@ +/* time.h -- An implementation of the standard Unix <sys/time.h> file. + Written by Geoffrey Noer <noer@cygnus.com> + Public domain; no rights reserved. */ + +#ifndef _SYS_TIME_H_ +#define _SYS_TIME_H_ + +#include <_ansi.h> +#include <sys/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef _WINSOCK_H +struct timeval { + long tv_sec; + long tv_usec; +}; + +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +#ifdef __CYGWIN32__ +#include <sys/select.h> +#endif /* __CYGWIN32__ */ + +#endif /* _WINSOCK_H */ + +#define ITIMER_REAL 0 +#define ITIMER_VIRTUAL 1 +#define ITIMER_PROF 2 + +struct itimerval { + struct timeval it_interval; + struct timeval it_value; +}; + +int _EXFUN(gettimeofday, (struct timeval *__p, struct timezone *__z)); +int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *)); +int _EXFUN(utimes, (const char *__path, struct timeval *__tvp)); +int _EXFUN(getitimer, (int __which, struct itimerval *__value)); +int _EXFUN(setitimer, (int __which, const struct itimerval *__value, + struct itimerval *__ovalue)); + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_TIME_H_ */ diff --git a/newlib/libc/include/sys/timeb.h b/newlib/libc/include/sys/timeb.h new file mode 100644 index 000000000..0a2c3de8b --- /dev/null +++ b/newlib/libc/include/sys/timeb.h @@ -0,0 +1,39 @@ +/* timeb.h -- An implementation of the standard Unix <sys/timeb.h> file. + Written by Ian Lance Taylor <ian@cygnus.com> + Public domain; no rights reserved. + + <sys/timeb.h> declares the structure used by the ftime function, as + well as the ftime function itself. Newlib does not provide an + implementation of ftime. */ + +#ifndef _SYS_TIMEB_H + +#ifdef __cplusplus +extern "C" { +#endif + +#define _SYS_TIMEB_H + +#include <_ansi.h> +#include <machine/types.h> + +#ifndef __time_t_defined +typedef _TIME_T_ time_t; +#define __time_t_defined +#endif + +struct timeb +{ + time_t time; + unsigned short millitm; + short timezone; + short dstflag; +}; + +extern int ftime _PARAMS ((struct timeb *)); + +#ifdef __cplusplus +} +#endif + +#endif /* ! defined (_SYS_TIMEB_H) */ diff --git a/newlib/libc/include/sys/times.h b/newlib/libc/include/sys/times.h new file mode 100644 index 000000000..c973ae1b0 --- /dev/null +++ b/newlib/libc/include/sys/times.h @@ -0,0 +1,27 @@ +#ifndef _SYS_TIMES_H +#ifdef __cplusplus +extern "C" { +#endif +#define _SYS_TIMES_H + +#include <_ansi.h> +#include <machine/types.h> + +#ifndef __clock_t_defined +typedef _CLOCK_T_ clock_t; +#define __clock_t_defined +#endif + +struct tms { + clock_t tms_utime; /* user time */ + clock_t tms_stime; /* system time */ + clock_t tms_cutime; /* user time, children */ + clock_t tms_cstime; /* system time, children */ +}; + +clock_t _EXFUN(times,(struct tms *)); + +#ifdef __cplusplus +} +#endif +#endif /* !_SYS_TIMES_H */ diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h new file mode 100644 index 000000000..7d2e52461 --- /dev/null +++ b/newlib/libc/include/sys/types.h @@ -0,0 +1,174 @@ +/* unified sys/types.h: + start with sef's sysvi386 version. + merge go32 version -- a few ifdefs. + h8300hms, h8300xray, and sysvnecv70 disagree on the following types: + + typedef int gid_t; + typedef int uid_t; + typedef int dev_t; + typedef int ino_t; + typedef int mode_t; + typedef int caddr_t; + + however, these aren't "reasonable" values, the sysvi386 ones make far + more sense, and should work sufficiently well (in particular, h8300 + doesn't have a stat, and the necv70 doesn't matter.) -- eichin + */ + +#ifndef _SYS_TYPES_H +#define _SYS_TYPES_H + +#if defined (_WIN32) || defined (__CYGWIN__) +#define __MS_types__ +#endif + +#ifdef __i386__ +#if defined (GO32) || defined (__MSDOS__) +#define __MS_types__ +#endif +#endif + +# include <stddef.h> +# include <machine/types.h> + +/* To ensure the stat struct's layout doesn't change when sizeof(int), etc. + changes, we assume sizeof short and long never change and have all types + used to define struct stat use them and not int where possible. + Where not possible, _ST_INTxx are used. It would be preferable to not have + such assumptions, but until the extra fluff is necessary, it's avoided. + No 64 bit targets use stat yet. What to do about them is postponed + until necessary. */ +#ifdef __GNUC__ +#define _ST_INT32 __attribute__ ((__mode__ (__SI__))) +#else +#define _ST_INT32 +#endif + +# ifndef _POSIX_SOURCE + +# define physadr physadr_t +# define quad quad_t + +#ifndef _WINSOCK_H +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; +#endif + +typedef unsigned short ushort; /* System V compatibility */ +typedef unsigned int uint; /* System V compatibility */ +# endif /*!_POSIX_SOURCE */ + +#ifndef __time_t_defined +typedef _TIME_T_ time_t; +#define __time_t_defined +#endif + +typedef long daddr_t; +typedef char * caddr_t; + +#ifdef __MS_types__ +typedef unsigned long ino_t; +#else +#ifdef __sparc__ +typedef unsigned long ino_t; +#else +typedef unsigned short ino_t; +#endif +#endif + +#ifdef __MS_types__ +typedef unsigned long vm_offset_t; +typedef unsigned long vm_size_t; + +#define __BIT_TYPES_DEFINED__ + +typedef char int8_t; +typedef unsigned char u_int8_t; +typedef short int16_t; +typedef unsigned short u_int16_t; +typedef int int32_t; +typedef unsigned int u_int32_t; +typedef long long int64_t; +typedef unsigned long long u_int64_t; +typedef int32_t register_t; +#endif /* __MS_types__ */ + +/* + * All these should be machine specific - right now they are all broken. + * However, for all of Cygnus' embedded targets, we want them to all be + * the same. Otherwise things like sizeof (struct stat) might depend on + * how the file was compiled (e.g. -mint16 vs -mint32, etc.). + */ + +typedef short dev_t; + +typedef long off_t; + +typedef unsigned short uid_t; +typedef unsigned short gid_t; +typedef int pid_t; +typedef long key_t; +typedef long ssize_t; + +#ifdef __MS_types__ +typedef char * addr_t; +typedef int mode_t; +#else +#if defined (__sparc__) && !defined (__sparc_v9__) +#ifdef __svr4__ +typedef unsigned long mode_t; +#else +typedef unsigned short mode_t; +#endif +#else +typedef unsigned int mode_t _ST_INT32; +#endif +#endif /* ! __MS_types__ */ + +typedef unsigned short nlink_t; + +/* We don't define fd_set and friends if we are compiling POSIX + source, or if we have included the Windows Sockets.h header (which + defines Windows versions of them). Note that a program which + includes the Windows sockets.h header must know what it is doing; + it must not call the cygwin32 select function. */ +# if ! defined (_POSIX_SOURCE) && ! defined (_WINSOCK_H) + +# define NBBY 8 /* number of bits in a byte */ +/* + * Select uses bit masks of file descriptors in longs. + * These macros manipulate such bit fields (the filesystem macros use chars). + * FD_SETSIZE may be defined by the user, but the default here + * should be >= NOFILE (param.h). + */ +# ifndef FD_SETSIZE +# define FD_SETSIZE 64 +# endif + +typedef long fd_mask; +# define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ +# ifndef howmany +# define howmany(x,y) (((x)+((y)-1))/(y)) +# endif + +/* We use a macro for fd_set so that including Sockets.h afterwards + can work. */ +typedef struct _types_fd_set { + fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; +} _types_fd_set; + +#define fd_set _types_fd_set + +# define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS))) +# define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS))) +# define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS))) +# define FD_ZERO(p) bzero((caddr_t)(p), sizeof (*(p))) + +# endif /* ! defined (_POSIX_SOURCE) && ! defined (_WINSOCK_H) */ + +#undef __MS_types__ +#undef _ST_INT32 + +#endif /* _SYS_TYPES_H */ diff --git a/newlib/libc/include/sys/unistd.h b/newlib/libc/include/sys/unistd.h new file mode 100644 index 000000000..98d1e1f2a --- /dev/null +++ b/newlib/libc/include/sys/unistd.h @@ -0,0 +1,175 @@ +#ifndef _SYS_UNISTD_H +#define _SYS_UNISTD_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <_ansi.h> +#include <sys/types.h> +#define __need_size_t +#include <stddef.h> + +extern char **environ; + +void _EXFUN(_exit, (int __status ) _ATTRIBUTE ((noreturn))); + +int _EXFUN(access,(const char *__path, int __amode )); +unsigned _EXFUN(alarm, (unsigned __secs )); +int _EXFUN(chdir, (const char *__path )); +int _EXFUN(chmod, (const char *__path, mode_t __mode )); +int _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group )); +int _EXFUN(close, (int __fildes )); +char _EXFUN(*ctermid, (char *__s )); +char _EXFUN(*cuserid, (char *__s )); +int _EXFUN(dup, (int __fildes )); +int _EXFUN(dup2, (int __fildes, int __fildes2 )); +int _EXFUN(execl, (const char *__path, const char *, ... )); +int _EXFUN(execle, (const char *__path, const char *, ... )); +int _EXFUN(execlp, (const char *__file, const char *, ... )); +int _EXFUN(execv, (const char *__path, char * const __argv[] )); +int _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] )); +int _EXFUN(execvp, (const char *__file, char * const __argv[] )); +pid_t _EXFUN(fork, (void )); +long _EXFUN(fpathconf, (int __fd, int __name )); +int _EXFUN(fsync, (int __fd)); +char _EXFUN(*getcwd, (char *__buf, size_t __size )); +gid_t _EXFUN(getegid, (void )); +uid_t _EXFUN(geteuid, (void )); +gid_t _EXFUN(getgid, (void )); +int _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] )); +char _EXFUN(*getlogin, (void )); +char _EXFUN(*getpass, (__const char *__prompt)); +size_t _EXFUN(getpagesize, (void)); +pid_t _EXFUN(getpgrp, (void )); +pid_t _EXFUN(getpid, (void )); +pid_t _EXFUN(getppid, (void )); +uid_t _EXFUN(getuid, (void )); +int _EXFUN(isatty, (int __fildes )); +int _EXFUN(link, (const char *__path1, const char *__path2 )); +int _EXFUN(nice, (int __nice_value )); +off_t _EXFUN(lseek, (int __fildes, off_t __offset, int __whence )); +long _EXFUN(pathconf, (const char *__path, int __name )); +int _EXFUN(pause, (void )); +int _EXFUN(pipe, (int __fildes[2] )); +int _EXFUN(read, (int __fildes, void *__buf, size_t __nbyte )); +int _EXFUN(rmdir, (const char *__path )); +void * _EXFUN(sbrk, (size_t __incr)); +int _EXFUN(setgid, (gid_t __gid )); +int _EXFUN(setpgid, (pid_t __pid, pid_t __pgid )); +pid_t _EXFUN(setsid, (void )); +int _EXFUN(setuid, (uid_t __uid )); +unsigned _EXFUN(sleep, (unsigned int __seconds )); +void _EXFUN(swab, (const void *, void *, ssize_t)); +long _EXFUN(sysconf, (int __name )); +pid_t _EXFUN(tcgetpgrp, (int __fildes )); +int _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id )); +char _EXFUN(*ttyname, (int __fildes )); +int _EXFUN(unlink, (const char *__path )); +int _EXFUN(write, (int __fildes, const void *__buf, size_t __nbyte )); + +/* Provide prototypes for most of the _<systemcall> names that are + provided in newlib for some compilers. */ +int _EXFUN(_close, (int __fildes )); +pid_t _EXFUN(_fork, (void )); +pid_t _EXFUN(_getpid, (void )); +int _EXFUN(_link, (const char *__path1, const char *__path2 )); +off_t _EXFUN(_lseek, (int __fildes, off_t __offset, int __whence )); +int _EXFUN(_read, (int __fildes, void *__buf, size_t __nbyte )); +void * _EXFUN(_sbrk, (size_t __incr)); +int _EXFUN(_unlink, (const char *__path )); +int _EXFUN(_write, (int __fildes, const void *__buf, size_t __nbyte )); + +#if defined(__CYGWIN32__) || defined(__rtems__) +unsigned _EXFUN(usleep, (unsigned int __useconds)); +int _EXFUN(ftruncate, (int __fd, off_t __length)); +int _EXFUN(truncate, (const char *, off_t __length)); +int _EXFUN(gethostname, (char *__name, size_t __len)); +char * _EXFUN(mktemp, (char *)); +int _EXFUN(sync, (void)); +int _EXFUN(readlink, (const char *__path, char *__buf, int __buflen)); +int _EXFUN(symlink, (const char *__name1, const char *__name2)); +#endif + +# define F_OK 0 +# define R_OK 4 +# define W_OK 2 +# define X_OK 1 + +# define SEEK_SET 0 +# define SEEK_CUR 1 +# define SEEK_END 2 + +/* + * RTEMS adheres to a later version of POSIX -- 1003.1b. + * + * XXX this version string should change. + */ + +#ifdef __rtems__ +#ifndef _POSIX_JOB_CONTROL +# define _POSIX_JOB_CONTROL 1 +#endif +#ifndef _POSIX_SAVED_IDS +# define _POSIX_SAVED_IDS 1 +#endif +# define _POSIX_VERSION 199009L +#else +#ifdef __svr4__ +# define _POSIX_JOB_CONTROL 1 +# define _POSIX_SAVED_IDS 1 +# define _POSIX_VERSION 199009L +#endif +#endif + +#ifdef __CYGWIN32__ +# define _POSIX_JOB_CONTROL 1 +# define _POSIX_SAVED_IDS 0 +# define _POSIX_VERSION 199009L +#endif + +#define STDIN_FILENO 0 /* standard input file descriptor */ +#define STDOUT_FILENO 1 /* standard output file descriptor */ +#define STDERR_FILENO 2 /* standard error file descriptor */ + +long _EXFUN(sysconf, (int __name)); + +# define _SC_ARG_MAX 0 +# define _SC_CHILD_MAX 1 +# define _SC_CLK_TCK 2 +# define _SC_NGROUPS_MAX 3 +# define _SC_OPEN_MAX 4 +/* no _SC_STREAM_MAX */ +# define _SC_JOB_CONTROL 5 +# define _SC_SAVED_IDS 6 +# define _SC_VERSION 7 +# define _SC_PAGESIZE 8 + +# define _PC_LINK_MAX 0 +# define _PC_MAX_CANON 1 +# define _PC_MAX_INPUT 2 +# define _PC_NAME_MAX 3 +# define _PC_PATH_MAX 4 +# define _PC_PIPE_BUF 5 +# define _PC_CHOWN_RESTRICTED 6 +# define _PC_NO_TRUNC 7 +# define _PC_VDISABLE 8 +# define _PC_ASYNC_IO 9 +# define _PC_PRIO_IO 10 +# define _PC_SYNC_IO 11 + +# ifndef _POSIX_SOURCE +# define MAXNAMLEN 1024 +# endif /* _POSIX_SOURCE */ + +/* FIXME: This is temporary until winsup gets sorted out. */ +#ifdef __CYGWIN32__ +#define MAXPATHLEN (260 - 1 /* NUL */) +#else +# define MAXPATHLEN 1024 +#endif + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_UNISTD_H */ diff --git a/newlib/libc/include/sys/utime.h b/newlib/libc/include/sys/utime.h new file mode 100644 index 000000000..5e937f103 --- /dev/null +++ b/newlib/libc/include/sys/utime.h @@ -0,0 +1,22 @@ +#ifndef _SYS_UTIME_H +#define _SYS_UTIME_H + +/* This is a dummy <sys/utime.h> file, not customized for any + particular system. If there is a utime.h in libc/sys/SYSDIR/sys, + it will override this one. */ + +#ifdef __cplusplus +extern "C" { +#endif + +struct utimbuf +{ + time_t actime; + time_t modtime; +}; + +#ifdef __cplusplus +}; +#endif + +#endif /* _SYS_UTIME_H */ diff --git a/newlib/libc/include/sys/wait.h b/newlib/libc/include/sys/wait.h new file mode 100644 index 000000000..0e4a33945 --- /dev/null +++ b/newlib/libc/include/sys/wait.h @@ -0,0 +1,40 @@ +#ifndef _SYS_WAIT_H +#define _SYS_WAIT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/types.h> + +#define WNOHANG 1 +#define WUNTRACED 2 + +/* A status looks like: + <2 bytes info> <2 bytes code> + + <code> == 0, child has exited, info is the exit value + <code> == 1..7e, child has exited, info is the signal number. + <code> == 7f, child has stopped, info was the signal number. + <code> == 80, there was a core dump. +*/ + +#define WIFEXITED(w) (((w) & 0xff) == 0) +#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f)) +#define WIFSTOPPED(w) (((w) & 0xff) == 0x7f) +#define WEXITSTATUS(w) (((w) >> 8) & 0xff) +#define WTERMSIG(w) ((w) & 0x7f) +#define WSTOPSIG WEXITSTATUS + +pid_t wait (int *); +pid_t waitpid (pid_t, int *, int); + +/* Provide prototypes for most of the _<systemcall> names that are + provided in newlib for some compilers. */ +pid_t _wait (int *); + +#ifdef __cplusplus +}; +#endif + +#endif diff --git a/newlib/libc/include/termios.h b/newlib/libc/include/termios.h new file mode 100644 index 000000000..ee1820ce0 --- /dev/null +++ b/newlib/libc/include/termios.h @@ -0,0 +1,7 @@ +#ifdef __cplusplus +extern "C" { +#endif +#include <sys/termios.h> +#ifdef __cplusplus +} +#endif diff --git a/newlib/libc/include/time.h b/newlib/libc/include/time.h new file mode 100644 index 000000000..4a9661779 --- /dev/null +++ b/newlib/libc/include/time.h @@ -0,0 +1,90 @@ +/* + * time.h + * + * Struct and function declarations for dealing with time. + */ + +#ifndef _TIME_H_ +#define _TIME_H_ + +#include "_ansi.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef NULL +#define NULL 0 +#endif + +/* Get _CLOCKS_PER_SEC_ */ +#include <machine/time.h> + +#ifndef _CLOCKS_PER_SEC_ +#define _CLOCKS_PER_SEC_ 1000 +#endif + +#define CLOCKS_PER_SEC _CLOCKS_PER_SEC_ +#define CLK_TCK CLOCKS_PER_SEC +#define __need_size_t +#include <stddef.h> + +/* Get _CLOCK_T_ and _TIME_T_. */ +#include <machine/types.h> + +#ifndef __clock_t_defined +typedef _CLOCK_T_ clock_t; +#define __clock_t_defined +#endif + +#ifndef __time_t_defined +typedef _TIME_T_ time_t; +#define __time_t_defined +#endif + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +clock_t _EXFUN(clock, (void)); +double _EXFUN(difftime, (time_t _time2, time_t _time1)); +time_t _EXFUN(mktime, (struct tm *_timeptr)); +time_t _EXFUN(time, (time_t *_timer)); +#ifndef _REENT_ONLY +char *_EXFUN(asctime, (const struct tm *_tblock)); +char *_EXFUN(ctime, (const time_t *_time)); +struct tm *_EXFUN(gmtime, (const time_t *_timer)); +struct tm *_EXFUN(localtime,(const time_t *_timer)); +#endif +size_t _EXFUN(strftime, (char *_s, size_t _maxsize, const char *_fmt, const struct tm *_t)); + +char *_EXFUN(asctime_r, (const struct tm *, char *)); +char *_EXFUN(ctime_r, (const time_t *, char *)); +struct tm *_EXFUN(gmtime_r, (const time_t *, struct tm *)); +struct tm *_EXFUN(localtime_r, (const time_t *, struct tm *)); + +#ifdef __CYGWIN32__ +#ifndef __STRICT_ANSI__ +extern time_t _timezone __declspec(dllimport); +extern int _daylight __declspec(dllimport); +extern char *_tzname[2] __declspec(dllimport); + +char *_EXFUN(timezone, (void)); +void _EXFUN(tzset, (void)); +#endif +#endif /* __CYGWIN32__ */ + +#ifdef __cplusplus +} +#endif +#endif /* _TIME_H_ */ + diff --git a/newlib/libc/include/unctrl.h b/newlib/libc/include/unctrl.h new file mode 100644 index 000000000..8205ea60e --- /dev/null +++ b/newlib/libc/include/unctrl.h @@ -0,0 +1,46 @@ +/* From curses.h. */ +/* + * Copyright (c) 1981, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _UNCTRL_H_ +#define _UNCTRL_H_ + +#include <_ansi.h> + +#define unctrl(c) __unctrl[(c) & 0xff] +#define unctrllen(ch) __unctrllen[(ch) & 0xff] + +extern _CONST char * _CONST __unctrl[256]; /* Control strings. */ +extern _CONST char __unctrllen[256]; /* Control strings length. */ + +#endif /* _UNCTRL_H_ */ diff --git a/newlib/libc/include/unistd.h b/newlib/libc/include/unistd.h new file mode 100644 index 000000000..f9fca8476 --- /dev/null +++ b/newlib/libc/include/unistd.h @@ -0,0 +1,6 @@ +#ifndef _UNISTD_H_ +#define _UNISTD_H_ + +# include <sys/unistd.h> + +#endif /* _UNISTD_H_ */ diff --git a/newlib/libc/include/utime.h b/newlib/libc/include/utime.h new file mode 100644 index 000000000..c05e08e94 --- /dev/null +++ b/newlib/libc/include/utime.h @@ -0,0 +1,10 @@ +#ifdef __cplusplus +extern "C" { +#endif + +/* The utime function is defined in libc/sys/<arch>/sys if it exists. */ +#include <sys/utime.h> + +#ifdef __cplusplus +} +#endif diff --git a/newlib/libc/include/utmp.h b/newlib/libc/include/utmp.h new file mode 100644 index 000000000..88cf6f852 --- /dev/null +++ b/newlib/libc/include/utmp.h @@ -0,0 +1,8 @@ +#ifdef __cplusplus +extern "C" { +#endif +#include <sys/utmp.h> +#ifdef __cplusplus +} +#endif + diff --git a/newlib/libc/libc.texinfo b/newlib/libc/libc.texinfo new file mode 100644 index 000000000..b1ca8f9e7 --- /dev/null +++ b/newlib/libc/libc.texinfo @@ -0,0 +1,427 @@ +\input texinfo.tex +@setfilename libc.info +@tex +% NOTE LOCAL KLUGE TO AVOID TOO MUCH WHITESPACE FROM "makedoc" +\global\long\def\example{% +\begingroup +\let\aboveenvbreak=\par +\let\afterenvbreak=\par +\parskip=0pt +\lisp} +\global\long\def\Eexample{% +\Elisp +\endgroup +\vskip -\parskip% to cancel out effect of following \par +} +% END LOCAL WHITESPACE KLUGE +@end tex +@syncodeindex fn cp + +@ifinfo +@format +START-INFO-DIR-ENTRY +* libc:: The ANSI C library. +END-INFO-DIR-ENTRY +@end format +@end ifinfo + +@ifinfo +This file documents the ANSI C library. + +Copyright (C) 1992, 1993 Cygnus Support + +@file{libc} includes software developed by the +University of California, Berkeley and its contributors. + +libc includes software developed by Martin Jackson, Graham Haley +and Steve Chamberlain of Tadpole Technology and released to Cygnus. + +libc uses floating point converstion software developed at AT&T, which +includes this copyright information: + + The author of this software is David M. Gay. + + Copyright (c) 1991 by AT&T. + + Permission to use, copy, modify, and distribute this software for any + purpose without fee is hereby granted, provided that this entire notice + is included in all copies of any software which is or includes a copy + or modification of this software and in all copies of the supporting + documentation for such software. + + THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, subject to the terms +of the GNU General Public License, which includes the provision that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end ifinfo +@iftex +@c @smallbook +@c @cropmarks +@finalout +@setchapternewpage odd +@settitle Cygnus C Support Library, Full +@titlepage +@title The Cygnus C Support Library +@subtitle Full Configuration +@sp 1 +@subtitle @code{libc} 1.4 +@subtitle May 1993 +@author {Steve Chamberlain} +@author {Roland Pesch} +@author {Cygnus Support} +@page + +@tex +{\parskip=0pt +sac@@cygnus.com, pesch@@cygnus.com\hfill {\it The Cygnus C Support Library}\par +Copyright \copyright{} 1992, 1993 Cygnus Support +} +\global\parindent=0pt % Steve likes it this way +@end tex + +@file{libc} includes software developed by the +University of California, Berkeley and its contributors. + +@file{libc} includes software developed by Martin Jackson, Graham Haley +and Steve Chamberlain of Tadpole Technology and released to Cygnus. + +@file{libc} uses floating point converstion software developed at AT&T, +which includes this copyright information: + +@cartouche +@quotation +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. +@end quotation +@end cartouche + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, subject to the terms +of the GNU General Public License, which includes the provision that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end titlepage +@end iftex + +@ifinfo +@node Top +@top The Cygnus C Support Library + +@c The menu contents depend on the configuration, so we include them +@c as a separate file + +@c switch to set SIGNALS on or off, according to whether config picks up +@c signal subdirectory: +@include sigset.texi + +@menu +* Stdlib:: +* Ctype:: +* Stdio:: +* Strings:: +@ifset SIGNALS +* Signals:: +@end ifset + +* Timefns:: +* Locale:: +* Syscalls:: +* Misc:: +* Arglists:: +* Reentrancy:: +* Library Index:: +@end menu +@end ifinfo + +@include targetdep.tex + +@node Arglists +@chapter Variable Argument Lists + +The @code{printf} family of functions is defined to accept a variable +number of arguments, rather than a fixed argument list. You can define +your own functions with a variable argument list, by using macro +definitions from either @file{stdarg.h} (for compatibility with ANSI C) +or from @file{varargs.h} (for compatibility with a popular convention +prior to ANSI C). + +@menu +* Stdarg:: +* Varargs:: +@end menu + +@node Stdarg +@section ANSI-standard macros, @file{stdarg.h} + +In ANSI C, a function has a variable number of arguments when its +parameter list ends in an ellipsis (@code{...}). The parameter list +must also include at least one explicitly named argument; that argument +is used to initialize the variable list data structure. + +ANSI C defines three macros (@code{va_start}, @code{va_arg}, and +@code{va_end}) to operate on variable argument lists. @file{stdarg.h} +also defines a special type to represent variable argument lists: this +type is called @code{va_list}. + +@menu +* va_start:: +* va_arg:: +* va_end:: +@end menu + +@page +@node va_start +@subsection Initialize variable argument list +@findex va_start +@strong{Synopsis} +@example +#include <stdarg.h> +void va_start(va_list @var{ap}, @var{rightmost}); +@end example + +@strong{Description}@* +Use @code{va_start} to initialize the variable argument list @var{ap}, +so that @code{va_arg} can extract values from it. @var{rightmost} is +the name of the last explicit argument in the parameter list (the +argument immediately preceding the ellipsis @samp{...} that flags +variable arguments in an ANSI C function header). You can only use +@code{va_start} in a function declared using this ellipsis notation +(not, for example, in one of its subfunctions). + +@strong{Returns}@* +@code{va_start} does not return a result. + +@strong{Portability}@* +ANSI C requires @code{va_start}. + +@page +@node va_arg +@subsection Extract a value from argument list +@findex va_arg +@strong{Synopsis} +@example +#include <stdarg.h> +@var{type} va_arg(va_list @var{ap}, @var{type}); +@end example + +@strong{Description}@* +@code{va_arg} returns the next unprocessed value from a variable +argument list @var{ap} (which you must previously create with +@var{va_start}). Specify the type for the value as the second parameter +to the macro, @var{type}. + +You may pass a @code{va_list} object @var{ap} to a subfunction, and use +@code{va_arg} from the subfunction rather than from the function +actually declared with an ellipsis in the header; however, in that case +you may @emph{only} use @code{va_arg} from the subfunction. ANSI C does +not permit extracting successive values from a single variable-argument +list from different levels of the calling stack. + +There is no mechanism for testing whether there is actually a next +argument available; you might instead pass an argument count (or some +other data that implies an argument count) as one of the fixed arguments +in your function call. + +@strong{Returns}@* +@code{va_arg} returns the next argument, an object of type @var{type}. + +@strong{Portability}@* +ANSI C requires @code{va_arg}. + +@page +@node va_end +@subsection Abandon a variable argument list +@findex va_end +@strong{Synopsis} +@example +#include <stdarg.h> +void va_end(va_list @var{ap}); +@end example + +@strong{Description}@* +Use @code{va_end} to declare that your program will not use the variable +argument list @var{ap} any further. + +@strong{Returns}@* +@code{va_end} does not return a result. + +@strong{Portability}@* +ANSI C requires @code{va_end}. + +@node Varargs +@section Traditional macros, @file{varargs.h} + +If your C compiler predates ANSI C, you may still be able to use +variable argument lists using the macros from the @file{varargs.h} +header file. These macros resemble their ANSI counterparts, but have +important differences in usage. In particular, since traditional C has +no declaration mechanism for variable argument lists, two additional +macros are provided simply for the purpose of defining functions with +variable argument lists. + +As with @file{stdarg.h}, the type @code{va_list} is used to hold a data +structure representing a variable argument list. + +@menu +* va_alist:: +* va_start-trad:: +* va_arg-trad:: +* va_end-trad:: +@end menu + +@page +@node va_alist +@subsection Declare variable arguments +@findex va_alist +@findex va_dcl +@strong{Synopsis} +@example +#include <varargs.h> +@var{function}(va_alist) +va_dcl +@end example + +@strong{Description}@* +To use the @file{varargs.h} version of variable argument lists, you must +declare your function with a call to the macro @code{va_alist} as its +argument list, and use @code{va_dcl} as the declaration. @emph{Do not +use a semicolon after @code{va_dcl}.} + +@strong{Returns}@* +These macros cannot be used in a context where a return is syntactically +possible. + +@strong{Portability}@* +@var{va_alist} and @var{va_dcl} were the most widespread method of +declaring variable argument lists prior to ANSI C. + +@page +@node va_start-trad +@subsection Initialize variable argument list +@findex va_start +@strong{Synopsis} +@example +#include <varargs.h> +va_list @var{ap}; +va_start(@var{ap}); +@end example + +@strong{Description}@* +With the @file{varargs.h} macros, use @code{va_start} to initialize a +data structure @var{ap} to permit manipulating a variable argument list. +@var{ap} must have the type @var{va_alist}. + +@strong{Returns}@* +@code{va_start} does not return a result. + +@strong{Portability}@* +@code{va_start} is also defined as a macro in ANSI C, but the +definitions are incompatible; the ANSI version has another parameter +besides @var{ap}. + +@page +@node va_arg-trad +@subsection Extract a value from argument list +@findex va_arg +@strong{Synopsis} +@example +#include <varargs.h> +@var{type} va_arg(va_list @var{ap}, @var{type}); +@end example + +@strong{Description}@* +@code{va_arg} returns the next unprocessed value from a variable +argument list @var{ap} (which you must previously create with +@var{va_start}). Specify the type for the value as the second parameter +to the macro, @var{type}. + +@strong{Returns}@* +@code{va_arg} returns the next argument, an object of type @var{type}. + +@strong{Portability}@* +The @code{va_arg} defined in @file{varargs.h} has the same syntax and +usage as the ANSI C version from @file{stdarg.h}. + +@page +@node va_end-trad +@subsection Abandon a variable argument list +@findex va_end +@strong{Synopsis} +@example +#include <varargs.h> +va_end(va_list @var{ap}); +@end example + +@strong{Description}@* +Use @code{va_end} to declare that your program will not use the variable +argument list @var{ap} any further. + +@strong{Returns}@* +@code{va_end} does not return a result. + +@strong{Portability}@* +The @code{va_end} defined in @file{varargs.h} has the same syntax and +usage as the ANSI C version from @file{stdarg.h}. + +@node Library Index +@unnumbered Index +@printindex cp + +@tex +% I think something like @colophon should be in texinfo. In the +% meantime: +\long\def\colophon{\hbox to0pt{}\vfill +\centerline{The body of this manual is set in} +\centerline{\fontname\tenrm,} +\centerline{with headings in {\bf\fontname\tenbf}} +\centerline{and examples in {\tt\fontname\tentt}.} +\centerline{{\it\fontname\tenit\/} and} +\centerline{{\sl\fontname\tensl\/}} +\centerline{are used for emphasis.}\vfill} +\page\colophon +% Blame: pesch@cygnus.com, 28mar91. +@end tex + +@contents +@bye + + diff --git a/newlib/libc/locale/Makefile.am b/newlib/libc/locale/Makefile.am new file mode 100644 index 000000000..c007e0f92 --- /dev/null +++ b/newlib/libc/locale/Makefile.am @@ -0,0 +1,26 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = locale.c + +CHEWOUT_FILES = locale.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/locale.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/locale/Makefile.in b/newlib/libc/locale/Makefile.in new file mode 100644 index 000000000..1d951a82c --- /dev/null +++ b/newlib/libc/locale/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = locale.c + +CHEWOUT_FILES = locale.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = locale.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus locale/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = locale + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/locale.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c new file mode 100644 index 000000000..81d6ae2bc --- /dev/null +++ b/newlib/libc/locale/locale.c @@ -0,0 +1,198 @@ +/* +FUNCTION +<<setlocale>>, <<localeconv>>---select or query locale + +INDEX + setlocale +INDEX + localeconv +INDEX + _setlocale_r +INDEX + _localeconv_r + +ANSI_SYNOPSIS + #include <locale.h> + char *setlocale(int <[category]>, const char *<[locale]>); + lconv *localeconv(void); + + char *_setlocale_r(void *<[reent]>, + int <[category]>, const char *<[locale]>); + lconv *_localeconv_r(void *<[reent]>); + +TRAD_SYNOPSIS + #include <locale.h> + char *setlocale(<[category]>, <[locale]>) + int <[category]>; + char *<[locale]>; + + lconv *localeconv(); + + char *_setlocale_r(<[reent]>, <[category]>, <[locale]>) + char *<[reent]>; + int <[category]>; + char *<[locale]>; + + lconv *_localeconv_r(<[reent]>); + char *<[reent]>; + +DESCRIPTION +<<setlocale>> is the facility defined by ANSI C to condition the +execution environment for international collating and formatting +information; <<localeconv>> reports on the settings of the current +locale. + +This is a minimal implementation, supporting only the required <<``C''>> +value for <[locale]>; strings representing other locales are not +honored unless MB_CAPABLE is defined in which case three new +extensions are allowed for LC_CTYPE only: <<''C-JIS''>>, <<''C-EUCJP''>>, +and <<''C-SJIS''>>. (<<``''>> is also accepted; it represents the default locale +for an implementation, here equivalent to <<``C''>>.) + +If you use <<NULL>> as the <[locale]> argument, <<setlocale>> returns +a pointer to the string representing the current locale (always +<<``C''>> in this implementation). The acceptable values for +<[category]> are defined in `<<locale.h>>' as macros beginning with +<<"LC_">>, but this implementation does not check the values you pass +in the <[category]> argument. + +<<localeconv>> returns a pointer to a structure (also defined in +`<<locale.h>>') describing the locale-specific conventions currently +in effect. + +<<_localeconv_r>> and <<_setlocale_r>> are reentrant versions of +<<localeconv>> and <<setlocale>> respectively. The extra argument +<[reent]> is a pointer to a reentrancy structure. + +RETURNS +<<setlocale>> returns either a pointer to a string naming the locale +currently in effect (always <<``C''>> for this implementation, or, if +the locale request cannot be honored, <<NULL>>. + +<<localeconv>> returns a pointer to a structure of type <<lconv>>, +which describes the formatting and collating conventions in effect (in +this implementation, always those of the C locale). + +PORTABILITY +ANSI C requires <<setlocale>>, but the only locale required across all +implementations is the C locale. + +No supporting OS subroutines are required. +*/ + +/* + * setlocale, localeconv : internationalize your locale. + * (Only "C" or null supported). + */ + +#include <locale.h> +#include <string.h> +#include <limits.h> +#include <reent.h> + +#ifdef __CYGWIN__ +int __declspec(dllexport) __mb_cur_max = 1; +#else +int __mb_cur_max = 1; +#endif + +static _CONST struct lconv lconv = +{ + ".", "", "", "", "", "", "", "", "", "", + CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, + CHAR_MAX, CHAR_MAX, CHAR_MAX, CHAR_MAX, +}; + + +char * +_DEFUN(_setlocale_r, (p, category, locale), + struct _reent *p _AND + int category _AND + _CONST char *locale) +{ + static char lc_ctype[8] = "C"; + static char last_lc_ctype[8] = "C"; + +#ifndef MB_CAPABLE + if (locale) + { + if (strcmp (locale, "C") && strcmp (locale, "")) + return 0; + p->_current_category = category; + p->_current_locale = locale; + } + return "C"; +#else + if (locale) + { + if (category != LC_CTYPE) + { + if (strcmp (locale, "C") && strcmp (locale, "")) + return 0; + if (category == LC_ALL) + { + strcpy (last_lc_ctype, lc_ctype); + strcpy (lc_ctype, locale); + __mb_cur_max = 1; + } + } + else + { + if (strcmp (locale, "C") && strcmp (locale, "") && + strcmp (locale, "C") && strcmp (locale, "C-JIS") && + strcmp (locale, "C-EUCJP") && strcmp (locale, "C-SJIS")) + return 0; + + strcpy (last_lc_ctype, lc_ctype); + strcpy (lc_ctype, locale); + + if (!strcmp (locale, "C-JIS")) + __mb_cur_max = 8; + else if (strlen (locale) > 1) + __mb_cur_max = 2; + else + __mb_cur_max = 1; + } + p->_current_category = category; + p->_current_locale = locale; + + if (category == LC_CTYPE) + return last_lc_ctype; + } + else + { + if (category == LC_CTYPE) + return lc_ctype; + } + + return "C"; +#endif + +} + + +struct lconv * +_DEFUN(_localeconv_r, (data), + struct _reent *data) +{ + return (struct lconv *) &lconv; +} + +#ifndef _REENT_ONLY + +char * +_DEFUN(setlocale, (category, locale), + int category _AND + _CONST char *locale) +{ + return _setlocale_r (_REENT, category, locale); +} + + +struct lconv * +_DEFUN_VOID(localeconv) +{ + return _localeconv_r (_REENT); +} + +#endif diff --git a/newlib/libc/locale/locale.tex b/newlib/libc/locale/locale.tex new file mode 100644 index 000000000..7958a98a2 --- /dev/null +++ b/newlib/libc/locale/locale.tex @@ -0,0 +1,123 @@ +@node Locale +@chapter Locale (@file{locale.h}) + +A @dfn{locale} is the name for a collection of parameters (affecting +collating sequences and formatting conventions) that may be different +depending on location or culture. The @code{"C"} locale is the only +one defined in the ANSI C standard. + +This is a minimal implementation, supporting only the required @code{``C''} +value for locale; strings representing other locales are not +honored. (@code{``''} is also accepted; it represents the default locale +for an implementation, here equivalent to @code{``C''}. + + +@file{locale.h} defines the structure @code{lconv} to collect the +information on a locale, with the following fields: + +@table @code +@item char *decimal_point +The decimal point character used to format ``ordinary'' numbers (all +numbers except those referring to amounts of money). @code{``.''} in the +C locale. + +@item char *thousands_sep +The character (if any) used to separate groups of digits, when +formatting ordinary numbers. +@code{``''} in the C locale. + +@item char *grouping +Specifications for how many digits to group (if any grouping is done at +all) when formatting ordinary numbers. The @emph{numeric value} of each +character in the string represents the number of digits for the next +group, and a value of @code{0} (that is, the string's trailing +@code{NULL}) means to continue grouping digits using the last value +specified. Use @code{CHAR_MAX} to indicate that no further grouping is +desired. @code{``''} in the C locale. + +@item char *int_curr_symbol +The international currency symbol (first three characters), if any, and +the character used to separate it from numbers. +@code{``''} in the C locale. + +@item char *currency_symbol +The local currency symbol, if any. +@code{``''} in the C locale. + +@item char *mon_decimal_point +The symbol used to delimit fractions in amounts of money. +@code{``''} in the C locale. + +@item char *mon_thousands_sep +Similar to @code{thousands_sep}, but used for amounts of money. +@code{``''} in the C locale. + +@item char *mon_grouping +Similar to @code{grouping}, but used for amounts of money. +@code{``''} in the C locale. + +@item char *positive_sign +A string to flag positive amounts of money when formatting. +@code{``''} in the C locale. + +@item char *negative_sign +A string to flag negative amounts of money when formatting. +@code{``''} in the C locale. + +@item char int_frac_digits +The number of digits to display when formatting amounts of money to +international conventions. +@code{CHAR_MAX} (the largest number representable as a @code{char}) in +the C locale. + +@item char frac_digits +The number of digits to display when formatting amounts of money to +local conventions. +@code{CHAR_MAX} in the C locale. + +@item char p_cs_precedes +@code{1} indicates the local currency symbol is used before a +@emph{positive or zero} formatted amount of money; @code{0} indicates +the currency symbol is placed after the formatted number. +@code{CHAR_MAX} in the C locale. + +@item char p_sep_by_space +@code{1} indicates the local currency symbol must be separated from +@emph{positive or zero} numbers by a space; @code{0} indicates that it +is immediately adjacent to numbers. +@code{CHAR_MAX} in the C locale. + +@item char n_cs_precedes +@code{1} indicates the local currency symbol is used before a +@emph{negative} formatted amount of money; @code{0} indicates +the currency symbol is placed after the formatted number. +@code{CHAR_MAX} in the C locale. + +@item char n_sep_by_space +@code{1} indicates the local currency symbol must be separated from +@emph{negative} numbers by a space; @code{0} indicates that it +is immediately adjacent to numbers. +@code{CHAR_MAX} in the C locale. + +@item char p_sign_posn +Controls the position of the @emph{positive} sign for +numbers representing money. @code{0} means parentheses surround the +number; @code{1} means the sign is placed before both the number and the +currency symbol; @code{2} means the sign is placed after both the number +and the currency symbol; @code{3} means the sign is placed just before +the currency symbol; and @code{4} means the sign is placed just after +the currency symbol. +@code{CHAR_MAX} in the C locale. + +@item char n_sign_posn +Controls the position of the @emph{negative} sign for numbers +representing money, using the same rules as @code{p_sign_posn}. +@code{CHAR_MAX} in the C locale. +@end table + +@menu +* setlocale:: Select or query locale +@end menu + +@page +@include locale/locale.def diff --git a/newlib/libc/machine/Makefile.am b/newlib/libc/machine/Makefile.am new file mode 100644 index 000000000..8157e9aae --- /dev/null +++ b/newlib/libc/machine/Makefile.am @@ -0,0 +1,23 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = $(machine_dir) . + +if HAVE_MACHINE_DIR +MACHLIB = lib.a +endif + +noinst_LIBRARIES = $(MACHLIB) + +lib.a: $(machine_dir)/lib.a + rm -f $@ + ln $(machine_dir)/lib.a $@ >/dev/null 2>/dev/null || \ + cp $(machine_dir)/lib.a $@ + +$(machine_dir)/lib.a: + +doc: + +ACLOCAL_AMFLAGS = -I ../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/Makefile.in b/newlib/libc/machine/Makefile.in new file mode 100644 index 000000000..bb99fb981 --- /dev/null +++ b/newlib/libc/machine/Makefile.in @@ -0,0 +1,401 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = $(machine_dir) . + +@HAVE_MACHINE_DIR_TRUE@MACHLIB = \ +@HAVE_MACHINE_DIR_TRUE@lib.a + +noinst_LIBRARIES = $(MACHLIB) + +ACLOCAL_AMFLAGS = -I ../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_SOURCES = lib.a.c +lib_a_OBJECTS = lib.a.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = lib.a.c +OBJECTS = lib.a.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ../../acinclude.m4 \ + ../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +lib.a: $(machine_dir)/lib.a + rm -f $@ + ln $(machine_dir)/lib.a $@ >/dev/null 2>/dev/null || \ + cp $(machine_dir)/lib.a $@ + +$(machine_dir)/lib.a: + +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/a29k/Makefile.am b/newlib/libc/machine/a29k/Makefile.am new file mode 100644 index 000000000..ec5ca63e2 --- /dev/null +++ b/newlib/libc/machine/a29k/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/a29k/Makefile.in b/newlib/libc/machine/a29k/Makefile.in new file mode 100644 index 000000000..69bc22c90 --- /dev/null +++ b/newlib/libc/machine/a29k/Makefile.in @@ -0,0 +1,294 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/a29k/aclocal.m4 b/newlib/libc/machine/a29k/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/a29k/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/a29k/configure b/newlib/libc/machine/a29k/configure new file mode 100755 index 000000000..564788332 --- /dev/null +++ b/newlib/libc/machine/a29k/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Makefile.am + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/a29k/configure.in b/newlib/libc/machine/a29k/configure.in new file mode 100644 index 000000000..1dffe2144 --- /dev/null +++ b/newlib/libc/machine/a29k/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/a29k configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(Makefile.am) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/aclocal.m4 b/newlib/libc/machine/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/arm/Makefile.am b/newlib/libc/machine/arm/Makefile.am new file mode 100644 index 000000000..ec5ca63e2 --- /dev/null +++ b/newlib/libc/machine/arm/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/arm/Makefile.in b/newlib/libc/machine/arm/Makefile.in new file mode 100644 index 000000000..69bc22c90 --- /dev/null +++ b/newlib/libc/machine/arm/Makefile.in @@ -0,0 +1,294 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/arm/aclocal.m4 b/newlib/libc/machine/arm/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/arm/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/arm/configure b/newlib/libc/machine/arm/configure new file mode 100755 index 000000000..564788332 --- /dev/null +++ b/newlib/libc/machine/arm/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Makefile.am + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/arm/configure.in b/newlib/libc/machine/arm/configure.in new file mode 100644 index 000000000..a5384f62a --- /dev/null +++ b/newlib/libc/machine/arm/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/arm configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(Makefile.am) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/configure b/newlib/libc/machine/configure new file mode 100755 index 000000000..ce27db26f --- /dev/null +++ b/newlib/libc/machine/configure @@ -0,0 +1,1802 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=d10v + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../.. $srcdir/../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../.. $srcdir/../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../.." + fi +else + newlib_basedir="${srcdir}/../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +if test -n "${machine_dir}"; then + subdirs="${machine_dir}" + +fi + + + +if test x${machine_dir} != x; then + HAVE_MACHINE_DIR_TRUE= + HAVE_MACHINE_DIR_FALSE='#' +else + HAVE_MACHINE_DIR_TRUE='#' + HAVE_MACHINE_DIR_FALSE= +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@subdirs@%$subdirs%g +s%@HAVE_MACHINE_DIR_TRUE@%$HAVE_MACHINE_DIR_TRUE%g +s%@HAVE_MACHINE_DIR_FALSE@%$HAVE_MACHINE_DIR_FALSE%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + +if test "$no_recursion" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $ac_configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in ${machine_dir}; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$ac_config_dir; then + continue + fi + + echo configuring in $ac_config_dir + + case "$srcdir" in + .) ;; + *) + if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; + else + { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd $ac_config_dir + + # A "../" for each directory in /$ac_config_dir. + ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` + + case "$srcdir" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + /*) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_config_dir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + elif test -f $ac_sub_srcdir/configure.in; then + ac_sub_configure=$ac_configure + else + echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + + # Make the cache file name correct relative to the subdirectory. + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir + then : + else + { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } + fi + fi + + cd $ac_popdir + done +fi + diff --git a/newlib/libc/machine/configure.in b/newlib/libc/machine/configure.in new file mode 100644 index 000000000..6ac3486c6 --- /dev/null +++ b/newlib/libc/machine/configure.in @@ -0,0 +1,18 @@ +dnl This is the newlib/libc/machine configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(d10v) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../..) + +NEWLIB_CONFIGURE(../..) + +if test -n "${machine_dir}"; then + AC_CONFIG_SUBDIRS(${machine_dir}) +fi + +AM_CONDITIONAL(HAVE_MACHINE_DIR, test x${machine_dir} != x) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/d10v/Makefile.am b/newlib/libc/machine/d10v/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/d10v/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/d10v/Makefile.in b/newlib/libc/machine/d10v/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/d10v/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/d10v/aclocal.m4 b/newlib/libc/machine/d10v/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/d10v/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/d10v/configure b/newlib/libc/machine/d10v/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/d10v/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/d10v/configure.in b/newlib/libc/machine/d10v/configure.in new file mode 100644 index 000000000..fd67e066d --- /dev/null +++ b/newlib/libc/machine/d10v/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/d10v configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/d10v/setjmp.S b/newlib/libc/machine/d10v/setjmp.S new file mode 100644 index 000000000..22287dd1e --- /dev/null +++ b/newlib/libc/machine/d10v/setjmp.S @@ -0,0 +1,55 @@ +; setjmp/longjmp for D10V. The jmpbuf looks like this: +; +; Register jmpbuf offset +; R6 0x00 +; R7 0x02 +; R8 0x04 +; R9 0x06 +; R10 0x08 +; R11 0x0a +; R13 (return address) 0x0c +; R15 (SP) 0x0E + + .text + .globl setjmp + .type setjmp,@function + .stabs "setjmp.S",100,0,0,setjmp + .stabs "int:t(0,1)=r(0,1);-65536;65535;",128,0,0,0 + .stabs "setjmp:F(0,1)",36,0,1,setjmp + +setjmp: +; Address of jmpbuf is passed in R0. Save the appropriate registers. + st2w r6, @r0+ + st2w r8, @r0+ + st2w r10, @r0+ + st r13, @r0+ + st r15, @r0+ + +; Return 0 to caller + ldi r0, 0 + jmp r13 +.Lsetjmp: + .size setjmp,.Lsetjmp-setjmp + .stabs "",36,0,0,.Lsetjmp-setjmp + + .globl longjmp + .type longjmp,@function + .stabs "longjmp:F(0,1)",36,0,1,longjmp +longjmp: +; Address of jmpbuf is in R0. Restore the registers. + ld2w r6, @r0+ + ld2w r8, @r0+ + ld2w r10, @r0+ + ld r13, @r0+ + ld r15, @r0+ + +; Value to return to caller is in R1. If caller attemped to return 0, +; return 1 instead. + + mv r0, r1 + cmpeqi r0, 0 + exef0t || ldi r0,1 + jmp r13 +.Llongjmp: + .size longjmp,.Llongjmp-longjmp + .stabs "",36,0,0,.Llongjmp-longjmp diff --git a/newlib/libc/machine/d30v/Makefile.am b/newlib/libc/machine/d30v/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/d30v/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/d30v/Makefile.in b/newlib/libc/machine/d30v/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/d30v/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/d30v/aclocal.m4 b/newlib/libc/machine/d30v/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/d30v/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/d30v/configure b/newlib/libc/machine/d30v/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/d30v/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/d30v/configure.in b/newlib/libc/machine/d30v/configure.in new file mode 100644 index 000000000..604025ecd --- /dev/null +++ b/newlib/libc/machine/d30v/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/d30v configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/d30v/setjmp.S b/newlib/libc/machine/d30v/setjmp.S new file mode 100644 index 000000000..c0ca8250b --- /dev/null +++ b/newlib/libc/machine/d30v/setjmp.S @@ -0,0 +1,106 @@ +; setjmp/longjmp for D30V. + + .text + .globl setjmp + .type setjmp,@function + .stabs "setjmp.S",100,0,0,setjmp + .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0 + .stabs "setjmp:F(0,1)",36,0,1,setjmp + +setjmp: +; Address of jmpbuf is passed in R2. Save the appropriate registers. + st2w r26, @(r2+,r0) + st2w r28, @(r2+,r0) + st2w r30, @(r2+,r0) + st2w r32, @(r2+,r0) + st2w r34, @(r2+,r0) + st2w r36, @(r2+,r0) + st2w r38, @(r2+,r0) + st2w r40, @(r2+,r0) + st2w r42, @(r2+,r0) + st2w r44, @(r2+,r0) + st2w r46, @(r2+,r0) + st2w r48, @(r2+,r0) + st2w r50, @(r2+,r0) + st2w r52, @(r2+,r0) + st2w r54, @(r2+,r0) + st2w r56, @(r2+,r0) + st2w r58, @(r2+,r0) + st2w r60, @(r2+,r0) + st2w r62, @(r2+,r0) + + mvfacc r4, a1, 16 + mvfacc r5, a1, 0 + st2w r4, @(r2+,r0) + + mvfsys r4, psw + mvfsys r5, rpt_c + st2w r4, @(r2+,r0) + + mvfsys r4, rpt_s + mvfsys r5, rpt_e + st2w r4, @(r2+,r0) + + mvfsys r4, mod_s + mvfsys r5, mod_e + st2w r4, @(r2+,r0) + +; Return 0 to caller + add r2, r0, r0 + jmp link +.Lsetjmp: + .size setjmp,.Lsetjmp-setjmp + .stabs "",36,0,0,.Lsetjmp-setjmp + + .globl longjmp + .type longjmp,@function + .stabs "longjmp:F(0,1)",36,0,1,longjmp +longjmp: +; Address of jmpbuf is in R2. Restore the registers. + ld2w r26, @(r2+,r0) + ld2w r28, @(r2+,r0) + ld2w r30, @(r2+,r0) + ld2w r32, @(r2+,r0) + ld2w r34, @(r2+,r0) + ld2w r36, @(r2+,r0) + ld2w r38, @(r2+,r0) + ld2w r40, @(r2+,r0) + ld2w r42, @(r2+,r0) + ld2w r44, @(r2+,r0) + ld2w r46, @(r2+,r0) + ld2w r48, @(r2+,r0) + ld2w r50, @(r2+,r0) + ld2w r52, @(r2+,r0) + ld2w r54, @(r2+,r0) + ld2w r56, @(r2+,r0) + ld2w r58, @(r2+,r0) + ld2w r60, @(r2+,r0) + ld2w r62, @(r2+,r0) + + ld2w r4, @(r2+,r0) + mvtacc a1, r4, r5 + + mvfsys r6, psw + ld2w r4, @(r2+,r0) /* psw, rpt_c */ + and r6, r6, 0xfcff /* set rp, md bits from setjmp, leave */ + and r4, r4, 0x0300 /* all other psw bits the same */ + or r4, r4, r6 + mvtsys psw, r4 + mvtsys rpt_c, r5 + + ld2w r4, @(r2+,r0) + mvtsys rpt_s, r4 + mvtsys rpt_e, r5 + + ld2w r4, @(r2+,r0) + mvtsys mod_s, r4 + mvtsys mod_e, r5 + +; Value to return to caller is in R3. If caller attemped to return 0, +; return 1 instead. + + cmpeq f0, r3, 0 || add r2, r3, r0 + jmp link || add/tx r2, r2, 1 +.Llongjmp: + .size longjmp,.Llongjmp-longjmp + .stabs "",36,0,0,.Llongjmp-longjmp diff --git a/newlib/libc/machine/fr30/Makefile.am b/newlib/libc/machine/fr30/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/fr30/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/fr30/Makefile.in b/newlib/libc/machine/fr30/Makefile.in new file mode 100644 index 000000000..5688a96e9 --- /dev/null +++ b/newlib/libc/machine/fr30/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/fr30/aclocal.m4 b/newlib/libc/machine/fr30/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/fr30/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/fr30/configure b/newlib/libc/machine/fr30/configure new file mode 100755 index 000000000..564788332 --- /dev/null +++ b/newlib/libc/machine/fr30/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=Makefile.am + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/fr30/configure.in b/newlib/libc/machine/fr30/configure.in new file mode 100644 index 000000000..a5384f62a --- /dev/null +++ b/newlib/libc/machine/fr30/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/arm configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(Makefile.am) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/fr30/setjmp.S b/newlib/libc/machine/fr30/setjmp.S new file mode 100644 index 000000000..98ac44d48 --- /dev/null +++ b/newlib/libc/machine/fr30/setjmp.S @@ -0,0 +1,64 @@ +# setjmp/longjmp for FR30. The jmpbuf looks like this: +# +# Register jmpbuf offset +# R8 0x00 +# R9 0x04 +# R10 0x08 +# R11 0x0c +# R12 0x10 +# R13 0x14 +# R14 (FP) 0x18 +# R15 (SP) 0x1c +# RP 0x20 + +.macro save reg + st \reg,@r4 + add #4,r4 +.endm + +.macro restore reg + ld @r4,\reg + add #4,r4 +.endm + + + .text + .global setjmp +setjmp: + save r8 + save r9 + save r10 + save r11 + save r12 + save r13 + save r14 + save r15 + mov RP,r5 + st r5,@r4 + +# Return 0 to caller. + ldi:8 #0,r4 + ret + + .global longjmp +longjmp: + restore r8 + restore r9 + restore r10 + restore r11 + restore r12 + restore r13 + restore r14 + restore r15 + ld @r4,r4 + mov r4,RP + +# If caller attempted to return 0, return 1 instead. + + mov r5,r4 + or r4,r4 + bne 1f + ldi:8 #1,r4 + 1: + ret +
\ No newline at end of file diff --git a/newlib/libc/machine/h8300/Makefile.am b/newlib/libc/machine/h8300/Makefile.am new file mode 100644 index 000000000..2ce8319b4 --- /dev/null +++ b/newlib/libc/machine/h8300/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = reg_memcpy.S reg_memset.S strcmp.S memcpy.S memset.S \ + setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/h8300/Makefile.in b/newlib/libc/machine/h8300/Makefile.in new file mode 100644 index 000000000..034b29ace --- /dev/null +++ b/newlib/libc/machine/h8300/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = reg_memcpy.S reg_memset.S strcmp.S memcpy.S memset.S \ + setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = reg_memcpy.o reg_memset.o strcmp.o memcpy.o memset.o \ +setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/h8300/aclocal.m4 b/newlib/libc/machine/h8300/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/h8300/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/h8300/configure b/newlib/libc/machine/h8300/configure new file mode 100755 index 000000000..34f5f6b82 --- /dev/null +++ b/newlib/libc/machine/h8300/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=memcpy.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/h8300/configure.in b/newlib/libc/machine/h8300/configure.in new file mode 100644 index 000000000..013345e00 --- /dev/null +++ b/newlib/libc/machine/h8300/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/h8300 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(memcpy.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/h8300/defines.h b/newlib/libc/machine/h8300/defines.h new file mode 100644 index 000000000..c6ae3df10 --- /dev/null +++ b/newlib/libc/machine/h8300/defines.h @@ -0,0 +1,86 @@ + +#define A0 r0 +#define A0L r0l +#define A0H r0h + +#define A1 r1 +#define A1L r1l +#define A1H r1h + +#define A2 r2 +#define A2L r2l +#define A2H r2h + +#define A3 r3 +#define A3L r3l +#define A3H r3h + +#define S0 r4 +#define S0L r4l +#define S0H r4h + +#define S1 r5 +#define S1L r5l +#define S1H r5h + +#define S2 r6 +#define S2L r6l +#define S2H r6h + +#ifdef __H8300__ +#define MOVP mov.w /* pointers are 16 bits */ +#define ADDP add.w +#define CMPP cmp.w +#define PUSHP push +#define POPP pop + +#define A0P r0 +#define A1P r1 +#define A2P r2 +#define A3P r3 +#define S0P r4 +#define S1P r5 +#define S2P r6 +#endif + +#ifdef __H8300H__ +#define MOVP mov.l /* pointers are 32 bits */ +#define ADDP add.l +#define CMPP cmp.l +#define PUSHP push.l +#define POPP pop.l + +#define A0P er0 +#define A1P er1 +#define A2P er2 +#define A3P er3 +#define S0P er4 +#define S1P er5 +#define S2P er6 + +#define A0E e0 +#define A1E e1 +#define A2E e2 +#define A3E e3 +#endif + +#ifdef __H8300S__ +#define MOVP mov.l /* pointers are 32 bits */ +#define ADDP add.l +#define CMPP cmp.l +#define PUSHP push.l +#define POPP pop.l + +#define A0P er0 +#define A1P er1 +#define A2P er2 +#define A3P er3 +#define S0P er4 +#define S1P er5 +#define S2P er6 + +#define A0E e0 +#define A1E e1 +#define A2E e2 +#define A3E e3 +#endif diff --git a/newlib/libc/machine/h8300/memcpy.S b/newlib/libc/machine/h8300/memcpy.S new file mode 100644 index 000000000..3465ce558 --- /dev/null +++ b/newlib/libc/machine/h8300/memcpy.S @@ -0,0 +1,48 @@ +#include "defines.h" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + .global _memcpy +_memcpy: +; MOVP @(2/4,r7),A0P ; dst +; MOVP @(4/8,r7),A1P ; src +; MOVP @(6/12,r7),A2P ; len + + MOVP A0P,A3P ; keep copy of final dst + ADDP A2P,A0P ; point to end of dst + CMPP A0P,A3P ; see if anything to do + beq quit + + ADDP A2P,A1P ; point to end of src + + ; lets see if we can do this in words + or A0L,A2L ; or in the dst address + or A3L,A2L ; or the length + or A1L,A2L ; or the src address + btst #0,A2L ; see if the lsb is zero + bne byteloop + +wordloop: + subs #2,A1P ; point to word + mov.w @A1P,A2 ; get word + mov.w A2,@-A0P ; save word + CMPP A0P,A3P ; at the front again ? + bne wordloop + rts + +byteloop: + subs #1,A1P ; point to byte + mov.b @A1P,A2L ; get byte + mov.b A2L,@-A0P ; save byte + CMPP A0P,A3P ; at the front again ? + bne byteloop + + ; return with A0 pointing to dst +quit: rts + diff --git a/newlib/libc/machine/h8300/memset.S b/newlib/libc/machine/h8300/memset.S new file mode 100644 index 000000000..c12f17b4e --- /dev/null +++ b/newlib/libc/machine/h8300/memset.S @@ -0,0 +1,51 @@ +#include "defines.h" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + +; A0P pointer to cursor +; A1P thing to copy + .global _memset + +_memset: + +; MOVP @(2/4,r7),A2P ; dst +; MOVP @(4/8,r7),A1 ; src thing +; MOVP @(6/12,r7),A3P ; len + + MOVP A2P,A2P + beq quit + + ; A3 points to the end of the area + MOVP A0P,A3P + ADDP A2P,A3P + + ; see if we can do it in words + ; by oring in the start of the buffer to the end address + + or A0L,A2L + btst #0,A2L + bne byteloop + + ; we can do it a word at a time + + mov.b A1L,A1H + +wordloop: + mov.w A1,@-A3P + CMPP A3P,A0P + bne wordloop +quit: rts + +byteloop: + mov.b A1L,@-A3P + CMPP A3P,A0P + bne byteloop + rts + diff --git a/newlib/libc/machine/h8300/reg_memcpy.S b/newlib/libc/machine/h8300/reg_memcpy.S new file mode 100644 index 000000000..772a43c27 --- /dev/null +++ b/newlib/libc/machine/h8300/reg_memcpy.S @@ -0,0 +1,33 @@ +#include "defines.h" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + + ; dst A0 + ; src A1 + ; len A2 + .global ___reg_memcpy +___reg_memcpy: + + MOVP A0P,A3P ; keep copy of result + ADDP A2P,A0P ; point to end of dst + ADDP A2P,A1P ; point to end of src + CMPP A0P,A3P ; see if anything to do + beq quit + + +loop: subs #1,A1P ; point to byte + mov.b @A1P,A2L ; get byte + mov.b A2L,@-A0P ; save byte + CMPP A0P,A3P ; at the front again ? + bne loop + + ; return with A0 pointing to dst +quit: rts + diff --git a/newlib/libc/machine/h8300/reg_memset.S b/newlib/libc/machine/h8300/reg_memset.S new file mode 100644 index 000000000..8e58c5ee8 --- /dev/null +++ b/newlib/libc/machine/h8300/reg_memset.S @@ -0,0 +1,32 @@ +#include "defines.h" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + + ; dst A0 + ; src A1 + ; len A2 + + .global ___reg_memset +___reg_memset: + MOVP A0P,A3P + MOVP A2P,A2P + beq noset + +memloop: + mov.b A1L,@A0P + adds #1,A0P + subs #1,A2P + MOVP A2P,A2P + bne memloop + +noset: + MOVP A3P,A0P + rts + diff --git a/newlib/libc/machine/h8300/setjmp.S b/newlib/libc/machine/h8300/setjmp.S new file mode 100644 index 000000000..9e7164095 --- /dev/null +++ b/newlib/libc/machine/h8300/setjmp.S @@ -0,0 +1,72 @@ + .file "setjmp.S" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + .section .text + .align 2 + .global _setjmp +_setjmp: +#ifdef __H8300H__ + mov.l er7,@er0 + mov.l er6,@(4,er0) + mov.l er5,@(8,er0) + mov.l er4,@(12,er0) + mov.l @sp,er1 + mov.l er1,@(16,er0) +#else +#ifdef __H8300S__ + mov.l er7,@er0 + mov.l er6,@(4,er0) + mov.l er5,@(8,er0) + mov.l er4,@(12,er0) + mov.l @sp,er1 + mov.l er1,@(16,er0) +#else + mov.w r7,@r0 + mov.w r6,@(2,r0) + mov.w r5,@(4,r0) + mov.w r4,@(6,r0) + mov.w @sp,r1 + mov.w r1,@(8,r0) +#endif +#endif + sub.w r0,r0 + rts + + .global _longjmp +_longjmp: +#ifdef __H8300H__ + mov.l @er0+,er7 + mov.l @er0+,er6 + mov.l @er0+,er5 + mov.l @er0+,er4 + mov.l @er0,er2 + mov.l er2,@sp +#else +#ifdef __H8300S__ + mov.l @er0+,er7 + mov.l @er0+,er6 + mov.l @er0+,er5 + mov.l @er0+,er4 + mov.l @er0,er2 + mov.l er2,@sp +#else + mov.w @r0+,r7 + mov.w @r0+,r6 + mov.w @r0+,r5 + mov.w @r0+,r4 + mov.w @r0,r2 + mov.w r2,@sp +#endif +#endif + mov.w r1,r0 + bne .L1 + mov.w #1,r0 +.L1: + rts diff --git a/newlib/libc/machine/h8300/strcmp.S b/newlib/libc/machine/h8300/strcmp.S new file mode 100644 index 000000000..8dec7c0b9 --- /dev/null +++ b/newlib/libc/machine/h8300/strcmp.S @@ -0,0 +1,45 @@ +#include "defines.h" + +#ifdef __H8300H__ + .h8300h +#endif + +#ifdef __H8300S__ + .h8300s +#endif + + .section .text + .align 2 + .global _strcmp +_strcmp: + MOVP A0P,A2P + MOVP A1P,A3P +.L5: + mov.b @A2P+,A1L + beq .L3 + mov.b @A3P+,A0L + cmp.b A0L,A1L + beq .L5 + subs #1,A3P +.L3: + mov.b @(-1,A2P),A0L + mov.b @A3P,A1L + sub.b A1L,A0L + ; We have to sign extend the result to 32bits just in case + ; we are using 32bit integers. +#ifdef __H8300H__ + exts.w r0 + exts.l er0 +#else +#ifdef __H8300S__ + exts.w r0 + exts.l er0 +#else + bld #7,r0l + subx r0h,r0h + subx r1l,r1l + subx r1h,r1h +#endif +#endif + rts + .end diff --git a/newlib/libc/machine/h8500/Makefile.am b/newlib/libc/machine/h8500/Makefile.am new file mode 100644 index 000000000..2d881a69a --- /dev/null +++ b/newlib/libc/machine/h8500/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = divsi3.c mulsi3.c divhi3.S shifts.c cmpsi.c psi.S setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/h8500/Makefile.in b/newlib/libc/machine/h8500/Makefile.in new file mode 100644 index 000000000..a3956ce3b --- /dev/null +++ b/newlib/libc/machine/h8500/Makefile.in @@ -0,0 +1,298 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = divsi3.c mulsi3.c divhi3.S shifts.c cmpsi.c psi.S setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = divsi3.o mulsi3.o divhi3.o shifts.o cmpsi.o psi.o \ +setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/h8500/aclocal.m4 b/newlib/libc/machine/h8500/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/h8500/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/h8500/cmpsi.c b/newlib/libc/machine/h8500/cmpsi.c new file mode 100644 index 000000000..3357343f5 --- /dev/null +++ b/newlib/libc/machine/h8500/cmpsi.c @@ -0,0 +1,126 @@ + +union u +{ + struct + { + short int msw; + unsigned short lsw; + } w; + long l; +}; + +union us +{ + struct + { + short int msw; + unsigned short lsw; + } w; + long l; +}; + +int +__cmpsi2(long arga, + short int msw_b, unsigned short int lsw_b) +{ + union u u; + u.l = arga; + + if (u.w.msw != msw_b) + { + if (u.w.msw < msw_b) return 0; + return 2; + } + if (u.w.lsw != lsw_b) + { + if (u.w.lsw < lsw_b) return 0; + return 2; + } + return 1; +} + + +int +__ucmpsi2(unsigned long arga, + unsigned short int msw_b, unsigned short int lsw_b) +{ + union us u; + u.l = arga; + + if (u.w.msw != msw_b) + { + if (u.w.msw < msw_b) return 0; + return 2; + } + if (u.w.lsw != lsw_b) + { + if (u.w.lsw < lsw_b) return 0; + return 2; + } + return 1; +} + + +union pu +{ + struct { + char ignore; + signed char msb; + unsigned short lsw; + } w; + long l; +}; + +union pun +{ + struct { + char ignore; + unsigned char msb; + unsigned short lsw; + } w; + long l; +}; + + +int +__cmppsi2(long arga, long argb) +{ + union pu a; + union pu b; + a.l = arga; + b.l = argb; + + if (a.w.msb != b.w.msb) + { + if (a.w.msb < b.w.msb) return 0; + return 2; + } + if (a.w.lsw != b.w.lsw) + { + if (a.w.lsw < b.w.lsw) return 0; + return 2; + } + return 1; +} + + +int +__ucmppsi2(long arga, long argb) +{ + union pun a; + union pun b; + a.l = arga; + b.l = argb; + + if (a.w.msb != b.w.msb) + { + if (a.w.msb < b.w.msb) return 0; + return 2; + } + if (a.w.lsw != b.w.lsw) + { + if (a.w.lsw < b.w.lsw) return 0; + return 2; + } + return 1; +} diff --git a/newlib/libc/machine/h8500/configure b/newlib/libc/machine/h8500/configure new file mode 100755 index 000000000..d862b2247 --- /dev/null +++ b/newlib/libc/machine/h8500/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=cmpsi.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/h8500/configure.in b/newlib/libc/machine/h8500/configure.in new file mode 100644 index 000000000..e51a5f424 --- /dev/null +++ b/newlib/libc/machine/h8500/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/h8500 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(cmpsi.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/h8500/divhi3.S b/newlib/libc/machine/h8500/divhi3.S new file mode 100644 index 000000000..ee3135110 --- /dev/null +++ b/newlib/libc/machine/h8500/divhi3.S @@ -0,0 +1,54 @@ + .title "H8/500 DIVIDE" +!! 2 byte integer Divide code for the H8/500 +!! +!! Steve Chamberlain +!! sac@cygnus.com +!! +!! + +!! args in r1 and r4, result in r0/r1 + +#if __CODE__==32 +#define RET prts +#else +#define RET rts +#endif + .global __divmodhi4 + + +__divmodhi4: + clr.w r0 + tst.w r1 ! neg arg1 + bpl PU + + + neg.w r1 +NU: tst.w r4 + bmi NN + +NP: divxu.w r4,r0 + neg.w r0 + neg.w r1 + RET + +NN: neg.w r4 + divxu.w r4,r0 + neg.w r0 ! get rem sign right + RET + + +PU: + tst.w r4 + bpl PP + + +PN: neg.w r4 + divxu.w r4,r0 + neg.w r1 + RET + +PP: divxu.w r4,r0 ! rem in r0, q in r1 + RET + + + diff --git a/newlib/libc/machine/h8500/divsi3.c b/newlib/libc/machine/h8500/divsi3.c new file mode 100644 index 000000000..e19855d0a --- /dev/null +++ b/newlib/libc/machine/h8500/divsi3.c @@ -0,0 +1,134 @@ + +#define divnorm(num, den, sign) \ +{ \ + if (num < 0) \ + { \ + num = -num; \ + sign = 1; \ + } \ + else \ + { \ + sign = 0; \ + } \ + \ + if (den < 0) \ + { \ + den = - den; \ + sign = 1 - sign; \ + } \ +} + + + + + +unsigned long +divmodsi4(int modwanted, unsigned long num, unsigned long den) +{ + long int bit = 1; + long int res = 0; + long prevden; + while (den < num && bit && !(den & (1L<<31))) + { + den <<=1; + bit <<=1; + } + while (bit) + { + if (num >= den) + { + num -= den; + res |= bit; + } + bit >>=1; + den >>=1; + } + if (modwanted) return num; + return res; +} + + +#define exitdiv(sign, res) if (sign) { res = - res;} return res; + +long +__modsi3 (long numerator, long denominator) +{ + int sign = 0; + long dividend; + long modul; + + + if (numerator < 0) + { + numerator = -numerator; + sign = 1; + } + if (denominator < 0) + { + denominator = -denominator; + } + + modul = divmodsi4 (1, numerator, denominator); + if (sign) + return - modul; + return modul; +} + + +long +__divsi3 (long numerator, long denominator) +{ + int sign; + long dividend; + long modul; + divnorm (numerator, denominator, sign); + + dividend = divmodsi4 (0, numerator, denominator); + exitdiv (sign, dividend); +} + +long +__umodsi3 (unsigned long numerator, unsigned long denominator) +{ + long dividend; + long modul; + +modul= divmodsi4 (1, numerator, denominator); + return modul; +} + +long +__udivsi3 (unsigned long numerator, unsigned long denominator) +{ + int sign; + long dividend; + long modul; + dividend = divmodsi4 (0, numerator, denominator); + return dividend; +} + + + + + + +#ifdef TEST + + + +main () +{ + long int i, j, k, m; + for (i = -10000; i < 10000; i += 8) + { + for (j = -10000; j < 10000; j += 11) + { + k = i / j; + m = __divsi3 (i, j); + if (k != m) + printf ("fail %d %d %d %d\n", i, j, k, m); + } + } +} + +#endif diff --git a/newlib/libc/machine/h8500/mulhi3.c b/newlib/libc/machine/h8500/mulhi3.c new file mode 100644 index 000000000..869e131ea --- /dev/null +++ b/newlib/libc/machine/h8500/mulhi3.c @@ -0,0 +1,21 @@ + + +short +__mulhi3(short a, short b) +{ + int r; + + r = 0; + while (a) + { + if (a & 1) + { + r += b; + a>>=1; + b<<=1; + } + } + return r; +} + + diff --git a/newlib/libc/machine/h8500/mulsi3.c b/newlib/libc/machine/h8500/mulsi3.c new file mode 100644 index 000000000..a923e8db5 --- /dev/null +++ b/newlib/libc/machine/h8500/mulsi3.c @@ -0,0 +1,72 @@ + +typedef union { + struct { + unsigned int msw; + unsigned int lsw; +} s; + long v; +} u; + +long __mulsi3(u a, u b) +{ + int s; + long pp1; + long pp2; + long r; + + if (a.s.msw == 0 && + b.s.msw == 0) + { + return (long)a.s.lsw * b.s.lsw; + } + + s = 0; + if (a.v < 0) + { + s = 1; + a.v = - a.v; + } + if (b.v < 0) + { + s = 1-s; + b.v = - b.v; + } + + pp1 = (long)a.s.lsw * b.s.lsw ; + pp2 = (long)a.s.lsw * b.s.msw + (long)a.s.msw * b.s.lsw; + + pp1 += pp2 << 16; + + if (s) + { + pp1 = -pp1; + } + return pp1; +} +long __mulpsi3(long a, long b) +{ + return a*b; +} + + +short +__mulhi3(short a, short b) +{ + int r; + + r = 0; + while (a) + { + if (a & 1) + { + r += b; + + } + b<<=1; + a>>=1; + + } + return r; +} + + diff --git a/newlib/libc/machine/h8500/negsi2.c b/newlib/libc/machine/h8500/negsi2.c new file mode 100644 index 000000000..c5b31b19d --- /dev/null +++ b/newlib/libc/machine/h8500/negsi2.c @@ -0,0 +1,7 @@ + + +long +__negsi2(long x) +{ + return ~x+1; +} diff --git a/newlib/libc/machine/h8500/psi.S b/newlib/libc/machine/h8500/psi.S new file mode 100644 index 000000000..47c818329 --- /dev/null +++ b/newlib/libc/machine/h8500/psi.S @@ -0,0 +1,136 @@ +/* convert psi to si inplace + +Note that `fp' below isn't a segment register. +It's r6, the frame pointer. */ + +#if __CODE__==32 +#define RET prts +#else +#define RET rts +#endif + +#define EXTPSISI_SN(r_msw,r_lsw,sp) ; \ + .global __extpsisi##r_msw ; \ +__extpsisi##r_msw: ; \ + mov r_msw,r_lsw ; \ + stc sp,r_msw ; \ + RET + + EXTPSISI_SN(r2,r3,dp) + EXTPSISI_SN(r4,r5,ep) + + +#define ADDPSI_AR_RN(sr,an,r_msw,r_lsw) \ + .global __addpsi##an##r_msw ; \ +__addpsi##an##r_msw: ; \ + stc sr,@-sp ; \ + add an,r_lsw ; \ + addx @sp+,r_msw ; \ + RET + + ADDPSI_AR_RN(dp,r2,r0,r1) + ADDPSI_AR_RN(dp,r2,r3,r4) + ADDPSI_AR_RN(ep,r4,r0,r1) + ADDPSI_AR_RN(ep,r4,r1,r2) + ADDPSI_AR_RN(ep,r4,r3,r4) + ADDPSI_AR_RN(ep,r4,r5,fp) + + ADDPSI_AR_RN(tp,fp,r0,r1) + + +#define ADDPSI_RN_AR(r_msw,r_lsw,sr,an,t_msw,t_lsw) \ + .global __addpsi##r_msw##an ; \ +__addpsi##r_msw##an: ; \ + mov.w t_msw,@-sp ; \ + mov.w t_lsw,@-sp ; \ + stc sr,t_msw ; \ + mov an,t_lsw ; \ + add r_lsw,t_lsw ; \ + addx r_msw,t_msw ; \ + ldc t_msw,sr ; \ + mov.w t_lsw,an ; \ + mov.w @sp+,t_lsw ; \ + mov.w @sp+,t_msw ; \ + RET + + ADDPSI_RN_AR(r0,r1,dp,r2,r4,r5) + ADDPSI_RN_AR(r0,r1,ep,r4,r2,r3) + + + +#define EXTPSIHI_RN_RN(rm,r_msw,r_lsw) ; \ + .global __extpsihi##rm##r_msw ; \ +__extpsihi##rm##r_msw: ; \ + mov rm,r_lsw ; \ + clr.w r_msw ; \ + RET + + EXTPSIHI_RN_RN(r3,r0,r1) + EXTPSIHI_RN_RN(r4,r0,r1) + EXTPSIHI_RN_RN(r5,r0,r1) + EXTPSIHI_RN_RN(r2,r0,r1) + + + +/* ifdefed out, because gcc doesn't like the # character in the above + macro. The macro expands into an assembly languange comment anyways, + so it serves no useful purpose. */ +#if 0 +#define EXTPSIHI_RN_SN(rm,r_msw,r_lsw) ; \ + .global __extpsihi##rm##r_lsw ; \ +__extpsihi##rm##r_lsw: ; \ + mov rm,r_lsw ; \ + ldc \#0,r_msw ; \ + RET + + EXTPSIHI_RN_SN(r0,dp,r2) + EXTPSIHI_RN_SN(r0,ep,r4) + EXTPSIHI_RN_SN(r1,dp,r2) + EXTPSIHI_RN_SN(r1,ep,r4) + EXTPSIHI_RN_SN(r3,dp,r2) + EXTPSIHI_RN_SN(r3,ep,r4) + EXTPSIHI_RN_SN(r5,dp,r2) + EXTPSIHI_RN_SN(r5,ep,r4) + EXTPSIHI_RN_SN(r2,ep,r4) +#endif + + +#define EXTPSISI_RN(r_msw,r_lsw) ; \ + .global __extpsisi##r_msw ; \ +__extpsisi##r_msw: ; \ + RET + + EXTPSISI_RN(r0,r1) + + + +#define ADDPSI_SA_SB(sa,ra,sb,rb) ; \ + .global __addpsi##ra##rb ; \ +__addpsi##ra##rb: ; \ + mov.w r0,@-sp ; \ + mov.w r1,@-sp ; \ + stc sa,r0 ; \ + stc sb,r1 ; \ + add.w ra,rb ; \ + addx r0,r1 ; \ + ldc r1,sb ; \ + mov.w @sp+,r1 ; \ + mov.w @sp+,r0 ; \ + RET + + + ADDPSI_SA_SB(dp,r2,ep,r4) + ADDPSI_SA_SB(ep,r4,dp,r2) + ADDPSI_SA_SB(tp,fp,dp,r2) + ADDPSI_SA_SB(tp,fp,ep,r4) + + ADDPSI_SA_SB(dp,r2,dp,r2) + + + + .global __addpsir0r0 +__addpsir0r0: + add.w r1,r1 + addx r0,r0 + RET + diff --git a/newlib/libc/machine/h8500/setjmp.S b/newlib/libc/machine/h8500/setjmp.S new file mode 100644 index 000000000..4b25fc0c9 --- /dev/null +++ b/newlib/libc/machine/h8500/setjmp.S @@ -0,0 +1,27 @@ +! + .file "setjmp.S" + .section .text + + .global _setjmp +_setjmp: + mov.w r7,@r0+ + mov.w r6,@r0+ + mov.w r5,@r0+ + mov.w @sp,r1 + mov.w r1,@r0 + clr.w r0 + rts + + .global _longjmp +_longjmp: + mov.w @r0+,r7 + mov.w @r0+,r6 + mov.w @r0+,r5 + mov.w @r0,r2 + mov.w r2,@sp + mov.w r1,r0 + tst.w r0 + bne .L1 + mov.w #1,r0 +.L1: + rts diff --git a/newlib/libc/machine/h8500/shifts.c b/newlib/libc/machine/h8500/shifts.c new file mode 100644 index 000000000..5b8106931 --- /dev/null +++ b/newlib/libc/machine/h8500/shifts.c @@ -0,0 +1,45 @@ + + +int __ashrhi3(int a,int b) +{ + return a>>b; +} + +int __ashlhi3(int a,int b) +{ + return a<<b; +} + +unsigned __lshlhi3(unsigned int a,int b) +{ + return a<<b; +} + +unsigned __lshrhi3(unsigned int a,int b) +{ + return a>>b; +} + + + + +long __ashrsi3(long a, int b) +{ + return a>>b; +} + +long __ashlsi3(long a,int b) +{ + return a<<b; +} + +unsigned __lshlsi3(unsigned long a,int b) +{ + return a<<b; +} + +unsigned __lshrsi3(unsigned long a,int b) +{ + return a>>b; +} + diff --git a/newlib/libc/machine/hppa/DEFS.h b/newlib/libc/machine/hppa/DEFS.h new file mode 100644 index 000000000..9c0aa1e06 --- /dev/null +++ b/newlib/libc/machine/hppa/DEFS.h @@ -0,0 +1,160 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include "pcc_prefix.s" + +#define BLANK +#define BANNER(str) BLANK .VERSION str +#define ENTRY(Name) BLANK M_ENTRY (Name,PROF_/**/Name) +#define ENTRYC(Name) BLANK M_ENTRYC(Name,PROF_/**/Name) +#define EXIT(Name) BLANK M_EXIT (Name,PROF_/**/Name) +#define EXITC(Name) BLANK M_EXITC (Name,PROF_/**/Name) + +#ifdef PROF + +; +; All four argument registers are saved into caller save registers +; and restored after the call to _mcount. This is possible because +; the mcount routine does not modify them, so we can. Mcount takes +; 3 arguments; the first argument is the incoming 'rp', the second +; is the starting address of the profiled routine, and the third is +; the address of the PROF label (which is where mcount stores the +; profile data). +; +#define M_ENTRY(name,prof) \ + .SPACE $TEXT$ !\ + .SUBSPA $CODE$ !\ + .label name !\ + .PROC !\ + .CALLINFO CALLER,SAVE_RP !\ + .ENTRY !\ + stw rp,-20(sp) !\ + ldo 48(sp),sp !\ + or arg0,r0,r19 !\ + or arg1,r0,r20 !\ + or arg2,r0,r21 !\ + or arg3,r0,r22 !\ + or rp,r0,arg0 !\ + ldil L%name,r1 !\ + ldo R%name(r1),arg1 !\ + addil L%prof-$global$,dp !\ + bl _mcount,rp !\ + ldo R%prof-$global$(r1),arg2 !\ + ldw -68(sp),rp !\ + ldo -48(sp),sp !\ + or r19,r0,arg0 !\ + or r20,r0,arg1 !\ + or r21,r0,arg2 !\ + or r22,r0,arg3 !\ + + +#define M_ENTRYC(name,prof) \ + .SPACE $TEXT$ !\ + .SUBSPA $CODE$ !\ + .label name !\ + .PROC !\ + .CALLINFO CALLER,SAVE_RP !\ + .ENTRY !\ + stw rp,-20(sp) !\ + ldo 128(sp),sp !\ + or arg0,r0,r19 !\ + or arg1,r0,r20 !\ + or arg2,r0,r21 !\ + or arg3,r0,r22 !\ + or rp,r0,arg0 !\ + ldil L%name,r1 !\ + ldo R%name(r1),arg1 !\ + addil L%prof-$global$,dp !\ + bl _mcount,rp !\ + ldo R%prof-$global$(r1),arg2 !\ + ldw -148(sp),rp !\ + or r19,r0,arg0 !\ + or r20,r0,arg1 !\ + or r21,r0,arg2 !\ + or r22,r0,arg3 !\ + +; +; The HPUX profiler uses a word for each entrypoint to store the profiling +; information. The setup code passes the address to the _mcount routine. +; The EXIT macro defines a label (PROF_foo), and a word of storage. +; +#define M_EXIT(name,prof) \ + bv,n r0(rp) !\ + .EXIT !\ + .PROCEND !\ + .EXPORT name,ENTRY !\ + .SPACE $PRIVATE$ !\ + .SUBSPA $DATA$ !\ + .label prof !\ + .WORD 0 !\ + .IMPORT $global$,DATA !\ + .IMPORT _mcount,CODE + +#define M_EXITC(name,prof) \ + bv r0(rp) !\ + ldo -128(sp),sp !\ + .EXIT !\ + .PROCEND !\ + .EXPORT name,ENTRY !\ + .SPACE $PRIVATE$ !\ + .SUBSPA $DATA$ !\ + .label prof !\ + .WORD 0 !\ + .IMPORT $global$,DATA !\ + .IMPORT _mcount,CODE + +#else /* NOT profiling */ + +#define M_ENTRY(name,prof) \ + .SPACE $TEXT$ !\ + .SUBSPA $CODE$ !\ + .label name !\ + .PROC !\ + .CALLINFO !\ + .ENTRY + +#define M_ENTRYC(name,prof) \ + .SPACE $TEXT$ !\ + .SUBSPA $CODE$ !\ + .label name !\ + .PROC !\ + .CALLINFO CALLER,SAVE_RP !\ + .ENTRY !\ + stw rp,-20(sp) !\ + ldo 128(sp),sp + +#define M_EXIT(name,prof) \ + bv,n r0(rp) !\ + .EXIT !\ + .PROCEND !\ + .EXPORT name,ENTRY + +#define M_EXITC(name,prof) \ + ldw -148(sp),rp !\ + bv r0(rp) !\ + ldo -128(sp),sp !\ + .EXIT !\ + .PROCEND !\ + .EXPORT name,ENTRY + +#define ENTRY(Name) BLANK M_ENTRY (Name,PROF_/**/Name) +#define ENTRYC(Name) BLANK M_ENTRYC(Name,PROF_/**/Name) +#define EXIT(Name) BLANK M_EXIT (Name,PROF_/**/Name) +#define EXITC(Name) BLANK M_EXITC (Name,PROF_/**/Name) + + +#endif diff --git a/newlib/libc/machine/hppa/Makefile.am b/newlib/libc/machine/hppa/Makefile.am new file mode 100644 index 000000000..413cd722a --- /dev/null +++ b/newlib/libc/machine/hppa/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + memchr.S memcmp.S memcpy.S memset.S setjmp.S strcat.S strcmp.S \ + strcpy.S strlen.S strncat.S strncmp.S strncpy.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/hppa/Makefile.in b/newlib/libc/machine/hppa/Makefile.in new file mode 100644 index 000000000..7fa027195 --- /dev/null +++ b/newlib/libc/machine/hppa/Makefile.in @@ -0,0 +1,300 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + memchr.S memcmp.S memcpy.S memset.S setjmp.S strcat.S strcmp.S \ + strcpy.S strlen.S strncat.S strncmp.S strncpy.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = memchr.o memcmp.o memcpy.o memset.o setjmp.o strcat.o \ +strcmp.o strcpy.o strlen.o strncat.o strncmp.o strncpy.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/hppa/aclocal.m4 b/newlib/libc/machine/hppa/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/hppa/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/hppa/configure b/newlib/libc/machine/hppa/configure new file mode 100755 index 000000000..5377ef3aa --- /dev/null +++ b/newlib/libc/machine/hppa/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=memchr.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/hppa/configure.in b/newlib/libc/machine/hppa/configure.in new file mode 100644 index 000000000..59ec18d3a --- /dev/null +++ b/newlib/libc/machine/hppa/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/hppa configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(memchr.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/hppa/memchr.S b/newlib/libc/machine/hppa/memchr.S new file mode 100644 index 000000000..1cca3e5e8 --- /dev/null +++ b/newlib/libc/machine/hppa/memchr.S @@ -0,0 +1,48 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* SPECTRUM_ID: @(#)memchr.s 37.4 86/04/23 */ +/* + * memchr(s, c, n) + * + * returns pointer to first occurrence of char c + * in first n characters of memory area s, + * or null if c does not occur. + */ + +#include "DEFS.h" + +#define FROM arg0 +#define CHAR arg1 +#define COUNT arg2 +#define TEMP1 r19 + +ENTRY(memchr) + comb,<= COUNT,r0,memchrexit /* return if count is zero */ + copy r0,ret0 /* null if c not found in n chars */ + depi 0,23,24,CHAR /* make char unsigned */ + + ldbs,ma 1(FROM),TEMP1 +memchrloop: + comb,=,n TEMP1,CHAR,memchrequal + addib,<> -1,COUNT,memchrloop + ldbs,ma 1(FROM),TEMP1 + b,n memchrexit + +memchrequal: + ldo -1(FROM),ret0 + +memchrexit: +EXIT(memchr) diff --git a/newlib/libc/machine/hppa/memcmp.S b/newlib/libc/machine/hppa/memcmp.S new file mode 100644 index 000000000..babb20761 --- /dev/null +++ b/newlib/libc/machine/hppa/memcmp.S @@ -0,0 +1,183 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* memcmp(s1, s2, n) */ +/* returns integer: < 0 iff s1 lexicographically less than s2 */ +/* > 0 iff s1 lexicographically greater than s2 */ +/* = 0 iff s1 lexicographically equal to s2 */ +/* = 0 iff s1 lexicographically equal to s2 */ +/* quit after n charachters */ +#ifndef _NAMESPACE_CLEAN +#define NOSECDEF /* prevents _memcmp from becoming primary entry */ +#endif + +#include "DEFS.h" + +#define s1 26 +#define s2 25 +#define tmp1 19 +#define s2word 20 +#define tmp3 21 +#define tmp7 22 +#define s1word 29 +#define save 1 +#define tmp6 23 +#define tmp5 28 +#define count 24 + +ENTRY(memcmp) + combt,<,n r0,count,search /*N <= 0 yields equality */ + b done /**/ + copy 0,ret0 /*return 0 (DELAY SLOT) */ +search: combf,=,n s1,s2,findout /*s1 != s2? */ + b done + copy 0,ret0 /*return 0 (delay slot) */ +findout: + comibf,=,n 0,s1,checks1 /*s1 == NULL? */ + ldbs 0(0,s2),ret0 /**/ + b done /*quit */ + sub 0,ret0,ret0 /*ret0 <- -*s2 */ +checks1: + comibf,=,n 0,s2,checkitout /*s2 == NULL? */ + b done /* quit */ + ldbs 0(0,s1),28 /* return *s1 */ + +checkitout: + extru s2,31,2,tmp1 /* Extract the low two bits of the s2. */ + extru s1,31,2,tmp5 /* Extract the low two bits of the s1 */ + sub,= tmp5,tmp1,tmp3 /* Are s1 & s2 aligned with each other? */ + b not_aligned /* It's more complicated (not_aligned) */ + dep 0,31,2,s1 /* Compute word address of s1 (DELAY SLOT) */ + dep 0,31,2,s2 /* Compute word address of s2 */ + ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ + combt,= tmp5,r0,skipmask /* skip masking, if we can */ + ldwm 4(0,s2),s2word /* get next s2 word s2+=4 (DELAY SLOT) */ + add tmp5,count,count /* bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word /* mask s1word (s1) */ + or save,s2word,s2word /* mask s2word (s2) */ + + +skipmask: + combt,=,n s1word,s2word,checkN /* We may be done */ + +checkbyte: + extru s1word,7,8,tmp3 /* get first byte (character) */ +ckbyte2: extru s2word,7,8,tmp7 /* get first byte (character) */ + combf,= tmp3,tmp7,done /* quit if first byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + addibt,<=,n -1,count,done /* have we checked N chars? ret0 == 0 */ + extru s1word,15,8,tmp3 /* get second byte (character) */ + extru s2word,15,8,tmp7 /* get second byte (character) */ + combf,= tmp3,tmp7,done /* quit if second byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + addibt,<=,n -1,count,done /* have we checked N chars? */ + extru s1word,23,8,tmp3 /* get third byte (character) */ + extru s2word,23,8,tmp7 /* get third byte (character) */ + combf,= tmp3,tmp7,done /* done if third byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + addibt,<=,n -1,count,done /* have we checked N chars? */ + extru s1word,31,8,tmp3 /* get last byte (character) */ + extru s2word,31,8,tmp7 /* get last byte (character) */ + b done /* if we reach this point we know that */ + sub tmp3,tmp7,ret0 /* the last character in the word is */ + /* where the difference is, so return */ + /* the difference and we're outta here */ + + +checkN: + addibt,<=,n -4,count,zero /* have we checked N chars? */ + ldwm 4(0,s2),s2word /* get next s2 word s2+=4 */ + b skipmask /* keep checking */ + ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ + + +not_aligned: + dep r0,31,2,s2 /* Compute word address of s2 */ + combt,<,n r0,tmp3,shifts1 /* Do we shift s1 or s2 */ + sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ + ldwm 4(0,s1),s1word /* get first word of s1 */ + ldwm 4(0,s2),s2word /* get first word or s2 */ + combt,=,n r0,tmp5,masks2 /* Do we need to mask beginning of s1 */ + add tmp5,count,count /* bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word /**/ +masks2: sh3add tmp1,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s2word,s2word /**/ + subi 4,tmp1,tmp1 /* tmp1 now has the number of byte that */ + /* are valid in s2word before the vshd */ + mtctl tmp3,11 /* Move shift amount to CR11 */ +more: combt,<=,n count,tmp1,chunk1 /* Can we do the vshd? */ + ldwm 4(0,s2),tmp7 /* load second word to enable us to shift */ + vshd s2word,tmp7,s2word /**/ + combf,=,n s1word,s2word,ckbyte2 /**/ + extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ + addibt,<=,n -4,count,zero /* have we checked N chars? */ + copy tmp7,s2word /**/ + b more /* keep checking */ + ldwm 4(0,s1),s1word /* get next s1 (DELAY SLOT) */ + +chunk1: + vshd s2word,r0,s2word /* do an arithmetic shift left to position data */ + b ckbyte2 /**/ + extru s1word,7,8,tmp3 /**/ + + +shifts1: + sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ + sub r0,tmp3,tmp3 /* Get negative value for left shift */ + dep r0,31,2,s2 /* Compute word address of s2 */ + ldwm 4(0,s2),s2word /* get first word of s2 */ + ldwm 4(0,s1),s1word /* get first word or s1 */ + combt,=,n r0,tmp1,masks1 /*Do we need to mask beginning of s2 */ + add tmp1,count,count /*bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp1,r0,save /*save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /*load save with proper mask */ + or save,s2word,s2word /**/ +masks1: sh3add tmp5,r0,save /*save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /*load save with proper mask */ + or save,s1word,s1word /**/ + subi 4,tmp5,tmp5 /*tmp5 now has the number of byte that */ + /*are valid in s1word before the vshd */ + mtctl tmp3,11 /*Move shift amount to CR11 */ +more1: combt,<=,n count,tmp5,chunk2 /*Can we do the vshd? */ + ldwm 4(0,s1),tmp7 /*load second word to enable us to shift */ + vshd s1word,tmp7,s1word /**/ + combf,=,n s2word,s1word,ckbyte2 /**/ + extru s1word,7,8,tmp3 /*get first byte (DELAY SLOT) */ + addibt,<=,n -4,count,zero /*have we checked N chars? */ + copy tmp7,s1word /**/ + b more1 /*keep checking */ + ldwm 4(0,s2),s2word /*get next s2 (DELAY SLOT) */ + +chunk2: + vshd s1word,r0,s1word /**/ + b ckbyte2 /**/ + extru s1word,7,8,tmp3 /**/ + +zero: copy r0,ret0 +done: +EXIT(memcmp) diff --git a/newlib/libc/machine/hppa/memcpy.S b/newlib/libc/machine/hppa/memcpy.S new file mode 100644 index 000000000..713c1c11b --- /dev/null +++ b/newlib/libc/machine/hppa/memcpy.S @@ -0,0 +1,146 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* HPUX_ID: @(#) $Revision$ */ +/* + * memcpy(s1, s2, n) + * + * Copy n characters from s2 to s1; returns s1. + */ + +#define d_addr arg0 +#define s_addr arg1 +#define count arg2 +#define tmp5 arg3 +#define tmp1 r19 +#define tmp2 r20 +#define tmp3 r21 +#define tmp4 r22 +#define tmp6 r31 + +#include "DEFS.h" + +ENTRY(memcpy) + comib,>= 5,count,byteloop /* If count is <= 6 don't get fancy.*/ + movb,=,n d_addr,ret0,done /* The return value is defined to be the value of d_addr. DELAY SLOT */ + /* if d_addr is null then exit */ + extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address. */ + extru d_addr,31,2,tmp2 /* Extract the low two bits of the destination address. */ + add count,tmp2,count /* pre increment the count to adjust for alignment of s1 */ + comb,<> tmp2,tmp1,not_aligned /* see if s1 is aligned w.r.t. s2. */ + dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT. */ + +/* aligned */ + +/* We will now begin the 16 byte at a time word move if count >= 16 ! */ +/* Else we will branch to the 4 byte-at-a time word move ! */ + + addibt,<,n -16,count,chekchunk /* If count < 16 then we can't move 16 byte chunks ! */ + /* actually we can legally move 13 or more bytes on the first loop. */ + /* These loads and stores are done so as to prevent processor interlock. */ +chunks: + ldwm 16(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 16 */ + ldw -12(0,s_addr),tmp2 /* tmp2 = 2nd word */ + ldw -8(0,s_addr),tmp3 /* tmp3 = 3rd word */ + ldw -4(0,s_addr),tmp4 /* tmp4 = 4th word */ + /* Now store the results ! */ + stbys,b,m tmp1,4(0,d_addr) /* tmp1 = 1st word stored d_addr += 16 also take care of front porch. */ + stwm tmp2,4(0,d_addr) /* tmp2 = 2nd word stored. */ + stwm tmp3,4(0,d_addr) /* tmp3 = 3rd word stored. */ + addibf,< -16,count,chunks /* If count is still >= 16 do another loop. */ + stwm tmp4,4(0,d_addr) /* tmp4 = 4th word stored. DELAY SLOT */ + +chekchunk: + addibt,<,n 12,count,back_porch /* since the count is already decremented by -16 we're testing */ + /* to see if there are at least 4 bytes left ? */ +subchunk: + ldws,ma 4(s_addr),tmp1 /* tmp1 = *s_addr++ */ + addibf,< -4,count,subchunk /* count -= 4 */ + stbys,b,m tmp1,4(d_addr) /* *d_addr++ = tmp1 */ + + +back_porch: + addibt,=,n 4,count,done /* if count = 0 we're, of course, done ! */ + ldws 0(s_addr),tmp1 /* load up the back_porch */ + add d_addr,count,d_addr/* final store address is +1 too high ! */ + bv 0(r2) /* return--were done. */ + stbys,e tmp1,0(d_addr) /* kerplunk! whew ! */ + +/* Begin non_aligned code. (no refrence to politics) */ +not_aligned: + sub,>= tmp2,tmp1,tmp3 /* compute the shift quantity again and skip the load if tmp2 > tmp1. */ + ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++ */ + zdep tmp3,28,29,tmp4 /* compute the number of bits to shift based on the number of bytes above. */ + mtctl tmp4,11 /* load the shift count into cr11 = shift count register. */ + + addibt,<,n -16,count,chkchnk2 /* first step in pre adjustment of count for looping. */ + +chunk2: + ldwm 16(0,s_addr),tmp2 /* get either first or second word . tmp2 = *s_addr++ */ + ldw -12(s_addr),tmp3 + ldw -8(s_addr),tmp4 + ldw -4(s_addr),tmp5 + vshd tmp1,tmp2,tmp6 /* position data ! */ + stbys,b,m tmp6,4(0,d_addr) /* store ! */ + + vshd tmp2,tmp3,tmp6 /* position data ! */ + stwm tmp6,4(0,d_addr) /* store ! */ + + vshd tmp3,tmp4,tmp6 /* position data ! */ + stwm tmp6,4(0,d_addr) /* store ! */ + + vshd tmp4,tmp5,tmp6 /* position data ! */ + stwm tmp6,4(0,d_addr) /* store the data ! */ + addibf,< -16,count,chunk2 /* If count is still >= 16 do another loop. */ + copy tmp5,tmp1 + + +chkchnk2: + addibt,<,n 12,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0) */ + +subchnk2: + ldwm 4(0,s_addr),tmp2 /* get next word ! */ + vshd tmp1,tmp2,tmp3 /* position data ! */ + addibt,< -4,count,bp_1 /* decrement count and when count < 4 goto back_porch (bp_1) */ + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + + ldwm 4(0,s_addr),tmp1 /* get 4th word ! */ + vshd tmp2,tmp1,tmp3 /* position data ! */ + addib,>= -4,count,subchnk2 /* decrement count and when count <= 4 go to back porch (bp_2) */ + stbys,b,m tmp3,4(0,d_addr) /* store the data ! */ + +bp_0: copy tmp1,tmp2 /* switch registers used in the shift process. */ +bp_1: addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ + add d_addr,count,d_addr /* bump destination address to be +1 too high ! */ + mfctl sar,tmp3 /* suppress final ldwm unless result used */ + extru tmp3,28,2,tmp3 /* convert bitshift to byteshift */ + sub,<= count,tmp3,r0 /* bytes unused if (count-byteshift <= 0*/ + + ldwm 4(0,s_addr),tmp1 /* get final word ! */ + vshd tmp2,tmp1,tmp3 /* position data ! */ + bv 0(r2) /* return */ + stbys,e tmp3,0(0,d_addr) /* store the data ! */ + +/* here we do ye old byte-at-a-time moves. */ +byteloop: + comb,>=,n 0,count,done + +encore: + ldbs,ma 1(s_addr),tmp1 + addibf,= -1,count,encore + stbs,ma tmp1,1(d_addr) + +done: +EXIT(memcpy) diff --git a/newlib/libc/machine/hppa/memset.S b/newlib/libc/machine/hppa/memset.S new file mode 100644 index 000000000..cea738251 --- /dev/null +++ b/newlib/libc/machine/hppa/memset.S @@ -0,0 +1,85 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* SPECTRUM_ID: @(#)memset.s 37.4 86/08/25 */ +/* + * memset(s, c, n) + * + * Sets first n chars in memory area s to value of character c. + * Returns s. + */ +#ifndef _NAMESPACE_CLEAN +#define NOSECDEF /* prevent _memset from being defined as entry */ +#endif + +#include "DEFS.h" + +#define TO arg0 +#define FILLCHAR arg1 +#define COUNT arg2 +#define TMP r31 + +ENTRY(memset) + comb,<= COUNT,r0,msexit /* return if count not positive */ + copy TO,ret0 /* return value is start of copy */ + comibf,<,n 5,COUNT,msbyteloop /* be straightforward */ + + dep FILLCHAR,23,8,FILLCHAR /* dup low byte */ + dep FILLCHAR,15,16,FILLCHAR /* into high bytes */ + + add TO,COUNT,TMP /* TMP points just past fill area */ + stbys,m FILLCHAR,0(TO) /* fill out first word */ + /* + * If we're pointing to high-order byte, no fill will happen, + * but permissions will be checked. We don't want this (we + * might be pointing at the beginning of a protected region), + * so we branch around stbys if neither low bits are set. + */ + bb,<,n TMP,31,filend /* if low bit is set, stbys */ + bb,>=,n TMP,30,endfil /* if next lowest bit isn't set */ + /* (and lowest isn't, either) */ + /* do not stbys */ +filend: + stbys,m,e FILLCHAR,0(TMP) /* fill out the last */ +endfil: + addi 4, TO, TO + sub TMP,TO,COUNT /* will now divide by 4 */ + comb,=,n COUNT,r0,msexit /* If count is zero ret. */ + + extru,<> COUNT,31,4,r1 + b msquadloop + depi 0,31,4,COUNT /* will now divide by 16 */ + + +mswordloop: + addib,<> -4,r1,mswordloop + stws,ma FILLCHAR,4(TO) + + comb,=,n COUNT,r0,msexit /* If count is zero ret. */ + +msquadloop: + stws,ma FILLCHAR,4(TO) + stws,ma FILLCHAR,4(TO) + stws,ma FILLCHAR,4(TO) + addib,<> -16,COUNT,msquadloop + stws,ma FILLCHAR,4(TO) + b,n msexit + +msbyteloop: + addib,<> -1,COUNT,msbyteloop + stbs,ma FILLCHAR,1(TO) + +msexit: +EXIT(memset) diff --git a/newlib/libc/machine/hppa/pcc_prefix.s b/newlib/libc/machine/hppa/pcc_prefix.s new file mode 100644 index 000000000..24d5254d9 --- /dev/null +++ b/newlib/libc/machine/hppa/pcc_prefix.s @@ -0,0 +1,389 @@ +; +; (c) Copyright 1986 HEWLETT-PACKARD COMPANY +; +; To anyone who acknowledges that this file is provided "AS IS" +; without any express or implied warranty: +; permission to use, copy, modify, and distribute this file +; for any purpose is hereby granted without fee, provided that +; the above copyright notice and this notice appears in all +; copies, and that the name of Hewlett-Packard Company not be +; used in advertising or publicity pertaining to distribution +; of the software without specific, written prior permission. +; Hewlett-Packard Company makes no representations about the +; suitability of this software for any purpose. +; + +; Standard Hardware Register Definitions for Use with Assembler +; version A.08.06 +; - fr16-31 added at Utah +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Hardware General Registers +r0: .equ 0 + +r1: .equ 1 + +r2: .equ 2 + +r3: .equ 3 + +r4: .equ 4 + +r5: .equ 5 + +r6: .equ 6 + +r7: .equ 7 + +r8: .equ 8 + +r9: .equ 9 + +r10: .equ 10 + +r11: .equ 11 + +r12: .equ 12 + +r13: .equ 13 + +r14: .equ 14 + +r15: .equ 15 + +r16: .equ 16 + +r17: .equ 17 + +r18: .equ 18 + +r19: .equ 19 + +r20: .equ 20 + +r21: .equ 21 + +r22: .equ 22 + +r23: .equ 23 + +r24: .equ 24 + +r25: .equ 25 + +r26: .equ 26 + +r27: .equ 27 + +r28: .equ 28 + +r29: .equ 29 + +r30: .equ 30 + +r31: .equ 31 + +; Hardware Space Registers +sr0: .equ 0 + +sr1: .equ 1 + +sr2: .equ 2 + +sr3: .equ 3 + +sr4: .equ 4 + +sr5: .equ 5 + +sr6: .equ 6 + +sr7: .equ 7 + +; Hardware Floating Point Registers +fr0: .equ 0 + +fr1: .equ 1 + +fr2: .equ 2 + +fr3: .equ 3 + +fr4: .equ 4 + +fr5: .equ 5 + +fr6: .equ 6 + +fr7: .equ 7 + +fr8: .equ 8 + +fr9: .equ 9 + +fr10: .equ 10 + +fr11: .equ 11 + +fr12: .equ 12 + +fr13: .equ 13 + +fr14: .equ 14 + +fr15: .equ 15 + +fr16: .equ 16 + +fr17: .equ 17 + +fr18: .equ 18 + +fr19: .equ 19 + +fr20: .equ 20 + +fr21: .equ 21 + +fr22: .equ 22 + +fr23: .equ 23 + +fr24: .equ 24 + +fr25: .equ 25 + +fr26: .equ 26 + +fr27: .equ 27 + +fr28: .equ 28 + +fr29: .equ 29 + +fr30: .equ 30 + +fr31: .equ 31 + +; Hardware Control Registers +cr0: .equ 0 + +rctr: .equ 0 ; Recovery Counter Register + + +cr8: .equ 8 ; Protection ID 1 + +pidr1: .equ 8 + + +cr9: .equ 9 ; Protection ID 2 + +pidr2: .equ 9 + + +cr10: .equ 10 + +ccr: .equ 10 ; Coprocessor Confiquration Register + + +cr11: .equ 11 + +sar: .equ 11 ; Shift Amount Register + + +cr12: .equ 12 + +pidr3: .equ 12 ; Protection ID 3 + + +cr13: .equ 13 + +pidr4: .equ 13 ; Protection ID 4 + + +cr14: .equ 14 + +iva: .equ 14 ; Interrupt Vector Address + + +cr15: .equ 15 + +eiem: .equ 15 ; External Interrupt Enable Mask + + +cr16: .equ 16 + +itmr: .equ 16 ; Interval Timer + + +cr17: .equ 17 + +pcsq: .equ 17 ; Program Counter Space queue + + +cr18: .equ 18 + +pcoq: .equ 18 ; Program Counter Offset queue + + +cr19: .equ 19 + +iir: .equ 19 ; Interruption Instruction Register + + +cr20: .equ 20 + +isr: .equ 20 ; Interruption Space Register + + +cr21: .equ 21 + +ior: .equ 21 ; Interruption Offset Register + + +cr22: .equ 22 + +ipsw: .equ 22 ; Interrpution Processor Status Word + + +cr23: .equ 23 + +eirr: .equ 23 ; External Interrupt Request + + +cr24: .equ 24 + +ppda: .equ 24 ; Physcial Page Directory Address + +tr0: .equ 24 ; Temporary register 0 + + +cr25: .equ 25 + +hta: .equ 25 ; Hash Table Address + +tr1: .equ 25 ; Temporary register 1 + + +cr26: .equ 26 + +tr2: .equ 26 ; Temporary register 2 + + +cr27: .equ 27 + +tr3: .equ 27 ; Temporary register 3 + + +cr28: .equ 28 + +tr4: .equ 28 ; Temporary register 4 + + +cr29: .equ 29 + +tr5: .equ 29 ; Temporary register 5 + + +cr30: .equ 30 + +tr6: .equ 30 ; Temporary register 6 + + +cr31: .equ 31 + +tr7: .equ 31 ; Temporary register 7 + +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Procedure Call Convention ~ +; Register Definitions for Use with Assembler ~ +; version A.08.06 +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Software Architecture General Registers +rp: .equ r2 ; return pointer + +mrp: .equ r31 ; millicode return pointer + +ret0: .equ r28 ; return value + +ret1: .equ r29 ; return value (high part of double) + +sl: .equ r29 ; static link + +sp: .equ r30 ; stack pointer + +dp: .equ r27 ; data pointer + +arg0: .equ r26 ; argument + +arg1: .equ r25 ; argument or high part of double argument + +arg2: .equ r24 ; argument + +arg3: .equ r23 ; argument or high part of double argument + +;_____________________________________________________________________________ +; Software Architecture Space Registers +; sr0 ; return link form BLE +sret: .equ sr1 ; return value + +sarg: .equ sr1 ; argument + +; sr4 ; PC SPACE tracker +; sr5 ; process private data +;_____________________________________________________________________________ +; Software Architecture Pseudo Registers +previous_sp: .equ 64 ; old stack pointer (locates previous frame) + +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +; Standard space and subspace definitions. version A.08.06 +; These are generally suitable for programs on HP_UX and HPE. +; Statements commented out are used when building such things as operating +; system kernels. +;;;;;;;;;;;;;;;; + .SPACE $TEXT$, SPNUM=0,SORT=8 +; .subspa $FIRST$, QUAD=0,ALIGN=2048,ACCESS=0x2c,SORT=4,FIRST +; .subspa $REAL$, QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=4,FIRST,LOCK + .subspa $MILLICODE$, QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=8 + .subspa $LIT$, QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=16 + .subspa $CODE$, QUAD=0,ALIGN=8,ACCESS=0x2c,SORT=24 +; .subspa $UNWIND$, QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=64 +; .subspa $RECOVER$, QUAD=0,ALIGN=4,ACCESS=0x2c,SORT=80 +; .subspa $RESERVED$, QUAD=0,ALIGN=8,ACCESS=0x73,SORT=82 +; .subspa $GATE$, QUAD=0,ALIGN=8,ACCESS=0x4c,SORT=84,CODE_ONLY +; Additional code subspaces should have ALIGN=8 for an interspace BV +; and should have SORT=24. +; +; For an incomplete executable (program bound to shared libraries), +; sort keys $GLOBAL$ -1 and $GLOBAL$ -2 are reserved for the $DLT$ +; and $PLT$ subspaces respectively. +;;;;;;;;;;;;;;; + .SPACE $PRIVATE$, SPNUM=1,PRIVATE,SORT=16 + .subspa $GLOBAL$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40 + .import $global$ + .subspa $SHORTDATA$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=24 + .subspa $DATA$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=16 + .subspa $PFA_COUNTER$, QUAD=1,ALIGN=4,ACCESS=0x1f,SORT=8 + .subspa $SHORTBSS$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=80,ZERO + .subspa $BSS$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82,ZERO +; .subspa $PCB$, QUAD=1,ALIGN=8,ACCESS=0x10,SORT=82 +; .subspa $STACK$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82 +; .subspa $HEAP$, QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=82 +;;;;;;;;;;;;;;;; +; .SPACE $PFA$, SPNUM=0,PRIVATE,UNLOADABLE,SORT=64 +; .subspa $PFA_ADDRESS$, ALIGN=4,ACCESS=0x2c,UNLOADABLE +;;;;;;;;;;;;;;;; +; .SPACE $DEBUG$, SPNUM=2,PRIVATE,UNLOADABLE,SORT=80 +; .subspa $HEADER$, ALIGN=4,ACCESS=0,UNLOADABLE,FIRST +; .subspa $GNTT$, ALIGN=4,ACCESS=0,UNLOADABLE +; .subspa $LNTT$, ALIGN=4,ACCESS=0,UNLOADABLE +; .subspa $SLT$, ALIGN=4,ACCESS=0,UNLOADABLE +; .subspa $VT$, ALIGN=4,ACCESS=0,UNLOADABLE + +; To satisfy the copyright terms each .o will have a reference +; the the actual copyright. This will force the actual copyright +; message to be brought in from libgloss/hp-milli.s + .space $PRIVATE$ + .subspa $DATA$ + .import ___hp_free_copyright,data +L$copyright .word ___hp_free_copyright diff --git a/newlib/libc/machine/hppa/setjmp.S b/newlib/libc/machine/hppa/setjmp.S new file mode 100644 index 000000000..6f3668e92 --- /dev/null +++ b/newlib/libc/machine/hppa/setjmp.S @@ -0,0 +1,139 @@ +/* Copyright (c) 1995 Cygnus Support. + All rights reserved. + + Redistribution and use in source and binary forms are permitted + provided that the above copyright notice and this paragraph are + duplicated in all such forms and that any documentation, + advertising materials, and other materials related to such + distribution and use acknowledge that the software was developed + at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to + endorse or promote products derived from this software without + specific prior written permission. + THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ + +/* Note I don't know an easy way to get the FP version into the + traditional C library and the non-FP version into the soft-float + library. Maybe we'll have to have -msoft-float trigger something + like -DSOFT_FLOAT if this issue ever arises. */ + + .SPACE $PRIVATE$ + .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 + .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 + .SPACE $TEXT$ + .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 + .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY + .IMPORT $global$,DATA + .IMPORT $$dyncall,MILLICODE +; gcc_compiled.: + .SPACE $TEXT$ + .SUBSPA $CODE$ + + .align 4 + .EXPORT setjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,RTNVAL=GR +setjmp + .PROC + .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 + .ENTRY + stwm %r30,4(%r26) + stwm %r2,4(%r26) + stwm %r3,4(%r26) + stwm %r4,4(%r26) + stwm %r5,4(%r26) + stwm %r6,4(%r26) + stwm %r7,4(%r26) + stwm %r8,4(%r26) + stwm %r9,4(%r26) + stwm %r10,4(%r26) + stwm %r11,4(%r26) + stwm %r12,4(%r26) + stwm %r13,4(%r26) + stwm %r14,4(%r26) + stwm %r15,4(%r26) + stwm %r16,4(%r26) + stwm %r17,4(%r26) + stwm %r18,4(%r26) + stwm %r27,4(%r26) +#ifdef FP + ; jmp_buf may only have a 4 byte alignment, so handle FP stores + ; very carefully. + fstds %fr12,-16(%r30) + ldw -16(%r30),%r28 + stwm %r28,4(%r26) + ldw -12(%r30),%r28 + stwm %r28,4(%r26) + fstds %fr13,-16(%r30) + ldw -16(%r30),%r28 + stwm %r28,4(%r26) + ldw -12(%r30),%r28 + stwm %r28,4(%r26) + fstds %fr14,-16(%r30) + ldw -16(%r30),%r28 + stwm %r28,4(%r26) + ldw -12(%r30),%r28 + stwm %r28,4(%r26) + fstds %fr15,-16(%r30) + ldw -16(%r30),%r28 + stwm %r28,4(%r26) + ldw -12(%r30),%r28 + stwm %r28,4(%r26) +#endif + + bv 0(%r2) + copy %r0,%r28 + .EXIT + .PROCEND + .align 4 + .EXPORT longjmp,ENTRY,PRIV_LEV=3,ARGW0=GR,ARGW1=GR,RTNVAL=GR +longjmp + .PROC + .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 + .ENTRY + ldwm 4(%r26),%r30 + ldwm 4(%r26),%r2 + ldwm 4(%r26),%r3 + ldwm 4(%r26),%r4 + ldwm 4(%r26),%r5 + ldwm 4(%r26),%r6 + ldwm 4(%r26),%r7 + ldwm 4(%r26),%r8 + ldwm 4(%r26),%r9 + ldwm 4(%r26),%r10 + ldwm 4(%r26),%r11 + ldwm 4(%r26),%r12 + ldwm 4(%r26),%r13 + ldwm 4(%r26),%r14 + ldwm 4(%r26),%r15 + ldwm 4(%r26),%r16 + ldwm 4(%r26),%r17 + ldwm 4(%r26),%r18 + ldwm 4(%r26),%r27 +#ifdef FP + ldwm 4(%r26),%r28 + stw %r28,-16(%r30) + ldwm 4(%r26),%r28 + stw %r28,-12(%r30) + fldds -16(%r30),%fr12 + ldwm 4(%r26),%r28 + stw %r28,-16(%r30) + ldwm 4(%r26),%r28 + stw %r28,-12(%r30) + fldds -16(%r30),%fr13 + ldwm 4(%r26),%r28 + stw %r28,-16(%r30) + ldwm 4(%r26),%r28 + stw %r28,-12(%r30) + fldds -16(%r30),%fr14 + ldwm 4(%r26),%r28 + stw %r28,-16(%r30) + ldwm 4(%r26),%r28 + stw %r28,-12(%r30) + fldds -16(%r30),%fr15 +#endif + comclr,<> %r0,%r25,%r0 + ldi 1,%r25 + bv 0(%r2) + copy %r25,%r28 + .EXIT + .PROCEND diff --git a/newlib/libc/machine/hppa/strcat.S b/newlib/libc/machine/hppa/strcat.S new file mode 100644 index 000000000..9fcdd790f --- /dev/null +++ b/newlib/libc/machine/hppa/strcat.S @@ -0,0 +1,178 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* HPUX_ID: @(#) $Revision$ */ +/* + * strcat(s1, s2) + * + * Concatenate s2 on the end of s1. S1's space must be large enough. + * Return s1. + */ +#include "DEFS.h" + +#define d_addr r26 +#define s_addr r25 +#define tmp6 r24 +#define tmp1 r19 +#define tmp2 r20 +#define tmp3 r21 +#define tmp4 r22 +#define tmp5 arg3 +#define save r1 + + +ENTRY(strcat) + + comb,= r0,s_addr,done /* quit if s2=NULL */ + copy d_addr,ret0 /* The return value is the value of d_addr. DELAY SLOT*/ + +/* First look for end of s1 (d_addr) */ + + extru d_addr,31,2,tmp1 /* Extract the low two bits of the dest address. */ + combt,= tmp1,r0,dont_mask + dep 0,31,2,d_addr /*set word alignment */ + ldwm 4(d_addr),tmp2 + sh3add tmp1,r0,save /* build mask based on tmp1 */ + mtctl save,11 + zvdepi -2,32,save + or save,tmp2,tmp2 + uxor,nbz tmp2,r0,save +search: + b,n found_end /* nullified under uxor conditions above and below */ +dont_mask: + ldwm 4(d_addr),tmp2 + comib,tr r0,r0,search + uxor,nbz tmp2,r0,save + +found_end: /* at this point d_addr points to word */ + extru,<> save,7,8,r0 /* following word with null */ + addib,tr,n -4,d_addr,begin_copy /*set d_addr to end of s1 */ + extru,<> save,15,8,r0 + addib,tr,n -3,d_addr,begin_copy + extru,<> save,23,8,r0 + addi -1,d_addr,d_addr + addi -1,d_addr,d_addr + + +begin_copy: + + extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address. */ + extru d_addr,31,2,tmp6 /* Extract the low two bits of the destination address. */ + sub,= tmp6,tmp1,tmp3 /* Compute the shift quantity and don't branch if tmp6=tmp1. */ + b not_aligned /* Not_aligned says that shifts Will be needed. */ + dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT. */ +/* aligned */ + + combt,= tmp6,r0,skip_mask + ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT) */ + sh3add tmp6,r0,save + mtctl save,r11 + zvdepi -2,32,save + or save,tmp1,tmp1 + uxor,nbz tmp1,r0,save + b,n first_null /* special case: null in first word */ + b,n skip_mask2 + +chunks: + b,n null_found /* delay slot for uxor below */ + +skip_mask2: + stbys,b,m tmp1,4(d_addr) + ldwm 4(s_addr),tmp1 +skip_mask: + comib,tr 0,0,chunks + uxor,nbz tmp1,r0,save + +/* Begin non_aligned code. */ + +not_aligned: + sh3add,>= tmp3,r0,tmp4 /* compute the shift amt.and skip load if tmp6 > tmp1. */ + ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++ */ + ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ + combt,= tmp6,r0,chunk2 /* don't mask if whole word is valid */ + mtctl tmp4,11 /* load the shift count into cr11 = shift count register. */ + vshd tmp1,tmp2,tmp3 /* position data ! (delay slot) */ + sh3add tmp6,r0,save /* setup r1 */ + mtctl save,r11 /* set-up cr11 for mask */ + zvdepi -2,32,save + or save, tmp3, tmp3 + uxor,nbz tmp3,r0,save + b,n first_null2 + b did_mask + mtctl tmp4,11 /* re-load the shift count into cr11 */ + +chunk2: + vshd tmp1,tmp2,tmp3 + uxor,nbz tmp3, r0, save + b,n null_found +did_mask: + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + + ldwm 4(0,s_addr),tmp1 /* get next word ! */ + vshd tmp2,tmp1,tmp3 /* position data ! */ + uxor,nbz tmp3, r0, save + b,n null_found + stwm tmp3,4(d_addr) + comib,tr 0,0,chunk2 + ldwm 4(s_addr),tmp2 + + +null_found: /* adjust d_addr and store final word */ + + extru,<> save,7,8,r0 + addib,tr,n 1,d_addr,store_final + extru,<> save,15,8,r0 + addib,tr,n 2,d_addr,store_final + extru,<> save,23,8,r0 + addib,tr 3,d_addr,store_final2 + bv 0(r2) + stw save,0(d_addr) + +store_final: + bv 0(r2) +store_final2: + stbys,e save,0(d_addr) /* delay slot */ + +first_null: /* null found in first word of aligned (wrt d_addr) */ + addi -4,s_addr,s_addr + ldbx tmp6(s_addr),tmp4 + add tmp6,s_addr,s_addr + comib,= 0,tmp4,done + stbs,ma tmp4,1(d_addr) + ldbs 1(s_addr),tmp4 + comib,= 0,tmp4,done + stbs,ma tmp4,1(d_addr) + bv 0(r2) /* done */ + stbs 0,0(d_addr) + +first_null2: /* null found in first word of non-aligned (wrt d_addr) */ + addibt,= -1,tmp6,check3 /* check last 3 bytes of word */ + extru save,15,8,tmp4 + addibt,=,n -1,tmp6,check2 /* check last 2 bytes */ + bv 0(r2) + stbys,b save, 0(d_addr) + +check3: + combt,= tmp4,r0,done + stbs,ma tmp4,1(d_addr) +check2: + extru,<> save,23,8,tmp4 + bv 0(r2) + stbs,ma tmp4,1(d_addr) + bv 0(r2) + stbs r0,0(d_addr) + +done: +EXIT(strcat) diff --git a/newlib/libc/machine/hppa/strcmp.S b/newlib/libc/machine/hppa/strcmp.S new file mode 100644 index 000000000..007a64849 --- /dev/null +++ b/newlib/libc/machine/hppa/strcmp.S @@ -0,0 +1,282 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* + + strcmp + + Jerry Huck + Edgar Circenis + +*/ +/* + * strcmp(s1, s2) + * + * returns integer: < 0 iff s1 lexicographically less than s2 + * > 0 iff s1 lexicographically greater than s2 + * = 0 iff s1 lexicographically equal to s2 + */ + +#include "DEFS.h" + +#define s1 26 +#define s2 25 +#define tmp1 19 +#define s2word 20 +#define tmp3 21 +#define tmp7 22 +#define s1word 23 +#define save 1 +#define tmp6 24 +#define tmp5 28 + +ENTRY(strcmp) + comb,=,n s1,s2,samestring + comib,=,n 0,s1,s1isnull + comib,=,n 0,s2,s2isnull +/* Hope for word alignment. Pick up low two bits of each adress */ + extru,<> s1,31,2,tmp1 + ldwm 4(s1),s1word + dep,= s2,29,2,tmp1 + b,n case_analysis + +/* Start looping until null is found in s1 or they mis-compare */ +loop: + ldwm 4(s2),s2word +loop_plus: + uxor,nbz s1word,r0,r0 /* Null in this? */ + b,n nullins1 + comb,=,n s1word,s2word,loop + ldwm 4(s1),s1word + +/* The words do not compare equal and s1 does not have a null. + Need to treat words as unsigned and generate either a positive + or negative return value */ +wordcomparereturn: + comclr,>> s1word,s2word,ret0 /*Set ret0 to 0 and skip if greater*/ + ldi -2,ret0 /*Set ret0 to -2 when less */ + bv r0(rp) + addi 1,ret0,ret0 /*Fix return value to be -1 or +1 */ + +/* s1 has a null. s2 has not been checked. */ +nullins1: + /*If s2 has no nulls this is simple, but assume that it might + and fix up s1 to allow the word comparision to work by + scanning s1 and duplicating all the bytes in s2 below that byte into + the remainder of s1. A remainder only exists if the zero byte + is found in the upper three bytes */ + extru,<> s1word,7,8,r0 /*in the first byte? */ + dep,tr s2word,31,24,s1word /*copy low 3 bytes of *s2 into *s1 */ + extru,<> s1word,15,8,r0 /*in the second byte? */ + dep,tr s2word,31,16,s1word /*copy low 2 bytes of *s2 into *s1 */ + extru,<> s1word,23,8,r0 /*in the third byte? */ + dep s2word,31,8,s1word /*copy low 1 byte of *s2 into *s1 */ + /* Do the normal unsigned compare and return */ + comclr,<> s1word,s2word,ret0 /*Set ret0 to 0 and skip if not equal */ + bv,n r0(rp) + comclr,>> s1word,s2word,ret0 /*Set ret0 to 0 and skip if greater*/ + ldi -2,ret0 /*Set ret0 to -2 when less */ + bv r0(rp) + addi 1,ret0,ret0 /*Fix return value to be -1 or +1 */ + +/* s1 and s2 are the same string and therefore equal */ +samestring: + bv r0(rp) + copy r0,ret0 +/* s1 is null. Treat as string of nulls. Therefore return + the negative of s2's first byte. s2 cannot be zero. */ +s1isnull: + ldbs 0(0,s2),ret0 + bv r0(rp) + sub 0,ret0,ret0 +/* s2 is null. Treat as string of nulls. Therefore return + s1's first byte. s1 cannot be zero. */ +s2isnull: + bv r0(rp) + ldbs 0(0,s1),ret0 + +case_analysis: + blr tmp1,r0 + nop + + /* + Case statement for non-aligned cases (we've already + checked the aligned case. + NOTE: for non-aligned cases, the absolute shift value + gets loaded into tmp3. + */ + + /* S2 S1 */ + nop /* 00 00 can't happen */ + nop + b shifts2 /* 00 01 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + b shifts2 /* 00 10 */ + ldi 16,tmp3 /* load shift count (delay slot) */ + b shifts2 /* 00 11 */ + ldi 24,tmp3 /* load shift count (delay slot) */ + b shifts1_0 /* 01 00 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + b eq_align1 /* 01 01 */ + ldbs,ma 1(s1),s1word + b shifts2 /* 01 10 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + b shifts2 /* 01 11 */ + ldi 16,tmp3 /* load shift count (delay slot) */ + b shifts1_0 /* 10 00 */ + ldi 16,tmp3 /* load shift count (delay slot) */ + b shifts1 /* 10 01 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + b eq_align2 /* 10 10 */ + ldhs,ma 2(s1),s1word + b shifts2 /* 10 11 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + b shifts1_0 /* 11 00 */ + ldi 24,tmp3 /* load shift count (delay slot) */ + b shifts1 /* 11 01 */ + ldi 16,tmp3 /* load shift count (delay slot) */ + b shifts1 /* 11 10 */ + ldi 8,tmp3 /* load shift count (delay slot) */ + ldbs,ma 1(s1),s1word /* 11 11 */ + ldbs,ma 1(s2),s2word + sub,= s1word,s2word,ret0 /* if not equal, we can return now */ + bv,n r0(rp) + comclr,<> s1word,r0,ret0 + bv,n r0(rp) + b loop /* fall into main loop */ + ldwm 4(s1),s1word + +eq_align1: + ldbs,ma 1(s2),s2word + sub,= s1word,s2word,ret0 /* if not equal, we can return now */ + bv,n r0(rp) + comclr,<> s1word,r0,ret0 + bv,n r0(rp) + /* fall through to half-word aligned case */ + ldhs,ma 2(s1),s1word /* load next halfword */ +eq_align2: + ldhs,ma 2(s2),s2word /* load next halfword */ + /* form the mask: 0xffff0000 and mask leading nulls in s1word and s2word + so that we can fall into the main loop with word aligned data */ + ldi 16,save + mtctl save,r11 + zvdepi -2,32,save + or save,s1word,s1word + b loop_plus /* fall into main loop */ + or save,s2word,s2word + +/* s2's alignment is greater than s1's alignment, so we will shift s1 */ +shifts1_0: + addi -4,s1,s1 /* fix up s1 due to earlier read */ +shifts1: + extru s1,31,2,tmp1 + extru s2,31,2,tmp5 + dep r0,31,2,s1 /* Compute word address of s1 */ + dep r0,31,2,s2 /* Compute word address of s2 */ + ldwm 4(s1),s1word /* get first word of s1 */ + ldwm 4(s2),s2word /* get first word of s2 */ + combt,=,n r0,tmp1,masks2 /* Do we need to mask beginning of s1 */ + sh3add tmp1,r0,save /* save now has number of bits to mask */ + mtctl save,r11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word +masks2: + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,r11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s2word,s2word + ldi -1,tmp7 /* load tmp7 with 0xffffffff */ + mtctl tmp3,r11 /* Move shift amount to CR11 */ +more: uxor,nbz s1word,r0,r0 /* Is there a null in s1? */ + b ends1 + vshd tmp7,s1word,save + combf,=,n save,s2word,cmps1 + ldwm 4(s1),tmp7 + ldwm 4(s2),s2word + uxor,nbz tmp7,r0,r0 /* is there a null in s1? */ + b ends1_0 + vshd s1word,tmp7,save + combf,=,n save,s2word,cmps1 + ldwm 4(s1),s1word + b more + ldwm 4(s2),s2word + +cmps1: movb,tr save,s1word,wordcomparereturn + nop + +ends1_0: + copy tmp7,s1word /* move tmp7 to s1word */ +ends1: + combf,=,n save,s2word,nullins1 /* branch if no match */ + copy save,s1word /* delay slot */ +/* At this point, we know that we've read a null */ +/* from s1, so we can't read more from s1 */ + uxor,nbz save,r0,r0 /* are the strings equal? */ + b,n samestring + vshd s1word,r0,s1word + b nullins1 + ldwm 4(s2),s2word + +/* s1's alignment is greater than s2's alignment, so we will shift s2 */ +shifts2: + extru s1,31,2,tmp1 + extru s2,31,2,tmp5 + dep r0,31,2,s1 /* Compute word address of s1 */ + dep r0,31,2,s2 /* Compute word address of s2 */ + ldwm 4(s2),s2word /* get first word of s2 */ + ldwm 4(s1),s1word /* get first word of s1 */ + combt,=,n r0,tmp5,masks1 /* Do we need to mask beginning of s2 */ + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,r11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s2word,s2word +masks1: + sh3add tmp1,r0,save /* save now has number of bits to mask */ + mtctl save,r11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word + ldi -1,tmp7 /* load tmp7 with 0xffffffff */ + mtctl tmp3,r11 /* Move shift amount to CR11 */ +more1: uxor,nbz s2word,r0,r0 /* is there a null in s2? */ + b ends2 + vshd tmp7,s2word,save + combf,=,n s1word,save,cmps2 + ldwm 4(s2),tmp7 + ldwm 4(s1),s1word + uxor,nbz tmp7,r0,r0 /* is there a null in s2? */ + b ends2_0 + vshd s2word,tmp7,save + combf,=,n s1word,save,cmps2 + ldwm 4(s2),s2word + b more1 + ldwm 4(s1),s1word + +cmps2: movb,tr save,s2word,wordcomparereturn + nop + +ends2_0: + copy tmp7,s2word /* move tmp7 to s2word */ +ends2: + combf,=,n s1word,save,nullins1 /* branch if no match */ + copy save,s2word /* delay slot */ +/* At this point, we know that we've read a null */ +/* from s2, so we can't read more from s2 */ + uxor,nbz save,r0,r0 /* are the strings equal? */ + b,n samestring + vshd s2word,r0,s2word + b nullins1 + ldwm 4(s1),s1word + +EXIT(strcmp) diff --git a/newlib/libc/machine/hppa/strcpy.S b/newlib/libc/machine/hppa/strcpy.S new file mode 100644 index 000000000..3068cd5e1 --- /dev/null +++ b/newlib/libc/machine/hppa/strcpy.S @@ -0,0 +1,285 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* + A faster strcpy. + + by + + Jerry Huck (aligned case) + Daryl Odnert (equal-alignment case) + Edgar Circenis (non-aligned case) +*/ +/* + * strcpy(s1, s2) + * + * Copy string s2 to s1. s1 must be large enough. + * return s1 + */ + +#include "DEFS.h" + +#define d_addr r26 +#define s_addr r25 +#define tmp6 r24 +#define tmp1 r19 +#define evenside r19 +#define tmp2 r20 +#define oddside r20 +#define tmp3 r21 +#define tmp4 r22 +#define tmp5 arg3 +#define save r1 + + +ENTRY(strcpy) +/* Do some quick alignment checking on and fast path both word aligned */ + extru,<> s_addr,31,2,tmp6 /*Is source word aligned? */ + ldwm 4(0,s_addr),oddside /*Assume yes and guess that it + is double-word aligned. */ + dep,= d_addr,29,2,tmp6 /*Is target word aligned? */ + b case_analysis + copy d_addr,ret0 +/* Both are aligned. First source word already loaded assuming that + source was oddword aligned. Fall through (therefore fastest) code + shuffles the registers to join the main loop */ +bothaligned: + bb,>= s_addr,29,twoatatime /*Branch if source was odd aligned*/ + uxor,nbz oddside,r0,save + +/* Even aligned source. save holds that operand. + Do one iteration of the main copy loop juggling the registers to avoid + one copy. */ + b,n nullfound + ldwm 4(s_addr),oddside + stwm save,4(d_addr) + uxor,nbz oddside,r0,save + b,n nullfound + ldwm 4(s_addr),evenside + stwm oddside,4(d_addr) + uxor,nbz evenside,r0,save + b,n nullfound + ldwm 4(s_addr),oddside + +/* Main loop body. Entry expects evenside still to be stored, oddside + just loaded. */ +loop: + stwm evenside,4(d_addr) + uxor,nbz oddside,r0,save + +/* mid loop entry */ +twoatatime: + b,n nullfound + ldwm 4(s_addr),evenside + stwm oddside,4(d_addr) + uxor,sbz evenside,r0,save + b loop + ldwm 4(s_addr),oddside + +/* fall through when null found in evenside. oddside actually loaded */ +nullfound: /* adjust d_addr and store final word */ + + extru,<> save,7,8,r0 /* pick up leftmost byte */ + addib,tr,n 1,d_addr,store_final + extru,<> save,15,8,r0 + addib,tr,n 2,d_addr,store_final + extru,<> save,23,8,r0 + addib,tr 3,d_addr,store_final2 + bv 0(rp) + stw save,0(d_addr) + +store_final: + bv 0(rp) +store_final2: + stbys,e save,0(d_addr) /* delay slot */ + +case_analysis: + + blr tmp6,r0 + nop + + /* NOTE: the delay slots for the non-aligned cases load a */ + /* shift quantity which is TGT-SRC into tmp3. */ + /* Note also, the case for both strings being word aligned */ + /* is already checked before the BLR is executed, so that */ + /* case can never occur. */ + + /* TGT SRC */ + nop /* 00 00 can't happen */ + nop + b neg_aligned_copy /* 00 01 */ + ldi -1,tmp3 /* load shift quantity. delay slot */ + b neg_aligned_copy /* 00 10 */ + ldi -2,tmp3 /* load shift quantity. delay slot */ + b neg_aligned_copy /* 00 11 */ + ldi -3,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy0 /* 01 00 */ + ldi 1,tmp3 /* load shift quantity. delay slot */ + b equal_alignment_1 /* 01 01 */ + ldbs,ma 1(s_addr),tmp1 + b neg_aligned_copy /* 01 10 */ + ldi -1,tmp3 /* load shift quantity. delay slot */ + b neg_aligned_copy /* 01 11 */ + ldi -2,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy0 /* 10 00 */ + ldi 2,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy /* 10 01 */ + ldi 1,tmp3 /* load shift quantity. delay slot */ + b equal_alignment_2 /* 10 10 */ + ldhs,ma 2(s_addr),tmp1 + b neg_aligned_copy /* 10 11 */ + ldi -1,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy0 /* 11 00 */ + ldi 3,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy /* 11 01 */ + ldi 2,tmp3 /* load shift quantity. delay slot */ + b pos_aligned_copy /* 11 10 */ + ldi 1,tmp3 /* load shift quantity. delay slot */ + ldbs,ma 1(s_addr),tmp1 /* 11 11 */ + comiclr,<> r0,tmp1,r0 + bv 0(rp) /* return if 1st byte was null */ + stbs,ma tmp1,1(d_addr) /* store a byte to dst string */ + b bothaligned /* can now goto word_aligned */ + ldwm 4(s_addr),oddside /* load next word of source */ + +equal_alignment_1: + comiclr,<> r0,tmp1,r0 /* nullify next if tmp1 <> 0 */ + bv 0(rp) /* return if null byte found */ + stbs,ma tmp1,1(d_addr) /* store a byte to dst string */ + ldhs,ma 2(s_addr),tmp1 /* load next halfword */ +equal_alignment_2: + extru,<> tmp1,23,8,tmp6 /* look at left byte of halfword */ + bv 0(rp) /* return if 1st byte was null */ + stbs,ma tmp6,1(d_addr) + extru,<> tmp1,31,8,r0 + bv 0(rp) /* return if 2nd byte was null */ + stbs,ma tmp1,1(d_addr) + b bothaligned + ldwm 4(s_addr),oddside /* load next word */ + +/* source and destination are not aligned, so we do it the hard way. */ + +/* target alignment is greater than source alignment */ +pos_aligned_copy0: + addi -4,s_addr,s_addr +pos_aligned_copy: + extru d_addr,31,2,tmp6 /* Extract low 2 bits of the dest addr */ + extru s_addr,31,2,tmp1 /* Extract low 2 bits of the src addr */ + dep r0,31,2,s_addr /* Compute word address of the source. */ + sh3add tmp3,r0,tmp4 /* compute shift amt */ + ldwm 4(0,s_addr),tmp2 /* get 1st source word */ + sh3add tmp1,r0,save /* setup mask shift amount */ + mtctl save,r11 /* set-up cr11 for mask */ + zvdepi -2,32,save /* create mask */ + or save,tmp2,tmp2 /* mask unused bytes in src */ + ldi -1,tmp1 /* load tmp1 with 0xffffffff */ + mtctl tmp4,r11 /* shift count -> shift count reg */ + vshd tmp1,tmp2,tmp3 /* position data ! */ + uxor,nbz tmp3,r0,save + b,n first_null + uxor,nbz tmp2,r0,save + b nullfound1 + mtctl tmp4,r11 /* re-load shift cnt (delay slot) */ + b loop_entry + ldwm 4(0,s_addr),tmp1 /* get next word. delay slot */ + +neg_aligned_copy: + extru d_addr,31,2,tmp6 /* Extract low 2 bits of the dest addr */ + extru s_addr,31,2,tmp2 /* Extract low 2 bits of the src addr */ + dep r0,31,2,s_addr /* Compute word address of the source. */ + sh3add tmp3,r0,tmp4 /* compute shift amt */ + ldwm 4(0,s_addr),tmp1 /* load first word from source. */ +/* check to see if next word can be read safely */ + sh3add tmp2,r0,save + mtctl save,r11 /* shift count -> shift count reg */ + zvdepi -2,32,save + or save, tmp1, tmp1 + uxor,nbz tmp1,r0,save /* any nulls in first word? */ + b first_null0 + mtctl tmp4,r11 + ldwm 4(0,s_addr),tmp2 /* load second word from source */ + combt,= tmp6,r0,chunk1 /* don't mask if whole word valid */ + vshd tmp1,tmp2,tmp3 /* position data ! */ + sh3add tmp6,r0,save /* setup r1 */ + mtctl save,r11 /* set-up cr11 for mask */ + zvdepi -2,32,save + or save, tmp3, tmp3 + uxor,nbz tmp3,r0,save + b,n first_null + uxor,nbz tmp2,r0,save + b nullfound1 + mtctl tmp4,r11 /* re-load shift cnt (delay slot) */ + b loop_entry + ldwm 4(0,s_addr),tmp1 /* get next word. delay slot */ + +chunk1: + uxor,nbz tmp2,r0,save + b nullfound0 + vshd tmp1,tmp2,tmp3 +did_mask: + ldwm 4(0,s_addr),tmp1 /* get next word ! */ +loop_entry: + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + + uxor,nbz tmp1, r0, save + b nullfound2 + vshd tmp2,tmp1,tmp3 /* position data ! */ + ldwm 4(s_addr),tmp2 + stwm tmp3,4(d_addr) + uxor,sbz tmp2,r0,save + b did_mask +nullfound0: + vshd tmp1,tmp2,tmp3 /* delay slot */ + uxor,nbz tmp3,r0,save + b,n nullfound +nullfound1: + stbys,b,m tmp3,4(0,d_addr) + b nullfound + vshd tmp2,r0,save /* delay slot */ + +nullfound2: + uxor,nbz tmp3,r0,save + b,n nullfound + stwm tmp3,4(d_addr) + b nullfound + /* notice that delay slot is in next routine */ + +first_null0: /* null found in first word of non-aligned (wrt d_addr) */ + vshd tmp1,r0,save /* delay slot */ + combt,= tmp6,r0,check4 + extru save,7,8,tmp4 +first_null: + addibt,= -1,tmp6,check3 /* check last 3 bytes of word */ + extru save,15,8,tmp4 + addibt,=,n -1,tmp6,check2 /* check last 2 bytes */ + bv 0(rp) /* null in last byte--store and exit */ + stbys,b save, 0(d_addr) + +check4: + combt,= tmp4,r0,done + stbs,ma tmp4,1(d_addr) + extru,<> save,15,8,tmp4 +check3: + combt,= tmp4,r0,done + stbs,ma tmp4,1(d_addr) +check2: + extru,<> save,23,8,tmp4 + bv 0(rp) + stbs,ma tmp4,1(d_addr) + bv 0(rp) + stbs r0,0(d_addr) + +done: +EXIT(strcpy) diff --git a/newlib/libc/machine/hppa/strlen.S b/newlib/libc/machine/hppa/strlen.S new file mode 100644 index 000000000..12e9ef2a9 --- /dev/null +++ b/newlib/libc/machine/hppa/strlen.S @@ -0,0 +1,79 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* HPUX_ID = "@(#) $Revision$" */ +/* strlen(s): Return length of string s */ + +#define start arg0 +#define end ret0 +#define tmp1 arg1 +#define tmp2 arg2 + +#include "DEFS.h" + +ENTRY(strlen) + movb,=,n start,end,$null_ptr + depi 0,31,2,end + comb,<> start,end,$not_aligned + ldws,ma 4(end),tmp1 + comib,tr 0,0,$loop /* avoid INDIGO two register interlock */ + uxor,nbz 0,tmp1,0 +$not_aligned: + /* + ; Tricky code. The problem is that the value of of the word + ; including the start of the string has some garbage bytes that + ; may be 0. We don't want them to stop the string scan. So + ; we make those bytes non-zero (and any old non-zero value + ; will do). Notice that the end pointer has been rounded + ; down to a word boundary, and then incremented to the next + ; word by the time we get here. Therefore, (start-end) has + ; one of the values (-3, -2, or -1). Use uaddcm to do the + ; subtraction (instead of sub), and the result will be + ; (-4, -3, or -2). Multiply this by 8, and put into the + ; shift register (which truncates to the last 5 bits) and + ; the value will be (0, 8, or 16). Use this as a bit position, + ; and drop a mask down into tmp1. All the garbage bytes will + ; have at least 1 bit affected by the vdepi, so all the garbage + ; in this first word will be non-zero garbage. + */ + uaddcm start,end,tmp2 /* tmp2 <- { -4, -3, -2 } */ + sh3add tmp2,0,tmp2 /* tmp2 <- { -32, -24, -16 } */ + mtsar tmp2 /* sar <- { 0, 8, 16 } */ + vdepi -1,32,tmp1 + uxor,nbz 0,tmp1,0 +$loop: + b,n $end_loop + ldws,ma 4(end),tmp1 + comib,tr 0,0,$loop /* avoid INDIGO two register interlock */ + uxor,nbz 0,tmp1,0 +$end_loop: + /* adjust the end pointer to one past the end of the string */ + extru,<> tmp1,7,8,0 + addib,tr,n -3,end,$out + extru,<> tmp1,15,8,0 + addib,tr,n -2,end,$out + extru,<> tmp1,23,8,0 + addi -1,end,end +$out: + bv 0(rp) + /* + ; tricky code. the end pointer is just beyond the terminating + ; null byte, so the length is (end-start-1). use uaddcm + ; to do this in 1 instruction + */ + uaddcm end,start,ret0 + +$null_ptr: +EXIT(strlen) diff --git a/newlib/libc/machine/hppa/strncat.S b/newlib/libc/machine/hppa/strncat.S new file mode 100644 index 000000000..04bd156c9 --- /dev/null +++ b/newlib/libc/machine/hppa/strncat.S @@ -0,0 +1,238 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/*HPUX_ID: @(#) $Revision$ */ +/* strncat(s1,s2,n) : concatonate at most n characters from s2 onto s1 */ + +#include "DEFS.h" + +#define d_addr r26 +#define s_addr r25 +#define count r24 +#define tmp1 r19 +#define tmp2 r20 +#define tmp3 r21 +#define tmp4 r22 +#define tmp5 arg3 +#define tmp6 r31 +#define save r1 +#define tmp7 ret1 /* source offset-- reset to orig source addr if not aligned */ + + +ENTRY(strncat) + + comb,= r0,s_addr,quit /* quit if s2=NULL */ + copy d_addr,ret0 /* The return value is the value of d_addr. DELAY SLOT*/ + +/* First look for end of s1 (d_addr) */ + + extru d_addr,31,2,tmp1 /* Extract the low two bits of the dest address. */ + combt,= tmp1,r0,dont_mask + dep 0,31,2,d_addr /*set word alignment */ + ldwm 4(d_addr),tmp2 + sh3add tmp1,r0,save /* build mask based on tmp1 */ + mtctl save,11 + zvdepi -2,32,save + or save,tmp2,tmp2 + uxor,nbz tmp2,r0,save +search: + b,n found_end /* nullified under uxor conditions above and below */ +dont_mask: + ldwm 4(d_addr),tmp2 + comib,tr r0,r0,search + uxor,nbz tmp2,r0,save + +found_end: /* at this point d_addr points to word */ + extru,<> save,7,8,r0 /* following word with null */ + addib,tr,n -4,d_addr,begin_copy /*set d_addr to end of s1 */ + extru,<> save,15,8,r0 + addib,tr,n -3,d_addr,begin_copy + extru,<> save,23,8,r0 + addi -1,d_addr,d_addr + addi -1,d_addr,d_addr + + +begin_copy: + addibt,<,n -4,count,byteloop /* If count is <= 4 don't get fancy.*/ + + extru s_addr,31,2,tmp4 /* Extract the low two bits of the source address.*/ + extru d_addr,31,2,tmp5 /* Extract the low two bits of the destination address.*/ + add count,tmp5,count /* pre increment the count by the byte address so that the count is*/ + copy s_addr,tmp6 /* save original s_addr in case we find null in first word */ + copy s_addr, tmp7 /* save s_addr in case we find null before first store */ + comb,<> tmp5,tmp4,not_aligned /* branch if tmp5<>tmp4. */ + dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT.*/ +/* aligned*/ + combt,= tmp5,r0,skip_mask + ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT)*/ + sh3add tmp5,r0,save /* compute mask in save*/ + mtctl save,11 + zvdepi -2,32,save + or save,tmp1,tmp1 /* or mask with data*/ + uxor,nbz tmp1,r0,save /* check for null*/ + b,n null1 + addibt,< -4,count,back_porch + stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ + +chunks: + ldwm 4(0,s_addr),tmp1 /* get a word*/ + +skip_mask: + uxor,nbz tmp1,r0,save /* check for null*/ + b,n align_null1 + addibf,< -4,count,chunks + stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ + +back_porch: /* last word to store*/ + addibt,=,n 4,count,done /* if count = 0 we're, of course, done !*/ + ldws 0(s_addr),tmp1 /* load up the back_porch*/ + sh3add count,r0, save /* setup right mask based on count*/ + mtctl save,r11 + zvdepi -2,32,save /*save now has left-hand mask*/ + uaddcm r0,save,save /*form right hand mask */ + or tmp1,save,tmp1 /*and insert data*/ + uxor,nbz tmp1,r0,save /* check for null*/ + b,n null2 + add d_addr,count,d_addr/* final store address is +1 too high !*/ + b done + stbys,e tmp1,0(d_addr) /* done */ + +/* Begin non_aligned code. */ +not_aligned: + sub,>= tmp5,tmp4,tmp6 /* compute the shift amt.and skip load if tmp5 > tmp4.*/ + ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++*/ + zdep tmp6,28,29,tmp4 /* compute the number of bits to shift */ + mtctl tmp4,11 /* load the shift count into cr11 = shift count register.*/ + addibt,<,n -4,count,chkchnk2 /* first step in pre adjustment of count for looping.*/ + + ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ + combt,= tmp5,r0,skip_mask4 /* don't mask if whole word is valid*/ + vshd tmp1,tmp2,tmp3 /* position data ! (delay slot)*/ + sh3add tmp5,r0,save /* setup r1*/ + mtctl save,r11 /* setup mask in save*/ + zvdepi -2,32,save + or save, tmp3, tmp3 + mtctl tmp4,11 /* re-load the shift count into cr11 */ + +skip_mask4: + uxor,nbz tmp3, r0, save + b,n null4 /* special case for first word */ + copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ + copy r0, tmp7 /* zero out tmp7 so we don't try to use original s_addr anymore */ + b continue + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + +chunk2: + ldwm 4(0,s_addr),tmp2 + vshd tmp1,tmp2,tmp3 + +skip_mask2: + uxor,nbz tmp3, r0, save + b,n null3 + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + +continue: + ldwm 4(0,s_addr),tmp1 /* get 2nd word ! */ + vshd tmp2,tmp1,tmp3 /* position data ! */ + uxor,nbz tmp3, r0, save + b,n null3 + + addibf,< -8,count,chunk2 /* If count is still >= 8 do another loop.*/ + stbys,b,m tmp3,4(0,d_addr) /* store !*/ + +chkchnk2: + addibt,<,n 4,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0)*/ + +subchnk2: /* we have less than 8 chars to copy*/ + + ldwm 4(0,s_addr),tmp2 /* get next word !*/ + combt,= tmp5,r0,skip_mask3 + vshd tmp1,tmp2,tmp3 /* position data !*/ + sh3add tmp5,r0,save /* setup r1*/ + mtctl save,r11 /* setup mask in save*/ + zvdepi -2,32,save + or save, tmp3, tmp3 + mtctl tmp4,11 /* restore shift value again */ +skip_mask3: + uxor,nbz tmp3,r0,save + b,n null3 + copy r0,tmp5 /* zero out tmp5 so null3 does correct alignment */ + copy r0,tmp7 /* zero out tmp7 so we don't use orignal s_addr since no longer valid */ + b bp_1 /* we now have less than 4 bytes to move*/ + stbys,b,m tmp3,4(0,d_addr) /* store !*/ + +bp_0: + copy tmp1,tmp2 /* switch registers for shift process */ + addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ + +bp_1: + ldwm 4(0,s_addr),tmp1 /* get final word ! */ + vshd tmp2,tmp1,tmp3 /* position data !*/ + uxor,nbz tmp3,r0,save /* if no-byte-zero */ + b,n bp_null /* don't goto no_null-find which null instead */ +no_null: + add d_addr,count,d_addr /* set up d_addr for stbys,e */ + b done /* were done*/ + stbys,e tmp3,0(0,d_addr) /* store the data !*/ + +/* here we do ye old byte-at-a-time moves.*/ +align_null1: + b byteloop + addi -4,s_addr,s_addr +null1: + copy tmp6,s_addr /* restore orig s_addr (aligned only) */ +byteloop: + addibt,= 4,count,done +null2: + ldbs,ma 1(s_addr),tmp1 +encore: + combt,=,n tmp1,r0, done + stbs,ma tmp1,1(d_addr) + addibf,=,n -1,count,encore + ldbs,ma 1(s_addr),tmp1 + b,n done + +bp_null: + addi -4,count,count /* fudge count 'cause byteloop will re-increment */ + +null3: /* not_aligned case reset s_addr and finish byte-wise */ + combt,=,n r0,tmp7,null3a /* if tmp7 is not valid address then branch below */ + b byteloop /* otherwise reset s_addr to tmp7 and finish */ + copy tmp7, s_addr + +null3a: /* right shift target */ + addibt,<,n 0,tmp6,null3b /* if left shifting */ + sub r0,tmp6,tmp6 /* do null3b code */ + addi -4,tmp6,tmp6 + b byteloop + add tmp6,s_addr,s_addr /* reset s_addr by 4 + shift_amt */ + +null3b: + subi -8,tmp6,tmp6 + add tmp5,tmp6,tmp6 /* adjust by the dest offset if this is our first store */ + b byteloop + add tmp6,s_addr,s_addr /* adjust s_addr by (8-shift_amt-dest_off) */ + +null4: + add,> tmp6,r0,tmp6 /* if left shift */ + b,n null3 /* then do null3 */ + b byteloop + addi -4,s_addr,s_addr /* adj source only by 4 */ + +done: + bv 0(r2) + stbs r0,0(d_addr) +quit: +EXIT(strncat) diff --git a/newlib/libc/machine/hppa/strncmp.S b/newlib/libc/machine/hppa/strncmp.S new file mode 100644 index 000000000..222384ee7 --- /dev/null +++ b/newlib/libc/machine/hppa/strncmp.S @@ -0,0 +1,189 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* strcmp(s1, s2) */ +/* returns integer: < 0 iff s1 lexicographically less than s2 */ +/* > 0 iff s1 lexicographically greater than s2 */ +/* = 0 iff s1 lexicographically equal to s2 */ +/* = 0 iff s1 lexicographically equal to s2 */ +/* quit after n charachters */ +#include "DEFS.h" + +#define s1 26 +#define s2 25 +#define tmp1 19 +#define s2word 20 +#define tmp3 21 +#define tmp7 22 +#define s1word 29 +#define save 1 +#define tmp6 23 +#define tmp5 28 +#define count 24 + +ENTRY(strncmp) + combt,<,n r0,count,search /* N <= 0 yields equality */ + bv r0(rp) /* */ + copy 0,ret0 /* return 0 (DELAY SLOT) */ +search: combf,=,n s1,s2,findout /* s1 != s2? */ + bv r0(rp) /* */ + copy 0,ret0 /* return 0 (delay slot) */ +findout: + comibf,=,n 0,s1,checks1 /* s1 == NULL? */ + ldbs 0(0,s2),ret0 /* */ + bv r0(rp) /* */ + subi 0,ret0,ret0 /* ret0 <- -*s2 */ +checks1: + comibf,=,n 0,s2,checkitout /* s2 == NULL? */ + bv r0(rp) /* */ + ldbs 0(0,s1),28 /* return *s1 */ + +checkitout: + extru s2,31,2,tmp1 /* Extract the low two bits of the s2. */ + extru s1,31,2,tmp5 /* Extract the low two bits of the s1 */ + sub,= tmp5,tmp1,tmp3 /* Are s1 & s2 aligned with each other? */ + b not_aligned /* It's more complicated (not_aligned) */ + dep 0,31,2,s1 /* Compute word address of s1 (DELAY SLOT) */ + dep 0,31,2,s2 /* Compute word address of s2 */ + ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ + combt,= tmp5,r0,skipmask /* skip masking, if we can */ + ldwm 4(0,s2),s2word /* get next s2 word s2+=4 (DELAY SLOT) */ + add tmp5,count,count /* bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word /* mask s1word (s1) */ + or save,s2word,s2word /* mask s2word (s2) */ + + +skipmask: + combt,=,n s1word,s2word,chknulls /* are these words equal? */ + +checkbyte: + extru s1word,7,8,tmp3 /* get first byte (character) */ +ckbyte2: extru s2word,7,8,tmp7 /* get first byte (character) */ + combf,= tmp3,tmp7,done /* quit if first byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + comibt,=,n 0,tmp3,done /* have we reached the end of string */ + /* if so done ret0 already has zero */ + addibt,<=,n -1,count,done /* have we checked N chars? ret0 == 0 */ + extru s1word,15,8,tmp3 /* get second byte (character) */ + extru s2word,15,8,tmp7 /* get second byte (character) */ + combf,= tmp3,tmp7,done /* quit if second byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + comibt,=,n 0,tmp3,done /* have we reached the end of string */ + /* if so done ret0 already has zero */ + addibt,<=,n -1,count,done /* have we checked N chars? */ + extru s1word,23,8,tmp3 /* get third byte (character) */ + extru s2word,23,8,tmp7 /* get third byte (character) */ + combf,= tmp3,tmp7,done /* done if third byte is not equal */ + sub tmp3,tmp7,ret0 /* return difference (delay slot) */ + comibt,=,n 0,tmp3,done /* have we reached the end of string */ + /* if so done ret0 already has zero */ + addibt,<=,n -1,count,done /* have we checked N chars? */ + extru s1word,31,8,tmp3 /* get last byte (character) */ + extru s2word,31,8,tmp7 /* get last byte (character) */ + bv r0(rp) /* */ + sub tmp3,tmp7,ret0 /* the last characters in the word is */ + /* where the difference is, so return */ + /* the difference and we're outta here */ + + +chknulls: + addibt,<=,n -4,count,zero /* have we checked N chars? */ + uxor,nbz s1word,0,0 /* don't have to check s2 Just quit */ + bv r0(rp) /* */ + copy 0,28 /* return 0 */ + ldwm 4(0,s2),s2word /* get next s2 word s2+=4 */ + b skipmask /* keep checking */ + ldwm 4(0,s1),s1word /* get next s1 word s1+=4 */ + + +not_aligned: + dep r0,31,2,s2 /* Compute word address of s2 */ + combt,<,n r0,tmp3,shifts1 /* Do we shift s1 or s2 */ + sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 8 */ + ldwm 4(0,s1),s1word /* get first word of s1 */ + ldwm 4(0,s2),s2word /* get first word or s2 */ + combt,=,n r0,tmp5,masks2 /* Do we need to mask beginning of s1 */ + add tmp5,count,count /* bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word /* */ +masks2: sh3add tmp1,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s2word,s2word /* */ + mtctl tmp3,11 /* Move shift amount to CR11 */ +more: uxor,nbz s2word,r0,r0 /* Is there a null in first word */ + b,n chunk1 /* */ + ldwm 4(0,s2),tmp7 /* load second word to enable us to shift */ + vshd s2word,tmp7,s2word /* */ + combf,=,n s1word,s2word,ckbyte2 /* */ + extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ + addibt,<=,n -4,count,zero /* have we checked N chars? */ + uxor,nbz s1word,0,0 /* even though they're equal we could be done */ + b,n zero + copy tmp7,s2word /* */ + b more /* keep checking */ + ldwm 4(0,s1),s1word /* get next s1 (DELAY SLOT) */ + +chunk1: + vshd s2word,r0,s2word /* */ + b ckbyte2 /* */ + extru s1word,7,8,tmp3 /* */ + + +shifts1: + sh3add tmp3,r0,tmp3 /* eight bits per byte so mul by 4 */ + sub r0,tmp3,tmp3 /* Get negative value for left shift */ + ldwm 4(0,s2),s2word /* get first word of s2 */ + ldwm 4(0,s1),s1word /* get first word or s1 */ + combt,=,n r0,tmp1,masks1 /* Do we need to mask beginning of s2 */ + add tmp1,count,count /* bump count by the number of bytes */ + /* we are going to mask */ + sh3add tmp1,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s2word,s2word /* */ +masks1: sh3add tmp5,r0,save /* save now has number of bits to mask */ + mtctl save,11 + zvdepi -2,32,save /* load save with proper mask */ + or save,s1word,s1word /* */ + mtctl tmp3,11 /* Move shift amount to CR11 */ +more1: uxor,nbz s1word,r0,r0 /* Is there a null in first byte */ + b,n chunk2 /* */ + ldwm 4(0,s1),tmp7 /* load second word to enable us to shift */ + vshd s1word,tmp7,s1word /* */ + combf,=,n s2word,s1word,ckbyte2 /* */ + extru s1word,7,8,tmp3 /* get first byte (DELAY SLOT) */ + addibt,<=,n -4,count,zero /* have we checked N chars? */ + uxor,nbz s2word,0,0 /* even though they're equal we could be done */ + b,n zero /* zero ret0 and quit */ + copy tmp7,s1word /* */ + b more1 /* keep checking */ + ldwm 4(0,s2),s2word /* get next s2 (DELAY SLOT) */ + +chunk2: + vshd s1word,r0,s1word /* */ + b ckbyte2 /* */ + extru s1word,7,8,tmp3 /* */ + +zero: copy r0,ret0 +done: +EXIT(strncmp) diff --git a/newlib/libc/machine/hppa/strncpy.S b/newlib/libc/machine/hppa/strncpy.S new file mode 100644 index 000000000..37ed83237 --- /dev/null +++ b/newlib/libc/machine/hppa/strncpy.S @@ -0,0 +1,256 @@ +/* + * (c) Copyright 1986 HEWLETT-PACKARD COMPANY + * + * To anyone who acknowledges that this file is provided "AS IS" + * without any express or implied warranty: + * permission to use, copy, modify, and distribute this file + * for any purpose is hereby granted without fee, provided that + * the above copyright notice and this notice appears in all + * copies, and that the name of Hewlett-Packard Company not be + * used in advertising or publicity pertaining to distribution + * of the software without specific, written prior permission. + * Hewlett-Packard Company makes no representations about the + * suitability of this software for any purpose. + */ + +/* HPUX_ID: @(#) $Revision$ */ +/* + * strncpy(s1, s2, n) + * + * Copy s2 to s1, truncating or null-padding to always copy n bytes + * return s1 + */ + +#include "DEFS.h" + +#define d_addr r26 +#define s_addr r25 +#define count r24 +#define tmp1 r19 +#define tmp2 r20 +#define tmp3 r21 +#define tmp4 r22 +#define tmp5 arg3 +#define save r1 + + +ENTRY(strncpy) + + combt,= s_addr,r0,pad_null_bytes1 /* if s2==NULL then pad nulls and exit */ + copy d_addr,ret0 /* The return value is defined to be the value of d_addr. DELAY SLOT*/ + addibt,<,n -4,count,byteloop /* If count is <= 4 don't get fancy.*/ + + extru s_addr,31,2,tmp1 /* Extract the low two bits of the source address.*/ + extru d_addr,31,2,tmp5 /* Extract the low two bits of the destination address.*/ + add count,tmp5,count /* pre increment the count by the byte address so that the count is*/ + comb,<> tmp5,tmp1,not_aligned /* branch if tmp5<>tmp1. */ + dep 0,31,2,s_addr /* Compute the word address of the source. DELAY SLOT.*/ +/* aligned*/ + combt,= tmp5,r0,skip_mask + ldwm 4(0,s_addr),tmp1 /* tmp1 = *s_addr s_addr += 4 (DELAY SLOT)*/ + sh3add tmp5,r0,save /* compute mask in save*/ + mtctl save,11 + zvdepi -2,32,save + b skip_mask /* don't reload tmp1*/ + or save,tmp1,tmp1 /* or mask with data*/ + +chunks: + ldwm 4(0,s_addr),tmp1 /* get a word*/ + +skip_mask: + uxor,nbz tmp1,r0,save /* check for null*/ + b,n null1 + addibf,< -4,count,chunks + stbys,b,m tmp1,4(0,d_addr) /* store word (delay slot)*/ + +/* back_porch last word to store*/ + addibt,=,n 4,count,done /* if count = 0 we're, of course, done !*/ + ldws 0(s_addr),tmp1 /* load up the back_porch*/ + add d_addr,count,d_addr/* final store address is +1 too high !*/ + sh3add count,r0, save /* setup right mask based on count*/ + mtctl save,r11 + zvdepi -2,32,save /*save now has left-hand mask*/ + uaddcm r0,save,save /*form right hand mask */ + or tmp1,save,tmp1 /*and insert data*/ + uxor,nbz tmp1,r0,save /* check for null*/ + b,n null2 + bv 0(r2) + stbys,e tmp1,0(d_addr) /* done */ + +/* Begin non_aligned code. */ +not_aligned: + sub,>= tmp5,tmp1,tmp3 /* compute the shift amt.and skip load if tmp5 > tmp1.*/ + ldwm 4(0,s_addr),tmp1 /* load up the first word from the source. tmp1 = *s_addr++*/ + zdep tmp3,28,29,tmp4 /* compute the number of bits to shift */ + mtctl tmp4,11 /* load the shift count into cr11 = shift count register.*/ + addibt,<,n -4,count,chkchnk2 /* first step in pre adjustment of count for looping.*/ + + ldwm 4(0,s_addr),tmp2 /* get either first or second word from source. */ + combt,= tmp5,r0,skip_mask2 /* don't mask if whole word is valid*/ + vshd tmp1,tmp2,tmp3 /* position data ! (delay slot)*/ + sh3add tmp5,r0,save /* setup r1*/ + mtctl save,r11 /* setup mask in save*/ + zvdepi -2,32,save + or save, tmp3, tmp3 + mtctl tmp4,11 /* re-load the shift count into cr11 */ + b skip_mask2 + copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ + +chunk2: + ldwm 4(0,s_addr),tmp2 + vshd tmp1,tmp2,tmp3 + +skip_mask2: + uxor,nbz tmp3, r0, save + b,n null3 + stbys,b,m tmp3,4(0,d_addr) /* store ! */ + + ldwm 4(0,s_addr),tmp1 /* get 2nd word ! */ + vshd tmp2,tmp1,tmp3 /* position data ! */ + uxor,nbz tmp3, r0, save + b,n null4 + + addibf,< -8,count,chunk2 /* If count is still >= 8 do another loop.*/ + stbys,b,m tmp3,4(0,d_addr) /* store !*/ + +chkchnk2: + addibt,<,n 4,count,bp_0 /* if we don't have 4 bytes left then do the back porch (bp_0)*/ + +subchnk2: /* we have less than 8 chars to copy*/ + + ldwm 4(0,s_addr),tmp2 /* get next word !*/ + combt,= tmp5,r0,skip_mask3 + vshd tmp1,tmp2,tmp3 /* position data !*/ + sh3add tmp5,r0,save /* setup r1*/ + mtctl save,r11 /* setup mask in save*/ + zvdepi -2,32,save + or save, tmp3, tmp3 + mtctl tmp4,11 /* restore shift value again */ + copy r0, tmp5 /* zero out tmp5 so we don't try to mask again*/ +skip_mask3: + uxor,nbz tmp3,r0,save + b,n null4 + b bp_1 /* we now have less than 4 bytes to move*/ + stbys,b,m tmp3,4(0,d_addr) /* store !*/ + +bp_0: + copy tmp1,tmp2 /* switch registers used in the shift process.*/ + addibt,<=,n 4,count,done /* if count = -4 this implies that count = 0 -> done */ + +bp_1: + ldwm 4(0,s_addr),tmp1 /* get final word ! */ + vshd tmp2,tmp1,tmp3 /* position data !*/ + uxor,sbz tmp3,r0,save /* if some-byte-zero */ + b no_null /* don't goto no_null-find which null instead */ + add d_addr,count,d_addr /* get d_addr ready for stbys,e */ + extru,<> save,7,8,r0 + b found_null5 + copy r0, tmp5 + extru,<> save,15,8,r0 + b found_null5 + ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ + extru,<> save,23,8,r0 + b found_null5 + ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ + ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ +found_null5: + and tmp3,tmp5,tmp3 /* zero out tmp5 based on mask in tmp5*/ +no_null: + bv 0(r2) /* were done*/ + stbys,e tmp3,0(0,d_addr) /* store the data !*/ + +/* here we do ye old byte-at-a-time moves.*/ +byteloop: + addibt,=,n 4,count,done + comb,= 0,s_addr,done + stbs r0,0(d_addr) /* store null in case s_addr == NULL */ + ldbs,ma 1(s_addr),tmp1 +encore: + combt,=,n tmp1,r0, pad_null_bytes1 + stbs,ma tmp1,1(d_addr) + addibf,=,n -1,count,encore + ldbs,ma 1(s_addr),tmp1 + b,n done + +pnb_1: + addibt,=,n 4,count,done /* if count was already 0 then we're done*/ + +pad_null_bytes1: + combt,=,n count,r0,done /* if count==0 then exit */ +pad_null_bytes2: + addibf,= -1,count,pad_null_bytes2 + stbs,ma r0,1(d_addr) + b,n done + +pad_nulls: + addibf,<=,n -4,count,pad_nulls + stwm r0,4(d_addr) + b,n pnb_1 + + +null1: + extru,<> save,7,8,r0 + b found_null1 + copy r0, tmp5 + extru,<> save,15,8,r0 + b found_null1 + ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ + extru,<> save,23,8,r0 + b found_null1 + ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ + ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ +found_null1: + and tmp1,tmp5,tmp1 /*zero out tmp1 according to mask*/ + b pad_nulls /* nullify remaining count bytes*/ + stbys,b,m tmp1,4(0,d_addr) /* first word (account for alignment)*/ + + +null2: /* back porch case. We have less than 4 bytes to go.*/ + extru,<> save,7,8,r0 /* is null in 1st byte? */ + b found_null2 + copy r0, tmp5 + extru,<> save,15,8,r0 /* is null in 2nd byte? */ + b found_null2 + ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ + b found_null2 /* null must be in 3rd byte */ + ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ +found_null2: + and tmp1,tmp5,tmp1 /*zero out tmp1 according to mask*/ + bv 0(r2) /* we're done*/ + stbys,e tmp1,0(0,d_addr) /* last word (back porch)*/ + +null3: /* not_aligned case where null is found in first of two words--adjust count*/ + extru,<> save,7,8,r0 + b found_null3 + copy r0, tmp5 + extru,<> save,15,8,r0 + b found_null3 + ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ + extru,<> save,23,8,r0 + b found_null3 + ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ + ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ +found_null3: + addi 4,count,count /* fix count since null is in first of two words*/ + and tmp3,tmp5,tmp3 /*zero out tmp3 according to mask*/ + b pad_nulls /* nullify remaining count bytes*/ + stbys,b,m tmp3,4(d_addr) + +null4: /* not_aligned case where null is found in second of two words*/ + extru,<> save,7,8,r0 + b found_null4 + copy r0, tmp5 + extru,<> save,15,8,r0 + b found_null4 + ldil 0x1FE000,tmp5 /* setup mask (FF000000)*/ + extru,<> save,23,8,r0 + b found_null4 + ldil 0x1FFFE0,tmp5 /* setup mask (FFFF0000)*/ + ldo -1(r0),tmp5 /* setup mask (FFFFFFFF)*/ +found_null4: + and tmp3,tmp5,tmp3 /*zero out tmp4 according to mask*/ + b pad_nulls /* nullify remaining count bytes*/ + stbys,b,m tmp3,4(d_addr) + +done: +EXIT(strncpy) diff --git a/newlib/libc/machine/i386/Makefile.am b/newlib/libc/machine/i386/Makefile.am new file mode 100644 index 000000000..783c2d35b --- /dev/null +++ b/newlib/libc/machine/i386/Makefile.am @@ -0,0 +1,23 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I $(newlib_basedir)/libm/common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +if MACH_ADD_SETJMP +mach_add_src=setjmp.S +else +mach_add_src= +endif + +lib_a_SOURCES = \ + memchr.S memcmp.S memcpy.S memset.S strchr.S \ + memmove.S strlen.S f_atan2.S f_atan2f.S f_exp.c f_expf.c \ + f_frexp.S f_frexpf.S f_log.S f_logf.S f_log10.S f_log10f.S \ + f_ldexp.S f_ldexpf.S f_pow.c f_powf.c f_tan.S f_tanf.S \ + $(mach_add_src) + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/i386/Makefile.in b/newlib/libc/machine/i386/Makefile.in new file mode 100644 index 000000000..ff439a01e --- /dev/null +++ b/newlib/libc/machine/i386/Makefile.in @@ -0,0 +1,337 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I $(newlib_basedir)/libm/common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a +@MACH_ADD_SETJMP_TRUE@mach_add_src = \ +@MACH_ADD_SETJMP_TRUE@setjmp.S +@MACH_ADD_SETJMP_FALSE@mach_add_src = \ + +lib_a_SOURCES = \ + memchr.S memcmp.S memcpy.S memset.S strchr.S \ + memmove.S strlen.S f_atan2.S f_atan2f.S f_exp.c f_expf.c \ + f_frexp.S f_frexpf.S f_log.S f_logf.S f_log10.S f_log10f.S \ + f_ldexp.S f_ldexpf.S f_pow.c f_powf.c f_tan.S f_tanf.S \ + $(mach_add_src) + + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +@MACH_ADD_SETJMP_TRUE@lib_a_OBJECTS = memchr.o memcmp.o memcpy.o \ +@MACH_ADD_SETJMP_TRUE@memset.o strchr.o memmove.o strlen.o f_atan2.o \ +@MACH_ADD_SETJMP_TRUE@f_atan2f.o f_exp.o f_expf.o f_frexp.o f_frexpf.o \ +@MACH_ADD_SETJMP_TRUE@f_log.o f_logf.o f_log10.o f_log10f.o f_ldexp.o \ +@MACH_ADD_SETJMP_TRUE@f_ldexpf.o f_pow.o f_powf.o f_tan.o f_tanf.o \ +@MACH_ADD_SETJMP_TRUE@setjmp.o +@MACH_ADD_SETJMP_FALSE@lib_a_OBJECTS = memchr.o memcmp.o memcpy.o \ +@MACH_ADD_SETJMP_FALSE@memset.o strchr.o memmove.o strlen.o f_atan2.o \ +@MACH_ADD_SETJMP_FALSE@f_atan2f.o f_exp.o f_expf.o f_frexp.o f_frexpf.o \ +@MACH_ADD_SETJMP_FALSE@f_log.o f_logf.o f_log10.o f_log10f.o f_ldexp.o \ +@MACH_ADD_SETJMP_FALSE@f_ldexpf.o f_pow.o f_powf.o f_tan.o f_tanf.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/i386/aclocal.m4 b/newlib/libc/machine/i386/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/i386/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/i386/configure b/newlib/libc/machine/i386/configure new file mode 100755 index 000000000..2c019d928 --- /dev/null +++ b/newlib/libc/machine/i386/configure @@ -0,0 +1,1699 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + + + +if test "x$mach_add_setjmp" = 'xtrue'; then + MACH_ADD_SETJMP_TRUE= + MACH_ADD_SETJMP_FALSE='#' +else + MACH_ADD_SETJMP_TRUE='#' + MACH_ADD_SETJMP_FALSE= +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@MACH_ADD_SETJMP_TRUE@%$MACH_ADD_SETJMP_TRUE%g +s%@MACH_ADD_SETJMP_FALSE@%$MACH_ADD_SETJMP_FALSE%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/i386/configure.in b/newlib/libc/machine/i386/configure.in new file mode 100644 index 000000000..63c080480 --- /dev/null +++ b/newlib/libc/machine/i386/configure.in @@ -0,0 +1,14 @@ +dnl This is the newlib/libc/machine/i386 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AM_CONDITIONAL(MACH_ADD_SETJMP, test "x$mach_add_setjmp" = 'xtrue') + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/i386/f_atan2.S b/newlib/libc/machine/i386/f_atan2.S new file mode 100644 index 000000000..c6f3a7acd --- /dev/null +++ b/newlib/libc/machine/i386/f_atan2.S @@ -0,0 +1,32 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of atan2 using Intel float instructions. + + double _f_atan2 (double y, double x); + +Function computes arctan ( y / x ). +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_atan2) + +SYM (_f_atan2): + pushl ebp + movl esp,ebp + fldl 8(ebp) + fldl 16(ebp) + fpatan + + leave + ret diff --git a/newlib/libc/machine/i386/f_atan2f.S b/newlib/libc/machine/i386/f_atan2f.S new file mode 100644 index 000000000..d56a16709 --- /dev/null +++ b/newlib/libc/machine/i386/f_atan2f.S @@ -0,0 +1,32 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of atan2f using Intel float instructions. + + float _f_atan2f (float y, float x); + +Function computes arctan ( y / x ). +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_atan2f) + +SYM (_f_atan2f): + pushl ebp + movl esp,ebp + flds 8(ebp) + flds 12(ebp) + fpatan + + leave + ret diff --git a/newlib/libc/machine/i386/f_exp.c b/newlib/libc/machine/i386/f_exp.c new file mode 100644 index 000000000..a7fb05507 --- /dev/null +++ b/newlib/libc/machine/i386/f_exp.c @@ -0,0 +1,45 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of exp using Intel float instructions. + + double _f_exp (double x); + +Function computes e ** x. The following special cases exist: + 1. if x is 0.0 ==> return 1.0 + 2. if x is infinity ==> return infinity + 3. if x is -infinity ==> return 0.0 + 4. if x is NaN ==> return x +There is no error checking or setting of errno. +*/ + + +#include <math.h> +#include <ieeefp.h> +#include "f_math.h" + +double _f_exp (double x) +{ + if (check_finite(x)) + { + double result; + asm ("fldl2e; fmulp; fld %%st; frndint; fsub %%st,%%st(1); fxch;" \ + "fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1); fmulp" : + "=t"(result) : "0"(x)); + return result; + } + else if (x == -infinity()) + return 0.0; + + return x; +} + + diff --git a/newlib/libc/machine/i386/f_expf.c b/newlib/libc/machine/i386/f_expf.c new file mode 100644 index 000000000..438772764 --- /dev/null +++ b/newlib/libc/machine/i386/f_expf.c @@ -0,0 +1,45 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of exp using Intel float instructions. + + float _f_expf (float x); + +Function computes e ** x. The following special cases exist: + 1. if x is 0.0 ==> return 1.0 + 2. if x is infinity ==> return infinity + 3. if x is -infinity ==> return 0.0 + 4. if x is NaN ==> return x +There is no error checking or setting of errno. +*/ + + +#include <math.h> +#include <ieeefp.h> +#include "f_math.h" + +float _f_expf (float x) +{ + if (check_finitef(x)) + { + float result; + asm ("fldl2e; fmulp; fld %%st; frndint; fsub %%st,%%st(1); fxch;" \ + "fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1); fmulp" : + "=t"(result) : "0"(x)); + return result; + } + else if (x == -infinityf()) + return 0.0; + + return x; +} + + diff --git a/newlib/libc/machine/i386/f_frexp.S b/newlib/libc/machine/i386/f_frexp.S new file mode 100644 index 000000000..8724f524a --- /dev/null +++ b/newlib/libc/machine/i386/f_frexp.S @@ -0,0 +1,43 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of frexp using Intel float instructions. + + double _f_frexp (double x, int *exp); + +Function splits x into y * 2 ** z. It then +returns the value of y and updates *exp with z. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_frexp) + +SYM (_f_frexp): + pushl ebp + movl esp,ebp + fldl 8(ebp) + movl 16(ebp),eax + + fxtract + fld1 + fchs + fxch + fscale + fstp st1 + fxch + fld1 + faddp + fistpl 0(eax) + + leave + ret diff --git a/newlib/libc/machine/i386/f_frexpf.S b/newlib/libc/machine/i386/f_frexpf.S new file mode 100644 index 000000000..05f0555d6 --- /dev/null +++ b/newlib/libc/machine/i386/f_frexpf.S @@ -0,0 +1,43 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of frexpf using Intel float instructions. + + float _f_frexpf (float x, int *exp); + +Function splits x into y * 2 ** z. It then +returns the value of y and updates *exp with z. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_frexpf) + +SYM (_f_frexpf): + pushl ebp + movl esp,ebp + flds 8(ebp) + movl 12(ebp),eax + + fxtract + fld1 + fchs + fxch + fscale + fstp st1 + fxch + fld1 + faddp + fistpl 0(eax) + + leave + ret diff --git a/newlib/libc/machine/i386/f_ldexp.S b/newlib/libc/machine/i386/f_ldexp.S new file mode 100644 index 000000000..8a877193f --- /dev/null +++ b/newlib/libc/machine/i386/f_ldexp.S @@ -0,0 +1,33 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of ldexp using Intel float instructions. + + double _f_ldexp (double x, int exp); + +Function calculates x * 2 ** exp. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_ldexp) + +SYM (_f_ldexp): + pushl ebp + movl esp,ebp + fild 16(ebp) + fldl 8(ebp) + fscale + fstp st1 + + leave + ret diff --git a/newlib/libc/machine/i386/f_ldexpf.S b/newlib/libc/machine/i386/f_ldexpf.S new file mode 100644 index 000000000..e2bf387b0 --- /dev/null +++ b/newlib/libc/machine/i386/f_ldexpf.S @@ -0,0 +1,33 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of ldexpf using Intel float instructions. + + float _f_ldexpf (float x, int exp); + +Function calculates x * 2 ** exp. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_ldexpf) + +SYM (_f_ldexpf): + pushl ebp + movl esp,ebp + fild 12(ebp) + flds 8(ebp) + fscale + fstp st1 + + leave + ret diff --git a/newlib/libc/machine/i386/f_log.S b/newlib/libc/machine/i386/f_log.S new file mode 100644 index 000000000..8d5ea7299 --- /dev/null +++ b/newlib/libc/machine/i386/f_log.S @@ -0,0 +1,35 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of log using Intel float instructions. + + double _f_log (double x); + +Function calculates the log base e of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_log) + +SYM (_f_log): + pushl ebp + movl esp,ebp + + fld1 + fldl2e + fdivrp + fldl 8(ebp) + fyl2x + + leave + ret diff --git a/newlib/libc/machine/i386/f_log10.S b/newlib/libc/machine/i386/f_log10.S new file mode 100644 index 000000000..95ab45bf3 --- /dev/null +++ b/newlib/libc/machine/i386/f_log10.S @@ -0,0 +1,35 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of log10 using Intel float instructions. + + double _f_log10 (double x); + +Function calculates the log base 10 of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_log10) + +SYM (_f_log10): + pushl ebp + movl esp,ebp + + fld1 + fldl2t + fdivrp + fldl 8(ebp) + fyl2x + + leave + ret diff --git a/newlib/libc/machine/i386/f_log10f.S b/newlib/libc/machine/i386/f_log10f.S new file mode 100644 index 000000000..cdf321ecc --- /dev/null +++ b/newlib/libc/machine/i386/f_log10f.S @@ -0,0 +1,35 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of logf using Intel float instructions. + + float _f_log10f (float x); + +Function calculates the log base 10 of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_log10f) + +SYM (_f_log10f): + pushl ebp + movl esp,ebp + + fld1 + fldl2t + fdivrp + flds 8(ebp) + fyl2x + + leave + ret diff --git a/newlib/libc/machine/i386/f_logf.S b/newlib/libc/machine/i386/f_logf.S new file mode 100644 index 000000000..cff3b359f --- /dev/null +++ b/newlib/libc/machine/i386/f_logf.S @@ -0,0 +1,35 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of logf using Intel float instructions. + + float _f_logf (float x); + +Function calculates the log base e of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_logf) + +SYM (_f_logf): + pushl ebp + movl esp,ebp + + fld1 + fldl2e + fdivrp + flds 8(ebp) + fyl2x + + leave + ret diff --git a/newlib/libc/machine/i386/f_math.h b/newlib/libc/machine/i386/f_math.h new file mode 100644 index 000000000..bd44b1e92 --- /dev/null +++ b/newlib/libc/machine/i386/f_math.h @@ -0,0 +1,29 @@ +#ifndef __F_MATH_H__ +#define __F_MATH_H__ + +#include <_ansi.h> +#include "fdlibm.h" + +__inline__ +static +int +_DEFUN (check_finite, (x), + double x) +{ + __int32_t hx; + GET_HIGH_WORD(hx,x); + return (int)((__uint32_t)((hx&0x7fffffff)-0x7ff00000)>>31); +} + +__inline__ +static +int +_DEFUN (check_finitef, (x), + float x) +{ + __int32_t ix; + GET_FLOAT_WORD(ix,x); + return (int)((__uint32_t)((ix&0x7fffffff)-0x7f800000)>>31); +} + +#endif /* __F_MATH_H__ */ diff --git a/newlib/libc/machine/i386/f_pow.c b/newlib/libc/machine/i386/f_pow.c new file mode 100644 index 000000000..ac7dcfe26 --- /dev/null +++ b/newlib/libc/machine/i386/f_pow.c @@ -0,0 +1,44 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of pow using Intel float instructions. + + double _f_pow (double x, double y); + +Function calculates x to power of y. +The function optimizes the case where x is >0.0 and y is finite. +In such a case, there is no error checking or setting of errno. +All other cases defer to normal pow() function which will +set errno as normal. +*/ + +#include <math.h> +#include <ieeefp.h> +#include "f_math.h" + +double _f_pow (double x, double y) +{ + /* following sequence handles the majority of cases for pow() */ + if (x > 0.0 && check_finite(y)) + { + double result; + /* calculate x ** y as 2 ** (y log2(x)). On Intel, can only + raise 2 to an integer or a small fraction, thus, we have + to perform two steps 2**integer portion * 2**fraction. */ + asm ("fldl 8(%%ebp); fyl2x; fld %%st; frndint; fsub %%st,%%st(1);" \ + "fxch; fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1);"\ + "fmulp" : "=t" (result) : "0" (y)); + return result; + } + else /* all other strange cases, defer to normal pow() */ + return pow (x,y); +} + diff --git a/newlib/libc/machine/i386/f_powf.c b/newlib/libc/machine/i386/f_powf.c new file mode 100644 index 000000000..501b6b1f3 --- /dev/null +++ b/newlib/libc/machine/i386/f_powf.c @@ -0,0 +1,44 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of pow using Intel float instructions. + + float _f_powf (float x, float y); + +Function calculates x to power of y. +The function optimizes the case where x is >0.0 and y is finite. +In such a case, there is no error checking or setting of errno. +All other cases defer to normal powf() function which will +set errno as normal. +*/ + +#include <math.h> +#include <ieeefp.h> +#include "f_math.h" + +float _f_powf (float x, float y) +{ + /* following sequence handles the majority of cases for pow() */ + if (x > 0.0 && check_finitef(y)) + { + float result; + /* calculate x ** y as 2 ** (y log2(x)). On Intel, can only + raise 2 to an integer or a small fraction, thus, we have + to perform two steps 2**integer portion * 2**fraction. */ + asm ("flds 8(%%ebp); fyl2x; fld %%st; frndint; fsub %%st,%%st(1);" \ + "fxch; fchs; f2xm1; fld1; faddp; fxch; fld1; fscale; fstp %%st(1);"\ + "fmulp" : "=t" (result) : "0" (y)); + return result; + } + else /* all other strange cases, defer to normal pow() */ + return powf (x,y); +} + diff --git a/newlib/libc/machine/i386/f_tan.S b/newlib/libc/machine/i386/f_tan.S new file mode 100644 index 000000000..5221d5e1b --- /dev/null +++ b/newlib/libc/machine/i386/f_tan.S @@ -0,0 +1,32 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of tan using Intel float instructions. + + double _f_tan (double x); + +Function calculates the tangent of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_tan) + +SYM (_f_tan): + pushl ebp + movl esp,ebp + fldl 8(ebp) + fptan + fincstp + + leave + ret diff --git a/newlib/libc/machine/i386/f_tanf.S b/newlib/libc/machine/i386/f_tanf.S new file mode 100644 index 000000000..e8251e03c --- /dev/null +++ b/newlib/libc/machine/i386/f_tanf.S @@ -0,0 +1,32 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +Fast version of tanf using Intel float instructions. + + float _f_tanf (float x); + +Function calculates the tangent of x. +There is no error checking or setting of errno. +*/ + + #include "i386mach.h" + + .global SYM (_f_tanf) + +SYM (_f_tanf): + pushl ebp + movl esp,ebp + flds 8(ebp) + fptan + fincstp + + leave + ret diff --git a/newlib/libc/machine/i386/i386mach.h b/newlib/libc/machine/i386/i386mach.h new file mode 100644 index 000000000..bd6cf22f0 --- /dev/null +++ b/newlib/libc/machine/i386/i386mach.h @@ -0,0 +1,69 @@ +/* This file was based on the modified setjmp.S performed by + * Joel Sherill (joel@OARcorp.com) which specified the use + * of the __USER_LABEL_PREFIX__ and __REGISTER_PREFIX__ macros. + ** + ** This file is distributed WITHOUT ANY WARRANTY; without even the implied + ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* These are predefined by new versions of GNU cpp. */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#define __REG_PREFIX__ % + +/* ANSI concatenation macros. */ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a##b + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1(__USER_LABEL_PREFIX__, x) + +/* Use the right prefix for registers. */ + +#define REG(x) CONCAT1(__REG_PREFIX__, x) + +#define eax REG(eax) +#define ebx REG(ebx) +#define ecx REG(ecx) +#define edx REG(edx) +#define esi REG(esi) +#define edi REG(edi) +#define ebp REG(ebp) +#define esp REG(esp) + +#define st0 REG(st) +#define st1 REG(st(1)) +#define st2 REG(st(2)) +#define st3 REG(st(3)) +#define st4 REG(st(4)) +#define st5 REG(st(5)) +#define st6 REG(st(6)) +#define st7 REG(st(7)) + +#define ax REG(ax) +#define bx REG(bx) +#define cx REG(cx) +#define dx REG(dx) + +#define ah REG(ah) +#define bh REG(bh) +#define ch REG(ch) +#define dh REG(dh) + +#define al REG(al) +#define bl REG(bl) +#define cl REG(cl) +#define dl REG(dl) + +#define mm1 REG(mm1) +#define mm2 REG(mm2) +#define mm3 REG(mm3) +#define mm4 REG(mm4) +#define mm5 REG(mm5) +#define mm6 REG(mm6) +#define mm7 REG(mm7) diff --git a/newlib/libc/machine/i386/memchr.S b/newlib/libc/machine/i386/memchr.S new file mode 100644 index 000000000..40e29af4f --- /dev/null +++ b/newlib/libc/machine/i386/memchr.S @@ -0,0 +1,41 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (memchr) + +SYM (memchr): + pushl ebp + movl esp,ebp + pushl edi + movl 12(ebp),eax + movl 16(ebp),ecx + movl 8(ebp),edi + + xorl edx,edx + testl ecx,ecx + jz L1 + + cld + repnz + scasb + + setnz dl + decl edi + decl edx + andl edi,edx +L1: + movl edx,eax + + leal -4(ebp),esp + popl edi + leave + ret diff --git a/newlib/libc/machine/i386/memcmp.S b/newlib/libc/machine/i386/memcmp.S new file mode 100644 index 000000000..23419ddb8 --- /dev/null +++ b/newlib/libc/machine/i386/memcmp.S @@ -0,0 +1,75 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (memcmp) + +SYM (memcmp): + + pushl ebp + movl esp,ebp + subl $16,esp + pushl ebx + pushl edi + pushl esi + movl 8(ebp),edi + movl 12(ebp),esi + movl 16(ebp),ecx + cld + +/* check if length is zero in which case just return 0 */ + + xorl eax,eax + testl ecx,ecx + jz L4 + +#ifndef __OPTIMIZE_SIZE__ + +/* if aligned on long boundary, compare doublewords at a time first */ + + movl edi,eax + orl esi,eax + testb $3,al + jne BYTECMP + movl ecx,ebx + shrl $2,ecx /* calculate number of long words to compare */ + repz + cmpsl + jz L5 + subl $4,esi + subl $4,edi + movl $4,ecx + jmp BYTECMP +L5: + andl $3,ebx /* calculate number of remaining bytes */ + movl ebx,ecx + +#endif /* not __OPTIMIZE_SIZE__ */ + +BYTECMP: /* compare any unaligned bytes or remainder bytes */ + repz + cmpsb + +/* set output to be < 0 if less than, 0 if equal, or > 0 if greater than */ +L3: + xorl edx,edx + movb -1(esi),dl + xorl eax,eax + movb -1(edi),al + subl edx,eax + +L4: + leal -28(ebp),esp + popl esi + popl edi + popl ebx + leave + ret diff --git a/newlib/libc/machine/i386/memcpy.S b/newlib/libc/machine/i386/memcpy.S new file mode 100644 index 000000000..c0fd8f27e --- /dev/null +++ b/newlib/libc/machine/i386/memcpy.S @@ -0,0 +1,73 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (memcpy) + +SYM (memcpy): + + pushl ebp + movl esp,ebp + pushl esi + pushl edi + pushl ebx + movl 8(ebp),edi + movl 16(ebp),ecx + movl 12(ebp),esi + cld + +#ifndef __OPTIMIZE_SIZE__ + + cmpl $8,ecx + jbe .L3 + +/* move any preceding bytes until destination address is long word aligned */ + + movl edi,edx + movl ecx,ebx + andl $3,edx + jz .L11 + movl $4,ecx + subl edx,ecx + andl $3,ecx + subl ecx,ebx + rep + movsb + + mov ebx,ecx + +/* move bytes a long word at a time */ + +.L11: + shrl $2,ecx + .p2align 2 + rep + movsl + + movl ebx,ecx + andl $3,ecx + +#endif /* !__OPTIMIZE_SIZE__ */ + +/* handle any remaining bytes */ + +.L3: + rep + movsb +.L5: + movl 8(ebp),eax + + leal -12(ebp),esp + popl ebx + popl edi + popl esi + leave + ret diff --git a/newlib/libc/machine/i386/memmove.S b/newlib/libc/machine/i386/memmove.S new file mode 100644 index 000000000..a89a296f7 --- /dev/null +++ b/newlib/libc/machine/i386/memmove.S @@ -0,0 +1,145 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (memmove) + +SYM (memmove): + + pushl ebp + movl esp,ebp + pushl esi + pushl edi + pushl ebx + movl 8(ebp),edi + movl 16(ebp),ecx + movl 12(ebp),esi + +/* check for destructive overlap (src < dst && dst < src + length) */ + + cld + cmpl edi,esi + jae .L2 + leal -1(ecx,esi),ebx + cmpl ebx,edi + ja .L2 + +/* IF: destructive overlap, must copy backwards */ + + addl ecx,esi + addl ecx,edi + std + +#ifndef __OPTIMIZE_SIZE__ + + cmpl $8,ecx + jbe .L13 +.L18: + +/* move trailing bytes in reverse until destination address is long word aligned */ + + movl edi,edx + movl ecx,ebx + andl $3,edx + jz .L21 + + movl edx,ecx + decl esi + decl edi + subl ecx,ebx + rep + movsb + + mov ebx,ecx + incl esi + incl edi + +.L21: + +/* move bytes in reverse, a long word at a time */ + + shrl $2,ecx + subl $4,esi + subl $4,edi + rep + movsl + + addl $4,esi + addl $4,edi + movl ebx,ecx + andl $3,ecx + +#endif /* !__OPTIMIZE_SIZE__ */ + +/* handle any remaining bytes not on a long word boundary */ + +.L13: + decl esi + decl edi + +.L15: + rep + movsb + jmp .L5 + .p2align 4,,7 + +/* ELSE: no destructive overlap so we copy forwards */ + +.L2: + +#ifndef __OPTIMIZE_SIZE__ + + cmpl $8,ecx + jbe .L3 + +/* move any preceding bytes until destination address is long word aligned */ + + movl edi,edx + movl ecx,ebx + andl $3,edx + jz .L11 + movl $4,ecx + subl edx,ecx + andl $3,ecx + subl ecx,ebx + rep + movsb + + mov ebx,ecx + +/* move bytes a long word at a time */ + +.L11: + shrl $2,ecx + .p2align 2 + rep + movsl + + movl ebx,ecx + andl $3,ecx + +#endif /* !__OPTIMIZE_SIZE__ */ + +/* handle any remaining bytes */ + +.L3: + rep + movsb +.L5: + movl 8(ebp),eax + cld + + leal -12(ebp),esp + popl ebx + popl edi + popl esi + leave + ret diff --git a/newlib/libc/machine/i386/memset.S b/newlib/libc/machine/i386/memset.S new file mode 100644 index 000000000..12e33e443 --- /dev/null +++ b/newlib/libc/machine/i386/memset.S @@ -0,0 +1,59 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (memset) + +SYM (memset): + + pushl ebp + movl esp,ebp + pushl edi + pushl ebx + movl 8(ebp),edi + movl 12(ebp),eax + movl 16(ebp),ecx + cld + +#ifndef __OPTIMIZE_SIZE__ + andl $255,eax + movl ecx,ebx + testl $3,edi + jne .L19 + cmpl $16,ecx + jbe .L19 + + movl eax,edx + sall $8,eax + orl edx,eax + + movl eax,edx + sall $16,edx + orl edx,eax + + shrl $2,ecx + andl $3,ebx + rep + stosl + movl ebx,ecx +#endif /* not __OPTIMIZE_SIZE__ */ + +.L19: + rep + stosb + + movl 8(ebp),eax + + leal -8(ebp),esp + popl ebx + popl edi + leave + ret diff --git a/newlib/libc/machine/i386/setjmp.S b/newlib/libc/machine/i386/setjmp.S new file mode 100644 index 000000000..0f4b537b9 --- /dev/null +++ b/newlib/libc/machine/i386/setjmp.S @@ -0,0 +1,136 @@ +/* This is file is a merger of SETJMP.S and LONGJMP.S */ +/* + * This file was modified to use the __USER_LABEL_PREFIX__ and + * __REGISTER_PREFIX__ macros defined by later versions of GNU cpp by + * Joel Sherrill (joel@OARcorp.com) + * + ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 + ** + ** This file is distributed under the terms listed in the document + ** "copying.dj", available from DJ Delorie at the address above. + ** A copy of "copying.dj" should accompany this file; if not, a copy + ** should be available from where this file was obtained. This file + ** may not be distributed without a verbatim copy of "copying.dj". + ** + ** This file is distributed WITHOUT ANY WARRANTY; without even the implied + ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + */ + + /* + ** jmp_buf: + ** eax ebx ecx edx esi edi ebp esp eip + ** 0 4 8 12 16 20 24 28 32 + */ + +/* These are predefined by new versions of GNU cpp. */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +/***************************** TEMPORARY ****************************** + * + * It appears that the i386-coff configuration of gcc 2.6.2 does not + * do the __REGISTER_PREFIX__ correctly. Fix this when it does. + **********************************************************************/ +#define __REGISTER_PREFIX__ % +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +/* ANSI concatenation macros. */ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) + +/* Use the right prefix for registers. */ + +#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) + +#define eax REG (eax) +#define ebx REG (ebx) +#define ecx REG (ecx) +#define edx REG (edx) +#define esi REG (esi) +#define edi REG (edi) +#define ebp REG (ebp) +#define esp REG (esp) + +#define ax REG (ax) +#define bx REG (bx) +#define cx REG (cx) +#define dx REG (dx) + +#define ah REG (ah) +#define bh REG (bh) +#define ch REG (ch) +#define dh REG (dh) + +#define al REG (al) +#define bl REG (bl) +#define cl REG (cl) +#define dl REG (dl) + + .global SYM (setjmp) + .global SYM (longjmp) + +SYM (setjmp): + + pushl ebp + movl esp,ebp + + pushl edi + movl 8 (ebp),edi + + movl eax,0 (edi) + movl ebx,4 (edi) + movl ecx,8 (edi) + movl edx,12 (edi) + movl esi,16 (edi) + + movl -4 (ebp),eax + movl eax,20 (edi) + + movl 0 (ebp),eax + movl eax,24 (edi) + + movl esp,eax + addl $12,eax + movl eax,28 (edi) + + movl 4 (ebp),eax + movl eax,32 (edi) + + popl edi + movl $0,eax + leave + ret + +SYM (longjmp): + pushl ebp + movl esp,ebp + + movl 8(ebp),edi /* get jmp_buf */ + movl 12(ebp),eax /* store retval in j->eax */ + movl eax,0(edi) + + movl 24(edi),ebp + + cli + movl 28(edi),esp + + pushl 32(edi) + + movl 0(edi),eax + movl 4(edi),ebx + movl 8(edi),ecx + movl 12(edi),edx + movl 16(edi),esi + movl 20(edi),edi + sti + + ret diff --git a/newlib/libc/machine/i386/strchr.S b/newlib/libc/machine/i386/strchr.S new file mode 100644 index 000000000..f224f380c --- /dev/null +++ b/newlib/libc/machine/i386/strchr.S @@ -0,0 +1,84 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (strchr) + +SYM (strchr): + + pushl ebp + movl esp,ebp + pushl edi + pushl ebx + xorl ebx,ebx + movl 8(ebp),edi + movb 12(ebp),bl + +#ifndef __OPTIMIZE_SIZE__ +/* check if string is aligned, if not do check one byte at a time */ + test $3,edi + jne L9 + +/* create 4 byte mask which is just the desired byte repeated 4 times */ + movl ebx,ecx + sall $8,ebx + subl $4,edi + orl ecx,ebx + movl ebx,edx + sall $16,ebx + orl edx,ebx + +/* loop performing 4 byte mask checking for 0 byte or desired byte */ + .p2align 4,,7 +L10: + addl $4,edi + movl (edi),ecx + leal -16843009(ecx),edx + movl ecx,eax + notl eax + andl eax,edx + testl $-2139062144,edx + jne L9 + + movl ebx,eax + xorl ecx,eax + leal -16843009(eax),edx + notl eax + andl eax,edx + testl $-2139062144,edx + je L10 +#endif /* not __OPTIMIZE_SIZE__ */ + +/* loop while (*s && *s++ != c) */ +L9: + leal -1(edi),eax + .p2align 4,,7 +L15: + incl eax + movb (eax),dl + testb dl,dl + je L14 + cmpb bl,dl + jne L15 + +L14: +/* if (*s == c) return address otherwise return NULL */ + cmpb bl,(eax) + je L19 + xorl eax,eax + +L19: + leal -8(ebp),esp + popl ebx + popl edi + leave + ret + diff --git a/newlib/libc/machine/i386/strlen.S b/newlib/libc/machine/i386/strlen.S new file mode 100644 index 000000000..cae390ace --- /dev/null +++ b/newlib/libc/machine/i386/strlen.S @@ -0,0 +1,34 @@ +/* + * ==================================================== + * Copyright (C) 1998 by Cygnus Solutions. All rights reserved. + * + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + #include "i386mach.h" + + .global SYM (strlen) + +SYM (strlen): + + pushl ebp + movl esp,ebp + pushl edi + movl 8(ebp),edx + + cld + movl edx,edi + movl $4294967295,ecx + xor eax,eax + repnz + scasb + subl edx,edi + leal -1(edi),eax + + leal -4(ebp),esp + popl edi + leave + ret diff --git a/newlib/libc/machine/i960/Makefile.am b/newlib/libc/machine/i960/Makefile.am new file mode 100644 index 000000000..ec5ca63e2 --- /dev/null +++ b/newlib/libc/machine/i960/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/i960/Makefile.in b/newlib/libc/machine/i960/Makefile.in new file mode 100644 index 000000000..3a3f406f7 --- /dev/null +++ b/newlib/libc/machine/i960/Makefile.in @@ -0,0 +1,294 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/i960/aclocal.m4 b/newlib/libc/machine/i960/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/i960/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/i960/configure b/newlib/libc/machine/i960/configure new file mode 100755 index 000000000..159a80606 --- /dev/null +++ b/newlib/libc/machine/i960/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=memccpy_ca.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/i960/configure.in b/newlib/libc/machine/i960/configure.in new file mode 100644 index 000000000..365fe2038 --- /dev/null +++ b/newlib/libc/machine/i960/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/i960 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(memccpy_ca.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/i960/memccpy.S b/newlib/libc/machine/i960/memccpy.S new file mode 100644 index 000000000..df1947228 --- /dev/null +++ b/newlib/libc/machine/i960/memccpy.S @@ -0,0 +1,143 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memccpy.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ +/* + procedure memccpy (optimized assembler version for the 80960K series) + + dest_addr = memccpy (dest_addr, src_addr, char, len) + + copy len bytes pointed to by src_addr to the space pointed to by + dest_addr, stopping if char is copied. If char is copied, + return address of byte after char in dest string; else null. + + + Undefined behavior will occur if the end of the source array is in + the last two words of the program's allocated memory space. This + is so because the routine fetches ahead. Disallowing the fetch + ahead would impose a severe performance penalty. + + Undefined behavior will also occur if the source and destination + strings overlap. + + Strategy: + + Fetch the source array by words and store them by words to the + destination array, until there are fewer than three bytes left + to copy. Then, using the last word of the source (the one that + contains the remaining 0, 1, 2, or 3 bytes to be copied), store + a byte at a time until Ldone. + + Tactics: + + 1) Do NOT try to fetch and store the words in a word aligned manner + because, in my judgement, the performance degradation experienced due + to non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. This is supported by the intuition that most source and + destination arrays (even more true of most big source arrays) will + be word aligned to begin with. + + 2) Rather than decrementing len to zero, + I calculate the address of the byte after the last byte of the + destination array, and quit when the destination byte pointer passes + that. + +*/ + + .globl _memccpy + .leafproc _memccpy, __memccpy + .align 2 +_memccpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memccpy: + mov g14, g13 # preserve return address + cmpibge 0,g3,Lexit_char_not_found + + addo g3,g1,g3 # compute beyond end of src + ld (g1), g7 # fetch first word of source + lda 0xff,g5 # mask for char + and g5,g2,g2 # extract only char + shlo 8,g2,g6 + or g2,g6,g6 + shlo 16,g6,g4 + or g6,g4,g6 # word of char + b Lwloop_b + +Lwloop_a: + ld (g1), g7 # fetch ahead next word of source + st g4, (g0) # store word to dest + addo 4, g0, g0 # post-increment dest pointer +Lwloop_b: # word copying loop + addo 4, g1, g1 # pre-increment src pointer + cmpo g3, g1 # is len <= 3 ? + mov g7, g4 # keep a copy of the current word + bl Lcloop_setup # quit word loop if less than 4 bytes + scanbyte g6, g7 # check for char + bno Lwloop_a # continue word loop if char not found. + +Lcloop_setup: + subo 4, g1, g1 # back down src pointer + cmpobe g1, g3, Lexit_char_not_found + +Lcloop_a: # character copying loop (len < 3) + and g5,g4,g7 # check the byte against char + cmpo g7,g2 + stob g7,(g0) # store the byte + addo 1, g0, g0 + be Lexit_char_found + addo 1,g1,g1 + cmpo g1,g3 + shro 8,g4,g4 # position next byte + bne Lcloop_a + +Lexit_char_not_found: + mov 0, g0 +Lexit_char_found: + lda 0,g14 + bx (g13) # g0 = dest array address; g14 = 0 +Lrett: + ret + + +/* end of memccpy */ diff --git a/newlib/libc/machine/i960/memccpy_ca.S b/newlib/libc/machine/i960/memccpy_ca.S new file mode 100644 index 000000000..60c197b72 --- /dev/null +++ b/newlib/libc/machine/i960/memccpy_ca.S @@ -0,0 +1,245 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "mccpy_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ + +/* + procedure memccpy (optimized assembler version for the 80960CA) + + dest_addr = memccpy (dest_addr, src_addr, char, len) + + copy len bytes pointed to by src_addr to the space pointed to by + dest_addr, stopping if char is copied. If char is copied, + return address of byte after char in dest string; else null. + + Undefined behavior will occur if the end of the source array is in + the last two words of the program's allocated memory space. This + is so because the routine fetches ahead. Disallowing the fetch + ahead would impose a severe performance penalty. + + Undefined behavior will also occur if the source and destination + strings overlap. + + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source is word aligned, destination is not + 4) destination is word aligned, source is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g6 +#define LSW g7 +#else +#define LSW g6 +#define MSW g7 +#endif + + .globl _memccpy + .leafproc _memccpy, __memccpy + .align 2 +_memccpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memccpy: + notand g1,3,g5 # extract word addr of start of src + lda (g14),g13 # preserve return address + cmpibge.f 0,g3,Lexit_char_not_found # Lexit if # of bytes to move is <= 0 + cmpo g5,g1 # check alignment of src + ld (g5),LSW # fetch word containing at least first byte + notand g0,3,g4 # extract word addr of start of dest + lda 4(g5),g5 # advance src word addr + shlo 24,g2,g2 # reduce char to single byte + bne.f Lcase_245 # branch if src is NOT word aligned + +Lcase_13: + cmpobe.t g0,g4,Lcase_1_setup # branch if dest word aligned + +Lcase_3: # src is word aligned; dest is not + mov LSW,MSW # make copy of first word of src + addo 4,g4,g1 # move dest word ptr to first word boundary + lda 32,g14 # initialize shift count to zero + +Lcase_25: +Lcase_3_cloop_at_start: # character copying loop for start of dest str + cmpdeci 0,g3,g3 # is max_bytes exhausted? +#if __i960_BIG_ENDIAN__ + lda -8(g14),g14 # augment the shift counter +#else + lda 8(g14),g14 # augment the shift counter +#endif + be.f Lexit_char_not_found # Lexit if max_bytes is exhausted +#if __i960_BIG_ENDIAN__ + rotate 8,MSW,MSW # move next byte into position for extraction +#endif + shlo 24,MSW,g4 + stob MSW,(g0) # store the byte in dest + cmpo g4,g2 + lda 1(g0),g0 # post-increment dest ptr +#if ! __i960_BIG_ENDIAN__ + shro 8,MSW,MSW # move next byte into position for extraction +#endif + be.f Lexit_char_found # Lexit if char found + cmpobne.t g1,g0,Lcase_3_cloop_at_start # branch if reached word boundary + + ld (g5),MSW # fetch msw of operand for double shift + +Lcase_4: + shro 8,g2,g4 + or g4,g2,g1 + shro 16,g1,g4 + or g4,g1,g4 + +#if __i960_BIG_ENDIAN__ + cmpobne 0,g14,Lcase_3_wloop + +Lcase_3_wloop2: + cmpi g3,4 # less than four bytes to move? + lda 4(g5),g5 # post-increment src word addr + mov LSW,g1 # extract 4 bytes of src + bl.f Lcase_13_cloop_setup # branch if < four bytes left to move + scanbyte g4,g1 # branch if word has char in it + bo.f Lcase_13_cloop_setup + mov MSW,LSW # move msw to lsw + ld (g5),MSW # pre-fetch msw of operand for double shift + subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved + st g1,(g0) # store 4 bytes to dest + addo 4,g0,g0 # post-increment dest ptr + b Lcase_3_wloop2 +#endif + +Lcase_3_wloop: + cmpi g3,4 # less than four bytes to move? + lda 4(g5),g5 # post-increment src word addr + eshro g14,g6,g1 # extract 4 bytes of src + bl.f Lcase_13_cloop_setup # branch if < four bytes left to move + scanbyte g4,g1 # branch if word has char in it + bo.f Lcase_13_cloop_setup + mov MSW,LSW # move msw to lsw + ld (g5),MSW # pre-fetch msw of operand for double shift + subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved + st g1,(g0) # store 4 bytes to dest + addo 4,g0,g0 # post-increment dest ptr + b Lcase_3_wloop + +Lcase_1_setup: + subo 4,g0,g0 # store is pre-incrementing; back up dest addr + shro 8,g2,g4 + or g4,g2,MSW + shro 16,MSW,g4 + or g4,MSW,g4 + b Lcase_1 +Lcase_1_wloop: # word copying loop + subi 4,g3,g3 # decrease max_byte count by the 4 bytes moved + ld (g5),LSW # pre-fetch next word of src + addo 4,g5,g5 # post-increment src addr + st g1,(g0) # store word in dest string +Lcase_1: # src and dest are word aligned + cmpi g3,4 # check for fewer than four bytes to move + addo 4,g0,g0 # pre-increment dest addr + lda (LSW),g1 # keep a copy of the src word + bl.f Lcase_13_cloop_setup # branch if less than four bytes to copy + scanbyte LSW,g4 # branch if char is not in foursome + bno.t Lcase_1_wloop +Lcase_13_cloop_setup: + cmpibe.f 0,g3,Lexit_char_not_found # Lexit if max_bytes is exhausted + +Lcase_1_cloop: +#if __i960_BIG_ENDIAN__ + rotate 8,g1,g1 # move next byte into position for extraction +#endif + shlo 24,g1,g4 + stob g1,(g0) # store the byte in dest + cmpo g4,g2 + lda 1(g0),g0 # post-increment dest byte addr + subi 1,g3,g3 + be.f Lexit_char_found # Lexit if char reached + cmpi 0,g3 +#if ! __i960_BIG_ENDIAN__ + shro 8,g1,g1 # move next byte into position for extraction +#endif + bne.t Lcase_1_cloop # continue if len not exhausted + +Lexit_char_not_found: + mov 0,g0 +Lexit_char_found: + lda 0,g14 + bx (g13) # g0 = dest array address; g14 = 0 +Lrett: + ret + + +Lcase_245: + cmpo g0,g4 # check alignment of dest + ld (g5),MSW # pre-fetch second half + and 3,g1,g1 # compute shift count + shlo 3,g1,g14 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian +#endif + be.t Lcase_4 # branch if dest is word aligned + or g4,g1,g1 # is src earlier in word, later, or sync w/ dst + cmpo g0,g1 # < indicates first word of dest has more bytes + /* than first word of source. */ + eshro g14,g6,g4 # extract four bytes + lda 4(g0),g1 # move dest word addr to first word boundary +#if __i960_BIG_ENDIAN__ + bge.f 1f +#else + bg.f 1f +#endif + mov MSW,LSW + lda 4(g5),g5 # move src word addr to second word boundary +1: + notand g1,3,g1 + mov g4,MSW + b Lcase_25 + +/* end of memccpy */ diff --git a/newlib/libc/machine/i960/memchr.S b/newlib/libc/machine/i960/memchr.S new file mode 100644 index 000000000..e9a4e426d --- /dev/null +++ b/newlib/libc/machine/i960/memchr.S @@ -0,0 +1,130 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memchr.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure memchr (optimized assembler version for the 80960K series) + + src_addr = memchr (src_addr, char, max_bytes) + + searching from src_addr for a span of max_bytes bytes, return a + pointer to the first byte in the source array that contains the + indicated char. Return null if the char is not found. + + Undefined behavior will occur if the last byte of the source array + is in the last two words of the program's allocated memory space. + This is so because memchr fetches ahead. Disallowing the fetch + ahead would impose a severe performance penalty. + + Strategy: + + Fetch the source array by words and scanbyte the words for the + char until either a word with the byte is found or max_bytes is + exhausted. In the former case, move through the word to find the + matching byte and return its memory address. In the latter case, + return zero (null). + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble that would be necessary to assure alignment. This + is supported by the intuition that most source arrays (even more + true of most big source arrays) will be word aligned to begin with. + + 2) Rather than decrementing max_bytes to zero, I calculate the + address of the byte after the last byte of the source array, and + quit when the source byte pointer passes that. Refining, actually + I calculate the address of the fifth byte after the last byte of + the source array, because the source byte pointer is ahead of the + actual examination point due to fetch ahead. +*/ + + .globl _memchr + .globl __memchr + .leafproc _memchr, __memchr + .align 2 +_memchr: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memchr: + + mov g14,g13 # preserve return address + lda 0xff,g7 # byte extraction mask + and g1,g7,g1 # make char an 8-bit ordinal + mov 0,g14 # conform to register linkage standard + cmpibge 0,g2,Lnot_found # do nothing if max_bytes <= 0 + addo 4,g0,g6 # post-increment src word pointer + addo g2,g6,g2 # compute ending address from start and len + ld (g0),g4 # fetch first word + shlo 8,g1,g3 # broadcast the char to four bytes + or g1,g3,g3 + shlo 16,g3,g5 + or g3,g5,g3 + +Lsearch_for_word_with_char: + mov g4,g5 # keep a copy of word + scanbyte g3,g5 # check for byte with char + ld (g6),g4 # fetch next word of src + bo Lsearch_for_char # branch if null found + addo 4,g6,g6 # post-increment src word pointer + cmpobge g2,g6,Lsearch_for_word_with_char # branch if max_bytes > 3 + +Lnot_found: + mov 0,g0 # char not found. Return null + bx (g13) # g0 = addr of char in src (or null); g14 = 0 +Lrett: + ret + +Lsearch_for_char: + cmpobe.f g6,g2,Lnot_found # quit if max_bytes exhausted + and g5,g7,g0 # extract byte + cmpo g1,g0 # is it char? + addo 1,g6,g6 # bump src byte ptr + shro 8,g5,g5 # shift word to position next byte + bne.t Lsearch_for_char + subo 5,g6,g0 # back up the byte pointer + bx (g13) + +/* end of memchr */ diff --git a/newlib/libc/machine/i960/memchr_ca.S b/newlib/libc/machine/i960/memchr_ca.S new file mode 100644 index 000000000..ac80be71c --- /dev/null +++ b/newlib/libc/machine/i960/memchr_ca.S @@ -0,0 +1,153 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memchr_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure memchr (optimized assembler version for the CA) + + src_addr = memchr (src_addr, char, max_bytes) + + searching from src_addr for max_bytes bytes, return a pointer to the + first byte that contains the indicated byte in the source string. + Return null if the byte is not found. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last two words of the program's + allocated memory space. This is so because, in several cases, memchr + will fetch ahead. Disallowing the fetch ahead would impose a severe + performance penalty. + + This program handles two cases: + + 1) the argument starts on a word boundary + 2) the argument doesn't start on a word boundary + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 src ptr; upon return it is a pointer to the matching byte, or null + g1 char to seek + g2 maximum number of bytes to check + g3 char to seek, broadcast to all four bytes + g4 word of the source string + g5 copy of the word + g6 mask to avoid unimportant bytes in first word + g7 byte extraction mask + g13 return address + g14 +*/ + + .globl _memchr + .globl __memchr + .leafproc _memchr, __memchr + .align 2 +_memchr: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memchr: + + mov g14,g13 # preserve return address + lda 0xff,g7 # byte extraction mask + and g1,g7,g1 # make char an 8-bit ordinal + lda 0,g14 # conform to register linkage standard + cmpibge.f 0,g2,Lnot_found # do nothing if max_bytes <= 0 + addo g0,g2,g2 # compute ending address from start and len + and g0,3,g6 # extract byte offset of src + notand g0,3,g0 # extract word addr of start of src + shlo 8,g1,g3 # broadcast the char to four bytes + ld (g0),g4 # fetch word containing at least first byte + or g1,g3,g3 + shlo 16,g3,g5 + cmpo g1,g7 # is char being sought 0xff? + or g5,g3,g3 + shlo 3,g6,g6 # get shift count for making mask for first word + subi 1,0,g5 # mask initially all ones +#if __i960_BIG_ENDIAN__ + shro g6,g5,g5 # get mask for bytes needed from first word +#else + shlo g6,g5,g5 # get mask for bytes needed from first word +#endif + notor g4,g5,g4 # set unneeded bytes to all ones + be.f Lsearch_for_0xff # branch if seeking 0xff + +Lsearch_for_word_with_char: + scanbyte g3,g4 # check for byte with char + lda 4(g0),g0 # pre-increment src word pointer + mov g4,g5 # keep a copy of word + ld (g0),g4 # fetch next word of src + bo.f Lsearch_for_char # branch if null found + cmpoble.t g0,g2,Lsearch_for_word_with_char # branch if not null + +Lnot_found: + mov 0,g0 # char not found. Return null +Lexit_code: + bx (g13) # g0 = addr of char in src (or null); g14 = 0 +Lrett: + ret + +Lsearch_for_char: + subo 4,g0,g0 # back up the byte pointer +Lsearch_for_char.a: + cmpobe.f g0,g2,Lnot_found # quit if max_bytes exhausted +#if __i960_BIG_ENDIAN__ + rotate 8,g5,g5 # shift word to position next byte +#endif + and g5,g7,g6 # extract byte + cmpo g1,g6 # is it char? + lda 1(g0),g0 # bump src byte ptr +#if ! __i960_BIG_ENDIAN__ + shro 8,g5,g5 # shift word to position next byte +#endif + bne.t Lsearch_for_char.a + subo 1,g0,g0 # back up the byte pointer + b Lexit_code + +Lsearch_for_0xff: + lda 0xf0f0f0f0,g6 # make first comparison mask for char=-1 case. + or g6,g5,g6 + and g4,g6,g4 # make unimportant bytes of first word 0x0f + b Lsearch_for_word_with_char + +/* end of memchr */ diff --git a/newlib/libc/machine/i960/memcmp.S b/newlib/libc/machine/i960/memcmp.S new file mode 100644 index 000000000..709eb2bdb --- /dev/null +++ b/newlib/libc/machine/i960/memcmp.S @@ -0,0 +1,128 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memcmp.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure memcmp (optimized assembler version for the 80960K series) + + result = memcmp (src1_addr, src2_addr, max_bytes) + + compare the byte array pointed to by src1_addr to the byte array + pointed to by src2_addr. Return 0 iff the arrays are equal, -1 iff + src1_addr is lexicographically less than src2_addr, and 1 iff it is + lexicographically greater. Do not compare more than max_bytes bytes. + + Undefined behavior will occur if the end of either source array + is in the last two words of the program's allocated memory space. + This is so because memcmp fetches ahead. Disallowing the fetch ahead + would impose a severe performance penalty. + + Strategy: + + Fetch the source strings by words and compare the words until either + a differing word is found or max_bytes is exhausted. In the former + case, move through the words to find the differing byte and return + plus or minus one, appropriately. In the latter case, return zero + (equality). + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble that would be necessary to assure alignment. This + is supported by the intuition that most source arrays (even more + true of most big source arrays) will be word aligned to begin with. + + 2) Rather than decrementing max_bytes to zero, I calculate the + address of the byte after the last byte of the source_1 array, and + quit when the source byte pointer passes that. +*/ + + .globl _memcmp + .globl __memcmp + .leafproc _memcmp,__memcmp + .align 2 + +_memcmp: +#ifndef __PIC + lda .Lrett,g14 +#else + lda .Lrett-(.+8)(ip),g14 +#endif +__memcmp: + mov g14,g13 # preserve return address + ldconst 0,g14 # conform to register conventions + cmpibge 0,g2,Lequal_exit # quit if max_bytes <= 0 + addo g0,g2,g2 # calculate byte addr of byte after last in src1 + +.Lwloop: + cmpo g0,g2 + ld (g0), g5 # fetch word of source_1 + bge Lequal_exit # quit (equal) if max_bytes exhausted + ld (g1), g3 # fetch word of source_2 + addo 4,g0,g0 # post-increment source_1 byte ptr + addo 4,g1,g1 # post-increment source_2 byte ptr + cmpobe g5,g3,.Lwloop # branch if source words are equal + + ldconst 0xff,g4 # byte extraction mask + subo 4,g0,g0 # back up src1 pointer + +.Lcloop: and g4,g5,g7 # extract and compare individual bytes + and g4,g3,g6 + cmpobne g7,g6,.diff # branch if they are different + shlo 8,g4,g4 # position mask for next extraction + addo 1,g0,g0 + cmpobl g0,g2,.Lcloop # quit if max_bytes is exhausted + +Lequal_exit: + mov 0,g0 + bx (g13) +.Lrett: + ret + +.diff: bl .neg # arrays differ at current byte. + /* return 1 or -1 appropriately */ + mov 1,g0 + bx (g13) +.neg: subi 1,0,g0 +.Lexit: + bx (g13) + +/* end or memcmp */ diff --git a/newlib/libc/machine/i960/memcmp_ca.S b/newlib/libc/machine/i960/memcmp_ca.S new file mode 100644 index 000000000..317ea89bf --- /dev/null +++ b/newlib/libc/machine/i960/memcmp_ca.S @@ -0,0 +1,205 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memcm_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1992,1993 Intel Corp., all rights reserved + */ + +/* + procedure memcmp (optimized assembler version for the CA) + + result = memcmp (src1_addr, src2_addr, max_bytes) + + compare the byte array pointed to by src1_addr to the byte array + pointed to by src2_addr. Return 0 iff the arrays are equal, -1 if + src1_addr is lexicly less than src2_addr, and 1 if it is lexicly + greater. Do not compare more than max_bytes bytes. + + Undefined behavior will occur if the end of either source array + is in the last word of the program's allocated memory space. This + is so because, in several cases, memcmp will fetch ahead one word. + Disallowing the fetch ahead would impose a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source1 is word aligned, source2 is not + 4) source2 is word aligned, source1 is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g14 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers are sufficient to implement the routine. + The registers are used as follows: + + g0 original src1 ptr; extracted word; return result + g1 src2 ptr; byt extraction mask + g2 maximum number of bytes to compare + g3 src2 word ptr + Little endian + g4 lsw of src1 + g5 msw of src1 + g6 src2 word + g7 src1 word ptr + Big endian + g4 msw of src1 + g5 lsw of src1 + g6 src1 word ptr + g7 src2 word + g13 return address + g14 shift count +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g4 +#define LSW g5 +#define SRC1 g6 +#define SRC2 g7 +#else +#define LSW g4 +#define MSW g5 +#define SRC2 g6 +#define SRC1 g7 +#endif + + .globl _memcmp + .globl __memcmp + .leafproc _memcmp, __memcmp + .align 2 +_memcmp: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memcmp: +Lrestart: +#if __i960_BIG_ENDIAN__ + subo 1,g0,SRC1 + notand SRC1,3,SRC1 # extract word addr of start of src1 +#else + notand g0,3,SRC1 # extract word addr of start of src1 +#endif + lda (g14),g13 # preserve return address + cmpibge.f 0,g2,Lequal_exit # return equality if number bytes 0 + notand g1,3,g3 # extract word addr of start of src2 + ld (SRC1),LSW # fetch word with at least first byte of src1 + cmpo g3,g1 # check alignment of src2 + ld 4(SRC1),MSW # fetch second word of src1 + shlo 3,g0,g14 # compute shift count for src1 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian. +#endif + ld (g3),SRC2 # fetch word with at least first byte of src2 + eshro g14,g4,LSW # extract word of src1 + lda 8(SRC1),SRC1 # advance src1 word addr + bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned + + mov LSW,g0 # at least src2 is word aligned + + lda 0xff,g1 + +Lwloop: # word comparing loop + cmpo SRC2,g0 # compare src1 and src2 words + lda 4(g3),g3 # pre-increment src2 addr + mov MSW,LSW # move msw of src1 to lsw + ld (SRC1),MSW # pre-fetch next msw of src1 + subi 4,g2,g2 # decrement maximum byte count + bne.f Lcloop # branch if src1 and src2 unequal + cmpi 0,g2 + ld (g3),SRC2 # pre-fetch next word of src2 + eshro g14,g4,g0 # extract word of src1 + lda 4(SRC1),SRC1 # post-increment src1 addr + bl.t Lwloop # branch if max_bytes not reached yet + + b Lequal_exit # strings were equal up through max_bytes + +Lcloop_setup: # setup for coming from Lsrc2_unaligned + mov LSW,g0 # restore extracted src1 word + subo 4,g2,g2 # make up for later re-incrementing + lda 0xff,g1 # byte extraction mask + +Lcloop: # character comparing loop +#if __i960_BIG_ENDIAN__ + rotate 24,g1,g1 # shift mask for next byte +#endif + and SRC2,g1,g3 # extract next char of src2 + and g0,g1,LSW # extract next char of src1 + cmpobne.f LSW,g3,.diff # check for equality +#if ! __i960_BIG_ENDIAN__ + shlo 8,g1,g1 # shift mask for next byte +#endif + subi 1,g2,g2 # decrement character counter + b Lcloop # branch if null not reached + + +Lequal_exit: # words are equal up thru null byte + mov 0,g14 # conform to register conventions + lda 0,g0 # return zero, indicating equality + bx (g13) # return +Lrett: + ret + +.diff: + addo 4,g2,g2 # to make up for extra decrement in loop + lda 0,g14 + bl Lless_than_exit +Lgreater_than_exit: + cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes + mov 1,g0 + bx (g13) # g0 = 1 (src1 > src2) +Lless_than_exit: + cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes + subi 1,0,g0 + bx (g13) # g0 = -1 (src1 < src2) + +Lsrc2_unaligned: + notor g1,3,g14 # first step in computing new src1 ptr + ld 4(g3),SRC1 # fetch second word of src2 + shlo 3,g1,MSW # compute shift count for src2 +#if __i960_BIG_ENDIAN__ + subo MSW,0,MSW +#endif + eshro MSW,g6,SRC2 # extract word of src2 + cmpo LSW,SRC2 # compare src1 and src2 words + lda 4(g3),g1 # set new src2 ptr + bne.f Lcloop_setup # first four bytes differ + subo g14,g0,g0 # second (final) step in computing new src1 ptr + addi g14,g2,g2 # compute new max_bytes too + lda (g13),g14 # prepare return pointer for Lrestart + b Lrestart # continue with both string fetches shifted diff --git a/newlib/libc/machine/i960/memcpy.S b/newlib/libc/machine/i960/memcpy.S new file mode 100644 index 000000000..8465e474b --- /dev/null +++ b/newlib/libc/machine/i960/memcpy.S @@ -0,0 +1,160 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memcpy.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure memmove (optimized assembler version for the 80960K series) + procedure memcpy (optimized assembler version for the 80960K series) + + dest_addr = memmove (dest_addr, src_addr, len) + dest_addr = memcpy (dest_addr, src_addr, len) + + copy len bytes pointed to by src_addr to the space pointed to by + dest_addr. Return the original dest_addr. + + These routines will work even if the arrays overlap. The standard + requires this of memmove, but memcpy is allowed to fail if overlap + is present. Nevertheless, it is implemented the same as memmove + because the overhead is trifling. + + Undefined behavior will occur if the end of the source array is in + the last two words of the program's allocated memory space. This + is so because the routine fetches ahead. Disallowing the fetch + ahead would impose a severe performance penalty. + + Strategy: + + Fetch the source array by words and store them by words to the + destination array, until there are fewer than three bytes left + to copy. Then, using the last word of the source (the one that + contains the remaining 0, 1, 2, or 3 bytes to be copied), store + a byte at a time until Ldone. + + Tactics: + + 1) Do NOT try to fetch and store the words in a word aligned manner + because, in my judgement, the performance degradation experienced due + to non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. This is supported by the intuition that most source and + destination arrays (even more true of most big source arrays) will + be word aligned to begin with. + + 2) For non-overlapping arrays, rather than decrementing len to zero, + I calculate the address of the byte after the last byte of the + destination array, and quit when the destination byte pointer passes + that. + + 3) For overlapping arrays where the source starts at a lower address + than the destination the move is performed in reverse order. + + 4) Overlapping arrays where the source starts at a higher address + are treated like non-overlapping case. Where the two arrays exactly + coincide, the routine is short-circuited; no move is Ldone at all. + This costs only one cycle. +*/ + + .globl _memcpy, _memmove + .globl __memcpy, __memmove + .leafproc _memmove, __memmove + .leafproc _memcpy, __memcpy + .align 2 +_memmove: +_memcpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memmove: +__memcpy: + mov g14, g13 # preserve return address + cmpibge 0,g2,Lexit # exit if number of bytes to move is <= zero. + cmpo g0,g1 # does start of dest overlap end of src? + addo g2,g1,g3 + be Lexit # no move necessary if src and dest are same + concmpo g3,g0 + addo g2, g0, g6 + bg Lbackwards # if overlap, then do move backwards + + ld (g1), g7 # fetch first word of source + mov g0, g5 + b Lwloop_b + +Lwloop_a: + ld (g1), g7 # fetch ahead next word of source + st g4, (g5) # store word to dest + addo 4, g5, g5 # post-increment dest pointer +Lwloop_b: # word copying loop + addo 4, g1, g1 # pre-increment src pointer + cmpo g3, g1 # is len <= 3 ? + mov g7, g4 # keep a copy of the current word + bge Lwloop_a # loop if more than 3 bytes to move + cmpobe g6, g5, Lexit # quit if no more bytes to move + +Lcloop_a: # character copying loop (len < 3) + stob g4, (g5) # store a byte + shro 8, g4, g4 # position next byte for storing + addo 1, g5, g5 + cmpobne g6, g5, Lcloop_a # quit if no more bytes to move + +Lexit: + mov 0, g14 + bx (g13) # g0 = dest array address; g14 = 0 +Lrett: + ret + +Lwloop.a: + subo 4, g6, g6 # pre-decrement dest pointer + st g7, (g6) # store word to dest +Lbackwards: # word copying loop + subo 4, g3, g3 # pre-decrement src pointer + cmpo g1, g3 # is len <= 3? + ld (g3), g7 # fetch ahead next word of source + ble Lwloop.a # loop if more than 3 bytes to move + cmpobe g6, g0, Lexit # quit if no more bytes to move + +Lcloop.a: + subo 1, g6, g6 + rotate 8, g7, g7 # position byte for storing + stob g7, (g6) # store byte + cmpobne g6, g0, Lcloop.a # quit if no more bytes to move + b Lexit + +/* end of memmove */ diff --git a/newlib/libc/machine/i960/memcpy_ca.S b/newlib/libc/machine/i960/memcpy_ca.S new file mode 100644 index 000000000..eebfa88a1 --- /dev/null +++ b/newlib/libc/machine/i960/memcpy_ca.S @@ -0,0 +1,353 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memcp_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1992,1993 Intel Corp., all rights reserved + */ + +/* + procedure memmove (optimized assembler version for the CA) + procedure memcpy (optimized assembler version for the CA) + + dest_addr = memmove (dest_addr, src_addr, len) + dest_addr = memcpy (dest_addr, src_addr, len) + + copy len bytes pointed to by src_addr to the space pointed to by + dest_addr. Return the original dest_addr. + + Memcpy will fail if the source and destination string overlap + (in particular, if the end of the source is overlapped by the + beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + Memmove will not fail if overlap exists. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, the + routine will fetch ahead one word. Disallowing the fetch ahead would + impose a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source is word aligned, destination is not + 4) destination is word aligned, source is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 dest ptr; not modified, so that it may be returned + g1 src ptr; shift count + g2 len + g3 src ptr (word aligned) + g4 dest ptr (word aligned) + g5 -4 for Lbackwards move + Little endian + g6 lsw of double word for extraction of 4 bytes + g7 msw of double word for extraction of 4 bytes + Big endian + g6 msw of double word for extraction of 4 bytes + g7 lsw of double word for extraction of 4 bytes + g13 return address + g14 byte extracted. +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g6 +#define LSW g7 +#else +#define LSW g6 +#define MSW g7 +#endif + + .globl _memmove, _memcpy + .globl __memmove, __memcpy + .leafproc _memmove, __memmove + .leafproc _memcpy, __memcpy + .align 2 +_memcpy: +_memmove: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memcpy: +__memmove: + cmpibge.f 0,g2,Lquick_exit # Lexit if number of bytes to move is <= zero. + cmpo g0,g1 # if dest starts earlier than src ... + lda (g14),g13 # preserve return address + addo g2,g1,g5 # compute addr of byte after last byte of src + be.f Lexit_code # no move necessary if src and dest are same + concmpo g5,g0 # ... or if dest starts after end of src ... + notand g1,3,g3 # extract word addr of start of src + bg.f Lbackwards # ... then drop thru, else do move backwards + cmpo g3,g1 # check alignment of src + ld (g3),LSW # fetch word containing at least first byte + notand g0,3,g4 # extract word addr of start of dest + lda 4(g3),g3 # advance src word addr + bne.f Lcase_245 # branch if src is NOT word aligned + +Lcase_13: + cmpo g0,g4 # check alignment of dest + subo 4,g4,g4 # store is pre-incrementing; back up dest addr + be.t Lcase_1 # branch if dest word aligned + +Lcase_3: # src is word aligned; dest is not + addo 8,g4,g4 # move dest word ptr to first word boundary + lda (g0),g1 # copy dest byte ptr + mov LSW,MSW # make copy of first word of src + lda 32,g14 # initialize shift count to zero (mod 32) + +Lcase_25: +Lcase_3_cloop_at_start: # character copying loop for start of dest str + cmpdeci 0,g2,g2 # is max_bytes exhausted? + be.f Lexit_code # Lexit if max_bytes is exhausted +#if __i960_BIG_ENDIAN__ + rotate 8,MSW,MSW # move next byte into position for extraction + subo 8,g14,g14 # augment the shift counter + stob MSW,(g1) # store the byte in dest +#else + addo 8,g14,g14 # augment the shift counter + stob MSW,(g1) # store the byte in dest + shro 8,MSW,MSW # move next byte into position for extraction +#endif + lda 1(g1),g1 # post-increment dest ptr + cmpobne.t g1,g4,Lcase_3_cloop_at_start # branch if reached word boundary + + ld (g3),MSW # fetch msw of operand for double shift + +Lcase_4: +Lcase_3_wloop: + cmpi g2,4 # less than four bytes to move? + lda 4(g3),g3 # post-increment src word addr + eshro g14,g6,g1 # extract 4 bytes of src + bl.f Lcase_3_cloop # branch if < four bytes left to move + mov MSW,LSW # move msw to lsw + ld (g3),MSW # pre-fetch msw of operand for double shift + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + st g1,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop + +Lcase_1_wloop: # word copying loop + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + ld (g3),LSW # pre-fetch next word of src + addo 4,g3,g3 # post-increment src addr + st g1,(g4) # store word in dest string +Lcase_1: # src and dest are word aligned + cmpi g2,4 # check for fewer than four bytes to move + addo 4,g4,g4 # pre-increment dest addr + lda (LSW),g1 # keep a copy of the src word + bge.t Lcase_1_wloop # branch if at least four bytes to copy +Lcase_3_cloop: + cmpibe.f 0,g2,Lexit_code # Lexit if max_bytes is exhausted + +Lcase_1_cloop: +#if __i960_BIG_ENDIAN__ + rotate 8,g1,g1 # move next byte into position for extraction +#endif + subi 1,g2,g2 + stob g1,(g4) # store the byte in dest + cmpi 0,g2 + lda 1(g4),g4 # post-increment dest byte addr +#if ! __i960_BIG_ENDIAN__ + shro 8,g1,g1 # move next byte into position for extraction +#endif + bne.t Lcase_1_cloop # Lexit if max_bytes is exhausted + +Lexit_code: + mov 0,g14 # conform to register conventions + bx (g13) # g0 = addr of dest; g14 = 0 +Lrett: + ret + + +Lcase_245: + cmpo g0,g4 # check alignment of dest + ld (g3),MSW # pre-fetch second half + and 3,g1,g1 # compute shift count + shlo 3,g1,g14 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian +#endif + be.t Lcase_4 # branch if dest is word aligned + or g4,g1,g1 # is src earlier in word, later, or sync w/ dst + cmpo g0,g1 # < indicates first word of dest has more bytes + lda 4(g4),g4 # move dest word addr to first word boundary + eshro g14,g6,g5 # extract four bytes + lda (g0),g1 +#if __i960_BIG_ENDIAN__ + bge.f 1f +#else + bg.f 1f +#endif + mov MSW,LSW + lda 4(g3),g3 # move src word addr to second word boundary +1: + mov g5,MSW + b Lcase_25 + + +Lbackwards: + notand g5,3,MSW # extract word addr of byte after end of src + cmpo MSW,g5 # check alignment of end of src + subo 4,MSW,g3 # retreat src word addr + addo g2,g0,g1 # compute addr of byte after end of dest + notand g1,3,g4 # extract word addr of start of dest + bne.f Lcase.245 # branch if src is NOT word aligned + +Lcase.13: + cmpo g1,g4 # check alignment of dest + ld (g3),MSW # fetch last word of src + subo 4,g3,g3 # retreat src word addr + be.t Lcase.1 # branch if dest word aligned + +Lcase.3: # src is word aligned; dest is not + mov MSW,LSW # make copy of first word of src + lda 32,g14 # initialize shift count to zero (mod 32) + +Lcase.25: +Lcase.3_cloop_at_start: # character copying loop for start of dest str + cmpdeci 0,g2,g2 # is max.bytes exhausted? + be.f Lexit_code # Lexit if max_bytes is exhausted +#if ! __i960_BIG_ENDIAN__ + rotate 8,LSW,LSW # move next byte into position for storing +#endif + lda -1(g1),g1 # pre-decrement dest ptr + cmpo g1,g4 # have we reached word boundary in dest yet? + stob LSW,(g1) # store the byte in dest +#if __i960_BIG_ENDIAN__ + shro 8,LSW,LSW # move next byte into position for storing + addo 8,g14,g14 # augment the shift counter +#else + subo 8,g14,g14 # augment the shift counter +#endif + bne.t Lcase.3_cloop_at_start # branch if reached word boundary? + + ld (g3),LSW # fetch lsw of operand for double shift + +#if __i960_BIG_ENDIAN__ + cmpobne 0,g14,Lcase.3_wloop +Lcase.3_wloop2: + cmpi g2,4 # less than four bytes to move? + lda -4(g3),g3 # post-decrement src word addr + mov MSW,g1 # extract 4 bytes of src + lda (LSW),MSW # move lsw to msw + subo 4,g4,g4 # pre-decrement dest ptr + bl.f Lcase.3_cloop # branch if < four bytes left to move + ld (g3),LSW # pre-fetch lsw of operand for double shift + subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved + st g1,(g4) # store 4 bytes to dest + b Lcase.3_wloop2 +#endif + +Lcase.4: +Lcase.3_wloop: + cmpi g2,4 # less than four bytes to move? + lda -4(g3),g3 # post-decrement src word addr + eshro g14,g6,g1 # extract 4 bytes of src + lda (LSW),MSW # move lsw to msw + subo 4,g4,g4 # pre-decrement dest ptr + bl.f Lcase.3_cloop # branch if < four bytes left to move + ld (g3),LSW # pre-fetch lsw of operand for double shift + subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved + st g1,(g4) # store 4 bytes to dest + b Lcase.3_wloop + +Lcase.1_wloop: # word copying loop + subi 4,g2,g2 # decrease max.byte count by the 4 bytes moved + ld (g3),MSW # pre-fetch next word of src + subo 4,g3,g3 # post-decrement src addr + st g1,(g4) # store word in dest string +Lcase.1: # src and dest are word aligned + cmpi g2,4 # check for fewer than four bytes to move + subo 4,g4,g4 # pre-decrement dest addr + lda (MSW),g1 # keep a copy of the src word + bge.t Lcase.1_wloop # branch if at least four bytes to copy +Lcase.3_cloop: + cmpibe.f 0,g2,Lexit_code # Lexit if max_bytes is exhausted +#if ! __i960_BIG_ENDIAN__ + rotate 8,g1,g1 # move next byte into position for storing +#endif + lda 4(g4),g4 # pre-decremented dest addr 4 too much + +Lcase.1_cloop: + subi 1,g4,g4 # pre-decrement dest byte addr + cmpi g4,g0 # has dest ptr reached beginning of dest? + stob g1,(g4) # store the byte in dest +#if __i960_BIG_ENDIAN__ + shro 8,g1,g1 # move next byte into position for storing +#else + rotate 8,g1,g1 # move next byte into position for storing +#endif + bne.t Lcase.1_cloop # Lexit if move is completed + b Lexit_code + +Lcase.245: + cmpo g1,g4 # check alignment of dest + ld (MSW),MSW # pre-fetch word with at least last byte + and 3,g5,g5 # compute shift count + ld (g3),LSW # pre-fetch second to last word + shlo 3,g5,g14 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian +#endif + be.t Lcase.4 # branch if dest is word aligned + or g4,g5,g5 # is src earlier in word, later, or sync w/ dst + cmpo g1,g5 # < indicates last word of dest has less bytes + eshro g14,g6,g5 # extract four bytes + bl.t 1f + mov LSW,MSW +#if ! __i960_BIG_ENDIAN__ + be.t 1f +#endif + subo 4,g3,g3 # move src word addr to second word boundary +1: + mov g5,LSW + b Lcase.25 + + +Lquick_exit: + mov g14,g13 + b Lexit_code + +/* end of memmove */ diff --git a/newlib/libc/machine/i960/memset.S b/newlib/libc/machine/i960/memset.S new file mode 100644 index 000000000..9121d4524 --- /dev/null +++ b/newlib/libc/machine/i960/memset.S @@ -0,0 +1,121 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "memset.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ + +/* + procedure memset (optimized assembler version: 80960K series, 80960CA) + + dest_addr = memset (dest_addr, char, len) + + Fill len bytes pointed to by dest_addr with the value of char. + Return the original address of dest_addr. + + This program avoids performing unaligned accesses. It stores + from zero to seven bytes, and then stores aligned longwords, + and then stores from zero to seven bytes, as necessary to + store len bytes starting at dest_addr. + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. +*/ + + .globl _memset + .globl __memset + .leafproc _memset, __memset + .align 2 +_memset: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__memset: + cmpo 7,g2 # are there fewer than seven characters to move? + lda (g14),g13 # save return address + notand g0,7,g3 # test for non-aligned dest_ptr + lda 0,g14 # conform to register conventions + shlo 24,g1,g4 # prepare word of char + lda (g0),g6 # preserve dest_ptr for return + shro 8,g4,g5 + bge.f Lcloop_setup + cmpo g3,g0 # is dest longword aligned + lda 7(g3),g3 # bump dest_ptr to next longword boundary + or g4,g5,g4 + be.t Lwloop_setup + +Lbgn_cloop: + cmpo g6,g3 # Have we reached longword boundary? + stob g1,(g6) # store one byte of char + subo 1,g2,g2 # decrement len + lda 1(g6),g6 # increment dest_ptr + bne.t Lbgn_cloop # loop if more bytes to store before longword + + cmpobge.f 7,g2,Lcloop + +Lwloop_setup: + shro 16,g4,g5 + or g4,g5,g4 + mov g4,g5 # now have a longword of char + +Lwloop: + cmpo 15,g2 # Do we have to store more longwords? + stl g4,(g6) # Store longword of char + subo 8,g2,g2 # Decrement len + lda 8(g6),g6 # Increment dest_ptr + bl.t Lwloop # loop if more longwords to store + +Lcloop_setup: + cmpobge.t 0,g2,Lexit + +Lcloop: + cmpo 1,g2 # Is len exhausted? + stob g1,(g6) # Store byte + subo 1,g2,g2 # Decrement len + lda 1(g6),g6 # Increment dest_ptr + bne.t Lcloop # loop if more bytes to store + +Lexit: + bx (g13) +Lrett: + ret + +/* end of memset */ diff --git a/newlib/libc/machine/i960/setjmp.S b/newlib/libc/machine/i960/setjmp.S new file mode 100644 index 000000000..804df0e0f --- /dev/null +++ b/newlib/libc/machine/i960/setjmp.S @@ -0,0 +1,96 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + +/******************************************************************************/ +/* */ +/* setjmp(), longjmp() */ +/* */ +/******************************************************************************/ + .file "setjmp.as" + .text + /* .link_pix */ + + .align 4 + .globl _setjmp +_setjmp: + flushreg + andnot 0xf,pfp,g1 /* get pfp, mask out return status bits */ + st g1, 0x58(g0) /* save fp of caller*/ + /* save globals not killed by the calling convention */ + stq g8, 0x40(g0) /* save g8-g11*/ + st g12, 0x50(g0) /* save g12*/ + st g14, 0x54(g0) /* save g14*/ + /* save previous frame local registers */ + ldq (g1), g4 /* get previous frame pfp, sp, rip, r3 */ + stq g4, (g0) /* save pfp, sp, rip, r3 */ + ldq 0x10(g1), g4 /* get previous frame r4-r7 */ + stq g4, 0x10(g0) /* save r4-r7 */ + ldq 0x20(g1), g4 /* get previous frame r8-r11 */ + stq g4, 0x20(g0) /* save r8-r11 */ + ldq 0x30(g1), g4 /* get previous frame r12-r15 */ + stq g4, 0x30(g0) /* save r12-r15 */ + + mov 0, g0 /* return 0 */ + ret + + /* + * fake a return to the place that called the corresponding _setjmp + */ + .align 4 + .globl _longjmp +_longjmp: + call 0f /* ensure there is at least one stack frame */ + +0: + flushreg /* do this before swapping stack */ + ld 0x58(g0), pfp /* get fp of caller of setjmp */ + /* restore local registers + * the following code modifies the frame of the function which originally + * called setjmp. + */ + ldq (g0), g4 /* get pfp, sp, rip, r3 */ + stq g4, (pfp) /* restore pfp, sp, rip, r3 */ + ldq 0x10(g0), g4 /* get r4-r7 */ + stq g4, 0x10(pfp) /* restore r4-r7 */ + ldq 0x20(g0), g4 /* get r8-r11 */ + stq g4, 0x20(pfp) /* restore r8-r11 */ + ldq 0x30(g0), g4 /* get r12-r15 */ + stq g4, 0x30(pfp) /* restore r12-r15 */ + /* restore global registers */ + ldq 0x40(g0), g8 /* get old g8-g11 values */ + ld 0x50(g0), g12 /* get old g12 value */ + ld 0x54(g0), g14 /* get old g14 value */ + + mov g1, g0 /* get return value */ + cmpo g0, 0 /* make sure it is not zero */ + bne 0f + mov 1, g0 /* return 1 by default */ +0: + ret /* return to caller of _setjmp */ diff --git a/newlib/libc/machine/i960/strchr.S b/newlib/libc/machine/i960/strchr.S new file mode 100644 index 000000000..bc50c2c41 --- /dev/null +++ b/newlib/libc/machine/i960/strchr.S @@ -0,0 +1,123 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strchr.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strchr (optimized assembler version for the 80960K series) + + src_addr = strchr (src_addr, char) + + return a pointer to the first byte that contains the indicated + byte in the source string. Return null if the byte is not found. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last two words of the program's + allocated memory space. This is so because strchr fetches ahead. + Disallowing the fetch ahead would impose a severe performance penalty. + + Strategy: + + Fetch the source string by words and scanbyte the words for the + char until either a word with the byte is found or the null byte is + encountered. In the former case, move through the word to find the + matching byte and return its memory address. In the latter case, + return zero (null). + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble that would be necessary to assure alignment. This + is supported by the intuition that most source arrays (even more + true of most big source arrays) will be word aligned to begin with. +*/ + + .globl _strchr + .globl __strchr + .leafproc _strchr, __strchr + .align 2 +_strchr: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strchr: + + ld (g0),g4 # fetch first word + lda 0xff,g7 # byte extraction mask + and g1,g7,g1 # make char an 8-bit ordinal + shlo 8,g1,g2 # broadcast the char to four bytes + or g1,g2,g2 + shlo 16,g2,g5 + or g2,g5,g3 + mov g14,g13 # preserve return address + addo 4,g0,g0 # post-increment src pointer + mov 0,g14 # conform to register linkage standard + +Lsearch_for_word_with_char_or_null: + mov g4,g5 # copy word + scanbyte g3,g5 # check for byte with char + ld (g0),g4 # fetch next word of src + bo Lsearch_for_char # branch if char found + scanbyte 0,g5 # check for null byte + addo 4,g0,g0 # post-increment src pointer + bno Lsearch_for_word_with_char_or_null # branch if not null + +Lnot_found: + mov 0,g0 # char not found. Return null +Lexit_code: + bx (g13) # g0 = addr of char in src (or null); g14 = 0 +Lrett: + ret + +Lsearch_for_char: + subo 5,g0,g0 # back up the byte pointer +Lsearch_for_char.a: + and g5,g7,g6 # extract byte + cmpo g1,g6 # is it char? + addo 1,g0,g0 # bump src byte ptr + shro 8,g5,g5 # shift word to position next byte + be Lexit_code + cmpobne 0,g6,Lsearch_for_char.a # quit if null comes before char + b Lnot_found + +/* end of strchr */ diff --git a/newlib/libc/machine/i960/strchr_ca.S b/newlib/libc/machine/i960/strchr_ca.S new file mode 100644 index 000000000..f52eae217 --- /dev/null +++ b/newlib/libc/machine/i960/strchr_ca.S @@ -0,0 +1,152 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strch_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strchr (optimized assembler version for the CA) + + src_addr = strchr (src_addr, char) + + return a pointer to the first byte that contains the indicated + byte in the source string. Return null if the byte is not found. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last two words of the program's + allocated memory space. This is so because, in several cases, strchr + will fetch ahead. Disallowing the fetch ahead would impose a severe + performance penalty. + + This program handles two cases: + + 1) the argument starts on a word boundary + 2) the argument doesn't start on a word boundary + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 src ptr; upon return it is a pointer to the matching byte, or null + g1 char to seek + g2 mask to avoid unimportant bytes in first word + g3 char to seek, broadcast to all four bytes + g4 word of the source string + g5 copy of the word + g6 extracted character + g7 byte extraction mask + g13 return address + g14 +*/ + + .globl _strchr + .globl __strchr + .leafproc _strchr, __strchr + .align 2 +_strchr: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strchr: + + lda 0xff,g7 # byte extraction mask + and g1,g7,g1 # make char an 8-bit ordinal + shlo 8,g1,g2 # broadcast the char to four bytes + or g1,g2,g2 + shlo 16,g2,g4 + cmpo g1,g7 # is char being sought 0xff? + or g4,g2,g3 + lda (g14),g13 # preserve return address + notand g0,3,g5 # extract word addr of start of src + lda 0,g14 # conform to register linkage standard + and g0,3,g6 # extract byte offset of src + ld (g5),g4 # fetch word containing at least first byte + shlo 3,g6,g6 # get shift count for making mask for first word + lda 4(g5),g0 # post-increment src word pointer + subi 1,0,g5 # mask initially all ones +#if __i960_BIG_ENDIAN__ + shro g6,g5,g5 # get mask for bytes needed from first word +#else + shlo g6,g5,g5 # get mask for bytes needed from first word +#endif + notor g4,g5,g4 # set unneeded bytes to all ones + be.f Lsearch_for_0xff # branch if seeking 0xff + +Lsearch_for_word_with_char_or_null: + scanbyte g3,g4 # check for byte with char + lda (g4),g5 # copy word + ld (g0),g4 # fetch next word of src + bo.f Lsearch_for_char # branch if null found + scanbyte 0,g5 # check for null byte + lda 4(g0),g0 # post-increment src word pointer + bno.t Lsearch_for_word_with_char_or_null # branch if not null + +Lnot_found: + mov 0,g0 # char not found. Return null +Lexit_code: + bx (g13) # g0 = addr of char in src (or null); g14 = 0 +Lrett: + ret + +Lsearch_for_char: + subo 5,g0,g0 # back up the byte pointer +Lsearch_for_char.a: +#if __i960_BIG_ENDIAN__ + rotate 8,g5,g5 # shift word to position next byte +#endif + and g5,g7,g6 # extract byte + cmpo g1,g6 # is it char? + lda 1(g0),g0 # bump src byte ptr +#if ! __i960_BIG_ENDIAN__ + shro 8,g5,g5 # shift word to position next byte +#endif + be.f Lexit_code + cmpobne.t 0,g6,Lsearch_for_char.a # quit if null comes before char + b Lnot_found + +Lsearch_for_0xff: + lda 0xf0f0f0f0,g2 # make first comparison mask for char=-1 case. + or g5,g2,g2 + and g4,g2,g4 # make unimportant bytes of first word 0x0f + b Lsearch_for_word_with_char_or_null + +/* end of strchr */ + diff --git a/newlib/libc/machine/i960/strcmp.S b/newlib/libc/machine/i960/strcmp.S new file mode 100644 index 000000000..c0cd4bd6f --- /dev/null +++ b/newlib/libc/machine/i960/strcmp.S @@ -0,0 +1,118 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strcmp.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure strcmp (optimized assembler version for the 80960K Series) + + result = strcmp (src1_addr, src2_addr) + + compare the null terminated string pointed to by src1_addr to + the string pointed to by src2_addr. Return 0 iff the strings + are equal, -1 if src1_addr is lexicographically less than src2_addr, + and 1 if it is lexicographically greater. + + Undefined behavior will occur if the end of either source string + (i.e. the terminating null byte) is in the last two words of the + program's allocated memory space. This is so because strcmp fetches + ahead. Disallowing the fetch ahead would impose a severe performance + penalty. + + Strategy: + + Fetch the source strings by words and compare the words until either + differing words are found or the null byte is encountered. In either + case, move through the word until either the differing byte if found, + in which case return -1 or 1 appropriately; or the null byte is + encountered, in which case, return zero (equality). + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. This is supported by the intuition that many source + strings will be word aligned to begin with. +*/ + + .globl _strcmp + .globl __strcmp + .leafproc _strcmp,__strcmp + .align 2 + +_strcmp: +#ifndef __PIC + lda .Lrett,g14 +#else + lda .Lrett-(.+8)(ip),g14 +#endif +__strcmp: + ld (g0), g5 # fetch first word of source_1 + mov g14,g7 # preserve return address + ldconst 0,g14 # conform to register conventions + ldconst 0xff,g4 # byte extraction mask +.Lwloop: + addo 4,g0,g0 # post-increment source_1 byte ptr + ld (g1), g3 # fetch word of source_2 + scanbyte 0,g5 # does word have a null byte? + mov g5,g2 # save a copy of the source_1 word + be .Lcloop # branch if null byte encountered + cmpo g2,g3 # are the source words the same? + addo 4,g1,g1 # post-increment source_2 byte ptr + ld (g0), g5 # fetch ahead next word of source_1 + be .Lwloop # fall thru if words are unequal + +.Lcloop: and g4,g2,g5 # extract and compare individual bytes + and g4,g3,g6 + cmpobne g5,g6,.diff # if they differ, go return 1 or -1 + cmpo 0,g6 # they are the same. Are they null? + shlo 8,g4,g4 # position mask for next extraction + bne .Lcloop # loop if null not encountered + + mov 0,g0 # return equality + bx (g7) +.Lrett: + ret +.diff: bl .neg + mov 1,g0 + bx (g7) +.neg: subi 1,0,g0 +.Lexit: + bx (g7) diff --git a/newlib/libc/machine/i960/strcmp_ca.S b/newlib/libc/machine/i960/strcmp_ca.S new file mode 100644 index 000000000..0298ffa0d --- /dev/null +++ b/newlib/libc/machine/i960/strcmp_ca.S @@ -0,0 +1,246 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strcm_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strcmp (optimized assembler version for the CA) + + result = strcmp (src1_addr, src2_addr) + + compare the null terminated string pointed to by src1_addr to + the string space pointed to by src2_addr. Return 0 iff the strings + are equal, -1 if src1_addr is lexicly less than src2_addr, and 1 + if it is lexicly greater. + + Undefined behavior will occur if the end of either source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, strcmp + will fetch ahead one word. Disallowing the fetch ahead would impose + a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source1 is word aligned, source2 is not + 4) source2 is word aligned, source1 is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g14 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers are sufficient to implement the routine. + The registers are used as follows: + + g0 original src1 ptr; return result + g1 src2 ptr; 0xff -- byte extraction mask + g2 src1 word ptr + g3 src2 word ptr + Little endian: + g4 lsw of src1 + g5 msw of src1 + g6 src2 word + g7 extracted src1 + Big endian: + g4 msw of src1 + g5 lsw of src1 + g6 extracted src1 + g7 src2 word + g13 return address + g14 shift count +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g4 +#define LSW g5 +#define SRC1 g6 +#define SRC2 g7 +#else +#define LSW g4 +#define MSW g5 +#define SRC2 g6 +#define SRC1 g7 +#endif + + .globl _strcmp + .globl __strcmp + .leafproc _strcmp, __strcmp + .align 2 +_strcmp: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif + +__strcmp: +Lrestart: + notand g0,3,g2 # extract word addr of start of src1 + lda (g14),g13 # preserve return address +#if __i960_BIG_ENDIAN__ + cmpo g0,g2 # check alignment of src1 +#endif + ld (g2),LSW # fetch word with at least first byte of src1 + notand g1,3,g3 # extract word addr of start of src2 + ld 4(g2),MSW # fetch second word of src1 +#if __i960_BIG_ENDIAN__ + bne Lsrc1_unaligned # branch if src1 is unaligned + cmpo g3,g1 # check alignment of src2 + ld (g3),SRC2 # fetch word with at least first byte of src2 + mov LSW,SRC1 # extract word of src1 + lda 8(g2),g2 # advance src1 word addr + bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned + + /* src2 is word aligned */ + +Lwloop2: # word comparing loop + cmpo SRC2,SRC1 # compare src1 and src2 words + lda 0xff000000,g1 # byte extraction mask + mov MSW,LSW # move msw of src1 to lsw + ld (g2),MSW # pre-fetch next msw of src1 + addo 4,g2,g2 # post-increment src1 addr + lda 4(g3),g3 # pre-increment src2 addr + bne.f Lcloop # branch if src1 and src2 unequal + scanbyte 0,SRC1 # check for null byte in src1 word + ld (g3),SRC2 # pre-fetch next word of src2 + mov LSW,SRC1 # extract word of src1 + lda 0,g0 # prepare to return zero, indicating equality + bno.t Lwloop2 # branch if null byte not encountered + + /* words were equal and contained null byte */ + + mov 0,g14 # conform to register conventions + bx (g13) # return + + +Lsrc1_unaligned: +#endif + cmpo g3,g1 # check alignment of src2 + ld (g3),SRC2 # fetch word with at least first byte of src2 + shlo 3,g0,g14 # compute shift count for src1 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # 32 - shift count for big endian. +#endif + eshro g14,g4,SRC1 # extract word of src1 + lda 8(g2),g2 # advance src1 word addr + bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned + + /* at least src2 is word aligned */ + +Lwloop: # word comparing loop + cmpo SRC2,SRC1 # compare src1 and src2 words +#if __i960_BIG_ENDIAN__ + lda 0xff000000,g1 # byte extraction mask +#else + lda 0xff,g1 # byte extraction mask +#endif + mov MSW,LSW # move msw of src1 to lsw + ld (g2),MSW # pre-fetch next msw of src1 + addo 4,g2,g2 # post-increment src1 addr + lda 4(g3),g3 # pre-increment src2 addr + bne.f Lcloop # branch if src1 and src2 unequal + scanbyte 0,SRC1 # check for null byte in src1 word + ld (g3),SRC2 # pre-fetch next word of src2 + eshro g14,g4,SRC1 # extract word of src1 + lda 0,g0 # prepare to return zero, indicating equality + bno.t Lwloop # branch if null byte not encountered + + /* words were equal and contained null byte */ + + mov 0,g14 # conform to register conventions + bx (g13) # return + +Lcloop_setup: # setup for coming from Lsrc2_unaligned + mov LSW,SRC1 # restore extracted src1 word +#if __i960_BIG_ENDIAN__ + lda 0xff000000,g1 # byte extraction mask +#else + lda 0xff,g1 # byte extraction mask +#endif + +Lcloop: # character comparing loop + and SRC2,g1,g3 # extract next char of src2 + and SRC1,g1,g0 # extract next char of src1 + cmpobne.f g0,g3,.diff # check for equality + cmpo 0,g0 # check for null byte +#if __i960_BIG_ENDIAN__ + shro 8,g1,g1 # shift mask for next byte +#else + shlo 8,g1,g1 # shift mask for next byte +#endif + bne.t Lcloop # branch if null not reached + + /* words are equal up thru null byte */ + + mov 0,g14 + bx (g13) # g0 = 0 (src1 == src2) +Lrett: + ret + +.diff: + mov 0,g14 + bl Lless_than_exit +Lgreater_than_exit: + mov 1,g0 + bx (g13) # g0 = 1 (src1 > src2) +Lless_than_exit: + subi 1,0,g0 + bx (g13) # g0 = -1 (src1 < src2) + +Lsrc2_unaligned: + mov SRC1,LSW # retain src1 extracted word + ld 4(g3),SRC1 # fetch second word of src2 + shlo 3,g1,MSW # compute shift count for src2 +#if __i960_BIG_ENDIAN__ + subo MSW,0,MSW # 32 - shift count for big endian. +#endif + eshro MSW,g6,SRC2 # extract word of src2 + cmpo LSW,SRC2 # compare src1 and src2 words + notor g1,3,MSW # first step in computing new src1 ptr + lda 4(g3),g1 # set new src2 ptr + bne.f Lcloop_setup # first four bytes differ + scanbyte 0,LSW # check for null byte + lda (g13),g14 # prepare return pointer for Lrestart + subo MSW,g0,g0 # second (final) step in computing new src1 ptr + bno.t Lrestart # if null byte not encountered, continue + /* with both string fetches shifted such that */ + /* src2 is now word aligned. */ + mov 0,g14 # conform to register conventions. + lda 0,g0 # return indicator of equality. + bx (g13) diff --git a/newlib/libc/machine/i960/strcpy.S b/newlib/libc/machine/i960/strcpy.S new file mode 100644 index 000000000..ed8bb7234 --- /dev/null +++ b/newlib/libc/machine/i960/strcpy.S @@ -0,0 +1,177 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strcpy.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure strcpy (optimized assembler version for the 80960K series) + procedure strcat (optimized assembler version for the 80960K series) + + dest_addr = strcpy (dest_addr, src_addr) + + copy the null terminated string pointed to by src_addr to + the string space pointed to by dest_addr. Return the original + dest_addr. + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last two words of the + program's allocated memory space. This is so because strcpy fetches + ahead. Disallowing the fetch ahead would impose a severe performance + penalty. + + Strategy: + + Fetch the source string and store the destination string by words + until the null byte is encountered. When the word with the null + byte is reached, store it by bytes up through the null byte only. + + Tactics: + + 1) Do NOT try to fetch and store the words in a word aligned manner + because, in my judgement, the performance degradation experienced due + to non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. This is supported by the intuition that most source and + destination strings will be word aligned to begin with. + + + procedure strcat + + dest_addr = strcat (dest_addr, src_addr) + + Appends the string pointed to by src_addr to the string pointed + to by dest_addr. The first character of the source string is + copied to the location initially occupied by the trailing null + byte of the destination string. Thereafter, characters are copied + from the source to the destination up thru the null byte that + trails the source string. + + See the strcpy routine, above, for its caveats, as they apply here too. + + Strategy: + + Skip to the end (null byte) of the destination string, and then drop + into the strcpy code. + + Tactics: + + Skipping to the null byte is Ldone by reading the destination string + in long-words and scanbyte'ing them, then examining the bytes of the + word that contains the null byte, until the address of the null byte is + known. Then we drop into the strcpy routine. It is probable (approx. + three out of four times) that the destination string as strcpy sees + it will NOT be word aligned (i.e. that the null byte won't be the + last byte of a word). But it is not worth the complication to that + routine to force word aligned memory accesses to be gaurenteed. +*/ + .globl _strcpy, _strcat + .globl __strcpy, __strcat + .leafproc _strcpy,__strcpy + .leafproc _strcat,__strcat + .align 2 +_strcat: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strcat: + mov g14,g13 # preserve return address + ldl (g0),g4 # fetch first two words + addo 8,g0,g2 # post-increment src word pointer + lda 0xff,g3 # byte extraction mask + +Lsearch_for_word_with_null_byte: + scanbyte 0,g4 # check for null byte + mov g5,g7 # copy second word + bo.f Lsearch_for_null # branch if null found + scanbyte 0,g7 # check for null byte + ldl (g2),g4 # fetch next pair of word of src + addo 8,g2,g2 # post-increment src word pointer + bno Lsearch_for_word_with_null_byte # branch if null not found yet + + subo 4,g2,g2 # back up the byte pointer + mov g7,g4 # move word with null to search word +Lsearch_for_null: + subo 9,g2,g5 # back up the byte pointer +Lsearch_for_null.a: + and g4,g3,g6 # extract byte + cmpo 0,g6 # is it null? + addo 1,g5,g5 # bump src byte ptr + shro 8,g4,g4 # shift word to position next byte + bne Lsearch_for_null.a + b Lend_of_dest_found + +_strcpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strcpy: + mov g0, g5 +Lend_of_dest_found: + ld (g1), g2 # fetch first word of source + mov g14,g6 # preserve return address + lda 0xff, g3 # byte extraction mask = 0xff; +Lwloop: # word copying loop + addo 4, g1, g1 # post-increment source ptr + scanbyte 0, g2 # does source word contain null byte? + mov g2, g4 # save a copy of the source word + be Lcloop # branch if null present + ld (g1), g2 # pre-fetch next word of source + st g4, (g5) # store current word + addo 4, g5, g5 # post-increment dest ptr + b Lwloop + +Lcloop: # character copying loop + and g3, g4, g14 # extract next char + shro 8, g4, g4 # position word for next byte extraction + cmpo 0, g14 # is it null? + stob g14, (g5) # store the byte + addo 1, g5, g5 # post-increment dest ptr + bne Lcloop # quit if null encountered + + bx (g6) # g0 = dest string address; g14 = 0 +Lrett: + ret diff --git a/newlib/libc/machine/i960/strcpy_ca.S b/newlib/libc/machine/i960/strcpy_ca.S new file mode 100644 index 000000000..dbb944455 --- /dev/null +++ b/newlib/libc/machine/i960/strcpy_ca.S @@ -0,0 +1,284 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strcp_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strcpy (optimized assembler version for the CA) + + dest_addr = strcpy (dest_addr, src_addr) + + copy the null terminated string pointed to by src_addr to + the string space pointed to by dest_addr. Return the original + dest_addr. + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, strcpy + will fetch ahead one word. Disallowing the fetch ahead would impose + a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source is word aligned, destination is not + 4) destination is word aligned, source is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 original dest ptr; not modified, so that it may be returned. + g1 src ptr; shift count + g2 dest ptr; 4 bytes of src + g3 src ptr (word aligned) + g4 dest ptr (word aligned) + g5 0xff -- byte extraction mask + g6 lsw of double word for extraction of 4 bytes (little endian) + msw of double word for extraction of 4 bytes (big endian) + g7 msw of double word for extraction of 4 bytes (little endian) + lsw of double word for extraction of 4 bytes (big endian) + g13 return address + g14 byte extracted. When reaches null byte, which is zero, we will + be in conformance with register conventions, and can return to + the caller with a clear conscience. + + procedure strcat + + dest_addr = strcat (dest_addr, src_addr) + + Appends the string pointed to by src_addr to the string pointed + to by dest_addr. The first character of the source string is + copied to the location initially occupied by the trailing null + byte of the destination string. Thereafter, characters are copied + from the source to the destination up thru the null byte that + trails the source string. +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g6 +#define LSW g7 +#else +#define LSW g6 +#define MSW g7 +#endif + + .globl _strcpy, _strcat + .globl __strcpy, __strcat + .leafproc _strcpy, __strcpy + .leafproc _strcat, __strcat + .align 2 +_strcat: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strcat: + notand g0,3,g4 # extract word addr of start of dest + lda (g14),g13 # preserve return address + and g0,3,LSW # extract byte offset of dest + ld (g4),MSW # fetch word containing at least first byte + shlo 3,LSW,g14 # get shift count for making mask for first word + subi 1,0,LSW # mask initially all ones +#if __i960_BIG_ENDIAN__ + shro g14,LSW,LSW # get mask for bytes needed from first word + lda 0xff000000,g5 # byte extraction mask +#else + shlo g14,LSW,LSW # get mask for bytes needed from first word + lda 0xff,g5 # byte extraction mask +#endif + notor MSW,LSW,MSW # set unneeded bytes to all ones +Lsearch_for_word_with_null: + scanbyte 0,MSW # check for null byte + lda 4(g4),g4 # post-increment dest word pointer + mov MSW,LSW # keep a copy of current word + ld (g4),MSW # fetch next word of dest + bno.t Lsearch_for_word_with_null # branch if null not found yet + and g5,LSW,g14 # extract byte + cmpo 0,g14 # branch if null is first byte of word + subo 4,g4,g4 # move dest word ptr back to word with null + notand g1,3,g3 # extract word addr of start of src + lda (g4),g2 # set dest byte ptr to 1st byte of word w/ null + be.f Lcase_14 +Lsearch_for_null: +#if __i960_BIG_ENDIAN__ + shro 8,g5,g5 # move mask down to next byte +#else + shlo 8,g5,g5 # move mask up to next byte +#endif + lda 1(g2),g2 # move dest byte ptr to next byte + and g5,LSW,g14 # extract byte + cmpobne.t 0,g14,Lsearch_for_null # branch if null is not yet found + lda 0xff,g5 # byte extraction mask + b Lcase_235.a + + +_strcpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strcpy: + notand g0,3,g4 # extract word addr of start of dest + lda (g14),g13 # preserve return address + cmpo g0,g4 # check alignment of dest + lda 0xff,g5 # load mask for byte extraction + notand g1,3,g3 # extract word addr of start of src + bne.f Lcase_235 # branch if dest is NOT word aligned + +Lcase_14: + cmpo g3,g1 # check alignment of src + ld (g3),LSW # fetch word containing at least first byte + shlo 3,g1,g1 # compute shift count + lda 4(g3),g3 # advance src word addr +#if __i960_BIG_ENDIAN__ + lda 0xff,g5 # byte extraction mask +#endif + bne.f Lcase_4 # branch if src is NOT word aligned + +Lcase_1: # src and dest are word aligned + subo 4,g4,g4 # store is pre-incrementing; back up dest addr +Lcase_1_wloop: # word copying loop + scanbyte 0,LSW # check for null byte in src word + lda (LSW),g2 # keep a copy of the src word + addo 4,g4,g4 # pre-increment dest addr + ld (g3),LSW # pre-fetch next word of src + addo 4,g3,g3 # post-increment src addr + bo.f Lcase_1_cloop # branch if word contains null byte + st g2,(g4) # store word in dest string + b Lcase_1_wloop + +Lcase_3_cloop: +Lcase_1_cloop: # character copying loop +#if __i960_BIG_ENDIAN__ + rotate 8,g2,g2 # move next byte into position for extraction + and g5,g2,g14 # extract next char +#else + and g5,g2,g14 # extract next char + shro 8,g2,g2 # move next byte into position for extraction +#endif + cmpo 0,g14 # check for null byte + stob g14,(g4) # store the byte in dest + lda 1(g4),g4 # post-increment dest byte addr + bne.t Lcase_1_cloop # branch if null not reached + +Lexit_code: + bx (g13) # g0 = addr of dest; g14 = 0 +Lrett: + ret + +Lcase_3: # src is word aligned; dest is not + addo 4,g4,g4 # move dest word ptr to first word boundary + mov LSW,MSW # make copy of first word of src + lda 0,g1 # initialize shift count to zero + +Lcase_25: +Lcase_3_cloop_at_start: # character copying loop for start of dest str +#if __i960_BIG_ENDIAN__ + rotate 8,MSW,MSW # move next byte into position for extraction + and g5,MSW,g14 # extract next char +#else + and g5,MSW,g14 # extract next char + shro 8,MSW,MSW # move next byte into position for extraction +#endif + cmpo 0,g14 # check for null byte + stob g14,(g2) # store the byte in dest + lda 1(g2),g2 # post-increment dest ptr + be.f Lexit_code # branch if null byte reached + cmpo g2,g4 # have we reached word boundary in dest? + lda 8(g1),g1 # augment the shift counter + bne.t Lcase_3_cloop_at_start + +Lcase_4: + ld (g3),MSW # fetch msw of operand for double shift +#if __i960_BIG_ENDIAN__ + subo g1,0,g1 # Adjust shift count for big endian. +#endif + +Lcase_3_wloop: + eshro g1,g6,g2 # extract 4 bytes of src + lda 4(g3),g3 # post-increment src word addr + scanbyte 0,g2 # check for null byte + lda (MSW),LSW # move msw to lsw + ld (g3),MSW # pre-fetch msw of operand for double shift + bo.f Lcase_3_cloop # branch if word contains null byte + st g2,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop + +Lcase_235: + lda (g0),g2 # copy dest ptr +Lcase_235.a: + cmpo g3,g1 # check alignment of src + ld (g3),LSW # fetch word containing at least first byte + and 3,g1,g14 # compute shift count + lda 4(g3),g3 # advance src word addr + shlo 3,g14,g1 + be.t Lcase_3 # branch if dest is word aligned + or g4,g14,g14 # is src earlier in word, later, or sync w/ dst + ld (g3),MSW # pre-fetch second half + cmpo g2,g14 # < indicates first word of dest has more bytes + lda 4(g4),g4 # move dest word addr to first word boundary + /* than first word of source. */ +#if __i960_BIG_ENDIAN__ + subo g1,0,g14 # Adjust shift count for big endian. + eshro g14,g6,g14 # extract four bytes + bge.f 1f +#else + eshro g1,g6,g14 # extract four bytes + bg.f 1f +#endif + mov MSW,LSW + lda 4(g3),g3 # move src word addr to second word boundary +1: + mov g14,MSW + b Lcase_25 + +/* end of strcpy */ + diff --git a/newlib/libc/machine/i960/strcspn.S b/newlib/libc/machine/i960/strcspn.S new file mode 100644 index 000000000..cd7b2e694 --- /dev/null +++ b/newlib/libc/machine/i960/strcspn.S @@ -0,0 +1,94 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strcspn.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ + +/* + procedure strcspn (optimized assembler version: 80960K series, 80960CA) + + len = strcspn (string, charset) + + Return the number of characters in the maximum leading segment + of string which consists solely of characters NOT from charset. + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. +*/ + + .globl _strcspn + .globl __strcspn + .leafproc _strcspn, __strcspn + .align 2 + +_strcspn: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strcspn: + mov g14,g13 # save return address + lda (g0),g3 # copy string pointer + mov 0,g14 # conform to register conventions + +Lnext_char: + ldob (g3),g7 # fetch next character of string + addo 1,g1,g2 # g2 will be the charset ptr + ldob (g1),g6 # fetch first character of charset + cmpobe.f 0,g7,Lexit # quit if at end of string +Lscan_set: + cmpo g6,g7 # is charset char same as string char? + ldob (g2),g5 # fetch next charset char + addo 1,g2,g2 # bump charset ptr + be.f Lexit + cmpo g6,0 # is charset exhausted? + lda (g5),g6 + bne.t Lscan_set # check next character of charset + addo 1,g3,g3 # check next character of string + b Lnext_char + +Lexit: + subo g0,g3,g0 # compute string length + bx (g13) +Lrett: + ret + +/* end of strcspn */ diff --git a/newlib/libc/machine/i960/strdup.S b/newlib/libc/machine/i960/strdup.S new file mode 100644 index 000000000..7e879ff0f --- /dev/null +++ b/newlib/libc/machine/i960/strdup.S @@ -0,0 +1,66 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strdup.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif + +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ + +/* + procedure strdup (optimized assembler version: 80960K series, 80960CA) + + dest_addr = strdup (src_addr) + + Allocate memory and copy thereto the string pointed to by src_addr. + Return the address of the copy, or null if unable to perform the + operation. +*/ + + .text + .align 2 + .globl _strdup +_strdup: + mov g0,r3 # Keep a copy of the original string addr + callj _strlen # Determine how much to allocate + addo 1,g0,g0 # Add one byte for the null byte at end + callj _malloc # Allocate the storage + cmpo 0,g0 + mov r3,g1 # Original string addr is now src for copy + bne.t _strcpy # Jump if allocation was successful + ret # Return the null ptr otherwise + +/* end of strdup */ diff --git a/newlib/libc/machine/i960/strlen.S b/newlib/libc/machine/i960/strlen.S new file mode 100644 index 000000000..dfbeec29d --- /dev/null +++ b/newlib/libc/machine/i960/strlen.S @@ -0,0 +1,117 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strlen.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif + +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strlen (optimized assembler version for the 80960K series) + + src_addr = strlen (src_addr) + + return the number of bytes that precede the null byte in the + string pointed to by src_addr. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last four words of the program's + allocated memory space. This is so because strlen fetches ahead + several words. Disallowing the fetch ahead would impose a severe + performance penalty. + + Strategy: + + Fetch the source array by long-words and scanbyte the words for the + null byte until found. Examine the word in which the null byte is + found, to determine its actual position, and return the length. + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble that would be necessary to assure alignment. This + is supported by the intuition that many source strings will be word + aligned to begin with. +*/ + + .globl _strlen + .globl __strlen + .leafproc _strlen, __strlen + .align 2 +_strlen: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strlen: + + mov g14,g13 # preserve return address + ldl (g0),g4 # fetch first two words + addo 8,g0,g2 # post-increment src word pointer + lda 0xff,g3 # byte extraction mask + + +Lsearch_for_word_with_null_byte: + scanbyte 0,g4 # check for null byte + mov g5,g7 # copy second word + bo.f Lsearch_for_null # branch if null found + scanbyte 0,g7 # check for null byte + ldl (g2),g4 # fetch next pair of word of src + addo 8,g2,g2 # post-increment src word pointer + bno Lsearch_for_word_with_null_byte # branch if null not found yet + + subo 4,g2,g2 # back up the byte pointer + mov g7,g4 # move word with null to search word +Lsearch_for_null: + subo 9,g2,g2 # back up the byte pointer +Lsearch_for_null.a: + and g4,g3,g14 # extract byte + cmpo 0,g14 # is it null? + addo 1,g2,g2 # bump src byte ptr + shro 8,g4,g4 # shift word to position next byte + bne Lsearch_for_null.a + +Lexit_code: + subo g0,g2,g0 # calculate string length + bx (g13) # g0 = addr of src; g14 = 0 +Lrett: + ret + +/* end of strlen */ diff --git a/newlib/libc/machine/i960/strlen_ca.S b/newlib/libc/machine/i960/strlen_ca.S new file mode 100644 index 000000000..350423bf0 --- /dev/null +++ b/newlib/libc/machine/i960/strlen_ca.S @@ -0,0 +1,146 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strle_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strlen (optimized assembler version for the CA) + + src_addr = strlen (src_addr) + + return the number of bytes that precede the null byte in the + string pointed to by src_addr. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last four words of the program's + allocated memory space. This is so because, in several cases, strlen + will fetch ahead several words. Disallowing the fetch ahead would + impose a severe performance penalty. + + This program handles two cases: + + 1) the argument starts on a word boundary + 2) the argument doesn't start on a word boundary + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 original src ptr; upon return it is the byte count. + g1 + g2 src ptr + g3 mask + g4 even word of the source string + g5 odd word of the source string + g6 copy of even word, shift count + g7 copy of odd word + g13 return address + g14 byte extracted. +*/ + + .globl _strlen + .globl __strlen + .leafproc _strlen, __strlen + .align 2 +_strlen: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strlen: + + notand g0,3,g2 # extract word addr of start of src + lda (g14),g13 # preserve return address + and g0,3,g7 # extract byte offset of src + ld (g2),g5 # fetch word containing at least first byte + shlo 3,g7,g7 # get shift count for making mask for first word + lda 4(g2),g2 # post-increment src word pointer + subi 1,0,g3 # mask initially all ones + chkbit 2,g2 # are we on an even word boundary or an odd one? +#if __i960_BIG_ENDIAN__ + shro g7,g3,g3 # get mask for bytes needed from first word + notor g5,g3,g7 # set unneeded bytes to all ones + lda 0xff000000,g3 # byte extraction mask +#else + shlo g7,g3,g3 # get mask for bytes needed from first word + notor g5,g3,g7 # set unneeded bytes to all ones + lda 0xff,g3 # byte extraction mask +#endif + bno.f Lodd_word # branch if first word is odd + mov g7,g4 # move first word to copy thereof + ld (g2),g5 # load odd word + lda 4(g2),g2 # post-increment src word pointer + + +Leven_word: + scanbyte 0,g4 # check for null byte + movl g4,g6 # copy both words +Lodd_word: # trickery! if we branch here, following branch + /* instruction will fall thru, as we want, */ + /* effecting the load of g4 and g5 only. */ + ldl (g2),g4 # fetch next pair of word of src + bo.f Lsearch_for_null # branch if null found + scanbyte 0,g7 # check for null byte + lda 8(g2),g2 # post-increment src word pointer + bno.t Leven_word # branch if null not found yet + + subo 4,g2,g2 # back up the byte pointer + lda (g7),g6 # move odd word to search word +Lsearch_for_null: + subo 9,g2,g2 # back up the byte pointer +Lsearch_for_null.a: + and g6,g3,g14 # extract byte + cmpo 0,g14 # is it null? + lda 1(g2),g2 # bump src byte ptr +#if __i960_BIG_ENDIAN__ + shlo 8,g6,g6 # shift word to position next byte +#else + shro 8,g6,g6 # shift word to position next byte +#endif + bne.t Lsearch_for_null.a + +Lexit_code: + subo g0,g2,g0 # calculate string length + bx (g13) # g0 = addr of src; g14 = 0 +Lrett: + ret + +/* end of strlen */ diff --git a/newlib/libc/machine/i960/strncat.S b/newlib/libc/machine/i960/strncat.S new file mode 100644 index 000000000..a655824ea --- /dev/null +++ b/newlib/libc/machine/i960/strncat.S @@ -0,0 +1,155 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strncat.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure strncat (optimized assembler version for the 80960K Series) + + dest_addr = strncat (dest_addr, src_addr, max_bytes) + + append the null terminated string pointed to by src_addr to the null + terminated string pointed to by dest_addr. Return the original + dest_addr. If the source string is longer than max_bytes, then + append only max_bytes bytes, and tack on a null byte on the end. + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last two words of the + program's allocated memory space. This is so because strncat fetches + ahead. Disallowing the fetch ahead would impose a severe performance + penalty. + + Strategy: + + First, skip to the null byte in the destination string. Then + fetch the source string by words and store them by words to the + destination string, until there are fewer than three bytes left + to copy. Then, using the last word of the source (the one that + contains the remaining 0, 1, 2, or 3 bytes to be copied), store + a byte at a time until Ldone. + + If, before exhausting the max_byte count, the null byte is encountered + in the source string, then just copy up thru the null byte. + + Tactics: + + 1) Do NOT try to fetch and store the words in a word aligned manner + because, in my judgement, the performance degradation experienced due + to non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. +*/ + + .globl _strncat + .globl __strncat + .leafproc _strncat,__strncat + .align 2 +_strncat: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strncat: + mov g14,g6 + cmpibge 0, g2, Lno_operation # Lexit early if max_bytes <= 0 + mov g0, g5 +Lskip_word_loop: + ld (g5), g7 # fetch word of dest string + addo 4, g5, g5 # post-increment dest ptr + scanbyte 0, g7 # does it contain null byte? + bno Lskip_word_loop # if not, loop + subo 5, g5, g5 # adjust dest ptr + lda 0xff, g3 # byte extraction mask = 0xff; +Lskip_byte_loop: + and g7, g3, g14 # extract byte of last word of dest string + cmpo 0, g14 # is it null? + addo 1, g5, g5 # adjust dest ptr + shro 8, g7, g7 # position next byte for extraction + bne Lskip_byte_loop # loop if null not found yet + + ld (g1), g7 # fetch first word of source string +Lwloop: # word copying loop + cmpo 4, g2 # max_bytes < 4 ? + addo 4, g1, g1 # post-increment source ptr + bge Lcloop.a # branch if less than 4 bytes to move + scanbyte 0, g7 # is null byte reached yet? + mov g7, g4 # keep a copy of the source word + be Lcloop # branch if null byte reached + ld (g1), g7 # pre-fetch next word of source + subo 4, g2, g2 # reduce max_byte counter + st g4, (g5) # store current word + addo 4, g5, g5 # post-increment destination ptr + b Lwloop + +Lcloop.b: + addo 1, g5, g5 # post-increment destination ptr + shro 8, g7, g7 # position next byte for extraction +Lcloop: # character copying loop (max_byte > 3) + and g3, g7, g4 # extract character + cmpo 0, g4 # is it null? + stob g4, (g5) # store it + bne Lcloop.b # loop if null not encountered yet + + bx (g6) # g0 = dest string address; g14 = 0 +Lrett: + ret + +Lcloop.c: + addo 1, g5, g5 # post-increment destination ptr + shro 8, g7, g7 # position next byte for extraction +Lcloop.a: # character copying loop (max_byte <= 3) + cmpdeco 0,g2,g2 # max_byte == 0? + and g3, g7, g4 # extract character + be Ldone # store null and Lexit if max_byte exhausted + cmpo 0, g4 # is it null? + stob g4, (g5) # store it + bne Lcloop.c # loop if null not encountered yet + +Ldone: stob g14, (g5) # store trailing null + bx (g6) # g0 = dest string address; g14 = 0 + +Lno_operation: mov 0, g14 # conform to register conventions + bx (g6) + +/* end of strncat */ diff --git a/newlib/libc/machine/i960/strncat_ca.S b/newlib/libc/machine/i960/strncat_ca.S new file mode 100644 index 000000000..45c5e171e --- /dev/null +++ b/newlib/libc/machine/i960/strncat_ca.S @@ -0,0 +1,300 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "sncat_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strncat (optimized assembler version for the CA) + + dest_addr = strncat (dest_addr, src_addr, max_bytes) + + append the null terminated string pointed to by src_addr to the null + terminated string pointed to by dest_addr. Return the original + dest_addr. If the source string is longer than max_bytes, then + append only max_bytes bytes, and tack on a null byte on the end + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, strncat + will fetch ahead one word. Disallowing the fetch ahead would impose + a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source is word aligned, destination is not + 4) destination is word aligned, source is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 original dest ptr; not modified, so that it may be returned. + g1 src ptr; shift count + g2 max_bytes + g3 src ptr (word aligned) + g4 dest ptr (word aligned) + g5 0xff -- byte extraction mask + Little endian: + g6 lsw of double word for extraction of 4 bytes + g7 msw of double word for extraction of 4 bytes + Big endian: + g6 msw of double word for extraction of 4 bytes + g7 lsw of double word for extraction of 4 bytes + g13 return address + g14 byte extracted. +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g6 +#define LSW g7 +#else +#define LSW g6 +#define MSW g7 +#endif + + .globl _strncat + .globl __strncat + .leafproc _strncat, __strncat + .align 2 +_strncat: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strncat: + notand g0,3,g4 # extract word addr of start of dest + lda (g14),g13 # preserve return address + cmpibge.f 0,g2,Lexit_code # Lexit if number of bytes to move is <= zero. + and g0,3,LSW # extract byte offset of dest + ld (g4),MSW # fetch word containing at least first byte + shlo 3,LSW,g14 # get shift count for making mask for first word + subi 1,0,LSW # mask initially all ones +#if __i960_BIG_ENDIAN__ + shro g14,LSW,LSW # get mask for bytes needed from first word +#else + shlo g14,LSW,LSW # get mask for bytes needed from first word +#endif + notor MSW,LSW,MSW # set unneeded bytes to all ones + lda 0xff,g5 # byte extraction mask +Lsearch_for_word_with_null: + scanbyte 0,MSW # check for null byte + lda 4(g4),g4 # post-increment dest word pointer + mov MSW,LSW # keep a copy of current word + ld (g4),MSW # fetch next word of dest + bno.t Lsearch_for_word_with_null # branch if null not found yet +#if __i960_BIG_ENDIAN__ + shro 24,LSW,g14 # extract byte +#else + and g5,LSW,g14 # extract byte +#endif + cmpo 0,g14 # branch if null is first byte of word + subo 4,g4,g4 # move dest word ptr to word with null + notand g1,3,g3 # extract word addr of start of src + bne.t Lsearch_for_null + +Lcase_14: + cmpo g1,g3 # check alignment of source + ld (g3),LSW # fetch first word of source + shlo 3,g1,g14 # compute shift count + lda 4(g3),g3 # post-increment src addr + bne.f Lcase_4 # branch if source is unaligned +Lcase_1: +Lcase_1_wloop: # word copying loop + cmpi g2,4 # check for fewer than four bytes to move + lda (LSW),g1 # keep a copy of the src word + bl.f Lcase_1_cloop # branch if fewer than four bytes to copy + scanbyte 0,g1 # check for null byte in src word + ld (g3),LSW # pre-fetch next word of src + addo 4,g3,g3 # post-increment src addr + bo.f Lcase_1_cloop # branch if word contains null byte + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + st g1,(g4) # store word in dest string + addo 4,g4,g4 # post-increment dest addr + b Lcase_1_wloop + +Lcase_3_cloop: +Lcase_1_cloop: # character copying loop (max_bytes <= 3) + cmpdeci 0,g2,g2 # is max_bytes exhausted? +#if __i960_BIG_ENDIAN__ + rotate 8,g1,g1 # move next byte into position for extraction +#endif + and g5,g1,g14 # extract next char + be.f Lstore_null # if max_bytes is exhausted, store null and quit + cmpo 0,g14 # check for null byte + stob g14,(g4) # store the byte in dest +#if ! __i960_BIG_ENDIAN__ + shro 8,g1,g1 # move next byte into position for extraction +#endif + lda 1(g4),g4 # post-increment dest byte addr + bne.t Lcase_1_cloop # branch if null not reached + bx (g13) # Lexit (g14 == 0) + +Lstore_null: + mov 0,g14 # store null, and set g14 to zero + stob g14,(g4) + bx (g13) + + +Lsearch_for_null: +#if __i960_BIG_ENDIAN__ + shlo 8,LSW,LSW # check next byte + shro 24,LSW,g14 +#else + shlo 8,g5,g5 # move mask up to next byte + and g5,LSW,g14 # extract byte +#endif + lda 1(g4),g4 # move dest byte ptr to next byte + cmpobne.t 0,g14,Lsearch_for_null # branch if null is not yet found + +Lcase_235: + cmpo g1,g3 # check alignment of src + ld (g3),LSW # pre-fetch word with start of src + and 3,g1,g1 # compute shift count + lda 0xff,g5 # load mask for byte extraction + shlo 3,g1,g14 + lda 4(g3),g3 # post-increment src word counter + be.t Lcase_3 # branch if src is word aligned + and g4,3,MSW # extract byte offset for dest string + cmpo MSW,g1 # < indicates first word of dest has more bytes + /* than first word of source. */ + ld (g3),MSW # fetch second word of src +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian +#endif + eshro g14,g6,g5 # extract four bytes +#if __i960_BIG_ENDIAN__ + bge.f 1f +#else + bg.f 1f +#endif + mov MSW,LSW + lda 4(g3),g3 # move src word addr to second word boundary +1: + mov g5,MSW + lda 0xff,g5 + b Lcase_25 + +Lcase_3: # src is word aligned; dest is not + mov LSW,MSW # make copy of first word of src + lda 32,g14 # initialize shift count to zero (mod 32) +Lcase_25: + +Lcase_3_cloop_at_start: # character copying loop for start of dest str + cmpdeci 0,g2,g2 # is max_bytes exhausted? +#if __i960_BIG_ENDIAN__ + shro 24,MSW,g5 # extract next char +#else + and g5,MSW,g5 # extract next char +#endif + be.f Lstore_null # Lexit if max_bytes is exhausted + cmpo 0,g5 # check for null byte + stob g5,(g4) # store the byte in dest + addo 1,g4,g4 # post-increment dest ptr + lda 0xff,g5 # re-initialize byte extraction mask + notand g4,3,g1 # extract word address + be.t Lexit_code # Lexit if null byte reached + cmpo g1,g4 # have we reached word boundary in dest yet? +#if __i960_BIG_ENDIAN__ + lda -8(g14),g14 # augment the shift counter + rotate 8,MSW,MSW # move next byte into position for extraction +#else + lda 8(g14),g14 # augment the shift counter + shro 8,MSW,MSW # move next byte into position for extraction +#endif + bne.t Lcase_3_cloop_at_start # branch if reached word boundary? + +#if __i960_BIG_ENDIAN__ + cmpo 0,g14 + ld (g3),MSW # fetch msw of operand for double shift + bne Lcase_3_wloop # branch if src is still unaligned. + +Lcase_3_wloop2: + cmpi g2,4 # less than four bytes to move? + mov LSW,g1 # extract 4 bytes of src + lda 4(g3),g3 # post-increment src word addr + bl.f Lcase_3_cloop # branch if < four bytes left to move + scanbyte 0,g1 # check for null byte + mov MSW,LSW # move msw to lsw + ld (g3),MSW # pre-fetch msw of operand for double shift + bo.f Lcase_3_cloop # branch if word contains null byte + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + st g1,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop2 +Lcase_4: + subo g14,0,g14 # adjust shift count for big endian +#else +Lcase_4: +#endif + + ld (g3),MSW # fetch msw of operand for double shift + +Lcase_3_wloop: + cmpi g2,4 # less than four bytes to move? + eshro g14,g6,g1 # extract 4 bytes of src + lda 4(g3),g3 # post-increment src word addr + bl.f Lcase_3_cloop # branch if < four bytes left to move + scanbyte 0,g1 # check for null byte + mov MSW,LSW # move msw to lsw + ld (g3),MSW # pre-fetch msw of operand for double shift + bo.f Lcase_3_cloop # branch if word contains null byte + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + st g1,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop + + +Lexit_code: + mov 0,g14 # conform to register conventions + bx (g13) # g0 = addr of dest; g14 = 0 +Lrett: + ret + +/* end of strncat */ + diff --git a/newlib/libc/machine/i960/strncmp.S b/newlib/libc/machine/i960/strncmp.S new file mode 100644 index 000000000..030b75084 --- /dev/null +++ b/newlib/libc/machine/i960/strncmp.S @@ -0,0 +1,129 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strncmp.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure strncmp (optimized assembler version for the 80960K Series) + + result = strncmp (src1_addr, src2_addr, max_bytes) + + compare the null terminated string pointed to by src1_addr to + the string pointed to by src2_addr. Return 0 iff the strings + are equal, -1 if src1_addr is lexicographically less than src2_addr, + and 1 if it is lexicographically greater. Do not compare more than + max_bytes bytes. + + Undefined behavior will occur if the end of either source string + (i.e. the terminating null byte) is in the last two words of the + program's allocated memory space. This is so because strncmp + will fetch ahead. Disallowing the fetch ahead would impose + a severe performance penalty. + + Strategy: + + Fetch and compare the strings by words and go to a character + comparison loop as soon as a pair of words differ. If the + words are equal up through either the exhaustion of max_bytes + or the presence of the null byte, return 0 (equality). Otherwise, + the character comparator will return -1 or 1 for inequality, or + 0 if the differing byte is after the null byte or after the + exhaustion of max_bytes. + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. +*/ + + .globl _strncmp + .globl __strncmp + .leafproc _strncmp,__strncmp + .align 2 + +_strncmp: +#ifndef __PIC + lda .Lrett,g14 +#else + lda .Lrett-(.+8)(ip),g14 +#endif +__strncmp: + mov g14,g13 + ldconst 0,g14 + cmpibge 0,g2,Lequal_exit # Lexit early if max_bytes <= 0 + addo g2,g0,g2 +.Lwloop: + cmpo g0,g2 # are max_bytes exhausted? + ld (g0), g5 # fetch word of source_1 + bge Lequal_exit # Lexit (equality) if max_bytes exhausted + ld (g1), g3 # fetch word of source_2 + addo 4,g0,g0 # post-increment source_1 ptr + scanbyte 0,g5 # is a null byte present? + addo 4,g1,g1 # post-increment source_1 ptr + be .Lcloop.a # perform char comparator if null byte found + cmpobe g5,g3,.Lwloop # perform char comparator if words are unequal + +.Lcloop.a: subo 4,g0,g0 # adjust max_byte counter + ldconst 0xff,g4 # byte extraction mask + +.Lcloop: and g4,g5,g7 # compare individual bytes + and g4,g3,g6 + cmpobne g7,g6,.diff # if different, return -1 or 1 + cmpo 0,g6 # they are equal. are they null? + shlo 8,g4,g4 # position mask to extract next byte + be Lequal_exit # if they are null, Lexit (equality) + addo 1,g0,g0 # is max_bytes exhausted? + cmpobl g0,g2,.Lcloop # if not, loop. if so, Lexit (equality) + +Lequal_exit: + mov 0,g0 + bx (g13) +.Lrett: + ret +.diff: bl .neg + mov 1,g0 + bx (g13) + +.neg: subi 1,0,g0 +.Lexit: + bx (g13) + +/* end of strncmp */ diff --git a/newlib/libc/machine/i960/strncmp_ca.S b/newlib/libc/machine/i960/strncmp_ca.S new file mode 100644 index 000000000..0b1a8ff4b --- /dev/null +++ b/newlib/libc/machine/i960/strncmp_ca.S @@ -0,0 +1,253 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "sncmp_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strncmp (optimized assembler version for the CA) + + result = strncmp (src1_addr, src2_addr, max_bytes) + + compare the null terminated string pointed to by src1_addr to + the string space pointed to by src2_addr. Return 0 iff the strings + are equal, -1 if src1_addr is lexicly less than src2_addr, and 1 + if it is lexicly greater. Do not compare more than max_bytes bytes. + + Undefined behavior will occur if the end of either source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, strncmp + will fetch ahead one word. Disallowing the fetch ahead would impose + a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source1 is word aligned, source2 is not + 4) source2 is word aligned, source1 is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g14 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers are sufficient to implement the routine. + The registers are used as follows: + + g0 original src1 ptr; extracted word; return result + g1 src2 ptr; 0xff -- byte extraction mask + g2 maximum number of bytes to compare + g3 src2 word ptr + Little endian: + g4 lsw of src1 + g5 msw of src1 + g6 src2 word + g7 src1 word ptr + Big endian: + g4 msw of src1 + g5 lsw of src1 + g6 src1 word ptr + g7 src2 word + g13 return address + g14 shift count +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g4 +#define LSW g5 +#define SRC1 g6 +#define SRC2 g7 +#else +#define LSW g4 +#define MSW g5 +#define SRC2 g6 +#define SRC1 g7 +#endif + + .globl _strncmp + .globl __strncmp + .leafproc _strncmp, __strncmp + .align 2 +_strncmp: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strncmp: +Lrestart: + notand g0,3,SRC1 # extract word addr of start of src1 + lda (g14),g13 # preserve return address + cmpibge.f 0,g2,Lequal_exit # return equality if number of bytes to + /* compare is none. */ +#if __i960_BIG_ENDIAN__ + cmpo g0,SRC1 # check alignment of src1 +#endif + ld (SRC1),LSW # fetch word with at least first byte of src1 + notand g1,3,g3 # extract word addr of start of src2 + ld 4(SRC1),MSW # fetch second word of src1 +#if __i960_BIG_ENDIAN__ + bne Lsrc1_unaligned # branch if src1 is unaligned + cmpo g3,g1 # check alignment of src2 + ld (g3),SRC2 # fetch word with at least first byte of src2 + shlo 3,g0,g14 # compute shift count for src1 + subo g14,0,g14 # adjust shift count for big endian + lda 8(SRC1),SRC1 # advance src1 word addr + bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned + + /* src2 is word aligned */ + + mov LSW,g0 + +Lwloop2: # word comparing loop + cmpo SRC2,g0 # compare src1 and src2 words + lda 0xff000000,g1 # byte extraction mask + mov MSW,LSW # move msw of src1 to lsw + ld (SRC1),MSW # pre-fetch next msw of src1 + addo 4,SRC1,SRC1 # post-increment src1 addr + lda 4(g3),g3 # pre-increment src2 addr + bne.f Lcloop # branch if src1 and src2 unequal + scanbyte 0,g0 # check for null byte in src1 word + ld (g3),SRC2 # pre-fetch next word of src2 + mov LSW,g0 # extract word of src1 + subi 4,g2,g2 # decrement maximum byte count + bo.f Lequal_exit # branch if null byte encountered + cmpibl.t 0,g2,Lwloop2 # branch if max_bytes not reached yet + + b Lequal_exit # strings were equal up through max_bytes + +Lsrc1_unaligned: +#endif + cmpo g3,g1 # check alignment of src2 + ld (g3),SRC2 # fetch word with at least first byte of src2 + shlo 3,g0,g14 # compute shift count for src1 +#if __i960_BIG_ENDIAN__ + subo g14,0,g14 # adjust shift count for big endian +#endif + eshro g14,g4,LSW # extract word of src1 + lda 8(SRC1),SRC1 # advance src1 word addr + bne.f Lsrc2_unaligned # branch if src2 is NOT word aligned + + /* at least src2 is word aligned */ + + mov LSW,g0 + +Lwloop: # word comparing loop + cmpo SRC2,g0 # compare src1 and src2 words +#if __i960_BIG_ENDIAN__ + lda 0xff000000,g1 # byte extraction mask +#else + lda 0xff,g1 # byte extraction mask +#endif + mov MSW,LSW # move msw of src1 to lsw + ld (SRC1),MSW # pre-fetch next msw of src1 + addo 4,SRC1,SRC1 # post-increment src1 addr + lda 4(g3),g3 # pre-increment src2 addr + bne.f Lcloop # branch if src1 and src2 unequal + scanbyte 0,g0 # check for null byte in src1 word + ld (g3),SRC2 # pre-fetch next word of src2 + eshro g14,g4,g0 # extract word of src1 + subi 4,g2,g2 # decrement maximum byte count + bo.f Lequal_exit # branch if null byte encountered + cmpibl.t 0,g2,Lwloop # branch if max_bytes not reached yet + + b Lequal_exit # strings were equal up through max_bytes + +Lcloop_setup: # setup for coming from Lsrc2_unaligned + mov LSW,g0 # restore extracted src1 word +#if __i960_BIG_ENDIAN__ + lda 0xff000000,g1 # byte extraction mask +#else + lda 0xff,g1 # byte extraction mask +#endif + +Lcloop: # character comparing loop + and SRC2,g1,g3 # extract next char of src2 + and g0,g1,LSW # extract next char of src1 + cmpobne.f LSW,g3,.diff # check for equality + cmpo 0,LSW # check for null byte +#if __i960_BIG_ENDIAN__ + shro 8,g1,g1 # shift mask for next byte +#else + shlo 8,g1,g1 # shift mask for next byte +#endif + subi 1,g2,g2 # decrement character counter + bne.t Lcloop # branch if null not reached + + /* words are equal up thru null byte */ + +Lequal_exit: + mov 0,g14 # conform to register conventions + lda 0,g0 # return zero, indicating equality + bx (g13) # return + +Lrett: + ret + +.diff: + mov 0,g14 + bl Lless_than_exit +Lgreater_than_exit: + cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes + mov 1,g0 + bx (g13) # g0 = 1 (src1 > src2) +Lless_than_exit: + cmpibge.f 0,g2,Lequal_exit # branch if difference is beyond max_bytes + subi 1,0,g0 + bx (g13) # g0 = -1 (src1 < src2) + +Lsrc2_unaligned: + notor g1,3,g14 # first step in computing new src1 ptr + ld 4(g3),SRC1 # fetch second word of src2 + shlo 3,g1,MSW # compute shift count for src2 +#if __i960_BIG_ENDIAN__ + subo MSW,0,MSW # adjust shift count for big endian +#endif + eshro MSW,g6,SRC2 # extract word of src2 + cmpo LSW,SRC2 # compare src1 and src2 words + lda 4(g3),g1 # set new src2 ptr + bne.f Lcloop_setup # first four bytes differ + scanbyte 0,LSW # check for null byte + subo g14,g0,g0 # second (final) step in computing new src1 ptr + addi g14,g2,g2 # compute new max_bytes too + lda (g13),g14 # prepare return pointer for Lrestart + bno.t Lrestart # if null byte not encountered, continue + /* with both string fetches shifted such that*/ + /* src2 is now word aligned.*/ + mov 0,g14 # conform to register conventions. + lda 0,g0 # return indicator of equality. + bx (g13) diff --git a/newlib/libc/machine/i960/strncpy.S b/newlib/libc/machine/i960/strncpy.S new file mode 100644 index 000000000..9f51b607c --- /dev/null +++ b/newlib/libc/machine/i960/strncpy.S @@ -0,0 +1,154 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strncpy.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ +/* + procedure strncpy (optimized assembler version for the 80960K Series) + + dest_addr = strncpy (dest_addr, src_addr, max_bytes) + + copy the null terminated string pointed to by src_addr to the + string pointed to by dest_addr. Return the original dest_addr. + If the source string is shorter than max_bytes, then null-pad + the destination string. If it is longer than max_bytes, the + copy stops at max_bytes bytes (and no terminating null appears + in the destination string). + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last two words of the + program's allocated memory space. This is so because strncpy fetches + ahead. Disallowing the fetch ahead would impose a severe performance + penalty. + + Strategy: + + Fetch and store the strings by words and go to a character move loop + as soon as a null byte is encountered. If max_bytes is exhausted + first, then terminate after moving only max_bytes (with the last + 0, 1, 2, or 3 bytes moved as single bytes, not as a word). + Otherwise, the character move loop moves the last bytes or the + source string, and then null-pads the destination string until + max_bytes is exhausted. + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble and convoluted body that would be necessary to assure + alignment. + + 2) When the null byte is encountered in a source word, null out the + higher-numbered bytes in that word, store the word in the destination, + and go to the word null-padder, which may eventually go to the byte + null-padder. +*/ + + .globl _strncpy + .globl __strncpy + .leafproc _strncpy,__strncpy + .align 2 +_strncpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strncpy: + mov g14, g13 + cmpibge 0,g2,Lexit # quit early if max_bytes <= 0 + ld (g1), g7 # fetch the first word of the source + mov g0, g5 + lda 0xff, g3 # byte extraction mask + addo g1, g2, g6 + addo g2, g5, g2 +Lwloop: # word copying loop + addo 4, g1, g1 # post-increment source ptr + cmpo g6, g1 # max_bytes < 4 ? + mov g7, g4 # keep a copy of source word + bl Lcloop.a # if less than four bytes to go, go to char loop + scanbyte 0, g4 # null byte found? + ld (g1), g7 # pre-fetch next word of the source + be Lcloop.c # go to char loop if null encountered + st g4, (g5) # store current word + addo 4, g5, g5 # post-increment destination ptr + b Lwloop + +Lcloop.a: # character copying loop (max_bytes < 3) + and g3, g4, g14 # extract byte +Lcloop.b: + cmpo g2, g5 # max_bytes <= 0 ? + shro 8, g4, g4 # position word to extract next byte + be Lexit # exit if max_bytes exhausted + cmpo 0, g14 # is it null? + stob g14, (g5) # store it + addo 1, g5, g5 # post-increment dest ptr + bne Lcloop.a # branch if we are NOT null padding + b Lcloop.b # branch if we are null padding + +Lexit: + mov 0, g14 + bx (g13) # g0 = dest string address; g14 = 0 +Lrett: + ret + +Lcloop.c: # character copying loop + and g3, g4, g14 # extract byte + cmpo 0, g14 # is it null? + mov g3, g7 # save mask + shlo 8, g3, g3 # shift mask to next byte position + bne Lcloop.c # loop until null found + subo 1, g7, g3 # mask to null pad after null byte + and g3, g4, g4 # null-out stuff after null byte + st g4, (g5) # store last part of src and first of null-pad + subo 8,g2,g6 # adjust max_byte counter + +Lzwloop: + cmpo g5, g6 # max_bytes < 4 ? + addo 4, g5, g5 + bg Lcloop.b # if so, goto character loop + st g14, (g5) # store four null bytes + b Lzwloop + +/* end of strncpy */ diff --git a/newlib/libc/machine/i960/strncpy_ca.S b/newlib/libc/machine/i960/strncpy_ca.S new file mode 100644 index 000000000..1f90acf1c --- /dev/null +++ b/newlib/libc/machine/i960/strncpy_ca.S @@ -0,0 +1,289 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "sncpy_ca.s" +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strncpy (optimized assembler version for the CA) + + dest_addr = strncpy (dest_addr, src_addr, max_bytes) + + copy the null terminated string pointed to by src_addr to + the string space pointed to by dest_addr. Return the original + dest_addr. If the source string is shorter than max_bytes, + then null-pad the destination string. + + This routine will fail if the source and destination string + overlap (in particular, if the end of the source is overlapped + by the beginning of the destination). The behavior is undefined. + This is acceptable according to the draft C standard. + + Undefined behavior will also occur if the end of the source string + (i.e. the terminating null byte) is in the last word of the program's + allocated memory space. This is so because, in several cases, strcpy + will fetch ahead one word. Disallowing the fetch ahead would impose + a severe performance penalty. + + This program handles five cases: + + 1) both arguments start on a word boundary + 2) neither are word aligned, but they are offset by the same amount + 3) source is word aligned, destination is not + 4) destination is word aligned, source is not + 5) neither is word aligned, and they are offset by differing amounts + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. The registers are used as follows: + + g0 original dest ptr; not modified, so that it may be returned. + g1 src ptr; shift count + g2 max_bytes + g3 src ptr (word aligned) + g4 dest ptr (word aligned) + g5 0xff -- byte extraction mask + Little endian: + g6 lsw of double word for extraction of 4 bytes + g7 msw of double word for extraction of 4 bytes + Big endian: + g6 msw of double word for extraction of 4 bytes + g7 lsw of double word for extraction of 4 bytes + g13 return address + g14 byte extracted. +*/ + +#if __i960_BIG_ENDIAN__ +#define MSW g6 +#define LSW g7 +#else +#define LSW g6 +#define MSW g7 +#endif + + .globl _strncpy + .globl __strncpy + .leafproc _strncpy, __strncpy + .align 2 +_strncpy: +#ifndef __PIC + lda Lrett,g14 +#else + lda Lrett-(.+8)(ip),g14 +#endif +__strncpy: + notand g1,3,g3 # extract word addr of start of src + lda (g14),g13 # preserve return address + cmpibge.f 0,g2,Lexit_code # Lexit if number of bytes to move is <= zero. + cmpo g3,g1 # check alignment of src + ld (g3),LSW # fetch word containing at least first byte + notand g0,3,g4 # extract word addr of start of dest + lda 4(g3),g3 # advance src word addr + bne.f Lcase_245 # branch if src is NOT word aligned + +Lcase_13: + cmpo g0,g4 # check alignment of dest + lda 0xff,g5 # load mask for byte extraction + subo 4,g4,g4 # store is pre-incrementing; back up dest addr + bne.f Lcase_3 # branch if dest not word aligned + +Lcase_1: # src and dest are word aligned +Lcase_1_wloop: # word copying loop + cmpi g2,4 # check for fewer than four bytes to move + lda (LSW),g1 # keep a copy of the src word + addo 4,g4,g4 # pre-increment dest addr + bl.f Lcase_1_cloop.a # branch if fewer than four bytes to copy + scanbyte 0,g1 # check for null byte in src word + ld (g3),LSW # pre-fetch next word of src + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + bo.f Lcase_1_cloop.c # branch if word contains null byte + addo 4,g3,g3 # post-increment src addr + st g1,(g4) # store word in dest string + b Lcase_1_wloop + +Lcase_3_cloop.a: +Lcase_1_cloop.a: # character copying loop (max_bytes <= 3) +#if __i960_BIG_ENDIAN__ + rotate 8,g1,g1 # move next byte into position for extraction +#endif + and g5,g1,g14 # extract next char +Lcase_1_cloop.b: + cmpdeci 0,g2,g2 # is max_bytes exhausted? + be.f Lexit_code # Lexit if max_bytes is exhausted + cmpo 0,g14 # check for null byte + stob g14,(g4) # store the byte in dest +#if ! __i960_BIG_ENDIAN__ + shro 8,g1,g1 # move next byte into position for extraction +#endif + lda 1(g4),g4 # post-increment dest byte addr + bne.t Lcase_1_cloop.a # branch if null not reached + b Lcase_1_cloop.b + +Lexit_code: + mov 0,g14 # conform to register conventions + bx (g13) # g0 = addr of dest; g14 = 0 +Lrett: + ret + +Lcase_1_cloop.c: +Lcase_3_cloop.c: +#if __i960_BIG_ENDIAN__ + rotate 24,g5,g5 # move mask into position for testing next byte +#endif + and g5,g1,g14 # extract next char + cmpo 0,g14 # check for null byte +#if ! __i960_BIG_ENDIAN__ + lda (g5),LSW # keep a copy of the current mask + shlo 8,g5,g5 # move mask into position for testing next byte +#endif + bne.t Lcase_1_cloop.c # branch if null not reached +#if __i960_BIG_ENDIAN__ + subo 1,g5,g5 # null pad. + andnot g5,g1,g1 # last bytes to copy, and null pad rest of word +#else + subo 1,LSW,g5 # mask to get last bytes to copy, and null pad + and g5,g1,g1 # last bytes to copy, and null pad rest of word +#endif + st g1,(g4) + +Lcase_1_zwloop: # zero word loop + cmpi g2,4 # check for fewer than four bytes to move + addo 4,g4,g4 # pre-increment dest addr + bl.f Lcase_1_cloop.b # branch if fewer than four bytes to copy + subo 4,g2,g2 # decrease max_byte count by the 4 bytes moved + st g14,(g4) # store word in dest string + b Lcase_1_zwloop + +Lcase_3: # src is word aligned; dest is not + addo 8,g4,g4 # move dest word ptr to first word boundary + lda (g0),g1 # copy dest byte ptr + mov LSW,MSW # make copy of first word of src + lda 32,g14 # initialize shift count to zero (mod 32) + +Lcase_25: +Lcase_3_cloop_at_start: # character copying loop for start of dest str + cmpdeci 0,g2,g2 # is max_bytes exhausted? +#if __i960_BIG_ENDIAN__ + shro 24,MSW,g5 # extract next char +#else + and g5,MSW,g5 # extract next char +#endif + be.f Lexit_code # Lexit if max_bytes is exhausted + cmpo 0,g5 # check for null byte + stob g5,(g1) # store the byte in dest + addo 1,g1,g1 # post-increment dest ptr + lda 0xff,g5 # re-initialize byte extraction mask + bne.t 1f # drop thru if null byte reached (to pad) + movl 0,g6 # blank out remainder of input buffer +1: + cmpo g1,g4 # have we reached word boundary in dest yet? +#if __i960_BIG_ENDIAN__ + lda -8(g14),g14 # augment the shift counter + rotate 8,MSW,MSW # move next byte into position for extraction +#else + lda 8(g14),g14 # augment the shift counter + shro 8,MSW,MSW # move next byte into position for extraction +#endif + bne.t Lcase_3_cloop_at_start # branch if reached word boundary? + + ld (g3),MSW # fetch msw of operand for double shift + +Lcase_4: + +#if __i960_BIG_ENDIAN__ + cmpobne 0,g14,Lcase_3_wloop # branch if src is still unaligned. + +Lcase_3_wloop2: + cmpi g2,4 # less than four bytes to move? + lda (LSW),g1 # extract 4 bytes of src + lda 4(g3),g3 # post-increment src word addr + bl.f Lcase_3_cloop.a # branch if < four bytes left to move + scanbyte 0,g1 # check for null byte + lda (MSW),LSW # move msw to lsw + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + ld (g3),MSW # pre-fetch msw of operand for double shift + bo.f Lcase_3_cloop.c # branch if word contains null byte + st g1,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop2 + +#endif + +Lcase_3_wloop: + cmpi g2,4 # less than four bytes to move? + eshro g14,g6,g1 # extract 4 bytes of src + lda 4(g3),g3 # post-increment src word addr + bl.f Lcase_3_cloop.a # branch if < four bytes left to move + scanbyte 0,g1 # check for null byte + lda (MSW),LSW # move msw to lsw + subi 4,g2,g2 # decrease max_byte count by the 4 bytes moved + ld (g3),MSW # pre-fetch msw of operand for double shift + bo.f Lcase_3_cloop.c # branch if word contains null byte + st g1,(g4) # store 4 bytes to dest + addo 4,g4,g4 # post-increment dest ptr + b Lcase_3_wloop + +Lcase_245: + cmpo g0,g4 # check alignment of dest + ld (g3),MSW # pre-fetch second half + and 3,g1,g1 # compute shift count + lda 0xff,g5 # load mask for byte extraction +#if __i960_BIG_ENDIAN__ + subo g1,4,g14 # adjust shift count for big endian. + shlo 3,g14,g14 +#else + shlo 3,g1,g14 +#endif + be.t Lcase_4 # branch if dest is word aligned + or g4,g1,g1 # is src earlier in word, later, or sync w/ dst + cmpo g0,g1 # < indicates first word of dest has more bytes + /* than first word of source. */ + lda 4(g4),g4 # move dest word addr to first word boundary + eshro g14,g6,g5 # extract four bytes + lda (g0),g1 + bg.f 1f + mov MSW,LSW + lda 4(g3),g3 # move src word addr to second word boundary +1: + mov g5,MSW + lda 0xff,g5 + b Lcase_25 + +/* end of strncpy */ + diff --git a/newlib/libc/machine/i960/strpbrk.S b/newlib/libc/machine/i960/strpbrk.S new file mode 100644 index 000000000..bae909f20 --- /dev/null +++ b/newlib/libc/machine/i960/strpbrk.S @@ -0,0 +1,100 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + +/* + * (c) copyright 1989,1993 Intel Corp., all rights reserved + */ + +/* + procedure strpbrk (optimized assembler version: 80960K series, 80960CA) + + char_addr = strpbrk (string, brkset_string) + + Return the address of the first character in string that is NOT + in the brkset_string. Return NULL if none exists. + + At the time of this writing, only g0 thru g7 and g13 are available + for use in this leafproc; other registers would have to be saved and + restored. These nine registers, plus tricky use of g14 are sufficient + to implement the routine. + + This routine stays out of g3 and g4 altogether. They may be used by + the strtok routine, which calls this routine in an incestuous way. +*/ +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif + + .file "strprk.s" + .globl _strpbrk + .globl __strpbrk + .leafproc _strpbrk, __strpbrk + .align 2 + +_strpbrk: +#ifdef __PIC + lda Lrett-(.+8)(ip),g14 + b __strpbrk +#else + lda Lrett,g14 + b __strpbrk +#endif + +Lrett: ret + +__strpbrk: + +Lnext_char_strpbrk: + addo 1,g1,g2 # g2 will be the brkset ptr + ldob (g0),g7 # fetch next character of string + ldob (g1),g6 # fetch first character of brkset + cmpobe.f 0,g7,Lexit_char_not_found # quit if at end of string +Lscan_set_strpbrk: + cmpo g6,g7 # is brkset char equal to string char? + ldob (g2),g5 # fetch next brkset char + addo 1,g2,g2 # bump brkset ptr + be.f Lexit_char_found + cmpo g6,0 # is brkset_string exhausted? + lda (g5),g6 + bne.t Lscan_set_strpbrk # check next character of brkset + addo 1,g0,g0 # check next character of string + b Lnext_char_strpbrk + +Lexit_char_not_found: + mov 0,g0 # return null if brkset char not found in string +Lexit_char_found: + mov g14,g13 # save return address + lda 0,g14 # conform to register conventions + bx (g13) + +/* end of strpbrk */ diff --git a/newlib/libc/machine/i960/strrchr.S b/newlib/libc/machine/i960/strrchr.S new file mode 100644 index 000000000..96fe5c269 --- /dev/null +++ b/newlib/libc/machine/i960/strrchr.S @@ -0,0 +1,137 @@ +/******************************************************************************* + * + * Copyright (c) 1993 Intel Corporation + * + * Intel hereby grants you permission to copy, modify, and distribute this + * software and its documentation. Intel grants this permission provided + * that the above copyright notice appears in all copies and that both the + * copyright notice and this permission notice appear in supporting + * documentation. In addition, Intel grants this permission provided that + * you prominently mark as "not part of the original" any modifications + * made to this software or documentation, and that the name of Intel + * Corporation not be used in advertising or publicity pertaining to + * distribution of the software or the documentation without specific, + * written prior permission. + * + * Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR + * IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY + * OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or + * representations regarding the use of, or the results of the use of, + * the software and documentation in terms of correctness, accuracy, + * reliability, currentness, or otherwise; and you rely on the software, + * documentation and results solely at your own risk. + * + * IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, + * LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES + * OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM + * PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + * + ******************************************************************************/ + + .file "strrchr.s" +#ifdef __i960_BIG_ENDIAN__ +#error "This does not work in big-endian" +#endif + +#ifdef __PIC + .pic +#endif +#ifdef __PID + .pid +#endif + +/* + * (c) copyright 1988,1993 Intel Corp., all rights reserved + */ + +/* + procedure strrchr (optimized assembler version for the 80960K series) + + src_addr = strrchr (src_addr, char) + + return a pointer to the last byte that contains the indicated + byte in the source string. Return null if the byte is not found. + + Undefined behavior will occur if the end of the source string (i.e. + the terminating null byte) is in the last two words of the program's + allocated memory space. This is so because strrchr fetches ahead. + Disallowing the fetch ahead would impose a severe performance penalty. + + Strategy: + + Fetch the source string by words and scanbyte the words for the + char until either a word with the byte is found or the null byte is + encountered. In the former case, move through the word to find the + matching byte and save its memory address, then continue the search. + In the latter case, return the saved address, or zero (null) if none + was ever found to save. + + Tactics: + + 1) Do NOT try to fetch the words in a word aligned manner because, + in my judgement, the performance degradation experienced due to + non-aligned accesses does NOT outweigh the time and complexity added + by the preamble that would be necessary to assure alignment. This + is supported by the intuition that most source arrays (even more + true of most big source arrays) will be word aligned to begin with. +*/ + + .globl _strrchr + .globl __strrchr + .leafproc _strrchr, __strrchr + .align 2 +_strrchr: +#ifdef __PIC + lda Lrett-(.+8)(ip),g14 +#else + lda Lrett,g14 +#endif +__strrchr: + + ld (g0),g4 # fetch first word + lda 0xff,g7 # byte extraction mask + and g1,g7,g1 # make char an 8-bit ordinal + shlo 8,g1,g2 # broadcast the char to four bytes + or g1,g2,g2 + shlo 16,g2,g5 + or g2,g5,g3 + mov g14,g13 # preserve return address + addo 4,g0,g2 # post-increment src pointer + mov 1,g0 # prepare to return null pointer + mov g3,g6 # prepare to return null pointer + +Lsearch_for_word_with_char_or_null: + mov g4,g5 # copy word + scanbyte 0,g5 # check for null byte + ld (g2),g4 # fetch next word of src + bo Lword_has_null # branch if null found + scanbyte g3,g5 # check for byte with char + addo 4,g2,g2 # post-increment src pointer + bno Lsearch_for_word_with_char_or_null # branch if no copy of char + mov g5,g6 # save word that has char in it (at least once) + subo 4,g2,g0 # save addr of byte after word with char + b Lsearch_for_word_with_char_or_null + +Lword_has_null: + subo 4,g2,g2 # move src pointer back to word with null +Lfind_null: + addo 1,g2,g2 # advance src pointer to byte after current + and g7,g5,g14 # extract next byte + cmpo g1,g14 # is current byte char? + shro 8,g5,g5 # position next byte for extraction + bne 1f # skip if not char sought after + mov g2,g0 # save addr of byte after char + mov g3,g6 # save word of all char to short circuit search +1: cmpobne 0,g14,Lfind_null # is current byte null? + +Lfind_last_char: + rotate 8,g6,g6 # position next highest byte + and g7,g6,g5 # extract byte + subo 1,g0,g0 # move pointer to that byte (or nullify) + cmpobne g5,g1,Lfind_last_char # branch if not at char + + bx (g13) # g0 = addr of char in src (or null); g14 = 0 +Lrett: + ret + +/* end of strrchr */ diff --git a/newlib/libc/machine/m32r/Makefile.am b/newlib/libc/machine/m32r/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/m32r/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/m32r/Makefile.in b/newlib/libc/machine/m32r/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/m32r/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/m32r/aclocal.m4 b/newlib/libc/machine/m32r/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/m32r/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/m32r/configure b/newlib/libc/machine/m32r/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/m32r/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/m32r/configure.in b/newlib/libc/machine/m32r/configure.in new file mode 100644 index 000000000..e53227db5 --- /dev/null +++ b/newlib/libc/machine/m32r/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/m32r configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/m32r/setjmp.S b/newlib/libc/machine/m32r/setjmp.S new file mode 100644 index 000000000..e6938efe3 --- /dev/null +++ b/newlib/libc/machine/m32r/setjmp.S @@ -0,0 +1,52 @@ +# setjmp/longjmp for m32r. The jmpbuf looks like this: +# +# Register jmpbuf offset +# reserved 0x00 +# R8 0x04 +# R9 0x08 +# R10 0x0c +# R11 0x10 +# R12 0x14 +# R13 (FP) 0x18 +# R14 (LR) 0x1c +# R15 (SP) 0x20 +# reserved 0x24 + + .text + .global setjmp +setjmp: + ;addi r0, #-4 ; commented out as first word is reserved + ;st r1, @+r0 + st r8, @+r0 + st r9, @+r0 + st r10, @+r0 + st r11, @+r0 + st r12, @+r0 + st r13, @+r0 + st r14, @+r0 + st r15, @+r0 + +# Return 0 to caller. + ldi r0, #0 + jmp lr + + .global longjmp +longjmp: + addi r0, #4 ; first word is reserved + ;ld r1, @r0+ + ld r8, @r0+ + ld r9, @r0+ + ld r10, @r0+ + ld r11, @r0+ + ld r12, @r0+ + ld r13, @r0+ + ld r2, @r0+ ; return address + ld r15, @r0+ + +# If caller attempted to return 0, return 1 instead. + + mv r0, r1 + bnez r0, .Lnonzero + ldi r0, #1 +.Lnonzero: + jmp r2 diff --git a/newlib/libc/machine/m68k/Makefile.am b/newlib/libc/machine/m68k/Makefile.am new file mode 100644 index 000000000..62a2ef897 --- /dev/null +++ b/newlib/libc/machine/m68k/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S strcpy.c strlen.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/m68k/Makefile.in b/newlib/libc/machine/m68k/Makefile.in new file mode 100644 index 000000000..d21c0c733 --- /dev/null +++ b/newlib/libc/machine/m68k/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S strcpy.c strlen.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o strcpy.o strlen.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/m68k/aclocal.m4 b/newlib/libc/machine/m68k/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/m68k/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/m68k/configure b/newlib/libc/machine/m68k/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/m68k/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/m68k/configure.in b/newlib/libc/machine/m68k/configure.in new file mode 100644 index 000000000..628faed4d --- /dev/null +++ b/newlib/libc/machine/m68k/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/m68k configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/m68k/setjmp.S b/newlib/libc/machine/m68k/setjmp.S new file mode 100644 index 000000000..02a02c4e1 --- /dev/null +++ b/newlib/libc/machine/m68k/setjmp.S @@ -0,0 +1,88 @@ +/* These are predefined by new versions of GNU cpp. */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +/* ANSI concatenation macros. */ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) + +/* Use the right prefix for registers. */ + +#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x) + +#define d0 REG (d0) +#define d1 REG (d1) +#define d2 REG (d2) +#define d3 REG (d3) +#define d4 REG (d4) +#define d5 REG (d5) +#define d6 REG (d6) +#define d7 REG (d7) +#define a0 REG (a0) +#define a1 REG (a1) +#define a2 REG (a2) +#define a3 REG (a3) +#define a4 REG (a4) +#define a5 REG (a5) +#define a6 REG (a6) +#define fp REG (fp) +#define sp REG (sp) + +.global SYM (setjmp) +.global SYM (longjmp) + +SYM (setjmp): + moveal sp@(4),a0 + movel sp@(0),a0@(12) + movel sp,a0@(8) + moveml d2-d7/a2-a6,a0@(20) + clrl d0 + rts + +SYM (longjmp): + moveal sp@(4),a0 + movel sp@(8),d0 + bne 1f + movel &1,d0 +1: + moveml a0@(20),d2-d7/a2-a6 + moveal a0@(8),sp + movel a0@(12),sp@ + rts + +#ifdef M68881 +.global SYM (setjmp_68881) +.global SYM (longjmp_68881) + +SYM (setjmp_68881): + moveal sp@(4),a0 + movel sp@(0),a0@(12) + movel sp,a0@(8) + moveml d2-d7/a2-a6,a0@(20) + fmovemx fp2-fp7,a0@(64) + clrl d0 + rts + +SYM (longjmp_68881): + moveal sp@(4),a0 + fmovemx a0@(64),fp2-fp7 + movel sp@(8),d0 + bne 1f + movel &1,d0 +1: + moveml a0@(20),d2-d7/a2-a6 + moveal a0@(8),sp + movel a0@(12),sp@ + rts +#endif diff --git a/newlib/libc/machine/m68k/strcpy.c b/newlib/libc/machine/m68k/strcpy.c new file mode 100644 index 000000000..ccc914193 --- /dev/null +++ b/newlib/libc/machine/m68k/strcpy.c @@ -0,0 +1,36 @@ +/* + * C library strcpy routine + * + * This routine has been optimized for the CPU32+. + * It should run on all 68k machines. + * + * W. Eric Norum + * Saskatchewan Accelerator Laboratory + * University of Saskatchewan + * Saskatoon, Saskatchewan, CANADA + * eric@skatter.usask.ca + */ + +#include <string.h> + +/* + * Copy bytes using CPU32+ loop mode if possible + */ + +char * +strcpy (char *to, const char *from) +{ + char *pto = to; + unsigned int n = 0xFFFF; + + asm volatile ("1:\n" + "\tmove.b (%0)+,(%1)+\n" +#if defined(__mcpu32__) + "\tdbeq %2,1b\n" +#endif + "\tbne.b 1b\n" : + "=a" (from), "=a" (pto), "=d" (n) : + "0" (from), "1" (pto), "2" (n) : + "cc", "memory"); + return to; +} diff --git a/newlib/libc/machine/m68k/strlen.c b/newlib/libc/machine/m68k/strlen.c new file mode 100644 index 000000000..589a69751 --- /dev/null +++ b/newlib/libc/machine/m68k/strlen.c @@ -0,0 +1,35 @@ +/* + * C library strlen routine + * + * This routine has been optimized for the CPU32+. + * It should run on all 68k machines. + * + * W. Eric Norum + * Saskatchewan Accelerator Laboratory + * University of Saskatchewan + * Saskatoon, Saskatchewan, CANADA + * eric@skatter.usask.ca + */ + +#include <string.h> + +/* + * Test bytes using CPU32+ loop mode if possible. + */ +size_t +strlen (const char *str) +{ + unsigned int n = ~0; + const char *cp = str; + + asm volatile ("1:\n" + "\ttst.b (%0)+\n" +#if defined(__mcpu32__) + "\tdbeq %1,1b\n" +#endif + "\tbne.b 1b\n" : + "=a" (cp), "=d" (n) : + "0" (cp), "1" (n) : + "cc"); + return (cp - str) - 1; +} diff --git a/newlib/libc/machine/m88k/Makefile.am b/newlib/libc/machine/m88k/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/m88k/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/m88k/Makefile.in b/newlib/libc/machine/m88k/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/m88k/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/m88k/aclocal.m4 b/newlib/libc/machine/m88k/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/m88k/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/m88k/configure b/newlib/libc/machine/m88k/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/m88k/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/m88k/configure.in b/newlib/libc/machine/m88k/configure.in new file mode 100644 index 000000000..d78864a39 --- /dev/null +++ b/newlib/libc/machine/m88k/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/m88k configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/m88k/setjmp.S b/newlib/libc/machine/m88k/setjmp.S new file mode 100644 index 000000000..24d44b6b1 --- /dev/null +++ b/newlib/libc/machine/m88k/setjmp.S @@ -0,0 +1,48 @@ +/* This is a simple version of setjmp and longjmp. + + Ian Lance Taylor, Cygnus Support, 15 July 1993. */ + +/* We need to save the address of the return instruction, which is in + r1, as well as general register r14 through r25. If we are + compiling for the 88110 with the extended register file, we also + need to save registers x22 through x29. The jmp_buf should be 52 + bytes long in the one case, 84 bytes in the other. */ + +/* int setjmp (jmp_buf); */ + globl _setjmp +_setjmp: + st r1,r2,0 + st.d r14,r2,4 + st.d r16,r2,12 + st.d r18,r2,20 + st.d r20,r2,28 + st.d r22,r2,36 + st.d r24,r2,44 +#ifdef __m88110__ + /* These instructions are just a guess, and gas doesn't + support them anyhow. */ + st.d x22,r2,52 + st.d x24,r2,60 + st.d x26,r2,68 + st.d x28,r2,76 +#endif + jmp r1 + + global _longjmp +_longjmp: + ld r1,r2,0 + ld.d r14,r2,4 + ld.d r16,r2,12 + ld.d r18,r2,20 + ld.d r20,r2,28 + ld.d r22,r2,36 + ld.d r24,r2,44 +#ifdef __m88110__ + /* These instructions are just a guess, and gas doesn't + support them anyhow. */ + ld.d x22,r2,52 + ld.d x24,r2,60 + ld.d x26,r2,68 + ld.d x28,r2,76 +#endif + jmp r1 diff --git a/newlib/libc/machine/mips/Makefile.am b/newlib/libc/machine/mips/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/mips/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/mips/Makefile.in b/newlib/libc/machine/mips/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/mips/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/mips/aclocal.m4 b/newlib/libc/machine/mips/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/mips/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/mips/configure b/newlib/libc/machine/mips/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/mips/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/mips/configure.in b/newlib/libc/machine/mips/configure.in new file mode 100644 index 000000000..64d4855db --- /dev/null +++ b/newlib/libc/machine/mips/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/mips configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/mips/machine/regdef.h b/newlib/libc/machine/mips/machine/regdef.h new file mode 100644 index 000000000..3906de6f4 --- /dev/null +++ b/newlib/libc/machine/mips/machine/regdef.h @@ -0,0 +1,38 @@ +/* regdef.h -- define MIPS register names. */ + +#ifndef mips_regdef_h + +#define zero $0 +#define v0 $2 +#define v1 $3 +#define a0 $4 +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define t0 $8 +#define t1 $9 +#define t2 $10 +#define t3 $11 +#define t4 $12 +#define t5 $13 +#define t6 $14 +#define t7 $15 +#define s0 $16 +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 +#define t9 $25 +#define k0 $26 +#define k1 $27 +#define gp $gp +#define sp $sp +#define s8 $30 +#define ra $31 +#define pc $pc + +#endif /* mips_regdef_h */ diff --git a/newlib/libc/machine/mips/setjmp.S b/newlib/libc/machine/mips/setjmp.S new file mode 100644 index 000000000..8ffda41a6 --- /dev/null +++ b/newlib/libc/machine/mips/setjmp.S @@ -0,0 +1,65 @@ +/* This is a simple version of setjmp and longjmp. + + This version does NOT save the floating point register, which is + wrong, but I don't know how to cleanly handle machines without a + floating point coprocessor. + + Ian Lance Taylor, Cygnus Support, 13 May 1993. */ + +#ifdef __mips16 +/* This file contains 32 bit assembly code. */ + .set nomips16 +#endif + +/* int setjmp (jmp_buf); */ + .globl setjmp + .ent setjmp +setjmp: + .frame $sp,0,$31 + + sw $16,0($4) /* $s0 */ + sw $17,4($4) /* $s1 */ + sw $18,8($4) /* $s2 */ + sw $19,12($4) /* $s3 */ + sw $20,16($4) /* $s4 */ + sw $21,20($4) /* $s5 */ + sw $22,24($4) /* $s6 */ + sw $23,28($4) /* $s7 */ + sw $30,32($4) /* $s8 */ + + sw $sp,36($4) + sw $31,40($4) + + move $2,$0 + + j $31 + + .end setjmp + +/* volatile void longjmp (jmp_buf, int); */ + .globl longjmp + .ent longjmp +longjmp: + .frame $sp,0,$31 + + lw $16,0($4) /* $s0 */ + lw $17,4($4) /* $s1 */ + lw $18,8($4) /* $s2 */ + lw $19,12($4) /* $s3 */ + lw $20,16($4) /* $s4 */ + lw $21,20($4) /* $s5 */ + lw $22,24($4) /* $s6 */ + lw $23,28($4) /* $s7 */ + lw $30,32($4) /* $s8 */ + + lw $sp,36($4) + lw $31,40($4) + + bne $5,$0,1f + li $5,1 +1: + move $2,$5 + + j $31 + + .end longjmp diff --git a/newlib/libc/machine/mn10200/Makefile.am b/newlib/libc/machine/mn10200/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/mn10200/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/mn10200/Makefile.in b/newlib/libc/machine/mn10200/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/mn10200/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/mn10200/aclocal.m4 b/newlib/libc/machine/mn10200/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/mn10200/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/mn10200/configure b/newlib/libc/machine/mn10200/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/mn10200/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/mn10200/configure.in b/newlib/libc/machine/mn10200/configure.in new file mode 100644 index 000000000..a6ef29e09 --- /dev/null +++ b/newlib/libc/machine/mn10200/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/mn10200 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/mn10200/setjmp.S b/newlib/libc/machine/mn10200/setjmp.S new file mode 100644 index 000000000..f0036b120 --- /dev/null +++ b/newlib/libc/machine/mn10200/setjmp.S @@ -0,0 +1,33 @@ + .file "setjmp.S" + + .section .text + .align 1 + .global _setjmp +_setjmp: + mov d0,a0 + movx d2,(0,a0) + movx d3,(4,a0) + mov a1,(8,a0) + mov a2,(12,a0) + mov a3,(16,a0) + movx (0,a3),d0 + movx d0,(20,a0) + sub d0,d0 + rts + + .global _longjmp +_longjmp: + mov d0,a0 + movx (0,a0),d2 + movx (4,a0),d3 + mov (8,a0),a1 + mov (12,a0),a2 + mov (16,a0),a3 + movx (20,a0),d0 + movx d0,(0,a3) + cmp 0,d1 + bne L1 + mov 1,d1 +L1: + mov d1,d0 + rts diff --git a/newlib/libc/machine/mn10300/Makefile.am b/newlib/libc/machine/mn10300/Makefile.am new file mode 100644 index 000000000..cf04c3ab9 --- /dev/null +++ b/newlib/libc/machine/mn10300/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S memchr.S memcmp.S memcpy.S memset.S strchr.S \ + strcmp.S strcpy.S strlen.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/mn10300/Makefile.in b/newlib/libc/machine/mn10300/Makefile.in new file mode 100644 index 000000000..40311b712 --- /dev/null +++ b/newlib/libc/machine/mn10300/Makefile.in @@ -0,0 +1,321 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S memchr.S memcmp.S memcpy.S memset.S strchr.S \ + strcmp.S strcpy.S strlen.S + + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o memchr.o memcmp.o memcpy.o memset.o strchr.o \ +strcmp.o strcpy.o strlen.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/mn10300/aclocal.m4 b/newlib/libc/machine/mn10300/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/mn10300/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/mn10300/configure b/newlib/libc/machine/mn10300/configure new file mode 100755 index 000000000..5377ef3aa --- /dev/null +++ b/newlib/libc/machine/mn10300/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=memchr.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/mn10300/configure.in b/newlib/libc/machine/mn10300/configure.in new file mode 100644 index 000000000..6db494158 --- /dev/null +++ b/newlib/libc/machine/mn10300/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/mn10300 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(memchr.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/mn10300/memchr.S b/newlib/libc/machine/mn10300/memchr.S new file mode 100644 index 000000000..4a808f9c6 --- /dev/null +++ b/newlib/libc/machine/mn10300/memchr.S @@ -0,0 +1,76 @@ + .file "memchr.S" + + .section .text + .global _memchr + .type _memchr,@function +_memchr: + movm [d2,d3,a2,a3],(sp) + mov d0,a0 + mov d1,d2 + mov (28,sp),a1 +#ifndef __OPTIMIZE_SIZE__ + cmp 3,a1 + bls .L44 + mov a0,d3 + btst 3,d3 + bne .L44 + mov a0,a2 + mov 0,a3 + clr d1 +.L29: + setlb + mov a3,d0 + asl 8,d0 + mov d2,a3 + add d0,a3 + inc d1 + cmp 3,d1 + lls + cmp 3,a1 + bls .L48 +.L33: + mov (a2),d0 + mov a3,d3 + xor d3,d0 + mov d0,d1 + not d1 + add -16843009,d0 + and d1,d0 + btst -2139062144,d0 + beq .L34 + mov a2,a0 + clr d1 +.L38: + setlb + movbu (a0),d0 + cmp d2,d0 + beq .L47 + inc a0 + inc d1 + cmp 3,d1 + lls +.L34: + add -4,a1 + inc4 a2 + cmp 3,a1 + bhi .L33 +.L48: + mov a2,a0 +#endif +.L44: + cmp 0,a1 + beq .L50 +.L49: + setlb + movbu (a0),d0 + cmp d2,d0 + beq .L47 + inc a0 + sub 1,a1 + lne +.L50: + mov 0,a0 +.L47: + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _memchr,.Lfe1-_memchr diff --git a/newlib/libc/machine/mn10300/memcmp.S b/newlib/libc/machine/mn10300/memcmp.S new file mode 100644 index 000000000..41774892b --- /dev/null +++ b/newlib/libc/machine/mn10300/memcmp.S @@ -0,0 +1,53 @@ + .file "memcmp.S" + + .section .text + .global _memcmp + .type _memcmp,@function +_memcmp: + movm [d2,d3,a2,a3],(sp) + mov d0,a0 + mov d1,a1 + mov (28,sp),a2 +#ifndef __OPTIMIZE_SIZE__ + cmp 3,a2 + bls .L22 + mov a1,d2 + or d2,d0 + btst 3,d0 + bne .L22 +.L17: + setlb + mov (a0),d1 + mov (a1),d0 + cmp d0,d1 + bne .L22 + inc4 a0 + inc4 a1 + add -4,a2 + cmp 3,a2 + lhi +#endif +.L22: + cmp 0,a2 + beq .L24 +.L18: + setlb + movbu (a0),d3 + movbu (a1),d2 + cmp d2,d3 + beq .L23 + mov d3,d0 + sub d2,d0 + jmp .L25 +.L23: + inc a0 + inc a1 +.L26: + sub 1,a2 + lne +.L24: + clr d0 +.L25: + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _memcmp,.Lfe1-_memcmp diff --git a/newlib/libc/machine/mn10300/memcpy.S b/newlib/libc/machine/mn10300/memcpy.S new file mode 100644 index 000000000..da4a21e30 --- /dev/null +++ b/newlib/libc/machine/mn10300/memcpy.S @@ -0,0 +1,68 @@ + .file "memcpy.S" + + .section .text + .global _memcpy + .type _memcpy,@function +_memcpy: + movm [d2,d3,a2,a3],(sp) + mov d0,d2 + mov d1,a0 + mov d2,a1 + mov (28,sp),d1 +#ifndef __OPTIMIZE_SIZE__ + mov a0,d0 + or d2,d0 + btst 3,d0 + bne .L37 + cmp 15,d1 + bls .L34 +.L29: + setlb + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + add -16,d1 + cmp 15,d1 + lhi +.L34: + cmp 3,d1 + bls .L37 +.L33: + setlb + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + add -4,d1 + cmp 3,d1 + lhi +#endif +.L37: + cmp 0,d1 + beq .L36 +.L38: + setlb + movbu (a0),d0 + movbu d0,(a1) + inc a0 + inc a1 + sub 1,d1 + lne +.L36: + mov d2,a0 + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _memcpy,.Lfe1-_memcpy diff --git a/newlib/libc/machine/mn10300/memset.S b/newlib/libc/machine/mn10300/memset.S new file mode 100644 index 000000000..65b2ff53b --- /dev/null +++ b/newlib/libc/machine/mn10300/memset.S @@ -0,0 +1,63 @@ + .file "memset.S" + + .section .text + .global _memset + .type _memset,@function +_memset: + movm [d2,d3,a2,a3],(sp) + mov d0,d3 + mov d1,d2 + mov (28,sp),a1 + mov d3,a0 +#ifndef __OPTIMIZE_SIZE__ + cmp 3,a1 + bls .L41 + btst 3,d3 + bne .L41 + extbu d2 + mov d2,d1 + asl 8,d1 + or d2,d1 + mov d1,d0 + asl 16,d0 + or d0,d1 + cmp 15,a1 + bls .L36 +.L33: + setlb + mov d1,(a0) + inc4 a0 + mov d1,(a0) + inc4 a0 + mov d1,(a0) + inc4 a0 + mov d1,(a0) + inc4 a0 + add -16,a1 + cmp 15,a1 + lhi +.L36: + cmp 3,a1 + bls .L41 +.L37: + setlb + mov d1,(a0) + inc4 a0 + add -4,a1 + cmp 3,a1 + lhi +#endif +.L41: + cmp 0,a1 + beq .L47 +.L46: + setlb + movbu d2,(a0) + inc a0 + sub 1,a1 + lne +.L47: + mov d3,a0 + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _memset,.Lfe1-_memset diff --git a/newlib/libc/machine/mn10300/setjmp.S b/newlib/libc/machine/mn10300/setjmp.S new file mode 100644 index 000000000..006aa3e1c --- /dev/null +++ b/newlib/libc/machine/mn10300/setjmp.S @@ -0,0 +1,50 @@ + .file "setjmp.S" + + .section .text + .align 1 + .global _setjmp +#ifdef __AM33__ + .am33 +#endif +_setjmp: + mov d0,a0 + mov d2,(0,a0) + mov d3,(4,a0) + mov mdr,d1 + mov d1,(8,a0) + mov a2,(12,a0) + mov a3,(16,a0) + mov sp,a1 + mov a1,(20,a0) +#ifdef __AM33__ + mov r4,(24,a0) + mov r5,(28,a0) + mov r6,(32,a0) + mov r7,(36,a0) +#endif + sub d0,d0 + rets + + .global _longjmp +_longjmp: + mov d0,a0 + mov (8,a0),d2 + mov d2,mdr + mov (0,a0),d2 + mov (4,a0),d3 + mov (12,a0),a2 + mov (16,a0),a3 + mov (20,a0),a1 + mov a1,sp +#ifdef __AM33__ + mov (24,a0),r4 + mov (28,a0),r5 + mov (32,a0),r6 + mov (36,a0),r7 +#endif + cmp 0,d1 + bne L1 + mov 1,d1 +L1: + mov d1,d0 + retf [],0 diff --git a/newlib/libc/machine/mn10300/strchr.S b/newlib/libc/machine/mn10300/strchr.S new file mode 100644 index 000000000..aa4799091 --- /dev/null +++ b/newlib/libc/machine/mn10300/strchr.S @@ -0,0 +1,88 @@ + .file "strchr.S" + + .section .text + .global _strchr + .type _strchr,@function +_strchr: + movm [d2,d3,a2,a3],(sp) + add -12,sp + mov d0,a1 + movbu d1,(7,sp) +#ifndef __OPTIMIZE_SIZE__ + btst 3,d0 + bne .L20 + clr d0 +.L24: + setlb + mov sp,a2 + mov d0,d3 + add d3,a2 + mov a2,a0 + add 12,a0 + movbu (7,sp),d3 + movbu d3,(-4,a0) + inc d0 + cmp 3,d0 + lls + mov a1,a0 + mov -16843009,a1 + mov (a0),d2 + mov a1,d1 + add d2,d1 + mov d2,d0 + not d0 + and d0,d1 + mov -2139062144,d3 + mov d3,(0,sp) + btst -2139062144,d1 + bne .L27 + jmp .L38 +.L28: + inc4 a0 + mov (a0),d2 + mov a1,d1 + add d2,d1 + mov d2,d0 + not d0 + and d0,d1 + mov (0,sp),d3 + and d3,d1 + bne .L27 +.L38: + mov (8,sp),d0 + xor d2,d0 + mov a1,d1 + add d0,d1 + not d0 + and d0,d1 + and d3,d1 + beq .L28 +.L27: + mov a0,a1 +#endif +.L20: + movbu (a1),d0 + cmp 0,d0 + beq .L32 + movbu (7,sp),d1 +.L35: + setlb + cmp d1,d0 + beq .L36 + inc a1 + movbu (a1),d0 + cmp 0,d0 + lne +.L32: + movbu (7,sp),d0 + movbu (a1),d3 + cmp d0,d3 + beq .L36 + mov 0,a0 + jmp .L37 +.L36: + mov a1,a0 +.L37: + ret [d2,d3,a2,a3],28 +.Lfe1: + .size _strchr,.Lfe1-_strchr diff --git a/newlib/libc/machine/mn10300/strcmp.S b/newlib/libc/machine/mn10300/strcmp.S new file mode 100644 index 000000000..8aee9688a --- /dev/null +++ b/newlib/libc/machine/mn10300/strcmp.S @@ -0,0 +1,54 @@ + .file "strcmp.S" + + .section .text + .global _strcmp + .type _strcmp,@function +_strcmp: + movm [d2,d3,a2,a3],(sp) + mov d0,a0 + mov d1,a1 +#ifndef __OPTIMIZE_SIZE__ + or d1,d0 + btst 3,d0 + bne .L11 + mov (a0),d1 + mov (a1),d0 + cmp d0,d1 + bne .L11 + mov -16843009,d3 +.L5: + setlb + mov (a0),d0 + mov d3,d1 + add d0,d1 + not d0 + and d0,d1 + and -2139062144,d1 + beq .L6 + clr d0 + jmp .L13 +.L6: + inc4 a0 + inc4 a1 + mov (a0),d1 + mov (a1),d0 + cmp d0,d1 + leq +#endif +.L11: + setlb + movbu (a1),d2 + movbu (a0),d0 + cmp 0,d0 + beq .L9 + cmp d2,d0 + bne .L9 + inc a0 + inc a1 + lra +.L9: + sub d2,d0 +.L13: + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _strcmp,.Lfe1-_strcmp diff --git a/newlib/libc/machine/mn10300/strcpy.S b/newlib/libc/machine/mn10300/strcpy.S new file mode 100644 index 000000000..d73d06f33 --- /dev/null +++ b/newlib/libc/machine/mn10300/strcpy.S @@ -0,0 +1,51 @@ + .file "strcpy.S" + + .section .text + .global _strcpy + .type _strcpy,@function +_strcpy: + movm [d2,d3,a2,a3],(sp) + mov d0,d3 + mov d1,a0 + mov d3,a1 + mov a0,d0 +#ifndef __OPTIMIZE_SIZE__ + or d3,d0 + btst 3,d0 + bne .L2 + mov (a0),d0 + mov -16843009,a2 + mov a2,d1 + add d0,d1 + not d0 + and d0,d1 + mov -2139062144,d2 + btst -2139062144,d1 + bne .L2 +.L5: + setlb + mov (a0),d0 + mov d0,(a1) + inc4 a0 + inc4 a1 + mov (a0),d0 + mov a2,d1 + add d0,d1 + not d0 + and d0,d1 + and d2,d1 + leq +#endif +.L2: +.L7: + setlb + movbu (a0),d0 + movbu d0,(a1) + inc a0 + inc a1 + cmp 0,d0 + lne + mov d3,a0 + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _strcpy,.Lfe1-_strcpy diff --git a/newlib/libc/machine/mn10300/strlen.S b/newlib/libc/machine/mn10300/strlen.S new file mode 100644 index 000000000..91e88dd73 --- /dev/null +++ b/newlib/libc/machine/mn10300/strlen.S @@ -0,0 +1,44 @@ + .file "strlen.S" + + .section .text + .global _strlen + .type _strlen,@function +_strlen: + movm [d2,d3,a2,a3],(sp) + mov d0,a0 + mov a0,a2 +#ifndef __OPTIMIZE_SIZE__ + btst 3,d0 + bne .L21 + mov (a0),d0 + mov -16843009,a1 + mov a1,d1 + add d0,d1 + not d0 + and d0,d1 + mov -2139062144,d2 + btst -2139062144,d1 + bne .L21 +.L15: + setlb + inc4 a0 + mov (a0),d0 + mov a1,d1 + add d0,d1 + not d0 + and d0,d1 + and d2,d1 + leq + jmp .L21 +#endif +.L19: + inc a0 +.L21: + movbu (a0),d3 + cmp 0,d3 + bne .L19 + sub a2,a0 + mov a0,d0 + ret [d2,d3,a2,a3],16 +.Lfe1: + .size _strlen,.Lfe1-_strlen diff --git a/newlib/libc/machine/necv70/Makefile.am b/newlib/libc/machine/necv70/Makefile.am new file mode 100644 index 000000000..18cbcf706 --- /dev/null +++ b/newlib/libc/machine/necv70/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = fastmath.s setjmp.s + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/necv70/Makefile.in b/newlib/libc/machine/necv70/Makefile.in new file mode 100644 index 000000000..6c4cb6d4c --- /dev/null +++ b/newlib/libc/machine/necv70/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = fastmath.s setjmp.s + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = fastmath.o setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/necv70/aclocal.m4 b/newlib/libc/machine/necv70/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/necv70/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/necv70/configure b/newlib/libc/machine/necv70/configure new file mode 100755 index 000000000..7f8474fd1 --- /dev/null +++ b/newlib/libc/machine/necv70/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=fastmath.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/necv70/configure.in b/newlib/libc/machine/necv70/configure.in new file mode 100644 index 000000000..1374322ee --- /dev/null +++ b/newlib/libc/machine/necv70/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/necv70 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(fastmath.s) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/necv70/fastmath.s b/newlib/libc/machine/necv70/fastmath.s new file mode 100644 index 000000000..bccb20f12 --- /dev/null +++ b/newlib/libc/machine/necv70/fastmath.s @@ -0,0 +1,251 @@ + .globl _fast_sin +_fast_sin: + fsin.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_sinf +_fast_sinf: + fsin.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_cos +_fast_cos: + fcos.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_cosf +_fast_cosf: + fcos.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_tan +_fast_tan: + ftan.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_tanf +_fast_tanf: + ftan.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + + .globl _fast_fabs +_fast_fabs: + fabs.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_fabsf +_fast_fabsf: + fabs.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_sqrt +_fast_sqrt: + fsqrt.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_sqrtf +_fast_sqrtf: + fsqrt.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_acos +_fast_acos: + facos.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_acosf +_fast_acosf: + facos.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_asin +_fast_asin: + fasin.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_asinf +_fast_asinf: + fasin.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_atan +_fast_atan: + fatan.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_atanf +_fast_atanf: + fatan.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_cosh +_fast_cosh: + fcosh.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_coshf +_fast_coshf: + fcosh.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_sinh +_fast_sinh: + fsin.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_sinhf +_fast_sinhf: + fsin.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_tanh +_fast_tanh: + ftanh.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_tanhf +_fast_tanhf: + ftanh.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_atanh +_fast_atanh: + fatanh.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_atanhf +_fast_atanhf: + fatanh.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + .globl _fast_exp2 +_fast_exp2: + fexp2.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_exp2f +_fast_exp2f: + fexp2.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_exp10 +_fast_exp10: + fexp10.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_exp10f +_fast_exp10f: + fexp10.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_expe +_fast_expe: + fexpe.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_expef +_fast_expef: + fexpe.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_log2 +_fast_log2: + flog2.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_log2f +_fast_log2f: + flog2.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + .globl _fast_log10 +_fast_log10: + flog10.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_log10f +_fast_log10f: + flog10.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + + .globl _fast_loge +_fast_loge: + floge.l [ap],[ap] + mov.d [ap],r0 + ret #0 + + + .globl _fast_logef +_fast_logef: + floge.s [ap],[ap] + mov.w [ap],r0 + ret #0 + + diff --git a/newlib/libc/machine/necv70/machine/registers.h b/newlib/libc/machine/necv70/machine/registers.h new file mode 100644 index 000000000..9f02ed30c --- /dev/null +++ b/newlib/libc/machine/necv70/machine/registers.h @@ -0,0 +1,14 @@ + + +typedef struct +{ + int fp_rounding:2; /* fp rounding control */ + int integer_rounding:1; /* integer rounding */ + int rfu:1; /* reserved */ + int fp_trap:5; /* floating point trap bits */ + int otm:1; + int rfu2:3; + int att:3; + int rfu3:16; +} v60_tkcw_type; + diff --git a/newlib/libc/machine/necv70/necv70.tex b/newlib/libc/machine/necv70/necv70.tex new file mode 100644 index 000000000..be5397f44 --- /dev/null +++ b/newlib/libc/machine/necv70/necv70.tex @@ -0,0 +1,99 @@ +@node machine,,syscalls,Top +@chapter NEC V70 Specific Functions + +The NEC V70 has machine instructions for fast IEEE floating point, +including operations normally provided by the library. + +When you use the @file{/usr/include/fastmath.h} header file, the +names of several library math functions are redefined to call the +@code{fastmath} routine (using the corresponding V70 machine instructions) +whenever possible. + +For example, +@example + +#include <fastmath.h> + +double sqsin(x) +double x; +@{ + return sin(x*x); +@} + +@end example +expands into the code +@example + +@dots{} +double sqsin(x) +double x; +@{ + return fast_sin(x*x); +@} + +@end example + +The library has an entry @code{fast_sin} which uses the machine +instruction @code{fsin.l} to perform the operation. Note that the +built-in instructions cannot call @code{matherr} or set @code{errno} +in the same way that the C coded functions do. Refer to a V70 +instruction manual to see how errors are generated and handled. + +Also, the library provides true @code{float} entry points. The +@code{fast_sinf} entry point really performs a @code{fsin.s} +operation. Because of this, the instructions are only useful when +using code compiled with an ANSI C compiler. The prototypes +and definitions for the floating point versions of the math library +routines are only defined if compiling a module with an ANSI C +compiler. + +@page +@section Entry points +The functions provided by @file{fastmath.h} are +@example + + double fast_sin(double); /* fsin.l */ + double fast_cos(double); /* fcos.l */ + double fast_tan(double); /* ftan.l */ + double fast_asin(double); /* fasin.l */ + double fast_acos(double); /* facos.l */ + double fast_atan(double); /* fatan.l */ + double fast_sinh(double); /* fsinh.l */ + double fast_cosh(double); /* fcosh.l */ + double fast_tanh(double); /* ftanh.l */ + double fast_asinh(double); /* fasinh.l */ + double fast_acosh(double); /* facosh.l */ + double fast_atanh(double); /* fatanh.l */ + double fast_fabs(double); /* fabs.l */ + double fast_sqrt(double); /* fsqrt.l */ + double fast_exp2(double); /* fexp2.l */ + double fast_exp10(double); /* fexp10.l */ + double fast_expe(double); /* fexpe.l */ + double fast_log10(double); /* flog10.l */ + double fast_log2(double); /* flog2.l */ + double fast_loge(double); /* floge.l */ + + float fast_sinf(float); /* fsin.s */ + float fast_cosf(float); /* fcos.s */ + float fast_tanf(float); /* ftan.s */ + float fast_asinf(float); /* fasin.s */ + float fast_acosf(float); /* facos.s */ + float fast_atanf(float); /* fatan.s */ + float fast_sinhf(float); /* fsinh.s */ + float fast_coshf(float); /* fcosh.s */ + float fast_tanhf(float); /* ftanh.s */ + float fast_asinhf(float); /* fasinh.s */ + float fast_acoshf(float); /* facosh.s */ + float fast_atanhf(float); /* fatanh.s */ + float fast_fabsf(float); /* fabs.s */ + float fast_sqrtf(float); /* fsqrt.s */ + float fast_exp2f(float); /* fexp2.s */ + float fast_exp10f(float); /* fexp10.s */ + float fast_expef(float); /* fexpe.s */ + float fast_log10f(float); /* flog10.s */ + float fast_log2f(float); /* flog2.s */ + float fast_logef(float); /* floge.s */ + +@end example + + diff --git a/newlib/libc/machine/necv70/setjmp.s b/newlib/libc/machine/necv70/setjmp.s new file mode 100644 index 000000000..d8aca1dfb --- /dev/null +++ b/newlib/libc/machine/necv70/setjmp.s @@ -0,0 +1,33 @@ + .globl _setjmp +_setjmp: + mov.w [ap],r0 + mov.d r15,[r0+] + mov.d r17,[r0+] + mov.d r19,[r0+] + mov.d r21,[r0+] + mov.d r23,[r0+] + mov.w -0x4[ap],[r0+] + mov.w fp,[r0+] + mov.w ap,[r0+] + mov.w -0x8[ap],[r0] + xor.w r0,r0 + ret #0x0 + + .globl _longjmp +_longjmp: + mov.w 0x4[ap],r0 + mov.w [ap],r1 + mov.d [r1+],r15 + mov.d [r1+],r17 + mov.d [r1+],r19 + mov.d [r1+],r21 + mov.d [r1+],r23 + mov.d [r1+],ap + mov.w [r1+],sp + test.w r0 + jne noz + mov.w #0x1,r0 +noz: jmp [0x0[r1]] + + + diff --git a/newlib/libc/machine/powerpc/Makefile.am b/newlib/libc/machine/powerpc/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/powerpc/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/powerpc/Makefile.in b/newlib/libc/machine/powerpc/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/powerpc/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/powerpc/aclocal.m4 b/newlib/libc/machine/powerpc/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/powerpc/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/powerpc/configure b/newlib/libc/machine/powerpc/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/powerpc/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/powerpc/configure.in b/newlib/libc/machine/powerpc/configure.in new file mode 100644 index 000000000..47b9eab78 --- /dev/null +++ b/newlib/libc/machine/powerpc/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/powerpc configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/powerpc/setjmp.S b/newlib/libc/machine/powerpc/setjmp.S new file mode 100644 index 000000000..c1376912f --- /dev/null +++ b/newlib/libc/machine/powerpc/setjmp.S @@ -0,0 +1,118 @@ +/* This is a simple version of setjmp and longjmp for the PowerPC. + Ian Lance Taylor, Cygnus Support, 9 Feb 1994. */ + +#include "ppc-asm.h" + +FUNC_START(setjmp) + addi 3,3,7 # align to 8 byte boundary + rlwinm 3,3,0,0,28 + stw 1,0(3) # offset 0 + stwu 2,4(3) # offset 4 + stwu 13,4(3) # offset 8 + stwu 14,4(3) # offset 12 + stwu 15,4(3) # offset 16 + stwu 16,4(3) # offset 20 + stwu 17,4(3) # offset 24 + stwu 18,4(3) # offset 28 + stwu 19,4(3) # offset 32 + stwu 20,4(3) # offset 36 + stwu 21,4(3) # offset 40 + stwu 22,4(3) # offset 44 + stwu 23,4(3) # offset 48 + stwu 24,4(3) # offset 52 + stwu 25,4(3) # offset 56 + stwu 26,4(3) # offset 60 + stwu 27,4(3) # offset 64 + stwu 28,4(3) # offset 68 + stwu 29,4(3) # offset 72 + stwu 30,4(3) # offset 76 + stwu 31,4(3) # offset 80 + mflr 4 + stwu 4,4(3) # offset 84 + mfcr 4 + stwu 4,4(3) # offset 88 + # one word pad to get floating point aligned on 8 byte boundary +#ifndef _SOFT_FLOAT + stfdu 14,8(3) # offset 96 + stfdu 15,8(3) # offset 104 + stfdu 16,8(3) # offset 112 + stfdu 17,8(3) # offset 120 + stfdu 18,8(3) # offset 128 + stfdu 19,8(3) # offset 136 + stfdu 20,8(3) # offset 144 + stfdu 21,8(3) # offset 152 + stfdu 22,8(3) # offset 160 + stfdu 23,8(3) # offset 168 + stfdu 24,8(3) # offset 176 + stfdu 25,8(3) # offset 184 + stfdu 26,8(3) # offset 192 + stfdu 27,8(3) # offset 200 + stfdu 28,8(3) # offset 208 + stfdu 29,8(3) # offset 216 + stfdu 30,8(3) # offset 224 + stfdu 31,8(3) # offset 232 +#endif + + /* This requires a total of 21 * 4 + 18 * 8 + 4 + 4 + 4 + bytes == 60 * 4 bytes == 240 bytes. */ + + li 3,0 + blr +FUNC_END(setjmp) + + +FUNC_START(longjmp) + addi 3,3,7 # align to 8 byte boundary + rlwinm 3,3,0,0,28 + lwz 1,0(3) # offset 0 + lwzu 2,4(3) # offset 4 + lwzu 13,4(3) # offset 8 + lwzu 14,4(3) # offset 12 + lwzu 15,4(3) # offset 16 + lwzu 16,4(3) # offset 20 + lwzu 17,4(3) # offset 24 + lwzu 18,4(3) # offset 28 + lwzu 19,4(3) # offset 32 + lwzu 20,4(3) # offset 36 + lwzu 21,4(3) # offset 40 + lwzu 22,4(3) # offset 44 + lwzu 23,4(3) # offset 48 + lwzu 24,4(3) # offset 52 + lwzu 25,4(3) # offset 56 + lwzu 26,4(3) # offset 60 + lwzu 27,4(3) # offset 64 + lwzu 28,4(3) # offset 68 + lwzu 29,4(3) # offset 72 + lwzu 30,4(3) # offset 76 + lwzu 31,4(3) # offset 80 + lwzu 5,4(3) # offset 84 + mtlr 5 + lwzu 5,4(3) # offset 88 + mtcrf 255,5 + # one word pad to get floating point aligned on 8 byte boundary +#ifndef _SOFT_FLOAT + lfdu 14,8(3) # offset 96 + lfdu 15,8(3) # offset 104 + lfdu 16,8(3) # offset 112 + lfdu 17,8(3) # offset 120 + lfdu 18,8(3) # offset 128 + lfdu 19,8(3) # offset 136 + lfdu 20,8(3) # offset 144 + lfdu 21,8(3) # offset 152 + lfdu 22,8(3) # offset 160 + lfdu 23,8(3) # offset 168 + lfdu 24,8(3) # offset 176 + lfdu 25,8(3) # offset 184 + lfdu 26,8(3) # offset 192 + lfdu 27,8(3) # offset 200 + lfdu 28,8(3) # offset 208 + lfdu 29,8(3) # offset 216 + lfdu 30,8(3) # offset 224 + lfdu 31,8(3) # offset 232 +#endif + + mr. 3,4 + bclr+ 4,2 + li 3,1 + blr +FUNC_END(longjmp) diff --git a/newlib/libc/machine/sh/Makefile.am b/newlib/libc/machine/sh/Makefile.am new file mode 100644 index 000000000..1aab718dd --- /dev/null +++ b/newlib/libc/machine/sh/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = memcpy.S memset.S setjmp.S strcpy.S strcmp.S + +memcpy.o: asm.h +memset.o: asm.h +setjmp.o: asm.h +strcpy.o: asm.h +strcmp.o: asm.h + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/sh/Makefile.in b/newlib/libc/machine/sh/Makefile.in new file mode 100644 index 000000000..97cf13653 --- /dev/null +++ b/newlib/libc/machine/sh/Makefile.in @@ -0,0 +1,303 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = memcpy.S memset.S setjmp.S strcpy.S strcmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = memcpy.o memset.o setjmp.o strcpy.o strcmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +memcpy.o: asm.h +memset.o: asm.h +setjmp.o: asm.h +strcpy.o: asm.h +strcmp.o: asm.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/sh/aclocal.m4 b/newlib/libc/machine/sh/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/sh/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/sh/asm.h b/newlib/libc/machine/sh/asm.h new file mode 100644 index 000000000..ed27fdb1e --- /dev/null +++ b/newlib/libc/machine/sh/asm.h @@ -0,0 +1,22 @@ +#ifdef __STDC__ +# define _C_LABEL(x) _ ## x +#else +# define _C_LABEL(x) _/**/x +#endif +#define _ASM_LABEL(x) x + +#define _ENTRY(name) \ + .text; .align 2; .globl name; name: + +#define ENTRY(name) \ + _ENTRY(_C_LABEL(name)) + +#if (defined (__sh2__) || defined (__sh3__) || defined (__SH3E__) \ + || defined (__SH4_SINGLE__) || defined (__SH4__)) || defined(__SH4_SINGLE_ONLY__) +#define DELAYED_BRANCHES +#define SL(branch, dest, in_slot, in_slot_arg2) \ + branch##.s dest; in_slot, in_slot_arg2 +#else +#define SL(branch, dest, in_slot, in_slot_arg2) \ + in_slot, in_slot_arg2; branch dest +#endif diff --git a/newlib/libc/machine/sh/configure b/newlib/libc/machine/sh/configure new file mode 100755 index 000000000..3b8068ab1 --- /dev/null +++ b/newlib/libc/machine/sh/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=asm.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/sh/configure.in b/newlib/libc/machine/sh/configure.in new file mode 100644 index 000000000..ffd27974d --- /dev/null +++ b/newlib/libc/machine/sh/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/sh configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(asm.h) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/sh/memcpy.S b/newlib/libc/machine/sh/memcpy.S new file mode 100644 index 000000000..4df72e371 --- /dev/null +++ b/newlib/libc/machine/sh/memcpy.S @@ -0,0 +1,221 @@ +! +! Fast SH memcpy +! +! by Toshiyasu Morita (tm@netcom.com) +! hacked by J"orn Rernnecke (amylaar@cygnus.co.uk) ("o for o-umlaut) +! +! Entry: r4: destination pointer +! r5: source pointer +! r6: byte count +! +! Exit: r0: destination pointer +! r1-r7: trashed +! +! Notes: Usually one wants to do small reads and write a longword, but +! unfortunately it is difficult in some cases to concatanate bytes +! into a longword on the SH, so this does a longword read and small +! writes. +! +! This implementation makes two assumptions about how it is called: +! +! 1.: If the byte count is nonzero, the address of the last byte to be +! copied is unsigned greater than the address of the first byte to +! be copied. This could be easily swapped for a signed comparison, +! but the algorithm used needs some comparison. +! +! 2.: When there are two or three bytes in the last word of an 11-or-bore +! bytes memory chunk to b copied, the rest of the word can be read +! without size effects. +! This could be easily changed by increasing the minumum size of +! a fast memcpy and the amount subtracted from r7 before L_2l_loop be 2, +! however, this would cost a few extra cyles on average. +! + +#include "asm.h" + +ENTRY(memcpy) +#ifdef __LITTLE_ENDIAN__ + ! Little endian version copies with increasing addresses. + mov r4,r3 ! Save return value + mov #11,r0 ! Check if small number of bytes + cmp/hs r0,r6 + ! r6 becomes src end address + SL(bf, L_small, add r5,r6) + mov #1,r1 + tst r1,r5 ! check if source even + SL(bt, L_even, mov r6,r7) + mov.b @r5+,r0 ! no, make it even. + mov.b r0,@r4 + add #1,r4 +L_even: tst r1,r4 ! check if destination is even + add #-3,r7 + SL(bf, L_odddst, mov #2,r1) + tst r1,r4 ! check if destination is 4-byte aligned + mov r4,r0 + SL(bt, L_al4dst, sub r5,r0) + mov.w @r5+,r2 + mov.w r2,@r4 + ! add #2,r4 r4 is dead here. +L_al4dst: + tst r1,r5 + bt L_al4both + mov.w @r5+,r1 + swap.w r1,r1 + add #-6,r0 + add #-6,r7 ! r7 := src end address minus 9. + .align 2 +L_2l_loop: + mov.l @r5+,r2 ! Read & write two longwords per iteration + xtrct r2,r1 + mov.l r1,@(r0,r5) + cmp/hs r7,r5 + mov.l @r5+,r1 + xtrct r1,r2 + mov.l r2,@(r0,r5) + bf L_2l_loop + add #-2,r5 + bra L_cleanup + add #5,r0 +L_al4both: + add #-4,r0 + .align 2 +L_al4both_loop: + mov.l @r5+,r4 ! Read longword, write longword per iteration + cmp/hs r7,r5 + SL(bf, L_al4both_loop, mov.l r4,@(r0,r5)) + + bra L_cleanup + add #3,r0 + +L_odddst: + tst r1,r5 + SL(bt, L_al4src, add #-1,r4) + mov.w @r5+,r0 + mov.b r0,@(1,r4) + shlr8 r0 + mov.b r0,@(2,r4) + add #2,r4 +L_al4src: + .align 2 +L_odd_loop: + mov.l @r5+,r0 ! Read longword, write byte, word, byte per iteration + cmp/hs r7,r5 + mov.b r0,@(1,r4) + shlr8 r0 + mov.w r0,@(2,r4) + shlr16 r0 + mov.b r0,@(4,r4) + SL(bf, L_odd_loop, add #4,r4) + .align 2 ! avoid nop in more frequently executed code. +L_cleanup2: + mov r4,r0 + sub r5,r0 +L_cleanup: + cmp/eq r6,r5 + bt L_ready + .align 2 +L_cleanup_loop: + mov.b @r5+,r1 + cmp/eq r6,r5 + mov.b r1,@(r0,r5) + bf L_cleanup_loop +L_ready: + rts + mov r3,r0 +L_small: + bra L_cleanup2 + add #-1,r4 +#else + ! Big endian version copies with decreasing addresses. + mov r4,r0 + add r6,r0 + sub r4,r5 + mov #11,r1 + cmp/hs r1,r6 + SL(bf, L_small, add #-1,r5) + mov r5,r3 + add r0,r3 + shlr r3 + SL(bt, L_even, + mov r4,r7) + mov.b @(r0,r5),r2 + add #-1,r3 + mov.b r2,@-r0 +L_even: + tst #1,r0 + add #-1,r5 + SL(bf, L_odddst, add #8,r7) + tst #2,r0 + bt L_al4dst + add #-1,r3 + mov.w @(r0,r5),r1 + mov.w r1,@-r0 +L_al4dst: + shlr r3 + bt L_al4both + mov.w @(r0,r5),r1 + swap.w r1,r1 + add #4,r7 + add #-4,r5 + .align 2 +L_2l_loop: + mov.l @(r0,r5),r2 + xtrct r2,r1 + mov.l r1,@-r0 + cmp/hs r7,r0 + mov.l @(r0,r5),r1 + xtrct r1,r2 + mov.l r2,@-r0 + bt L_2l_loop + bra L_cleanup + add #5,r5 + + nop ! avoid nop in executed code. +L_al4both: + add #-2,r5 + .align 2 +L_al4both_loop: + mov.l @(r0,r5),r1 + cmp/hs r7,r0 + SL(bt, L_al4both_loop, + mov.l r1,@-r0) + bra L_cleanup + add #3,r5 + + nop ! avoid nop in executed code. +L_odddst: + shlr r3 + bt L_al4src + mov.w @(r0,r5),r1 + mov.b r1,@-r0 + shlr8 r1 + mov.b r1,@-r0 +L_al4src: + add #-2,r5 + .align 2 +L_odd_loop: + mov.l @(r0,r5),r2 + cmp/hs r7,r0 + mov.b r2,@-r0 + shlr8 r2 + mov.w r2,@-r0 + shlr16 r2 + mov.b r2,@-r0 + bt L_odd_loop + + add #3,r5 +L_cleanup: +L_small: + cmp/eq r4,r0 + bt L_ready + add #1,r4 + .align 2 +L_cleanup_loop: + mov.b @(r0,r5),r2 + cmp/eq r4,r0 + mov.b r2,@-r0 + bf L_cleanup_loop +L_ready: + rts + nop +#endif diff --git a/newlib/libc/machine/sh/memset.S b/newlib/libc/machine/sh/memset.S new file mode 100644 index 000000000..7352b4141 --- /dev/null +++ b/newlib/libc/machine/sh/memset.S @@ -0,0 +1,64 @@ +! +! Fast SH memset +! +! by Toshiyasu Morita (tm@netcom.com) +! +! Entry: r4: destination pointer +! r5: fill value +! r6: byte count +! +! Exit: r0-r3: trashed +! + +! This assumes that the first four bytes of the address space (0..3) are +! reserved - usually by the linker script. Otherwise, we would had to check +! for the case of objects of the size 12..15 at address 0..3 . + +#include "asm.h" + +ENTRY(memset) + mov #12,r0 ! Check for small number of bytes + cmp/gt r6,r0 + mov r4,r0 + SL(bt, L_store_byte_loop_check0, add r4,r6) + + tst #3,r0 ! Align destination + SL(bt, L_dup_bytes, extu.b r5,r5) + .balignw 4,0x0009 +L_align_loop: + mov.b r5,@r0 + add #1,r0 + tst #3,r0 + bf L_align_loop + +L_dup_bytes: + swap.b r5,r2 ! Duplicate bytes across longword + or r2,r5 + swap.w r5,r2 + or r2,r5 + + add #-16,r6 + + .balignw 4,0x0009 +L_store_long_loop: + mov.l r5,@r0 ! Store double longs to memory + cmp/hs r6,r0 + mov.l r5,@(4,r0) + SL(bf, L_store_long_loop, add #8,r0) + + add #16,r6 + +L_store_byte_loop_check0: + cmp/eq r6,r0 + bt L_exit + .balignw 4,0x0009 +L_store_byte_loop: + mov.b r5,@r0 ! Store bytes to memory + add #1,r0 + cmp/eq r6,r0 + bf L_store_byte_loop + +L_exit: + rts + mov r4,r0 + diff --git a/newlib/libc/machine/sh/setjmp.S b/newlib/libc/machine/sh/setjmp.S new file mode 100644 index 000000000..363e8f23b --- /dev/null +++ b/newlib/libc/machine/sh/setjmp.S @@ -0,0 +1,57 @@ +#include "asm.h" + +ENTRY(setjmp) +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) + add #(13*4),r4 +#else + add #(9*4),r4 +#endif + + sts.l pr,@-r4 + +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) + fmov.s fr15,@-r4 ! call saved floating point registers + fmov.s fr14,@-r4 + fmov.s fr13,@-r4 + fmov.s fr12,@-r4 +#endif + + mov.l r15,@-r4 ! call saved integer registers + mov.l r14,@-r4 + mov.l r13,@-r4 + mov.l r12,@-r4 + + mov.l r11,@-r4 + mov.l r10,@-r4 + mov.l r9,@-r4 + mov.l r8,@-r4 + + rts + mov #0,r0 + +ENTRY(longjmp) + mov.l @r4+,r8 + mov.l @r4+,r9 + mov.l @r4+,r10 + mov.l @r4+,r11 + + mov.l @r4+,r12 + mov.l @r4+,r13 + mov.l @r4+,r14 + mov.l @r4+,r15 + +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) + fmov.s @r4+,fr12 ! call saved floating point registers + fmov.s @r4+,fr13 + fmov.s @r4+,fr14 + fmov.s @r4+,fr15 +#endif + + lds.l @r4+,pr + + mov r5,r0 + tst r0,r0 + bf retr4 + movt r0 +retr4: rts + nop diff --git a/newlib/libc/machine/sh/strcmp.S b/newlib/libc/machine/sh/strcmp.S new file mode 100644 index 000000000..a112b13e0 --- /dev/null +++ b/newlib/libc/machine/sh/strcmp.S @@ -0,0 +1,66 @@ +! Entry: r4: destination +! r5: source +! Exit: r0: result +! r1-r2,r4-r5: clobbered + +#include "asm.h" + +ENTRY(strcmp) + mov r4,r0 + or r5,r0 + tst #3,r0 + bf L_setup_char_loop + mov #0,r0 +#ifdef DELAYED_BRANCHES + mov.l @r4+,r1 + .align 2 +Longword_loop: + mov.l @r5+,r2 + cmp/str r0,r1 + bt Longword_loop_end + cmp/eq r1,r2 + bt.s Longword_loop + mov.l @r4+,r1 + add #-4, r4 +Longword_loop_end: + add #-4, r4 + add #-4, r5 +L_setup_char_loop: + mov.b @r4+,r0 + .align 2 +L_char_loop: + mov.b @r5+,r1 + tst r0,r0 + bt L_return + cmp/eq r0,r1 + bt.s L_char_loop + mov.b @r4+,r0 + add #-2,r4 + mov.b @r4,r0 +#else /* ! DELAYED_BRANCHES */ + .align 2 +Longword_loop: + mov.l @r4+,r1 + mov.l @r5+,r2 + cmp/str r0,r1 + bt Longword_loop_end + cmp/eq r1,r2 + bt Longword_loop +Longword_loop_end: + add #-4, r4 + add #-4, r5 + .align 2 +L_setup_char_loop: +L_char_loop: + mov.b @r4+,r0 + mov.b @r5+,r1 + tst r0,r0 + bt L_return + cmp/eq r0,r1 + bt L_char_loop +#endif +L_return: + extu.b r0,r0 + extu.b r1,r1 + rts + sub r1,r0 diff --git a/newlib/libc/machine/sh/strcpy.S b/newlib/libc/machine/sh/strcpy.S new file mode 100644 index 000000000..63aa7e75b --- /dev/null +++ b/newlib/libc/machine/sh/strcpy.S @@ -0,0 +1,41 @@ +! Entry: r4: destination +! r5: source +! Exit: r0: destination +! r1-r2,r5: clobbered + +#include "asm.h" + +ENTRY(strcpy) + mov r4,r0 + or r5,r0 + tst #3,r0 + SL(bf, L_setup_char_loop, mov r4,r0) + mov.l @r5+,r1 + mov #0,r2 + cmp/str r2,r1 + SL(bt, Longword_loop_end, sub r5,r0) + .align 2 +Longword_loop: + mov.l r1,@(r0,r5) + mov.l @r5+,r1 + cmp/str r2,r1 + bt Longword_loop_end + mov.l r1,@(r0,r5) + mov.l @r5+,r1 + cmp/str r2,r1 + bf Longword_loop +Longword_loop_end: + add #-4,r5 + add #3,r0 + .align 2 +L_char_loop: + mov.b @r5+,r1 +L_char_loop_start: + tst r1,r1 + SL(bf, L_char_loop, mov.b r1,@(r0,r5)) + rts + mov r4,r0 +L_setup_char_loop: + mov.b @r5+,r1 + bra L_char_loop_start + sub r5,r0 diff --git a/newlib/libc/machine/sparc/Makefile.am b/newlib/libc/machine/sparc/Makefile.am new file mode 100644 index 000000000..a019f6558 --- /dev/null +++ b/newlib/libc/machine/sparc/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = scan.c shuffle.c setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/sparc/Makefile.in b/newlib/libc/machine/sparc/Makefile.in new file mode 100644 index 000000000..1083e457f --- /dev/null +++ b/newlib/libc/machine/sparc/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = scan.c shuffle.c setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = scan.o shuffle.o setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/sparc/aclocal.m4 b/newlib/libc/machine/sparc/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/sparc/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/sparc/configure b/newlib/libc/machine/sparc/configure new file mode 100755 index 000000000..8138057ee --- /dev/null +++ b/newlib/libc/machine/sparc/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=shuffle.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/sparc/configure.in b/newlib/libc/machine/sparc/configure.in new file mode 100644 index 000000000..b0e44c240 --- /dev/null +++ b/newlib/libc/machine/sparc/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/sparc configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(shuffle.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/sparc/machine/sparclet.h b/newlib/libc/machine/sparc/machine/sparclet.h new file mode 100644 index 000000000..34a0e82ff --- /dev/null +++ b/newlib/libc/machine/sparc/machine/sparclet.h @@ -0,0 +1,32 @@ +/* Various stuff for the sparclet processor. + + This file is in the public domain. */ + +#ifndef _MACHINE_SPARCLET_H_ +#define _MACHINE_SPARCLET_H_ + +#ifdef __sparclet__ + +/* sparclet scan instruction */ + +extern __inline__ int +scan (int a, int b) +{ + int res; + __asm__ ("scan %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); + return res; +} + +/* sparclet shuffle instruction */ + +extern __inline__ int +shuffle (int a, int b) +{ + int res; + __asm__ ("shuffle %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); + return res; +} + +#endif /* __sparclet__ */ + +#endif /* _MACHINE_SPARCLET_H_ */ diff --git a/newlib/libc/machine/sparc/scan.c b/newlib/libc/machine/sparc/scan.c new file mode 100644 index 000000000..d76c0b95f --- /dev/null +++ b/newlib/libc/machine/sparc/scan.c @@ -0,0 +1,15 @@ +/* Cover function to sparclet `scan' instruction. + + This file is in the public domain. */ + +#ifdef __sparclet__ + +int +scan (int a, int b) +{ + int res; + __asm__ ("scan %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); + return res; +} + +#endif diff --git a/newlib/libc/machine/sparc/setjmp.S b/newlib/libc/machine/sparc/setjmp.S new file mode 100644 index 000000000..00d668f91 --- /dev/null +++ b/newlib/libc/machine/sparc/setjmp.S @@ -0,0 +1,148 @@ +/* + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Modified for incorporation into newlib by Joel Sherrill + * (joel@OARcorp.com), On-Line Applications Research, 1995. + * Did the following: + * + merged in DEFS.h + * + removed error check since it prevented using this setjmp + * to "context switch" + * + added the support for the "user label" and "register" prefix + * + * This software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: $Header$ + */ + +#if defined(LIBC_SCCS) && !defined(lint) + .asciz "@(#)_setjmp.s 8.1 (Berkeley) 6/4/93" +#endif /* LIBC_SCCS and not lint */ + +/* + * Recent versions of GNU cpp define variables which indicate the + * need for underscores and percents. If not using GNU cpp or + * the version does not support this, then you will obviously + * have to define these as appropriate. + */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +#ifndef __REGISTER_PREFIX__ +#define __REGISTER_PREFIX__ +#endif + +/* ANSI concatenation macros. */ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) + +/********************************************************************* + ********************************************************************* + * Contents of DEFS.h * + ********************************************************************* + *********************************************************************/ + +#ifdef PROF +#define ENTRY(x) \ + .align 4; .globl SYM(x); .proc 1; SYM(x):; .data; .align 4; 1: .long 0; \ + .text; save %sp,-96,%sp; sethi %hi(1b),%o0; call mcount; \ + or %lo(1b),%o0,%o0; restore +#else +#define ENTRY(x) \ + .align 4; .globl SYM(x); .proc 1; SYM(x): +#endif + + + +/********************************************************************* + ********************************************************************* + * END of DEFS.h * + ********************************************************************* + *********************************************************************/ + + +/* + * C library -- _setjmp, _longjmp + * + * _longjmp(a,v) + * will generate a "return(v?v:1)" from + * the last call to + * _setjmp(a) + * by unwinding the call stack. + * The previous signal state is NOT restored. + */ + + +/* #include "DEFS.h" */ + +ENTRY(setjmp) +ENTRY(_setjmp) + st %sp, [%o0] /* caller's stack pointer */ + st %i7, [%o0+4] /* caller's return pc */ + st %fp, [%o0+8] /* store caller's frame pointer */ + st %o7, [%o0+12] + retl + clr %o0 ! return 0 + +ENTRY(longjmp) +ENTRY(_longjmp) + ta 0x03 /* flush registers */ + addcc %o1, %g0, %g6 ! compute v ? v : 1 in a global register + be,a 0f + mov 1, %g6 +0: + ld [%o0], %sp /* caller's stack pointer */ + + ldd [%sp], %l0 + ldd [%sp+8], %l2 + ldd [%sp+16], %l4 + ldd [%sp+24], %l6 + + ldd [%sp+32], %i0 + ldd [%sp+40], %i2 + ldd [%sp+48], %i4 + + ld [%o0+4], %i7 /* caller's return pc */ + ld [%o0+8], %fp /* caller's frame pointer */ + ld [%o0+12], %o7 + + jmp %o7 + 8 ! success, return %g6 + mov %g6, %o0 + diff --git a/newlib/libc/machine/sparc/shuffle.c b/newlib/libc/machine/sparc/shuffle.c new file mode 100644 index 000000000..2c2ec1cd2 --- /dev/null +++ b/newlib/libc/machine/sparc/shuffle.c @@ -0,0 +1,15 @@ +/* Cover function to sparclet `shuffle' instruction. + + This file is in the public domain. */ + +#ifdef __sparclet__ + +int +shuffle (int a, int b) +{ + int res; + __asm__ ("shuffle %1,%2,%0" : "=r" (res) : "r" (a), "r" (b)); + return res; +} + +#endif diff --git a/newlib/libc/machine/tic80/Makefile.am b/newlib/libc/machine/tic80/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/tic80/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/tic80/Makefile.in b/newlib/libc/machine/tic80/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/tic80/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/tic80/aclocal.m4 b/newlib/libc/machine/tic80/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/tic80/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/tic80/configure b/newlib/libc/machine/tic80/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/tic80/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/tic80/configure.in b/newlib/libc/machine/tic80/configure.in new file mode 100644 index 000000000..c21c4a791 --- /dev/null +++ b/newlib/libc/machine/tic80/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/tic80 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/tic80/setjmp.S b/newlib/libc/machine/tic80/setjmp.S new file mode 100644 index 000000000..1946344a5 --- /dev/null +++ b/newlib/libc/machine/tic80/setjmp.S @@ -0,0 +1,50 @@ +/* These are predefined by new versions of GNU cpp. */ + +#ifndef __USER_LABEL_PREFIX__ +#define __USER_LABEL_PREFIX__ _ +#endif + +/* ANSI concatenation macros. */ + +#define CONCAT1(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +/* Use the right prefix for global labels. */ + +#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x) + + .global SYM (setjmp) + .global SYM (_setjmp) + .global SYM (longjmp) + + .section .text,"x" + .align 4 +SYM (_setjmp): +SYM (setjmp): + st.d 0(r2),r20 + st.d 8(r2),r22 + st.d 16(r2),r24 + st.d 24(r2),r26 + st.d 32(r2),r28 + st.d 40(r2),r30 + st 48(r2),r1 + jsr r31(r0),r0 + addu 0,r0,r2 + + .section .text,"x" + .align 4 +SYM (longjmp): + ld.d 0(r2),r20 + ld.d 8(r2),r22 + ld.d 16(r2),r24 + ld.d 24(r2),r26 + ld.d 32(r2),r28 + ld.d 40(r2),r30 + bcnd L1,r4,ne0.w + ld 48(r2),r1 + + jsr r31(r0),r0 + addu 1,r0,r2 +L1: + jsr r31(r0),r0 + addu r4,r0,r2 diff --git a/newlib/libc/machine/v850/Makefile.am b/newlib/libc/machine/v850/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/v850/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/v850/Makefile.in b/newlib/libc/machine/v850/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/v850/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/v850/aclocal.m4 b/newlib/libc/machine/v850/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/v850/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/v850/configure b/newlib/libc/machine/v850/configure new file mode 100755 index 000000000..b39571b6a --- /dev/null +++ b/newlib/libc/machine/v850/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=setjmp.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/v850/configure.in b/newlib/libc/machine/v850/configure.in new file mode 100644 index 000000000..605320d75 --- /dev/null +++ b/newlib/libc/machine/v850/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/v850 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(setjmp.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/v850/setjmp.S b/newlib/libc/machine/v850/setjmp.S new file mode 100644 index 000000000..b0da8e88f --- /dev/null +++ b/newlib/libc/machine/v850/setjmp.S @@ -0,0 +1,42 @@ + .file "setjmp.S" + + .section .text + .align 1 + .global _setjmp +_setjmp: + st.w r0,0[r6] + st.w r3,4[r6] + st.w r4,8[r6] + st.w r20,12[r6] + st.w r21,16[r6] + st.w r22,20[r6] + st.w r23,24[r6] + st.w r24,28[r6] + st.w r25,32[r6] + st.w r26,36[r6] + st.w r27,40[r6] + st.w r28,44[r6] + st.w r29,48[r6] + st.w r30,52[r6] + st.w r31,56[r6] + jmp [r31] + + .global _longjmp +_longjmp: + ld.w 0[r6],r0 + ld.w 4[r6],r3 + ld.w 8[r6],r4 + ld.w 12[r6],r20 + ld.w 16[r6],r21 + ld.w 20[r6],r22 + ld.w 24[r6],r23 + ld.w 28[r6],r24 + ld.w 32[r6],r25 + ld.w 36[r6],r26 + ld.w 40[r6],r27 + ld.w 44[r6],r28 + ld.w 48[r6],r29 + ld.w 52[r6],r30 + ld.w 56[r6],r31 + mov 1,r10 + jmp [r31] diff --git a/newlib/libc/machine/w65/Makefile.am b/newlib/libc/machine/w65/Makefile.am new file mode 100644 index 000000000..dc3b02f97 --- /dev/null +++ b/newlib/libc/machine/w65/Makefile.am @@ -0,0 +1,13 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = udivhi3.s umodhi3.s smulhi3.s lshrhi.s sdivhi3.s mulsi3.c \ + divsi3.c cmpsi.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/w65/Makefile.in b/newlib/libc/machine/w65/Makefile.in new file mode 100644 index 000000000..49ddab90e --- /dev/null +++ b/newlib/libc/machine/w65/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = udivhi3.s umodhi3.s smulhi3.s lshrhi.s sdivhi3.s mulsi3.c \ + divsi3.c cmpsi.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = udivhi3.o umodhi3.o smulhi3.o lshrhi.o sdivhi3.o \ +mulsi3.o divsi3.o cmpsi.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/w65/aclocal.m4 b/newlib/libc/machine/w65/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/w65/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/w65/cmpsi.c b/newlib/libc/machine/w65/cmpsi.c new file mode 100644 index 000000000..3773c9d2e --- /dev/null +++ b/newlib/libc/machine/w65/cmpsi.c @@ -0,0 +1,28 @@ + +union u { + struct { + short int msw; + unsigned short lsw; +} w; +long l; +}; + +int +__cmpsi2(long arga, + short int msw_b, unsigned short int lsw_b) +{ + union u u; + u.l = arga; + + if (u.w.msw != msw_b) + { + if (u.w.msw < msw_b) return 0; + return 2; + } + if (u.w.lsw != lsw_b) + { + if (u.w.lsw < lsw_b) return 0; + return 2; + } + return 1; +} diff --git a/newlib/libc/machine/w65/configure b/newlib/libc/machine/w65/configure new file mode 100755 index 000000000..d862b2247 --- /dev/null +++ b/newlib/libc/machine/w65/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=cmpsi.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/w65/configure.in b/newlib/libc/machine/w65/configure.in new file mode 100644 index 000000000..7d3d724d6 --- /dev/null +++ b/newlib/libc/machine/w65/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/w65 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(cmpsi.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/w65/divsi3.c b/newlib/libc/machine/w65/divsi3.c new file mode 100644 index 000000000..bf749923c --- /dev/null +++ b/newlib/libc/machine/w65/divsi3.c @@ -0,0 +1,134 @@ + +#define divnorm(num, den, sign) \ +{ \ + if (num < 0) \ + { \ + num = -num; \ + sign = 1; \ + } \ + else \ + { \ + sign = 0; \ + } \ + \ + if (den < 0) \ + { \ + den = - den; \ + sign = 1 - sign; \ + } \ +} + + + + + +static unsigned long +divmodsi4(int modwanted, unsigned long num, unsigned long den) +{ + long int bit = 1; + long int res = 0; + long prevden; + while (den < num && bit && !(den & (1L<<31))) + { + den <<=1; + bit <<=1; + } + while (bit) + { + if (num >= den) + { + num -= den; + res |= bit; + } + bit >>=1; + den >>=1; + } + if (modwanted) return num; + return res; +} + + +#define exitdiv(sign, res) if (sign) { res = - res;} return res; + +long +__modsi3 (long numerator, long denominator) +{ + int sign = 0; + long dividend; + long modul; + + + if (numerator < 0) + { + numerator = -numerator; + sign = 1; + } + if (denominator < 0) + { + denominator = -denominator; + } + + modul = divmodsi4 (1, numerator, denominator); + if (sign) + return - modul; + return modul; +} + + +long +__divsi3 (long numerator, long denominator) +{ + int sign; + long dividend; + long modul; + divnorm (numerator, denominator, sign); + + dividend = divmodsi4 (0, numerator, denominator); + exitdiv (sign, dividend); +} + +long +__umodsi3 (unsigned long numerator, unsigned long denominator) +{ + long dividend; + long modul; + +modul= divmodsi4 (1, numerator, denominator); + return modul; +} + +long +__udivsi3 (unsigned long numerator, unsigned long denominator) +{ + int sign; + long dividend; + long modul; + dividend = divmodsi4 (0, numerator, denominator); + return dividend; +} + + + + + + +#ifdef TEST + + + +main () +{ + long int i, j, k, m; + for (i = -10000; i < 10000; i += 8) + { + for (j = -10000; j < 10000; j += 11) + { + k = i / j; + m = __divsi3 (i, j); + if (k != m) + printf ("fail %d %d %d %d\n", i, j, k, m); + } + } +} + +#endif diff --git a/newlib/libc/machine/w65/lshrhi.s b/newlib/libc/machine/w65/lshrhi.s new file mode 100644 index 000000000..564229f57 --- /dev/null +++ b/newlib/libc/machine/w65/lshrhi.s @@ -0,0 +1,48 @@ + + + .global ___lshrhi15 +___lshrhi15: + lsr a + + .global ___lshrhi14 +___lshrhi14: + lsr a + .global ___lshrhi13 +___lshrhi13: + lsr a + .global ___lshrhi12 +___lshrhi12: + lsr a + .global ___lshrhi11 +___lshrhi11: + lsr a + .global ___lshrhi10 +___lshrhi10: + lsr a + .global ___lshrhi9 +___lshrhi9: + lsr a + .global ___lshrhi8 +___lshrhi8: + lsr a + .global ___lshrhi7 +___lshrhi7: + lsr a + .global ___lshrhi6 +___lshrhi6: + lsr a + .global ___lshrhi5 +___lshrhi5: + lsr a + .global ___lshrhi4 +___lshrhi4: + lsr a + .global ___lshrhi3 +___lshrhi3: + lsr a + .global ___lshrhi2 +___lshrhi2: + lsr a + lsr a + rtl + diff --git a/newlib/libc/machine/w65/mulsi3.c b/newlib/libc/machine/w65/mulsi3.c new file mode 100644 index 000000000..b48fe97ac --- /dev/null +++ b/newlib/libc/machine/w65/mulsi3.c @@ -0,0 +1,17 @@ + + +long +__mulsi3(unsigned long a, unsigned long b) +{ + long res = 0; + while (a) + { + if (a & 1) + { + res += b; + } + b <<= 1; + a >>=1; + } + return res; +} diff --git a/newlib/libc/machine/w65/sdivhi3.s b/newlib/libc/machine/w65/sdivhi3.s new file mode 100644 index 000000000..7958f11e7 --- /dev/null +++ b/newlib/libc/machine/w65/sdivhi3.s @@ -0,0 +1,35 @@ + .global ___sdivhi3 + +___sdivhi3: + lda <r4 + ldx <r5 + + ldy #0 !flag positive result + rol a + ror a + bpl L10 + + iny !flag negative result + eor #0xFFFF + inc a + +L10: pha + txa + bpl L20 + + dey !flag negative/positive result + eor #0xFFFF + inc a + tax + +L20: pla + phy + jsr >udv + ply + beq Lend !if positive result + + eor #0xFFFF !negate result + inc a + +Lend: sta <r0 + rtl diff --git a/newlib/libc/machine/w65/smulhi3.s b/newlib/libc/machine/w65/smulhi3.s new file mode 100644 index 000000000..6ccbfba01 --- /dev/null +++ b/newlib/libc/machine/w65/smulhi3.s @@ -0,0 +1,20 @@ + .global ___smulhi3 +___smulhi3: + + + + lda #0 +mult1: ldx <r4 + beq done + lsr <r4 + bcc mult2 + clc + adc <r5 + +mult2: asl <r5 + bra mult1 + +done: sta <r0 + rtl + + diff --git a/newlib/libc/machine/w65/udivhi3.s b/newlib/libc/machine/w65/udivhi3.s new file mode 100644 index 000000000..07d091e80 --- /dev/null +++ b/newlib/libc/machine/w65/udivhi3.s @@ -0,0 +1,30 @@ + .global ___udivhi3 + +___udivhi3: + stz <r0 + ldy #1 + ldx <r4 + lda <r5 + +div1: + asl a + bcs div2 + iny + cpy #17 + bne div1 + +div2: ror a + +div4: pha + txa + sec + sbc 1,s + bcc div3 + tax + +div3: rol <r0 + pla + lsr a + dey + bne div4 + rtl diff --git a/newlib/libc/machine/w65/umodhi3.s b/newlib/libc/machine/w65/umodhi3.s new file mode 100644 index 000000000..1d12df524 --- /dev/null +++ b/newlib/libc/machine/w65/umodhi3.s @@ -0,0 +1,7 @@ + .global ___umodhi3 + +___umodhi3: + jsr >___udivhi3 + stx <r0 + rtl + diff --git a/newlib/libc/machine/z8k/Makefile.am b/newlib/libc/machine/z8k/Makefile.am new file mode 100644 index 000000000..1c65b9ffe --- /dev/null +++ b/newlib/libc/machine/z8k/Makefile.am @@ -0,0 +1,12 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/machine/z8k/Makefile.in b/newlib/libc/machine/z8k/Makefile.in new file mode 100644 index 000000000..5414b185d --- /dev/null +++ b/newlib/libc/machine/z8k/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/machine/z8k/aclocal.m4 b/newlib/libc/machine/z8k/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/machine/z8k/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/machine/z8k/args.h b/newlib/libc/machine/z8k/args.h new file mode 100644 index 000000000..3f6062483 --- /dev/null +++ b/newlib/libc/machine/z8k/args.h @@ -0,0 +1,13 @@ +#ifdef __Z8001__ + +segm +#define PARG_0 rr6 +#else +unsegm +#define PARG_0 r7 +#endif + +#define LARG_0 rr6 +#define ARG_0 r7 + +#define LARG_1 rr4 diff --git a/newlib/libc/machine/z8k/configure b/newlib/libc/machine/z8k/configure new file mode 100755 index 000000000..610b786b3 --- /dev/null +++ b/newlib/libc/machine/z8k/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=args.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/machine/z8k/configure.in b/newlib/libc/machine/z8k/configure.in new file mode 100644 index 000000000..d8c24dc8a --- /dev/null +++ b/newlib/libc/machine/z8k/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/machine/z8k configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(args.h) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/machine/z8k/setjmp.S b/newlib/libc/machine/z8k/setjmp.S new file mode 100644 index 000000000..6a7664112 --- /dev/null +++ b/newlib/libc/machine/z8k/setjmp.S @@ -0,0 +1,49 @@ + +#ifdef __Z8001__ + segm + + .global _setjmp +_setjmp: + ldl rr2,@rr14 ! fetch pc + ldl @rr6,rr2 ! save it + ldl rr6(4),rr10 + ldl rr6(8),rr12 ! and the other special regs + ldl rr6(12),rr14 + ldk r2,#0 + ret t + + .globl _longjmp + +_longjmp: + ld r2,r5 ! get return value + ldl rr4,rr6(0) + ldl rr10,rr6(4) + ldl rr12,rr6(8) + ldl rr14,rr6(12) + jp @rr4 +#else + unseg + + .global _setjmp +_setjmp: + ld r2,@r15 ! fetch pc + ld @r7,r2 ! save it + ldl r7(4),rr10 + ldl r7(8),rr12 ! and the other special regs + ldl r7(12),rr14 + ldk r2,#0 + ret t + + .globl _longjmp + +_longjmp: + ld r2,r6 ! get return value + ld r4,@r7 + ldl rr10,rr7(4) + ldl rr12,rr7(8) + ldl rr14,rr7(12) + jp @rr4 + +#endif + + diff --git a/newlib/libc/misc/Makefile.am b/newlib/libc/misc/Makefile.am new file mode 100644 index 000000000..c6788ba0c --- /dev/null +++ b/newlib/libc/misc/Makefile.am @@ -0,0 +1,26 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = dprintf.c unctrl.c ffs.c + +CHEWOUT_FILES = unctrl.def ffs.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/misc.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/misc/Makefile.in b/newlib/libc/misc/Makefile.in new file mode 100644 index 000000000..0fa2ecf4f --- /dev/null +++ b/newlib/libc/misc/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = dprintf.c unctrl.c ffs.c + +CHEWOUT_FILES = unctrl.def ffs.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = dprintf.o unctrl.o ffs.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus misc/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = misc + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/misc.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/misc/dprintf.c b/newlib/libc/misc/dprintf.c new file mode 100644 index 000000000..071d177ca --- /dev/null +++ b/newlib/libc/misc/dprintf.c @@ -0,0 +1,266 @@ +/* Debugging printf, for debugging the library itself. + + We don't assume stdio is working. + We do assume _write_r is working. +*/ + +#include "ctype.h" +#include "reent.h" +#include "string.h" +#include "unctrl.h" + +#ifdef __STDC__ +#include "stdarg.h" +#else +#include "varargs.h" +#endif + +static char *parse_number (); +static long get_number (); +static void print_number (); +static void write_char (); +static void write_string (); + +/* Non-zero for big-endian systems. */ +static int big_endian_p; + +/* For now hardcode 2 (stderr) as the console file descriptor. + May wish to let the caller pass in a file descriptor or some such but + this is only for debugging purposes anyway. */ +#define CONSOLE_FD 2 + +/* Standalone printf routine. + + The format string has been enhanced so that multiple values can be dumped + without having to have a %-field for each one (say if you want to dump + 20 words at a certain address). A modifier of `N' says the next argument + is a count, and the one after that is a pointer. + + Example: __dprintf (stderr, "%Nx\n", 20, p); /-* print 20 ints at `p' *-/ + + Supported formats are: c d u x s p. + + All ints are retrieved a byte at a time so alignment issues are not + a problem. + + This routine is used in situations where the only debugging capability + is console output and was written to aid debugging newlib itself. We don't + use printf ourselves as we may be debugging it. We do assume _write_r is + working. +*/ + +void +#ifdef __STDC__ +__dprintf (char *fmt, ...) +#else +__dprintf (fmt, va_alist) + char *fmt; + va_dcl +#endif +{ + va_list args; + + /* Which endian are we? */ + { + short tmp = 1; + big_endian_p = *(char *) &tmp == 0; + } + +#ifdef __STDC__ + va_start (args, fmt); +#else + va_start (args); +#endif + + while (*fmt) + { + char c, *p; + int count; + long l; + + if (*fmt != '%' || *++fmt == '%') + { + write_char (*fmt++); + continue; + } + + if (*fmt == 'N') + { + count = va_arg (args, int); + p = va_arg (args, char *); + ++fmt; + c = *fmt++; + + while (--count >= 0) + { + switch (c) + { + case 'c' : + write_string (unctrl (*p++)); + break; + case 'p' : + print_number (16, 1, get_number (p, sizeof (char *), 1)); + p += sizeof (char *); + break; + case 'd' : + case 'u' : + case 'x' : + print_number (c == 'x' ? 16 : 10, c != 'd', + get_number (p, sizeof (int), c != 'd')); + p += sizeof (int); + break; + case 's' : + write_string (*(char **) p); + p += sizeof (char *); + break; + } + if (count > 0) + write_char (' '); + } + } + else + { + switch (c = *fmt++) + { + case 'c' : + c = va_arg (args, int); + write_string (unctrl (c)); + break; + case 'p' : + l = (_POINTER_INT) va_arg (args, char *); + print_number (16, 1, l); + break; + case 'd' : + case 'u' : + case 'x' : + l = va_arg (args, int); + print_number (c == 'x' ? 16 : 10, c != 'd', l); + break; + case 's' : + p = va_arg (args, char *); + write_string (p); + break; + } + } + } + + va_end (args); +} + +/* Parse a positive decimal integer at S. + FIXME: Was used in earlier version, but not currently used. + Keep for now. */ + +static char * +parse_number (s, p) + char *s; + long *p; +{ + long x = 0; + + while (isdigit (*s)) + { + x = (x * 10) + (*s - '0'); + ++s; + } + + *p = x; + return s; +} + +/* Fetch the number at S of SIZE bytes. */ + +static long +get_number (s, size, unsigned_p) + char *s; + long size; + int unsigned_p; +{ + long x; + unsigned char *p = (unsigned char *) s; + + switch (size) + { + case 1 : + x = *p; + if (!unsigned_p) + x = (x ^ 0x80) - 0x80; + return x; + case 2 : + if (big_endian_p) + x = (p[0] << 8) | p[1]; + else + x = (p[1] << 8) | p[0]; + if (!unsigned_p) + x = (x ^ 0x8000) - 0x8000; + return x; + case 4 : + if (big_endian_p) + x = ((long)p[0] << 24) | ((long)p[1] << 16) | (p[2] << 8) | p[3]; + else + x = ((long)p[3] << 24) | ((long)p[2] << 16) | (p[1] << 8) | p[0]; + if (!unsigned_p) + x = (x ^ 0x80000000L) - 0x80000000L; + return x; +#if 0 /* FIXME: Is there a standard mechanism for knowing if + long longs exist? */ + case 8 : +#endif + default : + return 0; + } +} + +/* Print X in base BASE. */ + +static void +print_number (base, unsigned_p, n) + int base; + int unsigned_p; + long n; +{ + static char chars[16] = "0123456789abcdef"; + char *p, buf[32]; + unsigned long x; + + if (!unsigned_p && n < 0) + { + write_char ('-'); + x = -n; + } + else + x = n; + + p = buf + sizeof (buf); + *--p = '\0'; + do + { + *--p = chars[x % base]; + x /= base; + } + while (x != 0); + + write_string (p); +} + +/* Write C to the console. + We go through the file descriptor directly because we can't assume + stdio is working. */ + +static void +write_char (c) + char c; +{ + _write_r (_REENT, CONSOLE_FD, &c, 1); +} + +/* Write S to the console. + We go through the file descriptor directly because we can't assume + stdio is working. */ + +static void +write_string (s) + char *s; +{ + _write_r (_REENT, CONSOLE_FD, s, strlen (s)); +} diff --git a/newlib/libc/misc/ffs.c b/newlib/libc/misc/ffs.c new file mode 100644 index 000000000..e4afe7a41 --- /dev/null +++ b/newlib/libc/misc/ffs.c @@ -0,0 +1,42 @@ +/* +FUNCTION + <<ffs>>---find first bit set in a word + +INDEX + ffs + +ANSI_SYNOPSIS + int ffs(int <[word]>); + +TRAD_SYNOPSIS + int ffs(<[word]>); + +DESCRIPTION + +<<ffs>> returns the first bit set in a word. + +RETURNS +<<ffs>> returns 0 if <[c]> is 0, 1 if <[c]> is odd, 2 if <[c]> is a multiple of +2, etc. + +PORTABILITY +<<ffs>> is not ANSI C. + +No supporting OS subroutines are required. */ + +int +ffs (word) + int word; +{ + int i; + + if (!word) + return 0; + + i = 0; + for (;;) + { + if (((1 << i++) & word) != 0) + return i; + } +} diff --git a/newlib/libc/misc/misc.tex b/newlib/libc/misc/misc.tex new file mode 100644 index 000000000..ea5599d83 --- /dev/null +++ b/newlib/libc/misc/misc.tex @@ -0,0 +1,10 @@ +@node Misc +@chapter Miscellaneous Macros and Functions +This chapter describes miscellaneous routines not covered elsewhere. + +@menu +* unctrl:: Return printable representation of a character +@end menu + +@page +@include misc/unctrl.def diff --git a/newlib/libc/misc/unctrl.c b/newlib/libc/misc/unctrl.c new file mode 100644 index 000000000..e7350c657 --- /dev/null +++ b/newlib/libc/misc/unctrl.c @@ -0,0 +1,146 @@ +/* +FUNCTION + <<unctrl>>---translate characters to upper case + +INDEX + unctrl +INDEX + unctrllen + +ANSI_SYNOPSIS + #include <unctrl.h> + char *unctrl(int <[c]>); + int unctrllen(int <[c]>); + +TRAD_SYNOPSIS + #include <unctrl.h> + char *unctrl(<[c]>); + int unctrllen(<[c]>); + +DESCRIPTION +<<unctrl>> is a macro which returns the printable representation of <[c]> +as a string. +<<unctrllen>> is a macro which returns the length of the printable +representation of <[c]>. + +RETURNS +<<unctrl>> returns a string of the printable representation of <[c]>. + +<<unctrllen>> returns the length of the string which is the printable +representation of <[c]>. + +PORTABILITY +<<unctrl>> and <<unctrllen>> are not ANSI C. + +No supporting OS subroutines are required. +*/ + +/* + * Copyright (c) 1981, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <_ansi.h> + +#ifndef lint +static char sccsid[] = "@(#)unctrl.c 8.1 (Berkeley) 6/4/93"; +#endif /* not lint */ + +_CONST char * _CONST __unctrl[256] = { + "^@", "^A", "^B", "^C", "^D", "^E", "^F", "^G", + "^H", "^I", "^J", "^K", "^L", "^M", "^N", "^O", + "^P", "^Q", "^R", "^S", "^T", "^U", "^V", "^W", + "^X", "^Y", "^Z", "^[", "^\\", "^]", "^~", "^_", + " ", "!", "\"", "#", "$", "%", "&", "'", + "(", ")", "*", "+", ",", "-", ".", "/", + "0", "1", "2", "3", "4", "5", "6", "7", + "8", "9", ":", ";", "<", "=", ">", "?", + "@", "A", "B", "C", "D", "E", "F", "G", + "H", "I", "J", "K", "L", "M", "N", "O", + "P", "Q", "R", "S", "T", "U", "V", "W", + "X", "Y", "Z", "[", "\\", "]", "^", "_", + "`", "a", "b", "c", "d", "e", "f", "g", + "h", "i", "j", "k", "l", "m", "n", "o", + "p", "q", "r", "s", "t", "u", "v", "w", + "x", "y", "z", "{", "|", "}", "~", "^?", + + "0x80", "0x81", "0x82", "0x83", "0x84", "0x85", "0x86", "0x87", + "0x88", "0x89", "0x8a", "0x8b", "0x8c", "0x8d", "0x8e", "0x8f", + "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96", "0x97", + "0x98", "0x99", "0x9a", "0x9b", "0x9c", "0x9d", "0x9e", "0x9f", + "0xa0", "0xa1", "0xa2", "0xa3", "0xa4", "0xa5", "0xa6", "0xa7", + "0xa8", "0xa9", "0xaa", "0xab", "0xac", "0xad", "0xae", "0xaf", + "0xb0", "0xb1", "0xb2", "0xb3", "0xb4", "0xb5", "0xb6", "0xb7", + "0xb8", "0xb9", "0xba", "0xbb", "0xbc", "0xbd", "0xbe", "0xbf", + "0xc0", "0xc1", "0xc2", "0xc3", "0xc4", "0xc5", "0xc6", "0xc7", + "0xc8", "0xc9", "0xca", "0xcb", "0xcc", "0xcd", "0xce", "0xcf", + "0xd0", "0xd1", "0xd2", "0xd3", "0xd4", "0xd5", "0xd6", "0xd7", + "0xd8", "0xd9", "0xda", "0xdb", "0xdc", "0xdd", "0xde", "0xdf", + "0xe0", "0xe1", "0xe2", "0xe3", "0xe4", "0xe5", "0xe6", "0xe7", + "0xe8", "0xe9", "0xea", "0xeb", "0xec", "0xed", "0xee", "0xef", + "0xf0", "0xf1", "0xf2", "0xf3", "0xf4", "0xf5", "0xf6", "0xf7", + "0xf8", "0xf9", "0xfa", "0xfb", "0xfc", "0xfd", "0xfe", "0xff", +}; + +_CONST char __unctrllen[256] = { + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, +}; diff --git a/newlib/libc/posix/Makefile.am b/newlib/libc/posix/Makefile.am new file mode 100644 index 000000000..afb909762 --- /dev/null +++ b/newlib/libc/posix/Makefile.am @@ -0,0 +1,29 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + closedir.c opendir.c readdir.c rewinddir.c scandir.c seekdir.c \ + telldir.c execl.c execle.c execlp.c execv.c execve.c execvp.c \ + popen.c creat.c isatty.c + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +# No doc for posix. +doc: + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/posix/Makefile.in b/newlib/libc/posix/Makefile.in new file mode 100644 index 000000000..6b41087c7 --- /dev/null +++ b/newlib/libc/posix/Makefile.in @@ -0,0 +1,303 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + closedir.c opendir.c readdir.c rewinddir.c scandir.c seekdir.c \ + telldir.c execl.c execle.c execlp.c execv.c execve.c execvp.c \ + popen.c creat.c isatty.c + + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = closedir.o opendir.o readdir.o rewinddir.o scandir.o \ +seekdir.o telldir.o execl.o execle.o execlp.o execv.o execve.o execvp.o \ +popen.o creat.o isatty.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus posix/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = posix + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +# No doc for posix. +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/posix/closedir.c b/newlib/libc/posix/closedir.c new file mode 100644 index 000000000..4ad6e4c97 --- /dev/null +++ b/newlib/libc/posix/closedir.c @@ -0,0 +1,62 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)closedir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * close a directory. + */ +int +closedir(dirp) + register DIR *dirp; +{ + int fd; + + fd = dirp->dd_fd; + dirp->dd_fd = -1; + dirp->dd_loc = 0; + (void)free((void *)dirp->dd_buf); + (void)free((void *)dirp); + return(close(fd)); +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/creat.c b/newlib/libc/posix/creat.c new file mode 100644 index 000000000..6b1116206 --- /dev/null +++ b/newlib/libc/posix/creat.c @@ -0,0 +1,11 @@ +/* creat() "system call" */ + +/* This is needed by f2c and therefore the SPEC benchmarks. */ + +#include <fcntl.h> + +int +creat (const char *path, mode_t mode) +{ + return open (path, O_WRONLY | O_CREAT | O_TRUNC, mode); +} diff --git a/newlib/libc/posix/execl.c b/newlib/libc/posix/execl.c new file mode 100644 index 000000000..075df8eba --- /dev/null +++ b/newlib/libc/posix/execl.c @@ -0,0 +1,42 @@ +/* execl.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +#include <_ansi.h> +#include <unistd.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +execl (_CONST char *path, _CONST char *arg0, ...) + +#else + +#include <varargs.h> + +int +execl (path, arg0, va_alist) + _CONST char *path; + _CONST char *arg0; + va_dcl + +#endif + +{ + int i; + va_list args; + _CONST char *argv[256]; + + va_start (args, arg0); + argv[0] = arg0; + i = 1; + do + argv[i] = va_arg (args, _CONST char *); + while (argv[i++] != NULL); + va_end (args); + + return _execve (path, (char * _CONST *) argv, environ); +} diff --git a/newlib/libc/posix/execle.c b/newlib/libc/posix/execle.c new file mode 100644 index 000000000..439437023 --- /dev/null +++ b/newlib/libc/posix/execle.c @@ -0,0 +1,44 @@ +/* execle.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +#include <_ansi.h> +#include <unistd.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +execle (_CONST char *path, _CONST char *arg0, ...) + +#else + +#include <varargs.h> + +int +execle (path, arg0, va_alist) + _CONST char *path; + _CONST char *arg0; + va_dcl + +#endif + +{ + int i; + va_list args; + _CONST char * _CONST *envp; + _CONST char *argv[256]; + + va_start (args, arg0); + argv[0] = arg0; + i = 1; + do + argv[i] = va_arg (args, _CONST char *); + while (argv[i++] != NULL); + envp = va_arg (args, _CONST char * _CONST *); + va_end (args); + + return _execve (path, (char * _CONST *) argv, (char * _CONST *) envp); +} diff --git a/newlib/libc/posix/execlp.c b/newlib/libc/posix/execlp.c new file mode 100644 index 000000000..dd04914bc --- /dev/null +++ b/newlib/libc/posix/execlp.c @@ -0,0 +1,42 @@ +/* execlp.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +#include <_ansi.h> +#include <unistd.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +execlp (_CONST char *path, _CONST char *arg0, ...) + +#else + +#include <varargs.h> + +int +execlp (path, arg0, va_alist) + _CONST char *path; + _CONST char *arg0; + va_dcl + +#endif + +{ + int i; + va_list args; + _CONST char *argv[256]; + + va_start (args, arg0); + argv[0] = arg0; + i = 1; + do + argv[i] = va_arg (args, _CONST char *); + while (argv[i++] != NULL); + va_end (args); + + return execvp (path, (char * _CONST *) argv); +} diff --git a/newlib/libc/posix/execv.c b/newlib/libc/posix/execv.c new file mode 100644 index 000000000..42a78cb52 --- /dev/null +++ b/newlib/libc/posix/execv.c @@ -0,0 +1,15 @@ +/* execv.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +#include <_ansi.h> +#include <unistd.h> + +int +_DEFUN (execv, (path, argv), + const char *path _AND + char * const argv[]) +{ + return _execve (path, (char * _CONST *) argv, environ); +} diff --git a/newlib/libc/posix/execve.c b/newlib/libc/posix/execve.c new file mode 100644 index 000000000..416144e86 --- /dev/null +++ b/newlib/libc/posix/execve.c @@ -0,0 +1,10 @@ +/* execve.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +int +execve (const char *path, char * const argv[], char * const envp[]) +{ + return _execve (path, argv, envp); +} diff --git a/newlib/libc/posix/execvp.c b/newlib/libc/posix/execvp.c new file mode 100644 index 000000000..6957f61b2 --- /dev/null +++ b/newlib/libc/posix/execvp.c @@ -0,0 +1,88 @@ +/* execvp.c */ + +/* This and the other exec*.c files in this directory require + the target to provide the _execve syscall. */ + +#include <_ansi.h> +#include <stdlib.h> +#include <unistd.h> +#include <errno.h> +#include <ctype.h> + +#ifdef __CYGWIN32__ +static char path_delim; +#define PATH_DELIM path_delim +#else +#define PATH_DELIM ':' +#endif + +/* + * Copy string, until c or <nul> is encountered. + * NUL-terminate the destination string (s1). + */ + +static char * +_DEFUN (strccpy, (s1, s2, c), + char *s1 _AND + char *s2 _AND + char c) +{ + char *dest = s1; + + while (*s2 && *s2 != c) + *s1++ = *s2++; + *s1 = 0; + + return dest; +} + +int +_DEFUN (execvp, (file, argv), + _CONST char *file _AND + char * _CONST argv[]) +{ + char *path = getenv ("PATH"); + char buf[MAXNAMLEN]; + + /* If $PATH doesn't exist, just pass FILE on unchanged. */ + if (!path) + return execv (file, argv); + + /* If FILE contains a directory, don't search $PATH. */ + if (strchr (file, '/') +#ifdef __CYGWIN32__ + || strchr (file, '\\') +#endif + ) + return execv (file, argv); + +#ifdef __CYGWIN32__ + /* If a drive letter is passed, the path is still an absolute one. + Technically this isn't true, but Cygwin is currently defined so + that it is. */ + if ((isalpha (file[0]) && file[1] == ':') + || file[0] == '\\') + return execv (file, argv); +#endif + +#ifdef __CYGWIN32__ + path_delim = cygwin_posix_path_list_p (path) ? ':' : ';'; +#endif + + while (*path) + { + strccpy (buf, path, PATH_DELIM); + /* An empty entry means the current directory. */ + if (*buf != 0) + strcat (buf, "/"); + strcat (buf, file); + if (execv (buf, argv) == -1 && errno != ENOENT) + return -1; + while (*path && *path != PATH_DELIM) + path++; + if (*path == PATH_DELIM) + path++; /* skip over delim */ + } + + return -1; +} diff --git a/newlib/libc/posix/isatty.c b/newlib/libc/posix/isatty.c new file mode 100644 index 000000000..3c64647a9 --- /dev/null +++ b/newlib/libc/posix/isatty.c @@ -0,0 +1,17 @@ +/* isatty.c */ + +/* Dumb implementation so programs will at least run. */ + +#include <sys/stat.h> + +int +isatty (int fd) +{ + struct stat buf; + + if (fstat (fd, &buf) < 0) + return 0; + if (S_ISCHR (buf.st_mode)) + return 1; + return 0; +} diff --git a/newlib/libc/posix/opendir.c b/newlib/libc/posix/opendir.c new file mode 100644 index 000000000..f924c0b52 --- /dev/null +++ b/newlib/libc/posix/opendir.c @@ -0,0 +1,84 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)opendir.c 5.11 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> +#include <fcntl.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * open a directory. + */ +DIR * +opendir(name) + const char *name; +{ + register DIR *dirp; + register int fd; + + if ((fd = open(name, 0)) == -1) + return NULL; + if (fcntl(fd, F_SETFD, 1) == -1 || + (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { + close (fd); + return NULL; + } + /* + * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE + * buffer that it cluster boundary aligned. + * Hopefully this can be a big win someday by allowing page trades + * to user space to be done by getdirentries() + */ + dirp->dd_buf = malloc (512); + dirp->dd_len = 512; + + if (dirp->dd_buf == NULL) { + close (fd); + return NULL; + } + dirp->dd_fd = fd; + dirp->dd_loc = 0; + dirp->dd_seek = 0; + /* + * Set up seek point for rewinddir. + */ + return dirp; +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/popen.c b/newlib/libc/posix/popen.c new file mode 100644 index 000000000..f6a7421ee --- /dev/null +++ b/newlib/libc/posix/popen.c @@ -0,0 +1,170 @@ +/* $NetBSD: popen.c,v 1.11 1995/06/16 07:05:33 jtc Exp $ */ + +/* + * Copyright (c) 1988, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software written by Ken Arnold and + * published in UNIX Review, Vol. 6, No. 8. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)popen.c 8.1 (Berkeley) 6/4/93"; +#else +static char rcsid[] = "$NetBSD: popen.c,v 1.11 1995/06/16 07:05:33 jtc Exp $"; +#endif +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <sys/types.h> +#include <sys/wait.h> + +#include <signal.h> +#include <errno.h> +#include <unistd.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <paths.h> + +static struct pid { + struct pid *next; + FILE *fp; + pid_t pid; +} *pidlist; + +FILE * +popen(program, type) + const char *program; + const char *type; +{ + struct pid *cur; + FILE *iop; + int pdes[2], pid; + + if (*type != 'r' && *type != 'w' || type[1]) { + errno = EINVAL; + return (NULL); + } + + if ((cur = malloc(sizeof(struct pid))) == NULL) + return (NULL); + + if (pipe(pdes) < 0) { + free(cur); + return (NULL); + } + + switch (pid = vfork()) { + case -1: /* Error. */ + (void)close(pdes[0]); + (void)close(pdes[1]); + free(cur); + return (NULL); + /* NOTREACHED */ + case 0: /* Child. */ + if (*type == 'r') { + if (pdes[1] != STDOUT_FILENO) { + (void)dup2(pdes[1], STDOUT_FILENO); + (void)close(pdes[1]); + } + (void) close(pdes[0]); + } else { + if (pdes[0] != STDIN_FILENO) { + (void)dup2(pdes[0], STDIN_FILENO); + (void)close(pdes[0]); + } + (void)close(pdes[1]); + } + execl(_PATH_BSHELL, "sh", "-c", program, NULL); +#ifdef __CYGWIN32__ + /* On cygwin32, we may not have /bin/sh. In that + case, try to find sh on PATH. */ + execlp("sh", "sh", "-c", program, NULL); +#endif + _exit(127); + /* NOTREACHED */ + } + + /* Parent; assume fdopen can't fail. */ + if (*type == 'r') { + iop = fdopen(pdes[0], type); + (void)close(pdes[1]); + } else { + iop = fdopen(pdes[1], type); + (void)close(pdes[0]); + } + + /* Link into list of file descriptors. */ + cur->fp = iop; + cur->pid = pid; + cur->next = pidlist; + pidlist = cur; + + return (iop); +} + +/* + * pclose -- + * Pclose returns -1 if stream is not associated with a `popened' command, + * if already `pclosed', or waitpid returns an error. + */ +int +pclose(iop) + FILE *iop; +{ + register struct pid *cur, *last; + int pstat; + pid_t pid; + + (void)fclose(iop); + + /* Find the appropriate file pointer. */ + for (last = NULL, cur = pidlist; cur; last = cur, cur = cur->next) + if (cur->fp == iop) + break; + if (cur == NULL) + return (-1); + + do { + pid = waitpid(cur->pid, &pstat, 0); + } while (pid == -1 && errno == EINTR); + + /* Remove the entry from the linked list. */ + if (last == NULL) + pidlist = cur->next; + else + last->next = cur->next; + free(cur); + + return (pid == -1 ? -1 : pstat); +} diff --git a/newlib/libc/posix/readdir.c b/newlib/libc/posix/readdir.c new file mode 100644 index 000000000..308330cb0 --- /dev/null +++ b/newlib/libc/posix/readdir.c @@ -0,0 +1,76 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> + +/* + * get next entry in a directory. + */ +struct dirent * +readdir(dirp) +register DIR *dirp; { + register struct dirent *dp; + + for (;;) { + if (dirp->dd_loc == 0) { + dirp->dd_size = getdents (dirp->dd_fd, + dirp->dd_buf, + dirp->dd_len); + + if (dirp->dd_size <= 0) + return NULL; + } + if (dirp->dd_loc >= dirp->dd_size) { + dirp->dd_loc = 0; + continue; + } + dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); + if ((int)dp & 03) /* bogus pointer check */ + return NULL; + if (dp->d_reclen <= 0 || + dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) + return NULL; + dirp->dd_loc += dp->d_reclen; + if (dp->d_ino == 0) + continue; + return (dp); + } +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/rewinddir.c b/newlib/libc/posix/rewinddir.c new file mode 100644 index 000000000..6a3814b55 --- /dev/null +++ b/newlib/libc/posix/rewinddir.c @@ -0,0 +1,50 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)rewinddir.c 5.1 (Berkeley) 5/25/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> + +void +rewinddir(dirp) + DIR *dirp; +{ + _seekdir((dirp), (off_t)0); +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/scandir.c b/newlib/libc/posix/scandir.c new file mode 100644 index 000000000..895879bac --- /dev/null +++ b/newlib/libc/posix/scandir.c @@ -0,0 +1,142 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)scandir.c 5.10 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +/* + * Scan the directory dirname calling select to make a list of selected + * directory entries then sort using qsort and compare routine dcomp. + * Returns the number of entries and a pointer to a list of pointers to + * struct dirent (through namelist). Returns -1 if there were any errors. + */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <dirent.h> +#include <stdlib.h> +#include <string.h> + +/* + * The DIRSIZ macro gives the minimum record length which will hold + * the directory entry. This requires the amount of space in struct dirent + * without the d_name field, plus enough space for the name with a terminating + * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. + */ +#undef DIRSIZ +#define DIRSIZ(dp) \ + ((sizeof (struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) + +#ifndef __P +#define __P(args) () +#endif + +int +scandir(dirname, namelist, select, dcomp) + const char *dirname; + struct dirent ***namelist; + int (*select) __P((struct dirent *)); + int (*dcomp) __P((const void *, const void *)); +{ + register struct dirent *d, *p, **names; + register size_t nitems; + struct stat stb; + long arraysz; + DIR *dirp; + + if ((dirp = opendir(dirname)) == NULL) + return(-1); + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); + + /* + * estimate the array size by taking the size of the directory file + * and dividing it by a multiple of the minimum size entry. + */ + arraysz = (stb.st_size / 24); + names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + + nitems = 0; + while ((d = readdir(dirp)) != NULL) { + if (select != NULL && !(*select)(d)) + continue; /* just selected names */ + /* + * Make a minimum size copy of the data + */ + p = (struct dirent *)malloc(DIRSIZ(d)); + if (p == NULL) + return(-1); + p->d_ino = d->d_ino; + p->d_reclen = d->d_reclen; + p->d_namlen = d->d_namlen; + bcopy(d->d_name, p->d_name, p->d_namlen + 1); + /* + * Check to make sure the array has space left and + * realloc the maximum size. + */ + if (++nitems >= arraysz) { + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); /* just might have grown */ + arraysz = stb.st_size / 12; + names = (struct dirent **)realloc((char *)names, + arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + } + names[nitems-1] = p; + } + closedir(dirp); + if (nitems && dcomp != NULL) + qsort(names, nitems, sizeof(struct dirent *), dcomp); + *namelist = names; + return(nitems); +} + +/* + * Alphabetic order comparison routine for those who want it. + */ +int +alphasort(d1, d2) + const void *d1; + const void *d2; +{ + return(strcmp((*(struct dirent **)d1)->d_name, + (*(struct dirent **)d2)->d_name)); +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/seekdir.c b/newlib/libc/posix/seekdir.c new file mode 100644 index 000000000..dab3bfb24 --- /dev/null +++ b/newlib/libc/posix/seekdir.c @@ -0,0 +1,56 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)seekdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> + +/* + * Seek to an entry in a directory. + * _seekdir is in telldir.c so that it can share opaque data structures. + */ +void +seekdir(dirp, loc) + DIR *dirp; + long loc; +{ + + _seekdir(dirp, loc); +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/posix/telldir.c b/newlib/libc/posix/telldir.c new file mode 100644 index 000000000..90b12f99c --- /dev/null +++ b/newlib/libc/posix/telldir.c @@ -0,0 +1,133 @@ +#ifndef HAVE_OPENDIR + +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)telldir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * The option SINGLEUSE may be defined to say that a telldir + * cookie may be used only once before it is freed. This option + * is used to avoid having memory usage grow without bound. + */ +#define SINGLEUSE + +/* + * One of these structures is malloced to describe the current directory + * position each time telldir is called. It records the current magic + * cookie returned by getdirentries and the offset within the buffer + * associated with that return value. + */ +struct ddloc { + struct ddloc *loc_next;/* next structure in list */ + long loc_index; /* key associated with structure */ + long loc_seek; /* magic cookie returned by getdirentries */ + long loc_loc; /* offset of entry in buffer */ +}; + +#define NDIRHASH 32 /* Num of hash lists, must be a power of 2 */ +#define LOCHASH(i) ((i)&(NDIRHASH-1)) + +static long dd_loccnt; /* Index of entry for sequential readdir's */ +static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */ + +/* + * return a pointer into a directory + */ +long +telldir(dirp) + const DIR *dirp; +{ + register int index; + register struct ddloc *lp; + + if ((lp = (struct ddloc *)malloc(sizeof(struct ddloc))) == NULL) + return (-1); + index = dd_loccnt++; + lp->loc_index = index; + lp->loc_seek = dirp->dd_seek; + lp->loc_loc = dirp->dd_loc; + lp->loc_next = dd_hash[LOCHASH(index)]; + dd_hash[LOCHASH(index)] = lp; + return (index); +} + +/* + * seek to an entry in a directory. + * Only values returned by "telldir" should be passed to seekdir. + */ +void +_seekdir(dirp, loc) + register DIR *dirp; + long loc; +{ + register struct ddloc *lp; + register struct ddloc **prevlp; + struct dirent *dp; + extern long lseek(); + + prevlp = &dd_hash[LOCHASH(loc)]; + lp = *prevlp; + while (lp != NULL) { + if (lp->loc_index == loc) + break; + prevlp = &lp->loc_next; + lp = lp->loc_next; + } + if (lp == NULL) + return; + if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek) + goto found; + (void) lseek(dirp->dd_fd, lp->loc_seek, 0); + dirp->dd_seek = lp->loc_seek; + dirp->dd_loc = 0; + while (dirp->dd_loc < lp->loc_loc) { + dp = readdir(dirp); + if (dp == NULL) + break; + } +found: +#ifdef SINGLEUSE + *prevlp = lp->loc_next; + free((caddr_t)lp); +#endif +} + +#endif /* ! HAVE_OPENDIR */ diff --git a/newlib/libc/reent/Makefile.am b/newlib/libc/reent/Makefile.am new file mode 100644 index 000000000..20baf3f24 --- /dev/null +++ b/newlib/libc/reent/Makefile.am @@ -0,0 +1,55 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + closer.c \ + reent.c \ + impure.c \ + execr.c \ + fstatr.c \ + linkr.c \ + lseekr.c \ + openr.c \ + readr.c \ + signalr.c \ + sbrkr.c \ + statr.c \ + timer.c \ + writer.c + +CHEWOUT_FILES = \ + closer.def \ + reent.def \ + execr.def \ + fstatr.def \ + linkr.def \ + lseekr.def \ + openr.def \ + readr.def \ + signalr.def \ + sbrkr.def \ + statr.def \ + timer.def \ + writer.def + +SUFFIXES = .def .h + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/reent.tex >> $(TARGETDOC) + +impure.o: $(srcdir)/impure.c $(srcdir)/../include/sys/reent.h + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/reent/Makefile.in b/newlib/libc/reent/Makefile.in new file mode 100644 index 000000000..ad174b184 --- /dev/null +++ b/newlib/libc/reent/Makefile.in @@ -0,0 +1,329 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + closer.c \ + reent.c \ + impure.c \ + execr.c \ + fstatr.c \ + linkr.c \ + lseekr.c \ + openr.c \ + readr.c \ + signalr.c \ + sbrkr.c \ + statr.c \ + timer.c \ + writer.c + + +CHEWOUT_FILES = \ + closer.def \ + reent.def \ + execr.def \ + fstatr.def \ + linkr.def \ + lseekr.def \ + openr.def \ + readr.def \ + signalr.def \ + sbrkr.def \ + statr.def \ + timer.def \ + writer.def + + +SUFFIXES = .def .h + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = closer.o reent.o impure.o execr.o fstatr.o linkr.o \ +lseekr.o openr.o readr.o signalr.o sbrkr.o statr.o timer.o writer.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .h .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus reent/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = reent + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/reent.tex >> $(TARGETDOC) + +impure.o: $(srcdir)/impure.c $(srcdir)/../include/sys/reent.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/reent/closer.c b/newlib/libc/reent/closer.c new file mode 100644 index 000000000..aeacebd6c --- /dev/null +++ b/newlib/libc/reent/closer.c @@ -0,0 +1,58 @@ +/* Reentrant version of close system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of this functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifndef REENTRANT_SYSCALLS_PROVIDED + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_close_r>>---Reentrant version of close + +INDEX + _close_r + +ANSI_SYNOPSIS + #include <reent.h> + int _close_r(struct _reent *<[ptr]>, int <[fd]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _close_r(<[ptr]>, <[fd]>) + struct _reent *<[ptr]>; + int <[fd]>; + +DESCRIPTION + This is a reentrant version of <<close>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_close_r (ptr, fd) + struct _reent *ptr; + int fd; +{ + int ret; + + errno = 0; + if ((ret = _close (fd)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/execr.c b/newlib/libc/reent/execr.c new file mode 100644 index 000000000..9e8f75a65 --- /dev/null +++ b/newlib/libc/reent/execr.c @@ -0,0 +1,144 @@ +/* Reentrant versions of execution system calls. These + implementations just call the usual system calls. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +/* If NO_EXEC is defined, we don't need these functions. */ + +#if defined (REENTRANT_SYSCALLS_PROVIDED) || defined (NO_EXEC) + +int _dummy_exec_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_execve_r>>---Reentrant version of execve +INDEX + _execve_r + +ANSI_SYNOPSIS + #include <reent.h> + int _execve_r(struct _reent *<[ptr]>, char *<[name]>, + char **<[argv]>, char **<[env]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _execve_r(<[ptr]>, <[name]>, <[argv]>, <[env]>) + struct _reent *<[ptr]>; + char *<[name]>; + char **<[argv]>; + char **<[env]>; + +DESCRIPTION + This is a reentrant version of <<execve>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_execve_r (ptr, name, argv, env) + struct _reent *ptr; + char *name; + char **argv; + char **env; +{ + int ret; + + errno = 0; + if ((ret = _execve (name, argv, env)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + + +/* +FUNCTION + <<_fork_r>>---Reentrant version of fork + +INDEX + _fork_r + +ANSI_SYNOPSIS + #include <reent.h> + int _fork_r(struct _reent *<[ptr]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _fork_r(<[ptr]>) + struct _reent *<[ptr]>; + +DESCRIPTION + This is a reentrant version of <<fork>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +#ifndef NO_FORK + +int +_fork_r (ptr) + struct _reent *ptr; +{ + int ret; + + errno = 0; + if ((ret = _fork ()) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif + +/* +FUNCTION + <<_wait_r>>---Reentrant version of wait + +INDEX + _wait_r + +ANSI_SYNOPSIS + #include <reent.h> + int _wait_r(struct _reent *<[ptr]>, int *<[status]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _wait_r(<[ptr]>, <[status]>) + struct _reent *<[ptr]>; + int *<[status]>; + +DESCRIPTION + This is a reentrant version of <<wait>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_wait_r (ptr, status) + struct _reent *ptr; + int *status; +{ + int ret; + + errno = 0; + if ((ret = _wait (status)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/fstatr.c b/newlib/libc/reent/fstatr.c new file mode 100644 index 000000000..df132d799 --- /dev/null +++ b/newlib/libc/reent/fstatr.c @@ -0,0 +1,66 @@ +/* Reentrant versions of fstat system call. This implementation just + calls the fstat system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifdef REENTRANT_SYSCALLS_PROVIDED + +int _dummy_fstat_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_fstat_r>>---Reentrant version of fstat + +INDEX + _fstat_r + +ANSI_SYNOPSIS + #include <reent.h> + int _fstat_r(struct _reent *<[ptr]>, + int <[fd]>, struct stat *<[pstat]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _fstat_r(<[ptr]>, <[fd]>, <[pstat]>) + struct _reent *<[ptr]>; + int <[fd]>; + struct stat *<[pstat]>; + +DESCRIPTION + This is a reentrant version of <<fstat>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_fstat_r (ptr, fd, pstat) + struct _reent *ptr; + int fd; + struct stat *pstat; +{ + int ret; + + errno = 0; + if ((ret = _fstat (fd, pstat)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/impure.c b/newlib/libc/reent/impure.c new file mode 100644 index 000000000..a14f5c3cd --- /dev/null +++ b/newlib/libc/reent/impure.c @@ -0,0 +1,13 @@ +#include <reent.h> + +/* Note that there is a copy of this in sys/reent.h. */ +#ifndef __ATTRIBUTE_IMPURE_PTR__ +#define __ATTRIBUTE_IMPURE_PTR__ +#endif + +#ifndef __ATTRIBUTE_IMPURE_DATA__ +#define __ATTRIBUTE_IMPURE_DATA__ +#endif + +static struct _reent __ATTRIBUTE_IMPURE_DATA__ impure_data = _REENT_INIT (impure_data); +struct _reent *__ATTRIBUTE_IMPURE_PTR__ _impure_ptr = &impure_data; diff --git a/newlib/libc/reent/linkr.c b/newlib/libc/reent/linkr.c new file mode 100644 index 000000000..a15d2238c --- /dev/null +++ b/newlib/libc/reent/linkr.c @@ -0,0 +1,102 @@ +/* Reentrant versions of file system calls. These implementations + just call the usual system calls. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifdef REENTRANT_SYSCALLS_PROVIDED + +int _dummy_link_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_link_r>>---Reentrant version of link + +INDEX + _link_r + +ANSI_SYNOPSIS + #include <reent.h> + int _link_r(struct _reent *<[ptr]>, + const char *<[old]>, const char *<[new]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _link_r(<[ptr]>, <[old]>, <[new]>) + struct _reent *<[ptr]>; + char *<[old]>; + char *<[new]>; + +DESCRIPTION + This is a reentrant version of <<link>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_link_r (ptr, old, new) + struct _reent *ptr; + _CONST char *old; + _CONST char *new; +{ + int ret; + + errno = 0; + if ((ret = _link (old, new)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +/* +FUNCTION + <<_unlink_r>>---Reentrant version of unlink + +INDEX + _unlink_r + +ANSI_SYNOPSIS + #include <reent.h> + int _unlink_r(struct _reent *<[ptr]>, const char *<[file]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _unlink_r(<[ptr]>, <[file]>) + struct _reent *<[ptr]>; + char *<[file]>; + +DESCRIPTION + This is a reentrant version of <<unlink>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_unlink_r (ptr, file) + struct _reent *ptr; + _CONST char *file; +{ + int ret; + + errno = 0; + if ((ret = _unlink (file)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/lseekr.c b/newlib/libc/reent/lseekr.c new file mode 100644 index 000000000..ed8ba13ed --- /dev/null +++ b/newlib/libc/reent/lseekr.c @@ -0,0 +1,63 @@ +/* Reentrant versions of lseek system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of this functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifndef REENTRANT_SYSCALLS_PROVIDED + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_lseek_r>>---Reentrant version of lseek + +INDEX + _lseek_r + +ANSI_SYNOPSIS + #include <reent.h> + off_t _lseek_r(struct _reent *<[ptr]>, + int <[fd]>, off_t <[pos]>, int <[whence]>); + +TRAD_SYNOPSIS + #include <reent.h> + off_t _lseek_r(<[ptr]>, <[fd]>, <[pos]>, <[whence]>) + struct _reent *<[ptr]>; + int <[fd]>; + off_t <[pos]>; + int <[whence]>; + +DESCRIPTION + This is a reentrant version of <<lseek>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +off_t +_lseek_r (ptr, fd, pos, whence) + struct _reent *ptr; + int fd; + off_t pos; + int whence; +{ + off_t ret; + + errno = 0; + if ((ret = _lseek (fd, pos, whence)) == (off_t) -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/openr.c b/newlib/libc/reent/openr.c new file mode 100644 index 000000000..2e3b608d7 --- /dev/null +++ b/newlib/libc/reent/openr.c @@ -0,0 +1,64 @@ +/* Reentrant versions of open system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of this functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifndef REENTRANT_SYSCALLS_PROVIDED + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_open_r>>---Reentrant version of open + +INDEX + _open_r + +ANSI_SYNOPSIS + #include <reent.h> + int _open_r(struct _reent *<[ptr]>, + const char *<[file]>, int <[flags]>, int <[mode]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _open_r(<[ptr]>, <[file]>, <[flags]>, <[mode]>) + struct _reent *<[ptr]>; + char *<[file]>; + int <[flags]>; + int <[mode]>; + +DESCRIPTION + This is a reentrant version of <<open>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_open_r (ptr, file, flags, mode) + struct _reent *ptr; + _CONST char *file; + int flags; + int mode; +{ + int ret; + + errno = 0; + if ((ret = _open (file, flags, mode)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/readr.c b/newlib/libc/reent/readr.c new file mode 100644 index 000000000..e3deca9a7 --- /dev/null +++ b/newlib/libc/reent/readr.c @@ -0,0 +1,63 @@ +/* Reentrant versions of read system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of this functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifndef REENTRANT_SYSCALLS_PROVIDED + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_read_r>>---Reentrant version of read + +INDEX + _read_r + +ANSI_SYNOPSIS + #include <reent.h> + long _read_r(struct _reent *<[ptr]>, + int <[fd]>, void *<[buf]>, size_t <[cnt]>); + +TRAD_SYNOPSIS + #include <reent.h> + long _read_r(<[ptr]>, <[fd]>, <[buf]>, <[cnt]>) + struct _reent *<[ptr]>; + int <[fd]>; + char *<[buf]>; + size_t <[cnt]>; + +DESCRIPTION + This is a reentrant version of <<read>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +long +_read_r (ptr, fd, buf, cnt) + struct _reent *ptr; + int fd; + _PTR buf; + size_t cnt; +{ + long ret; + + errno = 0; + if ((ret = _read (fd, buf, cnt)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/reent.c b/newlib/libc/reent/reent.c new file mode 100644 index 000000000..93b3e86c8 --- /dev/null +++ b/newlib/libc/reent/reent.c @@ -0,0 +1,107 @@ +/* +FUNCTION + <<reent>>---definition of impure data. + +INDEX + reent + +DESCRIPTION + This module defines the impure data area used by the + non-rentrant functions, such as strtok. +*/ + +#include <reent.h> + +/* Interim cleanup code */ + +void +cleanup_glue (ptr, glue) + struct _reent *ptr; + struct _glue *glue; +{ + /* Have to reclaim these in reverse order: */ + if (glue->_next) + cleanup_glue (ptr, glue->_next); + + _free_r (ptr, glue); +} + +void +_reclaim_reent (ptr) + struct _reent *ptr; +{ + if (ptr != _impure_ptr) + { + /* used by mprec routines. */ + if (ptr->_freelist) + { + int i; + for (i = 0; i < 15 /* _Kmax */; i++) + { + struct _Bigint *thisone, *nextone; + + nextone = ptr->_freelist[i]; + while (nextone) + { + thisone = nextone; + nextone = nextone->_next; + _free_r (ptr, thisone); + } + } + + _free_r (ptr, ptr->_freelist); + } + + /* atexit stuff */ + if ((ptr->_atexit) && (ptr->_atexit != &ptr->_atexit0)) + { + struct _atexit *p, *q; + for (p = ptr->_atexit; p != &ptr->_atexit0;) + { + q = p; + p = p->_next; + _free_r (ptr, q); + } + } + + if (ptr->_cvtbuf) + _free_r (ptr, ptr->_cvtbuf); + + if (ptr->__sdidinit) + { + /* cleanup won't reclaim memory 'coz usually it's run + before the program exits, and who wants to wait for that? */ + ptr->__cleanup (ptr); + + if (ptr->__sglue._next) + cleanup_glue (ptr, ptr->__sglue._next); + } + + /* Malloc memory not reclaimed; no good way to return memory anyway. */ + + } +} + +/* + * Do atexit() processing and cleanup + * + * NOTE: This is to be executed at task exit. It does not tear anything + * down which is used on a global basis. + */ + +void +_wrapup_reent(struct _reent *ptr) +{ + register struct _atexit *p; + register int n; + + if (ptr == 0) + ptr = _REENT; + + for (p = ptr->_atexit; p; p = p->_next) + for (n = p->_ind; --n >= 0;) + (*p->_fns[n]) (); + if (ptr->__cleanup) + (*ptr->__cleanup) (ptr); +} + diff --git a/newlib/libc/reent/reent.tex b/newlib/libc/reent/reent.tex new file mode 100644 index 000000000..71a0a0dcd --- /dev/null +++ b/newlib/libc/reent/reent.tex @@ -0,0 +1,108 @@ +@node Reentrancy +@chapter Reentrancy + +@cindex reentrancy +Reentrancy is a characteristic of library functions which allows multiple +processes to use the same address space with assurance that the values stored +in those spaces will remain constant between calls. Cygnus's implementation +of the library functions ensures that +whenever possible, these library functions are reentrant. However, +there are some functions that can not be trivially made reentrant. +Hooks have been provided to allow you to use these functions in a fully +reentrant fashion. + +@findex _reent +@findex reent.h +@cindex reentrancy structure +These hooks use the structure @code{_reent} defined in @file{reent.h}. +A variable defined as @samp{struct _reent} is called a @dfn{reentrancy +structure}. All functions which must manipulate global information are +available in two versions. The first version has the usual name, and +uses a single global instance of the reentrancy structure. The second +has a different name, normally formed by prepending @samp{_} and +appending @samp{_r}, and takes a pointer to the particular reentrancy +structure to use. + +For example, the function @code{fopen} takes two arguments, @var{file} +and @var{mode}, and uses the global reentrancy structure. The function +@code{_fopen_r} takes the arguments, @var{struct_reent}, which is a +pointer to an instance of the reentrancy structure, @var{file} +and @var{mode}. + +@cindex global reentrancy structure +@findex _impure_ptr +Each function which uses the global reentrancy structure uses the global +variable @code{_impure_ptr}, which points to a reentrancy structure. + +This means that you have two ways to achieve reentrancy. Both require +that each thread of execution control initialize a unique global +variable of type @samp{struct _reent}: + +@enumerate +@item +@cindex extra argument, reentrant fns +Use the reentrant versions of the library functions, after initializing +a global reentrancy structure for each process. Use the pointer to this +structure as the extra argument for all library functions. + +@item +Ensure that each thread of execution control has a pointer to its own +unique reentrancy structure in the global variable @code{_impure_ptr}, +and call the standard library subroutines. +@end enumerate + +@cindex list of reentrant functions +@cindex reentrant function list +The following functions are provided in both reentrant +and non-reentrant versions. + +@example +@exdent @emph{Equivalent for errno variable:} +_errno_r + +@exdent @emph{Locale functions:} +_localeconv_r _setlocale_r + +@exdent @emph{Equivalents for stdio variables:} +_stdin_r _stdout_r _stderr_r + +@page +@exdent @emph{Stdio functions:} +_fdopen_r _perror_r _tempnam_r +_fopen_r _putchar_r _tmpnam_r +_getchar_r _puts_r _tmpfile_r +_gets_r _remove_r _vfprintf_r +_iprintf_r _rename_r _vsnprintf_r +_mkstemp_r _snprintf_r _vsprintf_r +_mktemp_t _sprintf_r + +@exdent @emph{Signal functions:} +_init_signal_r _signal_r +_kill_r __sigtramp_r +_raise_r + +@exdent @emph{Stdlib functions:} +_calloc_r _mblen_r _setenv_r +_dtoa_r _mbstowcs_r _srand_r +_free_r _mbtowc_r _strtod_r +_getenv_r _memalign_r _strtol_r +_mallinfo_r _mstats_r _strtoul_r +_malloc_r _putenv_r _system_r +_malloc_r _rand_r _wcstombs_r +_malloc_stats_r _realloc_r _wctomb_r + +@exdent @emph{String functions:} +_strdup_r _strtok_r + +@exdent @emph{System functions:} +_close_r _link_r _unlink_r +_execve_r _lseek_r _wait_r +_fcntl_r _open_r _write_r +_fork_r _read_r +_fstat_r _sbrk_r +_gettimeofday_r _stat_r +_getpid_r _times_r + +@exdent @emph{Time function:} +_asctime_r +@end example diff --git a/newlib/libc/reent/sbrkr.c b/newlib/libc/reent/sbrkr.c new file mode 100644 index 000000000..7f6930ead --- /dev/null +++ b/newlib/libc/reent/sbrkr.c @@ -0,0 +1,66 @@ +/* Reentrant versions of sbrk system call. This implementation just + calls the stat system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +/* If MALLOC_PROVIDED is defined, we don't need this function. */ + +#if defined (REENTRANT_SYSCALLS_PROVIDED) || defined (MALLOC_PROVIDED) + +int _dummy_sbrk_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +int errno; + +/* +FUNCTION + <<_sbrk_r>>---Reentrant version of sbrk + +INDEX + _sbrk_r + +ANSI_SYNOPSIS + #include <reent.h> + void *_sbrk_r(struct _reent *<[ptr]>, size_t <[incr]>); + +TRAD_SYNOPSIS + #include <reent.h> + void *_sbrk_r(<[ptr]>, <[incr]>) + struct _reent *<[ptr]>; + size_t <[incr]>; + +DESCRIPTION + This is a reentrant version of <<sbrk>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +void * +_sbrk_r (ptr, incr) + struct _reent *ptr; + size_t incr; +{ + char *ret; + void *_sbrk(size_t); + + errno = 0; + if ((ret = (char *)(_sbrk (incr))) == (void *) -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/signalr.c b/newlib/libc/reent/signalr.c new file mode 100644 index 000000000..7c85af142 --- /dev/null +++ b/newlib/libc/reent/signalr.c @@ -0,0 +1,98 @@ +/* Reentrant versions of syscalls need to support signal/raise. + These implementations just call the usual system calls. */ + +#include <reent.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifdef REENTRANT_SYSCALLS_PROVIDED + +int _dummy_link_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_kill_r>>---Reentrant version of kill + +INDEX + _kill_r + +ANSI_SYNOPSIS + #include <reent.h> + int _kill_r(struct _reent *<[ptr]>, int <[pid]>, int <[sig]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _kill_r(<[ptr]>, <[pid]>, <[sig]>) + struct _reent *<[ptr]>; + int <[pid]>; + int <[sig]>; + +DESCRIPTION + This is a reentrant version of <<kill>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_kill_r (ptr, pid, sig) + struct _reent *ptr; + int pid; + int sig; +{ + int ret; + + errno = 0; + if ((ret = _kill (pid, sig)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +/* +FUNCTION + <<_getpid_r>>---Reentrant version of getpid + +INDEX + _getpid_r + +ANSI_SYNOPSIS + #include <reent.h> + int _getpid_r(struct _reent *<[ptr]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _getpid_r(<[ptr]>) + struct _reent *<[ptr]>; + +DESCRIPTION + This is a reentrant version of <<getpid>>. It + takes a pointer to the global data block, which holds + <<errno>>. + + We never need <<errno>>, of course, but for consistency we + still must have the reentrant pointer argument. +*/ + +int +_getpid_r (ptr) + struct _reent *ptr; +{ + int ret; + ret = _getpid (); + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/statr.c b/newlib/libc/reent/statr.c new file mode 100644 index 000000000..55d29bdb8 --- /dev/null +++ b/newlib/libc/reent/statr.c @@ -0,0 +1,67 @@ +/* Reentrant versions of stat system call. This implementation just + calls the stat system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in + TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifdef REENTRANT_SYSCALLS_PROVIDED + +int _dummy_stat_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_stat_r>>---Reentrant version of stat + +INDEX + _stat_r + +ANSI_SYNOPSIS + #include <reent.h> + int _stat_r(struct _reent *<[ptr]>, + const char *<[file]>, struct stat *<[pstat]>); + +TRAD_SYNOPSIS + #include <reent.h> + int _stat_r(<[ptr]>, <[file]>, <[pstat]>) + struct _reent *<[ptr]>; + char *<[file]>; + struct stat *<[pstat]>; + +DESCRIPTION + This is a reentrant version of <<stat>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +int +_stat_r (ptr, file, pstat) + struct _reent *ptr; + _CONST char *file; + struct stat *pstat; +{ + int ret; + + errno = 0; + if ((ret = _stat (file, pstat)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/timer.c b/newlib/libc/reent/timer.c new file mode 100644 index 000000000..526b4d135 --- /dev/null +++ b/newlib/libc/reent/timer.c @@ -0,0 +1,112 @@ +/* Reentrant versions of times and gettimeofday system calls for the + clock and time ANSI C routines. + This implementation just calls the times/gettimeofday system calls. + Gettimeofday may not be available on all targets. It's presence + here is dubious. Consider it for internal use only. */ + +#include <reent.h> +#include <time.h> +#include <sys/times.h> +#include <_syslist.h> + +/* Some targets provides their own versions of these functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifdef REENTRANT_SYSCALLS_PROVIDED + +int _dummy_time_syscalls = 1; + +#else + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_times_r>>---Reentrant version of times + +INDEX + _times_r + +ANSI_SYNOPSIS + #include <reent.h> + #include <sys/times.h> + clock_t _times_r(struct _reent *<[ptr]>, struct tms *<[ptms]>); + +TRAD_SYNOPSIS + #include <reent.h> + #include <sys/times.h> + clock_t _times_r(<[ptr]>, <[ptms]>) + struct _reent *<[ptr]>; + struct tms *<[ptms]>; + +DESCRIPTION + This is a reentrant version of <<times>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +clock_t +_times_r (ptr, ptms) + struct _reent *ptr; + struct tms *ptms; +{ + clock_t ret; + + ret = _times (ptms); + return ret; +} + +/* +FUNCTION + <<_gettimeofday_r>>---Reentrant version of gettimeofday + +INDEX + _gettimeofday_r + +ANSI_SYNOPSIS + #include <reent.h> + #include <time.h> + int _gettimeofday_r(struct _reent *<[ptr]>, + struct timeval *<[ptimeval]>, + struct timezone *<[ptimezone]>); + +TRAD_SYNOPSIS + #include <reent.h> + #include <time.h> + int _gettimeofday_r(<[ptr]>, <[ptimeval]>, <[ptimezone]>) + struct _reent *<[ptr]>; + struct timeval *<[ptimeval]>; + struct timezone *<[ptimezone]>; + +DESCRIPTION + This is a reentrant version of <<gettimeofday>>. It + takes a pointer to the global data block, which holds + <<errno>>. + + This function is only available for a few targets. + Check libc.a to see if its available on yours. +*/ + +int +_gettimeofday_r (ptr, ptimeval, ptimezone) + struct _reent *ptr; + struct timeval *ptimeval; + struct timezone *ptimezone; +{ + int ret; + + errno = 0; + if ((ret = _gettimeofday (ptimeval, ptimezone)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/reent/writer.c b/newlib/libc/reent/writer.c new file mode 100644 index 000000000..ac10286e8 --- /dev/null +++ b/newlib/libc/reent/writer.c @@ -0,0 +1,63 @@ +/* Reentrant versions of write system call. */ + +#include <reent.h> +#include <unistd.h> +#include <_syslist.h> + +/* Some targets provides their own versions of this functions. Those + targets should define REENTRANT_SYSCALLS_PROVIDED in TARGET_CFLAGS. */ + +#ifdef _REENT_ONLY +#ifndef REENTRANT_SYSCALLS_PROVIDED +#define REENTRANT_SYSCALLS_PROVIDED +#endif +#endif + +#ifndef REENTRANT_SYSCALLS_PROVIDED + +/* We use the errno variable used by the system dependent layer. */ +#undef errno +extern int errno; + +/* +FUNCTION + <<_write_r>>---Reentrant version of write + +INDEX + _write_r + +ANSI_SYNOPSIS + #include <reent.h> + long _write_r(struct _reent *<[ptr]>, + int <[fd]>, const void *<[buf]>, size_t <[cnt]>); + +TRAD_SYNOPSIS + #include <reent.h> + long _write_r(<[ptr]>, <[fd]>, <[buf]>, <[cnt]>) + struct _reent *<[ptr]>; + int <[fd]>; + char *<[buf]>; + size_t <[cnt]>; + +DESCRIPTION + This is a reentrant version of <<write>>. It + takes a pointer to the global data block, which holds + <<errno>>. +*/ + +long +_write_r (ptr, fd, buf, cnt) + struct _reent *ptr; + int fd; + _CONST _PTR buf; + size_t cnt; +{ + long ret; + + errno = 0; + if ((ret = _write (fd, buf, cnt)) == -1 && errno != 0) + ptr->_errno = errno; + return ret; +} + +#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ diff --git a/newlib/libc/saber b/newlib/libc/saber new file mode 100644 index 000000000..4f16f976e --- /dev/null +++ b/newlib/libc/saber @@ -0,0 +1,185 @@ +setopt sys_load_flags -L/lib -L/usr/lib -I/limbo/unsupported/packages/CenterLine/general/unsupported/sparc +setopt load_flags -I./include -I./machine/sparc -I./sys/sun4 + + +load signal/raise.c +load signal/signal.c +load stdio/clearerr.c +load stdio/cvt.c +load stdio/dcvt.c +load stdio/fclose.c +load stdio/feof.c +load stdio/ferror.c +load stdio/fflush.c +load stdio/fgetc.c +load stdio/fgetpos.c +load stdio/fgets.c +load stdio/findfp.c +load stdio/flags.c +load stdio/fopen.c + +load stdio/fputc.c +load stdio/fputs.c +load stdio/fread.c +load stdio/freopen.c +load stdio/fscanf.c +load stdio/fseek.c +load stdio/fsetpos.c +load stdio/ftell.c +load stdio/fvwrite.c +load stdio/fwalk.c +load stdio/fwrite.c +load stdio/getc.c +load stdio/getchar.c +load stdio/gets.c +load stdio/iprintf.c +load stdio/makebuf.c +load stdio/perror.c +load stdio/printf.c +load stdio/putc.c +load stdio/putchar.c +load stdio/puts.c +load stdio/refill.c +load stdio/remove.c +load stdio/rename.c +load stdio/rewind.c +load stdio/rget.c +load stdio/scanf.c +load stdio/setbuf.c +load stdio/setvbuf.c +load stdio/sprintf.c +load stdio/sscanf.c +load stdio/stdio.c +load stdio/tmpfile.c +load stdio/tmpnam.c +load stdio/ungetc.c +load stdio/vfiprintf.c +load stdio/vfprintf.c +load stdio/vfscanf.c +load stdio/vprintf.c +load stdio/vsprintf.c +load stdio/wbuf.c +load stdio/wsetup.c +load stdlib/__adjust.c +load stdlib/__exp10.c +load stdlib/__ten_mu.c +load stdlib/abort.c +load stdlib/abs.c +load stdlib/assert.c +load stdlib/atexit.c +load stdlib/atof.c +load stdlib/atoi.c +load stdlib/atol.c +load stdlib/bsearch.c +load stdlib/calloc.c +load stdlib/div.c +load stdlib/efgcvt.c +load stdlib/exit.c +load stdlib/getenv.c +load stdlib/labs.c +load stdlib/ldiv.c +load stdlib/malloc.c +load stdlib/mbtowc.c +load stdlib/qsort.c +load stdlib/rand.c +load stdlib/strtod.c +load stdlib/strtol.c +load stdlib/strtoul.c +load stdlib/system.c +load stdlib/wctomb.c +load string/bcmp.c +load string/bcopy.c +load string/bzero.c +load string/index.c +load string/memchr.c +load string/memcmp.c +load string/memcpy.c +load string/memmove.c +load string/memset.c +load string/rindex.c +load string/strcat.c +load string/strchr.c +load string/strcmp.c +load string/strcoll.c +load string/strcpy.c +load string/strcspn.c +load string/strerror.c +load string/strlen.c +load string/strncat.c +load string/strncmp.c +load string/strncpy.c +load string/strpbrk.c +load string/strrchr.c +load string/strspn.c +load string/strstr.c +load string/strtok.c +load string/strxfrm.c +time/asctime.c +time/clock.c +time/ctime.c +time/difftime.c +time/gmtime.c +time/localtime.c +time/mktime.c +time/strftime.c + + +load stdio/fiprintf.c +load stdio/fprintf.c +load ctype/ctype_.c +load ctype/isalnum.c +load ctype/isalpha.c +load ctype/isascii.c +load ctype/iscntrl.c +load ctype/isdigit.c +load ctype/islower.c +load ctype/isprint.c +load ctype/ispunct.c +load ctype/isspace.c +load ctype/isupper.c +load ctype/isxdigit.c +load ctype/toascii.c +load ctype/tolower.c +load ctype/toupper.c +load errno/errno.c +/*load ieeefp/fpmask.c +load ieeefp/fpround.c +load ieeefp/fpsticky.c +load ieeefp/infinity.c +load ieeefp/isnan.c +load locale/locale.c +load math/acos.c +load math/acosh.c +load math/asin.c +load math/asinh.c +load math/atan.c +load math/atan2.c +load math/atanh.c +load math/bessel.c +load math/copysign.c +load math/cosh.c +load math/erf.c +load math/error.c +load math/exp.c +load math/fabs.c +load math/floor.c +load math/fmod.c +load math/frexp.c +load math/gamma.c +load math/hypot.c +load math/ldexp.c +load math/log.c +load math/log10.c +load math/log1p.c +load math/log2.c +load math/log__L.c +load math/matherr.c +load math/modf.c +load math/pow.c +load math/scalb.c +load math/sincos.c +load math/sinh.c +load math/sqrt.c +load math/tan.c +load math/tanh.c +*/ diff --git a/newlib/libc/signal/Makefile.am b/newlib/libc/signal/Makefile.am new file mode 100644 index 000000000..038948b6d --- /dev/null +++ b/newlib/libc/signal/Makefile.am @@ -0,0 +1,26 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = raise.c signal.c + +CHEWOUT_FILES = raise.def signal.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/signal.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/signal/Makefile.in b/newlib/libc/signal/Makefile.in new file mode 100644 index 000000000..9d2cb1ee5 --- /dev/null +++ b/newlib/libc/signal/Makefile.in @@ -0,0 +1,297 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = raise.c signal.c + +CHEWOUT_FILES = raise.def signal.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = raise.o signal.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus signal/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = signal + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/signal.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/signal/raise.c b/newlib/libc/signal/raise.c new file mode 100644 index 000000000..bc47864e8 --- /dev/null +++ b/newlib/libc/signal/raise.c @@ -0,0 +1,80 @@ +/* Embedded systems may want the simulated signals if no other form exists, + but UNIX versions will want to use the host facilities. + Define SIMULATED_SIGNALS when you want to use the simulated versions. +*/ + +/* +FUNCTION +<<raise>>---send a signal + +INDEX + raise +INDEX + _raise_r + +ANSI_SYNOPSIS + #include <signal.h> + int raise(int <[sig]>); + + int _raise_r(void *<[reent]>, int <[sig]>); + +TRAD_SYNOPSIS + #include <signal.h> + int raise(<[sig]>) + int <[sig]>; + + int _raise_r(<[reent]>, <[sig]>) + char *<[reent]>; + int <[sig]>; + +DESCRIPTION +Send the signal <[sig]> (one of the macros from `<<sys/signal.h>>'). +This interrupts your program's normal flow of execution, and allows a signal +handler (if you've defined one, using <<signal>>) to take control. + +The alternate function <<_raise_r>> is a reentrant version. The extra +argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +The result is <<0>> if <[sig]> was successfully raised, <<1>> +otherwise. However, the return value (since it depends on the normal +flow of execution) may not be visible, unless the signal handler for +<[sig]> terminates with a <<return>> or unless <<SIG_IGN>> is in +effect for this signal. + +PORTABILITY +ANSI C requires <<raise>>, but allows the full set of signal numbers +to vary from one implementation to another. + +Required OS subroutines: <<getpid>>, <<kill>>. +*/ + +#ifndef SIGNAL_PROVIDED + +int _dummy_raise; + +#else + +#include <reent.h> +#include <signal.h> + +#ifndef _REENT_ONLY + +int +_DEFUN (raise, (sig), + int sig) +{ + return _raise_r (_REENT, sig); +} + +#endif + +int +_DEFUN (_raise_r, (reent, sig), + struct _reent *reent _AND + int sig) +{ + return _kill_r (reent, _getpid_r (reent), sig); +} + +#endif /* SIGNAL_PROVIDED */ diff --git a/newlib/libc/signal/signal.c b/newlib/libc/signal/signal.c new file mode 100644 index 000000000..fc52bbab5 --- /dev/null +++ b/newlib/libc/signal/signal.c @@ -0,0 +1,269 @@ +/* +FUNCTION +<<signal>>---specify handler subroutine for a signal + +INDEX + signal +INDEX + _signal_r +INDEX + raise +INDEX + _raise_r + +ANSI_SYNOPSIS + #include <signal.h> + void ( * signal(int <[sig]>, void(*<[func]>)(int)) )(int); + + void ( * _signal_r(void *<[reent]>, + int <[sig]>, void(*<[func]>)(int)) )(int); + + int raise (int <[sig]>); + + int _raise_r (void *<[reent]>, int <[sig]>); + +TRAD_SYNOPSIS + #include <signal.h> + char ( * signal(<[sig]>, <[func]>) )() + int <[sig]>; + char ( * <[func]> )(); + + char ( * _signal_r(<[reent]>, <[sig]>, <[func]>) )() + char *<[reent]>; + int <[sig]>; + char ( * <[func]> )(); + + int raise (<[sig]>)() + int <[sig]>; + + int _raise_r (<[reent]>, <[sig]>)() + char *<[reent]>; + int <[sig]>; + +DESCRIPTION +<<signal, raise>> provide a simple signal/raise implementation for embedded +targets. + +<<signal>> allows you to request changed treatment for a particular +signal <[sig]>. You can use one of the predefined macros <<SIG_DFL>> +(select system default handling) or <<SIG_IGN>> (ignore this signal) +as the value of <[func]>; otherwise, <[func]> is a function pointer +that identifies a subroutine in your program as the handler for this signal. + +Some of the execution environment for signal handlers is +unpredictable; notably, the only library function required to work +correctly from within a signal handler is @code{signal} itself, and +only when used to redefine the handler for the current signal value. + +Static storage is likewise unreliable for signal handlers, with one +exception: if you declare a static storage location as `<<volatile +sig_atomic_t>>', then you may use that location in a signal handler to +store signal values. + +If your signal handler terminates using <<return>> (or implicit +return), your program's execution continues at the point +where it was when the signal was raised (whether by your program +itself, or by an external event). Signal handlers can also +use functions such as <<exit>> and <<abort>> to avoid returning. + +<<raise>> sends the signal sig to the executing program. It returns zero if +successful, non-zero if unsuccessful. + +The alternate functions <<_signal_r, _raise_r>> are the reentrant versions. +The extra argument <[reent]> is a pointer to a reentrancy structure. + + +@c FIXME: do we have setjmp.h and assoc fns? + +RETURNS +If your request for a signal handler cannot be honored, the result is +<<SIG_ERR>>; a specific error number is also recorded in <<errno>>. + +Otherwise, the result is the previous handler (a function pointer or +one of the predefined macros). + +PORTABILITY +ANSI C requires <<raise>>, <<signal>>. + +No supporting OS subroutines are required to link with <<signal>>, but +it will not have any useful effects, except for software generated signals, +without an operating system that can actually raise exceptions. +*/ + +/* + * signal.c + * Original Author: G. Haley + * + * signal associates the function pointed to by func with the signal sig. When + * a signal occurs, the value of func determines the action taken as follows: + * if func is SIG_DFL, the default handling for that signal will occur; if func + * is SIG_IGN, the signal will be ignored; otherwise, the default handling for + * the signal is restored (SIG_DFL), and the function func is called with sig + * as its argument. Returns the value of func for the previous call to signal + * for the signal sig, or SIG_ERR if the request fails. + */ + +/* _init_signal initialises the signal handlers for each signal. This function + is called by crt0 at program startup. */ + +#ifdef SIGNAL_PROVIDED + +int _dummy_simulated_signal; + +#else + +#include <errno.h> +#include <signal.h> +#include <stddef.h> +#include <stdlib.h> +#include <reent.h> +#include <_syslist.h> + +int +_DEFUN (_init_signal_r, (ptr), + struct _reent *ptr) +{ + int i; + + if (ptr->_sig_func == NULL) + { + ptr->_sig_func = (_sig_func_ptr *)_malloc_r (ptr, sizeof (_sig_func_ptr) * NSIG); + if (ptr->_sig_func == NULL) + return -1; + + for (i = 0; i < NSIG; i++) + ptr->_sig_func[i] = SIG_DFL; + } + + return 0; +} + +_sig_func_ptr +_DEFUN (_signal_r, (ptr, sig, func), + struct _reent *ptr _AND + int sig _AND + _sig_func_ptr func) +{ + _sig_func_ptr old_func, *temp; + + if (sig < 0 || sig >= NSIG) + { + ptr->_errno = EINVAL; + return SIG_ERR; + } + + if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) + return SIG_ERR; + + old_func = ptr->_sig_func[sig]; + ptr->_sig_func[sig] = func; + + return old_func; +} + +int +_raise_r (ptr, sig) + struct _reent *ptr; + int sig; +{ + _sig_func_ptr func; + int result = 0; + + if (sig < 0 || sig >= NSIG) + { + ptr->_errno = EINVAL; + return -1; + } + + if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) + return -1; + + switch ((_POINTER_INT) ptr->_sig_func[sig]) + { + case SIG_DFL: + return _kill_r (ptr, _getpid_r (ptr), sig); + + case SIG_IGN: + break; + + case SIG_ERR: + ptr->_errno = EINVAL; + result = 1; + break; + + default: + func = ptr->_sig_func[sig]; + ptr->_sig_func[sig] = SIG_DFL; + func (sig); + break; + } + + return result; +} + +int +__sigtramp_r (ptr, sig) + struct _reent *ptr; + int sig; +{ + _sig_func_ptr func; + + if (sig < 0 || sig >= NSIG) + { + return -1; + } + + if (ptr->_sig_func == NULL && _init_signal_r (ptr) != 0) + return -1; + + switch ((_POINTER_INT) ptr->_sig_func[sig]) + { + case SIG_DFL: + return 1; + + case SIG_ERR: + return 2; + + case SIG_IGN: + return 3; + + default: + func = ptr->_sig_func[sig]; + ptr->_sig_func[sig] = SIG_DFL; + func (sig); + return 0; + } +} + +#ifndef _REENT_ONLY + +int +raise (sig) + int sig; +{ + return _raise_r (_REENT, sig); +} + +_sig_func_ptr +_DEFUN (signal, (sig, func), + int sig _AND + _sig_func_ptr func) +{ + return _signal_r (_REENT, sig, func); +} + +int +_init_signal () +{ + return _init_signal_r (_REENT); +} + +int +__sigtramp (int sig) +{ + return __sigtramp_r (_REENT, sig); +} + +#endif + +#endif /* !SIGNAL_PROVIDED */ diff --git a/newlib/libc/signal/signal.tex b/newlib/libc/signal/signal.tex new file mode 100644 index 000000000..08c15bed8 --- /dev/null +++ b/newlib/libc/signal/signal.tex @@ -0,0 +1,70 @@ +@node Signals +@chapter Signal Handling (@file{signal.h}) + +A @dfn{signal} is an event that interrupts the normal flow of control +in your program. Your operating environment normally defines the full +set of signals available (see @file{sys/signal.h}), as well as the +default means of dealing with them---typically, either printing an +error message and aborting your program, or ignoring the signal. + +All systems support at least the following signals: +@table @code +@item SIGABRT +Abnormal termination of a program; raised by the <<abort>> function. + +@item SIGFPE +A domain error in arithmetic, such as overflow, or division by zero. + +@item SIGILL +Attempt to execute as a function data that is not executable. + +@item SIGINT +Interrupt; an interactive attention signal. + +@item SIGSEGV +An attempt to access a memory location that is not available. + +@item SIGTERM +A request that your program end execution. +@end table + +Two functions are available for dealing with asynchronous +signals---one to allow your program to send signals to itself (this is +called @dfn{raising} a signal), and one to specify subroutines (called +@dfn{handlers} to handle particular signals that you anticipate may +occur---whether raised by your own program or the operating environment. + +To support these functions, @file{signal.h} defines three macros: + +@table @code +@item SIG_DFL +Used with the @code{signal} function in place of a pointer to a +handler subroutine, to select the operating environment's default +handling of a signal. + +@item SIG_IGN +Used with the @code{signal} function in place of a pointer to a +handler, to ignore a particular signal. + +@item SIG_ERR +Returned by the @code{signal} function in place of a pointer to a +handler, to indicate that your request to set up a handler could not +be honored for some reason. +@end table + +@file{signal.h} also defines an integral type, @code{sig_atomic_t}. +This type is not used in any function declarations; it exists only to +allow your signal handlers to declare a static storage location where +they may store a signal value. (Static storage is not otherwise +reliable from signal handlers.) + +@menu +* raise:: Send a signal +* signal:: Specify handler subroutine for a signal +@end menu + +@page +@include signal/raise.def + +@page +@include signal/signal.def diff --git a/newlib/libc/stdio/Makefile.am b/newlib/libc/stdio/Makefile.am new file mode 100644 index 000000000..234da49b6 --- /dev/null +++ b/newlib/libc/stdio/Makefile.am @@ -0,0 +1,161 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + clearerr.c \ + fclose.c \ + fdopen.c \ + feof.c \ + ferror.c \ + fflush.c \ + fgetc.c \ + fgetpos.c \ + fgets.c \ + fileno.c \ + findfp.c \ + fiprintf.c \ + flags.c \ + fopen.c \ + fprintf.c \ + fputc.c \ + fputs.c \ + fread.c \ + freopen.c \ + fscanf.c \ + fseek.c \ + fsetpos.c \ + ftell.c \ + fvwrite.c \ + fwalk.c \ + fwrite.c \ + getc.c \ + getchar.c \ + gets.c \ + iprintf.c \ + makebuf.c \ + mktemp.c \ + perror.c \ + printf.c \ + putc.c \ + putchar.c \ + puts.c \ + refill.c \ + remove.c \ + rename.c \ + rewind.c \ + rget.c \ + scanf.c \ + setbuf.c \ + setvbuf.c \ + siprintf.c \ + snprintf.c \ + sprintf.c \ + sscanf.c \ + stdio.c \ + tmpfile.c \ + tmpnam.c \ + ungetc.c \ + vfprintf.c \ + vfscanf.c \ + vprintf.c \ + vsnprintf.c \ + vsprintf.c \ + wbuf.c \ + wsetup.c + +lib_a_LIBADD = vfiprintf.o + +vfiprintf.o: vfprintf.c + $(COMPILE) -DINTEGER_ONLY -c $(srcdir)/vfprintf.c -o $@ + +CHEWOUT_FILES = \ + clearerr.def \ + fclose.def \ + fdopen.def \ + feof.def \ + ferror.def \ + fflush.def \ + fgetc.def \ + fgetpos.def \ + fgets.def \ + fileno.def \ + fiprintf.def \ + fopen.def \ + fputc.def \ + fputs.def \ + fread.def \ + freopen.def \ + fseek.def \ + fsetpos.def \ + ftell.def \ + fwrite.def \ + getc.def \ + getchar.def \ + gets.def \ + iprintf.def \ + mktemp.def \ + perror.def \ + putc.def \ + putchar.def \ + puts.def \ + remove.def \ + rename.def \ + rewind.def \ + setbuf.def \ + setvbuf.def \ + siprintf.def \ + sprintf.def \ + sscanf.def \ + tmpfile.def \ + tmpnam.def \ + vfprintf.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/stdio.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref + +fclose.o: local.h +fdopen.o: local.h +fflush.o: local.h +findfp.o: local.h +fopen.o: local.h +fputs.o: fvwrite.h +fread.o: local.h +freopen.o: local.h +fseek.o: local.h +ftell.o: local.h +fvwrite.o: local.h fvwrite.h +fwalk.o: local.h +fwrite.o: local.h fvwrite.h +makebuf.o: local.h +puts.o: fvwrite.h +refill.o: local.h +scanf.o: local.h +setbuf.o: local.h +setvbuf.o: local.h +siprintf.o: local.h +sprintf.o: local.h +sscanf.o: local.h +stdio.o: local.h +ungetc.o: local.h +vfiprintf.o: local.h +vfprintf.o: local.h +vfscanf.o: local.h floatio.h +wbuf.o: local.h fvwrite.h +wsetup.o: local.h diff --git a/newlib/libc/stdio/Makefile.in b/newlib/libc/stdio/Makefile.in new file mode 100644 index 000000000..ff2a83845 --- /dev/null +++ b/newlib/libc/stdio/Makefile.in @@ -0,0 +1,441 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + clearerr.c \ + fclose.c \ + fdopen.c \ + feof.c \ + ferror.c \ + fflush.c \ + fgetc.c \ + fgetpos.c \ + fgets.c \ + fileno.c \ + findfp.c \ + fiprintf.c \ + flags.c \ + fopen.c \ + fprintf.c \ + fputc.c \ + fputs.c \ + fread.c \ + freopen.c \ + fscanf.c \ + fseek.c \ + fsetpos.c \ + ftell.c \ + fvwrite.c \ + fwalk.c \ + fwrite.c \ + getc.c \ + getchar.c \ + gets.c \ + iprintf.c \ + makebuf.c \ + mktemp.c \ + perror.c \ + printf.c \ + putc.c \ + putchar.c \ + puts.c \ + refill.c \ + remove.c \ + rename.c \ + rewind.c \ + rget.c \ + scanf.c \ + setbuf.c \ + setvbuf.c \ + siprintf.c \ + snprintf.c \ + sprintf.c \ + sscanf.c \ + stdio.c \ + tmpfile.c \ + tmpnam.c \ + ungetc.c \ + vfprintf.c \ + vfscanf.c \ + vprintf.c \ + vsnprintf.c \ + vsprintf.c \ + wbuf.c \ + wsetup.c + + +lib_a_LIBADD = vfiprintf.o + +CHEWOUT_FILES = \ + clearerr.def \ + fclose.def \ + fdopen.def \ + feof.def \ + ferror.def \ + fflush.def \ + fgetc.def \ + fgetpos.def \ + fgets.def \ + fileno.def \ + fiprintf.def \ + fopen.def \ + fputc.def \ + fputs.def \ + fread.def \ + freopen.def \ + fseek.def \ + fsetpos.def \ + ftell.def \ + fwrite.def \ + getc.def \ + getchar.def \ + gets.def \ + iprintf.def \ + mktemp.def \ + perror.def \ + putc.def \ + putchar.def \ + puts.def \ + remove.def \ + rename.def \ + rewind.def \ + setbuf.def \ + setvbuf.def \ + siprintf.def \ + sprintf.def \ + sscanf.def \ + tmpfile.def \ + tmpnam.def \ + vfprintf.def + + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_DEPENDENCIES = vfiprintf.o +lib_a_OBJECTS = clearerr.o fclose.o fdopen.o feof.o ferror.o fflush.o \ +fgetc.o fgetpos.o fgets.o fileno.o findfp.o fiprintf.o flags.o fopen.o \ +fprintf.o fputc.o fputs.o fread.o freopen.o fscanf.o fseek.o fsetpos.o \ +ftell.o fvwrite.o fwalk.o fwrite.o getc.o getchar.o gets.o iprintf.o \ +makebuf.o mktemp.o perror.o printf.o putc.o putchar.o puts.o refill.o \ +remove.o rename.o rewind.o rget.o scanf.o setbuf.o setvbuf.o siprintf.o \ +snprintf.o sprintf.o sscanf.o stdio.o tmpfile.o tmpnam.o ungetc.o \ +vfprintf.o vfscanf.o vprintf.o vsnprintf.o vsprintf.o wbuf.o wsetup.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus stdio/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = stdio + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +vfiprintf.o: vfprintf.c + $(COMPILE) -DINTEGER_ONLY -c $(srcdir)/vfprintf.c -o $@ + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/stdio.tex >> $(TARGETDOC) + +fclose.o: local.h +fdopen.o: local.h +fflush.o: local.h +findfp.o: local.h +fopen.o: local.h +fputs.o: fvwrite.h +fread.o: local.h +freopen.o: local.h +fseek.o: local.h +ftell.o: local.h +fvwrite.o: local.h fvwrite.h +fwalk.o: local.h +fwrite.o: local.h fvwrite.h +makebuf.o: local.h +puts.o: fvwrite.h +refill.o: local.h +scanf.o: local.h +setbuf.o: local.h +setvbuf.o: local.h +siprintf.o: local.h +sprintf.o: local.h +sscanf.o: local.h +stdio.o: local.h +ungetc.o: local.h +vfiprintf.o: local.h +vfprintf.o: local.h +vfscanf.o: local.h floatio.h +wbuf.o: local.h fvwrite.h +wsetup.o: local.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/stdio/clearerr.c b/newlib/libc/stdio/clearerr.c new file mode 100644 index 000000000..861d9a211 --- /dev/null +++ b/newlib/libc/stdio/clearerr.c @@ -0,0 +1,63 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<clearerr>>---clear file or stream error indicator + +INDEX + clearerr + +ANSI_SYNOPSIS + #include <stdio.h> + void clearerr(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + void clearerr(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +The <<stdio>> functions maintain an error indicator with each file +pointer <[fp]>, to record whether any read or write errors have +occurred on the associated file or stream. Similarly, it maintains an +end-of-file indicator to record whether there is no more data in the +file. + +Use <<clearerr>> to reset both of these indicators. + +See <<ferror>> and <<feof>> to query the two indicators. + + +RETURNS +<<clearerr>> does not return a result. + +PORTABILITY +ANSI C requires <<clearerr>>. + +No supporting OS subroutines are required. +*/ + +#include <stdio.h> +#undef clearerr + +_VOID +_DEFUN (clearerr, (fp), + FILE * fp) +{ + __sclearerr (fp); +} diff --git a/newlib/libc/stdio/fclose.c b/newlib/libc/stdio/fclose.c new file mode 100644 index 000000000..3266d8a55 --- /dev/null +++ b/newlib/libc/stdio/fclose.c @@ -0,0 +1,82 @@ +/* +FUNCTION +<<fclose>>---close a file + +INDEX + fclose + +ANSI_SYNOPSIS + #include <stdio.h> + int fclose(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fclose(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +If the file or stream identified by <[fp]> is open, <<fclose>> closes +it, after first ensuring that any pending data is written (by calling +<<fflush(<[fp]>)>>). + +RETURNS +<<fclose>> returns <<0>> if successful (including when <[fp]> is +<<NULL>> or not an open file); otherwise, it returns <<EOF>>. + +PORTABILITY +<<fclose>> is required by ANSI C. + +Required OS subroutines: <<close>>, <<fstat>>, <<isatty>>, <<lseek>>, +<<read>>, <<sbrk>>, <<write>>. +*/ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include "local.h" + +/* + * Close a file. + */ + +int +_DEFUN (fclose, (fp), + register FILE * fp) +{ + int r; + + if (fp == NULL) + return (0); /* on NULL */ + + CHECK_INIT (fp); + + if (fp->_flags == 0) /* not open! */ + return (0); + r = fp->_flags & __SWR ? fflush (fp) : 0; + if (fp->_close != NULL && (*fp->_close) (fp->_cookie) < 0) + r = EOF; + if (fp->_flags & __SMBF) + _free_r (fp->_data, (char *) fp->_bf._base); + if (HASUB (fp)) + FREEUB (fp); + if (HASLB (fp)) + FREELB (fp); + fp->_flags = 0; /* release this FILE for reuse */ + return (r); +} diff --git a/newlib/libc/stdio/fdopen.c b/newlib/libc/stdio/fdopen.c new file mode 100644 index 000000000..50698cbf6 --- /dev/null +++ b/newlib/libc/stdio/fdopen.c @@ -0,0 +1,116 @@ +/* +FUNCTION +<<fdopen>>---turn open file into a stream + +INDEX + fdopen +INDEX + _fdopen_r + +ANSI_SYNOPSIS + #include <stdio.h> + FILE *fdopen(int <[fd]>, const char *<[mode]>); + FILE *_fdopen_r(void *<[reent]>, + int <[fd]>, const char *<[mode]>); + +TRAD_SYNOPSIS + #include <stdio.h> + FILE *fdopen(<[fd]>, <[mode]>) + int <[fd]>; + char *<[mode]>; + + FILE *_fdopen_r(<[reent]>, <[fd]>, <[mode]>) + char *<[reent]>; + int <[fd]>; + char *<[mode]>); + +DESCRIPTION +<<fdopen>> produces a file descriptor of type <<FILE *>>, from a +descriptor for an already-open file (returned, for example, by the +system subroutine <<open>> rather than by <<fopen>>). +The <[mode]> argument has the same meanings as in <<fopen>>. + +RETURNS +File pointer or <<NULL>>, as for <<fopen>>. + +PORTABILITY +<<fdopen>> is ANSI. +*/ + +#include <sys/types.h> +#include <sys/fcntl.h> + +#include <stdio.h> +#include <errno.h> +#include "local.h" +#include <_syslist.h> + +extern int __sflags (); + +FILE * +_DEFUN (_fdopen_r, (ptr, fd, mode), + struct _reent *ptr _AND + int fd _AND + _CONST char *mode) +{ + register FILE *fp; + int flags, oflags; +#ifdef F_GETFL + int fdflags, fdmode; +#endif + + if ((flags = __sflags (ptr, mode, &oflags)) == 0) + return 0; + + /* make sure the mode the user wants is a subset of the actual mode */ +#ifdef F_GETFL + if ((fdflags = _fcntl (fd, F_GETFL, 0)) < 0) + return 0; + fdmode = fdflags & O_ACCMODE; + if (fdmode != O_RDWR && (fdmode != (oflags & O_ACCMODE))) + { + ptr->_errno = EBADF; + return 0; + } +#endif + + if ((fp = __sfp (ptr)) == 0) + return 0; + fp->_flags = flags; + /* + * If opened for appending, but underlying descriptor + * does not have O_APPEND bit set, assert __SAPP so that + * __swrite() will lseek to end before each write. + */ + if ((oflags & O_APPEND) +#ifdef F_GETFL + && !(fdflags & O_APPEND) +#endif + ) + fp->_flags |= __SAPP; + fp->_file = fd; + fp->_cookie = (_PTR) fp; + +#undef _read +#undef _write +#undef _seek +#undef _close + + fp->_read = __sread; + fp->_write = __swrite; + fp->_seek = __sseek; + fp->_close = __sclose; + return fp; +} + +#ifndef _REENT_ONLY + +FILE * +_DEFUN (fdopen, (fd, mode), + int fd _AND + _CONST char *mode) +{ + return _fdopen_r (_REENT, fd, mode); +} + +#endif diff --git a/newlib/libc/stdio/feof.c b/newlib/libc/stdio/feof.c new file mode 100644 index 000000000..55f151bd4 --- /dev/null +++ b/newlib/libc/stdio/feof.c @@ -0,0 +1,40 @@ +/* +FUNCTION +<<feof>>---test for end of file + +INDEX + feof + +ANSI_SYNOPSIS + #include <stdio.h> + int feof(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int feof(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +<<feof>> tests whether or not the end of the file identified by <[fp]> +has been reached. + +RETURNS +<<feof>> returns <<0>> if the end of file has not yet been reached; if +at end of file, the result is nonzero. + +PORTABILITY +<<feof>> is required by ANSI C. + +No supporting OS subroutines are required. +*/ + +#include <stdio.h> + +#undef feof + +int +_DEFUN (feof, (fp), + FILE * fp) +{ + return __sfeof (fp); +} diff --git a/newlib/libc/stdio/ferror.c b/newlib/libc/stdio/ferror.c new file mode 100644 index 000000000..19fa78d14 --- /dev/null +++ b/newlib/libc/stdio/ferror.c @@ -0,0 +1,67 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<ferror>>---test whether read/write error has occurred + +INDEX + ferror + +ANSI_SYNOPSIS + #include <stdio.h> + int ferror(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int ferror(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +The <<stdio>> functions maintain an error indicator with each file +pointer <[fp]>, to record whether any read or write errors have +occurred on the associated file or stream. +Use <<ferror>> to query this indicator. + +See <<clearerr>> to reset the error indicator. + +RETURNS +<<ferror>> returns <<0>> if no errors have occurred; it returns a +nonzero value otherwise. + +PORTABILITY +ANSI C requires <<ferror>>. + +No supporting OS subroutines are required. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> + +/* A subroutine version of the macro ferror. */ + +#undef ferror + +int +_DEFUN (ferror, (fp), + FILE * fp) +{ + return __sferror (fp); +} diff --git a/newlib/libc/stdio/fflush.c b/newlib/libc/stdio/fflush.c new file mode 100644 index 000000000..635e5a738 --- /dev/null +++ b/newlib/libc/stdio/fflush.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fflush>>---flush buffered file output + +INDEX + fflush + +ANSI_SYNOPSIS + #include <stdio.h> + int fflush(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fflush(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +The <<stdio>> output functions can buffer output before delivering it +to the host system, in order to minimize the overhead of system calls. + +Use <<fflush>> to deliver any such pending output (for the file +or stream identified by <[fp]>) to the host system. + +If <[fp]> is <<NULL>>, <<fflush>> delivers pending output from all +open files. + +RETURNS +<<fflush>> returns <<0>> unless it encounters a write error; in that +situation, it returns <<EOF>>. + +PORTABILITY +ANSI C requires <<fflush>>. + +No supporting OS subroutines are required. +*/ + +#include <stdio.h> +#include "local.h" + +/* Flush a single file, or (if fp is NULL) all files. */ + +int +_DEFUN (fflush, (fp), + register FILE * fp) +{ + register unsigned char *p; + register int n, t; + + + + + if (fp == NULL) + return _fwalk (_REENT, fflush); + + CHECK_INIT (fp); + + t = fp->_flags; + if ((t & __SWR) == 0 || (p = fp->_bf._base) == NULL) + return 0; + n = fp->_p - p; /* write this much */ + + /* + * Set these immediately to avoid problems with longjmp + * and to allow exchange buffering (via setvbuf) in user + * write function. + */ + fp->_p = p; + fp->_w = t & (__SLBF | __SNBF) ? 0 : fp->_bf._size; + + while (n > 0) + { + t = (*fp->_write) (fp->_cookie, (char *) p, n); + if (t <= 0) + { + fp->_flags |= __SERR; + return EOF; + } + p += t; + n -= t; + } + return 0; +} diff --git a/newlib/libc/stdio/fgetc.c b/newlib/libc/stdio/fgetc.c new file mode 100644 index 000000000..3d3d2c4ed --- /dev/null +++ b/newlib/libc/stdio/fgetc.c @@ -0,0 +1,46 @@ +/* +FUNCTION +<<fgetc>>---get a character from a file or stream + +INDEX + fgetc + +ANSI_SYNOPSIS + #include <stdio.h> + int fgetc(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fgetc(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +Use <<fgetc>> to get the next single character from the file or stream +identified by <[fp]>. As a side effect, <<fgetc>> advances the file's +current position indicator. + +For a macro version of this function, see <<getc>>. + +RETURNS +The next character (read as an <<unsigned char>>, and cast to +<<int>>), unless there is no more data, or the host system reports a +read error; in either of these situations, <<fgetc>> returns <<EOF>>. + +You can distinguish the two situations that cause an <<EOF>> result by +using the <<ferror>> and <<feof>> functions. + +PORTABILITY +ANSI C requires <<fgetc>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> + +int +_DEFUN (fgetc, (fp), + FILE * fp) +{ + return __sgetc (fp); +} diff --git a/newlib/libc/stdio/fgetpos.c b/newlib/libc/stdio/fgetpos.c new file mode 100644 index 000000000..214021a84 --- /dev/null +++ b/newlib/libc/stdio/fgetpos.c @@ -0,0 +1,61 @@ +/* +FUNCTION +<<fgetpos>>---record position in a stream or file + +INDEX + fgetpos + +ANSI_SYNOPSIS + #include <stdio.h> + int fgetpos(FILE *<[fp]>, fpos_t *<[pos]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fgetpos(<[fp]>, <[pos]>) + FILE *<[fp]>; + fpos_t *<[pos]>; + +DESCRIPTION +Objects of type <<FILE>> can have a ``position'' that records how much +of the file your program has already read. Many of the <<stdio>> functions +depend on this position, and many change it as a side effect. + +You can use <<fgetpos>> to report on the current position for a file +identified by <[fp]>; <<fgetpos>> will write a value +representing that position at <<*<[pos]>>>. Later, you can +use this value with <<fsetpos>> to return the file to this +position. + +In the current implementation, <<fgetpos>> simply uses a character +count to represent the file position; this is the same number that +would be returned by <<ftell>>. + +RETURNS +<<fgetpos>> returns <<0>> when successful. If <<fgetpos>> fails, the +result is <<1>>. Failure occurs on streams that do not support +positioning; the global <<errno>> indicates this condition with the +value <<ESPIPE>>. + +PORTABILITY +<<fgetpos>> is required by the ANSI C standard, but the meaning of the +value it records is not specified beyond requiring that it be +acceptable as an argument to <<fsetpos>>. In particular, other +conforming C implementations may return a different result from +<<ftell>> than what <<fgetpos>> writes at <<*<[pos]>>>. + +No supporting OS subroutines are required. +*/ + +#include <stdio.h> + +int +_DEFUN (fgetpos, (fp, pos), + FILE * fp _AND + fpos_t * pos) +{ + *pos = ftell (fp); + + if (*pos != -1) + return 0; + return 1; +} diff --git a/newlib/libc/stdio/fgets.c b/newlib/libc/stdio/fgets.c new file mode 100644 index 000000000..abc2bb97c --- /dev/null +++ b/newlib/libc/stdio/fgets.c @@ -0,0 +1,127 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* + +FUNCTION + <<fgets>>---get character string from a file or stream +INDEX + fgets + +ANSI_SYNOPSIS + #include <stdio.h> + char *fgets(char *<[buf]>, int <[n]>, FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + char *fgets(<[buf]>,<[n]>,<[fp]>) + char *<[buf]>; + int <[n]>; + FILE *<[fp]>; + +DESCRIPTION + Reads at most <[n-1]> characters from <[fp]> until a newline + is found. The characters including to the newline are stored + in <[buf]>. The buffer is terminated with a 0. + + +RETURNS + <<fgets>> returns the buffer passed to it, with the data + filled in. If end of file occurs with some data already + accumulated, the data is returned with no other indication. If + no data are read, NULL is returned instead. + +PORTABILITY + <<fgets>> should replace all uses of <<gets>>. Note however + that <<fgets>> returns all of the data, while <<gets>> removes + the trailing newline (with no indication that it has done so.) + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#include <string.h> + +extern int __srefill (); + +/* + * Read at most n-1 characters from the given file. + * Stop when a newline has been read, or the count runs out. + * Return first argument, or NULL if no characters were read. + */ + +char * +_DEFUN (fgets, (buf, n, fp), + char *buf _AND + int n _AND + FILE * fp) +{ + size_t len; + char *s; + unsigned char *p, *t; + + if (n < 2) /* sanity check */ + return 0; + + s = buf; + n--; /* leave space for NUL */ + do + { + /* + * If the buffer is empty, refill it. + */ + if ((len = fp->_r) <= 0) + { + if (__srefill (fp)) + { + /* EOF: stop with partial or no line */ + if (s == buf) + return 0; + break; + } + len = fp->_r; + } + p = fp->_p; + + /* + * Scan through at most n bytes of the current buffer, + * looking for '\n'. If found, copy up to and including + * newline, and stop. Otherwise, copy entire chunk + * and loop. + */ + if (len > n) + len = n; + t = (unsigned char *) memchr ((_PTR) p, '\n', len); + if (t != 0) + { + len = ++t - p; + fp->_r -= len; + fp->_p = t; + (void) memcpy ((_PTR) s, (_PTR) p, len); + s[len] = 0; + return (buf); + } + fp->_r -= len; + fp->_p += len; + (void) memcpy ((_PTR) s, (_PTR) p, len); + s += len; + } + while ((n -= len) != 0); + *s = 0; + return buf; +} diff --git a/newlib/libc/stdio/fileno.c b/newlib/libc/stdio/fileno.c new file mode 100644 index 000000000..d578c3ede --- /dev/null +++ b/newlib/libc/stdio/fileno.c @@ -0,0 +1,40 @@ +/* +FUNCTION +<<fileno>>---return file descriptor associated with stream + +INDEX + fileno + +ANSI_SYNOPSIS + #include <stdio.h> + int fileno(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fileno(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +You can use <<fileno>> to return the file descriptor identified by <[fp]>. + +RETURNS +<<fileno>> returns a non-negative integer when successful. +If <[fp]> is not an open stream, <<fileno>> returns -1. + +PORTABILITY +<<fileno>> is not part of ANSI C. +POSIX requires <<fileno>>. + +Supporting OS subroutines required: none. +*/ + +#include <stdio.h> +#include "local.h" + +int +_DEFUN (fileno, (f), + FILE * f) +{ + CHECK_INIT (f); + return __sfileno (f); +} diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c new file mode 100644 index 000000000..650c638e6 --- /dev/null +++ b/newlib/libc/stdio/findfp.c @@ -0,0 +1,153 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include <string.h> +#include "local.h" + +static void +std (ptr, flags, file, data) + FILE *ptr; + struct _reent *data; +{ + ptr->_p = 0; + ptr->_r = 0; + ptr->_w = 0; + ptr->_flags = flags; + ptr->_file = file; + ptr->_bf._base = 0; + ptr->_bf._size = 0; + ptr->_lbfsize = 0; + ptr->_cookie = ptr; + ptr->_read = __sread; + ptr->_write = __swrite; + ptr->_seek = __sseek; + ptr->_close = __sclose; + ptr->_data = data; +} + +struct _glue * +__sfmoreglue (d, n) + struct _reent *d; + register int n; +{ + struct _glue *g; + FILE *p; + + g = (struct _glue *) _malloc_r (d, sizeof (*g) + n * sizeof (FILE)); + if (g == NULL) + return NULL; + p = (FILE *) (g + 1); + g->_next = NULL; + g->_niobs = n; + g->_iobs = p; + memset (p, 0, n * sizeof (FILE)); + return g; +} + +/* + * Find a free FILE for fopen et al. + */ + +FILE * +__sfp (d) + struct _reent *d; +{ + FILE *fp; + int n; + struct _glue *g; + + if (!d->__sdidinit) + __sinit (d); + for (g = &d->__sglue;; g = g->_next) + { + for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++) + if (fp->_flags == 0) + goto found; + if (g->_next == NULL && + (g->_next = __sfmoreglue (d, NDYNAMIC)) == NULL) + break; + } + d->_errno = ENOMEM; + return NULL; + +found: + fp->_flags = 1; /* reserve this slot; caller sets real flags */ + fp->_p = NULL; /* no current pointer */ + fp->_w = 0; /* nothing to read or write */ + fp->_r = 0; + fp->_bf._base = NULL; /* no buffer */ + fp->_bf._size = 0; + fp->_lbfsize = 0; /* not line buffered */ + fp->_file = -1; /* no file */ + /* fp->_cookie = <any>; */ /* caller sets cookie, _read/_write etc */ + fp->_ub._base = NULL; /* no ungetc buffer */ + fp->_ub._size = 0; + fp->_lb._base = NULL; /* no line buffer */ + fp->_lb._size = 0; + fp->_data = d; + return fp; +} + +/* + * exit() calls _cleanup() through *__cleanup, set whenever we + * open or buffer a file. This chicanery is done so that programs + * that do not use stdio need not link it all in. + * + * The name `_cleanup' is, alas, fairly well known outside stdio. + */ + +void +_cleanup_r (ptr) + struct _reent *ptr; +{ + /* (void) _fwalk(fclose); */ + (void) _fwalk (ptr, fflush); /* `cheating' */ +} + +#ifndef _REENT_ONLY +void +_cleanup () +{ + _cleanup_r (_REENT); +} +#endif + +/* + * __sinit() is called whenever stdio's internal variables must be set up. + */ + +void +__sinit (s) + struct _reent *s; +{ + /* make sure we clean up on exit */ + s->__cleanup = _cleanup_r; /* conservative */ + s->__sdidinit = 1; + + std (s->__sf + 0, __SRD, 0, s); + std (s->__sf + 1, __SWR | __SLBF, 1, s); + std (s->__sf + 2, __SWR | __SNBF, 2, s); + + s->__sglue._next = NULL; + s->__sglue._niobs = 3; + s->__sglue._iobs = &s->__sf[0]; +} diff --git a/newlib/libc/stdio/fiprintf.c b/newlib/libc/stdio/fiprintf.c new file mode 100644 index 000000000..d490ef403 --- /dev/null +++ b/newlib/libc/stdio/fiprintf.c @@ -0,0 +1,77 @@ +/* +FUNCTION + <<fiprintf>>---format output to file (integer only) +INDEX + fiprintf + +ANSI_SYNOPSIS + #include <stdio.h> + + int fiprintf(FILE *<[fd]>, const char *<[format]>, ...); + +TRAD_SYNOPSIS + #include <stdio.h> + + int fiprintf(<[fd]>, <[format]> [, <[arg]>, ...]); + FILE *<[fd]>; + char *<[format]>; + +DESCRIPTION +<<fiprintf>> is a restricted version of <<fprintf>>: it has the same +arguments and behavior, save that it cannot perform any floating-point +formatting---the <<f>>, <<g>>, <<G>>, <<e>>, and <<F>> type specifiers +are not recognized. + +RETURNS + <<fiprintf>> returns the number of bytes in the output string, + save that the concluding <<NULL>> is not counted. + <<fiprintf>> returns when the end of the format string is + encountered. If an error occurs, <<fiprintf>> + returns <<EOF>>. + +PORTABILITY +<<fiprintf>> is not required by ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <stdio.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +fiprintf (FILE * fp, const char *fmt,...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + ret = vfiprintf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +fiprintf (fp, fmt, va_alist) + FILE *fp; + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + ret = vfiprintf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#endif diff --git a/newlib/libc/stdio/flags.c b/newlib/libc/stdio/flags.c new file mode 100644 index 000000000..6d62bd5bc --- /dev/null +++ b/newlib/libc/stdio/flags.c @@ -0,0 +1,87 @@ +/* No user fns here. Pesch 15apr92 */ + +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <time.h> +#include <fcntl.h> + +#include <errno.h> +#include <sys/types.h> + +/* + * Return the (stdio) flags for a given mode. Store the flags + * to be passed to an open() syscall through *optr. + * Return 0 on error. + */ + +int +__sflags (ptr, mode, optr) + struct _reent *ptr; + register char *mode; + int *optr; +{ + register int ret, m, o; + + switch (mode[0]) + { + case 'r': /* open for reading */ + ret = __SRD; + m = O_RDONLY; + o = 0; + break; + + case 'w': /* open for writing */ + ret = __SWR; + m = O_WRONLY; + o = O_CREAT | O_TRUNC; + break; + + case 'a': /* open for appending */ + ret = __SWR | __SAPP; + m = O_WRONLY; + o = O_CREAT | O_APPEND; + break; + default: /* illegal mode */ + ptr->_errno = EINVAL; + return (0); + } + if (mode[1] == '+' || mode[2] == '+') + { + ret = __SRW; + m = O_RDWR; + } + if (mode[1] == 'b' || mode[2] == 'b') + { +#ifdef O_BINARY + m |= O_BINARY; +#endif + } +#ifdef __CYGWIN__ + else if (mode[1] == 't' || mode[2] == 't') +#else + else +#endif + { +#ifdef O_TEXT + m |= O_TEXT; +#endif + } + *optr = m | o; + return ret; +} diff --git a/newlib/libc/stdio/floatio.h b/newlib/libc/stdio/floatio.h new file mode 100644 index 000000000..d9577b2b2 --- /dev/null +++ b/newlib/libc/stdio/floatio.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * %W% (Berkeley) %G% + */ + +/* + * Floating point scanf/printf (input/output) definitions. + */ + +/* 11-bit exponent (VAX G floating point) is 308 decimal digits */ +#define MAXEXP 308 +/* 128 bit fraction takes up 39 decimal digits; max reasonable precision */ +#define MAXFRACT 39 diff --git a/newlib/libc/stdio/fopen.c b/newlib/libc/stdio/fopen.c new file mode 100644 index 000000000..30aa54e04 --- /dev/null +++ b/newlib/libc/stdio/fopen.c @@ -0,0 +1,165 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fopen>>---open a file + +INDEX + fopen +INDEX + _fopen_r + +ANSI_SYNOPSIS + #include <stdio.h> + FILE *fopen(const char *<[file]>, const char *<[mode]>); + + FILE *_fopen_r(void *<[reent]>, + const char *<[file]>, const char *<[mode]>); + +TRAD_SYNOPSIS + #include <stdio.h> + FILE *fopen(<[file]>, <[mode]>) + char *<[file]>; + char *<[mode]>; + + FILE *_fopen_r(<[reent]>, <[file]>, <[mode]>) + char *<[reent]>; + char *<[file]>; + char *<[mode]>; + +DESCRIPTION +<<fopen>> initializes the data structures needed to read or write a +file. Specify the file's name as the string at <[file]>, and the kind +of access you need to the file with the string at <[mode]>. + +The alternate function <<_fopen_r>> is a reentrant version. +The extra argument <[reent]> is a pointer to a reentrancy structure. + +Three fundamental kinds of access are available: read, write, and append. +<<*<[mode]>>> must begin with one of the three characters `<<r>>', +`<<w>>', or `<<a>>', to select one of these: + +o+ +o r +Open the file for reading; the operation will fail if the file does +not exist, or if the host system does not permit you to read it. + +o w +Open the file for writing @emph{from the beginning} of the file: +effectively, this always creates a new file. If the file whose name you +specified already existed, its old contents are discarded. + +o a +Open the file for appending data, that is writing from the end of +file. When you open a file this way, all data always goes to the +current end of file; you cannot change this using <<fseek>>. +o- + +Some host systems distinguish between ``binary'' and ``text'' files. +Such systems may perform data transformations on data written to, or +read from, files opened as ``text''. +If your system is one of these, then you can append a `<<b>>' to any +of the three modes above, to specify that you are opening the file as +a binary file (the default is to open the file as a text file). + +`<<rb>>', then, means ``read binary''; `<<wb>>', ``write binary''; and +`<<ab>>', ``append binary''. + +To make C programs more portable, the `<<b>>' is accepted on all +systems, whether or not it makes a difference. + +Finally, you might need to both read and write from the same file. +You can also append a `<<+>>' to any of the three modes, to permit +this. (If you want to append both `<<b>>' and `<<+>>', you can do it +in either order: for example, <<"rb+">> means the same thing as +<<"r+b">> when used as a mode string.) + +Use <<"r+">> (or <<"rb+">>) to permit reading and writing anywhere in +an existing file, without discarding any data; <<"w+">> (or <<"wb+">>) +to create a new file (or begin by discarding all data from an old one) +that permits reading and writing anywhere in it; and <<"a+">> (or +<<"ab+">>) to permit reading anywhere in an existing file, but writing +only at the end. + +RETURNS +<<fopen>> returns a file pointer which you can use for other file +operations, unless the file you requested could not be opened; in that +situation, the result is <<NULL>>. If the reason for failure was an +invalid string at <[mode]>, <<errno>> is set to <<EINVAL>>. + +PORTABILITY +<<fopen>> is required by ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<open>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <errno.h> +#include "local.h" + +FILE * +_DEFUN (_fopen_r, (ptr, file, mode), + struct _reent *ptr _AND + _CONST char *file _AND + _CONST char *mode) +{ + register FILE *fp; + register int f; + int flags, oflags; + + if ((flags = __sflags (ptr, mode, &oflags)) == 0) + return NULL; + if ((fp = __sfp (ptr)) == NULL) + return NULL; + + if ((f = _open_r (fp->_data, file, oflags, 0666)) < 0) + { + fp->_flags = 0; /* release */ + return NULL; + } + + fp->_file = f; + fp->_flags = flags; + fp->_cookie = (_PTR) fp; + fp->_read = __sread; + fp->_write = __swrite; + fp->_seek = __sseek; + fp->_close = __sclose; + + if (fp->_flags & __SAPP) + fseek (fp, 0, SEEK_END); + + return fp; +} + +#ifndef _REENT_ONLY + +FILE * +_DEFUN (fopen, (file, mode), + _CONST char *file _AND + _CONST char *mode) +{ + return _fopen_r (_REENT, file, mode); +} + +#endif diff --git a/newlib/libc/stdio/fprintf.c b/newlib/libc/stdio/fprintf.c new file mode 100644 index 000000000..de036605f --- /dev/null +++ b/newlib/libc/stdio/fprintf.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <stdio.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +fprintf (FILE * fp, const char *fmt,...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + ret = vfprintf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +fprintf (fp, fmt, va_alist) + FILE *fp; + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + ret = vfprintf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#endif diff --git a/newlib/libc/stdio/fputc.c b/newlib/libc/stdio/fputc.c new file mode 100644 index 000000000..966a0dbf7 --- /dev/null +++ b/newlib/libc/stdio/fputc.c @@ -0,0 +1,51 @@ +/* +FUNCTION +<<fputc>>---write a character on a stream or file + +INDEX + fputc + +ANSI_SYNOPSIS + #include <stdio.h> + int fputc(int <[ch]>, FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fputc(<[ch]>, <[fp]>) + int <[ch]>; + FILE *<[fp]>; + +DESCRIPTION +<<fputc>> converts the argument <[ch]> from an <<int>> to an +<<unsigned char>>, then writes it to the file or stream identified by +<[fp]>. + +If the file was opened with append mode (or if the stream cannot +support positioning), then the new character goes at the end of the +file or stream. Otherwise, the new character is written at the +current value of the position indicator, and the position indicator +oadvances by one. + +For a macro version of this function, see <<putc>>. + +RETURNS +If successful, <<fputc>> returns its argument <[ch]>. If an error +intervenes, the result is <<EOF>>. You can use `<<ferror(<[fp]>)>>' to +query for errors. + +PORTABILITY +<<fputc>> is required by ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> + +int +_DEFUN (fputc, (ch, file), + int ch _AND + FILE * file) +{ + return putc (ch, file); +} diff --git a/newlib/libc/stdio/fputs.c b/newlib/libc/stdio/fputs.c new file mode 100644 index 000000000..62ce98fb7 --- /dev/null +++ b/newlib/libc/stdio/fputs.c @@ -0,0 +1,71 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fputs>>---write a character string in a file or stream + +INDEX + fputs + +ANSI_SYNOPSIS + #include <stdio.h> + int fputs(const char *<[s]>, FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fputs(<[s]>, <[fp]>) + char *<[s]>; + FILE *<[fp]>; + +DESCRIPTION +<<fputs>> writes the string at <[s]> (but without the trailing null) +to the file or stream identified by <[fp]>. + +RETURNS +If successful, the result is <<0>>; otherwise, the result is <<EOF>>. + +PORTABILITY +ANSI C requires <<fputs>>, but does not specify that the result on +success must be <<0>>; any non-negative value is permitted. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#include <string.h> +#include "fvwrite.h" + +/* + * Write the given string to the given file. + */ + +int +_DEFUN (fputs, (s, fp), + char _CONST * s _AND + FILE * fp) +{ + struct __suio uio; + struct __siov iov; + + iov.iov_base = s; + iov.iov_len = uio.uio_resid = strlen (s); + uio.uio_iov = &iov; + uio.uio_iovcnt = 1; + return __sfvwrite (fp, &uio); +} diff --git a/newlib/libc/stdio/fread.c b/newlib/libc/stdio/fread.c new file mode 100644 index 000000000..4de7ce290 --- /dev/null +++ b/newlib/libc/stdio/fread.c @@ -0,0 +1,97 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fread>>---read array elements from a file + +INDEX + fread + +ANSI_SYNOPSIS + #include <stdio.h> + size_t fread(void *<[buf]>, size_t <[size]>, size_t <[count]>, + FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + size_t fread(<[buf]>, <[size]>, <[count]>, <[fp]>) + char *<[buf]>; + size_t <[size]>; + size_t <[count]>; + FILE *<[fp]>; + +DESCRIPTION +<<fread>> attempts to copy, from the file or stream identified by +<[fp]>, <[count]> elements (each of size <[size]>) into memory, +starting at <[buf]>. <<fread>> may copy fewer elements than +<[count]> if an error, or end of file, intervenes. + +<<fread>> also advances the file position indicator (if any) for +<[fp]> by the number of @emph{characters} actually read. + +RETURNS +The result of <<fread>> is the number of elements it succeeded in +reading. + +PORTABILITY +ANSI C requires <<fread>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#include <string.h> +#include "local.h" + +size_t +_DEFUN (fread, (buf, size, count, fp), + _PTR buf _AND + size_t size _AND + size_t count _AND + FILE * fp) +{ + register size_t resid; + register char *p; + register int r; + size_t total; + + if ((resid = count * size) == 0) + return 0; + if (fp->_r < 0) + fp->_r = 0; + total = resid; + p = buf; + while (resid > (r = fp->_r)) + { + (void) memcpy ((void *) p, (void *) fp->_p, (size_t) r); + fp->_p += r; + /* fp->_r = 0 ... done in __srefill */ + p += r; + resid -= r; + if (__srefill (fp)) + { + /* no more input: return partial result */ + return (total - resid) / size; + } + } + (void) memcpy ((void *) p, (void *) fp->_p, resid); + fp->_r -= resid; + fp->_p += resid; + return count; +} diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c new file mode 100644 index 000000000..a4ab965e9 --- /dev/null +++ b/newlib/libc/stdio/freopen.c @@ -0,0 +1,151 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<freopen>>---open a file using an existing file descriptor + +INDEX + freopen + +ANSI_SYNOPSIS + #include <stdio.h> + FILE *freopen(const char *<[file]>, const char *<[mode]>, + FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + FILE *freopen(<[file]>, <[mode]>, <[fp]>) + char *<[file]>; + char *<[mode]>; + FILE *<[fp]>; + +DESCRIPTION +Use this variant of <<fopen>> if you wish to specify a particular file +descriptor <[fp]> (notably <<stdin>>, <<stdout>>, or <<stderr>>) for +the file. + +If <[fp]> was associated with another file or stream, <<freopen>> +closes that other file or stream (but ignores any errors while closing +it). + +<[file]> and <[mode]> are used just as in <<fopen>>. + +RETURNS +If successful, the result is the same as the argument <[fp]>. If the +file cannot be opened as specified, the result is <<NULL>>. + +PORTABILITY +ANSI C requires <<freopen>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<open>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <time.h> +#include <stdio.h> +#include <fcntl.h> +#include <stdlib.h> +#include "local.h" + +/* + * Re-direct an existing, open (probably) file to some other file. + */ + +FILE * +_DEFUN (freopen, (file, mode, fp), + _CONST char *file _AND + _CONST char *mode _AND + register FILE *fp) +{ + register int f; + int flags, oflags, e; + struct _reent *ptr; + + CHECK_INIT (fp); + ptr = fp->_data; + + if ((flags = __sflags (ptr, mode, &oflags)) == 0) + { + (void) fclose (fp); + return NULL; + } + + /* + * Remember whether the stream was open to begin with, and + * which file descriptor (if any) was associated with it. + * If it was attached to a descriptor, defer closing it, + * so that, e.g., freopen("/dev/stdin", "r", stdin) works. + * This is unnecessary if it was not a Unix file. + */ + + if (fp->_flags == 0) + fp->_flags = __SEOF; /* hold on to it */ + else + { + if (fp->_flags & __SWR) + (void) fflush (fp); + /* if close is NULL, closing is a no-op, hence pointless */ + if (fp->_close != NULL) + (void) (*fp->_close) (fp->_cookie); + } + + /* + * Now get a new descriptor to refer to the new file. + */ + + f = _open_r (ptr, (char *) file, oflags, 0666); + e = ptr->_errno; + + /* + * Finish closing fp. Even if the open succeeded above, + * we cannot keep fp->_base: it may be the wrong size. + * This loses the effect of any setbuffer calls, + * but stdio has always done this before. + */ + + if (fp->_flags & __SMBF) + _free_r (ptr, (char *) fp->_bf._base); + fp->_w = 0; + fp->_r = 0; + fp->_p = NULL; + fp->_bf._base = NULL; + fp->_bf._size = 0; + fp->_lbfsize = 0; + if (HASUB (fp)) + FREEUB (fp); + fp->_ub._size = 0; + if (HASLB (fp)) + FREELB (fp); + fp->_lb._size = 0; + + if (f < 0) + { /* did not get it after all */ + fp->_flags = 0; /* set it free */ + ptr->_errno = e; /* restore in case _close clobbered */ + return NULL; + } + + fp->_flags = flags; + fp->_file = f; + fp->_cookie = (_PTR) fp; + fp->_read = __sread; + fp->_write = __swrite; + fp->_seek = __sseek; + fp->_close = __sclose; + return fp; +} diff --git a/newlib/libc/stdio/fscanf.c b/newlib/libc/stdio/fscanf.c new file mode 100644 index 000000000..8980410d3 --- /dev/null +++ b/newlib/libc/stdio/fscanf.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <stdio.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +extern int __svfscanf (); + +int +fscanf (FILE * fp, const char *fmt, ...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + ret = __svfscanf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +extern int __svfscanf (); + +int +fscanf (fp, fmt, va_alist) + FILE *fp; + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + ret = __svfscanf (fp, fmt, ap); + va_end (ap); + return ret; +} + +#endif diff --git a/newlib/libc/stdio/fseek.c b/newlib/libc/stdio/fseek.c new file mode 100644 index 000000000..d22292e97 --- /dev/null +++ b/newlib/libc/stdio/fseek.c @@ -0,0 +1,310 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fseek>>---set file position + +INDEX + fseek + +ANSI_SYNOPSIS + #include <stdio.h> + int fseek(FILE *<[fp]>, long <[offset]>, int <[whence]>) + +TRAD_SYNOPSIS + #include <stdio.h> + int fseek(<[fp]>, <[offset]>, <[whence]>) + FILE *<[fp]>; + long <[offset]>; + int <[whence]>; + +DESCRIPTION +Objects of type <<FILE>> can have a ``position'' that records how much +of the file your program has already read. Many of the <<stdio>> functions +depend on this position, and many change it as a side effect. + +You can use <<fseek>> to set the position for the file identified by +<[fp]>. The value of <[offset]> determines the new position, in one +of three ways selected by the value of <[whence]> (defined as macros +in `<<stdio.h>>'): + +<<SEEK_SET>>---<[offset]> is the absolute file position (an offset +from the beginning of the file) desired. <[offset]> must be positive. + +<<SEEK_CUR>>---<[offset]> is relative to the current file position. +<[offset]> can meaningfully be either positive or negative. + +<<SEEK_END>>---<[offset]> is relative to the current end of file. +<[offset]> can meaningfully be either positive (to increase the size +of the file) or negative. + +See <<ftell>> to determine the current file position. + +RETURNS +<<fseek>> returns <<0>> when successful. If <<fseek>> fails, the +result is <<EOF>>. The reason for failure is indicated in <<errno>>: +either <<ESPIPE>> (the stream identified by <[fp]> doesn't support +repositioning) or <<EINVAL>> (invalid file position). + +PORTABILITY +ANSI C requires <<fseek>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#include <time.h> +#include <fcntl.h> +#include <stdlib.h> +#include <errno.h> +#include <sys/stat.h> +#include "local.h" + +#define POS_ERR (-(fpos_t)1) + +/* + * Seek the given file to the given offset. + * `Whence' must be one of the three SEEK_* macros. + */ + +int +fseek (fp, offset, whence) + register FILE *fp; + long offset; + int whence; +{ + struct _reent *ptr; + fpos_t _EXFUN ((*seekfn), (void *, fpos_t, int)); + fpos_t target, curoff; + size_t n; + struct stat st; + int havepos; + + /* Make sure stdio is set up. */ + + CHECK_INIT (fp); + ptr = fp->_data; + + /* If we've been doing some writing, and we're in append mode + then we don't really know where the filepos is. */ + + if (fp->_flags & __SAPP && fp->_flags & __SWR) + { + /* So flush the buffer and seek to the end. */ + fflush (fp); + } + + /* Have to be able to seek. */ + + if ((seekfn = fp->_seek) == NULL) + { + ptr->_errno = ESPIPE; /* ??? */ + return EOF; + } + + /* + * Change any SEEK_CUR to SEEK_SET, and check `whence' argument. + * After this, whence is either SEEK_SET or SEEK_END. + */ + + switch (whence) + { + case SEEK_CUR: + /* + * In order to seek relative to the current stream offset, + * we have to first find the current stream offset a la + * ftell (see ftell for details). + */ + fflush(fp); /* may adjust seek offset on append stream */ + if (fp->_flags & __SOFF) + curoff = fp->_offset; + else + { + curoff = (*seekfn) (fp->_cookie, (fpos_t) 0, SEEK_CUR); + if (curoff == -1L) + return EOF; + } + if (fp->_flags & __SRD) + { + curoff -= fp->_r; + if (HASUB (fp)) + curoff -= fp->_ur; + } + else if (fp->_flags & __SWR && fp->_p != NULL) + curoff += fp->_p - fp->_bf._base; + + offset += curoff; + whence = SEEK_SET; + havepos = 1; + break; + + case SEEK_SET: + case SEEK_END: + havepos = 0; + break; + + default: + ptr->_errno = EINVAL; + return (EOF); + } + + /* + * Can only optimise if: + * reading (and not reading-and-writing); + * not unbuffered; and + * this is a `regular' Unix file (and hence seekfn==__sseek). + * We must check __NBF first, because it is possible to have __NBF + * and __SOPT both set. + */ + + if (fp->_bf._base == NULL) + __smakebuf (fp); + if (fp->_flags & (__SWR | __SRW | __SNBF | __SNPT)) + goto dumb; + if ((fp->_flags & __SOPT) == 0) + { + if (seekfn != __sseek + || fp->_file < 0 + || _fstat_r (ptr, fp->_file, &st) + || (st.st_mode & S_IFMT) != S_IFREG) + { + fp->_flags |= __SNPT; + goto dumb; + } +#ifdef HAVE_BLKSIZE + fp->_blksize = st.st_blksize; +#else + fp->_blksize = 1024; +#endif + fp->_flags |= __SOPT; + } + + /* + * We are reading; we can try to optimise. + * Figure out where we are going and where we are now. + */ + + if (whence == SEEK_SET) + target = offset; + else + { + if (_fstat_r (ptr, fp->_file, &st)) + goto dumb; + target = st.st_size + offset; + } + + if (!havepos) + { + if (fp->_flags & __SOFF) + curoff = fp->_offset; + else + { + curoff = (*seekfn) (fp->_cookie, 0L, SEEK_CUR); + if (curoff == POS_ERR) + goto dumb; + } + curoff -= fp->_r; + if (HASUB (fp)) + curoff -= fp->_ur; + } + + /* + * Compute the number of bytes in the input buffer (pretending + * that any ungetc() input has been discarded). Adjust current + * offset backwards by this count so that it represents the + * file offset for the first byte in the current input buffer. + */ + + if (HASUB (fp)) + { + curoff += fp->_r; /* kill off ungetc */ + n = fp->_up - fp->_bf._base; + curoff -= n; + n += fp->_ur; + } + else + { + n = fp->_p - fp->_bf._base; + curoff -= n; + n += fp->_r; + } + + /* + * If the target offset is within the current buffer, + * simply adjust the pointers, clear EOF, undo ungetc(), + * and return. (If the buffer was modified, we have to + * skip this; see fgetline.c.) + */ + + if ((fp->_flags & __SMOD) == 0 && + target >= curoff && target < curoff + n) + { + register int o = target - curoff; + + fp->_p = fp->_bf._base + o; + fp->_r = n - o; + if (HASUB (fp)) + FREEUB (fp); + fp->_flags &= ~__SEOF; + return 0; + } + + /* + * The place we want to get to is not within the current buffer, + * but we can still be kind to the kernel copyout mechanism. + * By aligning the file offset to a block boundary, we can let + * the kernel use the VM hardware to map pages instead of + * copying bytes laboriously. Using a block boundary also + * ensures that we only read one block, rather than two. + */ + + curoff = target & ~(fp->_blksize - 1); + if ((*seekfn) (fp->_cookie, curoff, SEEK_SET) == POS_ERR) + goto dumb; + fp->_r = 0; + if (HASUB (fp)) + FREEUB (fp); + fp->_flags &= ~__SEOF; + n = target - curoff; + if (n) + { + if (__srefill (fp) || fp->_r < n) + goto dumb; + fp->_p += n; + fp->_r -= n; + } + return 0; + + /* + * We get here if we cannot optimise the seek ... just + * do it. Allow the seek function to change fp->_bf._base. + */ + +dumb: + if (fflush (fp) || (*seekfn) (fp->_cookie, offset, whence) == POS_ERR) + return EOF; + /* success: clear EOF indicator and discard ungetc() data */ + if (HASUB (fp)) + FREEUB (fp); + fp->_p = fp->_bf._base; + fp->_r = 0; + /* fp->_w = 0; *//* unnecessary (I think...) */ + fp->_flags &= ~__SEOF; + return 0; +} diff --git a/newlib/libc/stdio/fsetpos.c b/newlib/libc/stdio/fsetpos.c new file mode 100644 index 000000000..28cd69ead --- /dev/null +++ b/newlib/libc/stdio/fsetpos.c @@ -0,0 +1,54 @@ +/* +FUNCTION +<<fsetpos>>---restore position of a stream or file + +INDEX + fsetpos + +ANSI_SYNOPSIS + #include <stdio.h> + int fsetpos(FILE *<[fp]>, const fpos_t *<[pos]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int fsetpos(<[fp]>, <[pos]>) + FILE *<[fp]>; + fpos_t *<[pos]>; + +DESCRIPTION +Objects of type <<FILE>> can have a ``position'' that records how much +of the file your program has already read. Many of the <<stdio>> functions +depend on this position, and many change it as a side effect. + +You can use <<fsetpos>> to return the file identified by <[fp]> to a previous +position <<*<[pos]>>> (after first recording it with <<fgetpos>>). + +See <<fseek>> for a similar facility. + +RETURNS +<<fgetpos>> returns <<0>> when successful. If <<fgetpos>> fails, the +result is <<1>>. The reason for failure is indicated in <<errno>>: +either <<ESPIPE>> (the stream identified by <[fp]> doesn't support +repositioning) or <<EINVAL>> (invalid file position). + +PORTABILITY +ANSI C requires <<fsetpos>>, but does not specify the nature of +<<*<[pos]>>> beyond identifying it as written by <<fgetpos>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> + +int +_DEFUN (fsetpos, (iop, pos), + FILE * iop _AND + _CONST fpos_t * pos) +{ + int x = fseek (iop, *pos, SEEK_SET); + + if (x != 0) + return 1; + return 0; +} diff --git a/newlib/libc/stdio/ftell.c b/newlib/libc/stdio/ftell.c new file mode 100644 index 000000000..6a8061816 --- /dev/null +++ b/newlib/libc/stdio/ftell.c @@ -0,0 +1,126 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<ftell>>---return position in a stream or file + +INDEX + ftell + +ANSI_SYNOPSIS + #include <stdio.h> + long ftell(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + long ftell(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +Objects of type <<FILE>> can have a ``position'' that records how much +of the file your program has already read. Many of the <<stdio>> functions +depend on this position, and many change it as a side effect. + +The result of <<ftell>> is the current position for a file +identified by <[fp]>. If you record this result, you can later +use it with <<fseek>> to return the file to this +position. + +In the current implementation, <<ftell>> simply uses a character +count to represent the file position; this is the same number that +would be recorded by <<fgetpos>>. + +RETURNS +<<ftell>> returns the file position, if possible. If it cannot do +this, it returns <<-1L>>. Failure occurs on streams that do not support +positioning; the global <<errno>> indicates this condition with the +value <<ESPIPE>>. + +PORTABILITY +<<ftell>> is required by the ANSI C standard, but the meaning of its +result (when successful) is not specified beyond requiring that it be +acceptable as an argument to <<fseek>>. In particular, other +conforming C implementations may return a different result from +<<ftell>> than what <<fgetpos>> records. + +No supporting OS subroutines are required. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +/* + * ftell: return current offset. + */ + +#include <stdio.h> +#include <errno.h> + +#include "local.h" + +long +_DEFUN (ftell, (fp), + register FILE * fp) +{ + fpos_t pos; + + /* Ensure stdio is set up. */ + + CHECK_INIT (fp); + + if (fp->_seek == NULL) + { + fp->_data->_errno = ESPIPE; + return -1L; + } + + /* Find offset of underlying I/O object, then + adjust for buffered bytes. */ + fflush(fp); /* may adjust seek offset on append stream */ + if (fp->_flags & __SOFF) + pos = fp->_offset; + else + { + pos = (*fp->_seek) (fp->_cookie, (fpos_t) 0, SEEK_CUR); + if (pos == -1L) + return pos; + } + if (fp->_flags & __SRD) + { + /* + * Reading. Any unread characters (including + * those from ungetc) cause the position to be + * smaller than that in the underlying object. + */ + pos -= fp->_r; + if (HASUB (fp)) + pos -= fp->_ur; + } + else if (fp->_flags & __SWR && fp->_p != NULL) + { + /* + * Writing. Any buffered characters cause the + * position to be greater than that in the + * underlying object. + */ + pos += fp->_p - fp->_bf._base; + } + + return pos; +} diff --git a/newlib/libc/stdio/fvwrite.c b/newlib/libc/stdio/fvwrite.c new file mode 100644 index 000000000..00e758a47 --- /dev/null +++ b/newlib/libc/stdio/fvwrite.c @@ -0,0 +1,195 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <string.h> +#include "local.h" +#include "fvwrite.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define COPY(n) (void) memmove((void *) fp->_p, (void *) p, (size_t) (n)) + +#define GETIOV(extra_work) \ + while (len == 0) \ + { \ + extra_work; \ + p = iov->iov_base; \ + len = iov->iov_len; \ + iov++; \ + } + +/* + * Write some memory regions. Return zero on success, EOF on error. + * + * This routine is large and unsightly, but most of the ugliness due + * to the three different kinds of output buffering is handled here. + */ + +int +__sfvwrite (fp, uio) + register FILE *fp; + register struct __suio *uio; +{ + register size_t len; + register _CONST char *p; + register struct __siov *iov; + register int w, s; + char *nl; + int nlknown, nldist; + + if ((len = uio->uio_resid) == 0) + return 0; + + /* make sure we can write */ + if (cantwrite (fp)) + return EOF; + + iov = uio->uio_iov; + len = 0; + if (fp->_flags & __SNBF) + { + /* + * Unbuffered: write up to BUFSIZ bytes at a time. + */ + do + { + GETIOV (;); + w = (*fp->_write) (fp->_cookie, p, MIN (len, BUFSIZ)); + if (w <= 0) + goto err; + p += w; + len -= w; + } + while ((uio->uio_resid -= w) != 0); + } + else if ((fp->_flags & __SLBF) == 0) + { + /* + * Fully buffered: fill partially full buffer, if any, + * and then flush. If there is no partial buffer, write + * one _bf._size byte chunk directly (without copying). + * + * String output is a special case: write as many bytes + * as fit, but pretend we wrote everything. This makes + * snprintf() return the number of bytes needed, rather + * than the number used, and avoids its write function + * (so that the write function can be invalid). + */ + do + { + GETIOV (;); + w = fp->_w; + if (fp->_flags & __SSTR) + { + if (len < w) + w = len; + COPY (w); /* copy MIN(fp->_w,len), */ + fp->_w -= w; + fp->_p += w; + w = len; /* but pretend copied all */ + } + else if (fp->_p > fp->_bf._base && len > w) + { + /* fill and flush */ + COPY (w); + /* fp->_w -= w; *//* unneeded */ + fp->_p += w; + if (fflush (fp)) + goto err; + } + else if (len >= (w = fp->_bf._size)) + { + /* write directly */ + w = (*fp->_write) (fp->_cookie, p, w); + if (w <= 0) + goto err; + } + else + { + /* fill and done */ + w = len; + COPY (w); + fp->_w -= w; + fp->_p += w; + } + p += w; + len -= w; + } + while ((uio->uio_resid -= w) != 0); + } + else + { + /* + * Line buffered: like fully buffered, but we + * must check for newlines. Compute the distance + * to the first newline (including the newline), + * or `infinity' if there is none, then pretend + * that the amount to write is MIN(len,nldist). + */ + nlknown = 0; + do + { + GETIOV (nlknown = 0); + if (!nlknown) + { + nl = memchr ((void *) p, '\n', len); + nldist = nl ? nl + 1 - p : len + 1; + nlknown = 1; + } + s = MIN (len, nldist); + w = fp->_w + fp->_bf._size; + if (fp->_p > fp->_bf._base && s > w) + { + COPY (w); + /* fp->_w -= w; */ + fp->_p += w; + if (fflush (fp)) + goto err; + } + else if (s >= (w = fp->_bf._size)) + { + w = (*fp->_write) (fp->_cookie, p, w); + if (w <= 0) + goto err; + } + else + { + w = s; + COPY (w); + fp->_w -= w; + fp->_p += w; + } + if ((nldist -= w) == 0) + { + /* copied the newline: flush and forget */ + if (fflush (fp)) + goto err; + nlknown = 0; + } + p += w; + len -= w; + } + while ((uio->uio_resid -= w) != 0); + } + return 0; + +err: + fp->_flags |= __SERR; + return EOF; +} diff --git a/newlib/libc/stdio/fvwrite.h b/newlib/libc/stdio/fvwrite.h new file mode 100644 index 000000000..f27abdf81 --- /dev/null +++ b/newlib/libc/stdio/fvwrite.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* %W% (Berkeley) %G% */ +#include <_ansi.h> + +/* + * I/O descriptors for __sfvwrite(). + */ +struct __siov { + _CONST _PTR iov_base; + size_t iov_len; +}; +struct __suio { + struct __siov *uio_iov; + int uio_iovcnt; + int uio_resid; +}; + + +extern int _EXFUN(__sfvwrite,(FILE *, struct __suio *)); +extern int _EXFUN(__swsetup,(FILE *)); + + diff --git a/newlib/libc/stdio/fwalk.c b/newlib/libc/stdio/fwalk.c new file mode 100644 index 000000000..516283466 --- /dev/null +++ b/newlib/libc/stdio/fwalk.c @@ -0,0 +1,43 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <stdlib.h> +#include <errno.h> +#include "local.h" + +int +_fwalk (ptr, function) + struct _reent *ptr; + register int (*function) (); +{ + register FILE *fp; + register int n, ret = 0; + register struct _glue *g; + + for (g = &ptr->__sglue; g != NULL; g = g->_next) + for (fp = g->_iobs, n = g->_niobs; --n >= 0; fp++) + if (fp->_flags != 0) + ret |= (*function) (fp); + return ret; +} diff --git a/newlib/libc/stdio/fwrite.c b/newlib/libc/stdio/fwrite.c new file mode 100644 index 000000000..642fb274f --- /dev/null +++ b/newlib/libc/stdio/fwrite.c @@ -0,0 +1,104 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<fwrite>>---write array elements + +INDEX + fwrite + +ANSI_SYNOPSIS + #include <stdio.h> + size_t fwrite(const void *<[buf]>, size_t <[size]>, + size_t <[count]>, FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + size_t fwrite(<[buf]>, <[size]>, <[count]>, <[fp]>) + char *<[buf]>; + size_t <[size]>; + size_t <[count]>; + FILE *<[fp]>; + +DESCRIPTION +<<fwrite>> attempts to copy, starting from the memory location +<[buf]>, <[count]> elements (each of size <[size]>) into the file or +stream identified by <[fp]>. <<fwrite>> may copy fewer elements than +<[count]> if an error intervenes. + +<<fwrite>> also advances the file position indicator (if any) for +<[fp]> by the number of @emph{characters} actually written. + +RETURNS +If <<fwrite>> succeeds in writing all the elements you specify, the +result is the same as the argument <[count]>. In any event, the +result is the number of complete elements that <<fwrite>> copied to +the file. + +PORTABILITY +ANSI C requires <<fwrite>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <string.h> +#if 0 +#include <sys/stdc.h> +#endif +#include "local.h" +#if 1 +#include "fvwrite.h" +#endif + +/* + * Write `count' objects (each size `size') from memory to the given file. + * Return the number of whole objects written. + */ + +size_t +_DEFUN (fwrite, (buf, size, count, fp), + _CONST _PTR buf _AND + size_t size _AND + size_t count _AND + FILE * fp) +{ + size_t n; + struct __suio uio; + struct __siov iov; + + iov.iov_base = buf; + uio.uio_resid = iov.iov_len = n = count * size; + uio.uio_iov = &iov; + uio.uio_iovcnt = 1; + + /* + * The usual case is success (__sfvwrite returns 0); + * skip the divide if this happens, since divides are + * generally slow and since this occurs whenever size==0. + */ + + if (__sfvwrite (fp, &uio) == 0) + return count; + return (n - uio.uio_resid) / size; +} diff --git a/newlib/libc/stdio/getc.c b/newlib/libc/stdio/getc.c new file mode 100644 index 000000000..4b2509737 --- /dev/null +++ b/newlib/libc/stdio/getc.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<getc>>---read a character (macro) + +INDEX + getc + +ANSI_SYNOPSIS + #include <stdio.h> + int getc(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int getc(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +<<getc>> is a macro, defined in <<stdio.h>>. You can use <<getc>> +to get the next single character from the file or stream +identified by <[fp]>. As a side effect, <<getc>> advances the file's +current position indicator. + +For a subroutine version of this macro, see <<fgetc>>. + +RETURNS +The next character (read as an <<unsigned char>>, and cast to +<<int>>), unless there is no more data, or the host system reports a +read error; in either of these situations, <<getc>> returns <<EOF>>. + +You can distinguish the two situations that cause an <<EOF>> result by +using the <<ferror>> and <<feof>> functions. + +PORTABILITY +ANSI C requires <<getc>>; it suggests, but does not require, that +<<getc>> be implemented as a macro. The standard explicitly permits +macro implementations of <<getc>> to use the argument more than once; +therefore, in a portable program, you should not use an expression +with side effects as the <<getc>> argument. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> + +/* + * A subroutine version of the macro getc. + */ + +#undef getc + +int +getc (fp) + register FILE *fp; +{ + /* CHECK_INIT is called (eventually) by __srefill. */ + + return __sgetc (fp); +} diff --git a/newlib/libc/stdio/getchar.c b/newlib/libc/stdio/getchar.c new file mode 100644 index 000000000..475cd138b --- /dev/null +++ b/newlib/libc/stdio/getchar.c @@ -0,0 +1,96 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<getchar>>---read a character (macro) + +INDEX + getchar +INDEX + _getchar_r + +ANSI_SYNOPSIS + #include <stdio.h> + int getchar(void); + + int _getchar_r(void *<[reent]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int getchar(); + + int _getchar_r(<[reent]>) + char * <[reent]>; + +DESCRIPTION +<<getchar>> is a macro, defined in <<stdio.h>>. You can use <<getchar>> +to get the next single character from the standard input stream. +As a side effect, <<getchar>> advances the standard input's +current position indicator. + +The alternate function <<_getchar_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + + +RETURNS +The next character (read as an <<unsigned char>>, and cast to +<<int>>), unless there is no more data, or the host system reports a +read error; in either of these situations, <<getchar>> returns <<EOF>>. + +You can distinguish the two situations that cause an <<EOF>> result by +using `<<ferror(stdin)>>' and `<<feof(stdin)>>'. + +PORTABILITY +ANSI C requires <<getchar>>; it suggests, but does not require, that +<<getchar>> be implemented as a macro. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +/* + * A subroutine version of the macro getchar. + */ + +#include <stdio.h> +#include <reent.h> + +#undef getchar + +int +_getchar_r (f) + struct _reent *f; +{ + return getc (_stdin_r (f)); +} + +#ifndef _REENT_ONLY + +int +getchar () +{ + /* CHECK_INIT is called (eventually) by __srefill. */ + + return _getchar_r (_REENT); +} + +#endif diff --git a/newlib/libc/stdio/gets.c b/newlib/libc/stdio/gets.c new file mode 100644 index 000000000..796100e32 --- /dev/null +++ b/newlib/libc/stdio/gets.c @@ -0,0 +1,102 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + + +/* + +FUNCTION + <<gets>>---get character string (obsolete, use <<fgets>> instead) +INDEX + gets +INDEX + _gets_r + +ANSI_SYNOPSIS + #include <stdio.h> + + char *gets(char *<[buf]>); + + char *_gets_r(void *<[reent]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <stdio.h> + + char *gets(<[buf]>) + char *<[buf]>; + + char *_gets_r(<[reent]>, <[buf]>) + char *<[reent]>; + char *<[buf]>; + +DESCRIPTION + Reads characters from standard input until a newline is found. + The characters up to the newline are stored in <[buf]>. The + newline is discarded, and the buffer is terminated with a 0. + + This is a @emph{dangerous} function, as it has no way of checking + the amount of space available in <[buf]>. One of the attacks + used by the Internet Worm of 1988 used this to overrun a + buffer allocated on the stack of the finger daemon and + overwrite the return address, causing the daemon to execute + code downloaded into it over the connection. + + The alternate function <<_gets_r>> is a reentrant version. The extra + argument <[reent]> is a pointer to a reentrancy structure. + + +RETURNS + <<gets>> returns the buffer passed to it, with the data filled + in. If end of file occurs with some data already accumulated, + the data is returned with no other indication. If end of file + occurs with no data in the buffer, NULL is returned. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> + +char * +_gets_r (ptr, buf) + struct _reent *ptr; + char *buf; +{ + register int c; + register char *s = buf; + + while ((c = _getchar_r (ptr)) != '\n') + if (c == EOF) + if (s == buf) + return NULL; + else + break; + else + *s++ = c; + *s = 0; + return buf; +} + +#ifndef _REENT_ONLY + +char * +gets (buf) + char *buf; +{ + return _gets_r (_REENT, buf); +} + +#endif diff --git a/newlib/libc/stdio/iprintf.c b/newlib/libc/stdio/iprintf.c new file mode 100644 index 000000000..f05404302 --- /dev/null +++ b/newlib/libc/stdio/iprintf.c @@ -0,0 +1,118 @@ +/* +FUNCTION + <<iprintf>>---write formatted output (integer only) +INDEX + iprintf + +ANSI_SYNOPSIS + #include <stdio.h> + + int iprintf(const char *<[format]>, ...); + +TRAD_SYNOPSIS + #include <stdio.h> + + int iprintf(<[format]> [, <[arg]>, ...]) + char *<[format]>; + +DESCRIPTION +<<iprintf>> is a restricted version of <<printf>>: it has the same +arguments and behavior, save that it cannot perform any floating-point +formatting: the <<f>>, <<g>>, <<G>>, <<e>>, and <<F>> type specifiers +are not recognized. + +RETURNS + <<iprintf>> returns the number of bytes in the output string, + save that the concluding <<NULL>> is not counted. + <<iprintf>> returns when the end of the format string is + encountered. If an error occurs, <<iprintf>> + returns <<EOF>>. + +PORTABILITY +<<iprintf>> is not required by ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <stdio.h> + +#ifndef _REENT_ONLY + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +iprintf (const char *fmt,...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + _stdout_r (_REENT)->_data = _REENT; + ret = vfiprintf (stdout, fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +iprintf (fmt, va_alist) + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + _stdout_r (_REENT)->_data = _REENT; + ret = vfiprintf (stdout, fmt, ap); + va_end (ap); + return ret; +} + +#endif /* ! _HAVE_STDC */ +#endif /* ! _REENT_ONLY */ + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +_iprintf_r (struct _reent *ptr, const char *fmt, ...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + ret = vfiprintf (_stdout_r (ptr), fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +_iprintf_r (data, fmt, va_alist) + char *data; + char *fmt; + va_dcl +{ + int ret; + struct _reent *ptr = data; + va_list ap; + + va_start (ap); + ret = vfiprintf (_stdout_r (ptr), fmt, ap); + va_end (ap); + return ret; +} + +#endif diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h new file mode 100644 index 000000000..71e80cc09 --- /dev/null +++ b/newlib/libc/stdio/local.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + * + * %W% (UofMD/Berkeley) %G% + */ + +/* + * Information local to this implementation of stdio, + * in particular, macros and private variables. + */ + +#include <_ansi.h> +#include <stdarg.h> +#include <reent.h> +#include <unistd.h> + +extern int _EXFUN(__svfscanf,(FILE *, _CONST char *,va_list)); +extern FILE *_EXFUN(__sfp,(struct _reent *)); +extern int _EXFUN(__sflags,(struct _reent *,_CONST char*, int*)); +extern int _EXFUN(__srefill,(FILE *)); +extern int _EXFUN(__sread,(void *, char *, int)); +extern int _EXFUN(__swrite,(void *, char const *, int)); +extern fpos_t _EXFUN(__sseek,(void *, fpos_t, int)); +extern int _EXFUN(__sclose,(void *)); +extern void _EXFUN(__sinit,(struct _reent *)); +extern void _EXFUN(_cleanup_r,(struct _reent *)); +extern void _EXFUN(__smakebuf,(FILE *)); +extern int _EXFUN(_fwalk,(struct _reent *, int (*)(FILE *))); +struct _glue * _EXFUN(__sfmoreglue,(struct _reent *,int n)); +extern int _EXFUN(__srefill,(FILE *fp)); + +/* Called by the main entry point fns to ensure stdio has been initialized. */ + +#define CHECK_INIT(fp) \ + do \ + { \ + if ((fp)->_data == 0) \ + (fp)->_data = _REENT; \ + if (!(fp)->_data->__sdidinit) \ + __sinit ((fp)->_data); \ + } \ + while (0) + +/* Return true iff the given FILE cannot be written now. */ + +#define cantwrite(fp) \ + ((((fp)->_flags & __SWR) == 0 || (fp)->_bf._base == NULL) && \ + __swsetup(fp)) + +/* Test whether the given stdio file has an active ungetc buffer; + release such a buffer, without restoring ordinary unread data. */ + +#define HASUB(fp) ((fp)->_ub._base != NULL) +#define FREEUB(fp) { \ + if ((fp)->_ub._base != (fp)->_ubuf) \ + _free_r(fp->_data, (char *)(fp)->_ub._base); \ + (fp)->_ub._base = NULL; \ +} + +/* Test for an fgetline() buffer. */ + +#define HASLB(fp) ((fp)->_lb._base != NULL) +#define FREELB(fp) { _free_r(fp->_data,(char *)(fp)->_lb._base); (fp)->_lb._base = NULL; } + +/* WARNING: _dcvt is defined in the stdlib directory, not here! */ + +char *_EXFUN(_dcvt,(struct _reent *, char *, double, int, int, char, int)); +char *_EXFUN(_sicvt,(char *, short, char)); +char *_EXFUN(_icvt,(char *, int, char)); +char *_EXFUN(_licvt,(char *, long, char)); +#ifdef __GNUC__ +char *_EXFUN(_llicvt,(char *, long long, char)); +#endif + +#define CVT_BUF_SIZE 128 + +#define NDYNAMIC 4 /* add four more whenever necessary */ diff --git a/newlib/libc/stdio/makebuf.c b/newlib/libc/stdio/makebuf.c new file mode 100644 index 000000000..4a09c4d50 --- /dev/null +++ b/newlib/libc/stdio/makebuf.c @@ -0,0 +1,96 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <sys/unistd.h> + +#include "local.h" + +/* + * Allocate a file buffer, or switch to unbuffered I/O. + * Per the ANSI C standard, ALL tty devices default to line buffered. + * + * As a side effect, we set __SOPT or __SNPT (en/dis-able fseek + * optimization) right after the _fstat() that finds the buffer size. + */ + +void +__smakebuf (fp) + register FILE *fp; +{ + register size_t size, couldbetty; + register _PTR p; + struct stat st; + + if (fp->_flags & __SNBF) + { + fp->_bf._base = fp->_p = fp->_nbuf; + fp->_bf._size = 1; + return; + } + if (fp->_file < 0 || _fstat_r (fp->_data, fp->_file, &st) < 0) + { + couldbetty = 0; + size = BUFSIZ; + /* do not try to optimise fseek() */ + fp->_flags |= __SNPT; + } + else + { + couldbetty = (st.st_mode & S_IFMT) == S_IFCHR; +#ifdef HAVE_BLKSIZE + size = st.st_blksize <= 0 ? BUFSIZ : st.st_blksize; +#else + size = BUFSIZ; +#endif + /* + * Optimize fseek() only if it is a regular file. + * (The test for __sseek is mainly paranoia.) + */ + if ((st.st_mode & S_IFMT) == S_IFREG && fp->_seek == __sseek) + { + fp->_flags |= __SOPT; +#ifdef HAVE_BLKSIZE + fp->_blksize = st.st_blksize; +#else + fp->_blksize = 1024; +#endif + } + else + fp->_flags |= __SNPT; + } + if ((p = _malloc_r (fp->_data, size)) == NULL) + { + fp->_flags |= __SNBF; + fp->_bf._base = fp->_p = fp->_nbuf; + fp->_bf._size = 1; + } + else + { + fp->_data->__cleanup = _cleanup_r; + fp->_flags |= __SMBF; + fp->_bf._base = fp->_p = (unsigned char *) p; + fp->_bf._size = size; + if (couldbetty && isatty (fp->_file)) + fp->_flags |= __SLBF; + } +} diff --git a/newlib/libc/stdio/mktemp.c b/newlib/libc/stdio/mktemp.c new file mode 100644 index 000000000..f6a6b688f --- /dev/null +++ b/newlib/libc/stdio/mktemp.c @@ -0,0 +1,219 @@ +/* This is file MKTEMP.C */ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<mktemp>>, <<mkstemp>>---generate unused file name + +INDEX + mktemp +INDEX + mkstemp +INDEX + _mktemp_r +INDEX + _mkstemp_r + +ANSI_SYNOPSIS + #include <stdio.h> + char *mktemp(char *<[path]>); + int mkstemp(char *<[path]>); + + char *_mktemp_r(void *<[reent]>, char *<[path]>); + int *_mkstemp_r(void *<[reent]>, char *<[path]>); + +TRAD_SYNOPSIS + #include <stdio.h> + char *mktemp(<[path]>) + char *<[path]>; + + int mkstemp(<[path]>) + char *<[path]>; + + char *_mktemp_r(<[reent]>, <[path]>) + char *<[reent]>; + char *<[path]>; + + int _mkstemp_r(<[reent]>, <[path]>) + char *<[reent]>; + char *<[path]>; + +DESCRIPTION +<<mktemp>> and <<mkstemp>> attempt to generate a file name that is not +yet in use for any existing file. <<mkstemp>> creates the file and +opens it for reading and writing; <<mktemp>> simply generates the file name. + +You supply a simple pattern for the generated file name, as the string +at <[path]>. The pattern should be a valid filename (including path +information if you wish) ending with some number of `<<X>>' +characters. The generated filename will match the leading part of the +name you supply, with the trailing `<<X>>' characters replaced by some +combination of digits and letters. + +The alternate functions <<_mktemp_r>> and <<_mkstemp_r>> are reentrant +versions. The extra argument <[reent]> is a pointer to a reentrancy +structure. + +RETURNS +<<mktemp>> returns the pointer <[path]> to the modified string +representing an unused filename, unless it could not generate one, or +the pattern you provided is not suitable for a filename; in that case, +it returns <<NULL>>. + +<<mkstemp>> returns a file descriptor to the newly created file, +unless it could not generate an unused filename, or the pattern you +provided is not suitable for a filename; in that case, it returns +<<-1>>. + +PORTABILITY +ANSI C does not require either <<mktemp>> or <<mkstemp>>; the System +V Interface Definition requires <<mktemp>> as of Issue 2. + +Supporting OS subroutines required: <<getpid>>, <<open>>, <<stat>>. +*/ + +#include <sys/types.h> +#include <fcntl.h> +#include <sys/stat.h> +#include <errno.h> +#include <stdio.h> +#include <ctype.h> +#include <reent.h> + +static +_DEFUN (_gettemp, (ptr, path, doopen), + struct _reent *ptr _AND + char *path _AND + register int *doopen) +{ + register char *start, *trv; + struct stat sbuf; + unsigned int pid; + + pid = _getpid_r (ptr); + for (trv = path; *trv; ++trv) /* extra X's get set to 0's */ + continue; + while (*--trv == 'X') + { + *trv = (pid % 10) + '0'; + pid /= 10; + } + + /* + * Check the target directory; if you have six X's and it + * doesn't exist this runs for a *very* long time. + */ + + for (start = trv + 1;; --trv) + { + if (trv <= path) + break; + if (*trv == '/') + { + *trv = '\0'; + if (_stat_r (ptr, path, &sbuf)) + return (0); + if (!(sbuf.st_mode & S_IFDIR)) + { + ptr->_errno = ENOTDIR; + return (0); + } + *trv = '/'; + break; + } + } + + for (;;) + { + if (doopen) + { + if ((*doopen = _open_r (ptr, path, O_CREAT | O_EXCL | O_RDWR, 0600)) + >= 0) + return 1; +#if defined(__CYGWIN32__) || defined(__CYGWIN__) + if (ptr->_errno != EEXIST && ptr->_errno != EACCES) +#else + if (ptr->_errno != EEXIST) +#endif + return 0; + } + else if (_stat_r (ptr, path, &sbuf)) + return (ptr->_errno == ENOENT ? 1 : 0); + + /* tricky little algorithm for backward compatibility */ + for (trv = start;;) + { + if (!*trv) + return 0; + if (*trv == 'z') + *trv++ = 'a'; + else + { + if (isdigit (*trv)) + *trv = 'a'; + else + ++ * trv; + break; + } + } + } + /*NOTREACHED*/ +} + +_DEFUN (_mkstemp_r, (ptr, path), + struct _reent *ptr _AND + char *path) +{ + int fd; + + return (_gettemp (ptr, path, &fd) ? fd : -1); +} + +char * +_DEFUN (_mktemp_r, (ptr, path), + struct _reent *ptr _AND + char *path) +{ + return (_gettemp (ptr, path, (int *) NULL) ? path : (char *) NULL); +} + +#ifndef _REENT_ONLY + +_DEFUN (mkstemp, (path), + char *path) +{ + int fd; + + return (_gettemp (_REENT, path, &fd) ? fd : -1); +} + +char * +_DEFUN (mktemp, (path), + char *path) +{ + return (_gettemp (_REENT, path, (int *) NULL) ? path : (char *) NULL); +} + +#endif /* ! defined (_REENT_ONLY) */ diff --git a/newlib/libc/stdio/perror.c b/newlib/libc/stdio/perror.c new file mode 100644 index 000000000..abb595ba9 --- /dev/null +++ b/newlib/libc/stdio/perror.c @@ -0,0 +1,80 @@ +/* +FUNCTION +<<perror>>---print an error message on standard error + +INDEX + perror +INDEX + _perror_r + +ANSI_SYNOPSIS + #include <stdio.h> + void perror(char *<[prefix]>); + + void _perror_r(void *<[reent]>, char *<[prefix]>); + +TRAD_SYNOPSIS + #include <stdio.h> + void perror(<[prefix]>) + char *<[prefix]>; + + void _perror_r(<[reent]>, <[prefix]>) + char *<[reent]>; + char *<[prefix]>; + +DESCRIPTION +Use <<perror>> to print (on standard error) an error message +corresponding to the current value of the global variable <<errno>>. +Unless you use <<NULL>> as the value of the argument <[prefix]>, the +error message will begin with the string at <[prefix]>, followed by a +colon and a space (<<: >>). The remainder of the error message is one +of the strings described for <<strerror>>. + +The alternate function <<_perror_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + + +RETURNS +<<perror>> returns no result. + +PORTABILITY +ANSI C requires <<perror>>, but the strings issued vary from one +implementation to another. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stddef.h> +#include <stdio.h> +#include <string.h> + +void +_DEFUN (_perror_r, (ptr, s), + struct _reent *ptr _AND + _CONST char *s) +{ + char *error; + + if (s != NULL && *s != '\0') + { + fputs (s, _stderr_r (ptr)); + fputs (": ", _stderr_r (ptr)); + } + + if ((error = strerror (ptr->_errno)) != NULL) + fputs (error, _stderr_r (ptr)); + + fputc ('\n', _stderr_r (ptr)); +} + +#ifndef _REENT_ONLY + +void +_DEFUN (perror, (s), + _CONST char *s) +{ + _perror_r (_REENT, s); +} + +#endif diff --git a/newlib/libc/stdio/printf.c b/newlib/libc/stdio/printf.c new file mode 100644 index 000000000..81fb8a2cb --- /dev/null +++ b/newlib/libc/stdio/printf.c @@ -0,0 +1,83 @@ + +#include <_ansi.h> +#include <stdio.h> + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +_printf_r (struct _reent *ptr, const char *fmt, ...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +_printf_r (ptr, fmt, va_alist) + struct _reent *ptr; + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + ret = _vfprintf_r (ptr, _stdout_r (ptr), fmt, ap); + va_end (ap); + return ret; +} + +#endif + + +#ifndef _REENT_ONLY + +#ifdef _HAVE_STDC + +#include <stdarg.h> + +int +printf (const char *fmt, ...) +{ + int ret; + va_list ap; + + va_start (ap, fmt); + _stdout_r (_REENT)->_data = _REENT; + ret = vfprintf (_stdout_r (_REENT), fmt, ap); + va_end (ap); + return ret; +} + +#else + +#include <varargs.h> + +int +printf (fmt, va_alist) + char *fmt; + va_dcl +{ + int ret; + va_list ap; + + va_start (ap); + _stdout_r (_REENT)->_data = _REENT; + ret = vfprintf (_stdout_r (_REENT), fmt, ap); + va_end (ap); + return ret; +} + +#endif /* ! _HAVE_STDC */ + +#endif /* ! _REENT_ONLY */ diff --git a/newlib/libc/stdio/putc.c b/newlib/libc/stdio/putc.c new file mode 100644 index 000000000..27a7a4280 --- /dev/null +++ b/newlib/libc/stdio/putc.c @@ -0,0 +1,84 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<putc>>---write a character (macro) + +INDEX + putc + +ANSI_SYNOPSIS + #include <stdio.h> + int putc(int <[ch]>, FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int putc(<[ch]>, <[fp]>) + int <[ch]>; + FILE *<[fp]>; + +DESCRIPTION +<<putc>> is a macro, defined in <<stdio.h>>. <<putc>> +writes the argument <[ch]> to the file or stream identified by +<[fp]>, after converting it from an <<int>> to an <<unsigned char>>. + +If the file was opened with append mode (or if the stream cannot +support positioning), then the new character goes at the end of the +file or stream. Otherwise, the new character is written at the +current value of the position indicator, and the position indicator +advances by one. + +For a subroutine version of this macro, see <<fputc>>. + +RETURNS +If successful, <<putc>> returns its argument <[ch]>. If an error +intervenes, the result is <<EOF>>. You can use `<<ferror(<[fp]>)>>' to +query for errors. + +PORTABILITY +ANSI C requires <<putc>>; it suggests, but does not require, that +<<putc>> be implemented as a macro. The standard explicitly permits +macro implementations of <<putc>> to use the <[fp]> argument more than once; +therefore, in a portable program, you should not use an expression +with side effects as this argument. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> + +/* + * A subroutine version of the macro putc. + */ + +#undef putc + +int +putc (c, fp) + int c; + register FILE *fp; +{ + /* CHECK_INIT is (eventually) called by __swbuf. */ + + return __sputc (c, fp); +} diff --git a/newlib/libc/stdio/putchar.c b/newlib/libc/stdio/putchar.c new file mode 100644 index 000000000..7f7c442e4 --- /dev/null +++ b/newlib/libc/stdio/putchar.c @@ -0,0 +1,94 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<putchar>>---write a character (macro) + +INDEX + putchar +INDEX + _putchar_r + +ANSI_SYNOPSIS + #include <stdio.h> + int putchar(int <[ch]>); + + int _putchar_r(void *<[reent]>, int <[ch]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int putchar(<[ch]>) + int <[ch]>; + + int _putchar_r(<[reent]>, <[ch]>) + char *<[reent]>; + int <[ch]>; + +DESCRIPTION +<<putchar>> is a macro, defined in <<stdio.h>>. <<putchar>> +writes its argument to the standard output stream, +after converting it from an <<int>> to an <<unsigned char>>. + +The alternate function <<_putchar_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +If successful, <<putchar>> returns its argument <[ch]>. If an error +intervenes, the result is <<EOF>>. You can use `<<ferror(stdin)>>' to +query for errors. + +PORTABILITY +ANSI C requires <<putchar>>; it suggests, but does not require, that +<<putchar>> be implemented as a macro. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +/* + * A subroutine version of the macro putchar + */ + +#include <stdio.h> + +#undef putchar + +int +_putchar_r (ptr, c) + struct _reent *ptr; + int c; +{ + return __sputc (c, _stdout_r (ptr)); +} + +#ifndef _REENT_ONLY + +int +putchar (c) + int c; +{ + /* CHECK_INIT is (eventually) called by __swbuf. */ + + _putchar_r (_REENT, c); +} + +#endif diff --git a/newlib/libc/stdio/puts.c b/newlib/libc/stdio/puts.c new file mode 100644 index 000000000..44f17cc91 --- /dev/null +++ b/newlib/libc/stdio/puts.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<puts>>---write a character string + +INDEX + puts +INDEX + _puts_r + +ANSI_SYNOPSIS + #include <stdio.h> + int puts(const char *<[s]>); + + int _puts_r(void *<[reent]>, const char *<[s]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int puts(<[s]>) + char *<[s]>; + + int _puts_r(<[reent]>, <[s]>) + char *<[reent]>; + char *<[s]>; + +DESCRIPTION +<<puts>> writes the string at <[s]> (followed by a newline, instead of +the trailing null) to the standard output stream. + +The alternate function <<_puts_r>> is a reentrant version. The extra +argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +If successful, the result is a nonnegative integer; otherwise, the +result is <<EOF>>. + +PORTABILITY +ANSI C requires <<puts>>, but does not specify that the result on +success must be <<0>>; any non-negative value is permitted. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <string.h> +#include "fvwrite.h" + +/* + * Write the given string to stdout, appending a newline. + */ + +int +_DEFUN (_puts_r, (ptr, s), + struct _reent *ptr _AND + _CONST char * s) +{ + size_t c = strlen (s); + struct __suio uio; + struct __siov iov[2]; + + iov[0].iov_base = s; + iov[0].iov_len = c; + iov[1].iov_base = "\n"; + iov[1].iov_len = 1; + uio.uio_resid = c + 1; + uio.uio_iov = &iov[0]; + uio.uio_iovcnt = 2; + + return (__sfvwrite (_stdout_r (ptr), &uio) ? EOF : '\n'); +} + +#ifndef _REENT_ONLY + +int +_DEFUN (puts, (s), + char _CONST * s) +{ + return _puts_r (_REENT, s); +} + +#endif diff --git a/newlib/libc/stdio/refill.c b/newlib/libc/stdio/refill.c new file mode 100644 index 000000000..bc3b83047 --- /dev/null +++ b/newlib/libc/stdio/refill.c @@ -0,0 +1,113 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include "local.h" +#include <stdlib.h> + +static int +lflush (fp) + FILE *fp; +{ + if ((fp->_flags & (__SLBF | __SWR)) == __SLBF | __SWR) + return fflush (fp); + return 0; +} + +/* + * Refill a stdio buffer. + * Return EOF on eof or error, 0 otherwise. + */ + +int +_DEFUN (__srefill, (fp), + register FILE * fp) +{ + /* make sure stdio is set up */ + + CHECK_INIT (fp); + + fp->_r = 0; /* largely a convenience for callers */ + + /* SysV does not make this test; take it out for compatibility */ + if (fp->_flags & __SEOF) + return EOF; + + /* if not already reading, have to be reading and writing */ + if ((fp->_flags & __SRD) == 0) + { + if ((fp->_flags & __SRW) == 0) + return EOF; + /* switch to reading */ + if (fp->_flags & __SWR) + { + if (fflush (fp)) + return EOF; + fp->_flags &= ~__SWR; + fp->_w = 0; + fp->_lbfsize = 0; + } + fp->_flags |= __SRD; + } + else + { + /* + * We were reading. If there is an ungetc buffer, + * we must have been reading from that. Drop it, + * restoring the previous buffer (if any). If there + * is anything in that buffer, return. + */ + if (HASUB (fp)) + { + FREEUB (fp); + if ((fp->_r = fp->_ur) != 0) + { + fp->_p = fp->_up; + return 0; + } + } + } + + if (fp->_bf._base == NULL) + __smakebuf (fp); + + /* + * Before reading from a line buffered or unbuffered file, + * flush all line buffered output files, per the ANSI C + * standard. + */ + + if (fp->_flags & (__SLBF | __SNBF)) + (void) _fwalk (fp->_data, lflush); + fp->_p = fp->_bf._base; + fp->_r = (*fp->_read) (fp->_cookie, (char *) fp->_p, fp->_bf._size); + fp->_flags &= ~__SMOD; /* buffer contents are again pristine */ + if (fp->_r <= 0) + { + if (fp->_r == 0) + fp->_flags |= __SEOF; + else + { + fp->_r = 0; + fp->_flags |= __SERR; + } + return EOF; + } + return 0; +} diff --git a/newlib/libc/stdio/remove.c b/newlib/libc/stdio/remove.c new file mode 100644 index 000000000..074dd9ac8 --- /dev/null +++ b/newlib/libc/stdio/remove.c @@ -0,0 +1,69 @@ +/* +FUNCTION +<<remove>>---delete a file's name + +INDEX + remove + +ANSI_SYNOPSIS + #include <stdio.h> + int remove(char *<[filename]>); + + int _remove_r(void *<[reent]>, char *<[filename]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int remove(<[filename]>) + char *<[filename]>; + + int _remove_r(<[reent]>, <[filename]>) + char *<[reent]>; + char *<[filename]>; + +DESCRIPTION +Use <<remove>> to dissolve the association between a particular +filename (the string at <[filename]>) and the file it represents. +After calling <<remove>> with a particular filename, you will no +longer be able to open the file by that name. + +In this implementation, you may use <<remove>> on an open file without +error; existing file descriptors for the file will continue to access +the file's data until the program using them closes the file. + +The alternate function <<_remove_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +<<remove>> returns <<0>> if it succeeds, <<-1>> if it fails. + +PORTABILITY +ANSI C requires <<remove>>, but only specifies that the result on +failure be nonzero. The behavior of <<remove>> when you call it on an +open file may vary among implementations. + +Supporting OS subroutine required: <<unlink>>. +*/ + +#include <stdio.h> + +int +_remove_r (ptr, filename) + struct _reent *ptr; + _CONST char *filename; +{ + if (_unlink_r (ptr, filename) == -1) + return -1; + + return 0; +} + +#ifndef _REENT_ONLY + +int +remove (filename) + _CONST char *filename; +{ + return _remove_r (_REENT, filename); +} + +#endif diff --git a/newlib/libc/stdio/rename.c b/newlib/libc/stdio/rename.c new file mode 100644 index 000000000..19a6afdd3 --- /dev/null +++ b/newlib/libc/stdio/rename.c @@ -0,0 +1,86 @@ +/* +FUNCTION +<<rename>>---rename a file + +INDEX + rename +INDEX + _rename_r + +ANSI_SYNOPSIS + #include <stdio.h> + int rename(const char *<[old]>, const char *<[new]>); + + int _rename_r(void *<[reent]>, + const char *<[old]>, const char *<[new]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int rename(<[old]>, <[new]>) + char *<[old]>; + char *<[new]>; + + int _rename_r(<[reent]>, <[old]>, <[new]>) + char *<[reent]>; + char *<[old]>; + char *<[new]>; + +DESCRIPTION +Use <<rename>> to establish a new name (the string at <[new]>) for a +file now known by the string at <[old]>. After a successful +<<rename>>, the file is no longer accessible by the string at <[old]>. + +If <<rename>> fails, the file named <<*<[old]>>> is unaffected. The +conditions for failure depend on the host operating system. + +The alternate function <<_rename_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +The result is either <<0>> (when successful) or <<-1>> (when the file +could not be renamed). + +PORTABILITY +ANSI C requires <<rename>>, but only specifies that the result on +failure be nonzero. The effects of using the name of an existing file +as <<*<[new]>>> may vary from one implementation to another. + +Supporting OS subroutines required: <<link>>, <<unlink>>, or <<rename>>. +*/ + +#include <stdio.h> +#include <sys/unistd.h> +#include <reent.h> + +int +_rename_r (ptr, old, new) + struct _reent *ptr; + _CONST char *old; + _CONST char *new; +{ +#ifdef HAVE_RENAME + return _rename (old,new); +#else + if (_link_r (ptr, old, new) == -1) + return -1; + + if (_unlink_r (ptr, old) == -1) + { + /* ??? Should we unlink new? (rhetorical question) */ + return -1; + } +#endif + return 0; +} + +#ifndef _REENT_ONLY + +int +rename (old, new) + _CONST char *old; + _CONST char *new; +{ + return _rename_r (_REENT, old, new); +} + +#endif diff --git a/newlib/libc/stdio/rewind.c b/newlib/libc/stdio/rewind.c new file mode 100644 index 000000000..905275741 --- /dev/null +++ b/newlib/libc/stdio/rewind.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<rewind>>---reinitialize a file or stream + +INDEX + rewind + +ANSI_SYNOPSIS + #include <stdio.h> + void rewind(FILE *<[fp]>); + +TRAD_SYNOPSIS + #include <stdio.h> + void rewind(<[fp]>) + FILE *<[fp]>; + +DESCRIPTION +<<rewind>> returns the file position indicator (if any) for the file +or stream identified by <[fp]> to the beginning of the file. It also +clears any error indicator and flushes any pending output. + +RETURNS +<<rewind>> does not return a result. + +PORTABILITY +ANSI C requires <<rewind>>. + +No supporting OS subroutines are required. +*/ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> + +void +_DEFUN (rewind, (fp), + register FILE * fp) +{ + (void) fseek(fp, 0L, SEEK_SET); + clearerr(fp); +} diff --git a/newlib/libc/stdio/rget.c b/newlib/libc/stdio/rget.c new file mode 100644 index 000000000..ea29c2bce --- /dev/null +++ b/newlib/libc/stdio/rget.c @@ -0,0 +1,43 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include "local.h" + +/* + * Handle getc() when the buffer ran out: + * Refill, then return the first character + * in the newly-filled buffer. + */ + +int +__srget (fp) + register FILE *fp; +{ + if (__srefill (fp) == 0) + { + fp->_r--; + return *fp->_p++; + } + return EOF; +} diff --git a/newlib/libc/stdio/scanf.c b/newlib/libc/stdio/scanf.c new file mode 100644 index 000000000..0a4818934 --- /dev/null +++ b/newlib/libc/stdio/scanf.c @@ -0,0 +1,75 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <stdio.h> +#include "local.h" + +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +#ifndef _REENT_ONLY + +int +#ifdef _HAVE_STDC +scanf (const char *fmt, ...) +#else +scanf (fmt, va_alist) + char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = __svfscanf (_stdin_r (_REENT), fmt, ap); + va_end (ap); + return ret; +} + +#endif + +int +#ifdef _HAVE_STDC +_scanf_r (struct _reent *ptr, const char *fmt, ...) +#else +_scanf_r (ptr, fmt, va_alist) + struct _reent *ptr; + char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = __svfscanf (_stdin_r (ptr), fmt, ap); + va_end (ap); + return (ret); +} diff --git a/newlib/libc/stdio/setbuf.c b/newlib/libc/stdio/setbuf.c new file mode 100644 index 000000000..15d09e0f3 --- /dev/null +++ b/newlib/libc/stdio/setbuf.c @@ -0,0 +1,79 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<setbuf>>---specify full buffering for a file or stream + +INDEX + setbuf + +ANSI_SYNOPSIS + #include <stdio.h> + void setbuf(FILE *<[fp]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <stdio.h> + void setbuf(<[fp]>, <[buf]>) + FILE *<[fp]>; + char *<[buf]>; + +DESCRIPTION +<<setbuf>> specifies that output to the file or stream identified by <[fp]> +should be fully buffered. All output for this file will go to a +buffer (of size <<BUFSIZ>>, specified in `<<stdio.h>>'). Output will +be passed on to the host system only when the buffer is full, or when +an input operation intervenes. + +You may, if you wish, supply your own buffer by passing a pointer to +it as the argument <[buf]>. It must have size <<BUFSIZ>>. You can +also use <<NULL>> as the value of <[buf]>, to signal that the +<<setbuf>> function is to allocate the buffer. + +WARNINGS +You may only use <<setbuf>> before performing any file operation other +than opening the file. + +If you supply a non-null <[buf]>, you must ensure that the associated +storage continues to be available until you close the stream +identified by <[fp]>. + +RETURNS +<<setbuf>> does not return a result. + +PORTABILITY +Both ANSI C and the System V Interface Definition (Issue 2) require +<<setbuf>>. However, they differ on the meaning of a <<NULL>> buffer +pointer: the SVID issue 2 specification says that a <<NULL>> buffer +pointer requests unbuffered output. For maximum portability, avoid +<<NULL>> buffer pointers. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <stdio.h> +#include "local.h" + +void +_DEFUN (setbuf, (fp, buf), + FILE * fp _AND + char *buf) +{ + (void) setvbuf (fp, buf, buf ? _IOFBF : _IONBF, BUFSIZ); +} diff --git a/newlib/libc/stdio/setvbuf.c b/newlib/libc/stdio/setvbuf.c new file mode 100644 index 000000000..357ea5142 --- /dev/null +++ b/newlib/libc/stdio/setvbuf.c @@ -0,0 +1,190 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* +FUNCTION +<<setvbuf>>---specify file or stream buffering + +INDEX + setvbuf + +ANSI_SYNOPSIS + #include <stdio.h> + int setvbuf(FILE *<[fp]>, char *<[buf]>, + int <[mode]>, size_t <[size]>); + +TRAD_SYNOPSIS + #include <stdio.h> + int setvbuf(<[fp]>, <[buf]>, <[mode]>, <[size]>) + FILE *<[fp]>; + char *<[buf]>; + int <[mode]>; + size_t <[size]>; + +DESCRIPTION +Use <<setvbuf>> to specify what kind of buffering you want for the +file or stream identified by <[fp]>, by using one of the following +values (from <<stdio.h>>) as the <[mode]> argument: + +o+ +o _IONBF +Do not use a buffer: send output directly to the host system for the +file or stream identified by <[fp]>. + +o _IOFBF +Use full output buffering: output will be passed on to the host system +only when the buffer is full, or when an input operation intervenes. + +o _IOLBF +Use line buffering: pass on output to the host system at every +newline, as well as when the buffer is full, or when an input +operation intervenes. +o- + +Use the <[size]> argument to specify how large a buffer you wish. You +can supply the buffer itself, if you wish, by passing a pointer to a +suitable area of memory as <[buf]>. Otherwise, you may pass <<NULL>> +as the <[buf]> argument, and <<setvbuf>> will allocate the buffer. + +WARNINGS +You may only use <<setvbuf>> before performing any file operation other +than opening the file. + +If you supply a non-null <[buf]>, you must ensure that the associated +storage continues to be available until you close the stream +identified by <[fp]>. + +RETURNS +A <<0>> result indicates success, <<EOF>> failure (invalid <[mode]> or +<[size]> can cause failure). + +PORTABILITY +Both ANSI C and the System V Interface Definition (Issue 2) require +<<setvbuf>>. However, they differ on the meaning of a <<NULL>> buffer +pointer: the SVID issue 2 specification says that a <<NULL>> buffer +pointer requests unbuffered output. For maximum portability, avoid +<<NULL>> buffer pointers. + +Both specifications describe the result on failure only as a +nonzero value. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <stdio.h> +#include <stdlib.h> +#include "local.h" + +/* + * Set one of the three kinds of buffering, optionally including a buffer. + */ + +int +_DEFUN (setvbuf, (fp, buf, mode, size), + register FILE * fp _AND + char *buf _AND + register int mode _AND + register size_t size) +{ + int ret = 0; + CHECK_INIT (fp); + + /* + * Verify arguments. The `int' limit on `size' is due to this + * particular implementation. + */ + + if ((mode != _IOFBF && mode != _IOLBF && mode != _IONBF) || (int)(_POINTER_INT) size < 0) + return (EOF); + + /* + * Write current buffer, if any; drop read count, if any. + * Make sure putc() will not think fp is line buffered. + * Free old buffer if it was from malloc(). Clear line and + * non buffer flags, and clear malloc flag. + */ + + (void) fflush (fp); + fp->_r = 0; + fp->_lbfsize = 0; + if (fp->_flags & __SMBF) + _free_r (fp->_data, (void *) fp->_bf._base); + fp->_flags &= ~(__SLBF | __SNBF | __SMBF); + + if (mode == _IONBF) + goto nbf; + + /* + * Allocate buffer if needed. */ + if (buf == NULL) + { + /* we need this here because malloc() may return a pointer + even if size == 0 */ + if (!size) size = BUFSIZ; + if ((buf = malloc (size)) == NULL) + { + ret = EOF; + /* Try another size... */ + buf = malloc (BUFSIZ); + size = BUFSIZ; + } + if (buf == NULL) + { + /* Can't allocate it, let's try another approach */ +nbf: + fp->_flags |= __SNBF; + fp->_w = 0; + fp->_bf._base = fp->_p = fp->_nbuf; + fp->_bf._size = 1; + return (ret); + } + fp->_flags |= __SMBF; + } + /* + * Now put back whichever flag is needed, and fix _lbfsize + * if line buffered. Ensure output flush on exit if the + * stream will be buffered at all. + * If buf is NULL then make _lbfsize 0 to force the buffer + * to be flushed and hence malloced on first use + */ + + switch (mode) + { + case _IOLBF: + fp->_flags |= __SLBF; + fp->_lbfsize = buf ? -size : 0; + /* FALLTHROUGH */ + + case _IOFBF: + /* no flag */ + fp->_data->__cleanup = _cleanup_r; + fp->_bf._base = fp->_p = (unsigned char *) buf; + fp->_bf._size = size; + break; + } + + /* + * Patch up write count if necessary. + */ + + if (fp->_flags & __SWR) + fp->_w = fp->_flags & (__SLBF | __SNBF) ? 0 : size; + + return 0; +} diff --git a/newlib/libc/stdio/siprintf.c b/newlib/libc/stdio/siprintf.c new file mode 100644 index 000000000..40bd01696 --- /dev/null +++ b/newlib/libc/stdio/siprintf.c @@ -0,0 +1,70 @@ +/* +FUNCTION + <<siprintf>>---write formatted output (integer only) +INDEX + siprintf + +ANSI_SYNOPSIS + #include <stdio.h> + + int siprintf(char *<[str]>, const char *<[format]> [, <[arg]>, ...]); + + +DESCRIPTION +<<siprintf>> is a restricted version of <<sprintf>>: it has the same +arguments and behavior, save that it cannot perform any floating-point +formatting: the <<f>>, <<g>>, <<G>>, <<e>>, and <<F>> type specifiers +are not recognized. + +RETURNS + <<siprintf>> returns the number of bytes in the output string, + save that the concluding <<NULL>> is not counted. + <<siprintf>> returns when the end of the format string is + encountered. + +PORTABILITY +<<siprintf>> is not required by ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include <limits.h> +#include <_ansi.h> +#include <reent.h> +#include "local.h" + +int +#ifdef _HAVE_STDC +_DEFUN (siprintf, (str, fmt), char *str _AND _CONST char *fmt _DOTS) +#else +siprintf (str, fmt, va_alist) + char *str; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = INT_MAX; + f._data = _REENT; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = vfiprintf (&f, fmt, ap); + va_end (ap); + *f._p = 0; + return (ret); +} diff --git a/newlib/libc/stdio/snprintf.c b/newlib/libc/stdio/snprintf.c new file mode 100644 index 000000000..333e808e4 --- /dev/null +++ b/newlib/libc/stdio/snprintf.c @@ -0,0 +1,95 @@ +/* doc in sprintf.c */ + +/* This code created by modifying sprintf.c so copyright inherited. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include <limits.h> +#include <_ansi.h> +#include "local.h" + +int +#ifdef _HAVE_STDC +_DEFUN (_snprintf_r, (ptr, str, size, fmt), struct _reent *ptr _AND char *str _AND size_t size _AND _CONST char *fmt _DOTS) +#else +_snprintf_r (ptr, str, size, fmt, va_alist) + struct _reent *ptr; + char *str; + size_t size; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = size; + f._data = ptr; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = vfprintf (&f, fmt, ap); + va_end (ap); + *f._p = 0; + return (ret); +} + +#ifndef _REENT_ONLY + +int +#ifdef _HAVE_STDC +_DEFUN (snprintf, (str, size, fmt), char *str _AND size_t size _AND _CONST char *fmt _DOTS) +#else +snprintf (str, size, fmt, va_alist) + char *str; + size_t size; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = size; + f._data = _REENT; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = vfprintf (&f, fmt, ap); + va_end (ap); + *f._p = 0; + return (ret); +} + +#endif diff --git a/newlib/libc/stdio/sprintf.c b/newlib/libc/stdio/sprintf.c new file mode 100644 index 000000000..b5376327e --- /dev/null +++ b/newlib/libc/stdio/sprintf.c @@ -0,0 +1,360 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* + +FUNCTION + <<printf>>, <<fprintf>>, <<sprintf>>, <<snprintf>>---format output +INDEX + fprintf +INDEX + printf +INDEX + sprintf +INDEX + snprintf + +ANSI_SYNOPSIS + #include <stdio.h> + + int printf(const char *<[format]> [, <[arg]>, ...]); + int fprintf(FILE *<[fd]>, const char *<[format]> [, <[arg]>, ...]); + int sprintf(char *<[str]>, const char *<[format]> [, <[arg]>, ...]); + int snprintf(char *<[str]>, size_t <[size]>, const char *<[format]> [, <[arg]>, ...]); + +TRAD_SYNOPSIS + #include <stdio.h> + + int printf(<[format]> [, <[arg]>, ...]) + char *<[format]>; + + int fprintf(<[fd]>, <[format]> [, <[arg]>, ...]); + FILE *<[fd]>; + char *<[format]>; + + int sprintf(<[str]>, <[format]> [, <[arg]>, ...]); + char *<[str]>; + char *<[format]>; + + int snprintf(<[str]>, size_t <[size]>, <[format]> [, <[arg]>, ...]); + char *<[str]>; + size_t <[size]>; + char *<[format]>; + +DESCRIPTION + <<printf>> accepts a series of arguments, applies to each a + format specifier from <<*<[format]>>>, and writes the + formatted data to <<stdout>>, terminated with a null character. + The behavior of <<printf>> is undefined if there are not enough + arguments for the format. + <<printf>> returns when it reaches the end of the format string. + If there are more arguments than the format requires, excess + arguments are ignored. + + <<fprintf>>, <<sprintf>> and <<snprintf>> are identical to <<printf>>, + other than the destination of the formatted output: <<fprintf>> sends + the output to a specified file <[fd]>, while <<sprintf>> stores the + output in the specified char array <[str]> and <<snprintf>> limits + number of characters written to <[str]> to at most <[size]> (including + terminating <<0>>). For <<sprintf>> and <<snprintf>>, the behavior is + also undefined if the output <<*<[str]>>> overlaps with one of the + arguments. <[format]> is a pointer to a charater string containing + two types of objects: ordinary characters (other than <<%>>), which + are copied unchanged to the output, and conversion + specifications, each of which is introduced by <<%>>. + (To include <<%>> in the output, use <<%%>> in the format string.) + A conversion specification has the following form: + +. %[<[flags]>][<[width]>][.<[prec]>][<[size]>][<[type]>] + + The fields of the conversion specification have the following meanings: + + O+ + o <[flags]> + + an optional sequence of characters which control + output justification, numeric signs, decimal points, + trailing zeroes, and octal and hex prefixes. + The flag characters are minus (<<->>), plus (<<+>>), + space ( ), zero (<<0>>), and sharp (<<#>>). They can + appear in any combination. + + o+ + o - + The result of the conversion is left justified, and the right is + padded with blanks. If you do not use this flag, the result is right + justified, and padded on the left. + + o + + The result of a signed conversion (as determined by <[type]>) + will always begin with a plus or minus sign. (If you do not use + this flag, positive values do not begin with a plus sign.) + + o " " (space) + If the first character of a signed conversion specification + is not a sign, or if a signed conversion results in no + characters, the result will begin with a space. If the + space ( ) flag and the plus (<<+>>) flag both appear, + the space flag is ignored. + + o 0 + If the <[type]> character is <<d>>, <<i>>, <<o>>, <<u>>, + <<x>>, <<X>>, <<e>>, <<E>>, <<f>>, <<g>>, or <<G>>: leading zeroes, + are used to pad the field width (following any indication of sign or + base); no spaces are used for padding. If the zero (<<0>>) and + minus (<<->>) flags both appear, the zero (<<0>>) flag will + be ignored. For <<d>>, <<i>>, <<o>>, <<u>>, <<x>>, and <<X>> + conversions, if a precision <[prec]> is specified, the zero (<<0>>) + flag is ignored. + + Note that <<0>> is interpreted as a flag, not as the beginning + of a field width. + + o # + The result is to be converted to an alternative form, according + to the next character: + + o+ + o 0 + increases precision to force the first digit + of the result to be a zero. + + o x + a non-zero result will have a <<0x>> prefix. + + o X + a non-zero result will have a <<0X>> prefix. + + o e, E or f + The result will always contain a decimal point + even if no digits follow the point. + (Normally, a decimal point appears only if a + digit follows it.) Trailing zeroes are removed. + + o g or G + same as <<e>> or <<E>>, but trailing zeroes + are not removed. + + o all others + undefined. + + o- + o- + + o <[width]> + + <[width]> is an optional minimum field width. You can either + specify it directly as a decimal integer, or indirectly by + using instead an asterisk (<<*>>), in which case an <<int>> + argument is used as the field width. Negative field widths + are not supported; if you attempt to specify a negative field + width, it is interpreted as a minus (<<->>) flag followed by a + positive field width. + + o <[prec]> + + an optional field; if present, it is introduced with `<<.>>' + (a period). This field gives the maximum number of + characters to print in a conversion; the minimum number of + digits of an integer to print, for conversions with <[type]> + <<d>>, <<i>>, <<o>>, <<u>>, <<x>>, and <<X>>; the maximum number of + significant digits, for the <<g>> and <<G>> conversions; + or the number of digits to print after the decimal + point, for <<e>>, <<E>>, and <<f>> conversions. You can specify + the precision either directly as a decimal integer or + indirectly by using an asterisk (<<*>>), in which case + an <<int>> argument is used as the precision. Supplying a negative + precision is equivalent to omitting the precision. + If only a period is specified the precision is zero. + If a precision appears with any other conversion <[type]> + than those listed here, the behavior is undefined. + + o <[size]> + + <<h>>, <<l>>, and <<L>> are optional size characters which + override the default way that <<printf>> interprets the + data type of the corresponding argument. <<h>> forces + the following <<d>>, <<i>>, <<o>>, <<u>>, <<x>> or <<X>> conversion + <[type]> to apply to a <<short>> or <<unsigned short>>. <<h>> also + forces a following <<n>> <[type]> to apply to + a pointer to a <<short>>. Similarily, an + <<l>> forces the following <<d>>, <<i>>, <<o>>, <<u>>, + <<x>> or <<X>> conversion <[type]> to apply to a <<long>> or + <<unsigned long>>. <<l>> also forces a following <<n>> <[type]> to + apply to a pointer to a <<long>>. If an <<h>> + or an <<l>> appears with another conversion + specifier, the behavior is undefined. <<L>> forces a + following <<e>>, <<E>>, <<f>>, <<g>> or <<G>> conversion <[type]> to + apply to a <<long double>> argument. If <<L>> appears with + any other conversion <[type]>, the behavior is undefined. + + o <[type]> + + <[type]> specifies what kind of conversion <<printf>> performs. + Here is a table of these: + + o+ + o % + prints the percent character (<<%>>) + + o c + prints <[arg]> as single character + + o s + prints characters until precision is reached or a null terminator + is encountered; takes a string pointer + + o d + prints a signed decimal integer; takes an <<int>> (same as <<i>>) + + o i + prints a signed decimal integer; takes an <<int>> (same as <<d>>) + + o o + prints a signed octal integer; takes an <<int>> + + o u + prints an unsigned decimal integer; takes an <<int>> + + o x + prints an unsigned hexadecimal integer (using <<abcdef>> as + digits beyond <<9>>); takes an <<int>> + + o X + prints an unsigned hexadecimal integer (using <<ABCDEF>> as + digits beyond <<9>>); takes an <<int>> + + o f + prints a signed value of the form <<[-]9999.9999>>; takes + a floating point number + + o e + prints a signed value of the form <<[-]9.9999e[+|-]999>>; takes a + floating point number + + o E + prints the same way as <<e>>, but using <<E>> to introduce the + exponent; takes a floating point number + + o g + prints a signed value in either <<f>> or <<e>> form, based on given + value and precision---trailing zeros and the decimal point are + printed only if necessary; takes a floating point number + + o G + prints the same way as <<g>>, but using <<E>> for the exponent if an + exponent is needed; takes a floating point number + + o n + stores (in the same object) a count of the characters written; + takes a pointer to <<int>> + + o p + prints a pointer in an implementation-defined format. + This implementation treats the pointer as an + <<unsigned long>> (same as <<Lu>>). + o- +O- + + +RETURNS +<<sprintf>> returns the number of bytes in the output string, +save that the concluding <<NULL>> is not counted. +<<printf>> and <<fprintf>> return the number of characters transmitted. +If an error occurs, <<printf>> and <<fprintf>> return <<EOF>>. No +error returns occur for <<sprintf>>. + +PORTABILITY + The ANSI C standard specifies that implementations must + support at least formatted output of up to 509 characters. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stdio.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include <limits.h> +#include <_ansi.h> +#include "local.h" + +int +#ifdef _HAVE_STDC +_DEFUN (_sprintf_r, (ptr, str, fmt), struct _reent *ptr _AND char *str _AND _CONST char *fmt _DOTS) +#else +_sprintf_r (ptr, str, fmt, va_alist) + struct _reent *ptr; + char *str; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = INT_MAX; + f._data = ptr; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = vfprintf (&f, fmt, ap); + va_end (ap); + *f._p = 0; + return (ret); +} + +#ifndef _REENT_ONLY + +int +#ifdef _HAVE_STDC +_DEFUN (sprintf, (str, fmt), char *str _AND _CONST char *fmt _DOTS) +#else +sprintf (str, fmt, va_alist) + char *str; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = INT_MAX; + f._data = _REENT; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = vfprintf (&f, fmt, ap); + va_end (ap); + *f._p = 0; + return (ret); +} + +#endif diff --git a/newlib/libc/stdio/sscanf.c b/newlib/libc/stdio/sscanf.c new file mode 100644 index 000000000..eb344238d --- /dev/null +++ b/newlib/libc/stdio/sscanf.c @@ -0,0 +1,386 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* + +FUNCTION + <<scanf>>, <<fscanf>>, <<sscanf>>---scan and format input + +INDEX + scanf +INDEX + fscanf +INDEX + sscanf + +ANSI_SYNOPSIS + #include <stdio.h> + + int scanf(const char *<[format]> [, <[arg]>, ...]); + int fscanf(FILE *<[fd]>, const char *<[format]> [, <[arg]>, ...]); + int sscanf(const char *<[str]>, const char *<[format]> + [, <[arg]>, ...]); + + +TRAD_SYNOPSIS + #include <stdio.h> + + int scanf(<[format]> [, <[arg]>, ...]) + char *<[format]>; + + int fscanf(<[fd]>, <[format]> [, <[arg]>, ...]); + FILE *<[fd]>; + char *<[format]>; + + int sscanf(<[str]>, <[format]> [, <[arg]>, ...]); + char *<[str]>; + char *<[format]>; + + +DESCRIPTION + <<scanf>> scans a series of input fields from standard input, + one character at a time. Each field is interpreted according to + a format specifier passed to <<scanf>> in the format string at + <<*<[format]>>>. <<scanf>> stores the interpreted input from + each field at the address passed to it as the corresponding argument + following <[format]>. You must supply the same number of + format specifiers and address arguments as there are input fields. + + There must be sufficient address arguments for the given format + specifiers; if not the results are unpredictable and likely + disasterous. Excess address arguments are merely ignored. + + <<scanf>> often produces unexpected results if the input diverges from + an expected pattern. Since the combination of <<gets>> or <<fgets>> + followed by <<sscanf>> is safe and easy, that is the preferred way + to be certain that a program is synchronized with input at the end + of a line. + + <<fscanf>> and <<sscanf>> are identical to <<scanf>>, other than the + source of input: <<fscanf>> reads from a file, and <<sscanf>> + from a string. + + The string at <<*<[format]>>> is a character sequence composed + of zero or more directives. Directives are composed of + one or more whitespace characters, non-whitespace characters, + and format specifications. + + Whitespace characters are blank (<< >>), tab (<<\t>>), or + newline (<<\n>>). + When <<scanf>> encounters a whitespace character in the format string + it will read (but not store) all consecutive whitespace characters + up to the next non-whitespace character in the input. + + Non-whitespace characters are all other ASCII characters except the + percent sign (<<%>>). When <<scanf>> encounters a non-whitespace + character in the format string it will read, but not store + a matching non-whitespace character. + + Format specifications tell <<scanf>> to read and convert characters + from the input field into specific types of values, and store then + in the locations specified by the address arguments. + + Trailing whitespace is left unread unless explicitly + matched in the format string. + + The format specifiers must begin with a percent sign (<<%>>) + and have the following form: + +. %[*][<[width]>][<[size]>]<[type]> + + Each format specification begins with the percent character (<<%>>). + The other fields are: + o+ + o * + an optional marker; if present, it suppresses interpretation and + assignment of this input field. + + o <[width]> + an optional maximum field width: a decimal integer, + which controls the maximum number of characters that + will be read before converting the current input field. If the + input field has fewer than <[width]> characters, <<scanf>> + reads all the characters in the field, and then + proceeds with the next field and its format specification. + + If a whitespace or a non-convertable character occurs + before <[width]> character are read, the characters up + to that character are read, converted, and stored. + Then <<scanf>> proceeds to the next format specification. + + o size + <<h>>, <<l>>, and <<L>> are optional size characters which + override the default way that <<scanf>> interprets the + data type of the corresponding argument. + + +.Modifier Type(s) +. h d, i, o, u, x convert input to short, +. store in short object +. +. h D, I, O, U, X no effect +. e, f, c, s, n, p +. +. l d, i, o, u, x convert input to long, +. store in long object +. +. l e, f, g convert input to double +. store in a double object +. +. l D, I, O, U, X no effect +. c, s, n, p +. +. L d, i, o, u, x convert to long double, +. store in long double +. +. L all others no effect + + + o <[type]> + + A character to specify what kind of conversion + <<scanf>> performs. Here is a table of the conversion + characters: + + o+ + o % + No conversion is done; the percent character (<<%>>) is stored. + + o c + Scans one character. Corresponding <[arg]>: <<(char *arg)>>. + + o s + Reads a character string into the array supplied. + Corresponding <[arg]>: <<(char arg[])>>. + + o [<[pattern]>] + Reads a non-empty character string into memory + starting at <[arg]>. This area must be large + enough to accept the sequence and a + terminating null character which will be added + automatically. (<[pattern]> is discussed in the paragraph following + this table). Corresponding <[arg]>: <<(char *arg)>>. + + o d + Reads a decimal integer into the corresponding <[arg]>: <<(int *arg)>>. + + o D + Reads a decimal integer into the corresponding + <[arg]>: <<(long *arg)>>. + + o o + Reads an octal integer into the corresponding <[arg]>: <<(int *arg)>>. + + o O + Reads an octal integer into the corresponding <[arg]>: <<(long *arg)>>. + + o u + Reads an unsigned decimal integer into the corresponding + <[arg]>: <<(unsigned int *arg)>>. + + + o U + Reads an unsigned decimal integer into the corresponding <[arg]>: + <<(unsigned long *arg)>>. + + o x,X + Read a hexadecimal integer into the corresponding <[arg]>: + <<(int *arg)>>. + + o e, f, g + Read a floating point number into the corresponding <[arg]>: + <<(float *arg)>>. + + o E, F, G + Read a floating point number into the corresponding <[arg]>: + <<(double *arg)>>. + + o i + Reads a decimal, octal or hexadecimal integer into the + corresponding <[arg]>: <<(int *arg)>>. + + o I + Reads a decimal, octal or hexadecimal integer into the + corresponding <[arg]>: <<(long *arg)>>. + + o n + Stores the number of characters read in the corresponding + <[arg]>: <<(int *arg)>>. + + o p + Stores a scanned pointer. ANSI C leaves the details + to each implementation; this implementation treats + <<%p>> exactly the same as <<%U>>. Corresponding + <[arg]>: <<(void **arg)>>. + o- + + A <[pattern]> of characters surrounded by square brackets can be used + instead of the <<s>> type character. <[pattern]> is a set of + characters which define a search set of possible characters making up + the <<scanf>> input field. If the first character in the brackets is a + caret (<<^>>), the search set is inverted to include all ASCII characters + except those between the brackets. There is also a range facility + which you can use as a shortcut. <<%[0-9] >> matches all decimal digits. + The hyphen must not be the first or last character in the set. + The character prior to the hyphen must be lexically less than the + character after it. + + Here are some <[pattern]> examples: + o+ + o %[abcd] + matches strings containing only <<a>>, <<b>>, <<c>>, and <<d>>. + + o %[^abcd] + matches strings containing any characters except <<a>>, <<b>>, + <<c>>, or <<d>> + + o %[A-DW-Z] + matches strings containing <<A>>, <<B>>, <<C>>, <<D>>, <<W>>, + <<X>>, <<Y>>, <<Z>> + + o %[z-a] + matches the characters <<z>>, <<->>, and <<a>> + o- + + Floating point numbers (for field types <<e>>, <<f>>, <<g>>, <<E>>, + <<F>>, <<G>>) must correspond to the following general form: + +. [+/-] ddddd[.]ddd [E|e[+|-]ddd] + + where objects inclosed in square brackets are optional, and <<ddd>> + represents decimal, octal, or hexadecimal digits. + o- + +RETURNS + <<scanf>> returns the number of input fields successfully + scanned, converted and stored; the return value does + not include scanned fields which were not stored. + + If <<scanf>> attempts to read at end-of-file, the return + value is <<EOF>>. + + If no fields were stored, the return value is <<0>>. + + <<scanf>> might stop scanning a particular field before + reaching the normal field end character, or may + terminate entirely. + + <<scanf>> stops scanning and storing the current field + and moves to the next input field (if any) + in any of the following situations: + + O+ + o The assignment suppressing character (<<*>>) appears + after the <<%>> in the format specification; the current + input field is scanned but not stored. + + o <[width]> characters have been read (<[width]> is a + width specification, a positive decimal integer). + + o The next character read cannot be converted + under the the current format (for example, + if a <<Z>> is read when the format is decimal). + + o The next character in the input field does not appear + in the search set (or does appear in the inverted search set). + O- + + When <<scanf>> stops scanning the current input field for one of + these reasons, the next character is considered unread and + used as the first character of the following input field, or the + first character in a subsequent read operation on the input. + + <<scanf>> will terminate under the following circumstances: + + O+ + o The next character in the input field conflicts + with a corresponding non-whitespace character in the + format string. + + o The next character in the input field is <<EOF>>. + + o The format string has been exhausted. + O- + + When the format string contains a character sequence that is + not part of a format specification, the same character + sequence must appear in the input; <<scanf>> will + scan but not store the matched characters. If a + conflict occurs, the first conflicting character remains in the input + as if it had never been read. + +PORTABILITY +<<scanf>> is ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <reent.h> +#include <stdio.h> +#include <string.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include "local.h" + +/* | ARGSUSED */ +/*SUPPRESS 590*/ +static +int +eofread (cookie, buf, len) + _PTR cookie; + char *buf; + int len; +{ + return 0; +} + +#ifdef _HAVE_STDC +int +_DEFUN (sscanf, (str, fmt), _CONST char *str _AND _CONST char *fmt _DOTS) +#else +int +sscanf (str, fmt, va_alist) + _CONST char *str; + _CONST char *fmt; + va_dcl +#endif +{ + int ret; + va_list ap; + FILE f; + + f._flags = __SRD; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._r = strlen (str); + f._read = eofread; + f._ub._base = NULL; + f._lb._base = NULL; + f._data = _REENT; +#ifdef _HAVE_STDC + va_start (ap, fmt); +#else + va_start (ap); +#endif + ret = __svfscanf (&f, fmt, ap); + va_end (ap); + return ret; +} diff --git a/newlib/libc/stdio/stdio.c b/newlib/libc/stdio/stdio.c new file mode 100644 index 000000000..c06f51aa0 --- /dev/null +++ b/newlib/libc/stdio/stdio.c @@ -0,0 +1,92 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <sys/types.h> +#include <fcntl.h> +#include <sys/unistd.h> +#include "local.h" + +/* + * Small standard I/O/seek/close functions. + * These maintain the `known seek offset' for seek optimisation. + */ + +int +__sread (cookie, buf, n) + _PTR cookie; + char *buf; + int n; +{ + register FILE *fp = (FILE *) cookie; + register int ret; + + ret = _read_r (fp->_data, fp->_file, buf, n); + + /* If the read succeeded, update the current offset. */ + + if (ret >= 0) + fp->_offset += ret; + else + fp->_flags &= ~__SOFF; /* paranoia */ + return ret; +} + +int +__swrite (cookie, buf, n) + _PTR cookie; + char _CONST *buf; + int n; +{ + register FILE *fp = (FILE *) cookie; + + if (fp->_flags & __SAPP) + (void) _lseek_r (fp->_data, fp->_file, (off_t) 0, SEEK_END); + fp->_flags &= ~__SOFF; /* in case O_APPEND mode is set */ + return _write_r (fp->_data, fp->_file, buf, n); +} + +fpos_t +__sseek (cookie, offset, whence) + _PTR cookie; + fpos_t offset; + int whence; +{ + register FILE *fp = (FILE *) cookie; + register off_t ret; + + ret = _lseek_r (fp->_data, fp->_file, (off_t) offset, whence); + if (ret == -1L) + fp->_flags &= ~__SOFF; + else + { + fp->_flags |= __SOFF; + fp->_offset = ret; + } + return ret; +} + +int +__sclose (cookie) + _PTR cookie; +{ + FILE *fp = (FILE *) cookie; + + return _close_r (fp->_data, fp->_file); +} diff --git a/newlib/libc/stdio/stdio.tex b/newlib/libc/stdio/stdio.tex new file mode 100644 index 000000000..466e1f0db --- /dev/null +++ b/newlib/libc/stdio/stdio.tex @@ -0,0 +1,183 @@ +@node Stdio +@chapter Input and Output (@file{stdio.h}) + +This chapter comprises functions to manage files +or other input/output streams. Among these functions are subroutines +to generate or scan strings according to specifications from a format string. + +The underlying facilities for input and output depend on the host +system, but these functions provide a uniform interface. + +The corresponding declarations are in @file{stdio.h}. + +The reentrant versions of these functions use macros + +@example +_stdin_r(@var{reent}) +_stdout_r(@var{reent}) +_stderr_r(@var{reent}) +@end example + +@noindent +instead of the globals @code{stdin}, @code{stdout}, and +@code{stderr}. The argument <[reent]> is a pointer to a reentrancy +structure. + +@menu +* clearerr:: Clear file or stream error indicator +* fclose:: Close a file +* feof:: Test for end of file +* ferror:: Test whether read/write error has occurred +* fflush:: Flush buffered file output +* fgetc:: Get a character from a file or stream +* fgetpos:: Record position in a stream or file +* fgets:: Get character string from a file or stream +* fiprintf:: Write formatted output to file (integer only) +* fopen:: Open a file +* fdopen:: Turn an open file into a stream +* fputc:: Write a character on a stream or file +* fputs:: Write a character string in a file or stream +* fread:: Read array elements from a file +* freopen:: Open a file using an existing file descriptor +* fseek:: Set file position +* fsetpos:: Restore position of a stream or file +* ftell:: Return position in a stream or file +* fwrite:: Write array elements from memory to a file or stream +* getc:: Get a character from a file or stream (macro) +* getchar:: Get a character from standard input (macro) +* gets:: Get character string from standard input (obsolete) +* iprintf:: Write formatted output (integer only) +* mktemp:: Generate unused file name +* perror:: Print an error message on standard error +* putc:: Write a character on a stream or file (macro) +* putchar:: Write a character on standard output (macro) +* puts:: Write a character string on standard output +* remove:: Delete a file's name +* rename:: Rename a file +* rewind:: Reinitialize a file or stream +* setbuf:: Specify full buffering for a file or stream +* setvbuf:: Specify buffering for a file or stream +* siprintf:: Write formatted output (integer only) +* printf:: Write formatted output +* scanf:: Scan and format input +* tmpfile:: Create a temporary file +* tmpnam:: Generate name for a temporary file +* vprintf:: Format variable argument list +@end menu + +@page +@include stdio/clearerr.def + +@page +@include stdio/fclose.def + +@page +@include stdio/feof.def + +@page +@include stdio/ferror.def + +@page +@include stdio/fflush.def + +@page +@include stdio/fgetc.def + +@page +@include stdio/fgetpos.def + +@page +@include stdio/fgets.def + +@page +@include stdio/fiprintf.def + +@page +@include stdio/fopen.def + +@page +@include stdio/fdopen.def + +@page +@include stdio/fputc.def + +@page +@include stdio/fputs.def + +@page +@include stdio/fread.def + +@page +@include stdio/freopen.def + +@page +@include stdio/fseek.def + +@page +@include stdio/fsetpos.def + +@page +@include stdio/ftell.def + +@page +@include stdio/fwrite.def + +@page +@include stdio/getc.def + +@page +@include stdio/getchar.def + +@page +@include stdio/gets.def + +@page +@include stdio/iprintf.def + +@page +@include stdio/mktemp.def + +@page +@include stdio/perror.def + +@page +@include stdio/putc.def + +@page +@include stdio/putchar.def + +@page +@include stdio/puts.def + +@page +@include stdio/remove.def + +@page +@include stdio/rename.def + +@page +@include stdio/rewind.def + +@page +@include stdio/setbuf.def + +@page +@include stdio/setvbuf.def + +@page +@include stdio/siprintf.def + +@page +@include stdio/sprintf.def + +@page +@include stdio/sscanf.def + +@page +@include stdio/tmpfile.def + +@page +@include stdio/tmpnam.def + +@page +@include stdio/vfprintf.def diff --git a/newlib/libc/stdio/tmpfile.c b/newlib/libc/stdio/tmpfile.c new file mode 100644 index 000000000..4b31396e2 --- /dev/null +++ b/newlib/libc/stdio/tmpfile.c @@ -0,0 +1,77 @@ +/* +FUNCTION +<<tmpfile>>---create a temporary file + +INDEX + tmpfile +INDEX + _tmpfile_r + +ANSI_SYNOPSIS + #include <stdio.h> + FILE *tmpfile(void); + + FILE *_tmpfile_r(void *<[reent]>); + +TRAD_SYNOPSIS + #include <stdio.h> + FILE *tmpfile(); + + FILE *_tmpfile_r(<[reent]>) + char *<[reent]>; + +DESCRIPTION +Create a temporary file (a file which will be deleted automatically), +using a name generated by <<tmpnam>>. The temporary file is opened with +the mode <<"wb+">>, permitting you to read and write anywhere in it +as a binary file (without any data transformations the host system may +perform for text files). + +The alternate function <<_tmpfile_r>> is a reentrant version. The +argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +<<tmpfile>> normally returns a pointer to the temporary file. If no +temporary file could be created, the result is NULL, and <<errno>> +records the reason for failure. + +PORTABILITY +Both ANSI C and the System V Interface Definition (Issue 2) require +<<tmpfile>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<getpid>>, +<<isatty>>, <<lseek>>, <<open>>, <<read>>, <<sbrk>>, <<write>>. + +<<tmpfile>> also requires the global pointer <<environ>>. +*/ + +#include <stdio.h> +#include <errno.h> + +FILE * +_DEFUN (_tmpfile_r, (ptr), + struct _reent *ptr) +{ + FILE *fp; + int e; + char *f; + char buf[L_tmpnam]; + + if ((f = _tmpnam_r (ptr, buf)) == NULL) + return NULL; + fp = fopen (f, "wb+"); + e = ptr->_errno; + _CAST_VOID remove (f); + ptr->_errno = e; + return fp; +} + +#ifndef _REENT_ONLY + +FILE * +_DEFUN_VOID (tmpfile) +{ + return _tmpfile_r (_REENT); +} + +#endif diff --git a/newlib/libc/stdio/tmpnam.c b/newlib/libc/stdio/tmpnam.c new file mode 100644 index 000000000..28b394f10 --- /dev/null +++ b/newlib/libc/stdio/tmpnam.c @@ -0,0 +1,208 @@ +/* + * tmpname.c + * Original Author: G. Haley + */ + +/* +FUNCTION +<<tmpnam>>, <<tempnam>>---name for a temporary file + +INDEX + tmpnam +INDEX + tempnam +INDEX + _tmpnam_r +INDEX + _tempnam_r + +ANSI_SYNOPSIS + #include <stdio.h> + char *tmpnam(char *<[s]>); + char *tempnam(char *<[dir]>, char *<[pfx]>); + char *_tmpnam_r(void *<[reent]>, char *<[s]>); + char *_tempnam_r(void *<[reent]>, char *<[dir]>, char *<[pfx]>); + +TRAD_SYNOPSIS + #include <stdio.h> + char *tmpnam(<[s]>) + char *<[s]>; + + char *tempnam(<[dir]>, <[pfx]>) + char *<[dir]>; + char *<[pfx]>; + + char *_tmpnam_r(<[reent]>, <[s]>) + char *<[reent]>; + char *<[s]>; + + char *_tempnam_r(<[reent]>, <[dir]>, <[pfx]>) + char *<[reent]>; + char *<[dir]>; + char *<[pfx]>; + +DESCRIPTION +Use either of these functions to generate a name for a temporary file. +The generated name is guaranteed to avoid collision with other files +(for up to <<TMP_MAX>> calls of either function). + +<<tmpnam>> generates file names with the value of <<P_tmpdir>> +(defined in `<<stdio.h>>') as the leading directory component of the path. + +You can use the <<tmpnam>> argument <[s]> to specify a suitable area +of memory for the generated filename; otherwise, you can call +<<tmpnam(NULL)>> to use an internal static buffer. + +<<tempnam>> allows you more control over the generated filename: you +can use the argument <[dir]> to specify the path to a directory for +temporary files, and you can use the argument <[pfx]> to specify a +prefix for the base filename. + +If <[dir]> is <<NULL>>, <<tempnam>> will attempt to use the value of +environment variable <<TMPDIR>> instead; if there is no such value, +<<tempnam>> uses the value of <<P_tmpdir>> (defined in `<<stdio.h>>'). + +If you don't need any particular prefix to the basename of temporary +files, you can pass <<NULL>> as the <[pfx]> argument to <<tempnam>>. + +<<_tmpnam_r>> and <<_tempnam_r>> are reentrant versions of <<tmpnam>> +and <<tempnam>> respectively. The extra argument <[reent]> is a +pointer to a reentrancy structure. + +WARNINGS +The generated filenames are suitable for temporary files, but do not +in themselves make files temporary. Files with these names must still +be explicitly removed when you no longer want them. + +If you supply your own data area <[s]> for <<tmpnam>>, you must ensure +that it has room for at least <<L_tmpnam>> elements of type <<char>>. + +RETURNS +Both <<tmpnam>> and <<tempnam>> return a pointer to the newly +generated filename. + +PORTABILITY +ANSI C requires <<tmpnam>>, but does not specify the use of +<<P_tmpdir>>. The System V Interface Definition (Issue 2) requires +both <<tmpnam>> and <<tempnam>>. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<getpid>>, +<<isatty>>, <<lseek>>, <<open>>, <<read>>, <<sbrk>>, <<write>>. + +The global pointer <<environ>> is also required. +*/ + +#include <_ansi.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <fcntl.h> +#include <reent.h> +#include <errno.h> + +/* Try to open the file specified, if it can't be opened then try + another one. Return nonzero if successful, otherwise zero. */ + +static int +worker (ptr, result, part1, part2, part3, part4) + struct _reent *ptr; + char *result; + _CONST char *part1; + _CONST char *part2; + int part3; + int *part4; +{ + /* Generate the filename and make sure that there isn't one called + it already. */ + + while (1) + { + int t; + _sprintf_r (ptr, result, "%s/%s%x.%x", part1, part2, part3, *part4); + (*part4)++; + t = _open_r (ptr, result, O_RDONLY, 0); + if (t == -1) + { + if (ptr->_errno == ENOSYS) + { + result[0] = '\0'; + return 0; + } + break; + } + _close_r (ptr, t); + } + return 1; +} + +char * +_DEFUN (_tmpnam_r, (p, s), + struct _reent *p _AND + char *s) +{ + char *result; + int pid; + + if (s == NULL) + { + /* ANSI states we must use an internal static buffer if s is NULL */ + result = p->_emergency; + } + else + { + result = s; + } + pid = _getpid_r (p); + + if (worker (p, result, P_tmpdir, "t", pid, &p->_inc)) + { + p->_inc++; + return result; + } + + return NULL; +} + +char * +_DEFUN (_tempnam_r, (p, dir, pfx), + struct _reent *p _AND + _CONST char *dir _AND + _CONST char *pfx) +{ + char *filename; + int length; + _CONST char *prefix = (pfx) ? pfx : ""; + if (dir == NULL && (dir = getenv ("TMPDIR")) == NULL) + dir = P_tmpdir; + + /* two 8 digit numbers + . / */ + length = strlen (dir) + strlen (prefix) + (4 * sizeof (int)) + 2 + 1; + + filename = _malloc_r (p, length); + if (filename) + { + if (! worker (p, filename, dir, prefix, + _getpid_r (p) ^ (int) (_POINTER_INT) p, &p->_inc)) + return NULL; + } + return filename; +} + +#ifndef _REENT_ONLY + +char * +_DEFUN (tempnam, (dir, pfx), + _CONST char *dir _AND + _CONST char *pfx) +{ + return _tempnam_r (_REENT, dir, pfx); +} + +char * +_DEFUN (tmpnam, (s), + char *s) +{ + return _tmpnam_r (_REENT, s); +} + +#endif diff --git a/newlib/libc/stdio/ungetc.c b/newlib/libc/stdio/ungetc.c new file mode 100644 index 000000000..418717e68 --- /dev/null +++ b/newlib/libc/stdio/ungetc.c @@ -0,0 +1,145 @@ +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "local.h" + +/* + * Expand the ungetc buffer `in place'. That is, adjust fp->_p when + * the buffer moves, so that it points the same distance from the end, + * and move the bytes in the buffer around as necessary so that they + * are all at the end (stack-style). + */ + +/*static*/ +int +__submore (fp) + register FILE *fp; +{ + register int i; + register unsigned char *p; + + if (fp->_ub._base == fp->_ubuf) + { + /* + * Get a new buffer (rather than expanding the old one). + */ + if ((p = (unsigned char *) _malloc_r (fp->_data, (size_t) BUFSIZ)) == NULL) + return EOF; + fp->_ub._base = p; + fp->_ub._size = BUFSIZ; + p += BUFSIZ - sizeof (fp->_ubuf); + for (i = sizeof (fp->_ubuf); --i >= 0;) + p[i] = fp->_ubuf[i]; + fp->_p = p; + return 0; + } + i = fp->_ub._size; + p = (unsigned char *) _realloc_r (fp->_data, (_PTR) (fp->_ub._base), i << 1); + if (p == NULL) + return EOF; + (void) memcpy ((void *) (p + i), (void *) p, (size_t) i); + fp->_p = p + i; + fp->_ub._base = p; + fp->_ub._size = i << 1; + return 0; +} + +int +ungetc (c, fp) + int c; + register FILE *fp; +{ + if (c == EOF) + return (EOF); + + /* Ensure stdio has been initialized. + ??? Might be able to remove this as some other stdio routine should + have already been called to get the char we are un-getting. */ + + CHECK_INIT (fp); + + /* After ungetc, we won't be at eof anymore */ + fp->_flags &= ~__SEOF; + + if ((fp->_flags & __SRD) == 0) + { + /* + * Not already reading: no good unless reading-and-writing. + * Otherwise, flush any current write stuff. + */ + if ((fp->_flags & __SRW) == 0) + return EOF; + if (fp->_flags & __SWR) + { + if (fflush (fp)) + return EOF; + fp->_flags &= ~__SWR; + fp->_w = 0; + fp->_lbfsize = 0; + } + fp->_flags |= __SRD; + } + c = (unsigned char) c; + + /* + * If we are in the middle of ungetc'ing, just continue. + * This may require expanding the current ungetc buffer. + */ + + if (HASUB (fp)) + { + if (fp->_r >= fp->_ub._size && __submore (fp)) + return EOF; + *--fp->_p = c; + fp->_r++; + return c; + } + + /* + * If we can handle this by simply backing up, do so, + * but never replace the original character. + * (This makes sscanf() work when scanning `const' data.) + */ + + if (fp->_bf._base != NULL && fp->_p > fp->_bf._base && fp->_p[-1] == c) + { + fp->_p--; + fp->_r++; + return c; + } + + /* + * Create an ungetc buffer. + * Initially, we will use the `reserve' buffer. + */ + + fp->_ur = fp->_r; + fp->_up = fp->_p; + fp->_ub._base = fp->_ubuf; + fp->_ub._size = sizeof (fp->_ubuf); + fp->_ubuf[sizeof (fp->_ubuf) - 1] = c; + fp->_p = &fp->_ubuf[sizeof (fp->_ubuf) - 1]; + fp->_r = 1; + return c; +} diff --git a/newlib/libc/stdio/vfieeefp.h b/newlib/libc/stdio/vfieeefp.h new file mode 100644 index 000000000..6843d5f47 --- /dev/null +++ b/newlib/libc/stdio/vfieeefp.h @@ -0,0 +1,205 @@ +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991 by AT&T. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + +/* Please send bug reports to + David M. Gay + AT&T Bell Laboratories, Room 2C-463 + 600 Mountain Avenue + Murray Hill, NJ 07974-2070 + U.S.A. + dmg@research.att.com or research!dmg + */ + +/* This header file is a modification of mprec.h that only contains floating + point union code. */ + +#include <ieeefp.h> +#include <math.h> +#include <float.h> +#include <errno.h> +#include <sys/config.h> + +#ifdef __IEEE_LITTLE_ENDIAN +#define IEEE_8087 +#endif + +#ifdef __IEEE_BIG_ENDIAN +#define IEEE_MC68k +#endif + +#ifdef __Z8000__ +#define Just_16 +#endif + +#ifdef Unsigned_Shifts +#define Sign_Extend(a,b) if (b < 0) a |= (__uint32_t)0xffff0000; +#else +#define Sign_Extend(a,b) /*no-op*/ +#endif + +#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 +Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. +#endif + +/* If we are going to examine or modify specific bits in a double using + the word0 and/or word1 macros, then we must wrap the double inside + a union. This is necessary to avoid undefined behavior according to + the ANSI C spec. */ +union double_union +{ + double d; + __uint32_t i[2]; +}; + +#ifdef IEEE_8087 +#define word0(x) (x.i[1]) +#define word1(x) (x.i[0]) +#else +#define word0(x) (x.i[0]) +#define word1(x) (x.i[1]) +#endif + +/* #define P DBL_MANT_DIG */ +/* Ten_pmax = floor(P*log(2)/log(5)) */ +/* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */ +/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ +/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */ + +#if defined(IEEE_8087) + defined(IEEE_MC68k) +#if defined (_DOUBLE_IS_32BITS) +#define Exp_shift 23 +#define Exp_shift1 23 +#define Exp_msk1 ((__uint32_t)0x00800000L) +#define Exp_msk11 ((__uint32_t)0x00800000L) +#define Exp_mask ((__uint32_t)0x7f800000L) +#define P 24 +#define Bias 127 +#if 0 +#define IEEE_Arith /* it is, but the code doesn't handle IEEE singles yet */ +#endif +#define Emin (-126) +#define Exp_1 ((__uint32_t)0x3f800000L) +#define Exp_11 ((__uint32_t)0x3f800000L) +#define Ebits 8 +#define Frac_mask ((__uint32_t)0x007fffffL) +#define Frac_mask1 ((__uint32_t)0x007fffffL) +#define Ten_pmax 10 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Ten_pmax 10 +#define Bletch 2 +#define Bndry_mask ((__uint32_t)0x007fffffL) +#define Bndry_mask1 ((__uint32_t)0x007fffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 1 +#define Tiny0 0 +#define Tiny1 1 +#define Quick_max 5 +#define Int_max 6 +#define Infinite(x) (word0(x) == ((__uint32_t)0x7f800000L)) +#undef word0 +#undef word1 + +#define word0(x) (x.i[0]) +#define word1(x) 0 +#else + +#define Exp_shift 20 +#define Exp_shift1 20 +#define Exp_msk1 ((__uint32_t)0x100000L) +#define Exp_msk11 ((__uint32_t)0x100000L) +#define Exp_mask ((__uint32_t)0x7ff00000L) +#define P 53 +#define Bias 1023 +#define IEEE_Arith +#define Emin (-1022) +#define Exp_1 ((__uint32_t)0x3ff00000L) +#define Exp_11 ((__uint32_t)0x3ff00000L) +#define Ebits 11 +#define Frac_mask ((__uint32_t)0xfffffL) +#define Frac_mask1 ((__uint32_t)0xfffffL) +#define Ten_pmax 22 +#define Bletch 0x10 +#define Bndry_mask ((__uint32_t)0xfffffL) +#define Bndry_mask1 ((__uint32_t)0xfffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 1 +#define Tiny0 0 +#define Tiny1 1 +#define Quick_max 14 +#define Int_max 14 +#define Infinite(x) (word0(x) == ((__uint32_t)0x7ff00000L)) /* sufficient test for here */ +#endif + +#else +#undef Sudden_Underflow +#define Sudden_Underflow +#ifdef IBM +#define Exp_shift 24 +#define Exp_shift1 24 +#define Exp_msk1 ((__uint32_t)0x1000000L) +#define Exp_msk11 ((__uint32_t)0x1000000L) +#define Exp_mask ((__uint32_t)0x7f000000L) +#define P 14 +#define Bias 65 +#define Exp_1 ((__uint32_t)0x41000000L) +#define Exp_11 ((__uint32_t)0x41000000L) +#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */ +#define Frac_mask ((__uint32_t)0xffffffL) +#define Frac_mask1 ((__uint32_t)0xffffffL) +#define Bletch 4 +#define Ten_pmax 22 +#define Bndry_mask ((__uint32_t)0xefffffL) +#define Bndry_mask1 ((__uint32_t)0xffffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 4 +#define Tiny0 ((__uint32_t)0x100000L) +#define Tiny1 0 +#define Quick_max 14 +#define Int_max 15 +#else /* VAX */ +#define Exp_shift 23 +#define Exp_shift1 7 +#define Exp_msk1 0x80 +#define Exp_msk11 ((__uint32_t)0x800000L) +#define Exp_mask ((__uint32_t)0x7f80L) +#define P 56 +#define Bias 129 +#define Exp_1 ((__uint32_t)0x40800000L) +#define Exp_11 ((__uint32_t)0x4080L) +#define Ebits 8 +#define Frac_mask ((__uint32_t)0x7fffffL) +#define Frac_mask1 ((__uint32_t)0xffff007fL) +#define Ten_pmax 24 +#define Bletch 2 +#define Bndry_mask ((__uint32_t)0xffff007fL) +#define Bndry_mask1 ((__uint32_t)0xffff007fL) +#define LSB ((__uint32_t)0x10000L) +#define Sign_bit ((__uint32_t)0x8000L) +#define Log2P 1 +#define Tiny0 0x80 +#define Tiny1 0 +#define Quick_max 15 +#define Int_max 15 +#endif +#endif + + diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c new file mode 100644 index 000000000..8da76db99 --- /dev/null +++ b/newlib/libc/stdio/vfprintf.c @@ -0,0 +1,938 @@ +/* +FUNCTION +<<vprintf>>, <<vfprintf>>, <<vsprintf>>---format argument list + +INDEX + vprintf +INDEX + vfprintf +INDEX + vsprintf +INDEX + vsnprintf + +ANSI_SYNOPSIS + #include <stdio.h> + #include <stdarg.h> + int vprintf(const char *<[fmt]>, va_list <[list]>); + int vfprintf(FILE *<[fp]>, const char *<[fmt]>, va_list <[list]>); + int vsprintf(char *<[str]>, const char *<[fmt]>, va_list <[list]>); + int vsnprintf(char *<[str]>, size_t <[size]>, const char *<[fmt]>, va_list <[list]>); + + int _vprintf_r(void *<[reent]>, const char *<[fmt]>, + va_list <[list]>); + int _vfprintf_r(void *<[reent]>, FILE *<[fp]>, const char *<[fmt]>, + va_list <[list]>); + int _vsprintf_r(void *<[reent]>, char *<[str]>, const char *<[fmt]>, + va_list <[list]>); + int _vsnprintf_r(void *<[reent]>, char *<[str]>, size_t <[size]>, const char *<[fmt]>, + va_list <[list]>); + +TRAD_SYNOPSIS + #include <stdio.h> + #include <varargs.h> + int vprintf( <[fmt]>, <[list]>) + char *<[fmt]>; + va_list <[list]>; + + int vfprintf(<[fp]>, <[fmt]>, <[list]>) + FILE *<[fp]>; + char *<[fmt]>; + va_list <[list]>; + + int vsprintf(<[str]>, <[fmt]>, <[list]>) + char *<[str]>; + char *<[fmt]>; + va_list <[list]>; + + int vsnprintf(<[str]>, <[size]>, <[fmt]>, <[list]>) + char *<[str]>; + size_t <[size]>; + char *<[fmt]>; + va_list <[list]>; + + int _vprintf_r(<[reent]>, <[fmt]>, <[list]>) + char *<[reent]>; + char *<[fmt]>; + va_list <[list]>; + + int _vfprintf_r(<[reent]>, <[fp]>, <[fmt]>, <[list]>) + char *<[reent]>; + FILE *<[fp]>; + char *<[fmt]>; + va_list <[list]>; + + int _vsprintf_r(<[reent]>, <[str]>, <[fmt]>, <[list]>) + char *<[reent]>; + char *<[str]>; + char *<[fmt]>; + va_list <[list]>; + + int _vsnprintf_r(<[reent]>, <[str]>, <[size]>, <[fmt]>, <[list]>) + char *<[reent]>; + char *<[str]>; + size_t <[size]>; + char *<[fmt]>; + va_list <[list]>; + +DESCRIPTION +<<vprintf>>, <<vfprintf>>, <<vsprintf>> and <<vsnprintf>> are (respectively) +variants of <<printf>>, <<fprintf>>, <<sprintf>> and <<snprintf>>. They differ +only in allowing their caller to pass the variable argument list as a +<<va_list>> object (initialized by <<va_start>>) rather than directly +accepting a variable number of arguments. + +RETURNS +The return values are consistent with the corresponding functions: +<<vsprintf>> returns the number of bytes in the output string, +save that the concluding <<NULL>> is not counted. +<<vprintf>> and <<vfprintf>> return the number of characters transmitted. +If an error occurs, <<vprintf>> and <<vfprintf>> return <<EOF>>. No +error returns occur for <<vsprintf>>. + +PORTABILITY +ANSI C requires all three functions. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ +static char *rcsid = "$Id$"; +#endif /* LIBC_SCCS and not lint */ + +/* + * Actual printf innards. + * + * This code is large and complicated... + */ + +#ifdef INTEGER_ONLY +#define VFPRINTF vfiprintf +#define _VFPRINTF_R _vfiprintf_r +#else +#define VFPRINTF vfprintf +#define _VFPRINTF_R _vfprintf_r +#define FLOATING_POINT +#endif + +#define _NO_LONGLONG +#if defined WANT_PRINTF_LONG_LONG && defined __GNUC__ +# undef _NO_LONGLONG +#endif + +#include <_ansi.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <reent.h> + +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +#include "local.h" +#include "fvwrite.h" +#include "vfieeefp.h" + +/* + * Flush out all the vectors defined by the given uio, + * then reset it so that it can be reused. + */ +static int +__sprint(fp, uio) + FILE *fp; + register struct __suio *uio; +{ + register int err; + + if (uio->uio_resid == 0) { + uio->uio_iovcnt = 0; + return (0); + } + err = __sfvwrite(fp, uio); + uio->uio_resid = 0; + uio->uio_iovcnt = 0; + return (err); +} + +/* + * Helper function for `fprintf to unbuffered unix file': creates a + * temporary buffer. We only work on write-only files; this avoids + * worries about ungetc buffers and so forth. + */ +static int +__sbprintf(fp, fmt, ap) + register FILE *fp; + const char *fmt; + va_list ap; +{ + int ret; + FILE fake; + unsigned char buf[BUFSIZ]; + + /* copy the important variables */ + fake._data = fp->_data; + fake._flags = fp->_flags & ~__SNBF; + fake._file = fp->_file; + fake._cookie = fp->_cookie; + fake._write = fp->_write; + + /* set up the buffer */ + fake._bf._base = fake._p = buf; + fake._bf._size = fake._w = sizeof(buf); + fake._lbfsize = 0; /* not actually used, but Just In Case */ + + /* do the work, then copy any error status */ + ret = VFPRINTF(&fake, fmt, ap); + if (ret >= 0 && fflush(&fake)) + ret = EOF; + if (fake._flags & __SERR) + fp->_flags |= __SERR; + return (ret); +} + + +#ifdef FLOATING_POINT +#include <locale.h> +#include <math.h> +#include "floatio.h" + +#define BUF (MAXEXP+MAXFRACT+1) /* + decimal point */ +#define DEFPREC 6 + +static char *cvt _PARAMS((struct _reent *, double, int, int, char *, int *, int, int *)); +static int exponent _PARAMS((char *, int, int)); + +#else /* no FLOATING_POINT */ + +#define BUF 40 + +#endif /* FLOATING_POINT */ + + +/* + * Macros for converting digits to letters and vice versa + */ +#define to_digit(c) ((c) - '0') +#define is_digit(c) ((unsigned)to_digit(c) <= 9) +#define to_char(n) ((n) + '0') + +/* + * Flags used during conversion. + */ +#define ALT 0x001 /* alternate form */ +#define HEXPREFIX 0x002 /* add 0x or 0X prefix */ +#define LADJUST 0x004 /* left adjustment */ +#define LONGDBL 0x008 /* long double; unimplemented */ +#define LONGINT 0x010 /* long integer */ +#define QUADINT 0x020 /* quad integer */ +#define SHORTINT 0x040 /* short integer */ +#define ZEROPAD 0x080 /* zero (as opposed to blank) pad */ +#define FPT 0x100 /* Floating point number */ + +int +_DEFUN (VFPRINTF, (fp, fmt0, ap), + FILE * fp _AND + _CONST char *fmt0 _AND + va_list ap) +{ + CHECK_INIT (fp); + return _VFPRINTF_R (fp->_data, fp, fmt0, ap); +} + +int +_DEFUN (_VFPRINTF_R, (data, fp, fmt0, ap), + struct _reent *data _AND + FILE * fp _AND + _CONST char *fmt0 _AND + va_list ap) +{ + register char *fmt; /* format string */ + register int ch; /* character from fmt */ + register int n, m; /* handy integers (short term usage) */ + register char *cp; /* handy char pointer (short term usage) */ + register struct __siov *iovp;/* for PRINT macro */ + register int flags; /* flags as above */ + int ret; /* return value accumulator */ + int width; /* width from format (%8d), or 0 */ + int prec; /* precision from format (%.3d), or -1 */ + char sign; /* sign prefix (' ', '+', '-', or \0) */ + wchar_t wc; +#ifdef FLOATING_POINT + char *decimal_point = localeconv()->decimal_point; + char softsign; /* temporary negative sign for floats */ + double _double; /* double precision arguments %[eEfgG] */ + int expt; /* integer value of exponent */ + int expsize; /* character count for expstr */ + int ndig; /* actual number of digits returned by cvt */ + char expstr[7]; /* buffer for exponent string */ +#endif + +#ifndef _NO_LONGLONG +#define quad_t long long +#define u_quad_t unsigned long long +#endif + +#ifndef _NO_LONGLONG + u_quad_t _uquad; /* integer arguments %[diouxX] */ +#else + u_long _uquad; +#endif + enum { OCT, DEC, HEX } base;/* base for [diouxX] conversion */ + int dprec; /* a copy of prec if [diouxX], 0 otherwise */ + int realsz; /* field size expanded by dprec */ + int size; /* size of converted field or string */ + char *xdigs; /* digits for [xX] conversion */ +#define NIOV 8 + struct __suio uio; /* output information: summary */ + struct __siov iov[NIOV];/* ... and individual io vectors */ + char buf[BUF]; /* space for %c, %[diouxX], %[eEfgG] */ + char ox[2]; /* space for 0x hex-prefix */ + int state = 0; /* mbtowc calls from library must not change state */ + + /* + * Choose PADSIZE to trade efficiency vs. size. If larger printf + * fields occur frequently, increase PADSIZE and make the initialisers + * below longer. + */ +#define PADSIZE 16 /* pad chunk size */ + static _CONST char blanks[PADSIZE] = + {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}; + static _CONST char zeroes[PADSIZE] = + {'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'}; + + /* + * BEWARE, these `goto error' on error, and PAD uses `n'. + */ +#define PRINT(ptr, len) { \ + iovp->iov_base = (ptr); \ + iovp->iov_len = (len); \ + uio.uio_resid += (len); \ + iovp++; \ + if (++uio.uio_iovcnt >= NIOV) { \ + if (__sprint(fp, &uio)) \ + goto error; \ + iovp = iov; \ + } \ +} +#define PAD(howmany, with) { \ + if ((n = (howmany)) > 0) { \ + while (n > PADSIZE) { \ + PRINT(with, PADSIZE); \ + n -= PADSIZE; \ + } \ + PRINT(with, n); \ + } \ +} +#define FLUSH() { \ + if (uio.uio_resid && __sprint(fp, &uio)) \ + goto error; \ + uio.uio_iovcnt = 0; \ + iovp = iov; \ +} + + /* + * To extend shorts properly, we need both signed and unsigned + * argument extraction methods. + */ +#ifndef _NO_LONGLONG +#define SARG() \ + (flags&QUADINT ? va_arg(ap, quad_t) : \ + flags&LONGINT ? va_arg(ap, long) : \ + flags&SHORTINT ? (long)(short)va_arg(ap, int) : \ + (long)va_arg(ap, int)) +#define UARG() \ + (flags&QUADINT ? va_arg(ap, u_quad_t) : \ + flags&LONGINT ? va_arg(ap, u_long) : \ + flags&SHORTINT ? (u_long)(u_short)va_arg(ap, int) : \ + (u_long)va_arg(ap, u_int)) +#else +#define SARG() \ + (flags&LONGINT ? va_arg(ap, long) : \ + flags&SHORTINT ? (long)(short)va_arg(ap, int) : \ + (long)va_arg(ap, int)) +#define UARG() \ + (flags&LONGINT ? va_arg(ap, u_long) : \ + flags&SHORTINT ? (u_long)(u_short)va_arg(ap, int) : \ + (u_long)va_arg(ap, u_int)) +#endif + + /* sorry, fprintf(read_only_file, "") returns EOF, not 0 */ + if (cantwrite(fp)) + return (EOF); + + /* optimise fprintf(stderr) (and other unbuffered Unix files) */ + if ((fp->_flags & (__SNBF|__SWR|__SRW)) == (__SNBF|__SWR) && + fp->_file >= 0) + return (__sbprintf(fp, fmt0, ap)); + + fmt = (char *)fmt0; + uio.uio_iov = iovp = iov; + uio.uio_resid = 0; + uio.uio_iovcnt = 0; + ret = 0; + + /* + * Scan the format for conversions (`%' character). + */ + for (;;) { + cp = fmt; + while ((n = _mbtowc_r(_REENT, &wc, fmt, MB_CUR_MAX, &state)) > 0) { + fmt += n; + if (wc == '%') { + fmt--; + break; + } + } + if ((m = fmt - cp) != 0) { + PRINT(cp, m); + ret += m; + } + if (n <= 0) + goto done; + fmt++; /* skip over '%' */ + + flags = 0; + dprec = 0; + width = 0; + prec = -1; + sign = '\0'; + +rflag: ch = *fmt++; +reswitch: switch (ch) { + case ' ': + /* + * ``If the space and + flags both appear, the space + * flag will be ignored.'' + * -- ANSI X3J11 + */ + if (!sign) + sign = ' '; + goto rflag; + case '#': + flags |= ALT; + goto rflag; + case '*': + /* + * ``A negative field width argument is taken as a + * - flag followed by a positive field width.'' + * -- ANSI X3J11 + * They don't exclude field widths read from args. + */ + if ((width = va_arg(ap, int)) >= 0) + goto rflag; + width = -width; + /* FALLTHROUGH */ + case '-': + flags |= LADJUST; + goto rflag; + case '+': + sign = '+'; + goto rflag; + case '.': + if ((ch = *fmt++) == '*') { + n = va_arg(ap, int); + prec = n < 0 ? -1 : n; + goto rflag; + } + n = 0; + while (is_digit(ch)) { + n = 10 * n + to_digit(ch); + ch = *fmt++; + } + prec = n < 0 ? -1 : n; + goto reswitch; + case '0': + /* + * ``Note that 0 is taken as a flag, not as the + * beginning of a field width.'' + * -- ANSI X3J11 + */ + flags |= ZEROPAD; + goto rflag; + case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + n = 0; + do { + n = 10 * n + to_digit(ch); + ch = *fmt++; + } while (is_digit(ch)); + width = n; + goto reswitch; +#ifdef FLOATING_POINT + case 'L': + flags |= LONGDBL; + goto rflag; +#endif + case 'h': + flags |= SHORTINT; + goto rflag; + case 'l': + if (*fmt == 'l') { + fmt++; + flags |= QUADINT; + } else { + flags |= LONGINT; + } + goto rflag; + case 'q': + flags |= QUADINT; + goto rflag; + case 'c': + *(cp = buf) = va_arg(ap, int); + size = 1; + sign = '\0'; + break; + case 'D': + flags |= LONGINT; + /*FALLTHROUGH*/ + case 'd': + case 'i': + _uquad = SARG(); +#ifndef _NO_LONGLONG + if ((quad_t)_uquad < 0) +#else + if ((long) _uquad < 0) +#endif + { + + _uquad = -_uquad; + sign = '-'; + } + base = DEC; + goto number; +#ifdef FLOATING_POINT + case 'e': + case 'E': + case 'f': + case 'g': + case 'G': + if (prec == -1) { + prec = DEFPREC; + } else if ((ch == 'g' || ch == 'G') && prec == 0) { + prec = 1; + } + + if (flags & LONGDBL) { + _double = (double) va_arg(ap, long double); + } else { + _double = va_arg(ap, double); + } + + /* do this before tricky precision changes */ + if (isinf(_double)) { + if (_double < 0) + sign = '-'; + cp = "Inf"; + size = 3; + break; + } + if (isnan(_double)) { + cp = "NaN"; + size = 3; + break; + } + + flags |= FPT; + cp = cvt(data, _double, prec, flags, &softsign, + &expt, ch, &ndig); + if (ch == 'g' || ch == 'G') { + if (expt <= -4 || expt > prec) + ch = (ch == 'g') ? 'e' : 'E'; + else + ch = 'g'; + } + if (ch <= 'e') { /* 'e' or 'E' fmt */ + --expt; + expsize = exponent(expstr, expt, ch); + size = expsize + ndig; + if (ndig > 1 || flags & ALT) + ++size; + } else if (ch == 'f') { /* f fmt */ + if (expt > 0) { + size = expt; + if (prec || flags & ALT) + size += prec + 1; + } else /* "0.X" */ + size = prec + 2; + } else if (expt >= ndig) { /* fixed g fmt */ + size = expt; + if (flags & ALT) + ++size; + } else + size = ndig + (expt > 0 ? + 1 : 2 - expt); + + if (softsign) + sign = '-'; + break; +#endif /* FLOATING_POINT */ + case 'n': +#ifndef _NO_LONGLONG + if (flags & QUADINT) + *va_arg(ap, quad_t *) = ret; + else +#endif + if (flags & LONGINT) + *va_arg(ap, long *) = ret; + else if (flags & SHORTINT) + *va_arg(ap, short *) = ret; + else + *va_arg(ap, int *) = ret; + continue; /* no output */ + case 'O': + flags |= LONGINT; + /*FALLTHROUGH*/ + case 'o': + _uquad = UARG(); + base = OCT; + goto nosign; + case 'p': + /* + * ``The argument shall be a pointer to void. The + * value of the pointer is converted to a sequence + * of printable characters, in an implementation- + * defined manner.'' + * -- ANSI X3J11 + */ + /* NOSTRICT */ + _uquad = (u_long)(unsigned _POINTER_INT)va_arg(ap, void *); + base = HEX; + xdigs = "0123456789abcdef"; + flags |= HEXPREFIX; + ch = 'x'; + goto nosign; + case 's': + if ((cp = va_arg(ap, char *)) == NULL) + cp = "(null)"; + if (prec >= 0) { + /* + * can't use strlen; can only look for the + * NUL in the first `prec' characters, and + * strlen() will go further. + */ + char *p = memchr(cp, 0, prec); + + if (p != NULL) { + size = p - cp; + if (size > prec) + size = prec; + } else + size = prec; + } else + size = strlen(cp); + sign = '\0'; + break; + case 'U': + flags |= LONGINT; + /*FALLTHROUGH*/ + case 'u': + _uquad = UARG(); + base = DEC; + goto nosign; + case 'X': + xdigs = "0123456789ABCDEF"; + goto hex; + case 'x': + xdigs = "0123456789abcdef"; +hex: _uquad = UARG(); + base = HEX; + /* leading 0x/X only if non-zero */ + if (flags & ALT && _uquad != 0) + flags |= HEXPREFIX; + + /* unsigned conversions */ +nosign: sign = '\0'; + /* + * ``... diouXx conversions ... if a precision is + * specified, the 0 flag will be ignored.'' + * -- ANSI X3J11 + */ +number: if ((dprec = prec) >= 0) + flags &= ~ZEROPAD; + + /* + * ``The result of converting a zero value with an + * explicit precision of zero is no characters.'' + * -- ANSI X3J11 + */ + cp = buf + BUF; + if (_uquad != 0 || prec != 0) { + /* + * Unsigned mod is hard, and unsigned mod + * by a constant is easier than that by + * a variable; hence this switch. + */ + switch (base) { + case OCT: + do { + *--cp = to_char(_uquad & 7); + _uquad >>= 3; + } while (_uquad); + /* handle octal leading 0 */ + if (flags & ALT && *cp != '0') + *--cp = '0'; + break; + + case DEC: + /* many numbers are 1 digit */ + while (_uquad >= 10) { + *--cp = to_char(_uquad % 10); + _uquad /= 10; + } + *--cp = to_char(_uquad); + break; + + case HEX: + do { + *--cp = xdigs[_uquad & 15]; + _uquad >>= 4; + } while (_uquad); + break; + + default: + cp = "bug in vfprintf: bad base"; + size = strlen(cp); + goto skipsize; + } + } + size = buf + BUF - cp; + skipsize: + break; + default: /* "%?" prints ?, unless ? is NUL */ + if (ch == '\0') + goto done; + /* pretend it was %c with argument ch */ + cp = buf; + *cp = ch; + size = 1; + sign = '\0'; + break; + } + + /* + * All reasonable formats wind up here. At this point, `cp' + * points to a string which (if not flags&LADJUST) should be + * padded out to `width' places. If flags&ZEROPAD, it should + * first be prefixed by any sign or other prefix; otherwise, + * it should be blank padded before the prefix is emitted. + * After any left-hand padding and prefixing, emit zeroes + * required by a decimal [diouxX] precision, then print the + * string proper, then emit zeroes required by any leftover + * floating precision; finally, if LADJUST, pad with blanks. + * + * Compute actual size, so we know how much to pad. + * size excludes decimal prec; realsz includes it. + */ + realsz = dprec > size ? dprec : size; + if (sign) + realsz++; + else if (flags & HEXPREFIX) + realsz+= 2; + + /* right-adjusting blank padding */ + if ((flags & (LADJUST|ZEROPAD)) == 0) + PAD(width - realsz, blanks); + + /* prefix */ + if (sign) { + PRINT(&sign, 1); + } else if (flags & HEXPREFIX) { + ox[0] = '0'; + ox[1] = ch; + PRINT(ox, 2); + } + + /* right-adjusting zero padding */ + if ((flags & (LADJUST|ZEROPAD)) == ZEROPAD) + PAD(width - realsz, zeroes); + + /* leading zeroes from decimal precision */ + PAD(dprec - size, zeroes); + + /* the string or number proper */ +#ifdef FLOATING_POINT + if ((flags & FPT) == 0) { + PRINT(cp, size); + } else { /* glue together f_p fragments */ + if (ch >= 'f') { /* 'f' or 'g' */ + if (_double == 0) { + /* kludge for __dtoa irregularity */ + PRINT("0", 1); + if (expt < ndig || (flags & ALT) != 0) { + PRINT(decimal_point, 1); + PAD(ndig - 1, zeroes); + } + } else if (expt <= 0) { + PRINT("0", 1); + PRINT(decimal_point, 1); + PAD(-expt, zeroes); + PRINT(cp, ndig); + } else if (expt >= ndig) { + PRINT(cp, ndig); + PAD(expt - ndig, zeroes); + if (flags & ALT) + PRINT(".", 1); + } else { + PRINT(cp, expt); + cp += expt; + PRINT(".", 1); + PRINT(cp, ndig-expt); + } + } else { /* 'e' or 'E' */ + if (ndig > 1 || flags & ALT) { + ox[0] = *cp++; + ox[1] = '.'; + PRINT(ox, 2); + if (_double || flags & ALT == 0) { + PRINT(cp, ndig-1); + } else /* 0.[0..] */ + /* __dtoa irregularity */ + PAD(ndig - 1, zeroes); + } else /* XeYYY */ + PRINT(cp, 1); + PRINT(expstr, expsize); + } + } +#else + PRINT(cp, size); +#endif + /* left-adjusting padding (always blank) */ + if (flags & LADJUST) + PAD(width - realsz, blanks); + + /* finally, adjust ret */ + ret += width > realsz ? width : realsz; + + FLUSH(); /* copy out the I/O vectors */ + } +done: + FLUSH(); +error: + return (__sferror(fp) ? EOF : ret); + /* NOTREACHED */ +} + +#ifdef FLOATING_POINT + +extern char *_dtoa_r _PARAMS((struct _reent *, double, int, + int, int *, int *, char **)); + +static char * +cvt(data, value, ndigits, flags, sign, decpt, ch, length) + struct _reent *data; + double value; + int ndigits, flags, *decpt, ch, *length; + char *sign; +{ + int mode, dsgn; + char *digits, *bp, *rve; + union double_union tmp; + + if (ch == 'f') { + mode = 3; /* ndigits after the decimal point */ + } else { + /* To obtain ndigits after the decimal point for the 'e' + * and 'E' formats, round to ndigits + 1 significant + * figures. + */ + if (ch == 'e' || ch == 'E') { + ndigits++; + } + mode = 2; /* ndigits significant digits */ + } + + tmp.d = value; + if (word0(tmp) & Sign_bit) { /* this will check for < 0 and -0.0 */ + value = -value; + *sign = '-'; + } else + *sign = '\000'; + digits = _dtoa_r(data, value, mode, ndigits, decpt, &dsgn, &rve); + if ((ch != 'g' && ch != 'G') || flags & ALT) { /* Print trailing zeros */ + bp = digits + ndigits; + if (ch == 'f') { + if (*digits == '0' && value) + *decpt = -ndigits + 1; + bp += *decpt; + } + if (value == 0) /* kludge for __dtoa irregularity */ + rve = bp; + while (rve < bp) + *rve++ = '0'; + } + *length = rve - digits; + return (digits); +} + +static int +exponent(p0, exp, fmtch) + char *p0; + int exp, fmtch; +{ + register char *p, *t; + char expbuf[MAXEXP]; + + p = p0; + *p++ = fmtch; + if (exp < 0) { + exp = -exp; + *p++ = '-'; + } + else + *p++ = '+'; + t = expbuf + MAXEXP; + if (exp > 9) { + do { + *--t = to_char(exp % 10); + } while ((exp /= 10) > 9); + *--t = to_char(exp); + for (; t < expbuf + MAXEXP; *p++ = *t++); + } + else { + *p++ = '0'; + *p++ = to_char(exp); + } + return (p - p0); +} +#endif /* FLOATING_POINT */ diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c new file mode 100644 index 000000000..00fd98d76 --- /dev/null +++ b/newlib/libc/stdio/vfscanf.c @@ -0,0 +1,956 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <ctype.h> +#include <stdio.h> +#include <stdlib.h> +#include <limits.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif +#include "local.h" + +#ifndef NO_FLOATING_POINT +#define FLOATING_POINT +#endif + +#ifdef FLOATING_POINT +#include "floatio.h" +#define BUF (MAXEXP+MAXFRACT+3) /* 3 = sign + decimal point + NUL */ +/* An upper bound for how long a long prints in decimal. 4 / 13 approximates + log (2). Add one char for roundoff compensation and one for the sign. */ +#define MAX_LONG_LEN ((CHAR_BIT * sizeof (long) - 1) * 4 / 13 + 2) +#else +#define BUF 40 +#endif + +/* + * Flags used during conversion. + */ + +#define LONG 0x01 /* l: long or double */ +#define LONGDBL 0x02 /* L: long double; unimplemented */ +#define SHORT 0x04 /* h: short */ +#define SUPPRESS 0x08 /* suppress assignment */ +#define POINTER 0x10 /* weird %p pointer (`fake hex') */ +#define NOSKIP 0x20 /* do not skip blanks */ + +/* + * The following are used in numeric conversions only: + * SIGNOK, NDIGITS, DPTOK, and EXPOK are for floating point; + * SIGNOK, NDIGITS, PFXOK, and NZDIGITS are for integral. + */ + +#define SIGNOK 0x40 /* +/- is (still) legal */ +#define NDIGITS 0x80 /* no digits detected */ + +#define DPTOK 0x100 /* (float) decimal point is still legal */ +#define EXPOK 0x200 /* (float) exponent (e+3, etc) still legal */ + +#define PFXOK 0x100 /* 0x prefix is (still) legal */ +#define NZDIGITS 0x200 /* no zero digits detected */ + +/* + * Conversion types. + */ + +#define CT_CHAR 0 /* %c conversion */ +#define CT_CCL 1 /* %[...] conversion */ +#define CT_STRING 2 /* %s conversion */ +#define CT_INT 3 /* integer, i.e., strtol or strtoul */ +#define CT_FLOAT 4 /* floating, i.e., strtod */ + +#if 0 +#define u_char unsigned char +#endif +#define u_char char +#define u_long unsigned long + +/*static*/ u_char *__sccl (); + +/* + * vfscanf + */ + +#define BufferEmpty (fp->_r <= 0 && __srefill(fp)) + +int +__svfscanf (fp, fmt0, ap) + register FILE *fp; + char _CONST *fmt0; + va_list ap; +{ + register u_char *fmt = (u_char *) fmt0; + register int c; /* character from format, or conversion */ + register size_t width; /* field width, or 0 */ + register char *p; /* points into all kinds of strings */ + register int n; /* handy integer */ + register int flags; /* flags as defined above */ + register char *p0; /* saves original value of p when necessary */ + int nassigned; /* number of fields assigned */ + int nread; /* number of characters consumed from fp */ + int base = 0; /* base argument to strtol/strtoul */ + int nbytes = 1; /* number of bytes read from fmt string */ + wchar_t wc; /* wchar to use to read format string */ + + u_long (*ccfn) () = 0; /* conversion function (strtol/strtoul) */ + char ccltab[256]; /* character class table for %[...] */ + char buf[BUF]; /* buffer for numeric conversions */ + char *lptr; /* literal pointer */ + int state = 0; /* value to keep track of multibyte state */ + + short *sp; + int *ip; + float *flp; + _LONG_DOUBLE *ldp; + double *dp; + long *lp; + + /* `basefix' is used to avoid `if' tests in the integer scanner */ + static _CONST short basefix[17] = + {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; + + nassigned = 0; + nread = 0; + for (;;) + { +#ifndef MB_CAPABLE + wc = *fmt; +#else + nbytes = _mbtowc_r (_REENT, &wc, fmt, MB_CUR_MAX, &state); +#endif + fmt += nbytes; + if (wc == 0) + return nassigned; + if (nbytes == 1 && isspace (wc)) + { + for (;;) + { + if (BufferEmpty) + return nassigned; + if (!isspace (*fp->_p)) + break; + nread++, fp->_r--, fp->_p++; + } + continue; + } + if (wc != '%') + goto literal; + width = 0; + flags = 0; + + /* + * switch on the format. continue if done; break once format + * type is derived. + */ + + again: + c = *fmt++; + + switch (c) + { + case '%': + literal: + lptr = fmt - nbytes; + for (n = 0; n < nbytes; ++n) + { + if (BufferEmpty) + goto input_failure; + if (*fp->_p != *lptr) + goto match_failure; + fp->_r--, fp->_p++; + nread++; + ++lptr; + } + continue; + + case '*': + flags |= SUPPRESS; + goto again; + case 'l': + flags |= LONG; + goto again; + case 'L': + flags |= LONGDBL; + goto again; + case 'h': + flags |= SHORT; + goto again; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + width = width * 10 + c - '0'; + goto again; + + /* + * Conversions. Those marked `compat' are for + * 4.[123]BSD compatibility. + * + * (According to ANSI, E and X formats are supposed to + * the same as e and x. Sorry about that.) + */ + + case 'D': /* compat */ + flags |= LONG; + /* FALLTHROUGH */ + case 'd': + c = CT_INT; + ccfn = (u_long (*)())strtol; + base = 10; + break; + + case 'i': + c = CT_INT; + ccfn = (u_long (*)())strtol; + base = 0; + break; + + case 'O': /* compat */ + flags |= LONG; + /* FALLTHROUGH */ + case 'o': + c = CT_INT; + ccfn = strtoul; + base = 8; + break; + + case 'u': + c = CT_INT; + ccfn = strtoul; + base = 10; + break; + + case 'X': /* compat XXX */ + case 'x': + flags |= PFXOK; /* enable 0x prefixing */ + c = CT_INT; + ccfn = strtoul; + base = 16; + break; + +#ifdef FLOATING_POINT + case 'E': /* compat XXX */ + case 'G': /* compat XXX */ +/* ANSI says that E,G and X behave the same way as e,g,x */ + /* FALLTHROUGH */ + case 'e': + case 'f': + case 'g': + c = CT_FLOAT; + break; +#endif + + case 's': + c = CT_STRING; + break; + + case '[': + fmt = __sccl (ccltab, fmt); + flags |= NOSKIP; + c = CT_CCL; + break; + + case 'c': + flags |= NOSKIP; + c = CT_CHAR; + break; + + case 'p': /* pointer format is like hex */ + flags |= POINTER | PFXOK; + c = CT_INT; + ccfn = strtoul; + base = 16; + break; + + case 'n': + if (flags & SUPPRESS) /* ??? */ + continue; + if (flags & SHORT) + { + sp = va_arg (ap, short *); + *sp = nread; + } + else if (flags & LONG) + { + lp = va_arg (ap, long *); + *lp = nread; + } + else + { + ip = va_arg (ap, int *); + *ip = nread; + } + continue; + + /* + * Disgusting backwards compatibility hacks. XXX + */ + case '\0': /* compat */ + return EOF; + + default: /* compat */ + if (isupper (c)) + flags |= LONG; + c = CT_INT; + ccfn = (u_long (*)())strtol; + base = 10; + break; + } + + /* + * We have a conversion that requires input. + */ + if (BufferEmpty) + goto input_failure; + + /* + * Consume leading white space, except for formats that + * suppress this. + */ + if ((flags & NOSKIP) == 0) + { + while (isspace (*fp->_p)) + { + nread++; + if (--fp->_r > 0) + fp->_p++; + else +#ifndef CYGNUS_NEC + if (__srefill (fp)) +#endif + goto input_failure; + } + /* + * Note that there is at least one character in the + * buffer, so conversions that do not set NOSKIP ca + * no longer result in an input failure. + */ + } + + /* + * Do the conversion. + */ + switch (c) + { + + case CT_CHAR: + /* scan arbitrary characters (sets NOSKIP) */ + if (width == 0) + width = 1; + if (flags & SUPPRESS) + { + size_t sum = 0; + + for (;;) + { + if ((n = fp->_r) < width) + { + sum += n; + width -= n; + fp->_p += n; +#ifndef CYGNUS_NEC + if (__srefill (fp)) + { +#endif + if (sum == 0) + goto input_failure; + break; +#ifndef CYGNUS_NEC + } +#endif + } + else + { + sum += width; + fp->_r -= width; + fp->_p += width; + break; + } + } + nread += sum; + } + else + { +#ifdef CYGNUS_NEC + /* Kludge city for the moment */ + char *dest = va_arg (ap, char *); + int n = width; + if (fp->_r == 0) + goto input_failure; + + while (n && fp->_r) + { + *dest++ = *(fp->_p++); + n--; + fp->_r--; + nread++; + } +#else + size_t r = fread ((_PTR) va_arg (ap, char *), 1, width, fp); + + if (r == 0) + goto input_failure; + nread += r; +#endif + nassigned++; + } + break; + + case CT_CCL: + /* scan a (nonempty) character class (sets NOSKIP) */ + if (width == 0) + width = ~0; /* `infinity' */ + /* take only those things in the class */ + if (flags & SUPPRESS) + { + n = 0; + while (ccltab[*fp->_p]) + { + n++, fp->_r--, fp->_p++; + if (--width == 0) + break; + if (BufferEmpty) + { + if (n == 0) + goto input_failure; + break; + } + } + if (n == 0) + goto match_failure; + } + else + { + p0 = p = va_arg (ap, char *); + while (ccltab[*fp->_p]) + { + fp->_r--; + *p++ = *fp->_p++; + if (--width == 0) + break; + if (BufferEmpty) + { + if (p == p0) + goto input_failure; + break; + } + } + n = p - p0; + if (n == 0) + goto match_failure; + *p = 0; + nassigned++; + } + nread += n; + break; + + case CT_STRING: + /* like CCL, but zero-length string OK, & no NOSKIP */ + if (width == 0) + width = ~0; + if (flags & SUPPRESS) + { + n = 0; + while (!isspace (*fp->_p)) + { + n++, fp->_r--, fp->_p++; + if (--width == 0) + break; + if (BufferEmpty) + break; + } + nread += n; + } + else + { + p0 = p = va_arg (ap, char *); + while (!isspace (*fp->_p)) + { + fp->_r--; + *p++ = *fp->_p++; + if (--width == 0) + break; + if (BufferEmpty) + break; + } + *p = 0; + nread += p - p0; + nassigned++; + } + continue; + + case CT_INT: + /* scan an integer as if by strtol/strtoul */ +#ifdef hardway + if (width == 0 || width > sizeof (buf) - 1) + width = sizeof (buf) - 1; +#else + /* size_t is unsigned, hence this optimisation */ + if (--width > sizeof (buf) - 2) + width = sizeof (buf) - 2; + width++; +#endif + flags |= SIGNOK | NDIGITS | NZDIGITS; + for (p = buf; width; width--) + { + c = *fp->_p; + /* + * Switch on the character; `goto ok' if we + * accept it as a part of number. + */ + switch (c) + { + /* + * The digit 0 is always legal, but is special. + * For %i conversions, if no digits (zero or nonzero) + * have been scanned (only signs), we will have base==0. + * In that case, we should set it to 8 and enable 0x + * prefixing. Also, if we have not scanned zero digits + * before this, do not turn off prefixing (someone else + * will turn it off if we have scanned any nonzero digits). + */ + case '0': + if (base == 0) + { + base = 8; + flags |= PFXOK; + } + if (flags & NZDIGITS) + flags &= ~(SIGNOK | NZDIGITS | NDIGITS); + else + flags &= ~(SIGNOK | PFXOK | NDIGITS); + goto ok; + + /* 1 through 7 always legal */ + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + base = basefix[base]; + flags &= ~(SIGNOK | PFXOK | NDIGITS); + goto ok; + + /* digits 8 and 9 ok iff decimal or hex */ + case '8': + case '9': + base = basefix[base]; + if (base <= 8) + break; /* not legal here */ + flags &= ~(SIGNOK | PFXOK | NDIGITS); + goto ok; + + /* letters ok iff hex */ + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'F': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'f': + /* no need to fix base here */ + if (base <= 10) + break; /* not legal here */ + flags &= ~(SIGNOK | PFXOK | NDIGITS); + goto ok; + + /* sign ok only as first character */ + case '+': + case '-': + if (flags & SIGNOK) + { + flags &= ~SIGNOK; + goto ok; + } + break; + + /* x ok iff flag still set & 2nd char */ + case 'x': + case 'X': + if (flags & PFXOK && p == buf + 1) + { + base = 16;/* if %i */ + flags &= ~PFXOK; + goto ok; + } + break; + } + + /* + * If we got here, c is not a legal character + * for a number. Stop accumulating digits. + */ + break; + ok: + /* + * c is legal: store it and look at the next. + */ + *p++ = c; + if (--fp->_r > 0) + fp->_p++; + else +#ifndef CYGNUS_NEC + if (__srefill (fp)) +#endif + break; /* EOF */ + } + /* + * If we had only a sign, it is no good; push back the sign. + * If the number ends in `x', it was [sign] '0' 'x', so push back + * the x and treat it as [sign] '0'. + */ + if (flags & NDIGITS) + { + if (p > buf) + _CAST_VOID ungetc (*(u_char *)-- p, fp); + goto match_failure; + } + c = ((u_char *) p)[-1]; + if (c == 'x' || c == 'X') + { + --p; + /*(void)*/ ungetc (c, fp); + } + if ((flags & SUPPRESS) == 0) + { + u_long res; + + *p = 0; + res = (*ccfn) (buf, (char **) NULL, base); + if (flags & POINTER) + *(va_arg (ap, _PTR *)) = (_PTR) (unsigned _POINTER_INT) res; + else if (flags & SHORT) + { + sp = va_arg (ap, short *); + *sp = res; + } + else if (flags & LONG) + { + lp = va_arg (ap, long *); + *lp = res; + } + else + { + ip = va_arg (ap, int *); + *ip = res; + } + nassigned++; + } + nread += p - buf; + break; + +#ifdef FLOATING_POINT + case CT_FLOAT: + { + /* scan a floating point number as if by strtod */ + /* This code used to assume that the number of digits is reasonable. + However, ANSI / ISO C makes no such stipulation; we have to get + exact results even when there is an unreasonable amount of + leading zeroes. */ + long leading_zeroes, zeroes, exp_adjust; + char *exp_start; +#ifdef hardway + if (width == 0 || width > sizeof (buf) - 1) + width = sizeof (buf) - 1; +#else + /* size_t is unsigned, hence this optimisation */ + if (--width > sizeof (buf) - 2) + width = sizeof (buf) - 2; + width++; +#endif + flags |= SIGNOK | NDIGITS | DPTOK | EXPOK; + zeroes = 0; + exp_adjust = 0; + for (p = buf; width; ) + { + c = *fp->_p; + /* + * This code mimicks the integer conversion + * code, but is much simpler. + */ + switch (c) + { + + case '0': + if (flags & NDIGITS) + { + flags &= ~SIGNOK; + zeroes++; + goto fskip; + } + /* Fall through. */ + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + flags &= ~(SIGNOK | NDIGITS); + goto fok; + + case '+': + case '-': + if (flags & SIGNOK) + { + flags &= ~SIGNOK; + goto fok; + } + break; + case '.': + if (flags & DPTOK) + { + flags &= ~(SIGNOK | DPTOK); + leading_zeroes = zeroes; + goto fok; + } + break; + case 'e': + case 'E': + /* no exponent without some digits */ + if ((flags & (NDIGITS | EXPOK)) == EXPOK + || ((flags & EXPOK) && zeroes)) + { + if (! (flags & DPTOK)) + { + exp_adjust = zeroes - leading_zeroes; + exp_start = p; + } + flags = + (flags & ~(EXPOK | DPTOK)) | + SIGNOK | NDIGITS; + zeroes = 0; + goto fok; + } + break; + } + break; + fok: + *p++ = c; + width--; + fskip: + if (--fp->_r > 0) + fp->_p++; + else +#ifndef CYGNUS_NEC + if (__srefill (fp)) +#endif + break; /* EOF */ + } + if (zeroes) + flags &= ~NDIGITS; + /* + * If no digits, might be missing exponent digits + * (just give back the exponent) or might be missing + * regular digits, but had sign and/or decimal point. + */ + if (flags & NDIGITS) + { + if (flags & EXPOK) + { + /* no digits at all */ + while (p > buf) + ungetc (*(u_char *)-- p, fp); + goto match_failure; + } + /* just a bad exponent (e and maybe sign) */ + c = *(u_char *)-- p; + if (c != 'e' && c != 'E') + { + _CAST_VOID ungetc (c, fp); /* sign */ + c = *(u_char *)-- p; + } + _CAST_VOID ungetc (c, fp); + } + if ((flags & SUPPRESS) == 0) + { + double res; + long new_exp; + + *p = 0; + if ((flags & (DPTOK | EXPOK)) == EXPOK) + { + exp_adjust = zeroes - leading_zeroes; + new_exp = -exp_adjust; + exp_start = p; + } + else if (exp_adjust) + new_exp = atol (exp_start + 1) - exp_adjust; + if (exp_adjust) + { + + /* If there might not be enough space for the new exponent, + truncate some trailing digits to make room. */ + if (exp_start >= buf + sizeof (buf) - MAX_LONG_LEN) + exp_start = buf + sizeof (buf) - MAX_LONG_LEN - 1; + sprintf (exp_start, "e%d", new_exp); + } + res = atof (buf); + if (flags & LONG) + { + dp = va_arg (ap, double *); + *dp = res; + } + else if (flags & LONGDBL) + { + ldp = va_arg (ap, _LONG_DOUBLE *); + *ldp = res; + } + else + { + flp = va_arg (ap, float *); + *flp = res; + } + nassigned++; + } + nread += p - buf; + break; + } +#endif /* FLOATING_POINT */ + } + } +input_failure: + return nassigned ? nassigned : -1; +match_failure: + return nassigned; +} + +/* + * Fill in the given table from the scanset at the given format + * (just after `['). Return a pointer to the character past the + * closing `]'. The table has a 1 wherever characters should be + * considered part of the scanset. + */ + +/*static*/ +u_char * +__sccl (tab, fmt) + register char *tab; + register u_char *fmt; +{ + register int c, n, v; + + /* first `clear' the whole table */ + c = *fmt++; /* first char hat => negated scanset */ + if (c == '^') + { + v = 1; /* default => accept */ + c = *fmt++; /* get new first char */ + } + else + v = 0; /* default => reject */ + /* should probably use memset here */ + for (n = 0; n < 256; n++) + tab[n] = v; + if (c == 0) + return fmt - 1; /* format ended before closing ] */ + + /* + * Now set the entries corresponding to the actual scanset to the + * opposite of the above. + * + * The first character may be ']' (or '-') without being special; the + * last character may be '-'. + */ + + v = 1 - v; + for (;;) + { + tab[c] = v; /* take character c */ + doswitch: + n = *fmt++; /* and examine the next */ + switch (n) + { + + case 0: /* format ended too soon */ + return fmt - 1; + + case '-': + /* + * A scanset of the form [01+-] is defined as `the digit 0, the + * digit 1, the character +, the character -', but the effect of a + * scanset such as [a-zA-Z0-9] is implementation defined. The V7 + * Unix scanf treats `a-z' as `the letters a through z', but treats + * `a-a' as `the letter a, the character -, and the letter a'. + * + * For compatibility, the `-' is not considerd to define a range if + * the character following it is either a close bracket (required by + * ANSI) or is not numerically greater than the character we just + * stored in the table (c). + */ + n = *fmt; + if (n == ']' || n < c) + { + c = '-'; + break; /* resume the for(;;) */ + } + fmt++; + do + { /* fill in the range */ + tab[++c] = v; + } + while (c < n); +#if 1 /* XXX another disgusting compatibility hack */ + /* + * Alas, the V7 Unix scanf also treats formats such + * as [a-c-e] as `the letters a through e'. This too + * is permitted by the standard.... + */ + goto doswitch; +#else + c = *fmt++; + if (c == 0) + return fmt - 1; + if (c == ']') + return fmt; +#endif + + break; + + + case ']': /* end of scanset */ + return fmt; + + default: /* just another character */ + c = n; + break; + } + } + /* NOTREACHED */ +} diff --git a/newlib/libc/stdio/vprintf.c b/newlib/libc/stdio/vprintf.c new file mode 100644 index 000000000..c270141f0 --- /dev/null +++ b/newlib/libc/stdio/vprintf.c @@ -0,0 +1,35 @@ +/* doc in vfprintf.c */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <_ansi.h> +#include <stdio.h> + +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +int +vprintf (fmt, ap) + char _CONST *fmt; + va_list ap; +{ + return vfprintf (stdout, fmt, ap); +} diff --git a/newlib/libc/stdio/vsnprintf.c b/newlib/libc/stdio/vsnprintf.c new file mode 100644 index 000000000..18df5864a --- /dev/null +++ b/newlib/libc/stdio/vsnprintf.c @@ -0,0 +1,73 @@ +/* doc in vfprintf.c */ + +/* This code created by modifying vsprintf.c so copyright inherited. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <_ansi.h> +#include <reent.h> +#include <stdio.h> +#include <limits.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +int +vsnprintf (str, size, fmt, ap) + char *str; + size_t size; + char _CONST *fmt; + va_list ap; +{ + int ret; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = size; + f._data = _REENT; + ret = vfprintf (&f, fmt, ap); + *f._p = 0; + return ret; +} + +int +vsnprintf_r (ptr, str, size, fmt, ap) + struct _reent *ptr; + char *str; + size_t size; + char _CONST *fmt; + va_list ap; +{ + int ret; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = size; + f._data = ptr; + ret = vfprintf (&f, fmt, ap); + *f._p = 0; + return ret; +} diff --git a/newlib/libc/stdio/vsprintf.c b/newlib/libc/stdio/vsprintf.c new file mode 100644 index 000000000..416c184e8 --- /dev/null +++ b/newlib/libc/stdio/vsprintf.c @@ -0,0 +1,70 @@ +/* doc in vfprintf.c */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <_ansi.h> +#include <reent.h> +#include <stdio.h> +#include <limits.h> +#ifdef _HAVE_STDC +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +int +vsprintf (str, fmt, ap) + char *str; + char _CONST *fmt; + va_list ap; +{ + int ret; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = INT_MAX; + f._data = _REENT; + ret = vfprintf (&f, fmt, ap); + *f._p = 0; + return ret; +} + +int +vsprintf_r (ptr, str, fmt, ap) + struct _reent *ptr; + char *str; + char _CONST *fmt; + va_list ap; +{ + int ret; + FILE f; + + f._flags = __SWR | __SSTR; + f._bf._base = f._p = (unsigned char *) str; + f._bf._size = f._w = INT_MAX; + f._data = ptr; + ret = vfprintf (&f, fmt, ap); + *f._p = 0; + return ret; +} + diff --git a/newlib/libc/stdio/wbuf.c b/newlib/libc/stdio/wbuf.c new file mode 100644 index 000000000..110682971 --- /dev/null +++ b/newlib/libc/stdio/wbuf.c @@ -0,0 +1,81 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "%W% (Berkeley) %G%"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include "local.h" +#include "fvwrite.h" + +/* + * Write the given character into the (probably full) buffer for + * the given file. Flush the buffer out if it is or becomes full, + * or if c=='\n' and the file is line buffered. + */ + +int +__swbuf (c, fp) + register int c; + register FILE *fp; +{ + register int n; + + /* Ensure stdio has been initialized. */ + + CHECK_INIT (fp); + + /* + * In case we cannot write, or longjmp takes us out early, + * make sure _w is 0 (if fully- or un-buffered) or -_bf._size + * (if line buffered) so that we will get called again. + * If we did not do this, a sufficient number of putc() + * calls might wrap _w from negative to positive. + */ + + fp->_w = fp->_lbfsize; + if (cantwrite (fp)) + return EOF; + c = (unsigned char) c; + + /* + * If it is completely full, flush it out. Then, in any case, + * stuff c into the buffer. If this causes the buffer to fill + * completely, or if c is '\n' and the file is line buffered, + * flush it (perhaps a second time). The second flush will always + * happen on unbuffered streams, where _bf._size==1; fflush() + * guarantees that putc() will always call wbuf() by setting _w + * to 0, so we need not do anything else. + */ + + n = fp->_p - fp->_bf._base; + if (n >= fp->_bf._size) + { + if (fflush (fp)) + return EOF; + n = 0; + } + fp->_w--; + *fp->_p++ = c; + if (++n == fp->_bf._size || (fp->_flags & __SLBF && c == '\n')) + if (fflush (fp)) + return EOF; + return c; +} diff --git a/newlib/libc/stdio/wsetup.c b/newlib/libc/stdio/wsetup.c new file mode 100644 index 000000000..23b032efe --- /dev/null +++ b/newlib/libc/stdio/wsetup.c @@ -0,0 +1,79 @@ +/* No user fns here. Pesch 15apr92. */ + +/* + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by the University of California, Berkeley. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdio.h> +#include <stdlib.h> +#include "local.h" + +/* + * Various output routines call wsetup to be sure it is safe to write, + * because either _flags does not include __SWR, or _buf is NULL. + * _wsetup returns 0 if OK to write, nonzero otherwise. + */ + +int +_DEFUN (__swsetup, (fp), + register FILE * fp) +{ + /* Make sure stdio is set up. */ + + CHECK_INIT (fp); + + /* + * If we are not writing, we had better be reading and writing. + */ + + if ((fp->_flags & __SWR) == 0) + { + if ((fp->_flags & __SRW) == 0) + return EOF; + if (fp->_flags & __SRD) + { + /* clobber any ungetc data */ + if (HASUB (fp)) + FREEUB (fp); + fp->_flags &= ~(__SRD | __SEOF); + fp->_r = 0; + fp->_p = fp->_bf._base; + } + fp->_flags |= __SWR; + } + + /* + * Make a buffer if necessary, then set _w. + */ + /* NOT NEEDED FOR CYGNUS SPRINTF ONLY jpg */ + if (fp->_bf._base == NULL) + __smakebuf (fp); + + if (fp->_flags & __SLBF) + { + /* + * It is line buffered, so make _lbfsize be -_bufsize + * for the putc() macro. We will change _lbfsize back + * to 0 whenever we turn off __SWR. + */ + fp->_w = 0; + fp->_lbfsize = -fp->_bf._size; + } + else + fp->_w = fp->_flags & __SNBF ? 0 : fp->_bf._size; + + return 0; +} diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am new file mode 100644 index 000000000..f33550fc7 --- /dev/null +++ b/newlib/libc/stdlib/Makefile.am @@ -0,0 +1,166 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + __adjust.c \ + __exp10.c \ + __ten_mu.c \ + abort.c \ + abs.c \ + assert.c \ + atexit.c \ + atof.c \ + atoff.c \ + atoi.c \ + atol.c \ + bsearch.c \ + calloc.c \ + div.c \ + dtoa.c \ + dtoastub.c \ + ecvtbuf.c \ + efgcvt.c \ + environ.c \ + envlock.c \ + eprintf.c \ + exit.c \ + getenv.c \ + getenv_r.c \ + getopt.c \ + labs.c \ + ldiv.c \ + malign.c \ + malloc.c \ + mblen.c \ + mblen_r.c \ + mbstowcs.c \ + mbstowcs_r.c \ + mbtowc.c \ + mbtowc_r.c \ + mlock.c \ + mprec.c \ + msize.c \ + mstats.c \ + mtrim.c \ + putenv.c \ + putenv_r.c \ + qsort.c \ + rand.c \ + rand_r.c \ + realloc.c \ + setenv.c \ + setenv_r.c \ + strdup.c \ + strdup_r.c \ + strtod.c \ + strtol.c \ + strtoul.c \ + system.c \ + valloc.c \ + wcstombs.c \ + wcstombs_r.c \ + wctomb.c \ + wctomb_r.c + +lib_a_LIBADD = mallocr.o freer.o reallocr.o callocr.o cfreer.o malignr.o \ + vallocr.o pvallocr.o mallinfor.o mallstatsr.o msizer.o malloptr.o + +MALLOC_COMPILE = $(COMPILE) -DINTERNAL_NEWLIB + +mallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC -c $(srcdir)/mallocr.c -o $@ + +freer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_FREE -c $(srcdir)/mallocr.c -o $@ + +reallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_REALLOC -c $(srcdir)/mallocr.c -o $@ + +callocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_CALLOC -c $(srcdir)/mallocr.c -o $@ + +cfreer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_CFREE -c $(srcdir)/mallocr.c -o $@ + +malignr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MEMALIGN -c $(srcdir)/mallocr.c -o $@ + +vallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_VALLOC -c $(srcdir)/mallocr.c -o $@ + +pvallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_PVALLOC -c $(srcdir)/mallocr.c -o $@ + +mallinfor.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLINFO -c $(srcdir)/mallocr.c -o $@ + +mallstatsr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC_STATS -c $(srcdir)/mallocr.c -o $@ + +msizer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC_USABLE_SIZE -c $(srcdir)/mallocr.c -o $@ + +malloptr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOPT -c $(srcdir)/mallocr.c -o $@ + +CHEWOUT_FILES= \ + abort.def \ + abs.def \ + assert.def \ + atexit.def \ + atof.def \ + ecvtbuf.def \ + atoi.def \ + bsearch.def \ + calloc.def \ + div.def \ + efgcvt.def \ + envlock.def \ + exit.def \ + getenv.def \ + labs.def \ + ldiv.def \ + malloc.def \ + mallocr.def \ + mblen.def \ + mbstowcs.def \ + mbtowc.def \ + mlock.def \ + mstats.def \ + qsort.def \ + rand.def \ + strtod.def \ + strtol.def \ + strtoul.def \ + system.def \ + wcstombs.def \ + wctomb.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/stdlib.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref + +dtoa.o: dtoa.c mprec.h +ecvtbuf.o: ecvtbuf.c mprec.h +mbtowc_r.o: mbtowc_r.c mbctype.h + $(COMPILE) -c -fshort-enums $(srcdir)/mbtowc_r.c -o $@ + +mprec.o: mprec.c mprec.h +strtod.o: strtod.c mprec.h +wctomb_r.o: wctomb_r.c mbctype.h diff --git a/newlib/libc/stdlib/Makefile.in b/newlib/libc/stdlib/Makefile.in new file mode 100644 index 000000000..82664b3b6 --- /dev/null +++ b/newlib/libc/stdlib/Makefile.in @@ -0,0 +1,449 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + __adjust.c \ + __exp10.c \ + __ten_mu.c \ + abort.c \ + abs.c \ + assert.c \ + atexit.c \ + atof.c \ + atoff.c \ + atoi.c \ + atol.c \ + bsearch.c \ + calloc.c \ + div.c \ + dtoa.c \ + dtoastub.c \ + ecvtbuf.c \ + efgcvt.c \ + environ.c \ + envlock.c \ + eprintf.c \ + exit.c \ + getenv.c \ + getenv_r.c \ + getopt.c \ + labs.c \ + ldiv.c \ + malign.c \ + malloc.c \ + mblen.c \ + mblen_r.c \ + mbstowcs.c \ + mbstowcs_r.c \ + mbtowc.c \ + mbtowc_r.c \ + mlock.c \ + mprec.c \ + msize.c \ + mstats.c \ + mtrim.c \ + putenv.c \ + putenv_r.c \ + qsort.c \ + rand.c \ + rand_r.c \ + realloc.c \ + setenv.c \ + setenv_r.c \ + strdup.c \ + strdup_r.c \ + strtod.c \ + strtol.c \ + strtoul.c \ + system.c \ + valloc.c \ + wcstombs.c \ + wcstombs_r.c \ + wctomb.c \ + wctomb_r.c + + +lib_a_LIBADD = mallocr.o freer.o reallocr.o callocr.o cfreer.o malignr.o \ + vallocr.o pvallocr.o mallinfor.o mallstatsr.o msizer.o malloptr.o + + +MALLOC_COMPILE = $(COMPILE) -DINTERNAL_NEWLIB + +CHEWOUT_FILES = \ + abort.def \ + abs.def \ + assert.def \ + atexit.def \ + atof.def \ + ecvtbuf.def \ + atoi.def \ + bsearch.def \ + calloc.def \ + div.def \ + efgcvt.def \ + envlock.def \ + exit.def \ + getenv.def \ + labs.def \ + ldiv.def \ + malloc.def \ + mallocr.def \ + mblen.def \ + mbstowcs.def \ + mbtowc.def \ + mlock.def \ + mstats.def \ + qsort.def \ + rand.def \ + strtod.def \ + strtol.def \ + strtoul.def \ + system.def \ + wcstombs.def \ + wctomb.def + + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_DEPENDENCIES = mallocr.o freer.o reallocr.o callocr.o cfreer.o \ +malignr.o vallocr.o pvallocr.o mallinfor.o mallstatsr.o msizer.o \ +malloptr.o +lib_a_OBJECTS = __adjust.o __exp10.o __ten_mu.o abort.o abs.o assert.o \ +atexit.o atof.o atoff.o atoi.o atol.o bsearch.o calloc.o div.o dtoa.o \ +dtoastub.o ecvtbuf.o efgcvt.o environ.o envlock.o eprintf.o exit.o \ +getenv.o getenv_r.o getopt.o labs.o ldiv.o malign.o malloc.o mblen.o \ +mblen_r.o mbstowcs.o mbstowcs_r.o mbtowc.o mbtowc_r.o mlock.o mprec.o \ +msize.o mstats.o mtrim.o putenv.o putenv_r.o qsort.o rand.o rand_r.o \ +realloc.o setenv.o setenv_r.o strdup.o strdup_r.o strtod.o strtol.o \ +strtoul.o system.o valloc.o wcstombs.o wcstombs_r.o wctomb.o wctomb_r.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus stdlib/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = stdlib + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +mallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC -c $(srcdir)/mallocr.c -o $@ + +freer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_FREE -c $(srcdir)/mallocr.c -o $@ + +reallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_REALLOC -c $(srcdir)/mallocr.c -o $@ + +callocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_CALLOC -c $(srcdir)/mallocr.c -o $@ + +cfreer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_CFREE -c $(srcdir)/mallocr.c -o $@ + +malignr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MEMALIGN -c $(srcdir)/mallocr.c -o $@ + +vallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_VALLOC -c $(srcdir)/mallocr.c -o $@ + +pvallocr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_PVALLOC -c $(srcdir)/mallocr.c -o $@ + +mallinfor.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLINFO -c $(srcdir)/mallocr.c -o $@ + +mallstatsr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC_STATS -c $(srcdir)/mallocr.c -o $@ + +msizer.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOC_USABLE_SIZE -c $(srcdir)/mallocr.c -o $@ + +malloptr.o: mallocr.c + $(MALLOC_COMPILE) -DDEFINE_MALLOPT -c $(srcdir)/mallocr.c -o $@ + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/stdlib.tex >> $(TARGETDOC) + +dtoa.o: dtoa.c mprec.h +ecvtbuf.o: ecvtbuf.c mprec.h +mbtowc_r.o: mbtowc_r.c mbctype.h + $(COMPILE) -c -fshort-enums $(srcdir)/mbtowc_r.c -o $@ + +mprec.o: mprec.c mprec.h +strtod.o: strtod.c mprec.h +wctomb_r.o: wctomb_r.c mbctype.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/stdlib/__adjust.c b/newlib/libc/stdlib/__adjust.c new file mode 100644 index 000000000..d5c70758b --- /dev/null +++ b/newlib/libc/stdlib/__adjust.c @@ -0,0 +1,44 @@ +/* + * return (*acc) scaled by 10**dexp. + */ + +#include <_ansi.h> +#include <reent.h> +#include "std.h" + +#define abs(x) (((x) < 0) ? -(x) : (x)) + +double +_DEFUN (__adjust, (ptr, acc, dexp, sign), + struct _reent *ptr _AND + double *acc _AND + int dexp _AND + int sign) + /* *acc the 64 bit accumulator */ + /* dexp decimal exponent */ + /* sign sign flag */ +{ + double r; + + if (dexp > MAXE) + { + ptr->_errno = ERANGE; + return (sign) ? -HUGE_VAL : HUGE_VAL; + } + else if (dexp < MINE) + { + ptr->_errno = ERANGE; + return 0.0; + } + + r = *acc; + if (sign) + r = -r; + if (dexp == 0) + return r; + + if (dexp < 0) + return r / __exp10 (abs (dexp)); + else + return r * __exp10 (dexp); +} diff --git a/newlib/libc/stdlib/__exp10.c b/newlib/libc/stdlib/__exp10.c new file mode 100644 index 000000000..967362347 --- /dev/null +++ b/newlib/libc/stdlib/__exp10.c @@ -0,0 +1,29 @@ +/* + * compute 10**x by successive squaring. + */ + +#include <_ansi.h> + +double +_DEFUN (__exp10, (x), + unsigned x) +{ + static _CONST double powtab[] = + {1.0, + 10.0, + 100.0, + 1000.0, + 10000.0}; + + if (x < (sizeof (powtab) / sizeof (double))) + return powtab[x]; + else if (x & 1) + { + return 10.0 * __exp10 (x - 1); + } + else + { + double n = __exp10 (x / 2); + return n * n; + } +} diff --git a/newlib/libc/stdlib/__ten_mu.c b/newlib/libc/stdlib/__ten_mu.c new file mode 100644 index 000000000..439c226e1 --- /dev/null +++ b/newlib/libc/stdlib/__ten_mu.c @@ -0,0 +1,23 @@ +/* + * [atw] multiply 64 bit accumulator by 10 and add digit. + * The KA/CA way to do this should be to use + * a 64-bit integer internally and use "adjust" to + * convert it to float at the end of processing. + */ + +#include <_ansi.h> + +int +_DEFUN (__ten_mul, (acc, digit), + double *acc _AND + int digit) +{ + /* + * [atw] Crude, but effective (at least on a KB)... + */ + + *acc *= 10; + *acc += digit; + + return 0; /* no overflow */ +} diff --git a/newlib/libc/stdlib/abort.c b/newlib/libc/stdlib/abort.c new file mode 100644 index 000000000..b3d671ed6 --- /dev/null +++ b/newlib/libc/stdlib/abort.c @@ -0,0 +1,66 @@ +/* NetWare can not use this implementation of abort. It provides its + own version of abort in clib.nlm. If we can not use clib.nlm, then + we must write abort in sys/netware. */ + +#ifdef ABORT_PROVIDED + +int _dummy_abort = 1; + +#else + +/* +FUNCTION +<<abort>>---abnormal termination of a program + +INDEX + abort + +ANSI_SYNOPSIS + #include <stdlib.h> + void abort(void); + +TRAD_SYNOPSIS + #include <stdlib.h> + void abort(); + +DESCRIPTION +Use <<abort>> to signal that your program has detected a condition it +cannot deal with. Normally, <<abort>> ends your program's execution. + +Before terminating your program, <<abort>> raises the exception <<SIGABRT>> +(using `<<raise(SIGABRT)>>'). If you have used <<signal>> to register +an exception handler for this condition, that handler has the +opportunity to retain control, thereby avoiding program termination. + +In this implementation, <<abort>> does not perform any stream- or +file-related cleanup (the host environment may do so; if not, you can +arrange for your program to do its own cleanup with a <<SIGABRT>> +exception handler). + +RETURNS +<<abort>> does not return to its caller. + +PORTABILITY +ANSI C requires <<abort>>. + +Supporting OS subroutines required: <<getpid>>, <<kill>>. +*/ + +#include <stdlib.h> +#include <signal.h> + +_VOID +_DEFUN_VOID (abort) +{ +#ifdef ABORT_MESSAGE + write (2, "Abort called\n", sizeof ("Abort called\n")-1); +#endif + + while (1) + { + raise (SIGABRT); + _exit (1); + } +} + +#endif diff --git a/newlib/libc/stdlib/abs.c b/newlib/libc/stdlib/abs.c new file mode 100644 index 000000000..0308b5729 --- /dev/null +++ b/newlib/libc/stdlib/abs.c @@ -0,0 +1,43 @@ +/* +FUNCTION +<<abs>>---integer absolute value (magnitude) + +INDEX + abs + +ANSI_SYNOPSIS + #include <stdlib.h> + int abs(int <[i]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int abs(<[i]>) + int <[i]>; + +DESCRIPTION +<<abs>> returns +@tex +$|x|$, +@end tex +the absolute value of <[i]> (also called the magnitude +of <[i]>). That is, if <[i]> is negative, the result is the opposite +of <[i]>, but if <[i]> is nonnegative the result is <[i]>. + +The similar function <<labs>> uses and returns <<long>> rather than <<int>> values. + +RETURNS +The result is a nonnegative integer. + +PORTABILITY +<<abs>> is ANSI. + +No supporting OS subroutines are required. +*/ + +#include <stdlib.h> + +int +_DEFUN (abs, (i), int i) +{ + return (i < 0) ? -i : i; +} diff --git a/newlib/libc/stdlib/assert.c b/newlib/libc/stdlib/assert.c new file mode 100644 index 000000000..5b08bbaf4 --- /dev/null +++ b/newlib/libc/stdlib/assert.c @@ -0,0 +1,62 @@ +/* +FUNCTION +<<assert>>---Macro for Debugging Diagnostics + +INDEX + assert + +ANSI_SYNOPSIS + #include <assert.h> + void assert(int <[expression]>); + +TRAD_SYNOPSIS + #include <assert.h> + assert(<[expression]>) + int <[expression]>; + +DESCRIPTION + Use this macro to embed debuggging diagnostic statements in + your programs. The argument <[expression]> should be an + expression which evaluates to true (nonzero) when your program + is working as you intended. + + When <[expression]> evaluates to false (zero), <<assert>> + calls <<abort>>, after first printing a message showing what + failed and where: + +. Assertion failed: <[expression]>, file <[filename]>, line <[lineno]> + + The macro is defined to permit you to turn off all uses of + <<assert>> at compile time by defining <<NDEBUG>> as a + preprocessor variable. If you do this, the <<assert>> macro + expands to + +. (void(0)) + +RETURNS + <<assert>> does not return a value. + +PORTABILITY + The <<assert>> macro is required by ANSI, as is the behavior + when <<NDEBUG>> is defined. + +Supporting OS subroutines required (only if enabled): <<close>>, <<fstat>>, +<<getpid>>, <<isatty>>, <<kill>>, <<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <assert.h> +#include <stdlib.h> +#include <stdio.h> + +void +_DEFUN (__assert, (file, line, failedexpr), + const char *file _AND + int line _AND + const char *failedexpr) +{ + (void)fiprintf(stderr, + "assertion \"%s\" failed: file \"%s\", line %d\n", + failedexpr, file, line); + abort(); + /* NOTREACHED */ +} diff --git a/newlib/libc/stdlib/atexit.c b/newlib/libc/stdlib/atexit.c new file mode 100644 index 000000000..88cdd234c --- /dev/null +++ b/newlib/libc/stdlib/atexit.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * %sccs.include.redist.c% + */ + +/* +FUNCTION +<<atexit>>---request execution of functions at program exit + +INDEX + atexit + +ANSI_SYNOPSIS + #include <stdlib.h> + int atexit (void (*<[function]>)(void)); + +TRAD_SYNOPSIS + #include <stdlib.h> + int atexit ((<[function]>) + void (*<[function]>)(); + +DESCRIPTION +You can use <<atexit>> to enroll functions in a list of functions that +will be called when your program terminates normally. The argument is +a pointer to a user-defined function (which must not require arguments and +must not return a result). + +The functions are kept in a LIFO stack; that is, the last function +enrolled by <<atexit>> will be the first to execute when your program +exits. + +There is no built-in limit to the number of functions you can enroll +in this list; however, after every group of 32 functions is enrolled, +<<atexit>> will call <<malloc>> to get space for the next part of the +list. The initial list of 32 functions is statically allocated, so +you can always count on at least that many slots available. + +RETURNS +<<atexit>> returns <<0>> if it succeeds in enrolling your function, +<<-1>> if it fails (possible only if no space was available for +<<malloc>> to extend the list of functions). + +PORTABILITY +<<atexit>> is required by the ANSI standard, which also specifies that +implementations must support enrolling at least 32 functions. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <stddef.h> +#include <stdlib.h> +#include <reent.h> + +/* + * Register a function to be performed at exit. + */ + +int +_DEFUN (atexit, + (fn), + _VOID _EXFUN ((*fn), (_VOID))) +{ + register struct _atexit *p; + + if ((p = _REENT->_atexit) == NULL) + _REENT->_atexit = p = &_REENT->_atexit0; + if (p->_ind >= _ATEXIT_SIZE) + { + if ((p = (struct _atexit *) malloc (sizeof *p)) == NULL) + return -1; + p->_ind = 0; + p->_next = _REENT->_atexit; + _REENT->_atexit = p; + } + p->_fns[p->_ind++] = fn; + return 0; +} diff --git a/newlib/libc/stdlib/atexit.h b/newlib/libc/stdlib/atexit.h new file mode 100644 index 000000000..44a928126 --- /dev/null +++ b/newlib/libc/stdlib/atexit.h @@ -0,0 +1,13 @@ +/* + * %G% (UofMD) %D% + */ + +#define ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */ + +struct atexit { + struct atexit *next; /* next in list */ + int ind; /* next index in this table */ + void (*fns[ATEXIT_SIZE])(); /* the table itself */ +}; + +struct atexit *__atexit; /* points to head of LIFO stack */ diff --git a/newlib/libc/stdlib/atof.c b/newlib/libc/stdlib/atof.c new file mode 100644 index 000000000..cf4abdb71 --- /dev/null +++ b/newlib/libc/stdlib/atof.c @@ -0,0 +1,72 @@ +/* +FUNCTION + <<atof>>, <<atoff>>---string to double or float + +INDEX + atof +INDEX + atoff + +ANSI_SYNOPSIS + #include <stdlib.h> + double atof(const char *<[s]>); + float atoff(const char *<[s]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + double atof(<[s]>) + char *<[s]>; + + float atoff(<[s]>) + char *<[s]>; + +DESCRIPTION +<<atof>> converts the initial portion of a string to a <<double>>. +<<atoff>> converts the initial portion of a string to a <<float>>. + +The functions parse the character string <[s]>, +locating a substring which can be converted to a floating point +value. The substring must match the format: +. [+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] +The substring converted is the longest initial +fragment of <[s]> that has the expected format, beginning with +the first non-whitespace character. The substring +is empty if <<str>> is empty, consists entirely +of whitespace, or if the first non-whitespace character is +something other than <<+>>, <<->>, <<.>>, or a digit. + +<<atof(<[s]>)>> is implemented as <<strtod(<[s]>, NULL)>>. +<<atoff(<[s]>)>> is implemented as <<strtodf(<[s]>, NULL)>>. + +RETURNS +<<atof>> returns the converted substring value, if any, as a +<<double>>; or <<0.0>>, if no conversion could be performed. +If the correct value is out of the range of representable values, plus +or minus <<HUGE_VAL>> is returned, and <<ERANGE>> is stored in +<<errno>>. +If the correct value would cause underflow, <<0.0>> is returned +and <<ERANGE>> is stored in <<errno>>. + +<<atoff>> obeys the same rules as <<atof>>, except that it +returns a <<float>>. + +PORTABILITY +<<atof>> is ANSI C. <<atof>>, <<atoi>>, and <<atol>> are subsumed by <<strod>> +and <<strol>>, but are used extensively in existing code. These functions are +less reliable, but may be faster if the argument is verified to be in a valid +range. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + + +#include <stdlib.h> +#include <_ansi.h> + +double +_DEFUN (atof, (s), + _CONST char *s) +{ + return strtod (s, NULL); +} diff --git a/newlib/libc/stdlib/atoff.c b/newlib/libc/stdlib/atoff.c new file mode 100644 index 000000000..9c682c47a --- /dev/null +++ b/newlib/libc/stdlib/atoff.c @@ -0,0 +1,9 @@ +#include <stdlib.h> +#include <_ansi.h> + +float +_DEFUN (atoff, (s), + _CONST char *s) +{ + return strtodf (s, NULL); +} diff --git a/newlib/libc/stdlib/atoi.c b/newlib/libc/stdlib/atoi.c new file mode 100644 index 000000000..c7792a454 --- /dev/null +++ b/newlib/libc/stdlib/atoi.c @@ -0,0 +1,54 @@ +/* +FUNCTION + <<atoi>>, <<atol>>---string to integer + +INDEX + atoi +INDEX + atol + +ANSI_SYNOPSIS + #include <stdlib.h> + int atoi(const char *<[s]>); + long atol(const char *<[s]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int atoi(<[s]>) + char *<[s]>; + + long atol(<[s]>) + char *<[s]>; + + +DESCRIPTION + <<atoi>> converts the initial portion of a string to an <<int>>. + <<atol>> converts the initial portion of a string to a <<long>>. + + <<atoi(s)>> is implemented as <<(int)strtol(s, NULL, 10).>> + <<atol(s)>> is implemented as <<strtol(s, NULL, 10).>> + +RETURNS + The functions return the converted value, if any. If no conversion was + made, <<0>> is returned. + +PORTABILITY +<<atoi>> is ANSI. + +No supporting OS subroutines are required. +*/ + +/* + * Andy Wilson, 2-Oct-89. + */ + +#include <stdlib.h> +#include <_ansi.h> + +int +_DEFUN (atoi, (s), + _CONST char *s) +{ + return (int) strtol (s, NULL, 10); +} + diff --git a/newlib/libc/stdlib/atol.c b/newlib/libc/stdlib/atol.c new file mode 100644 index 000000000..6b059a8d2 --- /dev/null +++ b/newlib/libc/stdlib/atol.c @@ -0,0 +1,12 @@ +/* + * Andy Wilson, 2-Oct-89. + */ + +#include <stdlib.h> +#include <_ansi.h> + +long +_DEFUN (atol, (s), _CONST char *s) +{ + return strtol (s, NULL, 10); +} diff --git a/newlib/libc/stdlib/bsearch.c b/newlib/libc/stdlib/bsearch.c new file mode 100644 index 000000000..b9539aa3b --- /dev/null +++ b/newlib/libc/stdlib/bsearch.c @@ -0,0 +1,100 @@ +/* + * bsearch.c + * Original Author: G. Haley + * Rewritten by: G. Noer + * + * Searches an array of nmemb members, the initial member of which is pointed + * to by base, for a member that matches the object pointed to by key. The + * contents of the array shall be in ascending order according to a comparison + * function pointed to by compar. The function shall return an integer less + * than, equal to or greater than zero if the first argument is considered to be + * respectively less than, equal to or greater than the second. Returns a + * pointer to the matching member of the array, or a null pointer if no match + * is found. + */ + +/* +FUNCTION +<<bsearch>>---binary search + +INDEX + bsearch + +ANSI_SYNOPSIS + #include <stdlib.h> + void *bsearch(const void *<[key]>, const void *<[base]>, + size_t <[nmemb]>, size_t <[size]>, + int (*<[compar]>)(const void *, const void *)); + +TRAD_SYNOPSIS + #include <stdlib.h> + char *bsearch(<[key]>, <[base]>, <[nmemb]>, <[size]>, <[compar]>) + char *<[key]>; + char *<[base]>; + size_t <[nmemb]>, <[size]>; + int (*<[compar]>)(); + +DESCRIPTION +<<bsearch>> searches an array beginning at <[base]> for any element +that matches <[key]>, using binary search. <[nmemb]> is the element +count of the array; <[size]> is the size of each element. + +The array must be sorted in ascending order with respect to the +comparison function <[compar]> (which you supply as the last argument of +<<bsearch>>). + +You must define the comparison function <<(*<[compar]>)>> to have two +arguments; its result must be negative if the first argument is +less than the second, zero if the two arguments match, and +positive if the first argument is greater than the second (where +``less than'' and ``greater than'' refer to whatever arbitrary +ordering is appropriate). + +RETURNS +Returns a pointer to an element of <[array]> that matches <[key]>. If +more than one matching element is available, the result may point to +any of them. + +PORTABILITY +<<bsearch>> is ANSI. + +No supporting OS subroutines are required. +*/ + +#include <stdlib.h> + +_PTR +_DEFUN (bsearch, (key, base, nmemb, size, compar), + _CONST _PTR key _AND + _CONST _PTR base _AND + size_t nmemb _AND + size_t size _AND + int _EXFUN ((*compar), (const _PTR, const _PTR))) +{ + _PTR current; + size_t lower = 0; + size_t upper = nmemb; + size_t index; + int result; + + if (nmemb == 0 || size == 0) + return NULL; + + while (lower < upper) + { + index = (lower + upper) / 2; + current = (_PTR) (((char *) base) + (index * size)); + + result = compar (key, current); + + if (result < 0) + upper = index; + else if (result > 0) + lower = index + 1; + else + return current; + } + + return NULL; +} + diff --git a/newlib/libc/stdlib/calloc.c b/newlib/libc/stdlib/calloc.c new file mode 100644 index 000000000..af9a4adc1 --- /dev/null +++ b/newlib/libc/stdlib/calloc.c @@ -0,0 +1,69 @@ +#ifdef MALLOC_PROVIDED +int _dummy_calloc = 1; +#else +/* +FUNCTION +<<calloc>>---allocate space for arrays + +INDEX + calloc + +INDEX + _calloc_r + +ANSI_SYNOPSIS + #include <stdlib.h> + void *calloc(size_t <[n]>, size_t <[s]>); + void *calloc_r(void *<[reent]>, size_t <n>, <size_t> <[s]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + char *calloc(<[n]>, <[s]>) + size_t <[n]>, <[s]>; + + char *_calloc_r(<[reent]>, <[n]>, <[s]>) + char *<[reent]>; + size_t <[n]>; + size_t <[s]>; + + + +DESCRIPTION +Use <<calloc>> to request a block of memory sufficient to hold an +array of <[n]> elements, each of which has size <[s]>. + +The memory allocated by <<calloc>> comes out of the same memory pool +used by <<malloc>>, but the memory block is initialized to all zero +bytes. (To avoid the overhead of initializing the space, use +<<malloc>> instead.) + +The alternate function <<_calloc_r>> is reentrant. +The extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +If successful, a pointer to the newly allocated space. + +If unsuccessful, <<NULL>>. + +PORTABILITY +<<calloc>> is ANSI. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <string.h> +#include <stdlib.h> + +#ifndef _REENT_ONLY + +_PTR +_DEFUN (calloc, (n, size), + size_t n _AND + size_t size) +{ + return _calloc_r (_REENT, n, size); +} + +#endif +#endif /* MALLOC_PROVIDED */ diff --git a/newlib/libc/stdlib/div.c b/newlib/libc/stdlib/div.c new file mode 100644 index 000000000..2c070dec7 --- /dev/null +++ b/newlib/libc/stdlib/div.c @@ -0,0 +1,132 @@ +/* +FUNCTION +<<div>>---divide two integers + +INDEX + div + +ANSI_SYNOPSIS + #include <stdlib.h> + div_t div(int <[n]>, int <[d]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + div_t div(<[n]>, <[d]>) + int <[n]>, <[d]>; + +DESCRIPTION +Divide +@tex +$n/d$, +@end tex +@ifinfo +<[n]>/<[d]>, +@end ifinfo +returning quotient and remainder as two integers in a structure <<div_t>>. + +RETURNS +The result is represented with the structure + +. typedef struct +. { +. int quot; +. int rem; +. } div_t; + +where the <<quot>> field represents the quotient, and <<rem>> the +remainder. For nonzero <[d]>, if `<<<[r]> = div(<[n]>,<[d]>);>>' then +<[n]> equals `<<<[r]>.rem + <[d]>*<[r]>.quot>>'. + +To divide <<long>> rather than <<int>> values, use the similar +function <<ldiv>>. + +PORTABILITY +<<div>> is ANSI. + +No supporting OS subroutines are required. +*/ + +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <_ansi.h> +#include <stdlib.h> /* div_t */ + +div_t +_DEFUN (div, (num, denom), + int num _AND + int denom) +{ + div_t r; + + r.quot = num / denom; + r.rem = num % denom; + /* + * The ANSI standard says that |r.quot| <= |n/d|, where + * n/d is to be computed in infinite precision. In other + * words, we should always truncate the quotient towards + * 0, never -infinity or +infinity. + * + * Machine division and remainer may work either way when + * one or both of n or d is negative. If only one is + * negative and r.quot has been truncated towards -inf, + * r.rem will have the same sign as denom and the opposite + * sign of num; if both are negative and r.quot has been + * truncated towards -inf, r.rem will be positive (will + * have the opposite sign of num). These are considered + * `wrong'. + * + * If both are num and denom are positive, r will always + * be positive. + * + * This all boils down to: + * if num >= 0, but r.rem < 0, we got the wrong answer. + * In that case, to get the right answer, add 1 to r.quot and + * subtract denom from r.rem. + * if num < 0, but r.rem > 0, we also have the wrong answer. + * In this case, to get the right answer, subtract 1 from r.quot and + * add denom to r.rem. + */ + if (num >= 0 && r.rem < 0) { + ++r.quot; + r.rem -= denom; + } + else if (num < 0 && r.rem > 0) { + --r.quot; + r.rem += denom; + } + return (r); +} diff --git a/newlib/libc/stdlib/dtoa.c b/newlib/libc/stdlib/dtoa.c new file mode 100644 index 000000000..3911f0e7b --- /dev/null +++ b/newlib/libc/stdlib/dtoa.c @@ -0,0 +1,854 @@ +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991 by AT&T. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + +/* Please send bug reports to + David M. Gay + AT&T Bell Laboratories, Room 2C-463 + 600 Mountain Avenue + Murray Hill, NJ 07974-2070 + U.S.A. + dmg@research.att.com or research!dmg + */ + +#include <_ansi.h> +#include <stdlib.h> +#include <reent.h> +#include <string.h> +#include "mprec.h" + +static int +_DEFUN (quorem, + (b, S), + _Bigint * b _AND _Bigint * S) +{ + int n; + __Long borrow, y; + __ULong carry, q, ys; + __ULong *bx, *bxe, *sx, *sxe; +#ifdef Pack_32 + __Long z; + __ULong si, zs; +#endif + + n = S->_wds; +#ifdef DEBUG + /*debug*/ if (b->_wds > n) + /*debug*/ Bug ("oversize b in quorem"); +#endif + if (b->_wds < n) + return 0; + sx = S->_x; + sxe = sx + --n; + bx = b->_x; + bxe = bx + n; + q = *bxe / (*sxe + 1); /* ensure q <= true quotient */ +#ifdef DEBUG + /*debug*/ if (q > 9) + /*debug*/ Bug ("oversized quotient in quorem"); +#endif + if (q) + { + borrow = 0; + carry = 0; + do + { +#ifdef Pack_32 + si = *sx++; + ys = (si & 0xffff) * q + carry; + zs = (si >> 16) * q + (ys >> 16); + carry = zs >> 16; + y = (*bx & 0xffff) - (ys & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + z = (*bx >> 16) - (zs & 0xffff) + borrow; + borrow = z >> 16; + Sign_Extend (borrow, z); + Storeinc (bx, z, y); +#else + ys = *sx++ * q + carry; + carry = ys >> 16; + y = *bx - (ys & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + *bx++ = y & 0xffff; +#endif + } + while (sx <= sxe); + if (!*bxe) + { + bx = b->_x; + while (--bxe > bx && !*bxe) + --n; + b->_wds = n; + } + } + if (cmp (b, S) >= 0) + { + q++; + borrow = 0; + carry = 0; + bx = b->_x; + sx = S->_x; + do + { +#ifdef Pack_32 + si = *sx++; + ys = (si & 0xffff) + carry; + zs = (si >> 16) + (ys >> 16); + carry = zs >> 16; + y = (*bx & 0xffff) - (ys & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + z = (*bx >> 16) - (zs & 0xffff) + borrow; + borrow = z >> 16; + Sign_Extend (borrow, z); + Storeinc (bx, z, y); +#else + ys = *sx++ + carry; + carry = ys >> 16; + y = *bx - (ys & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + *bx++ = y & 0xffff; +#endif + } + while (sx <= sxe); + bx = b->_x; + bxe = bx + n; + if (!*bxe) + { + while (--bxe > bx && !*bxe) + --n; + b->_wds = n; + } + } + return q; +} + +/* dtoa for IEEE arithmetic (dmg): convert double to ASCII string. + * + * Inspired by "How to Print Floating-Point Numbers Accurately" by + * Guy L. Steele, Jr. and Jon L. White [Proc. ACM SIGPLAN '90, pp. 92-101]. + * + * Modifications: + * 1. Rather than iterating, we use a simple numeric overestimate + * to determine k = floor(log10(d)). We scale relevant + * quantities using O(log2(k)) rather than O(k) multiplications. + * 2. For some modes > 2 (corresponding to ecvt and fcvt), we don't + * try to generate digits strictly left to right. Instead, we + * compute with fewer bits and propagate the carry if necessary + * when rounding the final digit up. This is often faster. + * 3. Under the assumption that input will be rounded nearest, + * mode 0 renders 1e23 as 1e23 rather than 9.999999999999999e22. + * That is, we allow equality in stopping tests when the + * round-nearest rule will give the same floating-point value + * as would satisfaction of the stopping test with strict + * inequality. + * 4. We remove common factors of powers of 2 from relevant + * quantities. + * 5. When converting floating-point integers less than 1e16, + * we use floating-point arithmetic rather than resorting + * to multiple-precision integers. + * 6. When asked to produce fewer than 15 digits, we first try + * to get by with floating-point arithmetic; we resort to + * multiple-precision integer arithmetic only if we cannot + * guarantee that the floating-point calculation has given + * the correctly rounded result. For k requested digits and + * "uniformly" distributed input, the probability is + * something like 10^(k-15) that we must resort to the long + * calculation. + */ + + +char * +_DEFUN (_dtoa_r, + (ptr, _d, mode, ndigits, decpt, sign, rve), + struct _reent *ptr _AND + double _d _AND + int mode _AND + int ndigits _AND + int *decpt _AND + int *sign _AND + char **rve) +{ + /* Arguments ndigits, decpt, sign are similar to those + of ecvt and fcvt; trailing zeros are suppressed from + the returned string. If not null, *rve is set to point + to the end of the return value. If d is +-Infinity or NaN, + then *decpt is set to 9999. + + mode: + 0 ==> shortest string that yields d when read in + and rounded to nearest. + 1 ==> like 0, but with Steele & White stopping rule; + e.g. with IEEE P754 arithmetic , mode 0 gives + 1e23 whereas mode 1 gives 9.999999999999999e22. + 2 ==> max(1,ndigits) significant digits. This gives a + return value similar to that of ecvt, except + that trailing zeros are suppressed. + 3 ==> through ndigits past the decimal point. This + gives a return value similar to that from fcvt, + except that trailing zeros are suppressed, and + ndigits can be negative. + 4-9 should give the same return values as 2-3, i.e., + 4 <= mode <= 9 ==> same return as mode + 2 + (mode & 1). These modes are mainly for + debugging; often they run slower but sometimes + faster than modes 2-3. + 4,5,8,9 ==> left-to-right digit generation. + 6-9 ==> don't try fast floating-point estimate + (if applicable). + + Values of mode other than 0-9 are treated as mode 0. + + Sufficient space is allocated to the return value + to hold the suppressed trailing zeros. + */ + + int bbits, b2, b5, be, dig, i, ieps, ilim, ilim0, ilim1, j, j1, k, k0, + k_check, leftright, m2, m5, s2, s5, spec_case, try_quick; + union double_union d, d2, eps; + __Long L; +#ifndef Sudden_Underflow + int denorm; + __ULong x; +#endif + _Bigint *b, *b1, *delta, *mlo, *mhi, *S; + double ds; + char *s, *s0; + + d.d = _d; + + if (ptr->_result) + { + ptr->_result->_k = ptr->_result_k; + ptr->_result->_maxwds = 1 << ptr->_result_k; + Bfree (ptr, ptr->_result); + ptr->_result = 0; + } + + if (word0 (d) & Sign_bit) + { + /* set sign for everything, including 0's and NaNs */ + *sign = 1; + word0 (d) &= ~Sign_bit; /* clear sign bit */ + } + else + *sign = 0; + +#if defined(IEEE_Arith) + defined(VAX) +#ifdef IEEE_Arith + if ((word0 (d) & Exp_mask) == Exp_mask) +#else + if (word0 (d) == 0x8000) +#endif + { + /* Infinity or NaN */ + *decpt = 9999; + s = +#ifdef IEEE_Arith + !word1 (d) && !(word0 (d) & 0xfffff) ? "Infinity" : +#endif + "NaN"; + if (rve) + *rve = +#ifdef IEEE_Arith + s[3] ? s + 8 : +#endif + s + 3; + return s; + } +#endif +#ifdef IBM + d.d += 0; /* normalize */ +#endif + if (!d.d) + { + *decpt = 1; + s = "0"; + if (rve) + *rve = s + 1; + return s; + } + + b = d2b (ptr, d.d, &be, &bbits); +#ifdef Sudden_Underflow + i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1)); +#else + if (i = (int) (word0 (d) >> Exp_shift1 & (Exp_mask >> Exp_shift1))) + { +#endif + d2.d = d.d; + word0 (d2) &= Frac_mask1; + word0 (d2) |= Exp_11; +#ifdef IBM + if (j = 11 - hi0bits (word0 (d2) & Frac_mask)) + d2.d /= 1 << j; +#endif + + /* log(x) ~=~ log(1.5) + (x-1.5)/1.5 + * log10(x) = log(x) / log(10) + * ~=~ log(1.5)/log(10) + (x-1.5)/(1.5*log(10)) + * log10(d) = (i-Bias)*log(2)/log(10) + log10(d2) + * + * This suggests computing an approximation k to log10(d) by + * + * k = (i - Bias)*0.301029995663981 + * + ( (d2-1.5)*0.289529654602168 + 0.176091259055681 ); + * + * We want k to be too large rather than too small. + * The error in the first-order Taylor series approximation + * is in our favor, so we just round up the constant enough + * to compensate for any error in the multiplication of + * (i - Bias) by 0.301029995663981; since |i - Bias| <= 1077, + * and 1077 * 0.30103 * 2^-52 ~=~ 7.2e-14, + * adding 1e-13 to the constant term more than suffices. + * Hence we adjust the constant term to 0.1760912590558. + * (We could get a more accurate k by invoking log10, + * but this is probably not worthwhile.) + */ + + i -= Bias; +#ifdef IBM + i <<= 2; + i += j; +#endif +#ifndef Sudden_Underflow + denorm = 0; + } + else + { + /* d is denormalized */ + + i = bbits + be + (Bias + (P - 1) - 1); + x = i > 32 ? word0 (d) << 64 - i | word1 (d) >> i - 32 + : word1 (d) << 32 - i; + d2.d = x; + word0 (d2) -= 31 * Exp_msk1; /* adjust exponent */ + i -= (Bias + (P - 1) - 1) + 1; + denorm = 1; + } +#endif + ds = (d2.d - 1.5) * 0.289529654602168 + 0.1760912590558 + i * 0.301029995663981; + k = (int) ds; + if (ds < 0. && ds != k) + k--; /* want k = floor(ds) */ + k_check = 1; + if (k >= 0 && k <= Ten_pmax) + { + if (d.d < tens[k]) + k--; + k_check = 0; + } + j = bbits - i - 1; + if (j >= 0) + { + b2 = 0; + s2 = j; + } + else + { + b2 = -j; + s2 = 0; + } + if (k >= 0) + { + b5 = 0; + s5 = k; + s2 += k; + } + else + { + b2 -= k; + b5 = -k; + s5 = 0; + } + if (mode < 0 || mode > 9) + mode = 0; + try_quick = 1; + if (mode > 5) + { + mode -= 4; + try_quick = 0; + } + leftright = 1; + switch (mode) + { + case 0: + case 1: + ilim = ilim1 = -1; + i = 18; + ndigits = 0; + break; + case 2: + leftright = 0; + /* no break */ + case 4: + if (ndigits <= 0) + ndigits = 1; + ilim = ilim1 = i = ndigits; + break; + case 3: + leftright = 0; + /* no break */ + case 5: + i = ndigits + k + 1; + ilim = i; + ilim1 = i - 1; + if (i <= 0) + i = 1; + } + j = sizeof (__ULong); + for (ptr->_result_k = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= i; + j <<= 1) + ptr->_result_k++; + ptr->_result = Balloc (ptr, ptr->_result_k); + s = s0 = (char *) ptr->_result; + + if (ilim >= 0 && ilim <= Quick_max && try_quick) + { + /* Try to get by with floating-point arithmetic. */ + + i = 0; + d2.d = d.d; + k0 = k; + ilim0 = ilim; + ieps = 2; /* conservative */ + if (k > 0) + { + ds = tens[k & 0xf]; + j = k >> 4; + if (j & Bletch) + { + /* prevent overflows */ + j &= Bletch - 1; + d.d /= bigtens[n_bigtens - 1]; + ieps++; + } + for (; j; j >>= 1, i++) + if (j & 1) + { + ieps++; + ds *= bigtens[i]; + } + d.d /= ds; + } + else if (j1 = -k) + { + d.d *= tens[j1 & 0xf]; + for (j = j1 >> 4; j; j >>= 1, i++) + if (j & 1) + { + ieps++; + d.d *= bigtens[i]; + } + } + if (k_check && d.d < 1. && ilim > 0) + { + if (ilim1 <= 0) + goto fast_failed; + ilim = ilim1; + k--; + d.d *= 10.; + ieps++; + } + eps.d = ieps * d.d + 7.; + word0 (eps) -= (P - 1) * Exp_msk1; + if (ilim == 0) + { + S = mhi = 0; + d.d -= 5.; + if (d.d > eps.d) + goto one_digit; + if (d.d < -eps.d) + goto no_digits; + goto fast_failed; + } +#ifndef No_leftright + if (leftright) + { + /* Use Steele & White method of only + * generating digits needed. + */ + eps.d = 0.5 / tens[ilim - 1] - eps.d; + for (i = 0;;) + { + L = d.d; + d.d -= L; + *s++ = '0' + (int) L; + if (d.d < eps.d) + goto ret1; + if (1. - d.d < eps.d) + goto bump_up; + if (++i >= ilim) + break; + eps.d *= 10.; + d.d *= 10.; + } + } + else + { +#endif + /* Generate ilim digits, then fix them up. */ + eps.d *= tens[ilim - 1]; + for (i = 1;; i++, d.d *= 10.) + { + L = d.d; + d.d -= L; + *s++ = '0' + (int) L; + if (i == ilim) + { + if (d.d > 0.5 + eps.d) + goto bump_up; + else if (d.d < 0.5 - eps.d) + { + while (*--s == '0'); + s++; + goto ret1; + } + break; + } + } +#ifndef No_leftright + } +#endif + fast_failed: + s = s0; + d.d = d2.d; + k = k0; + ilim = ilim0; + } + + /* Do we have a "small" integer? */ + + if (be >= 0 && k <= Int_max) + { + /* Yes. */ + ds = tens[k]; + if (ndigits < 0 && ilim <= 0) + { + S = mhi = 0; + if (ilim < 0 || d.d <= 5 * ds) + goto no_digits; + goto one_digit; + } + for (i = 1;; i++) + { + L = d.d / ds; + d.d -= L * ds; +#ifdef Check_FLT_ROUNDS + /* If FLT_ROUNDS == 2, L will usually be high by 1 */ + if (d.d < 0) + { + L--; + d.d += ds; + } +#endif + *s++ = '0' + (int) L; + if (i == ilim) + { + d.d += d.d; + if (d.d > ds || d.d == ds && L & 1) + { + bump_up: + while (*--s == '9') + if (s == s0) + { + k++; + *s = '0'; + break; + } + ++*s++; + } + break; + } + if (!(d.d *= 10.)) + break; + } + goto ret1; + } + + m2 = b2; + m5 = b5; + mhi = mlo = 0; + if (leftright) + { + if (mode < 2) + { + i = +#ifndef Sudden_Underflow + denorm ? be + (Bias + (P - 1) - 1 + 1) : +#endif +#ifdef IBM + 1 + 4 * P - 3 - bbits + ((bbits + be - 1) & 3); +#else + 1 + P - bbits; +#endif + } + else + { + j = ilim - 1; + if (m5 >= j) + m5 -= j; + else + { + s5 += j -= m5; + b5 += j; + m5 = 0; + } + if ((i = ilim) < 0) + { + m2 -= i; + i = 0; + } + } + b2 += i; + s2 += i; + mhi = i2b (ptr, 1); + } + if (m2 > 0 && s2 > 0) + { + i = m2 < s2 ? m2 : s2; + b2 -= i; + m2 -= i; + s2 -= i; + } + if (b5 > 0) + { + if (leftright) + { + if (m5 > 0) + { + mhi = pow5mult (ptr, mhi, m5); + b1 = mult (ptr, mhi, b); + Bfree (ptr, b); + b = b1; + } + if (j = b5 - m5) + b = pow5mult (ptr, b, j); + } + else + b = pow5mult (ptr, b, b5); + } + S = i2b (ptr, 1); + if (s5 > 0) + S = pow5mult (ptr, S, s5); + + /* Check for special case that d is a normalized power of 2. */ + + if (mode < 2) + { + if (!word1 (d) && !(word0 (d) & Bndry_mask) +#ifndef Sudden_Underflow + && word0 (d) & Exp_mask +#endif + ) + { + /* The special case */ + b2 += Log2P; + s2 += Log2P; + spec_case = 1; + } + else + spec_case = 0; + } + + /* Arrange for convenient computation of quotients: + * shift left if necessary so divisor has 4 leading 0 bits. + * + * Perhaps we should just compute leading 28 bits of S once + * and for all and pass them and a shift to quorem, so it + * can do shifts and ors to compute the numerator for q. + */ + +#ifdef Pack_32 + if (i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0x1f) + i = 32 - i; +#else + if (i = ((s5 ? 32 - hi0bits (S->_x[S->_wds - 1]) : 1) + s2) & 0xf) + i = 16 - i; +#endif + if (i > 4) + { + i -= 4; + b2 += i; + m2 += i; + s2 += i; + } + else if (i < 4) + { + i += 28; + b2 += i; + m2 += i; + s2 += i; + } + if (b2 > 0) + b = lshift (ptr, b, b2); + if (s2 > 0) + S = lshift (ptr, S, s2); + if (k_check) + { + if (cmp (b, S) < 0) + { + k--; + b = multadd (ptr, b, 10, 0); /* we botched the k estimate */ + if (leftright) + mhi = multadd (ptr, mhi, 10, 0); + ilim = ilim1; + } + } + if (ilim <= 0 && mode > 2) + { + if (ilim < 0 || cmp (b, S = multadd (ptr, S, 5, 0)) <= 0) + { + /* no digits, fcvt style */ + no_digits: + k = -1 - ndigits; + goto ret; + } + one_digit: + *s++ = '1'; + k++; + goto ret; + } + if (leftright) + { + if (m2 > 0) + mhi = lshift (ptr, mhi, m2); + + /* Compute mlo -- check for special case + * that d is a normalized power of 2. + */ + + mlo = mhi; + if (spec_case) + { + mhi = Balloc (ptr, mhi->_k); + Bcopy (mhi, mlo); + mhi = lshift (ptr, mhi, Log2P); + } + + for (i = 1;; i++) + { + dig = quorem (b, S) + '0'; + /* Do we yet have the shortest decimal string + * that will round to d? + */ + j = cmp (b, mlo); + delta = diff (ptr, S, mhi); + j1 = delta->_sign ? 1 : cmp (b, delta); + Bfree (ptr, delta); +#ifndef ROUND_BIASED + if (j1 == 0 && !mode && !(word1 (d) & 1)) + { + if (dig == '9') + goto round_9_up; + if (j > 0) + dig++; + *s++ = dig; + goto ret; + } +#endif + if (j < 0 || j == 0 && !mode +#ifndef ROUND_BIASED + && !(word1 (d) & 1) +#endif + ) + { + if (j1 > 0) + { + b = lshift (ptr, b, 1); + j1 = cmp (b, S); + if ((j1 > 0 || j1 == 0 && dig & 1) + && dig++ == '9') + goto round_9_up; + } + *s++ = dig; + goto ret; + } + if (j1 > 0) + { + if (dig == '9') + { /* possible if i == 1 */ + round_9_up: + *s++ = '9'; + goto roundoff; + } + *s++ = dig + 1; + goto ret; + } + *s++ = dig; + if (i == ilim) + break; + b = multadd (ptr, b, 10, 0); + if (mlo == mhi) + mlo = mhi = multadd (ptr, mhi, 10, 0); + else + { + mlo = multadd (ptr, mlo, 10, 0); + mhi = multadd (ptr, mhi, 10, 0); + } + } + } + else + for (i = 1;; i++) + { + *s++ = dig = quorem (b, S) + '0'; + if (i >= ilim) + break; + b = multadd (ptr, b, 10, 0); + } + + /* Round off last digit */ + + b = lshift (ptr, b, 1); + j = cmp (b, S); + if (j > 0 || j == 0 && dig & 1) + { + roundoff: + while (*--s == '9') + if (s == s0) + { + k++; + *s++ = '1'; + goto ret; + } + ++*s++; + } + else + { + while (*--s == '0'); + s++; + } +ret: + Bfree (ptr, S); + if (mhi) + { + if (mlo && mlo != mhi) + Bfree (ptr, mlo); + Bfree (ptr, mhi); + } +ret1: + Bfree (ptr, b); + *s = 0; + *decpt = k + 1; + if (rve) + *rve = s; + return s0; +} diff --git a/newlib/libc/stdlib/dtoastub.c b/newlib/libc/stdlib/dtoastub.c new file mode 100644 index 000000000..ff2b087f2 --- /dev/null +++ b/newlib/libc/stdlib/dtoastub.c @@ -0,0 +1,23 @@ +#include <_ansi.h> +#include <stdlib.h> +#include <reent.h> +#include <string.h> + +/* Nothing in newlib actually *calls* dtoa, they all call _dtoa_r, so this + is a safe way of providing it to the user. */ +#ifndef NO_REENT + +char * +_DEFUN (__dtoa, + (d, mode, ndigits, decpt, sign, rve), + double d _AND + int mode _AND + int ndigits _AND + int *decpt _AND + int *sign _AND + char **rve) +{ + return _dtoa_r (_REENT, d, mode, ndigits, decpt, sign, rve); +} + +#endif diff --git a/newlib/libc/stdlib/ecvtbuf.c b/newlib/libc/stdlib/ecvtbuf.c new file mode 100644 index 000000000..146a4febb --- /dev/null +++ b/newlib/libc/stdlib/ecvtbuf.c @@ -0,0 +1,470 @@ +/* +FUNCTION +<<ecvtbuf>>, <<fcvtbuf>>---double or float to string + +INDEX + ecvtbuf +INDEX + fcvtbuf + +ANSI_SYNOPSIS + #include <stdio.h> + + char *ecvtbuf(double <[val]>, int <[chars]>, int *<[decpt]>, + int *<[sgn]>, char *<[buf]>); + + char *fcvtbuf(double <[val]>, int <[decimals]>, int *<[decpt]>, + int *<[sgn]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <stdio.h> + + char *ecvtbuf(<[val]>, <[chars]>, <[decpt]>, <[sgn]>, <[buf]>); + double <[val]>; + int <[chars]>; + int *<[decpt]>; + int *<[sgn]>; + char *<[buf]>; + + char *fcvtbuf(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>, <[buf]>); + double <[val]>; + int <[decimals]>; + int *<[decpt]>; + int *<[sgn]>; + char *<[buf]>; + +DESCRIPTION + <<ecvtbuf>> and <<fcvtbuf>> produce (null-terminated) strings + of digits representating the <<double>> number <[val]>. + + The only difference between <<ecvtbuf>> and <<fcvtbuf>> is the + interpretation of the second argument (<[chars]> or + <[decimals]>). For <<ecvtbuf>>, the second argument <[chars]> + specifies the total number of characters to write (which is + also the number of significant digits in the formatted string, + since these two functions write only digits). For <<fcvtbuf>>, + the second argument <[decimals]> specifies the number of + characters to write after the decimal point; all digits for + the integer part of <[val]> are always included. + + Since <<ecvtbuf>> and <<fcvtbuf>> write only digits in the + output string, they record the location of the decimal point + in <<*<[decpt]>>>, and the sign of the number in <<*<[sgn]>>>. + After formatting a number, <<*<[decpt]>>> contains the number + of digits to the left of the decimal point. <<*<[sgn]>>> + contains <<0>> if the number is positive, and <<1>> if it is + negative. For both functions, you supply a pointer <[buf]> to + an area of memory to hold the converted string. + +RETURNS + Both functions return a pointer to <[buf]>, the string + containing a character representation of <[val]>. + +PORTABILITY + Neither function is ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <stdlib.h> +#include <string.h> +#include <reent.h> +#include "mprec.h" +#include "local.h" + +static void +_DEFUN (print_f, (ptr, buf, invalue, ndigit, type, dot, mode), + struct _reent *ptr _AND + char *buf _AND + double invalue _AND + int ndigit _AND + char type _AND + int dot _AND + int mode) +{ + int decpt; + int sign; + char *p, *start, *end; + + start = p = _dtoa_r (ptr, invalue, mode, ndigit, &decpt, &sign, &end); + + if (decpt == 9999) + { + strcpy (buf, p); + return; + } + while (*p && decpt > 0) + { + *buf++ = *p++; + decpt--; + } + /* Even if not in buffer */ + while (decpt > 0) + { + *buf++ = '0'; + decpt--; + } + + if (dot || *p) + { + if (p == start) + *buf++ = '0'; + *buf++ = '.'; + while (decpt < 0 && ndigit > 0) + { + *buf++ = '0'; + decpt++; + ndigit--; + } + + /* Print rest of stuff */ + while (*p && ndigit > 0) + { + *buf++ = *p++; + ndigit--; + } + /* And trailing zeros */ + while (ndigit > 0) + { + *buf++ = '0'; + ndigit--; + } + } + *buf++ = 0; +} + +/* Print number in e format with width chars after. + + TYPE is one of 'e' or 'E'. It may also be one of 'g' or 'G' indicating + that _gcvt is calling us and we should remove trailing zeroes. + + WIDTH is the number of digits of precision after the decimal point. */ + +static void +_DEFUN (print_e, (ptr, buf, invalue, width, type, dot), + struct _reent *ptr _AND + char *buf _AND + double invalue _AND + int width _AND + char type _AND + int dot) +{ + int dp; + int sign; + char *end; + char *p; + int decpt; + int top; + int ndigit = width; + + p = _dtoa_r (ptr, invalue, 2, width + 1, &decpt, &sign, &end); + + if (decpt == 9999) + { + strcpy (buf, p); + return; + } + + *buf++ = *p++; + if (dot || ndigit != 0) + *buf++ = '.'; + + while (*p && ndigit > 0) + { + *buf++ = *p++; + ndigit--; + } + + /* Add trailing zeroes to fill out to ndigits unless this is 'g' format. + Also, convert g/G to e/E. */ + + if (type == 'g') + type = 'e'; + else if (type == 'G') + type = 'E'; + else + { + while (ndigit > 0) + { + *buf++ = '0'; + ndigit--; + } + } + + /* Add the exponent. */ + + *buf++ = type; + decpt--; + if (decpt < 0) + { + *buf++ = '-'; + decpt = -decpt; + } + else + { + *buf++ = '+'; + } + if (decpt > 99) + { + int top = decpt / 100; + *buf++ = top + '0'; + decpt -= top * 100; + } + top = decpt / 10; + *buf++ = top + '0'; + decpt -= top * 10; + *buf++ = decpt + '0'; + + *buf++ = 0; +} + +#ifndef _REENT_ONLY + +/* Undocumented behaviour: when given NULL as a buffer, return a + pointer to static space in the rent structure. This is only to + support ecvt and fcvt, which aren't ANSI anyway. */ + +char * +_DEFUN (fcvtbuf, (invalue, ndigit, decpt, sign, fcvt_buf), + double invalue _AND + int ndigit _AND + int *decpt _AND + int *sign _AND + char *fcvt_buf) +{ + char *save; + char *p; + char *end; + int done = 0; + + if (fcvt_buf == NULL) + { + if (_REENT->_cvtlen <= ndigit + 35) + { + if ((fcvt_buf = (char *) _realloc_r (_REENT, _REENT->_cvtbuf, + ndigit + 36)) == NULL) + return NULL; + _REENT->_cvtlen = ndigit + 36; + _REENT->_cvtbuf = fcvt_buf; + } + + fcvt_buf = _REENT->_cvtbuf ; + } + + save = fcvt_buf; + + if (invalue < 1.0 && invalue > -1.0) + { + p = _dtoa_r (_REENT, invalue, 2, ndigit, decpt, sign, &end); + } + else + { + p = _dtoa_r (_REENT, invalue, 3, ndigit, decpt, sign, &end); + } + + /* Now copy */ + + done = -*decpt; + while (p < end) + { + *fcvt_buf++ = *p++; + done++; + } + /* And unsuppress the trailing zeroes */ + while (done < ndigit) + { + *fcvt_buf++ = '0'; + done++; + } + *fcvt_buf++ = 0; + return save; +} + +char * +_DEFUN (ecvtbuf, (invalue, ndigit, decpt, sign, fcvt_buf), + double invalue _AND + int ndigit _AND + int *decpt _AND + int *sign _AND + char *fcvt_buf) +{ + char *save; + char *p; + char *end; + int done = 0; + + if (fcvt_buf == NULL) + { + if (_REENT->_cvtlen <= ndigit) + { + if ((fcvt_buf = (char *) _realloc_r (_REENT, _REENT->_cvtbuf, + ndigit + 1)) == NULL) + return NULL; + _REENT->_cvtlen = ndigit + 1; + _REENT->_cvtbuf = fcvt_buf; + } + + fcvt_buf = _REENT->_cvtbuf ; + } + + save = fcvt_buf; + + p = _dtoa_r (_REENT, invalue, 2, ndigit, decpt, sign, &end); + + /* Now copy */ + + while (p < end) + { + *fcvt_buf++ = *p++; + done++; + } + /* And unsuppress the trailing zeroes */ + while (done < ndigit) + { + *fcvt_buf++ = '0'; + done++; + } + *fcvt_buf++ = 0; + return save; +} + +#endif + +char * +_DEFUN (_gcvt, (ptr, invalue, ndigit, buf, type, dot), + struct _reent *ptr _AND + double invalue _AND + int ndigit _AND + char *buf _AND + char type _AND + int dot) +{ + char *save = buf; + + if (invalue < 0) + { + invalue = -invalue; + } + + if (invalue == 0) + { + *buf++ = '0'; + *buf = '\0'; + } + else + /* Which one to print ? + ANSI says that anything with more that 4 zeros after the . or more + than precision digits before is printed in e with the qualification + that trailing zeroes are removed from the fraction portion. */ + + if (0.0001 >= invalue || invalue >= _mprec_log10 (ndigit)) + { + /* We subtract 1 from ndigit because in the 'e' format the precision is + the number of digits after the . but in 'g' format it is the number + of significant digits. + + We defer changing type to e/E so that print_e() can know it's us + calling and thus should remove trailing zeroes. */ + + print_e (ptr, buf, invalue, ndigit - 1, type, dot); + } + else + { + int decpt; + int sign; + char *end; + char *p; + + if (invalue < 1.0) + { + /* what we want is ndigits after the point */ + p = _dtoa_r (ptr, invalue, 3, ndigit, &decpt, &sign, &end); + } + else + { + p = _dtoa_r (ptr, invalue, 2, ndigit, &decpt, &sign, &end); + } + + if (decpt == 9999) + { + strcpy (buf, p); + return save; + } + while (*p && decpt > 0) + { + *buf++ = *p++; + decpt--; + ndigit--; + } + /* Even if not in buffer */ + while (decpt > 0 && ndigit > 0) + { + *buf++ = '0'; + decpt--; + ndigit--; + } + + if (dot || *p) + { + if (buf == save) + *buf++ = '0'; + *buf++ = '.'; + while (decpt < 0 && ndigit > 0) + { + *buf++ = '0'; + decpt++; + ndigit--; + } + + /* Print rest of stuff */ + while (*p && ndigit > 0) + { + *buf++ = *p++; + ndigit--; + } + /* And trailing zeros */ + if (dot) + { + while (ndigit > 0) + { + *buf++ = '0'; + ndigit--; + } + } + } + *buf++ = 0; + } + + return save; +} + +char * +_DEFUN (_dcvt, (ptr, buffer, invalue, precision, width, type, dot), + struct _reent *ptr _AND + char *buffer _AND + double invalue _AND + int precision _AND + int width _AND + char type _AND + int dot) +{ + switch (type) + { + case 'f': + case 'F': + print_f (ptr, buffer, invalue, precision, type, precision == 0 ? dot : 1, 3); + break; + case 'g': + case 'G': + if (precision == 0) + precision = 1; + _gcvt (ptr, invalue, precision, buffer, type, dot); + break; + case 'e': + case 'E': + print_e (ptr, buffer, invalue, precision, type, dot); + } + return buffer; +} diff --git a/newlib/libc/stdlib/efgcvt.c b/newlib/libc/stdlib/efgcvt.c new file mode 100644 index 000000000..556d22414 --- /dev/null +++ b/newlib/libc/stdlib/efgcvt.c @@ -0,0 +1,202 @@ +/* +FUNCTION +<<ecvt>>,<<ecvtf>>,<<fcvt>>,<<fcvtf>>---double or float to string + +INDEX + ecvt +INDEX + fcvt + +ANSI_SYNOPSIS + #include <stdlib.h> + + char *ecvt(double <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); + char *ecvtf(float <[val]>, int <[chars]>, int *<[decpt]>, int *<[sgn]>); + + char *fcvt(double <[val]>, int <[decimals]>, + int *<[decpt]>, int *<[sgn]>); + char *fcvtf(float <[val]>, int <[decimals]>, + int *<[decpt]>, int *<[sgn]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + + char *ecvt(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); + double <[val]>; + int <[chars]>; + int *<[decpt]>; + int *<[sgn]>; + char *ecvtf(<[val]>, <[chars]>, <[decpt]>, <[sgn]>); + float <[val]>; + int <[chars]>; + int *<[decpt]>; + int *<[sgn]>; + + char *fcvt(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); + double <[val]>; + int <[decimals]>; + int *<[decpt]>; + int *<[sgn]>; + char *fcvtf(<[val]>, <[decimals]>, <[decpt]>, <[sgn]>); + float <[val]>; + int <[decimals]>; + int *<[decpt]>; + int *<[sgn]>; + +DESCRIPTION +<<ecvt>> and <<fcvt>> produce (null-terminated) strings of digits +representating the <<double>> number <[val]>. +<<ecvtf>> and <<fcvtf>> produce the corresponding character +representations of <<float>> numbers. + +(The <<stdlib>> functions <<ecvtbuf>> and <<fcvtbuf>> are reentrant +versions of <<ecvt>> and <<fcvt>>.) + +The only difference between <<ecvt>> and <<fcvt>> is the +interpretation of the second argument (<[chars]> or <[decimals]>). +For <<ecvt>>, the second argument <[chars]> specifies the total number +of characters to write (which is also the number of significant digits +in the formatted string, since these two functions write only digits). +For <<fcvt>>, the second argument <[decimals]> specifies the number of +characters to write after the decimal point; all digits for the integer +part of <[val]> are always included. + +Since <<ecvt>> and <<fcvt>> write only digits in the output string, +they record the location of the decimal point in <<*<[decpt]>>>, and +the sign of the number in <<*<[sgn]>>>. After formatting a number, +<<*<[decpt]>>> contains the number of digits to the left of the +decimal point. <<*<[sgn]>>> contains <<0>> if the number is positive, +and <<1>> if it is negative. + +RETURNS +All four functions return a pointer to the new string containing a +character representation of <[val]>. + +PORTABILITY +None of these functions are ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. + +NEWPAGE +FUNCTION +<<gvcvt>>, <<gcvtf>>---format double or float as string + +INDEX + gcvt +INDEX + gcvtf + +ANSI_SYNOPSIS + #include <stdlib.h> + + char *gcvt(double <[val]>, int <[precision]>, char *<[buf]>); + char *gcvtf(float <[val]>, int <[precision]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + + char *gcvt(<[val]>, <[precision]>, <[buf]>); + double <[val]>; + int <[precision]>; + char *<[buf]>; + char *gcvtf(<[val]>, <[precision]>, <[buf]>); + float <[val]>; + int <[precision]>; + char *<[buf]>; + +DESCRIPTION +<<gcvt>> writes a fully formatted number as a null-terminated +string in the buffer <<*<[buf]>>>. <<gdvtf>> produces corresponding +character representations of <<float>> numbers. + +<<gcvt>> uses the same rules as the <<printf>> format +`<<%.<[precision]>g>>'---only negative values are signed (with +`<<->>'), and either exponential or ordinary decimal-fraction format +is chosen depending on the number of significant digits (specified by +<[precision]>). + +RETURNS +The result is a pointer to the formatted representation of <[val]> +(the same as the argument <[buf]>). + +PORTABILITY +Neither function is ANSI C. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +#include <_ansi.h> +#include <reent.h> +#include <stdio.h> +#include <stdlib.h> +#include "local.h" + +char * +_DEFUN (fcvt, (d, ndigit, decpt, sign), + double d _AND + int ndigit _AND + int *decpt _AND + int *sign) +{ + return fcvtbuf (d, ndigit, decpt, sign, NULL); +} + +char * +_DEFUN (fcvtf, (d, ndigit, decpt, sign), + float d _AND + int ndigit _AND + int *decpt _AND + int *sign) +{ + return fcvt ((float) d, ndigit, decpt, sign); +} + + +char * +_DEFUN (gcvtf, (d, ndigit, buf), + float d _AND + int ndigit _AND + char *buf) +{ + double asd = d; + return gcvt (asd, ndigit, buf); +} + + +char * +_DEFUN (ecvt, (d, ndigit, decpt, sign), + double d _AND + int ndigit _AND + int *decpt _AND + int *sign) +{ + return ecvtbuf (d, ndigit, decpt, sign, NULL); +} + +char * +_DEFUN (ecvtf, (d, ndigit, decpt, sign), + float d _AND + int ndigit _AND + int *decpt _AND + int *sign) +{ + return ecvt ((double) d, ndigit, decpt, sign); +} + + +char * +_DEFUN (gcvt, (d, ndigit, buf), + double d _AND + int ndigit _AND + char *buf) +{ + char *tbuf = buf; + if (d < 0) { + *buf = '-'; + buf++; + ndigit--; + } + return (_gcvt (_REENT, d, ndigit, buf, 'g', 0) ? tbuf : 0); +} diff --git a/newlib/libc/stdlib/environ.c b/newlib/libc/stdlib/environ.c new file mode 100644 index 000000000..4f6ff8b6a --- /dev/null +++ b/newlib/libc/stdlib/environ.c @@ -0,0 +1,23 @@ +/* Copyright (c) 1995, 1996 Cygnus Support. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to + * endorse or promote products derived from this software without + * specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +/* Provide a definition of `environ' if crt0.o doesn't. */ + +static char *initial_env[] = { 0 }; + +/* Posix says `environ' is a pointer to a null terminated list of pointers. + Hence `environ' itself is never NULL. */ +char **environ = &initial_env[0]; diff --git a/newlib/libc/stdlib/envlock.c b/newlib/libc/stdlib/envlock.c new file mode 100644 index 000000000..0ef6ec491 --- /dev/null +++ b/newlib/libc/stdlib/envlock.c @@ -0,0 +1,48 @@ +/* +FUNCTION +<<__env_lock>>, <<__env_unlock>>--lock environ variable + +INDEX + __env_lock +INDEX + __env_unlock + +ANSI_SYNOPSIS + #include "envlock.h" + void __env_lock (void *<[reent]>); + void __env_unlock (void *<[reent]>); + +TRAD_SYNOPSIS + void __env_lock(<[reent]>) + char *<[reent]>; + + void __env_unlock(<[reent]>) + char *<[reent]>; + +DESCRIPTION +The <<stenv>> family of routines call these functions when they need +to modify the environ variable. The version of these routines supplied +in the library does not do anything. If multiple threads of execution +can call <<setenv>>, or if <<setenv>> can be called reentrantly, then +you need to define your own versions of these functions in order to +safely lock the memory pool during a call. If you do not, the memory +pool may become corrupted. + +A call to <<setenv>> may call <<__env_lock>> recursively; that is, +the sequence of calls may go <<__env_lock>>, <<__env_lock>>, +<<__env_unlock>>, <<__env_unlock>>. Any implementation of these +routines must be careful to avoid causing a thread to wait for a lock +that it already holds. +*/ + +void +__env_lock (ptr) + struct _reent *ptr; +{ +} + +void +__env_unlock (ptr) + struct _reent *ptr; +{ +} diff --git a/newlib/libc/stdlib/envlock.h b/newlib/libc/stdlib/envlock.h new file mode 100644 index 000000000..df3a0ba58 --- /dev/null +++ b/newlib/libc/stdlib/envlock.h @@ -0,0 +1,12 @@ +/* envlock.h -- header file for env routines. */ + +#ifndef _INCLUDE_ENVLOCK_H_ +#define _INCLUDE_ENVLOCK_H_ + +#include <_ansi.h> +#include <sys/reent.h> + +#define ENV_LOCK __env_lock(reent_ptr) +#define ENV_UNLOCK __env_unlock(reent_ptr) + +#endif /* _INCLUDE_ENVLOCK_H_ */ diff --git a/newlib/libc/stdlib/eprintf.c b/newlib/libc/stdlib/eprintf.c new file mode 100644 index 000000000..46cf8104b --- /dev/null +++ b/newlib/libc/stdlib/eprintf.c @@ -0,0 +1,26 @@ +/* This is an implementation of the __eprintf function which is + compatible with the assert.h which is distributed with gcc. + + This function is provided because in some cases libgcc.a will not + provide __eprintf. This will happen if inhibit_libc is defined, + which is done because at the time that libgcc2.c is compiled, the + correct <stdio.h> may not be available. newlib provides its own + copy of assert.h, which calls __assert, not __eprintf. However, in + some cases you may accidentally wind up compiling with the gcc + assert.h. In such a case, this __eprintf will be used if there + does not happen to be one in libgcc2.c. */ + +#include <stdlib.h> +#include <stdio.h> + +void +__eprintf (format, file, line, expression) + const char *format; + const char *file; + unsigned int line; + const char *expression; +{ + (void) fiprintf (stderr, format, file, line, expression); + abort (); + /*NOTREACHED*/ +} diff --git a/newlib/libc/stdlib/exit.c b/newlib/libc/stdlib/exit.c new file mode 100644 index 000000000..543bd0e30 --- /dev/null +++ b/newlib/libc/stdlib/exit.c @@ -0,0 +1,73 @@ +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * %sccs.include.redist.c% + */ + +/* +FUNCTION +<<exit>>---end program execution + +INDEX + exit + +ANSI_SYNOPSIS + #include <stdlib.h> + void exit(int <[code]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + void exit(<[code]>) + int <[code]>; + +DESCRIPTION +Use <<exit>> to return control from a program to the host operating +environment. Use the argument <[code]> to pass an exit status to the +operating environment: two particular values, <<EXIT_SUCCESS>> and +<<EXIT_FAILURE>>, are defined in `<<stdlib.h>>' to indicate success or +failure in a portable fashion. + +<<exit>> does two kinds of cleanup before ending execution of your +program. First, it calls all application-defined cleanup functions +you have enrolled with <<atexit>>. Second, files and streams are +cleaned up: any pending output is delivered to the host system, each +open file or stream is closed, and files created by <<tmpfile>> are +deleted. + +RETURNS +<<exit>> does not return to its caller. + +PORTABILITY +ANSI C requires <<exit>>, and specifies that <<EXIT_SUCCESS>> and +<<EXIT_FAILURE>> must be defined. + +Supporting OS subroutines required: <<_exit>>. +*/ + +#include <stdlib.h> +#include <unistd.h> /* for _exit() declaration */ +#include <reent.h> + +#ifndef _REENT_ONLY + +/* + * Exit, flushing stdio buffers if necessary. + */ + +void +_DEFUN (exit, (code), + int code) +{ + register struct _atexit *p; + register int n; + + for (p = _REENT->_atexit; p; p = p->_next) + for (n = p->_ind; --n >= 0;) + (*p->_fns[n]) (); + if (_REENT->__cleanup) + (*_REENT->__cleanup) (_REENT); + _exit (code); +} + +#endif diff --git a/newlib/libc/stdlib/getenv.c b/newlib/libc/stdlib/getenv.c new file mode 100644 index 000000000..c9f1ecd96 --- /dev/null +++ b/newlib/libc/stdlib/getenv.c @@ -0,0 +1,101 @@ +/* +FUNCTION +<<getenv>>---look up environment variable + +INDEX + getenv +INDEX + environ + +ANSI_SYNOPSIS + #include <stdlib.h> + char *getenv(const char *<[name]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + char *getenv(<[name]>) + char *<[name]>; + +DESCRIPTION +<<getenv>> searches the list of environment variable names and values +(using the global pointer `<<char **environ>>') for a variable whose +name matches the string at <[name]>. If a variable name matches, +<<getenv>> returns a pointer to the associated value. + +RETURNS +A pointer to the (string) value of the environment variable, or +<<NULL>> if there is no such environment variable. + +PORTABILITY +<<getenv>> is ANSI, but the rules for properly forming names of environment +variables vary from one system to another. + +<<getenv>> requires a global pointer <<environ>>. +*/ + +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _REENT_ONLY + +#include <stdlib.h> +#include <stddef.h> +#include <string.h> + +extern char **environ; + +/* + * _findenv -- + * Returns pointer to value associated with name, if any, else NULL. + * Sets offset to be the offset of the name/value combination in the + * environmental array, for use by setenv(3) and unsetenv(3). + * Explicitly removes '=' in argument name. + * + * This routine *should* be a static; don't use it. + */ + +char * +_DEFUN (_findenv, (name, offset), + register _CONST char *name _AND + int *offset) +{ + return _findenv_r (_REENT, name, offset); +} + +/* + * getenv -- + * Returns ptr to value associated with name, if any, else NULL. + */ + +char * +_DEFUN (getenv, (name), + _CONST char *name) +{ + int offset; + char *_findenv_r (); + + return _findenv_r (_REENT, name, &offset); +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/getenv_r.c b/newlib/libc/stdlib/getenv_r.c new file mode 100644 index 000000000..2ccb89a17 --- /dev/null +++ b/newlib/libc/stdlib/getenv_r.c @@ -0,0 +1,129 @@ +/* +FUNCTION +<<_getenv_r>>---look up environment variable + +INDEX + _getenv_r +INDEX + environ + +ANSI_SYNOPSIS + #include <stdlib.h> + char *_getenv_r(struct _reent *<[reent_ptr]>, const char *<[name]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + char *_getenv_r(<[reent_ptr]>, <[name]>) + struct _reent *<[reent_ptr]>; + char *<[name]>; + +DESCRIPTION +<<_getenv_r>> searches the list of environment variable names and values +(using the global pointer `<<char **environ>>') for a variable whose +name matches the string at <[name]>. If a variable name matches, +<<_getenv_r>> returns a pointer to the associated value. + +RETURNS +A pointer to the (string) value of the environment variable, or +<<NULL>> if there is no such environment variable. + +PORTABILITY +<<_getenv_r>> is not ANSI; the rules for properly forming names of environment +variables vary from one system to another. + +<<_getenv_r>> requires a global pointer <<environ>>. +*/ + +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <stdlib.h> +#include <stddef.h> +#include <string.h> +#include "envlock.h" + +extern char **environ; + +/* + * _findenv -- + * Returns pointer to value associated with name, if any, else NULL. + * Sets offset to be the offset of the name/value combination in the + * environmental array, for use by setenv(3) and unsetenv(3). + * Explicitly removes '=' in argument name. + * + * This routine *should* be a static; don't use it. + */ + +char * +_DEFUN (_findenv_r, (reent_ptr, name, offset), + struct _reent *reent_ptr _AND + register _CONST char *name _AND + int *offset) +{ + register int len; + register char **p; + _CONST char *c; + + ENV_LOCK; + + /* In some embedded systems, this does not get set. This protects + newlib from dereferencing a bad pointer. */ + if (!environ) + return NULL; + + c = name; + len = 0; + while (*c && *c != '=') + { + c++; + len++; + } + + for (p = environ; *p; ++p) + if (!strncmp (*p, name, len)) + if (*(c = *p + len) == '=') + { + *offset = p - environ; + ENV_UNLOCK; + return (char *) (++c); + } + ENV_UNLOCK; + return NULL; +} + +/* + * _getenv_r -- + * Returns ptr to value associated with name, if any, else NULL. + */ + +char * +_DEFUN (_getenv_r, (reent_ptr, name), + struct _reent *reent_ptr _AND + _CONST char *name) +{ + int offset; + char *_findenv_r (); + + return _findenv_r (reent_ptr, name, &offset); +} diff --git a/newlib/libc/stdlib/getopt.c b/newlib/libc/stdlib/getopt.c new file mode 100644 index 000000000..b38938d5f --- /dev/null +++ b/newlib/libc/stdlib/getopt.c @@ -0,0 +1,117 @@ +/* + * Copyright (c) 1987, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +/* static char sccsid[] = "from: @(#)getopt.c 8.2 (Berkeley) 4/2/94"; */ +static char *rcsid = "$Id$"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +int opterr = 1, /* if error message should be printed */ + optind = 1, /* index into parent argv vector */ + optopt, /* character checked for validity */ + optreset; /* reset getopt */ +char *optarg; /* argument associated with option */ + +#define BADCH (int)'?' +#define BADARG (int)':' +#define EMSG "" + +/* + * getopt -- + * Parse argc/argv argument vector. + */ +int +getopt(nargc, nargv, ostr) + int nargc; + char * const *nargv; + const char *ostr; +{ + static char *place = EMSG; /* option letter processing */ + char *oli; /* option letter list index */ + + if (optreset || !*place) { /* update scanning pointer */ + optreset = 0; + if (optind >= nargc || *(place = nargv[optind]) != '-') { + place = EMSG; + return (-1); + } + if (place[1] && *++place == '-') { /* found "--" */ + ++optind; + place = EMSG; + return (-1); + } + } /* option letter okay? */ + if ((optopt = (int)*place++) == (int)':' || + !(oli = strchr(ostr, optopt))) { + /* + * if the user didn't specify '-' as an option, + * assume it means -1. + */ + if (optopt == (int)'-') + return (-1); + if (!*place) + ++optind; + if (opterr && *ostr != ':') + (void)fprintf(stderr, + "%s: illegal option -- %c\n", nargv[0], optopt); + return (BADCH); + } + if (*++oli != ':') { /* don't need argument */ + optarg = NULL; + if (!*place) + ++optind; + } + else { /* need an argument */ + if (*place) /* no white space */ + optarg = place; + else if (nargc <= ++optind) { /* no arg */ + place = EMSG; + if (*ostr == ':') + return (BADARG); + if (opterr) + (void)fprintf(stderr, + "%s: option requires an argument -- %c\n", + nargv[0], optopt); + return (BADCH); + } + else /* white space */ + optarg = nargv[optind]; + place = EMSG; + ++optind; + } + return (optopt); /* dump back option letter */ +} diff --git a/newlib/libc/stdlib/labs.c b/newlib/libc/stdlib/labs.c new file mode 100644 index 000000000..634cf7348 --- /dev/null +++ b/newlib/libc/stdlib/labs.c @@ -0,0 +1,49 @@ +/* +FUNCTION +<<labs>>---long integer absolute value + +INDEX + labs + +ANSI_SYNOPSIS + #include <stdlib.h> + long labs(long <[i]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + long labs(<[i]>) + long <[i]>; + +DESCRIPTION +<<labs>> returns +@tex +$|x|$, +@end tex +the absolute value of <[i]> (also called the magnitude +of <[i]>). That is, if <[i]> is negative, the result is the opposite +of <[i]>, but if <[i]> is nonnegative the result is <[i]>. + +The similar function <<abs>> uses and returns <<int>> rather than +<<long>> values. + +RETURNS +The result is a nonnegative long integer. + +PORTABILITY +<<labs>> is ANSI. + +No supporting OS subroutine calls are required. +*/ + +#include <stdlib.h> + +long +_DEFUN (labs, (x), + long x) +{ + if (x < 0) + { + x = -x; + } + return x; +} diff --git a/newlib/libc/stdlib/ldiv.c b/newlib/libc/stdlib/ldiv.c new file mode 100644 index 000000000..054b33837 --- /dev/null +++ b/newlib/libc/stdlib/ldiv.c @@ -0,0 +1,109 @@ +/* +FUNCTION +<<ldiv>>---divide two long integers + +INDEX + ldiv + +ANSI_SYNOPSIS + #include <stdlib.h> + ldiv_t ldiv(long <[n]>, long <[d]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + ldiv_t ldiv(<[n]>, <[d]>) + long <[n]>, <[d]>; + +DESCRIPTION +Divide +@tex +$n/d$, +@end tex +@ifinfo +<[n]>/<[d]>, +@end ifinfo +returning quotient and remainder as two long integers in a structure <<ldiv_t>>. + +RETURNS +The result is represented with the structure + +. typedef struct +. { +. long quot; +. long rem; +. } ldiv_t; + +where the <<quot>> field represents the quotient, and <<rem>> the +remainder. For nonzero <[d]>, if `<<<[r]> = ldiv(<[n]>,<[d]>);>>' then +<[n]> equals `<<<[r]>.rem + <[d]>*<[r]>.quot>>'. + +To divide <<int>> rather than <<long>> values, use the similar +function <<div>>. + +PORTABILITY +<<ldiv>> is ANSI. + +No supporting OS subroutines are required. +*/ + + +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Chris Torek. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <_ansi.h> +#include <stdlib.h> /* ldiv_t */ + +ldiv_t +_DEFUN (ldiv, (num, denom), + long num _AND + long denom) +{ + ldiv_t r; + + /* see div.c for comments */ + + r.quot = num / denom; + r.rem = num % denom; + if (num >= 0 && r.rem < 0) { + ++r.quot; + r.rem -= denom; + } + else if (num < 0 && r.rem > 0) { + --r.quot; + r.rem += denom; + } + return (r); +} diff --git a/newlib/libc/stdlib/local.h b/newlib/libc/stdlib/local.h new file mode 100644 index 000000000..a274f20a1 --- /dev/null +++ b/newlib/libc/stdlib/local.h @@ -0,0 +1,8 @@ +/* Misc. local definitions for libc/stdlib */ + +#ifndef _LOCAL_H_ +#define _LOCAL_H_ + +char * _EXFUN(_gcvt,(struct _reent *, double , int , char *, char, int)); + +#endif diff --git a/newlib/libc/stdlib/malign.c b/newlib/libc/stdlib/malign.c new file mode 100644 index 000000000..d012d9be2 --- /dev/null +++ b/newlib/libc/stdlib/malign.c @@ -0,0 +1,18 @@ +/* malign.c -- a wrapper for memalign_r. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +_PTR +_DEFUN (memalign, (align, nbytes), + size_t align _AND + size_t nbytes) +{ + return _memalign_r (_REENT, align, nbytes); +} + +#endif diff --git a/newlib/libc/stdlib/malloc.c b/newlib/libc/stdlib/malloc.c new file mode 100644 index 000000000..83453ab8d --- /dev/null +++ b/newlib/libc/stdlib/malloc.c @@ -0,0 +1,206 @@ +/* VxWorks provides its own version of malloc, and we can't use this + one because VxWorks does not provide sbrk. So we have a hook to + not compile this code. */ + +/* The routines here are simple cover fns to the routines that do the real + work (the reentrant versions). */ +/* FIXME: Does the warning below (see WARNINGS) about non-reentrancy still + apply? A first guess would be "no", but how about reentrancy in the *same* + thread? */ + +#ifdef MALLOC_PROVIDED + +int _dummy_malloc = 1; + +#else + +/* +FUNCTION +<<malloc>>, <<realloc>>, <<free>>---manage memory + +INDEX + malloc +INDEX + realloc +INDEX + free +INDEX + memalign +INDEX + malloc_usable_size +INDEX + _malloc_r +INDEX + _realloc_r +INDEX + _free_r +INDEX + _memalign_r +INDEX + _malloc_usable_size_r + +ANSI_SYNOPSIS + #include <stdlib.h> + void *malloc(size_t <[nbytes]>); + void *realloc(void *<[aptr]>, size_t <[nbytes]>); + void free(void *<[aptr]>); + + void *memalign(size_t <[align]>, size_t <[nbytes]>); + + size_t malloc_usable_size(void *<[aptr]>); + + void *_malloc_r(void *<[reent]>, size_t <[nbytes]>); + void *_realloc_r(void *<[reent]>, + void *<[aptr]>, size_t <[nbytes]>); + void _free_r(void *<[reent]>, void *<[aptr]>); + + void *_memalign_r(void *<[reent]>, + size_t <[align]>, size_t <[nbytes]>); + + size_t _malloc_usable_size_r(void *<[reent]>, void *<[aptr]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + char *malloc(<[nbytes]>) + size_t <[nbytes]>; + + char *realloc(<[aptr]>, <[nbytes]>) + char *<[aptr]>; + size_t <[nbytes]>; + + void free(<[aptr]>) + char *<[aptr]>; + + char *memalign(<[align]>, <[nbytes]>) + size_t <[align]>; + size_t <[nbytes]>; + + size_t malloc_usable_size(<[aptr]>) + char *<[aptr]>; + + char *_malloc_r(<[reent]>,<[nbytes]>) + char *<[reent]>; + size_t <[nbytes]>; + + char *_realloc_r(<[reent]>, <[aptr]>, <[nbytes]>) + char *<[reent]>; + char *<[aptr]>; + size_t <[nbytes]>; + + void _free_r(<[reent]>, <[aptr]>) + char *<[reent]>; + char *<[aptr]>; + + char *_memalign_r(<[reent]>, <[align]>, <[nbytes]>) + char *<[reent]>; + size_t <[align]>; + size_t <[nbytes]>; + + size_t malloc_usable_size(<[reent]>, <[aptr]>) + char *<[reent]>; + char *<[aptr]>; + +DESCRIPTION +These functions manage a pool of system memory. + +Use <<malloc>> to request allocation of an object with at least +<[nbytes]> bytes of storage available. If the space is available, +<<malloc>> returns a pointer to a newly allocated block as its result. + +If you already have a block of storage allocated by <<malloc>>, but +you no longer need all the space allocated to it, you can make it +smaller by calling <<realloc>> with both the object pointer and the +new desired size as arguments. <<realloc>> guarantees that the +contents of the smaller object match the beginning of the original object. + +Similarly, if you need more space for an object, use <<realloc>> to +request the larger size; again, <<realloc>> guarantees that the +beginning of the new, larger object matches the contents of the +original object. + +When you no longer need an object originally allocated by <<malloc>> +or <<realloc>> (or the related function <<calloc>>), return it to the +memory storage pool by calling <<free>> with the address of the object +as the argument. You can also use <<realloc>> for this purpose by +calling it with <<0>> as the <[nbytes]> argument. + +The <<memalign>> function returns a block of size <[nbytes]> aligned +to a <[align]> boundary. The <[align]> argument must be a power of +two. + +The <<malloc_usable_size>> function takes a pointer to a block +allocated by <<malloc>>. It returns the amount of space that is +available in the block. This may or may not be more than the size +requested from <<malloc>>, due to alignment or minimum size +constraints. + +The alternate functions <<_malloc_r>>, <<_realloc_r>>, <<_free_r>>, +<<_memalign_r>>, and <<_malloc_usable_size_r>> are reentrant versions. +The extra argument <[reent]> is a pointer to a reentrancy structure. + +If you have multiple threads of execution which may call any of these +routines, or if any of these routines may be called reentrantly, then +you must provide implementations of the <<__malloc_lock>> and +<<__malloc_unlock>> functions for your system. See the documentation +for those functions. + +These functions operate by calling the function <<_sbrk_r>> or +<<sbrk>>, which allocates space. You may need to provide one of these +functions for your system. <<_sbrk_r>> is called with a positive +value to allocate more space, and with a negative value to release +previously allocated space if it is no longer required. +@xref{Stubs}. + +RETURNS +<<malloc>> returns a pointer to the newly allocated space, if +successful; otherwise it returns <<NULL>>. If your application needs +to generate empty objects, you may use <<malloc(0)>> for this purpose. + +<<realloc>> returns a pointer to the new block of memory, or <<NULL>> +if a new block could not be allocated. <<NULL>> is also the result +when you use `<<realloc(<[aptr]>,0)>>' (which has the same effect as +`<<free(<[aptr]>)>>'). You should always check the result of +<<realloc>>; successful reallocation is not guaranteed even when +you request a smaller object. + +<<free>> does not return a result. + +<<memalign>> returns a pointer to the newly allocated space. + +<<malloc_usable_size>> returns the usable size. + +PORTABILITY +<<malloc>>, <<realloc>>, and <<free>> are specified by the ANSI C +standard, but other conforming implementations of <<malloc>> may +behave differently when <[nbytes]> is zero. + +<<memalign>> is part of SVR4. + +<<malloc_usable_size>> is not portable. + +Supporting OS subroutines required: <<sbrk>>. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +_PTR +_DEFUN (malloc, (nbytes), + size_t nbytes) /* get a block */ +{ + return _malloc_r (_REENT, nbytes); +} + +void +_DEFUN (free, (aptr), + _PTR aptr) +{ + _free_r (_REENT, aptr); +} + +#endif + +#endif /* ! defined (MALLOC_PROVIDED) */ diff --git a/newlib/libc/stdlib/mallocr.c b/newlib/libc/stdlib/mallocr.c new file mode 100644 index 000000000..797e04656 --- /dev/null +++ b/newlib/libc/stdlib/mallocr.c @@ -0,0 +1,3646 @@ +#ifdef MALLOC_PROVIDED +int _dummy_mallocr = 1; +#else +/* ---------- To make a malloc.h, start cutting here ------------ */ + +/* + A version of malloc/free/realloc written by Doug Lea and released to the + public domain. Send questions/comments/complaints/performance data + to dl@cs.oswego.edu + +* VERSION 2.6.4 Thu Nov 28 07:54:55 1996 Doug Lea (dl at gee) + + Note: There may be an updated version of this malloc obtainable at + ftp://g.oswego.edu/pub/misc/malloc.c + Check before installing! + +* Why use this malloc? + + This is not the fastest, most space-conserving, most portable, or + most tunable malloc ever written. However it is among the fastest + while also being among the most space-conserving, portable and tunable. + Consistent balance across these factors results in a good general-purpose + allocator. For a high-level description, see + http://g.oswego.edu/dl/html/malloc.html + +* Synopsis of public routines + + (Much fuller descriptions are contained in the program documentation below.) + + malloc(size_t n); + Return a pointer to a newly allocated chunk of at least n bytes, or null + if no space is available. + free(Void_t* p); + Release the chunk of memory pointed to by p, or no effect if p is null. + realloc(Void_t* p, size_t n); + Return a pointer to a chunk of size n that contains the same data + as does chunk p up to the minimum of (n, p's size) bytes, or null + if no space is available. The returned pointer may or may not be + the same as p. If p is null, equivalent to malloc. Unless the + #define REALLOC_ZERO_BYTES_FREES below is set, realloc with a + size argument of zero (re)allocates a minimum-sized chunk. + memalign(size_t alignment, size_t n); + Return a pointer to a newly allocated chunk of n bytes, aligned + in accord with the alignment argument, which must be a power of + two. + valloc(size_t n); + Equivalent to memalign(pagesize, n), where pagesize is the page + size of the system (or as near to this as can be figured out from + all the includes/defines below.) + pvalloc(size_t n); + Equivalent to valloc(minimum-page-that-holds(n)), that is, + round up n to nearest pagesize. + calloc(size_t unit, size_t quantity); + Returns a pointer to quantity * unit bytes, with all locations + set to zero. + cfree(Void_t* p); + Equivalent to free(p). + malloc_trim(size_t pad); + Release all but pad bytes of freed top-most memory back + to the system. Return 1 if successful, else 0. + malloc_usable_size(Void_t* p); + Report the number usable allocated bytes associated with allocated + chunk p. This may or may not report more bytes than were requested, + due to alignment and minimum size constraints. + malloc_stats(); + Prints brief summary statistics on stderr. + mallinfo() + Returns (by copy) a struct containing various summary statistics. + mallopt(int parameter_number, int parameter_value) + Changes one of the tunable parameters described below. Returns + 1 if successful in changing the parameter, else 0. + +* Vital statistics: + + Alignment: 8-byte + 8 byte alignment is currently hardwired into the design. This + seems to suffice for all current machines and C compilers. + + Assumed pointer representation: 4 or 8 bytes + Code for 8-byte pointers is untested by me but has worked + reliably by Wolfram Gloger, who contributed most of the + changes supporting this. + + Assumed size_t representation: 4 or 8 bytes + Note that size_t is allowed to be 4 bytes even if pointers are 8. + + Minimum overhead per allocated chunk: 4 or 8 bytes + Each malloced chunk has a hidden overhead of 4 bytes holding size + and status information. + + Minimum allocated size: 4-byte ptrs: 16 bytes (including 4 overhead) + 8-byte ptrs: 24/32 bytes (including, 4/8 overhead) + + When a chunk is freed, 12 (for 4byte ptrs) or 20 (for 8 byte + ptrs but 4 byte size) or 24 (for 8/8) additional bytes are + needed; 4 (8) for a trailing size field + and 8 (16) bytes for free list pointers. Thus, the minimum + allocatable size is 16/24/32 bytes. + + Even a request for zero bytes (i.e., malloc(0)) returns a + pointer to something of the minimum allocatable size. + + Maximum allocated size: 4-byte size_t: 2^31 - 8 bytes + 8-byte size_t: 2^63 - 16 bytes + + It is assumed that (possibly signed) size_t bit values suffice to + represent chunk sizes. `Possibly signed' is due to the fact + that `size_t' may be defined on a system as either a signed or + an unsigned type. To be conservative, values that would appear + as negative numbers are avoided. + Requests for sizes with a negative sign bit will return a + minimum-sized chunk. + + Maximum overhead wastage per allocated chunk: normally 15 bytes + + Alignnment demands, plus the minimum allocatable size restriction + make the normal worst-case wastage 15 bytes (i.e., up to 15 + more bytes will be allocated than were requested in malloc), with + two exceptions: + 1. Because requests for zero bytes allocate non-zero space, + the worst case wastage for a request of zero bytes is 24 bytes. + 2. For requests >= mmap_threshold that are serviced via + mmap(), the worst case wastage is 8 bytes plus the remainder + from a system page (the minimal mmap unit); typically 4096 bytes. + +* Limitations + + Here are some features that are NOT currently supported + + * No user-definable hooks for callbacks and the like. + * No automated mechanism for fully checking that all accesses + to malloced memory stay within their bounds. + * No support for compaction. + +* Synopsis of compile-time options: + + People have reported using previous versions of this malloc on all + versions of Unix, sometimes by tweaking some of the defines + below. It has been tested most extensively on Solaris and + Linux. It is also reported to work on WIN32 platforms. + People have also reported adapting this malloc for use in + stand-alone embedded systems. + + The implementation is in straight, hand-tuned ANSI C. Among other + consequences, it uses a lot of macros. Because of this, to be at + all usable, this code should be compiled using an optimizing compiler + (for example gcc -O2) that can simplify expressions and control + paths. + + __STD_C (default: derived from C compiler defines) + Nonzero if using ANSI-standard C compiler, a C++ compiler, or + a C compiler sufficiently close to ANSI to get away with it. + DEBUG (default: NOT defined) + Define to enable debugging. Adds fairly extensive assertion-based + checking to help track down memory errors, but noticeably slows down + execution. + SEPARATE_OBJECTS (default: NOT defined) + Define this to compile into separate .o files. You must then + compile malloc.c several times, defining a DEFINE_* macro each + time. The list of DEFINE_* macros appears below. + MALLOC_LOCK (default: NOT defined) + MALLOC_UNLOCK (default: NOT defined) + Define these to C expressions which are run to lock and unlock + the malloc data structures. Calls may be nested; that is, + MALLOC_LOCK may be called more than once before the corresponding + MALLOC_UNLOCK calls. MALLOC_LOCK must avoid waiting for a lock + that it already holds. + MALLOC_ALIGNMENT (default: NOT defined) + Define this to 16 if you need 16 byte alignment instead of 8 byte alignment + which is the normal default. + SIZE_T_SMALLER_THAN_LONG (default: NOT defined) + Define this when the platform you are compiling has sizeof(long) > sizeof(size_t). + The option causes some extra code to be generated to handle operations + that use size_t operands and have long results. + REALLOC_ZERO_BYTES_FREES (default: NOT defined) + Define this if you think that realloc(p, 0) should be equivalent + to free(p). Otherwise, since malloc returns a unique pointer for + malloc(0), so does realloc(p, 0). + HAVE_MEMCPY (default: defined) + Define if you are not otherwise using ANSI STD C, but still + have memcpy and memset in your C library and want to use them. + Otherwise, simple internal versions are supplied. + USE_MEMCPY (default: 1 if HAVE_MEMCPY is defined, 0 otherwise) + Define as 1 if you want the C library versions of memset and + memcpy called in realloc and calloc (otherwise macro versions are used). + At least on some platforms, the simple macro versions usually + outperform libc versions. + HAVE_MMAP (default: defined as 1) + Define to non-zero to optionally make malloc() use mmap() to + allocate very large blocks. + HAVE_MREMAP (default: defined as 0 unless Linux libc set) + Define to non-zero to optionally make realloc() use mremap() to + reallocate very large blocks. + malloc_getpagesize (default: derived from system #includes) + Either a constant or routine call returning the system page size. + HAVE_USR_INCLUDE_MALLOC_H (default: NOT defined) + Optionally define if you are on a system with a /usr/include/malloc.h + that declares struct mallinfo. It is not at all necessary to + define this even if you do, but will ensure consistency. + INTERNAL_SIZE_T (default: size_t) + Define to a 32-bit type (probably `unsigned int') if you are on a + 64-bit machine, yet do not want or need to allow malloc requests of + greater than 2^31 to be handled. This saves space, especially for + very small chunks. + INTERNAL_LINUX_C_LIB (default: NOT defined) + Defined only when compiled as part of Linux libc. + Also note that there is some odd internal name-mangling via defines + (for example, internally, `malloc' is named `mALLOc') needed + when compiling in this case. These look funny but don't otherwise + affect anything. + INTERNAL_NEWLIB (default: NOT defined) + Defined only when compiled as part of the Cygnus newlib + distribution. + WIN32 (default: undefined) + Define this on MS win (95, nt) platforms to compile in sbrk emulation. + LACKS_UNISTD_H (default: undefined) + Define this if your system does not have a <unistd.h>. + MORECORE (default: sbrk) + The name of the routine to call to obtain more memory from the system. + MORECORE_FAILURE (default: -1) + The value returned upon failure of MORECORE. + MORECORE_CLEARS (default 1) + True (1) if the routine mapped to MORECORE zeroes out memory (which + holds for sbrk). + DEFAULT_TRIM_THRESHOLD + DEFAULT_TOP_PAD + DEFAULT_MMAP_THRESHOLD + DEFAULT_MMAP_MAX + Default values of tunable parameters (described in detail below) + controlling interaction with host system routines (sbrk, mmap, etc). + These values may also be changed dynamically via mallopt(). The + preset defaults are those that give best performance for typical + programs/systems. + + +*/ + + + + +/* Preliminaries */ + +#ifndef __STD_C +#ifdef __STDC__ +#define __STD_C 1 +#else +#if __cplusplus +#define __STD_C 1 +#else +#define __STD_C 0 +#endif /*__cplusplus*/ +#endif /*__STDC__*/ +#endif /*__STD_C*/ + +#ifndef Void_t +#if __STD_C +#define Void_t void +#else +#define Void_t char +#endif +#endif /*Void_t*/ + +#if __STD_C +#include <stddef.h> /* for size_t */ +#else +#include <sys/types.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdio.h> /* needed for malloc_stats */ + + +/* + Compile-time options +*/ + + +/* + + Special defines for Cygnus newlib distribution. + + */ + +#ifdef INTERNAL_NEWLIB + +#include <sys/config.h> + +/* + In newlib, all the publically visible routines take a reentrancy + pointer. We don't currently do anything much with it, but we do + pass it to the lock routine. + */ + +#include <reent.h> + +#define POINTER_UINT unsigned _POINTER_INT +#define SEPARATE_OBJECTS +#define HAVE_MMAP 0 +#define MORECORE(size) _sbrk_r(reent_ptr, (size)) +#define MORECORE_CLEARS 0 +#define MALLOC_LOCK __malloc_lock(reent_ptr) +#define MALLOC_UNLOCK __malloc_unlock(reent_ptr) + +#ifndef _WIN32 +#ifdef SMALL_MEMORY +#define malloc_getpagesize (128) +#else +#define malloc_getpagesize (4096) +#endif +#endif + +#if __STD_C +extern void __malloc_lock(struct _reent *); +extern void __malloc_unlock(struct _reent *); +#else +extern void __malloc_lock(); +extern void __malloc_unlock(); +#endif + +#if __STD_C +#define RARG struct _reent *reent_ptr, +#define RONEARG struct _reent *reent_ptr +#else +#define RARG reent_ptr +#define RONEARG reent_ptr +#define RDECL struct _reent *reent_ptr; +#endif + +#define RCALL reent_ptr, +#define RONECALL reent_ptr + +#else /* ! INTERNAL_NEWLIB */ + +#define POINTER_UINT unsigned long +#define RARG +#define RONEARG +#define RDECL +#define RCALL +#define RONECALL + +#endif /* ! INTERNAL_NEWLIB */ + +/* + Debugging: + + Because freed chunks may be overwritten with link fields, this + malloc will often die when freed memory is overwritten by user + programs. This can be very effective (albeit in an annoying way) + in helping track down dangling pointers. + + If you compile with -DDEBUG, a number of assertion checks are + enabled that will catch more memory errors. You probably won't be + able to make much sense of the actual assertion errors, but they + should help you locate incorrectly overwritten memory. The + checking is fairly extensive, and will slow down execution + noticeably. Calling malloc_stats or mallinfo with DEBUG set will + attempt to check every non-mmapped allocated and free chunk in the + course of computing the summmaries. (By nature, mmapped regions + cannot be checked very much automatically.) + + Setting DEBUG may also be helpful if you are trying to modify + this code. The assertions in the check routines spell out in more + detail the assumptions and invariants underlying the algorithms. + +*/ + +#if DEBUG +#include <assert.h> +#else +#define assert(x) ((void)0) +#endif + + +/* + SEPARATE_OBJECTS should be defined if you want each function to go + into a separate .o file. You must then compile malloc.c once per + function, defining the appropriate DEFINE_ macro. See below for the + list of macros. + */ + +#ifndef SEPARATE_OBJECTS +#define DEFINE_MALLOC +#define DEFINE_FREE +#define DEFINE_REALLOC +#define DEFINE_CALLOC +#define DEFINE_CFREE +#define DEFINE_MEMALIGN +#define DEFINE_VALLOC +#define DEFINE_PVALLOC +#define DEFINE_MALLINFO +#define DEFINE_MALLOC_STATS +#define DEFINE_MALLOC_USABLE_SIZE +#define DEFINE_MALLOPT + +#define STATIC static +#else +#define STATIC +#endif + +/* + Define MALLOC_LOCK and MALLOC_UNLOCK to C expressions to run to + lock and unlock the malloc data structures. MALLOC_LOCK may be + called recursively. + */ + +#ifndef MALLOC_LOCK +#define MALLOC_LOCK +#endif + +#ifndef MALLOC_UNLOCK +#define MALLOC_UNLOCK +#endif + +/* + INTERNAL_SIZE_T is the word-size used for internal bookkeeping + of chunk sizes. On a 64-bit machine, you can reduce malloc + overhead by defining INTERNAL_SIZE_T to be a 32 bit `unsigned int' + at the expense of not being able to handle requests greater than + 2^31. This limitation is hardly ever a concern; you are encouraged + to set this. However, the default version is the same as size_t. +*/ + +#ifndef INTERNAL_SIZE_T +#define INTERNAL_SIZE_T size_t +#endif + +/* + Following is needed on implementations whereby long > size_t. + The problem is caused because the code performs subtractions of + size_t values and stores the result in long values. In the case + where long > size_t and the first value is actually less than + the second value, the resultant value is positive. For example, + (long)(x - y) where x = 0 and y is 1 ends up being 0x00000000FFFFFFFF + which is 2*31 - 1 instead of 0xFFFFFFFFFFFFFFFF. This is due to the + fact that assignment from unsigned to signed won't sign extend. +*/ + +#ifdef SIZE_T_SMALLER_THAN_LONG +#define long_sub_size_t(x, y) ( (x < y) ? -((long)(y - x)) : (x - y) ); +#else +#define long_sub_size_t(x, y) ( (long)(x - y) ) +#endif + +/* + REALLOC_ZERO_BYTES_FREES should be set if a call to + realloc with zero bytes should be the same as a call to free. + Some people think it should. Otherwise, since this malloc + returns a unique pointer for malloc(0), so does realloc(p, 0). +*/ + + +/* #define REALLOC_ZERO_BYTES_FREES */ + + +/* + WIN32 causes an emulation of sbrk to be compiled in + mmap-based options are not currently supported in WIN32. +*/ + +/* #define WIN32 */ +#ifdef WIN32 +#define MORECORE wsbrk +#define HAVE_MMAP 0 +#endif + + +/* + HAVE_MEMCPY should be defined if you are not otherwise using + ANSI STD C, but still have memcpy and memset in your C library + and want to use them in calloc and realloc. Otherwise simple + macro versions are defined here. + + USE_MEMCPY should be defined as 1 if you actually want to + have memset and memcpy called. People report that the macro + versions are often enough faster than libc versions on many + systems that it is better to use them. + +*/ + +#define HAVE_MEMCPY + +#ifndef USE_MEMCPY +#ifdef HAVE_MEMCPY +#define USE_MEMCPY 1 +#else +#define USE_MEMCPY 0 +#endif +#endif + +#if (__STD_C || defined(HAVE_MEMCPY)) + +#if __STD_C +void* memset(void*, int, size_t); +void* memcpy(void*, const void*, size_t); +#else +Void_t* memset(); +Void_t* memcpy(); +#endif +#endif + +#if USE_MEMCPY + +/* The following macros are only invoked with (2n+1)-multiples of + INTERNAL_SIZE_T units, with a positive integer n. This is exploited + for fast inline execution when n is small. */ + +#define MALLOC_ZERO(charp, nbytes) \ +do { \ + INTERNAL_SIZE_T mzsz = (nbytes); \ + if(mzsz <= 9*sizeof(mzsz)) { \ + INTERNAL_SIZE_T* mz = (INTERNAL_SIZE_T*) (charp); \ + if(mzsz >= 5*sizeof(mzsz)) { *mz++ = 0; \ + *mz++ = 0; \ + if(mzsz >= 7*sizeof(mzsz)) { *mz++ = 0; \ + *mz++ = 0; \ + if(mzsz >= 9*sizeof(mzsz)) { *mz++ = 0; \ + *mz++ = 0; }}} \ + *mz++ = 0; \ + *mz++ = 0; \ + *mz = 0; \ + } else memset((charp), 0, mzsz); \ +} while(0) + +#define MALLOC_COPY(dest,src,nbytes) \ +do { \ + INTERNAL_SIZE_T mcsz = (nbytes); \ + if(mcsz <= 9*sizeof(mcsz)) { \ + INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) (src); \ + INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) (dest); \ + if(mcsz >= 5*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ + *mcdst++ = *mcsrc++; \ + if(mcsz >= 7*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ + *mcdst++ = *mcsrc++; \ + if(mcsz >= 9*sizeof(mcsz)) { *mcdst++ = *mcsrc++; \ + *mcdst++ = *mcsrc++; }}} \ + *mcdst++ = *mcsrc++; \ + *mcdst++ = *mcsrc++; \ + *mcdst = *mcsrc ; \ + } else memcpy(dest, src, mcsz); \ +} while(0) + +#else /* !USE_MEMCPY */ + +/* Use Duff's device for good zeroing/copying performance. */ + +#define MALLOC_ZERO(charp, nbytes) \ +do { \ + INTERNAL_SIZE_T* mzp = (INTERNAL_SIZE_T*)(charp); \ + long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T), mcn; \ + if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; } \ + switch (mctmp) { \ + case 0: for(;;) { *mzp++ = 0; \ + case 7: *mzp++ = 0; \ + case 6: *mzp++ = 0; \ + case 5: *mzp++ = 0; \ + case 4: *mzp++ = 0; \ + case 3: *mzp++ = 0; \ + case 2: *mzp++ = 0; \ + case 1: *mzp++ = 0; if(mcn <= 0) break; mcn--; } \ + } \ +} while(0) + +#define MALLOC_COPY(dest,src,nbytes) \ +do { \ + INTERNAL_SIZE_T* mcsrc = (INTERNAL_SIZE_T*) src; \ + INTERNAL_SIZE_T* mcdst = (INTERNAL_SIZE_T*) dest; \ + long mctmp = (nbytes)/sizeof(INTERNAL_SIZE_T), mcn; \ + if (mctmp < 8) mcn = 0; else { mcn = (mctmp-1)/8; mctmp %= 8; } \ + switch (mctmp) { \ + case 0: for(;;) { *mcdst++ = *mcsrc++; \ + case 7: *mcdst++ = *mcsrc++; \ + case 6: *mcdst++ = *mcsrc++; \ + case 5: *mcdst++ = *mcsrc++; \ + case 4: *mcdst++ = *mcsrc++; \ + case 3: *mcdst++ = *mcsrc++; \ + case 2: *mcdst++ = *mcsrc++; \ + case 1: *mcdst++ = *mcsrc++; if(mcn <= 0) break; mcn--; } \ + } \ +} while(0) + +#endif + + +/* + Define HAVE_MMAP to optionally make malloc() use mmap() to + allocate very large blocks. These will be returned to the + operating system immediately after a free(). +*/ + +#ifndef HAVE_MMAP +#define HAVE_MMAP 1 +#endif + +/* + Define HAVE_MREMAP to make realloc() use mremap() to re-allocate + large blocks. This is currently only possible on Linux with + kernel versions newer than 1.3.77. +*/ + +#ifndef HAVE_MREMAP +#ifdef INTERNAL_LINUX_C_LIB +#define HAVE_MREMAP 1 +#else +#define HAVE_MREMAP 0 +#endif +#endif + +#if HAVE_MMAP + +#include <unistd.h> +#include <fcntl.h> +#include <sys/mman.h> + +#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON) +#define MAP_ANONYMOUS MAP_ANON +#endif + +#endif /* HAVE_MMAP */ + +/* + Access to system page size. To the extent possible, this malloc + manages memory from the system in page-size units. + + The following mechanics for getpagesize were adapted from + bsd/gnu getpagesize.h +*/ + +#ifndef LACKS_UNISTD_H +# include <unistd.h> +#endif + +#ifndef malloc_getpagesize +# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */ +# ifndef _SC_PAGE_SIZE +# define _SC_PAGE_SIZE _SC_PAGESIZE +# endif +# endif +# ifdef _SC_PAGE_SIZE +# define malloc_getpagesize sysconf(_SC_PAGE_SIZE) +# else +# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) + extern size_t getpagesize(); +# define malloc_getpagesize getpagesize() +# else +# include <sys/param.h> +# ifdef EXEC_PAGESIZE +# define malloc_getpagesize EXEC_PAGESIZE +# else +# ifdef NBPG +# ifndef CLSIZE +# define malloc_getpagesize NBPG +# else +# define malloc_getpagesize (NBPG * CLSIZE) +# endif +# else +# ifdef NBPC +# define malloc_getpagesize NBPC +# else +# ifdef PAGESIZE +# define malloc_getpagesize PAGESIZE +# else +# define malloc_getpagesize (4096) /* just guess */ +# endif +# endif +# endif +# endif +# endif +# endif +#endif + + + +/* + + This version of malloc supports the standard SVID/XPG mallinfo + routine that returns a struct containing the same kind of + information you can get from malloc_stats. It should work on + any SVID/XPG compliant system that has a /usr/include/malloc.h + defining struct mallinfo. (If you'd like to install such a thing + yourself, cut out the preliminary declarations as described above + and below and save them in a malloc.h file. But there's no + compelling reason to bother to do this.) + + The main declaration needed is the mallinfo struct that is returned + (by-copy) by mallinfo(). The SVID/XPG malloinfo struct contains a + bunch of fields, most of which are not even meaningful in this + version of malloc. Some of these fields are are instead filled by + mallinfo() with other numbers that might possibly be of interest. + + HAVE_USR_INCLUDE_MALLOC_H should be set if you have a + /usr/include/malloc.h file that includes a declaration of struct + mallinfo. If so, it is included; else an SVID2/XPG2 compliant + version is declared below. These must be precisely the same for + mallinfo() to work. + +*/ + +/* #define HAVE_USR_INCLUDE_MALLOC_H */ + +#if HAVE_USR_INCLUDE_MALLOC_H +#include "/usr/include/malloc.h" +#else + +/* SVID2/XPG mallinfo structure */ + +struct mallinfo { + int arena; /* total space allocated from system */ + int ordblks; /* number of non-inuse chunks */ + int smblks; /* unused -- always zero */ + int hblks; /* number of mmapped regions */ + int hblkhd; /* total space in mmapped regions */ + int usmblks; /* unused -- always zero */ + int fsmblks; /* unused -- always zero */ + int uordblks; /* total allocated space */ + int fordblks; /* total non-inuse space */ + int keepcost; /* top-most, releasable (via malloc_trim) space */ +}; + +/* SVID2/XPG mallopt options */ + +#define M_MXFAST 1 /* UNUSED in this malloc */ +#define M_NLBLKS 2 /* UNUSED in this malloc */ +#define M_GRAIN 3 /* UNUSED in this malloc */ +#define M_KEEP 4 /* UNUSED in this malloc */ + +#endif + +/* mallopt options that actually do something */ + +#define M_TRIM_THRESHOLD -1 +#define M_TOP_PAD -2 +#define M_MMAP_THRESHOLD -3 +#define M_MMAP_MAX -4 + + + +#ifndef DEFAULT_TRIM_THRESHOLD +#define DEFAULT_TRIM_THRESHOLD (128L * 1024L) +#endif + +/* + M_TRIM_THRESHOLD is the maximum amount of unused top-most memory + to keep before releasing via malloc_trim in free(). + + Automatic trimming is mainly useful in long-lived programs. + Because trimming via sbrk can be slow on some systems, and can + sometimes be wasteful (in cases where programs immediately + afterward allocate more large chunks) the value should be high + enough so that your overall system performance would improve by + releasing. + + The trim threshold and the mmap control parameters (see below) + can be traded off with one another. Trimming and mmapping are + two different ways of releasing unused memory back to the + system. Between these two, it is often possible to keep + system-level demands of a long-lived program down to a bare + minimum. For example, in one test suite of sessions measuring + the XF86 X server on Linux, using a trim threshold of 128K and a + mmap threshold of 192K led to near-minimal long term resource + consumption. + + If you are using this malloc in a long-lived program, it should + pay to experiment with these values. As a rough guide, you + might set to a value close to the average size of a process + (program) running on your system. Releasing this much memory + would allow such a process to run in memory. Generally, it's + worth it to tune for trimming rather tham memory mapping when a + program undergoes phases where several large chunks are + allocated and released in ways that can reuse each other's + storage, perhaps mixed with phases where there are no such + chunks at all. And in well-behaved long-lived programs, + controlling release of large blocks via trimming versus mapping + is usually faster. + + However, in most programs, these parameters serve mainly as + protection against the system-level effects of carrying around + massive amounts of unneeded memory. Since frequent calls to + sbrk, mmap, and munmap otherwise degrade performance, the default + parameters are set to relatively high values that serve only as + safeguards. + + The default trim value is high enough to cause trimming only in + fairly extreme (by current memory consumption standards) cases. + It must be greater than page size to have any useful effect. To + disable trimming completely, you can set to (unsigned long)(-1); + + +*/ + + +#ifndef DEFAULT_TOP_PAD +#define DEFAULT_TOP_PAD (0) +#endif + +/* + M_TOP_PAD is the amount of extra `padding' space to allocate or + retain whenever sbrk is called. It is used in two ways internally: + + * When sbrk is called to extend the top of the arena to satisfy + a new malloc request, this much padding is added to the sbrk + request. + + * When malloc_trim is called automatically from free(), + it is used as the `pad' argument. + + In both cases, the actual amount of padding is rounded + so that the end of the arena is always a system page boundary. + + The main reason for using padding is to avoid calling sbrk so + often. Having even a small pad greatly reduces the likelihood + that nearly every malloc request during program start-up (or + after trimming) will invoke sbrk, which needlessly wastes + time. + + Automatic rounding-up to page-size units is normally sufficient + to avoid measurable overhead, so the default is 0. However, in + systems where sbrk is relatively slow, it can pay to increase + this value, at the expense of carrying around more memory than + the program needs. + +*/ + + +#ifndef DEFAULT_MMAP_THRESHOLD +#define DEFAULT_MMAP_THRESHOLD (128 * 1024) +#endif + +/* + + M_MMAP_THRESHOLD is the request size threshold for using mmap() + to service a request. Requests of at least this size that cannot + be allocated using already-existing space will be serviced via mmap. + (If enough normal freed space already exists it is used instead.) + + Using mmap segregates relatively large chunks of memory so that + they can be individually obtained and released from the host + system. A request serviced through mmap is never reused by any + other request (at least not directly; the system may just so + happen to remap successive requests to the same locations). + + Segregating space in this way has the benefit that mmapped space + can ALWAYS be individually released back to the system, which + helps keep the system level memory demands of a long-lived + program low. Mapped memory can never become `locked' between + other chunks, as can happen with normally allocated chunks, which + menas that even trimming via malloc_trim would not release them. + + However, it has the disadvantages that: + + 1. The space cannot be reclaimed, consolidated, and then + used to service later requests, as happens with normal chunks. + 2. It can lead to more wastage because of mmap page alignment + requirements + 3. It causes malloc performance to be more dependent on host + system memory management support routines which may vary in + implementation quality and may impose arbitrary + limitations. Generally, servicing a request via normal + malloc steps is faster than going through a system's mmap. + + All together, these considerations should lead you to use mmap + only for relatively large requests. + + +*/ + + + +#ifndef DEFAULT_MMAP_MAX +#if HAVE_MMAP +#define DEFAULT_MMAP_MAX (64) +#else +#define DEFAULT_MMAP_MAX (0) +#endif +#endif + +/* + M_MMAP_MAX is the maximum number of requests to simultaneously + service using mmap. This parameter exists because: + + 1. Some systems have a limited number of internal tables for + use by mmap. + 2. In most systems, overreliance on mmap can degrade overall + performance. + 3. If a program allocates many large regions, it is probably + better off using normal sbrk-based allocation routines that + can reclaim and reallocate normal heap memory. Using a + small value allows transition into this mode after the + first few allocations. + + Setting to 0 disables all use of mmap. If HAVE_MMAP is not set, + the default value is 0, and attempts to set it to non-zero values + in mallopt will fail. +*/ + + + + +/* + + Special defines for linux libc + + Except when compiled using these special defines for Linux libc + using weak aliases, this malloc is NOT designed to work in + multithreaded applications. No semaphores or other concurrency + control are provided to ensure that multiple malloc or free calls + don't run at the same time, which could be disasterous. A single + semaphore could be used across malloc, realloc, and free (which is + essentially the effect of the linux weak alias approach). It would + be hard to obtain finer granularity. + +*/ + + +#ifdef INTERNAL_LINUX_C_LIB + +#if __STD_C + +Void_t * __default_morecore_init (ptrdiff_t); +Void_t *(*__morecore)(ptrdiff_t) = __default_morecore_init; + +#else + +Void_t * __default_morecore_init (); +Void_t *(*__morecore)() = __default_morecore_init; + +#endif + +#define MORECORE (*__morecore) +#define MORECORE_FAILURE 0 +#define MORECORE_CLEARS 1 + +#else /* INTERNAL_LINUX_C_LIB */ + +#ifndef INTERNAL_NEWLIB +#if __STD_C +extern Void_t* sbrk(ptrdiff_t); +#else +extern Void_t* sbrk(); +#endif +#endif + +#ifndef MORECORE +#define MORECORE sbrk +#endif + +#ifndef MORECORE_FAILURE +#define MORECORE_FAILURE -1 +#endif + +#ifndef MORECORE_CLEARS +#define MORECORE_CLEARS 1 +#endif + +#endif /* INTERNAL_LINUX_C_LIB */ + +#if defined(INTERNAL_LINUX_C_LIB) && defined(__ELF__) + +#define cALLOc __libc_calloc +#define fREe __libc_free +#define mALLOc __libc_malloc +#define mEMALIGn __libc_memalign +#define rEALLOc __libc_realloc +#define vALLOc __libc_valloc +#define pvALLOc __libc_pvalloc +#define mALLINFo __libc_mallinfo +#define mALLOPt __libc_mallopt + +#pragma weak calloc = __libc_calloc +#pragma weak free = __libc_free +#pragma weak cfree = __libc_free +#pragma weak malloc = __libc_malloc +#pragma weak memalign = __libc_memalign +#pragma weak realloc = __libc_realloc +#pragma weak valloc = __libc_valloc +#pragma weak pvalloc = __libc_pvalloc +#pragma weak mallinfo = __libc_mallinfo +#pragma weak mallopt = __libc_mallopt + +#else + +#ifdef INTERNAL_NEWLIB + +#define cALLOc _calloc_r +#define fREe _free_r +#define mALLOc _malloc_r +#define mEMALIGn _memalign_r +#define rEALLOc _realloc_r +#define vALLOc _valloc_r +#define pvALLOc _pvalloc_r +#define mALLINFo _mallinfo_r +#define mALLOPt _mallopt_r + +#define malloc_stats _malloc_stats_r +#define malloc_trim _malloc_trim_r +#define malloc_usable_size _malloc_usable_size_r + +#define malloc_update_mallinfo __malloc_update_mallinfo + +#define malloc_av_ __malloc_av_ +#define malloc_current_mallinfo __malloc_current_mallinfo +#define malloc_max_sbrked_mem __malloc_max_sbrked_mem +#define malloc_max_total_mem __malloc_max_total_mem +#define malloc_sbrk_base __malloc_sbrk_base +#define malloc_top_pad __malloc_top_pad +#define malloc_trim_threshold __malloc_trim_threshold + +#else /* ! INTERNAL_NEWLIB */ + +#define cALLOc calloc +#define fREe free +#define mALLOc malloc +#define mEMALIGn memalign +#define rEALLOc realloc +#define vALLOc valloc +#define pvALLOc pvalloc +#define mALLINFo mallinfo +#define mALLOPt mallopt + +#endif /* ! INTERNAL_NEWLIB */ +#endif + +/* Public routines */ + +#if __STD_C + +Void_t* mALLOc(RARG size_t); +void fREe(RARG Void_t*); +Void_t* rEALLOc(RARG Void_t*, size_t); +Void_t* mEMALIGn(RARG size_t, size_t); +Void_t* vALLOc(RARG size_t); +Void_t* pvALLOc(RARG size_t); +Void_t* cALLOc(RARG size_t, size_t); +void cfree(Void_t*); +int malloc_trim(RARG size_t); +size_t malloc_usable_size(RARG Void_t*); +void malloc_stats(RONEARG); +int mALLOPt(RARG int, int); +struct mallinfo mALLINFo(RONEARG); +#else +Void_t* mALLOc(); +void fREe(); +Void_t* rEALLOc(); +Void_t* mEMALIGn(); +Void_t* vALLOc(); +Void_t* pvALLOc(); +Void_t* cALLOc(); +void cfree(); +int malloc_trim(); +size_t malloc_usable_size(); +void malloc_stats(); +int mALLOPt(); +struct mallinfo mALLINFo(); +#endif + + +#ifdef __cplusplus +}; /* end of extern "C" */ +#endif + +/* ---------- To make a malloc.h, end cutting here ------------ */ + + +/* + Emulation of sbrk for WIN32 + All code within the ifdef WIN32 is untested by me. +*/ + + +#ifdef WIN32 + +#define AlignPage(add) (((add) + (malloc_getpagesize-1)) & +~(malloc_getpagesize-1)) + +/* resrve 64MB to insure large contiguous space */ +#define RESERVED_SIZE (1024*1024*64) +#define NEXT_SIZE (2048*1024) +#define TOP_MEMORY ((unsigned long)2*1024*1024*1024) + +struct GmListElement; +typedef struct GmListElement GmListElement; + +struct GmListElement +{ + GmListElement* next; + void* base; +}; + +static GmListElement* head = 0; +static unsigned int gNextAddress = 0; +static unsigned int gAddressBase = 0; +static unsigned int gAllocatedSize = 0; + +static +GmListElement* makeGmListElement (void* bas) +{ + GmListElement* this; + this = (GmListElement*)(void*)LocalAlloc (0, sizeof (GmListElement)); + ASSERT (this); + if (this) + { + this->base = bas; + this->next = head; + head = this; + } + return this; +} + +void gcleanup () +{ + BOOL rval; + ASSERT ( (head == NULL) || (head->base == (void*)gAddressBase)); + if (gAddressBase && (gNextAddress - gAddressBase)) + { + rval = VirtualFree ((void*)gAddressBase, + gNextAddress - gAddressBase, + MEM_DECOMMIT); + ASSERT (rval); + } + while (head) + { + GmListElement* next = head->next; + rval = VirtualFree (head->base, 0, MEM_RELEASE); + ASSERT (rval); + LocalFree (head); + head = next; + } +} + +static +void* findRegion (void* start_address, unsigned long size) +{ + MEMORY_BASIC_INFORMATION info; + while ((unsigned long)start_address < TOP_MEMORY) + { + VirtualQuery (start_address, &info, sizeof (info)); + if (info.State != MEM_FREE) + start_address = (char*)info.BaseAddress + info.RegionSize; + else if (info.RegionSize >= size) + return start_address; + else + start_address = (char*)info.BaseAddress + info.RegionSize; + } + return NULL; + +} + + +void* wsbrk (long size) +{ + void* tmp; + if (size > 0) + { + if (gAddressBase == 0) + { + gAllocatedSize = max (RESERVED_SIZE, AlignPage (size)); + gNextAddress = gAddressBase = + (unsigned int)VirtualAlloc (NULL, gAllocatedSize, + MEM_RESERVE, PAGE_NOACCESS); + } else if (AlignPage (gNextAddress + size) > (gAddressBase + +gAllocatedSize)) + { + long new_size = max (NEXT_SIZE, AlignPage (size)); + void* new_address = (void*)(gAddressBase+gAllocatedSize); + do + { + new_address = findRegion (new_address, new_size); + + if (new_address == 0) + return (void*)-1; + + gAddressBase = gNextAddress = + (unsigned int)VirtualAlloc (new_address, new_size, + MEM_RESERVE, PAGE_NOACCESS); + // repeat in case of race condition + // The region that we found has been snagged + // by another thread + } + while (gAddressBase == 0); + + ASSERT (new_address == (void*)gAddressBase); + + gAllocatedSize = new_size; + + if (!makeGmListElement ((void*)gAddressBase)) + return (void*)-1; + } + if ((size + gNextAddress) > AlignPage (gNextAddress)) + { + void* res; + res = VirtualAlloc ((void*)AlignPage (gNextAddress), + (size + gNextAddress - + AlignPage (gNextAddress)), + MEM_COMMIT, PAGE_READWRITE); + if (res == 0) + return (void*)-1; + } + tmp = (void*)gNextAddress; + gNextAddress = (unsigned int)tmp + size; + return tmp; + } + else if (size < 0) + { + unsigned int alignedGoal = AlignPage (gNextAddress + size); + /* Trim by releasing the virtual memory */ + if (alignedGoal >= gAddressBase) + { + VirtualFree ((void*)alignedGoal, gNextAddress - alignedGoal, + MEM_DECOMMIT); + gNextAddress = gNextAddress + size; + return (void*)gNextAddress; + } + else + { + VirtualFree ((void*)gAddressBase, gNextAddress - gAddressBase, + MEM_DECOMMIT); + gNextAddress = gAddressBase; + return (void*)-1; + } + } + else + { + return (void*)gNextAddress; + } +} + +#endif + + + +/* + Type declarations +*/ + + +struct malloc_chunk +{ + INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */ + INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */ + struct malloc_chunk* fd; /* double links -- used only if free. */ + struct malloc_chunk* bk; +}; + +typedef struct malloc_chunk* mchunkptr; + +/* + + malloc_chunk details: + + (The following includes lightly edited explanations by Colin Plumb.) + + Chunks of memory are maintained using a `boundary tag' method as + described in e.g., Knuth or Standish. (See the paper by Paul + Wilson ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a + survey of such techniques.) Sizes of free chunks are stored both + in the front of each chunk and at the end. This makes + consolidating fragmented chunks into bigger chunks very fast. The + size fields also hold bits representing whether chunks are free or + in use. + + An allocated chunk looks like this: + + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of previous chunk, if allocated | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of chunk, in bytes |P| + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | User data starts here... . + . . + . (malloc_usable_space() bytes) . + . | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Where "chunk" is the front of the chunk for the purpose of most of + the malloc code, but "mem" is the pointer that is returned to the + user. "Nextchunk" is the beginning of the next contiguous chunk. + + Chunks always begin on even word boundries, so the mem portion + (which is returned to the user) is also on an even word boundary, and + thus double-word aligned. + + Free chunks are stored in circular doubly-linked lists, and look like this: + + chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Size of previous chunk | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `head:' | Size of chunk, in bytes |P| + mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Forward pointer to next chunk in list | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Back pointer to previous chunk in list | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Unused space (may be 0 bytes long) . + . . + . | +nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + `foot:' | Size of chunk, in bytes | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The P (PREV_INUSE) bit, stored in the unused low-order bit of the + chunk size (which is always a multiple of two words), is an in-use + bit for the *previous* chunk. If that bit is *clear*, then the + word before the current chunk size contains the previous chunk + size, and can be used to find the front of the previous chunk. + (The very first chunk allocated always has this bit set, + preventing access to non-existent (or non-owned) memory.) + + Note that the `foot' of the current chunk is actually represented + as the prev_size of the NEXT chunk. (This makes it easier to + deal with alignments etc). + + The two exceptions to all this are + + 1. The special chunk `top', which doesn't bother using the + trailing size field since there is no + next contiguous chunk that would have to index off it. (After + initialization, `top' is forced to always exist. If it would + become less than MINSIZE bytes long, it is replenished via + malloc_extend_top.) + + 2. Chunks allocated via mmap, which have the second-lowest-order + bit (IS_MMAPPED) set in their size fields. Because they are + never merged or traversed from any other chunk, they have no + foot size or inuse information. + + Available chunks are kept in any of several places (all declared below): + + * `av': An array of chunks serving as bin headers for consolidated + chunks. Each bin is doubly linked. The bins are approximately + proportionally (log) spaced. There are a lot of these bins + (128). This may look excessive, but works very well in + practice. All procedures maintain the invariant that no + consolidated chunk physically borders another one. Chunks in + bins are kept in size order, with ties going to the + approximately least recently used chunk. + + The chunks in each bin are maintained in decreasing sorted order by + size. This is irrelevant for the small bins, which all contain + the same-sized chunks, but facilitates best-fit allocation for + larger chunks. (These lists are just sequential. Keeping them in + order almost never requires enough traversal to warrant using + fancier ordered data structures.) Chunks of the same size are + linked with the most recently freed at the front, and allocations + are taken from the back. This results in LRU or FIFO allocation + order, which tends to give each chunk an equal opportunity to be + consolidated with adjacent freed chunks, resulting in larger free + chunks and less fragmentation. + + * `top': The top-most available chunk (i.e., the one bordering the + end of available memory) is treated specially. It is never + included in any bin, is used only if no other chunk is + available, and is released back to the system if it is very + large (see M_TRIM_THRESHOLD). + + * `last_remainder': A bin holding only the remainder of the + most recently split (non-top) chunk. This bin is checked + before other non-fitting chunks, so as to provide better + locality for runs of sequentially allocated chunks. + + * Implicitly, through the host system's memory mapping tables. + If supported, requests greater than a threshold are usually + serviced via calls to mmap, and then later released via munmap. + +*/ + + + + + + +/* sizes, alignments */ + +#define SIZE_SZ (sizeof(INTERNAL_SIZE_T)) +#ifndef MALLOC_ALIGNMENT +#define MALLOC_ALIGN 8 +#define MALLOC_ALIGNMENT (SIZE_SZ + SIZE_SZ) +#else +#define MALLOC_ALIGN MALLOC_ALIGNMENT +#endif +#define MALLOC_ALIGN_MASK (MALLOC_ALIGNMENT - 1) +#define MINSIZE (sizeof(struct malloc_chunk)) + +/* conversion from malloc headers to user pointers, and back */ + +#define chunk2mem(p) ((Void_t*)((char*)(p) + 2*SIZE_SZ)) +#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - 2*SIZE_SZ)) + +/* pad request bytes into a usable size */ + +#define request2size(req) \ + (((long)((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) < \ + (long)(MINSIZE + MALLOC_ALIGN_MASK)) ? ((MINSIZE + MALLOC_ALIGN_MASK) & ~(MALLOC_ALIGN_MASK)) : \ + (((req) + (SIZE_SZ + MALLOC_ALIGN_MASK)) & ~(MALLOC_ALIGN_MASK))) + +/* Check if m has acceptable alignment */ + +#define aligned_OK(m) (((unsigned long)((m)) & (MALLOC_ALIGN_MASK)) == 0) + + + + +/* + Physical chunk operations +*/ + + +/* size field is or'ed with PREV_INUSE when previous adjacent chunk in use */ + +#define PREV_INUSE 0x1 + +/* size field is or'ed with IS_MMAPPED if the chunk was obtained with mmap() */ + +#define IS_MMAPPED 0x2 + +/* Bits to mask off when extracting size */ + +#define SIZE_BITS (PREV_INUSE|IS_MMAPPED) + + +/* Ptr to next physical malloc_chunk. */ + +#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->size & ~PREV_INUSE) )) + +/* Ptr to previous physical malloc_chunk */ + +#define prev_chunk(p)\ + ((mchunkptr)( ((char*)(p)) - ((p)->prev_size) )) + + +/* Treat space at ptr + offset as a chunk */ + +#define chunk_at_offset(p, s) ((mchunkptr)(((char*)(p)) + (s))) + + + + +/* + Dealing with use bits +*/ + +/* extract p's inuse bit */ + +#define inuse(p)\ +((((mchunkptr)(((char*)(p))+((p)->size & ~PREV_INUSE)))->size) & PREV_INUSE) + +/* extract inuse bit of previous chunk */ + +#define prev_inuse(p) ((p)->size & PREV_INUSE) + +/* check for mmap()'ed chunk */ + +#define chunk_is_mmapped(p) ((p)->size & IS_MMAPPED) + +/* set/clear chunk as in use without otherwise disturbing */ + +#define set_inuse(p)\ +((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size |= PREV_INUSE + +#define clear_inuse(p)\ +((mchunkptr)(((char*)(p)) + ((p)->size & ~PREV_INUSE)))->size &= ~(PREV_INUSE) + +/* check/set/clear inuse bits in known places */ + +#define inuse_bit_at_offset(p, s)\ + (((mchunkptr)(((char*)(p)) + (s)))->size & PREV_INUSE) + +#define set_inuse_bit_at_offset(p, s)\ + (((mchunkptr)(((char*)(p)) + (s)))->size |= PREV_INUSE) + +#define clear_inuse_bit_at_offset(p, s)\ + (((mchunkptr)(((char*)(p)) + (s)))->size &= ~(PREV_INUSE)) + + + + +/* + Dealing with size fields +*/ + +/* Get size, ignoring use bits */ + +#define chunksize(p) ((p)->size & ~(SIZE_BITS)) + +/* Set size at head, without disturbing its use bit */ + +#define set_head_size(p, s) ((p)->size = (((p)->size & PREV_INUSE) | (s))) + +/* Set size/use ignoring previous bits in header */ + +#define set_head(p, s) ((p)->size = (s)) + +/* Set size at footer (only when chunk is not in use) */ + +#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_size = (s)) + + + + + +/* + Bins + + The bins, `av_' are an array of pairs of pointers serving as the + heads of (initially empty) doubly-linked lists of chunks, laid out + in a way so that each pair can be treated as if it were in a + malloc_chunk. (This way, the fd/bk offsets for linking bin heads + and chunks are the same). + + Bins for sizes < 512 bytes contain chunks of all the same size, spaced + 8 bytes apart. Larger bins are approximately logarithmically + spaced. (See the table below.) The `av_' array is never mentioned + directly in the code, but instead via bin access macros. + + Bin layout: + + 64 bins of size 8 + 32 bins of size 64 + 16 bins of size 512 + 8 bins of size 4096 + 4 bins of size 32768 + 2 bins of size 262144 + 1 bin of size what's left + + There is actually a little bit of slop in the numbers in bin_index + for the sake of speed. This makes no difference elsewhere. + + The special chunks `top' and `last_remainder' get their own bins, + (this is implemented via yet more trickery with the av_ array), + although `top' is never properly linked to its bin since it is + always handled specially. + +*/ + +#ifdef SEPARATE_OBJECTS +#define av_ malloc_av_ +#endif + +#define NAV 128 /* number of bins */ + +typedef struct malloc_chunk* mbinptr; + +/* access macros */ + +#define bin_at(i) ((mbinptr)((char*)&(av_[2*(i) + 2]) - 2*SIZE_SZ)) +#define next_bin(b) ((mbinptr)((char*)(b) + 2 * sizeof(mbinptr))) +#define prev_bin(b) ((mbinptr)((char*)(b) - 2 * sizeof(mbinptr))) + +/* + The first 2 bins are never indexed. The corresponding av_ cells are instead + used for bookkeeping. This is not to save space, but to simplify + indexing, maintain locality, and avoid some initialization tests. +*/ + +#define top (bin_at(0)->fd) /* The topmost chunk */ +#define last_remainder (bin_at(1)) /* remainder from last split */ + + +/* + Because top initially points to its own bin with initial + zero size, thus forcing extension on the first malloc request, + we avoid having any special code in malloc to check whether + it even exists yet. But we still need to in malloc_extend_top. +*/ + +#define initial_top ((mchunkptr)(bin_at(0))) + +/* Helper macro to initialize bins */ + +#define IAV(i) bin_at(i), bin_at(i) + +#ifdef DEFINE_MALLOC +STATIC mbinptr av_[NAV * 2 + 2] = { + 0, 0, + IAV(0), IAV(1), IAV(2), IAV(3), IAV(4), IAV(5), IAV(6), IAV(7), + IAV(8), IAV(9), IAV(10), IAV(11), IAV(12), IAV(13), IAV(14), IAV(15), + IAV(16), IAV(17), IAV(18), IAV(19), IAV(20), IAV(21), IAV(22), IAV(23), + IAV(24), IAV(25), IAV(26), IAV(27), IAV(28), IAV(29), IAV(30), IAV(31), + IAV(32), IAV(33), IAV(34), IAV(35), IAV(36), IAV(37), IAV(38), IAV(39), + IAV(40), IAV(41), IAV(42), IAV(43), IAV(44), IAV(45), IAV(46), IAV(47), + IAV(48), IAV(49), IAV(50), IAV(51), IAV(52), IAV(53), IAV(54), IAV(55), + IAV(56), IAV(57), IAV(58), IAV(59), IAV(60), IAV(61), IAV(62), IAV(63), + IAV(64), IAV(65), IAV(66), IAV(67), IAV(68), IAV(69), IAV(70), IAV(71), + IAV(72), IAV(73), IAV(74), IAV(75), IAV(76), IAV(77), IAV(78), IAV(79), + IAV(80), IAV(81), IAV(82), IAV(83), IAV(84), IAV(85), IAV(86), IAV(87), + IAV(88), IAV(89), IAV(90), IAV(91), IAV(92), IAV(93), IAV(94), IAV(95), + IAV(96), IAV(97), IAV(98), IAV(99), IAV(100), IAV(101), IAV(102), IAV(103), + IAV(104), IAV(105), IAV(106), IAV(107), IAV(108), IAV(109), IAV(110), IAV(111), + IAV(112), IAV(113), IAV(114), IAV(115), IAV(116), IAV(117), IAV(118), IAV(119), + IAV(120), IAV(121), IAV(122), IAV(123), IAV(124), IAV(125), IAV(126), IAV(127) +}; +#else +extern mbinptr av_[NAV * 2 + 2]; +#endif + + + +/* field-extraction macros */ + +#define first(b) ((b)->fd) +#define last(b) ((b)->bk) + +/* + Indexing into bins +*/ + +#define bin_index(sz) \ +(((((unsigned long)(sz)) >> 9) == 0) ? (((unsigned long)(sz)) >> 3): \ + ((((unsigned long)(sz)) >> 9) <= 4) ? 56 + (((unsigned long)(sz)) >> 6): \ + ((((unsigned long)(sz)) >> 9) <= 20) ? 91 + (((unsigned long)(sz)) >> 9): \ + ((((unsigned long)(sz)) >> 9) <= 84) ? 110 + (((unsigned long)(sz)) >> 12): \ + ((((unsigned long)(sz)) >> 9) <= 340) ? 119 + (((unsigned long)(sz)) >> 15): \ + ((((unsigned long)(sz)) >> 9) <= 1364) ? 124 + (((unsigned long)(sz)) >> 18): \ + 126) +/* + bins for chunks < 512 are all spaced SMALLBIN_WIDTH bytes apart, and hold + identically sized chunks. This is exploited in malloc. +*/ + +#define MAX_SMALLBIN_SIZE 512 +#define SMALLBIN_WIDTH 8 +#define SMALLBIN_WIDTH_BITS 3 +#define MAX_SMALLBIN (MAX_SMALLBIN_SIZE / SMALLBIN_WIDTH) - 1 + +#define smallbin_index(sz) (((unsigned long)(sz)) >> SMALLBIN_WIDTH_BITS) + +/* + Requests are `small' if both the corresponding and the next bin are small +*/ + +#define is_small_request(nb) (nb < MAX_SMALLBIN_SIZE - SMALLBIN_WIDTH) + + + +/* + To help compensate for the large number of bins, a one-level index + structure is used for bin-by-bin searching. `binblocks' is a + one-word bitvector recording whether groups of BINBLOCKWIDTH bins + have any (possibly) non-empty bins, so they can be skipped over + all at once during during traversals. The bits are NOT always + cleared as soon as all bins in a block are empty, but instead only + when all are noticed to be empty during traversal in malloc. +*/ + +#define BINBLOCKWIDTH 4 /* bins per block */ + +#define binblocks (bin_at(0)->size) /* bitvector of nonempty blocks */ + +/* bin<->block macros */ + +#define idx2binblock(ix) ((unsigned long)1 << (ix / BINBLOCKWIDTH)) +#define mark_binblock(ii) (binblocks |= idx2binblock(ii)) +#define clear_binblock(ii) (binblocks &= ~(idx2binblock(ii))) + + + + + +/* Other static bookkeeping data */ + +#ifdef SEPARATE_OBJECTS +#define trim_threshold malloc_trim_threshold +#define top_pad malloc_top_pad +#define n_mmaps_max malloc_n_mmaps_max +#define mmap_threshold malloc_mmap_threshold +#define sbrk_base malloc_sbrk_base +#define max_sbrked_mem malloc_max_sbrked_mem +#define max_total_mem malloc_max_total_mem +#define current_mallinfo malloc_current_mallinfo +#define n_mmaps malloc_n_mmaps +#define max_n_mmaps malloc_max_n_mmaps +#define mmapped_mem malloc_mmapped_mem +#define max_mmapped_mem malloc_max_mmapped_mem +#endif + +/* variables holding tunable values */ + +#ifdef DEFINE_MALLOC + +STATIC unsigned long trim_threshold = DEFAULT_TRIM_THRESHOLD; +STATIC unsigned long top_pad = DEFAULT_TOP_PAD; +#if HAVE_MMAP +STATIC unsigned int n_mmaps_max = DEFAULT_MMAP_MAX; +STATIC unsigned long mmap_threshold = DEFAULT_MMAP_THRESHOLD; +#endif + +/* The first value returned from sbrk */ +STATIC char* sbrk_base = (char*)(-1); + +/* The maximum memory obtained from system via sbrk */ +STATIC unsigned long max_sbrked_mem = 0; + +/* The maximum via either sbrk or mmap */ +STATIC unsigned long max_total_mem = 0; + +/* internal working copy of mallinfo */ +STATIC struct mallinfo current_mallinfo = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + +#if HAVE_MMAP + +/* Tracking mmaps */ + +STATIC unsigned int n_mmaps = 0; +STATIC unsigned int max_n_mmaps = 0; +STATIC unsigned long mmapped_mem = 0; +STATIC unsigned long max_mmapped_mem = 0; + +#endif + +#else /* ! DEFINE_MALLOC */ + +extern unsigned long trim_threshold; +extern unsigned long top_pad; +#if HAVE_MMAP +extern unsigned int n_mmaps_max; +extern unsigned long mmap_threshold; +#endif +extern char* sbrk_base; +extern unsigned long max_sbrked_mem; +extern unsigned long max_total_mem; +extern struct mallinfo current_mallinfo; +#if HAVE_MMAP +extern unsigned int n_mmaps; +extern unsigned int max_n_mmaps; +extern unsigned long mmapped_mem; +extern unsigned long max_mmapped_mem; +#endif + +#endif /* ! DEFINE_MALLOC */ + +/* The total memory obtained from system via sbrk */ +#define sbrked_mem (current_mallinfo.arena) + + + +/* + Debugging support +*/ + +#if DEBUG + + +/* + These routines make a number of assertions about the states + of data structures that should be true at all times. If any + are not true, it's very likely that a user program has somehow + trashed memory. (It's also possible that there is a coding error + in malloc. In which case, please report it!) +*/ + +#if __STD_C +static void do_check_chunk(mchunkptr p) +#else +static void do_check_chunk(p) mchunkptr p; +#endif +{ + INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; + + /* No checkable chunk is mmapped */ + assert(!chunk_is_mmapped(p)); + + /* Check for legal address ... */ + assert((char*)p >= sbrk_base); + if (p != top) + assert((char*)p + sz <= (char*)top); + else + assert((char*)p + sz <= sbrk_base + sbrked_mem); + +} + + +#if __STD_C +static void do_check_free_chunk(mchunkptr p) +#else +static void do_check_free_chunk(p) mchunkptr p; +#endif +{ + INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; + mchunkptr next = chunk_at_offset(p, sz); + + do_check_chunk(p); + + /* Check whether it claims to be free ... */ + assert(!inuse(p)); + + /* Unless a special marker, must have OK fields */ + if ((long)sz >= (long)MINSIZE) + { + assert((sz & MALLOC_ALIGN_MASK) == 0); + assert(aligned_OK(chunk2mem(p))); + /* ... matching footer field */ + assert(next->prev_size == sz); + /* ... and is fully consolidated */ + assert(prev_inuse(p)); + assert (next == top || inuse(next)); + + /* ... and has minimally sane links */ + assert(p->fd->bk == p); + assert(p->bk->fd == p); + } + else /* markers are always of size SIZE_SZ */ + assert(sz == SIZE_SZ); +} + +#if __STD_C +static void do_check_inuse_chunk(mchunkptr p) +#else +static void do_check_inuse_chunk(p) mchunkptr p; +#endif +{ + mchunkptr next = next_chunk(p); + do_check_chunk(p); + + /* Check whether it claims to be in use ... */ + assert(inuse(p)); + + /* ... and is surrounded by OK chunks. + Since more things can be checked with free chunks than inuse ones, + if an inuse chunk borders them and debug is on, it's worth doing them. + */ + if (!prev_inuse(p)) + { + mchunkptr prv = prev_chunk(p); + assert(next_chunk(prv) == p); + do_check_free_chunk(prv); + } + if (next == top) + { + assert(prev_inuse(next)); + assert(chunksize(next) >= MINSIZE); + } + else if (!inuse(next)) + do_check_free_chunk(next); + +} + +#if __STD_C +static void do_check_malloced_chunk(mchunkptr p, INTERNAL_SIZE_T s) +#else +static void do_check_malloced_chunk(p, s) mchunkptr p; INTERNAL_SIZE_T s; +#endif +{ + INTERNAL_SIZE_T sz = p->size & ~PREV_INUSE; + long room = long_sub_size_t(sz, s); + + do_check_inuse_chunk(p); + + /* Legal size ... */ + assert((long)sz >= (long)MINSIZE); + assert((sz & MALLOC_ALIGN_MASK) == 0); + assert(room >= 0); + assert(room < (long)MINSIZE); + + /* ... and alignment */ + assert(aligned_OK(chunk2mem(p))); + + + /* ... and was allocated at front of an available chunk */ + assert(prev_inuse(p)); + +} + + +#define check_free_chunk(P) do_check_free_chunk(P) +#define check_inuse_chunk(P) do_check_inuse_chunk(P) +#define check_chunk(P) do_check_chunk(P) +#define check_malloced_chunk(P,N) do_check_malloced_chunk(P,N) +#else +#define check_free_chunk(P) +#define check_inuse_chunk(P) +#define check_chunk(P) +#define check_malloced_chunk(P,N) +#endif + + + +/* + Macro-based internal utilities +*/ + + +/* + Linking chunks in bin lists. + Call these only with variables, not arbitrary expressions, as arguments. +*/ + +/* + Place chunk p of size s in its bin, in size order, + putting it ahead of others of same size. +*/ + + +#define frontlink(P, S, IDX, BK, FD) \ +{ \ + if (S < MAX_SMALLBIN_SIZE) \ + { \ + IDX = smallbin_index(S); \ + mark_binblock(IDX); \ + BK = bin_at(IDX); \ + FD = BK->fd; \ + P->bk = BK; \ + P->fd = FD; \ + FD->bk = BK->fd = P; \ + } \ + else \ + { \ + IDX = bin_index(S); \ + BK = bin_at(IDX); \ + FD = BK->fd; \ + if (FD == BK) mark_binblock(IDX); \ + else \ + { \ + while (FD != BK && S < chunksize(FD)) FD = FD->fd; \ + BK = FD->bk; \ + } \ + P->bk = BK; \ + P->fd = FD; \ + FD->bk = BK->fd = P; \ + } \ +} + + +/* take a chunk off a list */ + +#define unlink(P, BK, FD) \ +{ \ + BK = P->bk; \ + FD = P->fd; \ + FD->bk = BK; \ + BK->fd = FD; \ +} \ + +/* Place p as the last remainder */ + +#define link_last_remainder(P) \ +{ \ + last_remainder->fd = last_remainder->bk = P; \ + P->fd = P->bk = last_remainder; \ +} + +/* Clear the last_remainder bin */ + +#define clear_last_remainder \ + (last_remainder->fd = last_remainder->bk = last_remainder) + + + + + + +/* Routines dealing with mmap(). */ + +#if HAVE_MMAP + +#ifdef DEFINE_MALLOC + +#if __STD_C +static mchunkptr mmap_chunk(size_t size) +#else +static mchunkptr mmap_chunk(size) size_t size; +#endif +{ + size_t page_mask = malloc_getpagesize - 1; + mchunkptr p; + +#ifndef MAP_ANONYMOUS + static int fd = -1; +#endif + + if(n_mmaps >= n_mmaps_max) return 0; /* too many regions */ + + /* For mmapped chunks, the overhead is one SIZE_SZ unit larger, because + * there is no following chunk whose prev_size field could be used. + */ + size = (size + SIZE_SZ + page_mask) & ~page_mask; + +#ifdef MAP_ANONYMOUS + p = (mchunkptr)mmap(0, size, PROT_READ|PROT_WRITE, + MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); +#else /* !MAP_ANONYMOUS */ + if (fd < 0) + { + fd = open("/dev/zero", O_RDWR); + if(fd < 0) return 0; + } + p = (mchunkptr)mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); +#endif + + if(p == (mchunkptr)-1) return 0; + + n_mmaps++; + if (n_mmaps > max_n_mmaps) max_n_mmaps = n_mmaps; + + /* We demand that eight bytes into a page must be 8-byte aligned. */ + assert(aligned_OK(chunk2mem(p))); + + /* The offset to the start of the mmapped region is stored + * in the prev_size field of the chunk; normally it is zero, + * but that can be changed in memalign(). + */ + p->prev_size = 0; + set_head(p, size|IS_MMAPPED); + + mmapped_mem += size; + if ((unsigned long)mmapped_mem > (unsigned long)max_mmapped_mem) + max_mmapped_mem = mmapped_mem; + if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) + max_total_mem = mmapped_mem + sbrked_mem; + return p; +} + +#endif /* DEFINE_MALLOC */ + +#ifdef SEPARATE_OBJECTS +#define munmap_chunk malloc_munmap_chunk +#endif + +#ifdef DEFINE_FREE + +#if __STD_C +STATIC void munmap_chunk(mchunkptr p) +#else +STATIC void munmap_chunk(p) mchunkptr p; +#endif +{ + INTERNAL_SIZE_T size = chunksize(p); + int ret; + + assert (chunk_is_mmapped(p)); + assert(! ((char*)p >= sbrk_base && (char*)p < sbrk_base + sbrked_mem)); + assert((n_mmaps > 0)); + assert(((p->prev_size + size) & (malloc_getpagesize-1)) == 0); + + n_mmaps--; + mmapped_mem -= (size + p->prev_size); + + ret = munmap((char *)p - p->prev_size, size + p->prev_size); + + /* munmap returns non-zero on failure */ + assert(ret == 0); +} + +#else /* ! DEFINE_FREE */ + +#if __STD_C +extern void munmap_chunk(mchunkptr); +#else +extern void munmap_chunk(); +#endif + +#endif /* ! DEFINE_FREE */ + +#if HAVE_MREMAP + +#ifdef DEFINE_REALLOC + +#if __STD_C +static mchunkptr mremap_chunk(mchunkptr p, size_t new_size) +#else +static mchunkptr mremap_chunk(p, new_size) mchunkptr p; size_t new_size; +#endif +{ + size_t page_mask = malloc_getpagesize - 1; + INTERNAL_SIZE_T offset = p->prev_size; + INTERNAL_SIZE_T size = chunksize(p); + char *cp; + + assert (chunk_is_mmapped(p)); + assert(! ((char*)p >= sbrk_base && (char*)p < sbrk_base + sbrked_mem)); + assert((n_mmaps > 0)); + assert(((size + offset) & (malloc_getpagesize-1)) == 0); + + /* Note the extra SIZE_SZ overhead as in mmap_chunk(). */ + new_size = (new_size + offset + SIZE_SZ + page_mask) & ~page_mask; + + cp = (char *)mremap((char *)p - offset, size + offset, new_size, 1); + + if (cp == (char *)-1) return 0; + + p = (mchunkptr)(cp + offset); + + assert(aligned_OK(chunk2mem(p))); + + assert((p->prev_size == offset)); + set_head(p, (new_size - offset)|IS_MMAPPED); + + mmapped_mem -= size + offset; + mmapped_mem += new_size; + if ((unsigned long)mmapped_mem > (unsigned long)max_mmapped_mem) + max_mmapped_mem = mmapped_mem; + if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) + max_total_mem = mmapped_mem + sbrked_mem; + return p; +} + +#endif /* DEFINE_REALLOC */ + +#endif /* HAVE_MREMAP */ + +#endif /* HAVE_MMAP */ + + + + +#ifdef DEFINE_MALLOC + +/* + Extend the top-most chunk by obtaining memory from system. + Main interface to sbrk (but see also malloc_trim). +*/ + +#if __STD_C +static void malloc_extend_top(RARG INTERNAL_SIZE_T nb) +#else +static void malloc_extend_top(RARG nb) RDECL INTERNAL_SIZE_T nb; +#endif +{ + char* brk; /* return value from sbrk */ + INTERNAL_SIZE_T front_misalign; /* unusable bytes at front of sbrked space */ + INTERNAL_SIZE_T correction; /* bytes for 2nd sbrk call */ + char* new_brk; /* return of 2nd sbrk call */ + INTERNAL_SIZE_T top_size; /* new size of top chunk */ + + mchunkptr old_top = top; /* Record state of old top */ + INTERNAL_SIZE_T old_top_size = chunksize(old_top); + char* old_end = (char*)(chunk_at_offset(old_top, old_top_size)); + + /* Pad request with top_pad plus minimal overhead */ + + INTERNAL_SIZE_T sbrk_size = nb + top_pad + MINSIZE; + unsigned long pagesz = malloc_getpagesize; + + /* If not the first time through, round to preserve page boundary */ + /* Otherwise, we need to correct to a page size below anyway. */ + /* (We also correct below if an intervening foreign sbrk call.) */ + + if (sbrk_base != (char*)(-1)) + sbrk_size = (sbrk_size + (pagesz - 1)) & ~(pagesz - 1); + + brk = (char*)(MORECORE (sbrk_size)); + + /* Fail if sbrk failed or if a foreign sbrk call killed our space */ + if (brk == (char*)(MORECORE_FAILURE) || + (brk < old_end && old_top != initial_top)) + return; + + sbrked_mem += sbrk_size; + + if (brk == old_end) /* can just add bytes to current top */ + { + top_size = sbrk_size + old_top_size; + set_head(top, top_size | PREV_INUSE); + } + else + { + if (sbrk_base == (char*)(-1)) /* First time through. Record base */ + sbrk_base = brk; + else /* Someone else called sbrk(). Count those bytes as sbrked_mem. */ + sbrked_mem += brk - (char*)old_end; + + /* Guarantee alignment of first new chunk made from this space */ + front_misalign = (POINTER_UINT)chunk2mem(brk) & MALLOC_ALIGN_MASK; + if (front_misalign > 0) + { + correction = (MALLOC_ALIGNMENT) - front_misalign; + brk += correction; + } + else + correction = 0; + + /* Guarantee the next brk will be at a page boundary */ + correction += pagesz - ((POINTER_UINT)(brk + sbrk_size) & (pagesz - 1)); + + /* Allocate correction */ + new_brk = (char*)(MORECORE (correction)); + if (new_brk == (char*)(MORECORE_FAILURE)) return; + + sbrked_mem += correction; + + top = (mchunkptr)brk; + top_size = new_brk - brk + correction; + set_head(top, top_size | PREV_INUSE); + + if (old_top != initial_top) + { + + /* There must have been an intervening foreign sbrk call. */ + /* A double fencepost is necessary to prevent consolidation */ + + /* If not enough space to do this, then user did something very wrong */ + if (old_top_size < MINSIZE) + { + set_head(top, PREV_INUSE); /* will force null return from malloc */ + return; + } + + /* Also keep size a multiple of MALLOC_ALIGNMENT */ + old_top_size = (old_top_size - 3*SIZE_SZ) & ~MALLOC_ALIGN_MASK; + set_head_size(old_top, old_top_size); + chunk_at_offset(old_top, old_top_size )->size = + SIZE_SZ|PREV_INUSE; + chunk_at_offset(old_top, old_top_size + SIZE_SZ)->size = + SIZE_SZ|PREV_INUSE; + /* If possible, release the rest. */ + if (old_top_size >= MINSIZE) + fREe(RCALL chunk2mem(old_top)); + } + } + + if ((unsigned long)sbrked_mem > (unsigned long)max_sbrked_mem) + max_sbrked_mem = sbrked_mem; +#if HAVE_MMAP + if ((unsigned long)(mmapped_mem + sbrked_mem) > (unsigned long)max_total_mem) + max_total_mem = mmapped_mem + sbrked_mem; +#else + if ((unsigned long)(sbrked_mem) > (unsigned long)max_total_mem) + max_total_mem = sbrked_mem; +#endif + + /* We always land on a page boundary */ + assert(((unsigned long)((char*)top + top_size) & (pagesz - 1)) == 0); +} + +#endif /* DEFINE_MALLOC */ + + +/* Main public routines */ + +#ifdef DEFINE_MALLOC + +/* + Malloc Algorthim: + + The requested size is first converted into a usable form, `nb'. + This currently means to add 4 bytes overhead plus possibly more to + obtain 8-byte alignment and/or to obtain a size of at least + MINSIZE (currently 16 bytes), the smallest allocatable size. + (All fits are considered `exact' if they are within MINSIZE bytes.) + + From there, the first successful of the following steps is taken: + + 1. The bin corresponding to the request size is scanned, and if + a chunk of exactly the right size is found, it is taken. + + 2. The most recently remaindered chunk is used if it is big + enough. This is a form of (roving) first fit, used only in + the absence of exact fits. Runs of consecutive requests use + the remainder of the chunk used for the previous such request + whenever possible. This limited use of a first-fit style + allocation strategy tends to give contiguous chunks + coextensive lifetimes, which improves locality and can reduce + fragmentation in the long run. + + 3. Other bins are scanned in increasing size order, using a + chunk big enough to fulfill the request, and splitting off + any remainder. This search is strictly by best-fit; i.e., + the smallest (with ties going to approximately the least + recently used) chunk that fits is selected. + + 4. If large enough, the chunk bordering the end of memory + (`top') is split off. (This use of `top' is in accord with + the best-fit search rule. In effect, `top' is treated as + larger (and thus less well fitting) than any other available + chunk since it can be extended to be as large as necessary + (up to system limitations). + + 5. If the request size meets the mmap threshold and the + system supports mmap, and there are few enough currently + allocated mmapped regions, and a call to mmap succeeds, + the request is allocated via direct memory mapping. + + 6. Otherwise, the top of memory is extended by + obtaining more space from the system (normally using sbrk, + but definable to anything else via the MORECORE macro). + Memory is gathered from the system (in system page-sized + units) in a way that allows chunks obtained across different + sbrk calls to be consolidated, but does not require + contiguous memory. Thus, it should be safe to intersperse + mallocs with other sbrk calls. + + + All allocations are made from the the `lowest' part of any found + chunk. (The implementation invariant is that prev_inuse is + always true of any allocated chunk; i.e., that each allocated + chunk borders either a previously allocated and still in-use chunk, + or the base of its memory arena.) + +*/ + +#if __STD_C +Void_t* mALLOc(RARG size_t bytes) +#else +Void_t* mALLOc(RARG bytes) RDECL size_t bytes; +#endif +{ +#ifdef MALLOC_PROVIDED + + malloc (bytes); + +#else + + mchunkptr victim; /* inspected/selected chunk */ + INTERNAL_SIZE_T victim_size; /* its size */ + int idx; /* index for bin traversal */ + mbinptr bin; /* associated bin */ + mchunkptr remainder; /* remainder from a split */ + long remainder_size; /* its size */ + int remainder_index; /* its bin index */ + unsigned long block; /* block traverser bit */ + int startidx; /* first bin of a traversed block */ + mchunkptr fwd; /* misc temp for linking */ + mchunkptr bck; /* misc temp for linking */ + mbinptr q; /* misc temp */ + + INTERNAL_SIZE_T nb = request2size(bytes); /* padded request size; */ + + MALLOC_LOCK; + + /* Check for exact match in a bin */ + + if (is_small_request(nb)) /* Faster version for small requests */ + { + idx = smallbin_index(nb); + + /* No traversal or size check necessary for small bins. */ + + q = bin_at(idx); + victim = last(q); + +#if MALLOC_ALIGN != 16 + /* Also scan the next one, since it would have a remainder < MINSIZE */ + if (victim == q) + { + q = next_bin(q); + victim = last(q); + } +#endif + if (victim != q) + { + victim_size = chunksize(victim); + unlink(victim, bck, fwd); + set_inuse_bit_at_offset(victim, victim_size); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + + idx += 2; /* Set for bin scan below. We've already scanned 2 bins. */ + + } + else + { + idx = bin_index(nb); + bin = bin_at(idx); + + for (victim = last(bin); victim != bin; victim = victim->bk) + { + victim_size = chunksize(victim); + remainder_size = long_sub_size_t(victim_size, nb); + + if (remainder_size >= (long)MINSIZE) /* too big */ + { + --idx; /* adjust to rescan below after checking last remainder */ + break; + } + + else if (remainder_size >= 0) /* exact fit */ + { + unlink(victim, bck, fwd); + set_inuse_bit_at_offset(victim, victim_size); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + } + + ++idx; + + } + + /* Try to use the last split-off remainder */ + + if ( (victim = last_remainder->fd) != last_remainder) + { + victim_size = chunksize(victim); + remainder_size = long_sub_size_t(victim_size, nb); + + if (remainder_size >= (long)MINSIZE) /* re-split */ + { + remainder = chunk_at_offset(victim, nb); + set_head(victim, nb | PREV_INUSE); + link_last_remainder(remainder); + set_head(remainder, remainder_size | PREV_INUSE); + set_foot(remainder, remainder_size); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + + clear_last_remainder; + + if (remainder_size >= 0) /* exhaust */ + { + set_inuse_bit_at_offset(victim, victim_size); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + + /* Else place in bin */ + + frontlink(victim, victim_size, remainder_index, bck, fwd); + } + + /* + If there are any possibly nonempty big-enough blocks, + search for best fitting chunk by scanning bins in blockwidth units. + */ + + if ( (block = idx2binblock(idx)) <= binblocks) + { + + /* Get to the first marked block */ + + if ( (block & binblocks) == 0) + { + /* force to an even block boundary */ + idx = (idx & ~(BINBLOCKWIDTH - 1)) + BINBLOCKWIDTH; + block <<= 1; + while ((block & binblocks) == 0) + { + idx += BINBLOCKWIDTH; + block <<= 1; + } + } + + /* For each possibly nonempty block ... */ + for (;;) + { + startidx = idx; /* (track incomplete blocks) */ + q = bin = bin_at(idx); + + /* For each bin in this block ... */ + do + { + /* Find and use first big enough chunk ... */ + + for (victim = last(bin); victim != bin; victim = victim->bk) + { + victim_size = chunksize(victim); + remainder_size = long_sub_size_t(victim_size, nb); + + if (remainder_size >= (long)MINSIZE) /* split */ + { + remainder = chunk_at_offset(victim, nb); + set_head(victim, nb | PREV_INUSE); + unlink(victim, bck, fwd); + link_last_remainder(remainder); + set_head(remainder, remainder_size | PREV_INUSE); + set_foot(remainder, remainder_size); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + + else if (remainder_size >= 0) /* take */ + { + set_inuse_bit_at_offset(victim, victim_size); + unlink(victim, bck, fwd); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + } + + } + + bin = next_bin(bin); + +#if MALLOC_ALIGN == 16 + if (idx < MAX_SMALLBIN) + { + bin = next_bin(bin); + ++idx; + } +#endif + } while ((++idx & (BINBLOCKWIDTH - 1)) != 0); + + /* Clear out the block bit. */ + + do /* Possibly backtrack to try to clear a partial block */ + { + if ((startidx & (BINBLOCKWIDTH - 1)) == 0) + { + binblocks &= ~block; + break; + } + --startidx; + q = prev_bin(q); + } while (first(q) == q); + + /* Get to the next possibly nonempty block */ + + if ( (block <<= 1) <= binblocks && (block != 0) ) + { + while ((block & binblocks) == 0) + { + idx += BINBLOCKWIDTH; + block <<= 1; + } + } + else + break; + } + } + + + /* Try to use top chunk */ + + /* Require that there be a remainder, ensuring top always exists */ + remainder_size = long_sub_size_t(chunksize(top), nb); + if (chunksize(top) < nb || remainder_size < (long)MINSIZE) + { + +#if HAVE_MMAP + /* If big and would otherwise need to extend, try to use mmap instead */ + if ((unsigned long)nb >= (unsigned long)mmap_threshold && + (victim = mmap_chunk(nb)) != 0) + { + MALLOC_UNLOCK; + return chunk2mem(victim); + } +#endif + + /* Try to extend */ + malloc_extend_top(RCALL nb); + remainder_size = long_sub_size_t(chunksize(top), nb); + if (chunksize(top) < nb || remainder_size < (long)MINSIZE) + { + MALLOC_UNLOCK; + return 0; /* propagate failure */ + } + } + + victim = top; + set_head(victim, nb | PREV_INUSE); + top = chunk_at_offset(victim, nb); + set_head(top, remainder_size | PREV_INUSE); + check_malloced_chunk(victim, nb); + MALLOC_UNLOCK; + return chunk2mem(victim); + +#endif /* MALLOC_PROVIDED */ +} + +#endif /* DEFINE_MALLOC */ + +#ifdef DEFINE_FREE + +/* + + free() algorithm : + + cases: + + 1. free(0) has no effect. + + 2. If the chunk was allocated via mmap, it is release via munmap(). + + 3. If a returned chunk borders the current high end of memory, + it is consolidated into the top, and if the total unused + topmost memory exceeds the trim threshold, malloc_trim is + called. + + 4. Other chunks are consolidated as they arrive, and + placed in corresponding bins. (This includes the case of + consolidating with the current `last_remainder'). + +*/ + + +#if __STD_C +void fREe(RARG Void_t* mem) +#else +void fREe(RARG mem) RDECL Void_t* mem; +#endif +{ +#ifdef MALLOC_PROVIDED + + free (mem); + +#else + + mchunkptr p; /* chunk corresponding to mem */ + INTERNAL_SIZE_T hd; /* its head field */ + INTERNAL_SIZE_T sz; /* its size */ + int idx; /* its bin index */ + mchunkptr next; /* next contiguous chunk */ + INTERNAL_SIZE_T nextsz; /* its size */ + INTERNAL_SIZE_T prevsz; /* size of previous contiguous chunk */ + mchunkptr bck; /* misc temp for linking */ + mchunkptr fwd; /* misc temp for linking */ + int islr; /* track whether merging with last_remainder */ + + if (mem == 0) /* free(0) has no effect */ + return; + + MALLOC_LOCK; + + p = mem2chunk(mem); + hd = p->size; + +#if HAVE_MMAP + if (hd & IS_MMAPPED) /* release mmapped memory. */ + { + munmap_chunk(p); + MALLOC_UNLOCK; + return; + } +#endif + + check_inuse_chunk(p); + + sz = hd & ~PREV_INUSE; + next = chunk_at_offset(p, sz); + nextsz = chunksize(next); + + if (next == top) /* merge with top */ + { + sz += nextsz; + + if (!(hd & PREV_INUSE)) /* consolidate backward */ + { + prevsz = p->prev_size; + p = chunk_at_offset(p, -prevsz); + sz += prevsz; + unlink(p, bck, fwd); + } + + set_head(p, sz | PREV_INUSE); + top = p; + if ((unsigned long)(sz) >= (unsigned long)trim_threshold) + malloc_trim(RCALL top_pad); + MALLOC_UNLOCK; + return; + } + + set_head(next, nextsz); /* clear inuse bit */ + + islr = 0; + + if (!(hd & PREV_INUSE)) /* consolidate backward */ + { + prevsz = p->prev_size; + p = chunk_at_offset(p, -prevsz); + sz += prevsz; + + if (p->fd == last_remainder) /* keep as last_remainder */ + islr = 1; + else + unlink(p, bck, fwd); + } + + if (!(inuse_bit_at_offset(next, nextsz))) /* consolidate forward */ + { + sz += nextsz; + + if (!islr && next->fd == last_remainder) /* re-insert last_remainder */ + { + islr = 1; + link_last_remainder(p); + } + else + unlink(next, bck, fwd); + } + + + set_head(p, sz | PREV_INUSE); + set_foot(p, sz); + if (!islr) + frontlink(p, sz, idx, bck, fwd); + + MALLOC_UNLOCK; + +#endif /* MALLOC_PROVIDED */ +} + +#endif /* DEFINE_FREE */ + +#ifdef DEFINE_REALLOC + +/* + + Realloc algorithm: + + Chunks that were obtained via mmap cannot be extended or shrunk + unless HAVE_MREMAP is defined, in which case mremap is used. + Otherwise, if their reallocation is for additional space, they are + copied. If for less, they are just left alone. + + Otherwise, if the reallocation is for additional space, and the + chunk can be extended, it is, else a malloc-copy-free sequence is + taken. There are several different ways that a chunk could be + extended. All are tried: + + * Extending forward into following adjacent free chunk. + * Shifting backwards, joining preceding adjacent space + * Both shifting backwards and extending forward. + * Extending into newly sbrked space + + Unless the #define REALLOC_ZERO_BYTES_FREES is set, realloc with a + size argument of zero (re)allocates a minimum-sized chunk. + + If the reallocation is for less space, and the new request is for + a `small' (<512 bytes) size, then the newly unused space is lopped + off and freed. + + The old unix realloc convention of allowing the last-free'd chunk + to be used as an argument to realloc is no longer supported. + I don't know of any programs still relying on this feature, + and allowing it would also allow too many other incorrect + usages of realloc to be sensible. + + +*/ + + +#if __STD_C +Void_t* rEALLOc(RARG Void_t* oldmem, size_t bytes) +#else +Void_t* rEALLOc(RARG oldmem, bytes) RDECL Void_t* oldmem; size_t bytes; +#endif +{ +#ifdef MALLOC_PROVIDED + + realloc (oldmem, bytes); + +#else + + INTERNAL_SIZE_T nb; /* padded request size */ + + mchunkptr oldp; /* chunk corresponding to oldmem */ + INTERNAL_SIZE_T oldsize; /* its size */ + + mchunkptr newp; /* chunk to return */ + INTERNAL_SIZE_T newsize; /* its size */ + Void_t* newmem; /* corresponding user mem */ + + mchunkptr next; /* next contiguous chunk after oldp */ + INTERNAL_SIZE_T nextsize; /* its size */ + + mchunkptr prev; /* previous contiguous chunk before oldp */ + INTERNAL_SIZE_T prevsize; /* its size */ + + mchunkptr remainder; /* holds split off extra space from newp */ + INTERNAL_SIZE_T remainder_size; /* its size */ + + mchunkptr bck; /* misc temp for linking */ + mchunkptr fwd; /* misc temp for linking */ + +#ifdef REALLOC_ZERO_BYTES_FREES + if (bytes == 0) { fREe(RCALL oldmem); return 0; } +#endif + + + /* realloc of null is supposed to be same as malloc */ + if (oldmem == 0) return mALLOc(RCALL bytes); + + MALLOC_LOCK; + + newp = oldp = mem2chunk(oldmem); + newsize = oldsize = chunksize(oldp); + + + nb = request2size(bytes); + +#if HAVE_MMAP + if (chunk_is_mmapped(oldp)) + { +#if HAVE_MREMAP + newp = mremap_chunk(oldp, nb); + if(newp) + { + MALLOC_UNLOCK; + return chunk2mem(newp); + } +#endif + /* Note the extra SIZE_SZ overhead. */ + if(oldsize - SIZE_SZ >= nb) + { + MALLOC_UNLOCK; + return oldmem; /* do nothing */ + } + /* Must alloc, copy, free. */ + newmem = mALLOc(RCALL bytes); + if (newmem == 0) + { + MALLOC_UNLOCK; + return 0; /* propagate failure */ + } + MALLOC_COPY(newmem, oldmem, oldsize - 2*SIZE_SZ); + munmap_chunk(oldp); + MALLOC_UNLOCK; + return newmem; + } +#endif + + check_inuse_chunk(oldp); + + if ((long)(oldsize) < (long)(nb)) + { + + /* Try expanding forward */ + + next = chunk_at_offset(oldp, oldsize); + if (next == top || !inuse(next)) + { + nextsize = chunksize(next); + + /* Forward into top only if a remainder */ + if (next == top) + { + if ((long)(nextsize + newsize) >= (long)(nb + MINSIZE)) + { + newsize += nextsize; + top = chunk_at_offset(oldp, nb); + set_head(top, (newsize - nb) | PREV_INUSE); + set_head_size(oldp, nb); + MALLOC_UNLOCK; + return chunk2mem(oldp); + } + } + + /* Forward into next chunk */ + else if (((long)(nextsize + newsize) >= (long)(nb))) + { + unlink(next, bck, fwd); + newsize += nextsize; + goto split; + } + } + else + { + next = 0; + nextsize = 0; + } + + /* Try shifting backwards. */ + + if (!prev_inuse(oldp)) + { + prev = prev_chunk(oldp); + prevsize = chunksize(prev); + + /* try forward + backward first to save a later consolidation */ + + if (next != 0) + { + /* into top */ + if (next == top) + { + if ((long)(nextsize + prevsize + newsize) >= (long)(nb + MINSIZE)) + { + unlink(prev, bck, fwd); + newp = prev; + newsize += prevsize + nextsize; + newmem = chunk2mem(newp); + MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); + top = chunk_at_offset(newp, nb); + set_head(top, (newsize - nb) | PREV_INUSE); + set_head_size(newp, nb); + MALLOC_UNLOCK; + return newmem; + } + } + + /* into next chunk */ + else if (((long)(nextsize + prevsize + newsize) >= (long)(nb))) + { + unlink(next, bck, fwd); + unlink(prev, bck, fwd); + newp = prev; + newsize += nextsize + prevsize; + newmem = chunk2mem(newp); + MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); + goto split; + } + } + + /* backward only */ + if (prev != 0 && (long)(prevsize + newsize) >= (long)nb) + { + unlink(prev, bck, fwd); + newp = prev; + newsize += prevsize; + newmem = chunk2mem(newp); + MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); + goto split; + } + } + + /* Must allocate */ + + newmem = mALLOc (RCALL bytes); + + if (newmem == 0) /* propagate failure */ + { + MALLOC_UNLOCK; + return 0; + } + + /* Avoid copy if newp is next chunk after oldp. */ + /* (This can only happen when new chunk is sbrk'ed.) */ + + if ( (newp = mem2chunk(newmem)) == next_chunk(oldp)) + { + newsize += chunksize(newp); + newp = oldp; + goto split; + } + + /* Otherwise copy, free, and exit */ + MALLOC_COPY(newmem, oldmem, oldsize - SIZE_SZ); + fREe(RCALL oldmem); + MALLOC_UNLOCK; + return newmem; + } + + + split: /* split off extra room in old or expanded chunk */ + + remainder_size = long_sub_size_t(newsize, nb); + + if (remainder_size >= (long)MINSIZE) /* split off remainder */ + { + remainder = chunk_at_offset(newp, nb); + set_head_size(newp, nb); + set_head(remainder, remainder_size | PREV_INUSE); + set_inuse_bit_at_offset(remainder, remainder_size); + fREe(RCALL chunk2mem(remainder)); /* let free() deal with it */ + } + else + { + set_head_size(newp, newsize); + set_inuse_bit_at_offset(newp, newsize); + } + + check_inuse_chunk(newp); + MALLOC_UNLOCK; + return chunk2mem(newp); + +#endif /* MALLOC_PROVIDED */ +} + +#endif /* DEFINE_REALLOC */ + +#ifdef DEFINE_MEMALIGN + +/* + + memalign algorithm: + + memalign requests more than enough space from malloc, finds a spot + within that chunk that meets the alignment request, and then + possibly frees the leading and trailing space. + + The alignment argument must be a power of two. This property is not + checked by memalign, so misuse may result in random runtime errors. + + 8-byte alignment is guaranteed by normal malloc calls, so don't + bother calling memalign with an argument of 8 or less. + + Overreliance on memalign is a sure way to fragment space. + +*/ + + +#if __STD_C +Void_t* mEMALIGn(RARG size_t alignment, size_t bytes) +#else +Void_t* mEMALIGn(RARG alignment, bytes) RDECL size_t alignment; size_t bytes; +#endif +{ + INTERNAL_SIZE_T nb; /* padded request size */ + char* m; /* memory returned by malloc call */ + mchunkptr p; /* corresponding chunk */ + char* brk; /* alignment point within p */ + mchunkptr newp; /* chunk to return */ + INTERNAL_SIZE_T newsize; /* its size */ + INTERNAL_SIZE_T leadsize; /* leading space befor alignment point */ + mchunkptr remainder; /* spare room at end to split off */ + long remainder_size; /* its size */ + + /* If need less alignment than we give anyway, just relay to malloc */ + + if (alignment <= MALLOC_ALIGNMENT) return mALLOc(RCALL bytes); + + /* Otherwise, ensure that it is at least a minimum chunk size */ + + if (alignment < MINSIZE) alignment = MINSIZE; + + /* Call malloc with worst case padding to hit alignment. */ + + nb = request2size(bytes); + m = (char*)(mALLOc(RCALL nb + alignment + MINSIZE)); + + if (m == 0) return 0; /* propagate failure */ + + MALLOC_LOCK; + + p = mem2chunk(m); + + if ((((unsigned long)(m)) % alignment) == 0) /* aligned */ + { +#if HAVE_MMAP + if(chunk_is_mmapped(p)) + { + MALLOC_UNLOCK; + return chunk2mem(p); /* nothing more to do */ + } +#endif + } + else /* misaligned */ + { + /* + Find an aligned spot inside chunk. + Since we need to give back leading space in a chunk of at + least MINSIZE, if the first calculation places us at + a spot with less than MINSIZE leader, we can move to the + next aligned spot -- we've allocated enough total room so that + this is always possible. + */ + + brk = (char*)mem2chunk(((unsigned long)(m + alignment - 1)) & -alignment); + if ((long)(brk - (char*)(p)) < (long)MINSIZE) brk = brk + alignment; + + newp = (mchunkptr)brk; + leadsize = brk - (char*)(p); + newsize = chunksize(p) - leadsize; + +#if HAVE_MMAP + if(chunk_is_mmapped(p)) + { + newp->prev_size = p->prev_size + leadsize; + set_head(newp, newsize|IS_MMAPPED); + MALLOC_UNLOCK; + return chunk2mem(newp); + } +#endif + + /* give back leader, use the rest */ + + set_head(newp, newsize | PREV_INUSE); + set_inuse_bit_at_offset(newp, newsize); + set_head_size(p, leadsize); + fREe(RCALL chunk2mem(p)); + p = newp; + + assert (newsize >= nb && (((unsigned long)(chunk2mem(p))) % alignment) == 0); + } + + /* Also give back spare room at the end */ + + remainder_size = long_sub_size_t(chunksize(p), nb); + + if (remainder_size >= (long)MINSIZE) + { + remainder = chunk_at_offset(p, nb); + set_head(remainder, remainder_size | PREV_INUSE); + set_head_size(p, nb); + fREe(RCALL chunk2mem(remainder)); + } + + check_inuse_chunk(p); + MALLOC_UNLOCK; + return chunk2mem(p); + +} + +#endif /* DEFINE_MEMALIGN */ + +#ifdef DEFINE_VALLOC + +/* + valloc just invokes memalign with alignment argument equal + to the page size of the system (or as near to this as can + be figured out from all the includes/defines above.) +*/ + +#if __STD_C +Void_t* vALLOc(RARG size_t bytes) +#else +Void_t* vALLOc(RARG bytes) RDECL size_t bytes; +#endif +{ + return mEMALIGn (RCALL malloc_getpagesize, bytes); +} + +#endif /* DEFINE_VALLOC */ + +#ifdef DEFINE_PVALLOC + +/* + pvalloc just invokes valloc for the nearest pagesize + that will accommodate request +*/ + + +#if __STD_C +Void_t* pvALLOc(RARG size_t bytes) +#else +Void_t* pvALLOc(RARG bytes) RDECL size_t bytes; +#endif +{ + size_t pagesize = malloc_getpagesize; + return mEMALIGn (RCALL pagesize, (bytes + pagesize - 1) & ~(pagesize - 1)); +} + +#endif /* DEFINE_PVALLOC */ + +#ifdef DEFINE_CALLOC + +/* + + calloc calls malloc, then zeroes out the allocated chunk. + +*/ + +#if __STD_C +Void_t* cALLOc(RARG size_t n, size_t elem_size) +#else +Void_t* cALLOc(RARG n, elem_size) RDECL size_t n; size_t elem_size; +#endif +{ + mchunkptr p; + INTERNAL_SIZE_T csz; + + INTERNAL_SIZE_T sz = n * elem_size; + +#if MORECORE_CLEARS + mchunkptr oldtop; + INTERNAL_SIZE_T oldtopsize; +#endif + Void_t* mem; + + /* check if expand_top called, in which case don't need to clear */ +#if MORECORE_CLEARS + MALLOC_LOCK; + oldtop = top; + oldtopsize = chunksize(top); +#endif + + mem = mALLOc (RCALL sz); + + if (mem == 0) + { +#if MORECORE_CLEARS + MALLOC_UNLOCK; +#endif + return 0; + } + else + { + p = mem2chunk(mem); + + /* Two optional cases in which clearing not necessary */ + + +#if HAVE_MMAP + if (chunk_is_mmapped(p)) + { +#if MORECORE_CLEARS + MALLOC_UNLOCK; +#endif + return mem; + } +#endif + + csz = chunksize(p); + +#if MORECORE_CLEARS + if (p == oldtop && csz > oldtopsize) + { + /* clear only the bytes from non-freshly-sbrked memory */ + csz = oldtopsize; + } + MALLOC_UNLOCK; +#endif + + MALLOC_ZERO(mem, csz - SIZE_SZ); + return mem; + } +} + +#endif /* DEFINE_CALLOC */ + +#ifdef DEFINE_CFREE + +/* + + cfree just calls free. It is needed/defined on some systems + that pair it with calloc, presumably for odd historical reasons. + +*/ + +#if !defined(INTERNAL_LINUX_C_LIB) || !defined(__ELF__) +#if !defined(INTERNAL_NEWLIB) || !defined(_REENT_ONLY) +#if __STD_C +void cfree(Void_t *mem) +#else +void cfree(mem) Void_t *mem; +#endif +{ +#ifdef INTERNAL_NEWLIB + fREe(_REENT, mem); +#else + fREe(mem); +#endif +} +#endif +#endif + +#endif /* DEFINE_CFREE */ + +#ifdef DEFINE_FREE + +/* + + Malloc_trim gives memory back to the system (via negative + arguments to sbrk) if there is unused memory at the `high' end of + the malloc pool. You can call this after freeing large blocks of + memory to potentially reduce the system-level memory requirements + of a program. However, it cannot guarantee to reduce memory. Under + some allocation patterns, some large free blocks of memory will be + locked between two used chunks, so they cannot be given back to + the system. + + The `pad' argument to malloc_trim represents the amount of free + trailing space to leave untrimmed. If this argument is zero, + only the minimum amount of memory to maintain internal data + structures will be left (one page or less). Non-zero arguments + can be supplied to maintain enough trailing space to service + future expected allocations without having to re-obtain memory + from the system. + + Malloc_trim returns 1 if it actually released any memory, else 0. + +*/ + +#if __STD_C +int malloc_trim(RARG size_t pad) +#else +int malloc_trim(RARG pad) RDECL size_t pad; +#endif +{ + long top_size; /* Amount of top-most memory */ + long extra; /* Amount to release */ + char* current_brk; /* address returned by pre-check sbrk call */ + char* new_brk; /* address returned by negative sbrk call */ + + unsigned long pagesz = malloc_getpagesize; + + MALLOC_LOCK; + + top_size = chunksize(top); + extra = ((top_size - pad - MINSIZE + (pagesz-1)) / pagesz - 1) * pagesz; + + if (extra < (long)pagesz) /* Not enough memory to release */ + { + MALLOC_UNLOCK; + return 0; + } + + else + { + /* Test to make sure no one else called sbrk */ + current_brk = (char*)(MORECORE (0)); + if (current_brk != (char*)(top) + top_size) + { + MALLOC_UNLOCK; + return 0; /* Apparently we don't own memory; must fail */ + } + + else + { + new_brk = (char*)(MORECORE (-extra)); + + if (new_brk == (char*)(MORECORE_FAILURE)) /* sbrk failed? */ + { + /* Try to figure out what we have */ + current_brk = (char*)(MORECORE (0)); + top_size = current_brk - (char*)top; + if (top_size >= (long)MINSIZE) /* if not, we are very very dead! */ + { + sbrked_mem = current_brk - sbrk_base; + set_head(top, top_size | PREV_INUSE); + } + check_chunk(top); + MALLOC_UNLOCK; + return 0; + } + + else + { + /* Success. Adjust top accordingly. */ + set_head(top, (top_size - extra) | PREV_INUSE); + sbrked_mem -= extra; + check_chunk(top); + MALLOC_UNLOCK; + return 1; + } + } + } +} + +#endif /* DEFINE_FREE */ + +#ifdef DEFINE_MALLOC_USABLE_SIZE + +/* + malloc_usable_size: + + This routine tells you how many bytes you can actually use in an + allocated chunk, which may be more than you requested (although + often not). You can use this many bytes without worrying about + overwriting other allocated objects. Not a particularly great + programming practice, but still sometimes useful. + +*/ + +#if __STD_C +size_t malloc_usable_size(RARG Void_t* mem) +#else +size_t malloc_usable_size(RARG mem) RDECL Void_t* mem; +#endif +{ + mchunkptr p; + if (mem == 0) + return 0; + else + { + p = mem2chunk(mem); + if(!chunk_is_mmapped(p)) + { + if (!inuse(p)) return 0; +#if DEBUG + MALLOC_LOCK; + check_inuse_chunk(p); + MALLOC_UNLOCK; +#endif + return chunksize(p) - SIZE_SZ; + } + return chunksize(p) - 2*SIZE_SZ; + } +} + +#endif /* DEFINE_MALLOC_USABLE_SIZE */ + +#ifdef DEFINE_MALLINFO + +/* Utility to update current_mallinfo for malloc_stats and mallinfo() */ + +STATIC void malloc_update_mallinfo() +{ + int i; + mbinptr b; + mchunkptr p; +#if DEBUG + mchunkptr q; +#endif + + INTERNAL_SIZE_T avail = chunksize(top); + int navail = ((long)(avail) >= (long)MINSIZE)? 1 : 0; + + for (i = 1; i < NAV; ++i) + { + b = bin_at(i); + for (p = last(b); p != b; p = p->bk) + { +#if DEBUG + check_free_chunk(p); + for (q = next_chunk(p); + q < top && inuse(q) && (long)(chunksize(q)) >= (long)MINSIZE; + q = next_chunk(q)) + check_inuse_chunk(q); +#endif + avail += chunksize(p); + navail++; + } + } + + current_mallinfo.ordblks = navail; + current_mallinfo.uordblks = sbrked_mem - avail; + current_mallinfo.fordblks = avail; +#if HAVE_MMAP + current_mallinfo.hblks = n_mmaps; + current_mallinfo.hblkhd = mmapped_mem; +#endif + current_mallinfo.keepcost = chunksize(top); + +} + +#else /* ! DEFINE_MALLINFO */ + +#if __STD_C +extern void malloc_update_mallinfo(void); +#else +extern void malloc_update_mallinfo(); +#endif + +#endif /* ! DEFINE_MALLINFO */ + +#ifdef DEFINE_MALLOC_STATS + +/* + + malloc_stats: + + Prints on stderr the amount of space obtain from the system (both + via sbrk and mmap), the maximum amount (which may be more than + current if malloc_trim and/or munmap got called), the maximum + number of simultaneous mmap regions used, and the current number + of bytes allocated via malloc (or realloc, etc) but not yet + freed. (Note that this is the number of bytes allocated, not the + number requested. It will be larger than the number requested + because of alignment and bookkeeping overhead.) + +*/ + +#if __STD_C +void malloc_stats(RONEARG) +#else +void malloc_stats(RONEARG) RDECL +#endif +{ + unsigned long local_max_total_mem; + int local_sbrked_mem; + struct mallinfo local_mallinfo; +#if HAVE_MMAP + unsigned long local_mmapped_mem, local_max_n_mmaps; +#endif + FILE *fp; + + MALLOC_LOCK; + malloc_update_mallinfo(); + local_max_total_mem = max_total_mem; + local_sbrked_mem = sbrked_mem; + local_mallinfo = current_mallinfo; +#if HAVE_MMAP + local_mmapped_mem = mmapped_mem; + local_max_n_mmaps = max_n_mmaps; +#endif + MALLOC_UNLOCK; + +#ifdef INTERNAL_NEWLIB + fp = _stderr_r(reent_ptr); +#define fprintf fiprintf +#else + fp = stderr; +#endif + + fprintf(fp, "max system bytes = %10u\n", + (unsigned int)(local_max_total_mem)); +#if HAVE_MMAP + fprintf(fp, "system bytes = %10u\n", + (unsigned int)(local_sbrked_mem + local_mmapped_mem)); + fprintf(fp, "in use bytes = %10u\n", + (unsigned int)(local_mallinfo.uordblks + local_mmapped_mem)); +#else + fprintf(fp, "system bytes = %10u\n", + (unsigned int)local_sbrked_mem); + fprintf(fp, "in use bytes = %10u\n", + (unsigned int)local_mallinfo.uordblks); +#endif +#if HAVE_MMAP + fprintf(fp, "max mmap regions = %10u\n", + (unsigned int)local_max_n_mmaps); +#endif +} + +#endif /* DEFINE_MALLOC_STATS */ + +#ifdef DEFINE_MALLINFO + +/* + mallinfo returns a copy of updated current mallinfo. +*/ + +#if __STD_C +struct mallinfo mALLINFo(RONEARG) +#else +struct mallinfo mALLINFo(RONEARG) RDECL +#endif +{ + struct mallinfo ret; + + MALLOC_LOCK; + malloc_update_mallinfo(); + ret = current_mallinfo; + MALLOC_UNLOCK; + return ret; +} + +#endif /* DEFINE_MALLINFO */ + +#ifdef DEFINE_MALLOPT + +/* + mallopt: + + mallopt is the general SVID/XPG interface to tunable parameters. + The format is to provide a (parameter-number, parameter-value) pair. + mallopt then sets the corresponding parameter to the argument + value if it can (i.e., so long as the value is meaningful), + and returns 1 if successful else 0. + + See descriptions of tunable parameters above. + +*/ + +#if __STD_C +int mALLOPt(RARG int param_number, int value) +#else +int mALLOPt(RARG param_number, value) RDECL int param_number; int value; +#endif +{ + MALLOC_LOCK; + switch(param_number) + { + case M_TRIM_THRESHOLD: + trim_threshold = value; MALLOC_UNLOCK; return 1; + case M_TOP_PAD: + top_pad = value; MALLOC_UNLOCK; return 1; + case M_MMAP_THRESHOLD: +#if HAVE_MMAP + mmap_threshold = value; +#endif + MALLOC_UNLOCK; + return 1; + case M_MMAP_MAX: +#if HAVE_MMAP + n_mmaps_max = value; MALLOC_UNLOCK; return 1; +#else + MALLOC_UNLOCK; return value == 0; +#endif + + default: + MALLOC_UNLOCK; + return 0; + } +} + +#endif /* DEFINE_MALLOPT */ + +/* + +History: + + V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee) + * Added pvalloc, as recommended by H.J. Liu + * Added 64bit pointer support mainly from Wolfram Gloger + * Added anonymously donated WIN32 sbrk emulation + * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen + * malloc_extend_top: fix mask error that caused wastage after + foreign sbrks + * Add linux mremap support code from HJ Liu + + V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee) + * Integrated most documentation with the code. + * Add support for mmap, with help from + Wolfram Gloger (Gloger@lrz.uni-muenchen.de). + * Use last_remainder in more cases. + * Pack bins using idea from colin@nyx10.cs.du.edu + * Use ordered bins instead of best-fit threshhold + * Eliminate block-local decls to simplify tracing and debugging. + * Support another case of realloc via move into top + * Fix error occuring when initial sbrk_base not word-aligned. + * Rely on page size for units instead of SBRK_UNIT to + avoid surprises about sbrk alignment conventions. + * Add mallinfo, mallopt. Thanks to Raymond Nijssen + (raymond@es.ele.tue.nl) for the suggestion. + * Add `pad' argument to malloc_trim and top_pad mallopt parameter. + * More precautions for cases where other routines call sbrk, + courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de). + * Added macros etc., allowing use in linux libc from + H.J. Lu (hjl@gnu.ai.mit.edu) + * Inverted this history list + + V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee) + * Re-tuned and fixed to behave more nicely with V2.6.0 changes. + * Removed all preallocation code since under current scheme + the work required to undo bad preallocations exceeds + the work saved in good cases for most test programs. + * No longer use return list or unconsolidated bins since + no scheme using them consistently outperforms those that don't + given above changes. + * Use best fit for very large chunks to prevent some worst-cases. + * Added some support for debugging + + V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee) + * Removed footers when chunks are in use. Thanks to + Paul Wilson (wilson@cs.texas.edu) for the suggestion. + + V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee) + * Added malloc_trim, with help from Wolfram Gloger + (wmglo@Dent.MED.Uni-Muenchen.DE). + + V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g) + + V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g) + * realloc: try to expand in both directions + * malloc: swap order of clean-bin strategy; + * realloc: only conditionally expand backwards + * Try not to scavenge used bins + * Use bin counts as a guide to preallocation + * Occasionally bin return list chunks in first scan + * Add a few optimizations from colin@nyx10.cs.du.edu + + V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g) + * faster bin computation & slightly different binning + * merged all consolidations to one part of malloc proper + (eliminating old malloc_find_space & malloc_clean_bin) + * Scan 2 returns chunks (not just 1) + * Propagate failure in realloc if malloc returns 0 + * Add stuff to allow compilation on non-ANSI compilers + from kpv@research.att.com + + V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu) + * removed potential for odd address access in prev_chunk + * removed dependency on getpagesize.h + * misc cosmetics and a bit more internal documentation + * anticosmetics: mangled names in macros to evade debugger strangeness + * tested on sparc, hp-700, dec-mips, rs6000 + with gcc & native cc (hp, dec only) allowing + Detlefs & Zorn comparison study (in SIGPLAN Notices.) + + Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu) + * Based loosely on libg++-1.2X malloc. (It retains some of the overall + structure of old version, but most details differ.) + +*/ +#endif diff --git a/newlib/libc/stdlib/mbctype.h b/newlib/libc/stdlib/mbctype.h new file mode 100644 index 000000000..81a6f3895 --- /dev/null +++ b/newlib/libc/stdlib/mbctype.h @@ -0,0 +1,20 @@ +#ifndef _MBCTYPE_H_ + +#define _MBCTYPE_H_ + +/* escape character used for JIS encoding */ +#define ESC_CHAR 0x1b + +/* functions used to support SHIFT_JIS, EUC-JP, and JIS multibyte encodings */ + +int _EXFUN(_issjis1, (int c)); +int _EXFUN(_issjis2, (int c)); +int _EXFUN(_iseucjp, (int c)); +int _EXFUN(_isjis, (int c)); + +#define _issjis1(c) ((c) >= 0x81 && (c) <= 0x9f || (c) >= 0xe0 && (c) <= 0xef) +#define _issjis2(c) ((c) >= 0x40 && (c) <= 0x7e || (c) >= 0x80 && (c) <= 0xfc) +#define _iseucjp(c) ((c) >= 0xa1 && (c) <= 0xfe) +#define _isjis(c) ((c) >= 0x21 && (c) <= 0x7e) + +#endif /* _MBCTYPE_H_ */ diff --git a/newlib/libc/stdlib/mblen.c b/newlib/libc/stdlib/mblen.c new file mode 100644 index 000000000..d9b774e45 --- /dev/null +++ b/newlib/libc/stdlib/mblen.c @@ -0,0 +1,66 @@ +/* +FUNCTION +<<mblen>>---minimal multibyte length function + +INDEX + mblen + +ANSI_SYNOPSIS + #include <stdlib.h> + int mblen(const char *<[s]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int mblen(<[s]>, <[n]>) + const char *<[s]>; + size_t <[n]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<mblen>>. In this case, the +only ``multi-byte character sequences'' recognized are single bytes, +and thus <<1>> is returned unless <[s]> is the null pointer or +has a length of 0 or is the empty string. + +When MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +RETURNS +This implementation of <<mblen>> returns <<0>> if +<[s]> is <<NULL>> or the empty string; it returns <<1>> if not MB_CAPABLE or +the character is a single-byte character; it returns <<-1>> +if the multi-byte character is invalid; otherwise it returns +the number of bytes in the multibyte character. + +PORTABILITY +<<mblen>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<mblen>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> + +int +_DEFUN (mblen, (s, n), + const char *s _AND + size_t n) +{ +#ifdef MB_CAPABLE + static int state; + + return _mbtowc_r (_REENT, NULL, s, n, &state); +#else /* not MB_CAPABLE */ + if (s == NULL || *s == '\0') + return 0; + if (n == 0) + return -1; + return 1; +#endif /* not MB_CAPABLE */ +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/mblen_r.c b/newlib/libc/stdlib/mblen_r.c new file mode 100644 index 000000000..22d1d40e6 --- /dev/null +++ b/newlib/libc/stdlib/mblen_r.c @@ -0,0 +1,66 @@ +/* +FUNCTION +<<_mblen_r>>---reentrant minimal multibyte length function + +INDEX + _mblen_r + +ANSI_SYNOPSIS + #include <stdlib.h> + int _mblen_r(struct _reent *<[r]>, const char *<[s]>, size_t <[n]>, int *<[state]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int _mblen_r(<[r]>, <[s]>, <[n]>, <[state]>) + struct _reent *<[r]>; + const char *<[s]>; + size_t <[n]>; + int *<[state]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<_mblen_r>>. In this case, the +only ``multi-byte character sequences'' recognized are single bytes, +and thus <<1>> is returned unless <[s]> is the null pointer or +has a length of 0 or is the empty string. + +When MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +RETURNS +This implementation of <<_mblen_r>> returns <<0>> if +<[s]> is <<NULL>> or the empty string; it returns <<1>> if not MB_CAPABLE or +the character is a single-byte character; it returns <<-1>> +if the multi-byte character is invalid; otherwise it returns +the number of bytes in the multibyte character. + +PORTABILITY +<<_mblen>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<_mblen_r>> requires no supporting OS subroutines. +*/ + +#include <stdlib.h> + +int +_DEFUN (_mblen_r, (r, s, n, state), + struct _reent *r _AND + const char *s _AND + size_t n _AND + int *state) +{ +#ifdef MB_CAPABLE + + return _mbtowc_r (r, NULL, s, n, state); +#else /* not MB_CAPABLE */ + if (s == NULL || *s == '\0') + return 0; + if (n == 0) + return -1; + return 1; +#endif /* not MB_CAPABLE */ +} + diff --git a/newlib/libc/stdlib/mbstowcs.c b/newlib/libc/stdlib/mbstowcs.c new file mode 100644 index 000000000..fee621a77 --- /dev/null +++ b/newlib/libc/stdlib/mbstowcs.c @@ -0,0 +1,80 @@ +/* +FUNCTION +<<mbstowcs>>---minimal multibyte string to wide char converter + +INDEX + mbstowcs + +ANSI_SYNOPSIS + #include <stdlib.h> + int mbstowcs(wchar_t *<[pwc]>, const char *<[s]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int mbstowcs(<[pwc]>, <[s]>, <[n]>) + wchar_t *<[pwc]>; + const char *<[s]>; + size_t <[n]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<mbstowcs>>. In this case, the +only ``multi-byte character sequences'' recognized are single bytes, +and they are ``converted'' to wide-char versions simply by byte +extension. + +When MB_CAPABLE is defined, this routine calls <<_mbstowcs_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +RETURNS +This implementation of <<mbstowcs>> returns <<0>> if +<[s]> is <<NULL>> or is the empty string; +it returns <<-1>> if MB_CAPABLE and one of the +multi-byte characters is invalid or incomplete; +otherwise it returns the minimum of: <<n>> or the +number of multi-byte characters in <<s>> plus 1 (to +compensate for the nul character). +If the return value is -1, the state of the <<pwc>> string is +indeterminate. If the input has a length of 0, the output +string will be modified to contain a wchar_t nul terminator. + +PORTABILITY +<<mbstowcs>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<mbstowcs>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> + +size_t +_DEFUN (mbstowcs, (pwcs, s, n), + wchar_t *pwcs _AND + const char *s _AND + size_t n) +{ +#ifdef MB_CAPABLE + int state = 0; + + return _mbstowcs_r (_REENT, pwcs, s, n, &state); +#else /* not MB_CAPABLE */ + + int count = 0; + + if (n != 0) { + do { + if ((*pwcs++ = (wchar_t) *s++) == 0) + break; + count++; + } while (--n != 0); + } + + return count; +#endif /* not MB_CAPABLE */ +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/mbstowcs_r.c b/newlib/libc/stdlib/mbstowcs_r.c new file mode 100644 index 000000000..5478849bb --- /dev/null +++ b/newlib/libc/stdlib/mbstowcs_r.c @@ -0,0 +1,29 @@ +#include <stdlib.h> + +size_t +_DEFUN (_mbstowcs_r, (reent, pwcs, s, n, state), + struct _reent *r _AND + wchar_t *pwcs _AND + const char *s _AND + size_t n _AND + int *state) +{ + wchar_t *ptr = pwcs; + size_t max = n; + char *t = (char *)s; + int bytes; + + while (n > 0) + { + bytes = _mbtowc_r (r, ptr, t, MB_CUR_MAX, state); + if (bytes == -1) + return -1; + else if (bytes == 0) + return ptr - pwcs; + t += bytes; + ++ptr; + --n; + } + + return max; +} diff --git a/newlib/libc/stdlib/mbtowc.c b/newlib/libc/stdlib/mbtowc.c new file mode 100644 index 000000000..5e34fe366 --- /dev/null +++ b/newlib/libc/stdlib/mbtowc.c @@ -0,0 +1,81 @@ +/* +FUNCTION +<<mbtowc>>---minimal multibyte to wide char converter + +INDEX + mbtowc + +ANSI_SYNOPSIS + #include <stdlib.h> + int mbtowc(wchar_t *<[pwc]>, const char *<[s]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int mbtowc(<[pwc]>, <[s]>, <[n]>) + wchar_t *<[pwc]>; + const char *<[s]>; + size_t <[n]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<mbtowc>>. In this case, +only ``multi-byte character sequences'' recognized are single bytes, +and they are ``converted'' to themselves. +Each call to <<mbtowc>> copies one character from <<*<[s]>>> to +<<*<[pwc]>>>, unless <[s]> is a null pointer. The argument n +is ignored. + +When MB_CAPABLE is defined, this routine calls <<_mbtowc_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +RETURNS +This implementation of <<mbtowc>> returns <<0>> if +<[s]> is <<NULL>> or is the empty string; +it returns <<1>> if not MB_CAPABLE or +the character is a single-byte character; it returns <<-1>> +if n is <<0>> or the multi-byte character is invalid; +otherwise it returns the number of bytes in the multibyte character. +If the return value is -1, no changes are made to the <<pwc>> +output string. If the input is the empty string, a wchar_t nul +is placed in the output string and 0 is returned. If the input +has a length of 0, no changes are made to the <<pwc>> output string. + +PORTABILITY +<<mbtowc>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<mbtowc>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> + +int +_DEFUN (mbtowc, (pwc, s, n), + wchar_t *pwc _AND + const char *s _AND + size_t n) +{ +#ifdef MB_CAPABLE + static int state; + + return _mbtowc_r (_REENT, pwc, s, n, &state); +#else /* not MB_CAPABLE */ + if (s == NULL) + return 0; + if (n == 0) + return -1; + if (pwc) + *pwc = (wchar_t) *s; + return (*s != '\0'); +#endif /* not MB_CAPABLE */ +} + +#endif /* !_REENT_ONLY */ + + + + diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c new file mode 100644 index 000000000..7d718c8b0 --- /dev/null +++ b/newlib/libc/stdlib/mbtowc_r.c @@ -0,0 +1,206 @@ +#include <stdlib.h> +#include <locale.h> +#include "mbctype.h" + +#ifdef MB_CAPABLE +typedef enum { ESCAPE, DOLLAR, BRACKET, AT, B, J, + NUL, JIS_CHAR, OTHER, JIS_C_NUM } JIS_CHAR_TYPE; +typedef enum { ASCII, A_ESC, A_ESC_DL, JIS, JIS_1, JIS_2, J_ESC, J_ESC_BR, + J2_ESC, J2_ESC_BR, DONE, INV, JIS_S_NUM } JIS_STATE; +typedef enum { COPY_A, COPY_J, COPY_J2, MAKE_A, MAKE_J, NOOP, EMPTY, ERROR } JIS_ACTION; + +/************************************************************************************** + * state/action tables for processing JIS encoding + * Where possible, switches to JIS are grouped with proceding JIS characters and switches + * to ASCII are grouped with preceding JIS characters. Thus, maximum returned length + * is 2 (switch to JIS) + 2 (JIS characters) + 2 (switch back to ASCII) = 6. + *************************************************************************************/ + +static JIS_STATE JIS_state_table[JIS_S_NUM][JIS_C_NUM] = { +/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */ +/* ASCII */ { A_ESC, DONE, DONE, DONE, DONE, DONE, DONE, DONE, DONE }, +/* A_ESC */ { DONE, A_ESC_DL, DONE, DONE, DONE, DONE, DONE, DONE, DONE }, +/* A_ESC_DL */{ DONE, DONE, DONE, JIS, JIS, DONE, DONE, DONE, DONE }, +/* JIS */ { J_ESC, JIS_1, JIS_1, JIS_1, JIS_1, JIS_1, INV, JIS_1, INV }, +/* JIS_1 */ { INV, JIS_2, JIS_2, JIS_2, JIS_2, JIS_2, INV, JIS_2, INV }, +/* JIS_2 */ { J2_ESC, DONE, DONE, DONE, DONE, DONE, INV, DONE, DONE }, +/* J_ESC */ { INV, INV, J_ESC_BR, INV, INV, INV, INV, INV, INV }, +/* J_ESC_BR */{ INV, INV, INV, INV, ASCII, ASCII, INV, INV, INV }, +/* J2_ESC */ { INV, INV, J2_ESC_BR,INV, INV, INV, INV, INV, INV }, +/* J2_ESC_BR*/{ INV, INV, INV, INV, DONE, DONE, INV, INV, INV }, +}; + +static JIS_ACTION JIS_action_table[JIS_S_NUM][JIS_C_NUM] = { +/* ESCAPE DOLLAR BRACKET AT B J NUL JIS_CHAR OTHER */ +/* ASCII */ { NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, EMPTY, COPY_A, COPY_A}, +/* A_ESC */ { COPY_A, NOOP, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A, COPY_A}, +/* A_ESC_DL */{ COPY_A, COPY_A, COPY_A, MAKE_J, MAKE_J, COPY_A, COPY_A, COPY_A, COPY_A}, +/* JIS */ { NOOP, NOOP, NOOP, NOOP, NOOP, NOOP, ERROR, NOOP, ERROR }, +/* JIS_1 */ { ERROR, NOOP, NOOP, NOOP, NOOP, NOOP, ERROR, NOOP, ERROR }, +/* JIS_2 */ { NOOP, COPY_J2, COPY_J2, COPY_J2, COPY_J2, COPY_J2, ERROR, COPY_J2, COPY_J2}, +/* J_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR }, +/* J_ESC_BR */{ ERROR, ERROR, ERROR, ERROR, NOOP, NOOP, ERROR, ERROR, ERROR }, +/* J2_ESC */ { ERROR, ERROR, NOOP, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR }, +/* J2_ESC_BR*/{ ERROR, ERROR, ERROR, ERROR, COPY_J, COPY_J, ERROR, ERROR, ERROR }, +}; +#endif /* MB_CAPABLE */ + +int +_DEFUN (_mbtowc_r, (r, pwc, s, n, state), + struct _reent *r _AND + wchar_t *pwc _AND + const char *s _AND + size_t n _AND + int *state) +{ + wchar_t dummy; + unsigned char *t = (unsigned char *)s; + + if (pwc == NULL) + pwc = &dummy; + + if (s != NULL && n == 0) + return -1; + +#ifdef MB_CAPABLE + if (r->_current_locale == NULL || + (strlen (r->_current_locale) <= 1)) + { /* fall-through */ } + else if (!strcmp (r->_current_locale, "C-SJIS")) + { + int char1 = *t; + if (s == NULL) + return 0; /* not state-dependent */ + if (_issjis1 (char1)) + { + int char2 = t[1]; + if (n <= 1) + return -1; + if (_issjis2 (char2)) + { + *pwc = (((wchar_t)*t) << 8) + (wchar_t)(*(t+1)); + return 2; + } + else + return -1; + } + } + else if (!strcmp (r->_current_locale, "C-EUCJP")) + { + int char1 = *t; + if (s == NULL) + return 0; /* not state-dependent */ + if (_iseucjp (char1)) + { + int char2 = t[1]; + if (n <= 1) + return -1; + if (_iseucjp (char2)) + { + *pwc = (((wchar_t)*t) << 8) + (wchar_t)(*(t+1)); + return 2; + } + else + return -1; + } + } + else if (!strcmp (r->_current_locale, "C-JIS")) + { + JIS_STATE curr_state; + JIS_ACTION action; + JIS_CHAR_TYPE ch; + unsigned char *ptr; + int i, curr_ch; + + if (s == NULL) + { + *state = 0; + return 1; /* state-dependent */ + } + + curr_state = (*state == 0 ? ASCII : JIS); + ptr = t; + + for (i = 0; i < n; ++i) + { + curr_ch = t[i]; + switch (curr_ch) + { + case ESC_CHAR: + ch = ESCAPE; + break; + case '$': + ch = DOLLAR; + break; + case '@': + ch = AT; + break; + case '(': + ch = BRACKET; + break; + case 'B': + ch = B; + break; + case 'J': + ch = J; + break; + case '\0': + ch = NUL; + break; + default: + if (_isjis (curr_ch)) + ch = JIS_CHAR; + else + ch = OTHER; + } + + action = JIS_action_table[curr_state][ch]; + curr_state = JIS_state_table[curr_state][ch]; + + switch (action) + { + case NOOP: + break; + case EMPTY: + *state = 0; + *pwc = (wchar_t)0; + return i; + case COPY_A: + *state = 0; + *pwc = (wchar_t)*ptr; + return (i + 1); + case COPY_J: + *state = 0; + *pwc = (((wchar_t)*ptr) << 8) + (wchar_t)(*(ptr+1)); + return (i + 1); + case COPY_J2: + *state = 1; + *pwc = (((wchar_t)*ptr) << 8) + (wchar_t)(*(ptr+1)); + return (ptr - t) + 2; + case MAKE_A: + case MAKE_J: + ptr = (char *)(t + i + 1); + break; + case ERROR: + default: + return -1; + } + + } + + return -1; /* n < bytes needed */ + } +#endif /* MB_CAPABLE */ + + /* otherwise this must be the "C" locale or unknown locale */ + if (s == NULL) + return 0; /* not state-dependent */ + + *pwc = (wchar_t)*t; + + if (*t == '\0') + return 0; + + return 1; +} + diff --git a/newlib/libc/stdlib/mlock.c b/newlib/libc/stdlib/mlock.c new file mode 100644 index 000000000..e7f7242ce --- /dev/null +++ b/newlib/libc/stdlib/mlock.c @@ -0,0 +1,50 @@ +/* +FUNCTION +<<__malloc_lock>>, <<__malloc_unlock>>--lock malloc pool + +INDEX + __malloc_lock +INDEX + __malloc_unlock + +ANSI_SYNOPSIS + #include <malloc.h> + void __malloc_lock (void *<[reent]>); + void __malloc_unlock (void *<[reent]>); + +TRAD_SYNOPSIS + void __malloc_lock(<[reent]>) + char *<[reent]>; + + void __malloc_unlock(<[reent]>) + char *<[reent]>; + +DESCRIPTION +The <<malloc>> family of routines call these functions when they need +to lock the memory pool. The version of these routines supplied in +the library does not do anything. If multiple threads of execution +can call <<malloc>>, or if <<malloc>> can be called reentrantly, then +you need to define your own versions of these functions in order to +safely lock the memory pool during a call. If you do not, the memory +pool may become corrupted. + +A call to <<malloc>> may call <<__malloc_lock>> recursively; that is, +the sequence of calls may go <<__malloc_lock>>, <<__malloc_lock>>, +<<__malloc_unlock>>, <<__malloc_unlock>>. Any implementation of these +routines must be careful to avoid causing a thread to wait for a lock +that it already holds. +*/ + +#include <malloc.h> + +void +__malloc_lock (ptr) + struct _reent *ptr; +{ +} + +void +__malloc_unlock (ptr) + struct _reent *ptr; +{ +} diff --git a/newlib/libc/stdlib/mprec.c b/newlib/libc/stdlib/mprec.c new file mode 100644 index 000000000..48e10be87 --- /dev/null +++ b/newlib/libc/stdlib/mprec.c @@ -0,0 +1,980 @@ +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991 by AT&T. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + +/* Please send bug reports to + David M. Gay + AT&T Bell Laboratories, Room 2C-463 + 600 Mountain Avenue + Murray Hill, NJ 07974-2070 + U.S.A. + dmg@research.att.com or research!dmg + */ + +/* strtod for IEEE-, VAX-, and IBM-arithmetic machines. + * + * This strtod returns a nearest machine number to the input decimal + * string (or sets errno to ERANGE). With IEEE arithmetic, ties are + * broken by the IEEE round-even rule. Otherwise ties are broken by + * biased rounding (add half and chop). + * + * Inspired loosely by William D. Clinger's paper "How to Read Floating + * Point Numbers Accurately" [Proc. ACM SIGPLAN '90, pp. 92-101]. + * + * Modifications: + * + * 1. We only require IEEE, IBM, or VAX double-precision + * arithmetic (not IEEE double-extended). + * 2. We get by with floating-point arithmetic in a case that + * Clinger missed -- when we're computing d * 10^n + * for a small integer d and the integer n is not too + * much larger than 22 (the maximum integer k for which + * we can represent 10^k exactly), we may be able to + * compute (d*10^k) * 10^(e-k) with just one roundoff. + * 3. Rather than a bit-at-a-time adjustment of the binary + * result in the hard case, we use floating-point + * arithmetic to determine the adjustment to within + * one bit; only in really hard cases do we need to + * compute a second residual. + * 4. Because of 3., we don't need a large table of powers of 10 + * for ten-to-e (just some small tables, e.g. of 10^k + * for 0 <= k <= 22). + */ + +/* + * #define IEEE_8087 for IEEE-arithmetic machines where the least + * significant byte has the lowest address. + * #define IEEE_MC68k for IEEE-arithmetic machines where the most + * significant byte has the lowest address. + * #define Sudden_Underflow for IEEE-format machines without gradual + * underflow (i.e., that flush to zero on underflow). + * #define IBM for IBM mainframe-style floating-point arithmetic. + * #define VAX for VAX-style floating-point arithmetic. + * #define Unsigned_Shifts if >> does treats its left operand as unsigned. + * #define No_leftright to omit left-right logic in fast floating-point + * computation of dtoa. + * #define Check_FLT_ROUNDS if FLT_ROUNDS can assume the values 2 or 3. + * #define RND_PRODQUOT to use rnd_prod and rnd_quot (assembly routines + * that use extended-precision instructions to compute rounded + * products and quotients) with IBM. + * #define ROUND_BIASED for IEEE-format with biased rounding. + * #define Inaccurate_Divide for IEEE-format with correctly rounded + * products but inaccurate quotients, e.g., for Intel i860. + * #define Just_16 to store 16 bits per 32-bit long when doing high-precision + * integer arithmetic. Whether this speeds things up or slows things + * down depends on the machine and the number being converted. + */ + +#include <_ansi.h> +#include <stdlib.h> +#include <string.h> +#include <reent.h> +#include "mprec.h" + +/* reent.c knows this value */ +#define _Kmax 15 + +_Bigint * +_DEFUN (Balloc, (ptr, k), struct _reent *ptr _AND int k) +{ + int x; + _Bigint *rv ; + + if (ptr->_freelist == NULL) + { + /* Allocate a list of pointers to the mprec objects */ + ptr->_freelist = (struct _Bigint **) _calloc_r (ptr, + sizeof (struct _Bigint *), + _Kmax + 1); + if (ptr->_freelist == NULL) + { + return NULL; + } + } + + if (rv = ptr->_freelist[k]) + { + ptr->_freelist[k] = rv->_next; + } + else + { + x = 1 << k; + /* Allocate an mprec Bigint and stick in in the freelist */ + rv = (_Bigint *) _calloc_r (ptr, + 1, + sizeof (_Bigint) + + (x-1) * sizeof(rv->_x)); + if (rv == NULL) return NULL; + rv->_k = k; + rv->_maxwds = x; + } + rv->_sign = rv->_wds = 0; + return rv; +} + +void +_DEFUN (Bfree, (ptr, v), struct _reent *ptr _AND _Bigint * v) +{ + if (v) + { + v->_next = ptr->_freelist[v->_k]; + ptr->_freelist[v->_k] = v; + } +} + +_Bigint * +_DEFUN (multadd, (ptr, b, m, a), + struct _reent *ptr _AND + _Bigint * b _AND + int m _AND + int a) +{ + int i, wds; + __ULong *x, y; +#ifdef Pack_32 + __ULong xi, z; +#endif + _Bigint *b1; + + wds = b->_wds; + x = b->_x; + i = 0; + do + { +#ifdef Pack_32 + xi = *x; + y = (xi & 0xffff) * m + a; + z = (xi >> 16) * m + (y >> 16); + a = (int) (z >> 16); + *x++ = (z << 16) + (y & 0xffff); +#else + y = *x * m + a; + a = (int) (y >> 16); + *x++ = y & 0xffff; +#endif + } + while (++i < wds); + if (a) + { + if (wds >= b->_maxwds) + { + b1 = Balloc (ptr, b->_k + 1); + Bcopy (b1, b); + Bfree (ptr, b); + b = b1; + } + b->_x[wds++] = a; + b->_wds = wds; + } + return b; +} + +_Bigint * +_DEFUN (s2b, (ptr, s, nd0, nd, y9), + struct _reent * ptr _AND + _CONST char *s _AND + int nd0 _AND + int nd _AND + __ULong y9) +{ + _Bigint *b; + int i, k; + __Long x, y; + + x = (nd + 8) / 9; + for (k = 0, y = 1; x > y; y <<= 1, k++); +#ifdef Pack_32 + b = Balloc (ptr, k); + b->_x[0] = y9; + b->_wds = 1; +#else + b = Balloc (ptr, k + 1); + b->_x[0] = y9 & 0xffff; + b->_wds = (b->_x[1] = y9 >> 16) ? 2 : 1; +#endif + + i = 9; + if (9 < nd0) + { + s += 9; + do + b = multadd (ptr, b, 10, *s++ - '0'); + while (++i < nd0); + s++; + } + else + s += 10; + for (; i < nd; i++) + b = multadd (ptr, b, 10, *s++ - '0'); + return b; +} + +int +_DEFUN (hi0bits, + (x), register __ULong x) +{ + register int k = 0; + + if (!(x & 0xffff0000)) + { + k = 16; + x <<= 16; + } + if (!(x & 0xff000000)) + { + k += 8; + x <<= 8; + } + if (!(x & 0xf0000000)) + { + k += 4; + x <<= 4; + } + if (!(x & 0xc0000000)) + { + k += 2; + x <<= 2; + } + if (!(x & 0x80000000)) + { + k++; + if (!(x & 0x40000000)) + return 32; + } + return k; +} + +int +_DEFUN (lo0bits, (y), __ULong *y) +{ + register int k; + register __ULong x = *y; + + if (x & 7) + { + if (x & 1) + return 0; + if (x & 2) + { + *y = x >> 1; + return 1; + } + *y = x >> 2; + return 2; + } + k = 0; + if (!(x & 0xffff)) + { + k = 16; + x >>= 16; + } + if (!(x & 0xff)) + { + k += 8; + x >>= 8; + } + if (!(x & 0xf)) + { + k += 4; + x >>= 4; + } + if (!(x & 0x3)) + { + k += 2; + x >>= 2; + } + if (!(x & 1)) + { + k++; + x >>= 1; + if (!x & 1) + return 32; + } + *y = x; + return k; +} + +_Bigint * +_DEFUN (i2b, (ptr, i), struct _reent * ptr _AND int i) +{ + _Bigint *b; + + b = Balloc (ptr, 1); + b->_x[0] = i; + b->_wds = 1; + return b; +} + +_Bigint * +_DEFUN (mult, (ptr, a, b), struct _reent * ptr _AND _Bigint * a _AND _Bigint * b) +{ + _Bigint *c; + int k, wa, wb, wc; + __ULong carry, y, z; + __ULong *x, *xa, *xae, *xb, *xbe, *xc, *xc0; +#ifdef Pack_32 + __ULong z2; +#endif + + if (a->_wds < b->_wds) + { + c = a; + a = b; + b = c; + } + k = a->_k; + wa = a->_wds; + wb = b->_wds; + wc = wa + wb; + if (wc > a->_maxwds) + k++; + c = Balloc (ptr, k); + for (x = c->_x, xa = x + wc; x < xa; x++) + *x = 0; + xa = a->_x; + xae = xa + wa; + xb = b->_x; + xbe = xb + wb; + xc0 = c->_x; +#ifdef Pack_32 + for (; xb < xbe; xb++, xc0++) + { + if (y = *xb & 0xffff) + { + x = xa; + xc = xc0; + carry = 0; + do + { + z = (*x & 0xffff) * y + (*xc & 0xffff) + carry; + carry = z >> 16; + z2 = (*x++ >> 16) * y + (*xc >> 16) + carry; + carry = z2 >> 16; + Storeinc (xc, z2, z); + } + while (x < xae); + *xc = carry; + } + if (y = *xb >> 16) + { + x = xa; + xc = xc0; + carry = 0; + z2 = *xc; + do + { + z = (*x & 0xffff) * y + (*xc >> 16) + carry; + carry = z >> 16; + Storeinc (xc, z, z2); + z2 = (*x++ >> 16) * y + (*xc & 0xffff) + carry; + carry = z2 >> 16; + } + while (x < xae); + *xc = z2; + } + } +#else + for (; xb < xbe; xc0++) + { + if (y = *xb++) + { + x = xa; + xc = xc0; + carry = 0; + do + { + z = *x++ * y + *xc + carry; + carry = z >> 16; + *xc++ = z & 0xffff; + } + while (x < xae); + *xc = carry; + } + } +#endif + for (xc0 = c->_x, xc = xc0 + wc; wc > 0 && !*--xc; --wc); + c->_wds = wc; + return c; +} + +_Bigint * +_DEFUN (pow5mult, + (ptr, b, k), struct _reent * ptr _AND _Bigint * b _AND int k) +{ + _Bigint *b1, *p5, *p51; + int i; + static _CONST int p05[3] = {5, 25, 125}; + + if (i = k & 3) + b = multadd (ptr, b, p05[i - 1], 0); + + if (!(k >>= 2)) + return b; + if (!(p5 = ptr->_p5s)) + { + /* first time */ + p5 = ptr->_p5s = i2b (ptr, 625); + p5->_next = 0; + } + for (;;) + { + if (k & 1) + { + b1 = mult (ptr, b, p5); + Bfree (ptr, b); + b = b1; + } + if (!(k >>= 1)) + break; + if (!(p51 = p5->_next)) + { + p51 = p5->_next = mult (ptr, p5, p5); + p51->_next = 0; + } + p5 = p51; + } + return b; +} + +_Bigint * +_DEFUN (lshift, (ptr, b, k), struct _reent * ptr _AND _Bigint * b _AND int k) +{ + int i, k1, n, n1; + _Bigint *b1; + __ULong *x, *x1, *xe, z; + +#ifdef Pack_32 + n = k >> 5; +#else + n = k >> 4; +#endif + k1 = b->_k; + n1 = n + b->_wds + 1; + for (i = b->_maxwds; n1 > i; i <<= 1) + k1++; + b1 = Balloc (ptr, k1); + x1 = b1->_x; + for (i = 0; i < n; i++) + *x1++ = 0; + x = b->_x; + xe = x + b->_wds; +#ifdef Pack_32 + if (k &= 0x1f) + { + k1 = 32 - k; + z = 0; + do + { + *x1++ = *x << k | z; + z = *x++ >> k1; + } + while (x < xe); + if (*x1 = z) + ++n1; + } +#else + if (k &= 0xf) + { + k1 = 16 - k; + z = 0; + do + { + *x1++ = *x << k & 0xffff | z; + z = *x++ >> k1; + } + while (x < xe); + if (*x1 = z) + ++n1; + } +#endif + else + do + *x1++ = *x++; + while (x < xe); + b1->_wds = n1 - 1; + Bfree (ptr, b); + return b1; +} + +int +_DEFUN (cmp, (a, b), _Bigint * a _AND _Bigint * b) +{ + __ULong *xa, *xa0, *xb, *xb0; + int i, j; + + i = a->_wds; + j = b->_wds; +#ifdef DEBUG + if (i > 1 && !a->_x[i - 1]) + Bug ("cmp called with a->_x[a->_wds-1] == 0"); + if (j > 1 && !b->_x[j - 1]) + Bug ("cmp called with b->_x[b->_wds-1] == 0"); +#endif + if (i -= j) + return i; + xa0 = a->_x; + xa = xa0 + j; + xb0 = b->_x; + xb = xb0 + j; + for (;;) + { + if (*--xa != *--xb) + return *xa < *xb ? -1 : 1; + if (xa <= xa0) + break; + } + return 0; +} + +_Bigint * +_DEFUN (diff, (ptr, a, b), struct _reent * ptr _AND + _Bigint * a _AND _Bigint * b) +{ + _Bigint *c; + int i, wa, wb; + __Long borrow, y; /* We need signed shifts here. */ + __ULong *xa, *xae, *xb, *xbe, *xc; +#ifdef Pack_32 + __Long z; +#endif + + i = cmp (a, b); + if (!i) + { + c = Balloc (ptr, 0); + c->_wds = 1; + c->_x[0] = 0; + return c; + } + if (i < 0) + { + c = a; + a = b; + b = c; + i = 1; + } + else + i = 0; + c = Balloc (ptr, a->_k); + c->_sign = i; + wa = a->_wds; + xa = a->_x; + xae = xa + wa; + wb = b->_wds; + xb = b->_x; + xbe = xb + wb; + xc = c->_x; + borrow = 0; +#ifdef Pack_32 + do + { + y = (*xa & 0xffff) - (*xb & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + z = (*xa++ >> 16) - (*xb++ >> 16) + borrow; + borrow = z >> 16; + Sign_Extend (borrow, z); + Storeinc (xc, z, y); + } + while (xb < xbe); + while (xa < xae) + { + y = (*xa & 0xffff) + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + z = (*xa++ >> 16) + borrow; + borrow = z >> 16; + Sign_Extend (borrow, z); + Storeinc (xc, z, y); + } +#else + do + { + y = *xa++ - *xb++ + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + *xc++ = y & 0xffff; + } + while (xb < xbe); + while (xa < xae) + { + y = *xa++ + borrow; + borrow = y >> 16; + Sign_Extend (borrow, y); + *xc++ = y & 0xffff; + } +#endif + while (!*--xc) + wa--; + c->_wds = wa; + return c; +} + +double +_DEFUN (ulp, (_x), double _x) +{ + union double_union x, a; + register __Long L; + + x.d = _x; + + L = (word0 (x) & Exp_mask) - (P - 1) * Exp_msk1; +#ifndef Sudden_Underflow + if (L > 0) + { +#endif +#ifdef IBM + L |= Exp_msk1 >> 4; +#endif + word0 (a) = L; +#ifndef _DOUBLE_IS_32BITS + word1 (a) = 0; +#endif + +#ifndef Sudden_Underflow + } + else + { + L = -L >> Exp_shift; + if (L < Exp_shift) + { + word0 (a) = 0x80000 >> L; +#ifndef _DOUBLE_IS_32BITS + word1 (a) = 0; +#endif + } + else + { + word0 (a) = 0; + L -= Exp_shift; +#ifndef _DOUBLE_IS_32BITS + word1 (a) = L >= 31 ? 1 : 1 << 31 - L; +#endif + } + } +#endif + return a.d; +} + +double +_DEFUN (b2d, (a, e), + _Bigint * a _AND int *e) +{ + __ULong *xa, *xa0, w, y, z; + int k; + union double_union d; +#ifdef VAX + __ULong d0, d1; +#else +#define d0 word0(d) +#define d1 word1(d) +#endif + + xa0 = a->_x; + xa = xa0 + a->_wds; + y = *--xa; +#ifdef DEBUG + if (!y) + Bug ("zero y in b2d"); +#endif + k = hi0bits (y); + *e = 32 - k; +#ifdef Pack_32 + if (k < Ebits) + { + d0 = Exp_1 | y >> Ebits - k; + w = xa > xa0 ? *--xa : 0; +#ifndef _DOUBLE_IS_32BITS + d1 = y << (32 - Ebits) + k | w >> Ebits - k; +#endif + goto ret_d; + } + z = xa > xa0 ? *--xa : 0; + if (k -= Ebits) + { + d0 = Exp_1 | y << k | z >> 32 - k; + y = xa > xa0 ? *--xa : 0; +#ifndef _DOUBLE_IS_32BITS + d1 = z << k | y >> 32 - k; +#endif + } + else + { + d0 = Exp_1 | y; +#ifndef _DOUBLE_IS_32BITS + d1 = z; +#endif + } +#else + if (k < Ebits + 16) + { + z = xa > xa0 ? *--xa : 0; + d0 = Exp_1 | y << k - Ebits | z >> Ebits + 16 - k; + w = xa > xa0 ? *--xa : 0; + y = xa > xa0 ? *--xa : 0; + d1 = z << k + 16 - Ebits | w << k - Ebits | y >> 16 + Ebits - k; + goto ret_d; + } + z = xa > xa0 ? *--xa : 0; + w = xa > xa0 ? *--xa : 0; + k -= Ebits + 16; + d0 = Exp_1 | y << k + 16 | z << k | w >> 16 - k; + y = xa > xa0 ? *--xa : 0; + d1 = w << k + 16 | y << k; +#endif +ret_d: +#ifdef VAX + word0 (d) = d0 >> 16 | d0 << 16; + word1 (d) = d1 >> 16 | d1 << 16; +#else +#undef d0 +#undef d1 +#endif + return d.d; +} + +_Bigint * +_DEFUN (d2b, + (ptr, _d, e, bits), + struct _reent * ptr _AND + double _d _AND + int *e _AND + int *bits) + +{ + union double_union d; + _Bigint *b; + int de, i, k; + __ULong *x, y, z; +#ifdef VAX + __ULong d0, d1; +#endif + d.d = _d; +#ifdef VAX + d0 = word0 (d) >> 16 | word0 (d) << 16; + d1 = word1 (d) >> 16 | word1 (d) << 16; +#else +#define d0 word0(d) +#define d1 word1(d) + d.d = _d; +#endif + +#ifdef Pack_32 + b = Balloc (ptr, 1); +#else + b = Balloc (ptr, 2); +#endif + x = b->_x; + + z = d0 & Frac_mask; + d0 &= 0x7fffffff; /* clear sign bit, which we ignore */ +#ifdef Sudden_Underflow + de = (int) (d0 >> Exp_shift); +#ifndef IBM + z |= Exp_msk11; +#endif +#else + if (de = (int) (d0 >> Exp_shift)) + z |= Exp_msk1; +#endif +#ifdef Pack_32 +#ifndef _DOUBLE_IS_32BITS + if (y = d1) + { + if (k = lo0bits (&y)) + { + x[0] = y | z << 32 - k; + z >>= k; + } + else + x[0] = y; + i = b->_wds = (x[1] = z) ? 2 : 1; + } + else +#endif + { +#ifdef DEBUG + if (!z) + Bug ("Zero passed to d2b"); +#endif + k = lo0bits (&z); + x[0] = z; + i = b->_wds = 1; +#ifndef _DOUBLE_IS_32BITS + k += 32; +#endif + } +#else + if (y = d1) + { + if (k = lo0bits (&y)) + if (k >= 16) + { + x[0] = y | z << 32 - k & 0xffff; + x[1] = z >> k - 16 & 0xffff; + x[2] = z >> k; + i = 2; + } + else + { + x[0] = y & 0xffff; + x[1] = y >> 16 | z << 16 - k & 0xffff; + x[2] = z >> k & 0xffff; + x[3] = z >> k + 16; + i = 3; + } + else + { + x[0] = y & 0xffff; + x[1] = y >> 16; + x[2] = z & 0xffff; + x[3] = z >> 16; + i = 3; + } + } + else + { +#ifdef DEBUG + if (!z) + Bug ("Zero passed to d2b"); +#endif + k = lo0bits (&z); + if (k >= 16) + { + x[0] = z; + i = 0; + } + else + { + x[0] = z & 0xffff; + x[1] = z >> 16; + i = 1; + } + k += 32; + } + while (!x[i]) + --i; + b->_wds = i + 1; +#endif +#ifndef Sudden_Underflow + if (de) + { +#endif +#ifdef IBM + *e = (de - Bias - (P - 1) << 2) + k; + *bits = 4 * P + 8 - k - hi0bits (word0 (d) & Frac_mask); +#else + *e = de - Bias - (P - 1) + k; + *bits = P - k; +#endif +#ifndef Sudden_Underflow + } + else + { + *e = de - Bias - (P - 1) + 1 + k; +#ifdef Pack_32 + *bits = 32 * i - hi0bits (x[i - 1]); +#else + *bits = (i + 2) * 16 - hi0bits (x[i]); +#endif + } +#endif + return b; +} +#undef d0 +#undef d1 + +double +_DEFUN (ratio, (a, b), _Bigint * a _AND _Bigint * b) + +{ + union double_union da, db; + int k, ka, kb; + + da.d = b2d (a, &ka); + db.d = b2d (b, &kb); +#ifdef Pack_32 + k = ka - kb + 32 * (a->_wds - b->_wds); +#else + k = ka - kb + 16 * (a->_wds - b->_wds); +#endif +#ifdef IBM + if (k > 0) + { + word0 (da) += (k >> 2) * Exp_msk1; + if (k &= 3) + da.d *= 1 << k; + } + else + { + k = -k; + word0 (db) += (k >> 2) * Exp_msk1; + if (k &= 3) + db.d *= 1 << k; + } +#else + if (k > 0) + word0 (da) += k * Exp_msk1; + else + { + k = -k; + word0 (db) += k * Exp_msk1; + } +#endif + return da.d / db.d; +} + + +_CONST double + tens[] = +{ + 1e0, 1e1, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, + 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16, 1e17, 1e18, 1e19, + 1e20, 1e21, 1e22, 1e23, 1e24 + +}; + +#if !defined(_DOUBLE_IS_32BITS) && !defined(__v800) +_CONST double bigtens[] = +{1e16, 1e32, 1e64, 1e128, 1e256}; + +_CONST double tinytens[] = +{1e-16, 1e-32, 1e-64, 1e-128, 1e-256}; +#else +_CONST double bigtens[] = +{1e16, 1e32}; + +_CONST double tinytens[] = +{1e-16, 1e-32}; +#endif + + +double +_DEFUN (_mprec_log10, (dig), + int dig) +{ + double v = 1.0; + if (dig < 24) + return tens[dig]; + while (dig > 0) + { + v *= 10; + dig--; + } + return v; +} diff --git a/newlib/libc/stdlib/mprec.h b/newlib/libc/stdlib/mprec.h new file mode 100644 index 000000000..001f0c284 --- /dev/null +++ b/newlib/libc/stdlib/mprec.h @@ -0,0 +1,313 @@ +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991 by AT&T. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + +/* Please send bug reports to + David M. Gay + AT&T Bell Laboratories, Room 2C-463 + 600 Mountain Avenue + Murray Hill, NJ 07974-2070 + U.S.A. + dmg@research.att.com or research!dmg + */ + +#include <ieeefp.h> +#include <math.h> +#include <float.h> +#include <errno.h> +#include <sys/config.h> + +#ifdef __IEEE_LITTLE_ENDIAN +#define IEEE_8087 +#endif + +#ifdef __IEEE_BIG_ENDIAN +#define IEEE_MC68k +#endif + +#ifdef __Z8000__ +#define Just_16 +#endif + +#ifdef DEBUG +#include "stdio.h" +#define Bug(x) {fprintf(stderr, "%s\n", x); exit(1);} +#endif + +#ifdef Unsigned_Shifts +#define Sign_Extend(a,b) if (b < 0) a |= (__uint32_t)0xffff0000; +#else +#define Sign_Extend(a,b) /*no-op*/ +#endif + +#if defined(IEEE_8087) + defined(IEEE_MC68k) + defined(VAX) + defined(IBM) != 1 +Exactly one of IEEE_8087, IEEE_MC68k, VAX, or IBM should be defined. +#endif + +/* If we are going to examine or modify specific bits in a double using + the word0 and/or word1 macros, then we must wrap the double inside + a union. This is necessary to avoid undefined behavior according to + the ANSI C spec. */ +union double_union +{ + double d; + __uint32_t i[2]; +}; + +#ifdef IEEE_8087 +#define word0(x) (x.i[1]) +#define word1(x) (x.i[0]) +#else +#define word0(x) (x.i[0]) +#define word1(x) (x.i[1]) +#endif + +/* The following definition of Storeinc is appropriate for MIPS processors. + * An alternative that might be better on some machines is + * #define Storeinc(a,b,c) (*a++ = b << 16 | c & 0xffff) + */ +#if defined(IEEE_8087) + defined(VAX) +#define Storeinc(a,b,c) (((unsigned short *)a)[1] = (unsigned short)b, \ +((unsigned short *)a)[0] = (unsigned short)c, a++) +#else +#define Storeinc(a,b,c) (((unsigned short *)a)[0] = (unsigned short)b, \ +((unsigned short *)a)[1] = (unsigned short)c, a++) +#endif + +/* #define P DBL_MANT_DIG */ +/* Ten_pmax = floor(P*log(2)/log(5)) */ +/* Bletch = (highest power of 2 < DBL_MAX_10_EXP) / 16 */ +/* Quick_max = floor((P-1)*log(FLT_RADIX)/log(10) - 1) */ +/* Int_max = floor(P*log(FLT_RADIX)/log(10) - 1) */ + +#if defined(IEEE_8087) + defined(IEEE_MC68k) +#if defined (_DOUBLE_IS_32BITS) +#define Exp_shift 23 +#define Exp_shift1 23 +#define Exp_msk1 ((__uint32_t)0x00800000L) +#define Exp_msk11 ((__uint32_t)0x00800000L) +#define Exp_mask ((__uint32_t)0x7f800000L) +#define P 24 +#define Bias 127 +#if 0 +#define IEEE_Arith /* it is, but the code doesn't handle IEEE singles yet */ +#endif +#define Emin (-126) +#define Exp_1 ((__uint32_t)0x3f800000L) +#define Exp_11 ((__uint32_t)0x3f800000L) +#define Ebits 8 +#define Frac_mask ((__uint32_t)0x007fffffL) +#define Frac_mask1 ((__uint32_t)0x007fffffL) +#define Ten_pmax 10 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Ten_pmax 10 +#define Bletch 2 +#define Bndry_mask ((__uint32_t)0x007fffffL) +#define Bndry_mask1 ((__uint32_t)0x007fffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 1 +#define Tiny0 0 +#define Tiny1 1 +#define Quick_max 5 +#define Int_max 6 +#define Infinite(x) (word0(x) == ((__uint32_t)0x7f800000L)) +#undef word0 +#undef word1 + +#define word0(x) (x.i[0]) +#define word1(x) 0 +#else + +#define Exp_shift 20 +#define Exp_shift1 20 +#define Exp_msk1 ((__uint32_t)0x100000L) +#define Exp_msk11 ((__uint32_t)0x100000L) +#define Exp_mask ((__uint32_t)0x7ff00000L) +#define P 53 +#define Bias 1023 +#define IEEE_Arith +#define Emin (-1022) +#define Exp_1 ((__uint32_t)0x3ff00000L) +#define Exp_11 ((__uint32_t)0x3ff00000L) +#define Ebits 11 +#define Frac_mask ((__uint32_t)0xfffffL) +#define Frac_mask1 ((__uint32_t)0xfffffL) +#define Ten_pmax 22 +#define Bletch 0x10 +#define Bndry_mask ((__uint32_t)0xfffffL) +#define Bndry_mask1 ((__uint32_t)0xfffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 1 +#define Tiny0 0 +#define Tiny1 1 +#define Quick_max 14 +#define Int_max 14 +#define Infinite(x) (word0(x) == ((__uint32_t)0x7ff00000L)) /* sufficient test for here */ +#endif + +#else +#undef Sudden_Underflow +#define Sudden_Underflow +#ifdef IBM +#define Exp_shift 24 +#define Exp_shift1 24 +#define Exp_msk1 ((__uint32_t)0x1000000L) +#define Exp_msk11 ((__uint32_t)0x1000000L) +#define Exp_mask ((__uint32_t)0x7f000000L) +#define P 14 +#define Bias 65 +#define Exp_1 ((__uint32_t)0x41000000L) +#define Exp_11 ((__uint32_t)0x41000000L) +#define Ebits 8 /* exponent has 7 bits, but 8 is the right value in b2d */ +#define Frac_mask ((__uint32_t)0xffffffL) +#define Frac_mask1 ((__uint32_t)0xffffffL) +#define Bletch 4 +#define Ten_pmax 22 +#define Bndry_mask ((__uint32_t)0xefffffL) +#define Bndry_mask1 ((__uint32_t)0xffffffL) +#define LSB 1 +#define Sign_bit ((__uint32_t)0x80000000L) +#define Log2P 4 +#define Tiny0 ((__uint32_t)0x100000L) +#define Tiny1 0 +#define Quick_max 14 +#define Int_max 15 +#else /* VAX */ +#define Exp_shift 23 +#define Exp_shift1 7 +#define Exp_msk1 0x80 +#define Exp_msk11 ((__uint32_t)0x800000L) +#define Exp_mask ((__uint32_t)0x7f80L) +#define P 56 +#define Bias 129 +#define Exp_1 ((__uint32_t)0x40800000L) +#define Exp_11 ((__uint32_t)0x4080L) +#define Ebits 8 +#define Frac_mask ((__uint32_t)0x7fffffL) +#define Frac_mask1 ((__uint32_t)0xffff007fL) +#define Ten_pmax 24 +#define Bletch 2 +#define Bndry_mask ((__uint32_t)0xffff007fL) +#define Bndry_mask1 ((__uint32_t)0xffff007fL) +#define LSB ((__uint32_t)0x10000L) +#define Sign_bit ((__uint32_t)0x8000L) +#define Log2P 1 +#define Tiny0 0x80 +#define Tiny1 0 +#define Quick_max 15 +#define Int_max 15 +#endif +#endif + +#ifndef IEEE_Arith +#define ROUND_BIASED +#endif + +#ifdef RND_PRODQUOT +#define rounded_product(a,b) a = rnd_prod(a, b) +#define rounded_quotient(a,b) a = rnd_quot(a, b) +#ifdef KR_headers +extern double rnd_prod(), rnd_quot(); +#else +extern double rnd_prod(double, double), rnd_quot(double, double); +#endif +#else +#define rounded_product(a,b) a *= b +#define rounded_quotient(a,b) a /= b +#endif + +#define Big0 (Frac_mask1 | Exp_msk1*(DBL_MAX_EXP+Bias-1)) +#define Big1 ((__uint32_t)0xffffffffL) + +#ifndef Just_16 +/* When Pack_32 is not defined, we store 16 bits per 32-bit long. + * This makes some inner loops simpler and sometimes saves work + * during multiplications, but it often seems to make things slightly + * slower. Hence the default is now to store 32 bits per long. + */ + +#ifndef Pack_32 +#define Pack_32 +#endif +#endif + + +#ifdef __cplusplus +extern "C" double strtod(const char *s00, char **se); +extern "C" char *dtoa(double d, int mode, int ndigits, + int *decpt, int *sign, char **rve); +#endif + + +typedef struct _Bigint _Bigint; + +#define Balloc _Balloc +#define Bfree _Bfree +#define multadd _multadd +#define s2b _s2b +#define lo0bits _lo0bits +#define hi0bits _hi0bits +#define i2b _i2b +#define mult _multiply +#define pow5mult _pow5mult +#define lshift _lshift +#define cmp __mcmp +#define diff __mdiff +#define ulp _ulp +#define b2d _b2d +#define d2b _d2b +#define ratio _ratio + +#define tens __mprec_tens +#define bigtens __mprec_bigtens +#define tinytens __mprec_tinytens + +struct _reent ; +double _EXFUN(ulp,(double x)); +double _EXFUN(b2d,(_Bigint *a , int *e)); +_Bigint * _EXFUN(Balloc,(struct _reent *p, int k)); +void _EXFUN(Bfree,(struct _reent *p, _Bigint *v)); +_Bigint * _EXFUN(multadd,(struct _reent *p, _Bigint *, int, int)); +_Bigint * _EXFUN(s2b,(struct _reent *, const char*, int, int, __ULong)); +_Bigint * _EXFUN(i2b,(struct _reent *,int)); +_Bigint * _EXFUN(mult, (struct _reent *, _Bigint *, _Bigint *)); +_Bigint * _EXFUN(pow5mult, (struct _reent *, _Bigint *, int k)); +int _EXFUN(hi0bits,(__ULong)); +int _EXFUN(lo0bits,(__ULong *)); +_Bigint * _EXFUN(d2b,(struct _reent *p, double d, int *e, int *bits)); +_Bigint * _EXFUN(lshift,(struct _reent *p, _Bigint *b, int k)); +_Bigint * _EXFUN(diff,(struct _reent *p, _Bigint *a, _Bigint *b)); +int _EXFUN(cmp,(_Bigint *a, _Bigint *b)); + +double _EXFUN(ratio,(_Bigint *a, _Bigint *b)); +#define Bcopy(x,y) memcpy((char *)&x->_sign, (char *)&y->_sign, y->_wds*sizeof(__Long) + 2*sizeof(int)) + +#if defined(_DOUBLE_IS_32BITS) && defined(__v800) +#define n_bigtens 2 +#else +#define n_bigtens 5 +#endif + +extern _CONST double tinytens[]; +extern _CONST double bigtens[]; +extern _CONST double tens[]; + + +double _EXFUN(_mprec_log10,(int)); diff --git a/newlib/libc/stdlib/msize.c b/newlib/libc/stdlib/msize.c new file mode 100644 index 000000000..e910c44ec --- /dev/null +++ b/newlib/libc/stdlib/msize.c @@ -0,0 +1,17 @@ +/* msize.c -- a wrapper for malloc_usable_size. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +size_t +_DEFUN (malloc_usable_size, (ptr), + _PTR ptr) +{ + return _malloc_usable_size_r (_REENT, ptr); +} + +#endif diff --git a/newlib/libc/stdlib/mstats.c b/newlib/libc/stdlib/mstats.c new file mode 100644 index 000000000..c1628957a --- /dev/null +++ b/newlib/libc/stdlib/mstats.c @@ -0,0 +1,151 @@ +/* VxWorks provides its own version of malloc, and we can't use this + one because VxWorks does not provide sbrk. So we have a hook to + not compile this code. */ + +#ifdef MALLOC_PROVIDED + +int _dummy_mstats = 1; + +#else + +/* +FUNCTION +<<mallinfo>>, <<malloc_stats>>, <<mallopt>>--malloc support + +INDEX + mallinfo +INDEX + malloc_stats +INDEX + mallopt +INDEX + _mallinfo_r +INDEX + _malloc_stats_r +INDEX + _mallopt_r + +ANSI_SYNOPSIS + #include <malloc.h> + struct mallinfo mallinfo(void); + void malloc_stats(void); + int mallopt(int <[parameter]>, <[value]>); + + struct mallinfo _mallinfo_r(void *<[reent]>); + void _malloc_stats_r(void *<[reent]>); + int _mallopt_r(void *<[reent]>, int <[parameter]>, <[value]>); + +TRAD_SYNOPSIS + #include <malloc.h> + struct mallinfo mallinfo(); + + void malloc_stats(); + + int mallopt(<[parameter]>, <[value]>) + int <[parameter]>; + int <[value]>; + + struct mallinfo _mallinfo_r(<[reent]>); + char *<[reent]>; + + void _malloc_stats_r(<[reent]>); + char *<[reent]>; + + int _mallopt_r(<[reent]>, <[parameter]>, <[value]>) + char *<[reent]>; + int <[parameter]>; + int <[value]>; + +DESCRIPTION +<<mallinfo>> returns a structure describing the current state of +memory allocation. The structure is defined in malloc.h. The +following fields are defined: <<arena>> is the total amount of space +in the heap; <<ordblks>> is the number of chunks which are not in use; +<<uordblks>> is the total amount of space allocated by <<malloc>>; +<<fordblks>> is the total amount of space not in use; <<keepcost>> is +the size of the top most memory block. + +<<malloc_stats>> print some statistics about memory allocation on +standard error. + +<<mallopt>> takes a parameter and a value. The parameters are defined +in malloc.h, and may be one of the following: <<M_TRIM_THRESHOLD>> +sets the maximum amount of unused space in the top most block before +releasing it back to the system in <<free>> (the space is released by +calling <<_sbrk_r>> with a negative argument); <<M_TOP_PAD>> is the +amount of padding to allocate whenever <<_sbrk_r>> is called to +allocate more space. + +The alternate functions <<_mallinfo_r>>, <<_malloc_stats_r>>, and +<<_mallopt_r>> are reentrant versions. The extra argument <[reent]> +is a pointer to a reentrancy structure. + +RETURNS +<<mallinfo>> returns a mallinfo structure. The structure is defined +in malloc.h. + +<<malloc_stats>> does not return a result. + +<<mallopt>> returns zero if the parameter could not be set, or +non-zero if it could be set. + +PORTABILITY +<<mallinfo>> and <<mallopt>> are provided by SVR4, but <<mallopt>> +takes different parameters on different systems. <<malloc_stats>> is +not portable. + +*/ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> +#include <stdio.h> + +#ifndef _REENT_ONLY + +struct mallinfo +_DEFUN_VOID (mallinfo) +{ + return _mallinfo_r (_REENT); +} + +void +_DEFUN_VOID (malloc_stats) +{ + _malloc_stats_r (_REENT); +} + +int +_DEFUN (mallopt, (p, v), + int p _AND + int v) +{ + return _mallopt_r (_REENT, p, v); +} + +#endif + +/* mstats is now compatibility code. It used to be real, for a + previous version of the malloc routines. It now just calls + malloc_stats. */ + +void +_DEFUN (_mstats_r, (ptr, s), + struct _reent *ptr _AND + char *s) +{ + fiprintf (_stderr_r (ptr), "Memory allocation statistics %s\n", s); + _malloc_stats_r (ptr); +} + +#ifndef _REENT_ONLY +void +_DEFUN (mstats, (s), + char *s) +{ + _mstats_r (_REENT, s); +} + +#endif +#endif /* ! defined (MALLOC_PROVIDED) */ diff --git a/newlib/libc/stdlib/mtrim.c b/newlib/libc/stdlib/mtrim.c new file mode 100644 index 000000000..f5e0401c0 --- /dev/null +++ b/newlib/libc/stdlib/mtrim.c @@ -0,0 +1,17 @@ +/* mtrim.c -- a wrapper for malloc_trim. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +int +_DEFUN (malloc_trim, (pad), + size_t pad) +{ + return _malloc_trim_r (_REENT, pad); +} + +#endif diff --git a/newlib/libc/stdlib/putenv.c b/newlib/libc/stdlib/putenv.c new file mode 100644 index 000000000..8942d2d3f --- /dev/null +++ b/newlib/libc/stdlib/putenv.c @@ -0,0 +1,37 @@ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/*- + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _REENT_ONLY + +#include <stdlib.h> +#include <string.h> + +int +_DEFUN (putenv, (str), + _CONST char *str) +{ + return _putenv_r (_REENT, str); +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/putenv_r.c b/newlib/libc/stdlib/putenv_r.c new file mode 100644 index 000000000..f3c368a21 --- /dev/null +++ b/newlib/libc/stdlib/putenv_r.c @@ -0,0 +1,58 @@ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/*- + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <reent.h> +#include <stdlib.h> +#include <string.h> + +#include "envlock.h" + +/* _putenv_r - reentrant version of putenv that either adds + or replaces the environment variable "name" + with "value" which is specified by str as "name=value". */ +int +_DEFUN (_putenv_r, (reent_ptr, str), + struct _reent *reent_ptr _AND + _CONST char *str) +{ + register char *p, *equal; + int rval; + + p = _strdup_r (reent_ptr, str); + + if (!p) + return 1; + + if (!(equal = index (p, '='))) + { + (void) _free_r (reent_ptr, p); + return 1; + } + + *equal = '\0'; + rval = _setenv_r (reent_ptr, p, equal + 1, 1); + (void) _free_r (reent_ptr, p); + + return rval; +} diff --git a/newlib/libc/stdlib/qsort.c b/newlib/libc/stdlib/qsort.c new file mode 100644 index 000000000..d47f47099 --- /dev/null +++ b/newlib/libc/stdlib/qsort.c @@ -0,0 +1,222 @@ +/* +FUNCTION +<<qsort>>---sort an array + +INDEX + qsort + +ANSI_SYNOPSIS + #include <stdlib.h> + void qsort(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, + int (*<[compar]>)(const void *, const void *) ); + +TRAD_SYNOPSIS + #include <stdlib.h> + qsort(<[base]>, <[nmemb]>, <[size]>, <[compar]> ) + char *<[base]>; + size_t <[nmemb]>; + size_t <[size]>; + int (*<[compar]>)(); + +DESCRIPTION +<<qsort>> sorts an array (beginning at <[base]>) of <[nmemb]> objects. +<[size]> describes the size of each element of the array. + +You must supply a pointer to a comparison function, using the argument +shown as <[compar]>. (This permits sorting objects of unknown +properties.) Define the comparison function to accept two arguments, +each a pointer to an element of the array starting at <[base]>. The +result of <<(*<[compar]>)>> must be negative if the first argument is +less than the second, zero if the two arguments match, and positive if +the first argument is greater than the second (where ``less than'' and +``greater than'' refer to whatever arbitrary ordering is appropriate). + +The array is sorted in place; that is, when <<qsort>> returns, the +array elements beginning at <[base]> have been reordered. + +RETURNS +<<qsort>> does not return a result. + +PORTABILITY +<<qsort>> is required by ANSI (without specifying the sorting algorithm). +*/ + +/*- + * Copyright (c) 1992, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <_ansi.h> +#include <stdlib.h> + +#ifndef __GNUC__ +#define inline +#endif + +static inline char *med3 _PARAMS((char *, char *, char *, int (*)())); +static inline void swapfunc _PARAMS((char *, char *, int, int)); + +#define min(a, b) (a) < (b) ? a : b + +/* + * Qsort routine from Bentley & McIlroy's "Engineering a Sort Function". + */ +#define swapcode(TYPE, parmi, parmj, n) { \ + long i = (n) / sizeof (TYPE); \ + register TYPE *pi = (TYPE *) (parmi); \ + register TYPE *pj = (TYPE *) (parmj); \ + do { \ + register TYPE t = *pi; \ + *pi++ = *pj; \ + *pj++ = t; \ + } while (--i > 0); \ +} + +#define SWAPINIT(a, es) swaptype = ((char *)a - (char *)0) % sizeof(long) || \ + es % sizeof(long) ? 2 : es == sizeof(long)? 0 : 1; + +static inline void +_DEFUN(swapfunc, (a, b, n, swaptype), + char *a _AND + char *b _AND + int n _AND + int swaptype) +{ + if(swaptype <= 1) + swapcode(long, a, b, n) + else + swapcode(char, a, b, n) +} + +#define swap(a, b) \ + if (swaptype == 0) { \ + long t = *(long *)(a); \ + *(long *)(a) = *(long *)(b); \ + *(long *)(b) = t; \ + } else \ + swapfunc(a, b, es, swaptype) + +#define vecswap(a, b, n) if ((n) > 0) swapfunc(a, b, n, swaptype) + +static inline char * +_DEFUN(med3, (a, b, c, cmp), + char *a _AND + char *b _AND + char *c _AND + int (*cmp)()) +{ + return cmp(a, b) < 0 ? + (cmp(b, c) < 0 ? b : (cmp(a, c) < 0 ? c : a )) + :(cmp(b, c) > 0 ? b : (cmp(a, c) < 0 ? a : c )); +} + +void +_DEFUN(qsort, (a, n, es, cmp), + void *a _AND + size_t n _AND + size_t es _AND + int (*cmp)()) +{ + char *pa, *pb, *pc, *pd, *pl, *pm, *pn; + int d, r, swaptype, swap_cnt; + +loop: SWAPINIT(a, es); + swap_cnt = 0; + if (n < 7) { + for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) + for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + pl -= es) + swap(pl, pl - es); + return; + } + pm = (char *) a + (n / 2) * es; + if (n > 7) { + pl = a; + pn = (char *) a + (n - 1) * es; + if (n > 40) { + d = (n / 8) * es; + pl = med3(pl, pl + d, pl + 2 * d, cmp); + pm = med3(pm - d, pm, pm + d, cmp); + pn = med3(pn - 2 * d, pn - d, pn, cmp); + } + pm = med3(pl, pm, pn, cmp); + } + swap(a, pm); + pa = pb = (char *) a + es; + + pc = pd = (char *) a + (n - 1) * es; + for (;;) { + while (pb <= pc && (r = cmp(pb, a)) <= 0) { + if (r == 0) { + swap_cnt = 1; + swap(pa, pb); + pa += es; + } + pb += es; + } + while (pb <= pc && (r = cmp(pc, a)) >= 0) { + if (r == 0) { + swap_cnt = 1; + swap(pc, pd); + pd -= es; + } + pc -= es; + } + if (pb > pc) + break; + swap(pb, pc); + swap_cnt = 1; + pb += es; + pc -= es; + } + if (swap_cnt == 0) { /* Switch to insertion sort */ + for (pm = (char *) a + es; pm < (char *) a + n * es; pm += es) + for (pl = pm; pl > (char *) a && cmp(pl - es, pl) > 0; + pl -= es) + swap(pl, pl - es); + return; + } + + pn = (char *) a + n * es; + r = min(pa - (char *)a, pb - pa); + vecswap(a, pb - r, r); + r = min(pd - pc, pn - pd - es); + vecswap(pb, pn - r, r); + if ((r = pb - pa) > es) + qsort(a, r / es, es, cmp); + if ((r = pd - pc) > es) { + /* Iterate rather than recurse to save stack space */ + a = pn - r; + n = r / es; + goto loop; + } +/* qsort(pn - r, r / es, es, cmp);*/ +} diff --git a/newlib/libc/stdlib/rand.c b/newlib/libc/stdlib/rand.c new file mode 100644 index 000000000..3d739efbc --- /dev/null +++ b/newlib/libc/stdlib/rand.c @@ -0,0 +1,86 @@ +/* +FUNCTION +<<rand>>, <<srand>>---pseudo-random numbers + +INDEX + rand +INDEX + srand +INDEX + rand_r + +ANSI_SYNOPSIS + #include <stdlib.h> + int rand(void); + void srand(unsigned int <[seed]>); + int rand_r(unsigned int *<[seed]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int rand(); + + void srand(<[seed]>) + unsigned int <[seed]>; + + void rand_r(<[seed]>) + unsigned int *<[seed]>; + + +DESCRIPTION +<<rand>> returns a different integer each time it is called; each +integer is chosen by an algorithm designed to be unpredictable, so +that you can use <<rand>> when you require a random number. +The algorithm depends on a static variable called the ``random seed''; +starting with a given value of the random seed always produces the +same sequence of numbers in successive calls to <<rand>>. + +You can set the random seed using <<srand>>; it does nothing beyond +storing its argument in the static variable used by <<rand>>. You can +exploit this to make the pseudo-random sequence less predictable, if +you wish, by using some other unpredictable value (often the least +significant parts of a time-varying value) as the random seed before +beginning a sequence of calls to <<rand>>; or, if you wish to ensure +(for example, while debugging) that successive runs of your program +use the same ``random'' numbers, you can use <<srand>> to set the same +random seed at the outset. + +RETURNS +<<rand>> returns the next pseudo-random integer in sequence; it is a +number between <<0>> and <<RAND_MAX>> (inclusive). + +<<srand>> does not return a result. + +NOTES +<<rand>> and <<srand>> are unsafe for multi-thread applications. +<<rand_r>> is MT-Safe and should be used instead. + + +PORTABILITY +<<rand>> is required by ANSI, but the algorithm for pseudo-random +number generation is not specified; therefore, even if you use +the same random seed, you cannot expect the same sequence of results +on two different systems. + +<<rand>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> +#include <reent.h> + +void +_DEFUN (srand, (seed), unsigned int seed) +{ + _REENT->_new._reent._rand_next = seed; +} + +int +_DEFUN_VOID (rand) +{ + return ((_REENT->_new._reent._rand_next = + _REENT->_new._reent._rand_next * 1103515245 + 12345 ) + & RAND_MAX ); +} + +#endif /* _REENT_ONLY */ diff --git a/newlib/libc/stdlib/rand_r.c b/newlib/libc/stdlib/rand_r.c new file mode 100644 index 000000000..25307275f --- /dev/null +++ b/newlib/libc/stdlib/rand_r.c @@ -0,0 +1,7 @@ +#include <stdlib.h> + +int +_DEFUN (rand_r, (seed), unsigned int *seed) +{ + return (((*seed) = (*seed) * 1103515245 + 12345) & RAND_MAX); +} diff --git a/newlib/libc/stdlib/realloc.c b/newlib/libc/stdlib/realloc.c new file mode 100644 index 000000000..2caa6e4d2 --- /dev/null +++ b/newlib/libc/stdlib/realloc.c @@ -0,0 +1,22 @@ +#ifdef MALLOC_PROVIDED +int _dummy_calloc = 1; +#else +/* realloc.c -- a wrapper for realloc_r. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +_PTR +_DEFUN (realloc, (ap, nbytes), + _PTR ap _AND + size_t nbytes) +{ + return _realloc_r (_REENT, ap, nbytes); +} + +#endif +#endif /* MALLOC_PROVIDED */ diff --git a/newlib/libc/stdlib/setenv.c b/newlib/libc/stdlib/setenv.c new file mode 100644 index 000000000..49969817b --- /dev/null +++ b/newlib/libc/stdlib/setenv.c @@ -0,0 +1,59 @@ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef _REENT_ONLY + +#include <stddef.h> +#include <stdlib.h> +#include <string.h> + +extern void _unsetenv_r _PARAMS ((struct _reent *, const char *)); + +/* + * setenv -- + * Set the value of the environmental variable "name" to be + * "value". If rewrite is set, replace any current value. + */ + +int +_DEFUN (setenv, (name, value, rewrite), + _CONST char *name _AND + _CONST char *value _AND + int rewrite) +{ + return _setenv_r (_REENT, name, value, rewrite); +} + +/* + * unsetenv(name) -- + * Delete environmental variable "name". + */ +void +_DEFUN (unsetenv, (name), + _CONST char *name) +{ + _unsetenv_r (_REENT, name); +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/setenv_r.c b/newlib/libc/stdlib/setenv_r.c new file mode 100644 index 000000000..2d3c3f4e5 --- /dev/null +++ b/newlib/libc/stdlib/setenv_r.c @@ -0,0 +1,139 @@ +/* This file may have been modified by DJ Delorie (Jan 1991). If so, +** these modifications are Coyright (C) 1991 DJ Delorie, 24 Kirsten Ave, +** Rochester NH, 03867-2954, USA. +*/ + +/* + * Copyright (c) 1987 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that: (1) source distributions retain this entire copyright + * notice and comment, and (2) distributions including binaries display + * the following acknowledgement: ``This product includes software + * developed by the University of California, Berkeley and its contributors'' + * in the documentation or other materials provided with the distribution + * and in all advertising materials mentioning features or use of this + * software. Neither the name of the University nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#include <reent.h> + +#include <stddef.h> +#include <stdlib.h> +#include <string.h> +#include "envlock.h" + +/* _findenv_r is defined in getenv_r.c. */ +extern char *_findenv_r _PARAMS ((struct _reent *, const char *, int *)); + +/* + * _setenv_r -- + * Set the value of the environmental variable "name" to be + * "value". If rewrite is set, replace any current value. + */ + +int +_DEFUN (_setenv_r, (reent_ptr, name, value, rewrite), + struct _reent *reent_ptr _AND + _CONST char *name _AND + _CONST char *value _AND + int rewrite) +{ + extern char **environ; + static int alloced; /* if allocated space before */ + register char *C; + int l_value, offset; + + ENV_LOCK; + + if (*value == '=') /* no `=' in value */ + ++value; + l_value = strlen (value); + if ((C = _findenv_r (reent_ptr, name, &offset))) + { /* find if already exists */ + if (!rewrite) + { + ENV_UNLOCK; + return 0; + } + if (strlen (C) >= l_value) + { /* old larger; copy over */ + while (*C++ = *value++); + ENV_UNLOCK; + return 0; + } + } + else + { /* create new slot */ + register int cnt; + register char **P; + + for (P = environ, cnt = 0; *P; ++P, ++cnt); + if (alloced) + { /* just increase size */ + environ = (char **) _realloc_r (reent_ptr, (char *) environ, + (size_t) (sizeof (char *) * (cnt + 2))); + if (!environ) + { + ENV_UNLOCK; + return -1; + } + } + else + { /* get new space */ + alloced = 1; /* copy old entries into it */ + P = (char **) _malloc_r (reent_ptr, (size_t) (sizeof (char *) * (cnt + 2))); + if (!P) + { + ENV_UNLOCK; + return (-1); + } + bcopy ((char *) environ, (char *) P, cnt * sizeof (char *)); + environ = P; + } + environ[cnt + 1] = NULL; + offset = cnt; + } + for (C = (char *) name; *C && *C != '='; ++C); /* no `=' in name */ + if (!(environ[offset] = /* name + `=' + value */ + _malloc_r (reent_ptr, (size_t) ((int) (C - name) + l_value + 2)))) + { + ENV_UNLOCK; + return -1; + } + for (C = environ[offset]; (*C = *name++) && *C != '='; ++C); + for (*C++ = '='; *C++ = *value++;); + + ENV_UNLOCK; + + return 0; +} + +/* + * _unsetenv_r(name) -- + * Delete environmental variable "name". + */ +void +_DEFUN (_unsetenv_r, (reent_ptr, name), + struct _reent *reent_ptr _AND + _CONST char *name) +{ + extern char **environ; + register char **P; + int offset; + + ENV_LOCK; + + while (_findenv_r (reent_ptr, name, &offset)) /* if set multiple times */ + for (P = &environ[offset];; ++P) + if (!(*P = *(P + 1))) + break; + + ENV_UNLOCK; +} diff --git a/newlib/libc/stdlib/std.h b/newlib/libc/stdlib/std.h new file mode 100644 index 000000000..287503eac --- /dev/null +++ b/newlib/libc/stdlib/std.h @@ -0,0 +1,33 @@ +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <limits.h> +#include <math.h> +#ifndef CYGNUS_NEC +#include <ctype.h> +#endif + +#define Ise(c) ((c == 'e') || (c == 'E') || (c == 'd') || (c == 'D')) +#define Isdigit(c) ((c <= '9') && (c >= '0')) +#define Isspace(c) ((c == ' ') || (c == '\t') || (c=='\n') || (c=='\v') \ + || (c == '\r') || (c == '\f')) +#define Issign(c) ((c == '-') || (c == '+')) +#define Val(c) ((c - '0')) + +#define MAXE 308 +#define MINE (-308) + +/* flags */ +#define SIGN 0x01 +#define ESIGN 0x02 +#define DECP 0x04 + +#ifdef _HAVE_STDC +int __ten_mul(double *acc, int digit); +double __adjust(struct _reent *ptr, double *acc, int dexp, int sign); +const double __exp10(unsigned x); +#else +int __ten_mul(); +double __adjust(); +double __exp10(); +#endif diff --git a/newlib/libc/stdlib/stdlib.tex b/newlib/libc/stdlib/stdlib.tex new file mode 100644 index 000000000..7a0d723d3 --- /dev/null +++ b/newlib/libc/stdlib/stdlib.tex @@ -0,0 +1,130 @@ +@node Stdlib +@chapter Standard Utility Functions (@file{stdlib.h}) + +This chapter groups utility functions useful in a variety of programs. +The corresponding declarations are in the header file @file{stdlib.h}. + +@menu +* abort:: Abnormal termination of a program +* abs:: Integer absolute value (magnitude) +* assert:: Macro for Debugging Diagnostics +* atexit:: Request execution of functions at program exit +* atof:: String to double or float +* atoi:: String to integer +* bsearch:: Binary search +* calloc:: Allocate space for arrays +* div:: Divide two integers +* ecvtbuf:: Double or float to string of digits +* ecvt:: Double or float to string of digits (malloc result) +* __env_lock:: Lock environment list for getenv and setenv +* gvcvt:: Format double or float as string +* exit:: End program execution +* getenv:: Look up environment variable +* labs:: Long integer absolute value (magnitude) +* ldiv:: Divide two long integers +* malloc:: Allocate and manage memory (malloc, realloc, free) +* mallinfo:: Get information about allocated memory +* __malloc_lock:: Lock memory pool for malloc and free +* mbstowcs:: Minimal multibyte string to wide string converter +* mblen:: Minimal multibyte length +* mbtowc:: Minimal multibyte to wide character converter +* qsort:: Sort an array +* rand:: Pseudo-random numbers +* strtod:: String to double or float +* strtol:: String to long +* strtoul:: String to unsigned long +* system:: Execute command string +* wcstombs:: Minimal wide string to multibyte string converter +* wctomb:: Minimal wide character to multibyte converter +@end menu + +@page +@include stdlib/abort.def + +@page +@include stdlib/abs.def + +@page +@include stdlib/assert.def + +@page +@include stdlib/atexit.def + +@page +@include stdlib/atof.def + +@page +@include stdlib/atoi.def + +@page +@include stdlib/bsearch.def + +@page +@include stdlib/calloc.def + +@page +@include stdlib/div.def + +@page +@include stdlib/efgcvt.def + +@page +@include stdlib/ecvtbuf.def + +@page +@include stdlib/envlock.def + +@page +@include stdlib/exit.def + +@page +@include stdlib/getenv.def + +@page +@include stdlib/labs.def + +@page +@include stdlib/ldiv.def + +@page +@include stdlib/malloc.def + +@page +@include stdlib/mstats.def + +@page +@include stdlib/mlock.def + +@page +@include stdlib/mblen.def + +@page +@include stdlib/mbstowcs.def + +@page +@include stdlib/mbtowc.def + +@page +@include stdlib/qsort.def + +@page +@include stdlib/rand.def + +@page +@include stdlib/strtod.def + +@page +@include stdlib/strtol.def + +@page +@include stdlib/strtoul.def + +@page +@include stdlib/system.def + +@page +@include stdlib/wcstombs.def + +@page +@include stdlib/wctomb.def + diff --git a/newlib/libc/stdlib/strdup.c b/newlib/libc/stdlib/strdup.c new file mode 100644 index 000000000..dbb069264 --- /dev/null +++ b/newlib/libc/stdlib/strdup.c @@ -0,0 +1,13 @@ +#ifndef _REENT_ONLY + +#include <reent.h> +#include <stdlib.h> +#include <string.h> + +char * +_DEFUN (strdup, (str), _CONST char *str) +{ + return _strdup_r (_REENT, str); +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/strdup_r.c b/newlib/libc/stdlib/strdup_r.c new file mode 100644 index 000000000..ef77a58eb --- /dev/null +++ b/newlib/libc/stdlib/strdup_r.c @@ -0,0 +1,17 @@ +#include <reent.h> +#include <stdlib.h> +#include <string.h> + +char * +_DEFUN (_strdup_r, (reent_ptr, str), + struct _reent *reent_ptr _AND + _CONST char *str) +{ + size_t len = strlen (str) + 1; + char *copy = _malloc_r (reent_ptr, len); + if (copy) + { + memcpy (copy, str, len); + } + return copy; +} diff --git a/newlib/libc/stdlib/strtod.c b/newlib/libc/stdlib/strtod.c new file mode 100644 index 000000000..77a17a135 --- /dev/null +++ b/newlib/libc/stdlib/strtod.c @@ -0,0 +1,731 @@ +/* +FUNCTION + <<strtod>>, <<strtodf>>---string to double or float + +INDEX + strtod +INDEX + _strtod_r +INDEX + strtodf + +ANSI_SYNOPSIS + #include <stdlib.h> + double strtod(const char *<[str]>, char **<[tail]>); + float strtodf(const char *<[str]>, char **<[tail]>); + + double _strtod_r(void *<[reent]>, + const char *<[str]>, char **<[tail]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + double strtod(<[str]>,<[tail]>) + char *<[str]>; + char **<[tail]>; + + float strtodf(<[str]>,<[tail]>) + char *<[str]>; + char **<[tail]>; + + double _strtod_r(<[reent]>,<[str]>,<[tail]>) + char *<[reent]>; + char *<[str]>; + char **<[tail]>; + +DESCRIPTION + The function <<strtod>> parses the character string <[str]>, + producing a substring which can be converted to a double + value. The substring converted is the longest initial + subsequence of <[str]>, beginning with the first + non-whitespace character, that has the format: + .[+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] + The substring contains no characters if <[str]> is empty, consists + entirely of whitespace, or if the first non-whitespace + character is something other than <<+>>, <<->>, <<.>>, or a + digit. If the substring is empty, no conversion is done, and + the value of <[str]> is stored in <<*<[tail]>>>. Otherwise, + the substring is converted, and a pointer to the final string + (which will contain at least the terminating null character of + <[str]>) is stored in <<*<[tail]>>>. If you want no + assignment to <<*<[tail]>>>, pass a null pointer as <[tail]>. + <<strtodf>> is identical to <<strtod>> except for its return type. + + This implementation returns the nearest machine number to the + input decimal string. Ties are broken by using the IEEE + round-even rule. + + The alternate function <<_strtod_r>> is a reentrant version. + The extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS + <<strtod>> returns the converted substring value, if any. If + no conversion could be performed, 0 is returned. If the + correct value is out of the range of representable values, + plus or minus <<HUGE_VAL>> is returned, and <<ERANGE>> is + stored in errno. If the correct value would cause underflow, 0 + is returned and <<ERANGE>> is stored in errno. + +Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, +<<lseek>>, <<read>>, <<sbrk>>, <<write>>. +*/ + +/**************************************************************** + * + * The author of this software is David M. Gay. + * + * Copyright (c) 1991 by AT&T. + * + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + * + ***************************************************************/ + +/* Please send bug reports to + David M. Gay + AT&T Bell Laboratories, Room 2C-463 + 600 Mountain Avenue + Murray Hill, NJ 07974-2070 + U.S.A. + dmg@research.att.com or research!dmg + */ + +#include <_ansi.h> +#include <reent.h> +#include <string.h> +#include "mprec.h" + +double +_DEFUN (_strtod_r, (ptr, s00, se), + struct _reent *ptr _AND + _CONST char *s00 _AND + char **se) +{ + int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, dsign, e1, esign, i, j, + k, nd, nd0, nf, nz, nz0, sign; + long e; + _CONST char *s, *s0, *s1; + double aadj, aadj1, adj; + long L; + unsigned long z; + __ULong y; + union double_union rv, rv0; + + _Bigint *bb, *bb1, *bd, *bd0, *bs, *delta; + sign = nz0 = nz = 0; + rv.d = 0.; + for (s = s00;; s++) + switch (*s) + { + case '-': + sign = 1; + /* no break */ + case '+': + if (*++s) + goto break2; + /* no break */ + case 0: + s = s00; + goto ret; + case '\t': + case '\n': + case '\v': + case '\f': + case '\r': + case ' ': + continue; + default: + goto break2; + } +break2: + if (*s == '0') + { + nz0 = 1; + while (*++s == '0'); + if (!*s) + goto ret; + } + s0 = s; + y = z = 0; + for (nd = nf = 0; (c = *s) >= '0' && c <= '9'; nd++, s++) + if (nd < 9) + y = 10 * y + c - '0'; + else if (nd < 16) + z = 10 * z + c - '0'; + nd0 = nd; + if (c == '.') + { + c = *++s; + if (!nd) + { + for (; c == '0'; c = *++s) + nz++; + if (c > '0' && c <= '9') + { + s0 = s; + nf += nz; + nz = 0; + goto have_dig; + } + goto dig_done; + } + for (; c >= '0' && c <= '9'; c = *++s) + { + have_dig: + nz++; + if (c -= '0') + { + nf += nz; + for (i = 1; i < nz; i++) + if (nd++ < 9) + y *= 10; + else if (nd <= DBL_DIG + 1) + z *= 10; + if (nd++ < 9) + y = 10 * y + c; + else if (nd <= DBL_DIG + 1) + z = 10 * z + c; + nz = 0; + } + } + } +dig_done: + e = 0; + if (c == 'e' || c == 'E') + { + if (!nd && !nz && !nz0) + { + s = s00; + goto ret; + } + s00 = s; + esign = 0; + switch (c = *++s) + { + case '-': + esign = 1; + case '+': + c = *++s; + } + if (c >= '0' && c <= '9') + { + while (c == '0') + c = *++s; + if (c > '0' && c <= '9') + { + e = c - '0'; + s1 = s; + while ((c = *++s) >= '0' && c <= '9') + e = 10 * e + c - '0'; + if (s - s1 > 8) + /* Avoid confusion from exponents + * so large that e might overflow. + */ + e = 9999999L; + if (esign) + e = -e; + } + else + e = 0; + } + else + s = s00; + } + if (!nd) + { + if (!nz && !nz0) + s = s00; + goto ret; + } + e1 = e -= nf; + + /* Now we have nd0 digits, starting at s0, followed by a + * decimal point, followed by nd-nd0 digits. The number we're + * after is the integer represented by those digits times + * 10**e */ + + if (!nd0) + nd0 = nd; + k = nd < DBL_DIG + 1 ? nd : DBL_DIG + 1; + rv.d = y; + if (k > 9) + rv.d = tens[k - 9] * rv.d + z; + bd0 = 0; + if (nd <= DBL_DIG +#ifndef RND_PRODQUOT + && FLT_ROUNDS == 1 +#endif + ) + { + if (!e) + goto ret; + if (e > 0) + { + if (e <= Ten_pmax) + { +#ifdef VAX + goto vax_ovfl_check; +#else + /* rv.d = */ rounded_product (rv.d, tens[e]); + goto ret; +#endif + } + i = DBL_DIG - nd; + if (e <= Ten_pmax + i) + { + /* A fancier test would sometimes let us do + * this for larger i values. + */ + e -= i; + rv.d *= tens[i]; +#ifdef VAX + /* VAX exponent range is so narrow we must + * worry about overflow here... + */ + vax_ovfl_check: + word0 (rv) -= P * Exp_msk1; + /* rv.d = */ rounded_product (rv.d, tens[e]); + if ((word0 (rv) & Exp_mask) + > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) + goto ovfl; + word0 (rv) += P * Exp_msk1; +#else + /* rv.d = */ rounded_product (rv.d, tens[e]); +#endif + goto ret; + } + } +#ifndef Inaccurate_Divide + else if (e >= -Ten_pmax) + { + /* rv.d = */ rounded_quotient (rv.d, tens[-e]); + goto ret; + } +#endif + } + e1 += nd - k; + + /* Get starting approximation = rv.d * 10**e1 */ + + if (e1 > 0) + { + if (i = e1 & 15) + rv.d *= tens[i]; + if (e1 &= ~15) + { + if (e1 > DBL_MAX_10_EXP) + { + ovfl: + ptr->_errno = ERANGE; +#ifdef _HAVE_STDC + rv.d = HUGE_VAL; +#else + /* Can't trust HUGE_VAL */ +#ifdef IEEE_Arith + word0 (rv) = Exp_mask; +#ifndef _DOUBLE_IS_32BITS + word1 (rv) = 0; +#endif +#else + word0 (rv) = Big0; +#ifndef _DOUBLE_IS_32BITS + word1 (rv) = Big1; +#endif +#endif +#endif + if (bd0) + goto retfree; + goto ret; + } + if (e1 >>= 4) + { + for (j = 0; e1 > 1; j++, e1 >>= 1) + if (e1 & 1) + rv.d *= bigtens[j]; + /* The last multiplication could overflow. */ + word0 (rv) -= P * Exp_msk1; + rv.d *= bigtens[j]; + if ((z = word0 (rv) & Exp_mask) + > Exp_msk1 * (DBL_MAX_EXP + Bias - P)) + goto ovfl; + if (z > Exp_msk1 * (DBL_MAX_EXP + Bias - 1 - P)) + { + /* set to largest number */ + /* (Can't trust DBL_MAX) */ + word0 (rv) = Big0; +#ifndef _DOUBLE_IS_32BITS + word1 (rv) = Big1; +#endif + } + else + word0 (rv) += P * Exp_msk1; + } + + } + } + else if (e1 < 0) + { + e1 = -e1; + if (i = e1 & 15) + rv.d /= tens[i]; + if (e1 &= ~15) + { + e1 >>= 4; + if (e1 >= 1 << n_bigtens) + goto undfl; + for (j = 0; e1 > 1; j++, e1 >>= 1) + if (e1 & 1) + rv.d *= tinytens[j]; + /* The last multiplication could underflow. */ + rv0.d = rv.d; + rv.d *= tinytens[j]; + if (!rv.d) + { + rv.d = 2. * rv0.d; + rv.d *= tinytens[j]; + if (!rv.d) + { + undfl: + rv.d = 0.; + ptr->_errno = ERANGE; + if (bd0) + goto retfree; + goto ret; + } +#ifndef _DOUBLE_IS_32BITS + word0 (rv) = Tiny0; + word1 (rv) = Tiny1; +#else + word0 (rv) = Tiny1; +#endif + /* The refinement below will clean + * this approximation up. + */ + } + } + } + + /* Now the hard part -- adjusting rv to the correct value.*/ + + /* Put digits into bd: true value = bd * 10^e */ + + bd0 = s2b (ptr, s0, nd0, nd, y); + + for (;;) + { + bd = Balloc (ptr, bd0->_k); + Bcopy (bd, bd0); + bb = d2b (ptr, rv.d, &bbe, &bbbits); /* rv.d = bb * 2^bbe */ + bs = i2b (ptr, 1); + + if (e >= 0) + { + bb2 = bb5 = 0; + bd2 = bd5 = e; + } + else + { + bb2 = bb5 = -e; + bd2 = bd5 = 0; + } + if (bbe >= 0) + bb2 += bbe; + else + bd2 -= bbe; + bs2 = bb2; +#ifdef Sudden_Underflow +#ifdef IBM + j = 1 + 4 * P - 3 - bbbits + ((bbe + bbbits - 1) & 3); +#else + j = P + 1 - bbbits; +#endif +#else + i = bbe + bbbits - 1; /* logb(rv.d) */ + if (i < Emin) /* denormal */ + j = bbe + (P - Emin); + else + j = P + 1 - bbbits; +#endif + bb2 += j; + bd2 += j; + i = bb2 < bd2 ? bb2 : bd2; + if (i > bs2) + i = bs2; + if (i > 0) + { + bb2 -= i; + bd2 -= i; + bs2 -= i; + } + if (bb5 > 0) + { + bs = pow5mult (ptr, bs, bb5); + bb1 = mult (ptr, bs, bb); + Bfree (ptr, bb); + bb = bb1; + } + if (bb2 > 0) + bb = lshift (ptr, bb, bb2); + if (bd5 > 0) + bd = pow5mult (ptr, bd, bd5); + if (bd2 > 0) + bd = lshift (ptr, bd, bd2); + if (bs2 > 0) + bs = lshift (ptr, bs, bs2); + delta = diff (ptr, bb, bd); + dsign = delta->_sign; + delta->_sign = 0; + i = cmp (delta, bs); + if (i < 0) + { + /* Error is less than half an ulp -- check for + * special case of mantissa a power of two. + */ + if (dsign || word1 (rv) || word0 (rv) & Bndry_mask) + break; + delta = lshift (ptr, delta, Log2P); + if (cmp (delta, bs) > 0) + goto drop_down; + break; + } + if (i == 0) + { + /* exactly half-way between */ + if (dsign) + { + if ((word0 (rv) & Bndry_mask1) == Bndry_mask1 + && word1 (rv) == 0xffffffff) + { + /*boundary case -- increment exponent*/ + word0 (rv) = (word0 (rv) & Exp_mask) + + Exp_msk1 +#ifdef IBM + | Exp_msk1 >> 4 +#endif + ; +#ifndef _DOUBLE_IS_32BITS + word1 (rv) = 0; +#endif + break; + } + } + else if (!(word0 (rv) & Bndry_mask) && !word1 (rv)) + { + drop_down: + /* boundary case -- decrement exponent */ +#ifdef Sudden_Underflow + L = word0 (rv) & Exp_mask; +#ifdef IBM + if (L < Exp_msk1) +#else + if (L <= Exp_msk1) +#endif + goto undfl; + L -= Exp_msk1; +#else + L = (word0 (rv) & Exp_mask) - Exp_msk1; +#endif + word0 (rv) = L | Bndry_mask1; +#ifndef _DOUBLE_IS_32BITS + word1 (rv) = 0xffffffff; +#endif +#ifdef IBM + goto cont; +#else + break; +#endif + } +#ifndef ROUND_BIASED + if (!(word1 (rv) & LSB)) + break; +#endif + if (dsign) + rv.d += ulp (rv.d); +#ifndef ROUND_BIASED + else + { + rv.d -= ulp (rv.d); +#ifndef Sudden_Underflow + if (!rv.d) + goto undfl; +#endif + } +#endif + break; + } + if ((aadj = ratio (delta, bs)) <= 2.) + { + if (dsign) + aadj = aadj1 = 1.; + else if (word1 (rv) || word0 (rv) & Bndry_mask) + { +#ifndef Sudden_Underflow + if (word1 (rv) == Tiny1 && !word0 (rv)) + goto undfl; +#endif + aadj = 1.; + aadj1 = -1.; + } + else + { + /* special case -- power of FLT_RADIX to be */ + /* rounded down... */ + + if (aadj < 2. / FLT_RADIX) + aadj = 1. / FLT_RADIX; + else + aadj *= 0.5; + aadj1 = -aadj; + } + } + else + { + aadj *= 0.5; + aadj1 = dsign ? aadj : -aadj; +#ifdef Check_FLT_ROUNDS + switch (FLT_ROUNDS) + { + case 2: /* towards +infinity */ + aadj1 -= 0.5; + break; + case 0: /* towards 0 */ + case 3: /* towards -infinity */ + aadj1 += 0.5; + } +#else + if (FLT_ROUNDS == 0) + aadj1 += 0.5; +#endif + } + y = word0 (rv) & Exp_mask; + + /* Check for overflow */ + + if (y == Exp_msk1 * (DBL_MAX_EXP + Bias - 1)) + { + rv0.d = rv.d; + word0 (rv) -= P * Exp_msk1; + adj = aadj1 * ulp (rv.d); + rv.d += adj; + if ((word0 (rv) & Exp_mask) >= + Exp_msk1 * (DBL_MAX_EXP + Bias - P)) + { + if (word0 (rv0) == Big0 && word1 (rv0) == Big1) + goto ovfl; +#ifdef _DOUBLE_IS_32BITS + word0 (rv) = Big1; +#else + word0 (rv) = Big0; + word1 (rv) = Big1; +#endif + goto cont; + } + else + word0 (rv) += P * Exp_msk1; + } + else + { +#ifdef Sudden_Underflow + if ((word0 (rv) & Exp_mask) <= P * Exp_msk1) + { + rv0.d = rv.d; + word0 (rv) += P * Exp_msk1; + adj = aadj1 * ulp (rv.d); + rv.d += adj; +#ifdef IBM + if ((word0 (rv) & Exp_mask) < P * Exp_msk1) +#else + if ((word0 (rv) & Exp_mask) <= P * Exp_msk1) +#endif + { + if (word0 (rv0) == Tiny0 + && word1 (rv0) == Tiny1) + goto undfl; + word0 (rv) = Tiny0; + word1 (rv) = Tiny1; + goto cont; + } + else + word0 (rv) -= P * Exp_msk1; + } + else + { + adj = aadj1 * ulp (rv.d); + rv.d += adj; + } +#else + /* Compute adj so that the IEEE rounding rules will + * correctly round rv.d + adj in some half-way cases. + * If rv.d * ulp(rv.d) is denormalized (i.e., + * y <= (P-1)*Exp_msk1), we must adjust aadj to avoid + * trouble from bits lost to denormalization; + * example: 1.2e-307 . + */ + if (y <= (P - 1) * Exp_msk1 && aadj >= 1.) + { + aadj1 = (double) (int) (aadj + 0.5); + if (!dsign) + aadj1 = -aadj1; + } + adj = aadj1 * ulp (rv.d); + rv.d += adj; +#endif + } + z = word0 (rv) & Exp_mask; + if (y == z) + { + /* Can we stop now? */ + L = aadj; + aadj -= L; + /* The tolerances below are conservative. */ + if (dsign || word1 (rv) || word0 (rv) & Bndry_mask) + { + if (aadj < .4999999 || aadj > .5000001) + break; + } + else if (aadj < .4999999 / FLT_RADIX) + break; + } + cont: + Bfree (ptr, bb); + Bfree (ptr, bd); + Bfree (ptr, bs); + Bfree (ptr, delta); + } +retfree: + Bfree (ptr, bb); + Bfree (ptr, bd); + Bfree (ptr, bs); + Bfree (ptr, bd0); + Bfree (ptr, delta); +ret: + if (se) + *se = (char *) s; + return sign ? -rv.d : rv.d; +} + +#ifndef NO_REENT + +double +_DEFUN (strtod, (s00, se), + _CONST char *s00 _AND char **se) +{ + return _strtod_r (_REENT, s00, se); +} + +float +_DEFUN (strtodf, (s00, se), + _CONST char *s00 _AND + char **se) +{ + return strtod (s00, se); +} + +#endif diff --git a/newlib/libc/stdlib/strtol.c b/newlib/libc/stdlib/strtol.c new file mode 100644 index 000000000..6d355d563 --- /dev/null +++ b/newlib/libc/stdlib/strtol.c @@ -0,0 +1,226 @@ +/* +FUNCTION + <<strtol>>---string to long + +INDEX + strtol +INDEX + _strtol_r + +ANSI_SYNOPSIS + #include <stdlib.h> + long strtol(const char *<[s]>, char **<[ptr]>,int <[base]>); + + long _strtol_r(void *<[reent]>, + const char *<[s]>, char **<[ptr]>,int <[base]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + long strtol (<[s]>, <[ptr]>, <[base]>) + char *<[s]>; + char **<[ptr]>; + int <[base]>; + + long _strtol_r (<[reent]>, <[s]>, <[ptr]>, <[base]>) + char *<[reent]>; + char *<[s]>; + char **<[ptr]>; + int <[base]>; + +DESCRIPTION +The function <<strtol>> converts the string <<*<[s]>>> to +a <<long>>. First, it breaks down the string into three parts: +leading whitespace, which is ignored; a subject string consisting +of characters resembling an integer in the radix specified by <[base]>; +and a trailing portion consisting of zero or more unparseable characters, +and always including the terminating null character. Then, it attempts +to convert the subject string into a <<long>> and returns the +result. + +If the value of <[base]> is 0, the subject string is expected to look +like a normal C integer constant: an optional sign, a possible `<<0x>>' +indicating a hexadecimal base, and a number. If <[base]> is between +2 and 36, the expected form of the subject is a sequence of letters +and digits representing an integer in the radix specified by <[base]>, +with an optional plus or minus sign. The letters <<a>>--<<z>> (or, +equivalently, <<A>>--<<Z>>) are used to signify values from 10 to 35; +only letters whose ascribed values are less than <[base]> are +permitted. If <[base]> is 16, a leading <<0x>> is permitted. + +The subject sequence is the longest initial sequence of the input +string that has the expected form, starting with the first +non-whitespace character. If the string is empty or consists entirely +of whitespace, or if the first non-whitespace character is not a +permissible letter or digit, the subject string is empty. + +If the subject string is acceptable, and the value of <[base]> is zero, +<<strtol>> attempts to determine the radix from the input string. A +string with a leading <<0x>> is treated as a hexadecimal value; a string with +a leading 0 and no <<x>> is treated as octal; all other strings are +treated as decimal. If <[base]> is between 2 and 36, it is used as the +conversion radix, as described above. If the subject string begins with +a minus sign, the value is negated. Finally, a pointer to the first +character past the converted subject string is stored in <[ptr]>, if +<[ptr]> is not <<NULL>>. + +If the subject string is empty (or not in acceptable form), no conversion +is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is +not <<NULL>>). + +The alternate function <<_strtol_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +<<strtol>> returns the converted value, if any. If no conversion was +made, 0 is returned. + +<<strtol>> returns <<LONG_MAX>> or <<LONG_MIN>> if the magnitude of +the converted value is too large, and sets <<errno>> to <<ERANGE>>. + +PORTABILITY +<<strtol>> is ANSI. + +No supporting OS subroutines are required. +*/ + +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + + +#include <_ansi.h> +#include <limits.h> +#include <ctype.h> +#include <errno.h> +#include <stdlib.h> +#include <reent.h> + +/* + * Convert a string to a long integer. + * + * Ignores `locale' stuff. Assumes that the upper and lower case + * alphabets and digits are each contiguous. + */ +long +_DEFUN (_strtol_r, (rptr, nptr, endptr, base), + struct _reent *rptr _AND + _CONST char *nptr _AND + char **endptr _AND + int base) +{ + register const char *s = nptr; + register unsigned long acc; + register int c; + register unsigned long cutoff; + register int neg = 0, any, cutlim; + + /* + * Skip white space and pick up leading +/- sign if any. + * If base is 0, allow 0x for hex and 0 for octal, else + * assume decimal; if base is already 16, allow 0x. + */ + do { + c = *s++; + } while (isspace(c)); + if (c == '-') { + neg = 1; + c = *s++; + } else if (c == '+') + c = *s++; + if ((base == 0 || base == 16) && + c == '0' && (*s == 'x' || *s == 'X')) { + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = c == '0' ? 8 : 10; + + /* + * Compute the cutoff value between legal numbers and illegal + * numbers. That is the largest legal value, divided by the + * base. An input number that is greater than this value, if + * followed by a legal input character, is too big. One that + * is equal to this value may be valid or not; the limit + * between valid and invalid numbers is then based on the last + * digit. For instance, if the range for longs is + * [-2147483648..2147483647] and the input base is 10, + * cutoff will be set to 214748364 and cutlim to either + * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated + * a value > 214748364, or equal but the next digit is > 7 (or 8), + * the number is too big, and we will return a range error. + * + * Set any if any `digits' consumed; make it negative to indicate + * overflow. + */ + cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX; + cutlim = cutoff % (unsigned long)base; + cutoff /= (unsigned long)base; + for (acc = 0, any = 0;; c = *s++) { + if (isdigit(c)) + c -= '0'; + else if (isalpha(c)) + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + else + break; + if (c >= base) + break; + if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim) + any = -1; + else { + any = 1; + acc *= base; + acc += c; + } + } + if (any < 0) { + acc = neg ? LONG_MIN : LONG_MAX; + rptr->_errno = ERANGE; + } else if (neg) + acc = -acc; + if (endptr != 0) + *endptr = (char *) (any ? s - 1 : nptr); + return (acc); +} + +#ifndef _REENT_ONLY + +long +_DEFUN (strtol, (s, ptr, base), + _CONST char *s _AND + char **ptr _AND + int base) +{ + return _strtol_r (_REENT, s, ptr, base); +} + +#endif diff --git a/newlib/libc/stdlib/strtoul.c b/newlib/libc/stdlib/strtoul.c new file mode 100644 index 000000000..f62c2f8f8 --- /dev/null +++ b/newlib/libc/stdlib/strtoul.c @@ -0,0 +1,206 @@ +/* +FUNCTION + <<strtoul>>---string to unsigned long + +INDEX + strtoul +INDEX + _strtoul_r + +ANSI_SYNOPSIS + #include <stdlib.h> + unsigned long strtoul(const char *<[s]>, char **<[ptr]>, + int <[base]>); + + unsigned long _strtoul_r(void *<[reent]>, const char *<[s]>, + char **<[ptr]>, int <[base]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + unsigned long strtoul(<[s]>, <[ptr]>, <[base]>) + char *<[s]>; + char **<[ptr]>; + int <[base]>; + + unsigned long _strtoul_r(<[reent]>, <[s]>, <[ptr]>, <[base]>) + char *<[reent]>; + char *<[s]>; + char **<[ptr]>; + int <[base]>; + +DESCRIPTION +The function <<strtoul>> converts the string <<*<[s]>>> to +an <<unsigned long>>. First, it breaks down the string into three parts: +leading whitespace, which is ignored; a subject string consisting +of the digits meaningful in the radix specified by <[base]> +(for example, <<0>> through <<7>> if the value of <[base]> is 8); +and a trailing portion consisting of one or more unparseable characters, +which always includes the terminating null character. Then, it attempts +to convert the subject string into an unsigned long integer, and returns the +result. + +If the value of <[base]> is zero, the subject string is expected to look +like a normal C integer constant (save that no optional sign is permitted): +a possible <<0x>> indicating hexadecimal radix, and a number. +If <[base]> is between 2 and 36, the expected form of the subject is a +sequence of digits (which may include letters, depending on the +base) representing an integer in the radix specified by <[base]>. +The letters <<a>>--<<z>> (or <<A>>--<<Z>>) are used as digits valued from +10 to 35. If <[base]> is 16, a leading <<0x>> is permitted. + +The subject sequence is the longest initial sequence of the input +string that has the expected form, starting with the first +non-whitespace character. If the string is empty or consists entirely +of whitespace, or if the first non-whitespace character is not a +permissible digit, the subject string is empty. + +If the subject string is acceptable, and the value of <[base]> is zero, +<<strtoul>> attempts to determine the radix from the input string. A +string with a leading <<0x>> is treated as a hexadecimal value; a string with +a leading <<0>> and no <<x>> is treated as octal; all other strings are +treated as decimal. If <[base]> is between 2 and 36, it is used as the +conversion radix, as described above. Finally, a pointer to the first +character past the converted subject string is stored in <[ptr]>, if +<[ptr]> is not <<NULL>>. + +If the subject string is empty (that is, if <<*>><[s]> does not start +with a substring in acceptable form), no conversion +is performed and the value of <[s]> is stored in <[ptr]> (if <[ptr]> is +not <<NULL>>). + +The alternate function <<_strtoul_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + + +RETURNS +<<strtoul>> returns the converted value, if any. If no conversion was +made, <<0>> is returned. + +<<strtoul>> returns <<ULONG_MAX>> if the magnitude of the converted +value is too large, and sets <<errno>> to <<ERANGE>>. + +PORTABILITY +<<strtoul>> is ANSI. + +<<strtoul>> requires no supporting OS subroutines. +*/ + +/* + * Copyright (c) 1990 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <_ansi.h> +#include <limits.h> +#include <ctype.h> +#include <errno.h> +#include <stdlib.h> +#include <reent.h> + +/* + * Convert a string to an unsigned long integer. + * + * Ignores `locale' stuff. Assumes that the upper and lower case + * alphabets and digits are each contiguous. + */ +unsigned long +_DEFUN (_strtoul_r, (rptr, nptr, endptr, base), + struct _reent *rptr _AND + _CONST char *nptr _AND + char **endptr _AND + int base) +{ + register const char *s = nptr; + register unsigned long acc; + register int c; + register unsigned long cutoff; + register int neg = 0, any, cutlim; + + /* + * See strtol for comments as to the logic used. + */ + do { + c = *s++; + } while (isspace(c)); + if (c == '-') { + neg = 1; + c = *s++; + } else if (c == '+') + c = *s++; + if ((base == 0 || base == 16) && + c == '0' && (*s == 'x' || *s == 'X')) { + c = s[1]; + s += 2; + base = 16; + } + if (base == 0) + base = c == '0' ? 8 : 10; + cutoff = (unsigned long)ULONG_MAX / (unsigned long)base; + cutlim = (unsigned long)ULONG_MAX % (unsigned long)base; + for (acc = 0, any = 0;; c = *s++) { + if (isdigit(c)) + c -= '0'; + else if (isalpha(c)) + c -= isupper(c) ? 'A' - 10 : 'a' - 10; + else + break; + if (c >= base) + break; + if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim) + any = -1; + else { + any = 1; + acc *= base; + acc += c; + } + } + if (any < 0) { + acc = ULONG_MAX; + rptr->_errno = ERANGE; + } else if (neg) + acc = -acc; + if (endptr != 0) + *endptr = (char *) (any ? s - 1 : nptr); + return (acc); +} + +#ifndef _REENT_ONLY + +unsigned long +_DEFUN (strtoul, (s, ptr, base), + _CONST char *s _AND + char **ptr _AND + int base) +{ + return _strtoul_r (_REENT, s, ptr, base); +} + +#endif diff --git a/newlib/libc/stdlib/system.c b/newlib/libc/stdlib/system.c new file mode 100644 index 000000000..4584ae180 --- /dev/null +++ b/newlib/libc/stdlib/system.c @@ -0,0 +1,179 @@ +/* +FUNCTION +<<system>>---execute command string + +INDEX + system +INDEX + _system_r + +ANSI_SYNOPSIS + #include <stdlib.h> + int system(char *<[s]>); + + int _system_r(void *<[reent]>, char *<[s]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int system(<[s]>) + char *<[s]>; + + int _system_r(<[reent]>, <[s]>) + char *<[reent]>; + char *<[s]>; + +DESCRIPTION + +Use <<system>> to pass a command string <<*<[s]>>> to <</bin/sh>> on +your system, and wait for it to finish executing. + +Use `<<system(NULL)>>' to test whether your system has <</bin/sh>> +available. + +The alternate function <<_system_r>> is a reentrant version. The +extra argument <[reent]> is a pointer to a reentrancy structure. + +RETURNS +<<system(NULL)>> returns a non-zero value if <</bin/sh>> is available, and +<<0>> if it is not. + +With a command argument, the result of <<system>> is the exit status +returned by <</bin/sh>>. + +PORTABILITY +ANSI C requires <<system>>, but leaves the nature and effects of a +command processor undefined. ANSI C does, however, specify that +<<system(NULL)>> return zero or nonzero to report on the existence of +a command processor. + +POSIX.2 requires <<system>>, and requires that it invoke a <<sh>>. +Where <<sh>> is found is left unspecified. + +Supporting OS subroutines required: <<_exit>>, <<_execve>>, <<_fork_r>>, +<<_wait_r>>. +*/ + +#include <errno.h> +#include <stddef.h> +#include <stdlib.h> +#include <_syslist.h> + +#if defined (unix) || defined (__CYGWIN32__) +static int do_system (); +#endif + +int +_system_r (ptr, s) + struct _reent *ptr; + _CONST char *s; +{ +#ifdef NO_EXEC + if (s == NULL) + return 0; + errno = ENOSYS; + return -1; +#else + + /* ??? How to handle (s == NULL) here is not exactly clear. + If _fork_r fails, that's not really a justification for returning 0. + For now we always return 0 and leave it to each target to explicitly + handle otherwise (this can always be relaxed in the future). */ + +#if defined (unix) || defined (__CYGWIN32__) + if (s == NULL) + return 1; + return do_system (ptr, s); +#else + if (s == NULL) + return 0; + errno = ENOSYS; + return -1; +#endif + +#endif +} + +#ifndef _REENT_ONLY + +int +system (s) + _CONST char *s; +{ + return _system_r (_REENT, s); +} + +#endif + +#if defined (unix) && !defined (__CYGWIN32__) +static int +do_system (ptr, s) + struct _reent *ptr; + _CONST char *s; +{ + char *argv[4]; + int pid, status; + extern char *environ[]; + + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = (char *) s; + argv[3] = NULL; + + if ((pid = _fork_r (ptr)) == 0) + { + _execve ("/bin/sh", argv, environ); + exit (100); + } + else if (pid == -1) + return -1; + else + { + int rc = _wait_r (ptr, &status); + if (rc == -1) + return -1; + status = (status >> 8) & 0xff; + return status; + } +} +#endif + +#if defined (__CYGWIN32__) +static int +do_system (ptr, s) + struct _reent *ptr; + _CONST char *s; +{ + char *argv[4]; + int pid, status; + extern char *environ[]; + + argv[0] = "sh"; + argv[1] = "-c"; + argv[2] = (char *) s; + argv[3] = NULL; + + if ((pid = vfork ()) == 0) + { + /* ??? It's not clear what's the right path to take (pun intended :-). + There won't be an "sh" in any fixed location so we need each user + to be able to say where to find "sh". That suggests using an + environment variable, but after a few more such situations we may + have too many of them. */ + char *sh = getenv ("SH_PATH"); + if (sh == NULL) + sh = "/bin/sh"; + _execve (sh, argv, environ); + exit (100); + } + else if (pid == -1) + return -1; + else + { + int rc = _wait (&status); + if (rc == -1) + return -1; + status = (status >> 8) & 0xff; + return status; + } +} +#endif diff --git a/newlib/libc/stdlib/valloc.c b/newlib/libc/stdlib/valloc.c new file mode 100644 index 000000000..42c09a054 --- /dev/null +++ b/newlib/libc/stdlib/valloc.c @@ -0,0 +1,24 @@ +/* valloc.c -- a wrapper for valloc_r and pvalloc_r. */ + +#include <_ansi.h> +#include <reent.h> +#include <stdlib.h> +#include <malloc.h> + +#ifndef _REENT_ONLY + +_PTR +_DEFUN (valloc, (nbytes), + size_t nbytes) +{ + return _valloc_r (_REENT, nbytes); +} + +_PTR +_DEFUN (pvalloc, (nbytes), + size_t nbytes) +{ + return _pvalloc_r (_REENT, nbytes); +} + +#endif diff --git a/newlib/libc/stdlib/wcstombs.c b/newlib/libc/stdlib/wcstombs.c new file mode 100644 index 000000000..ca99f2ea1 --- /dev/null +++ b/newlib/libc/stdlib/wcstombs.c @@ -0,0 +1,80 @@ +/* +FUNCTION +<<wcstombs>>---minimal wide char string to multibyte string converter + +INDEX + wcstombs + +ANSI_SYNOPSIS + #include <stdlib.h> + int wcstombs(const char *<[s]>, wchar_t *<[pwc]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int wcstombs(<[s]>, <[pwc]>, <[n]>) + const char *<[s]>; + wchar_t *<[pwc]>; + size_t <[n]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<wcstombs>>. In this case, +all wide-characters are expected to represent single bytes and so +are converted simply by casting to char. + +When MB_CAPABLE is defined, this routine calls <<_wcstombs_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +RETURNS +This implementation of <<wcstombs>> returns <<0>> if +<[s]> is <<NULL>> or is the empty string; +it returns <<-1>> if MB_CAPABLE and one of the +wide-char characters does not represent a valid multi-byte character; +otherwise it returns the minimum of: <<n>> or the +number of bytes that are transferred to <<s>>, not including the +nul terminator. + +If the return value is -1, the state of the <<pwc>> string is +indeterminate. If the input has a length of 0, the output +string will be modified to contain a wchar_t nul terminator if +<<n>> > 0. + +PORTABILITY +<<wcstombs>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<wcstombs>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> + +size_t +_DEFUN (wcstombs, (s, pwcs, n), + char *s _AND + const wchar_t *pwcs _AND + size_t n) +{ +#ifdef MB_CAPABLE + int state = 0; + + return _wcstombs_r (_REENT, s, pwcs, n, &state); +#else /* not MB_CAPABLE */ + int count = 0; + + if (n != 0) { + do { + if ((*s++ = (char) *pwcs++) == 0) + break; + count++; + } while (--n != 0); + } + + return count; +#endif /* not MB_CAPABLE */ +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/wcstombs_r.c b/newlib/libc/stdlib/wcstombs_r.c new file mode 100644 index 000000000..69c82d411 --- /dev/null +++ b/newlib/libc/stdlib/wcstombs_r.c @@ -0,0 +1,32 @@ +#include <stdlib.h> + +size_t +_DEFUN (_wcstombs_r, (reent, s, pwcs, n, state), + struct _reent *r _AND + char *s _AND + const wchar_t *pwcs _AND + size_t n _AND + int *state) +{ + char *ptr = s; + size_t max = n; + char buff[8]; + int i, num_to_copy; + + while (n > 0) + { + int bytes = _wctomb_r (r, buff, *pwcs, state); + if (bytes == -1) + return -1; + num_to_copy = (n > bytes ? bytes : (int)n); + for (i = 0; i < num_to_copy; ++i) + *ptr++ = buff[i]; + + if (*pwcs == 0x00) + return ptr - s - (n >= bytes); + ++pwcs; + n -= num_to_copy; + } + + return max; +} diff --git a/newlib/libc/stdlib/wctomb.c b/newlib/libc/stdlib/wctomb.c new file mode 100644 index 000000000..a6812508f --- /dev/null +++ b/newlib/libc/stdlib/wctomb.c @@ -0,0 +1,69 @@ +/* +FUNCTION +<<wctomb>>---minimal wide char to multibyte converter + +INDEX + wctomb + +ANSI_SYNOPSIS + #include <stdlib.h> + int wctomb(char *<[s]>, wchar_t <[wchar]>); + +TRAD_SYNOPSIS + #include <stdlib.h> + int wctomb(<[s]>, <[wchar]>) + char *<[s]>; + wchar_t <[wchar]>; + +DESCRIPTION +When MB_CAPABLE is not defined, this is a minimal ANSI-conforming +implementation of <<wctomb>>. The +only ``wide characters'' recognized are single bytes, +and they are ``converted'' to themselves. + +When MB_CAPABLE is defined, this routine calls <<_wctomb_r>> to perform +the conversion, passing a state variable to allow state dependent +decoding. The result is based on the locale setting which may +be restricted to a defined set of locales. + +Each call to <<wctomb>> modifies <<*<[s]>>> unless <[s]> is a null +pointer or MB_CAPABLE is defined and <[wchar]> is invalid. + +RETURNS +This implementation of <<wctomb>> returns <<0>> if +<[s]> is <<NULL>>; it returns <<-1>> if MB_CAPABLE is enabled +and the wchar is not a valid multi-byte character, it returns <<1>> +if MB_CAPABLE is not defined or the wchar is in reality a single +byte character, otherwise it returns the number of bytes in the +multi-byte character. + +PORTABILITY +<<wctomb>> is required in the ANSI C standard. However, the precise +effects vary with the locale. + +<<wctomb>> requires no supporting OS subroutines. +*/ + +#ifndef _REENT_ONLY + +#include <stdlib.h> + +int +_DEFUN (wctomb, (s, wchar), + char *s _AND + wchar_t wchar) +{ +#ifdef MB_CAPABLE + static int state; + + return _wctomb_r (_REENT, s, wchar, &state); +#else /* not MB_CAPABLE */ + if (s == NULL) + return 0; + + *s = (char) wchar; + return 1; +#endif /* not MB_CAPABLE */ +} + +#endif /* !_REENT_ONLY */ diff --git a/newlib/libc/stdlib/wctomb_r.c b/newlib/libc/stdlib/wctomb_r.c new file mode 100644 index 000000000..8fa6e16db --- /dev/null +++ b/newlib/libc/stdlib/wctomb_r.c @@ -0,0 +1,110 @@ +#include <stdlib.h> +#include <locale.h> +#include "mbctype.h" + +int +_DEFUN (_wctomb_r, (r, s, wchar, state), + struct _reent *r _AND + char *s _AND + wchar_t wchar _AND + int *state) +{ + if (strlen (r->_current_locale) <= 1) + { /* fall-through */ } + else if (!strcmp (r->_current_locale, "C-SJIS")) + { + unsigned char char2 = (unsigned char)wchar; + unsigned char char1 = (unsigned char)(wchar >> 8); + + if (s == NULL) + return 0; /* not state-dependent */ + + if (char1 != 0x00) + { + /* first byte is non-zero..validate multi-byte char */ + if (_issjis1(char1) && _issjis2(char2)) + { + *s++ = (char)char1; + *s = (char)char2; + return 2; + } + else + return -1; + } + } + else if (!strcmp (r->_current_locale, "C-EUCJP")) + { + unsigned char char2 = (unsigned char)wchar; + unsigned char char1 = (unsigned char)(wchar >> 8); + + if (s == NULL) + return 0; /* not state-dependent */ + + if (char1 != 0x00) + { + /* first byte is non-zero..validate multi-byte char */ + if (_iseucjp (char1) && _iseucjp (char2)) + { + *s++ = (char)char1; + *s = (char)char2; + return 2; + } + else + return -1; + } + } + else if (!strcmp (r->_current_locale, "C-JIS")) + { + int cnt = 0; + unsigned char char2 = (unsigned char)wchar; + unsigned char char1 = (unsigned char)(wchar >> 8); + + if (s == NULL) + return 1; /* state-dependent */ + + if (char1 != 0x00) + { + /* first byte is non-zero..validate multi-byte char */ + if (_isjis (char1) && _isjis (char2)) + { + if (*state == 0) + { + /* must switch from ASCII to JIS state */ + *state = 1; + *s++ = ESC_CHAR; + *s++ = '$'; + *s++ = 'B'; + cnt = 3; + } + *s++ = (char)char1; + *s = (char)char2; + return cnt + 2; + } + else + return -1; + } + else + { + if (*state != 0) + { + /* must switch from JIS to ASCII state */ + *state = 0; + *s++ = ESC_CHAR; + *s++ = '('; + *s++ = 'B'; + cnt = 3; + } + *s = (char)char2; + return cnt + 1; + } + } + + if (s == NULL) + return 0; + + /* otherwise we are dealing with a single byte character */ + *s = (char) wchar; + return 1; +} + + diff --git a/newlib/libc/string/Makefile.am b/newlib/libc/string/Makefile.am new file mode 100644 index 000000000..26d4b8952 --- /dev/null +++ b/newlib/libc/string/Makefile.am @@ -0,0 +1,66 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + bcmp.c \ + bcopy.c \ + bzero.c \ + index.c \ + memchr.c \ + memcmp.c \ + memcpy.c \ + memmove.c \ + memset.c \ + rindex.c \ + strcat.c \ + strchr.c \ + strcmp.c \ + strcasecmp.c \ + strcoll.c \ + strcpy.c \ + strcspn.c \ + strerror.c \ + strlen.c \ + strlwr.c \ + strncat.c \ + strncmp.c \ + strncasecmp.c \ + strncpy.c \ + strpbrk.c \ + strrchr.c \ + strspn.c \ + strtok.c \ + strtok_r.c \ + strupr.c \ + strxfrm.c \ + strstr.c \ + u_strerr.c + +CHEWOUT_FILES=\ +bcmp.def memcpy.def strcmp.def strncat.def strstr.def \ +bcopy.def memmove.def strcoll.def strncmp.def strtok.def \ +bzero.def memset.def strcpy.def strncpy.def strxfrm.def \ +index.def rindex.def strcspn.def strpbrk.def \ +memchr.def strcat.def strerror.def strrchr.def \ +memcmp.def strchr.def strlen.def strspn.def \ +strcasecmp.def strncasecmp.def strlwr.def strupr.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/strings.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/string/Makefile.in b/newlib/libc/string/Makefile.in new file mode 100644 index 000000000..29a413c0d --- /dev/null +++ b/newlib/libc/string/Makefile.in @@ -0,0 +1,343 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + bcmp.c \ + bcopy.c \ + bzero.c \ + index.c \ + memchr.c \ + memcmp.c \ + memcpy.c \ + memmove.c \ + memset.c \ + rindex.c \ + strcat.c \ + strchr.c \ + strcmp.c \ + strcasecmp.c \ + strcoll.c \ + strcpy.c \ + strcspn.c \ + strerror.c \ + strlen.c \ + strlwr.c \ + strncat.c \ + strncmp.c \ + strncasecmp.c \ + strncpy.c \ + strpbrk.c \ + strrchr.c \ + strspn.c \ + strtok.c \ + strtok_r.c \ + strupr.c \ + strxfrm.c \ + strstr.c \ + u_strerr.c + + +CHEWOUT_FILES = \ +bcmp.def memcpy.def strcmp.def strncat.def strstr.def \ +bcopy.def memmove.def strcoll.def strncmp.def strtok.def \ +bzero.def memset.def strcpy.def strncpy.def strxfrm.def \ +index.def rindex.def strcspn.def strpbrk.def \ +memchr.def strcat.def strerror.def strrchr.def \ +memcmp.def strchr.def strlen.def strspn.def \ +strcasecmp.def strncasecmp.def strlwr.def strupr.def + + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = bcmp.o bcopy.o bzero.o index.o memchr.o memcmp.o \ +memcpy.o memmove.o memset.o rindex.o strcat.o strchr.o strcmp.o \ +strcasecmp.o strcoll.o strcpy.o strcspn.o strerror.o strlen.o strlwr.o \ +strncat.o strncmp.o strncasecmp.o strncpy.o strpbrk.o strrchr.o \ +strspn.o strtok.o strtok_r.o strupr.o strxfrm.o strstr.o u_strerr.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus string/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = string + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/strings.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/string/bcmp.c b/newlib/libc/string/bcmp.c new file mode 100644 index 000000000..b6a4d5298 --- /dev/null +++ b/newlib/libc/string/bcmp.c @@ -0,0 +1,50 @@ +/* +FUNCTION + <<bcmp>>---compare two memory areas + +INDEX + bcmp + +ANSI_SYNOPSIS + #include <string.h> + int bcmp(const char *<[s1]>, const char *<[s2]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <string.h> + int bcmp(<[s1]>, <[s2]>, <[n]>) + char *<[s1]>; + char *<[s2]>; + size_t <[n]>; + +DESCRIPTION + This function compares not more than <[n]> characters of the + object pointed to by <[s1]> with the object pointed to by <[s2]>. + + This function is identical to <<memcmp>>. + + + +RETURNS + The function returns an integer greater than, equal to or + less than zero according to whether the object pointed to by + <[s1]> is greater than, equal to or less than the object + pointed to by <[s2]>. + +PORTABILITY +<<bcmp>> requires no supporting OS subroutines. + +QUICKREF + bcmp ansi pure +*/ + +#include <string.h> + +int +_DEFUN (bcmp, (m1, m2, n), + _CONST char *m1 _AND + _CONST char *m2 _AND + size_t n) + +{ + return memcmp (m1, m2, n); +} diff --git a/newlib/libc/string/bcopy.c b/newlib/libc/string/bcopy.c new file mode 100644 index 000000000..733840b83 --- /dev/null +++ b/newlib/libc/string/bcopy.c @@ -0,0 +1,38 @@ +/* +FUNCTION + <<bcopy>>---copy memory regions + +ANSI_SYNOPSIS + #include <string.h> + void bcopy(const char *<[in]>, char *<[out]>, size_t <[n]>); + +TRAD_SYNOPSIS + void bcopy(<[in]>, <[out]>, <[n]> + char *<[in]>; + char *<[out]>; + size_t <[n]>; + +DESCRIPTION + This function copies <[n]> bytes from the memory region + pointed to by <[in]> to the memory region pointed to by + <[out]>. + + This function is implemented in term of <<memmove>>. + +PORTABILITY +<<bcopy>> requires no supporting OS subroutines. + +QUICKREF + bcopy - pure +*/ + +#include <string.h> + +void +_DEFUN (bcopy, (b1, b2, length), + _CONST char *b1 _AND + char *b2 _AND + size_t length) +{ + memmove ((_PTR) b2, (_PTR) b1, length); +} diff --git a/newlib/libc/string/bzero.c b/newlib/libc/string/bzero.c new file mode 100644 index 000000000..e9e78c938 --- /dev/null +++ b/newlib/libc/string/bzero.c @@ -0,0 +1,42 @@ +/* +FUNCTION +<<bzero>>---initialize memory to zero + +INDEX + bzero + +ANSI_SYNOPSIS + #include <string.h> + void bzero(char *<[b]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + void bzero(<[b]>, <[length]>) + char *<[b]>; + size_t <[length]>; + +DESCRIPTION +<<bzero>> initializes <[length]> bytes of memory, starting at address +<[b]>, to zero. + +RETURNS +<<bzero>> does not return a result. + +PORTABILITY +<<bzero>> is in the Berkeley Software Distribution. +Neither ANSI C nor the System V Interface Definition (Issue 2) require +<<bzero>>. + +<<bzero>> requires no supporting OS subroutines. +*/ + +#include <string.h> + +_VOID +_DEFUN (bzero, (b, length), + char *b _AND + size_t length) +{ + while (length--) + *b++ = 0; +} diff --git a/newlib/libc/string/index.c b/newlib/libc/string/index.c new file mode 100644 index 000000000..6c165f952 --- /dev/null +++ b/newlib/libc/string/index.c @@ -0,0 +1,44 @@ +/* +FUNCTION + <<index>>---search for character in string + +INDEX + index + +ANSI_SYNOPSIS + #include <string.h> + char * index(const char *<[string]>, int <[c]>); + +TRAD_SYNOPSIS + #include <string.h> + char * index(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; + +DESCRIPTION + This function finds the first occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). + + This function is identical to <<strchr>>. + +RETURNS + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. + +PORTABILITY +<<index>> requires no supporting OS subroutines. + +QUICKREF + index - pure +*/ + +#include <string.h> + +char * +_DEFUN (index, (s, c), + _CONST char *s _AND + int c) +{ + return strchr (s, c); +} diff --git a/newlib/libc/string/memchr.c b/newlib/libc/string/memchr.c new file mode 100644 index 000000000..2fd3c861d --- /dev/null +++ b/newlib/libc/string/memchr.c @@ -0,0 +1,143 @@ +/* +FUNCTION + <<memchr>>---find character in memory + +INDEX + memchr + +ANSI_SYNOPSIS + #include <string.h> + void *memchr(const void *<[src]>, int <[c]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + void *memchr(<[src]>, <[c]>, <[length]>) + void *<[src]>; + void *<[c]>; + size_t <[length]>; + +DESCRIPTION + This function searches memory starting at <<*<[src]>>> for the + character <[c]>. The search only ends with the first + occurrence of <[c]>, or after <[length]> characters; in + particular, <<NULL>> does not terminate the search. + +RETURNS + If the character <[c]> is found within <[length]> characters + of <<*<[src]>>>, a pointer to the character is returned. If + <[c]> is not found, then <<NULL>> is returned. + +PORTABILITY +<<memchr>>> is ANSI C. + +<<memchr>> requires no supporting OS subroutines. + +QUICKREF + memchr ansi pure +*/ + +#include <_ansi.h> +#include <string.h> +#include <limits.h> + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X) ((long)X & (sizeof (long) - 1)) + +/* How many bytes are loaded each iteration of the word copy loop. */ +#define LBLOCKSIZE (sizeof (long)) + +/* Threshhold for punting to the bytewise iterator. */ +#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + + +_PTR +_DEFUN (memchr, (src_void, c, length), + _CONST _PTR src_void _AND + int c _AND + size_t length) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + _CONST unsigned char *src = (_CONST unsigned char *) src_void; + + c &= 0xff; + + while (length--) + { + if (*src == c) + return (char *) src; + src++; + } + return NULL; +#else + _CONST unsigned char *src = (_CONST unsigned char *) src_void; + unsigned long *asrc; + unsigned long buffer; + unsigned long mask; + int i, j; + + c &= 0xff; + + /* If the size is small, or src is unaligned, then + use the bytewise loop. We can hope this is rare. */ + if (!TOO_SMALL (length) && !UNALIGNED (src)) + { + /* The fast code reads the ASCII one word at a time and only + performs the bytewise search on word-sized segments if they + contain the search character, which is detected by XORing + the word-sized segment with a word-sized block of the search + character and then detecting for the presence of NULL in the + result. */ + asrc = (unsigned long*) src; + mask = 0; + for (i = 0; i < LBLOCKSIZE; i++) + mask = (mask << 8) + c; + + while (length >= LBLOCKSIZE) + { + buffer = *asrc; + buffer ^= mask; + if (DETECTNULL (buffer)) + { + src = (unsigned char*) asrc; + for ( j = 0; j < LBLOCKSIZE; j++ ) + { + if (*src == c) + return (char*) src; + src++; + } + } + length -= LBLOCKSIZE; + asrc++; + } + + /* If there are fewer than LBLOCKSIZE characters left, + then we resort to the bytewise loop. */ + + src = (unsigned char*) asrc; + } + + while (length--) + { + if (*src == c) + return (char*) src; + src++; + } + + return NULL; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/memcmp.c b/newlib/libc/string/memcmp.c new file mode 100644 index 000000000..ac7a194a6 --- /dev/null +++ b/newlib/libc/string/memcmp.c @@ -0,0 +1,113 @@ +/* +FUNCTION + <<memcmp>>---compare two memory areas + +INDEX + memcmp + +ANSI_SYNOPSIS + #include <string.h> + int memcmp(const void *<[s1]>, const void *<[s2]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <string.h> + int memcmp(<[s1]>, <[s2]>, <[n]>) + void *<[s1]>; + void *<[s2]>; + size_t <[n]>; + +DESCRIPTION + This function compares not more than <[n]> characters of the + object pointed to by <[s1]> with the object pointed to by <[s2]>. + + +RETURNS + The function returns an integer greater than, equal to or + less than zero according to whether the object pointed to by + <[s1]> is greater than, equal to or less than the object + pointed to by <[s2]>. + +PORTABILITY +<<memcmp>> is ANSI C. + +<<memcmp>> requires no supporting OS subroutines. + +QUICKREF + memcmp ansi pure +*/ + +#include <string.h> + + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +/* How many bytes are copied each iteration of the word copy loop. */ +#define LBLOCKSIZE (sizeof (long)) + +/* Threshhold for punting to the byte copier. */ +#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) + +int +_DEFUN (memcmp, (m1, m2, n), + _CONST _PTR m1 _AND + _CONST _PTR m2 _AND + size_t n) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + unsigned char *s1 = (unsigned char *) m1; + unsigned char *s2 = (unsigned char *) m2; + + while (n--) + { + if (*s1 != *s2) + { + return *s1 - *s2; + } + s1++; + s2++; + } + return 0; +#else + unsigned char *s1 = (unsigned char *) m1; + unsigned char *s2 = (unsigned char *) m2; + unsigned long *a1; + unsigned long *a2; + + /* If the size is too small, or either pointer is unaligned, + then we punt to the byte compare loop. Hopefully this will + not turn up in inner loops. */ + if (!TOO_SMALL(n) && !UNALIGNED(s1,s2)) + { + /* Otherwise, load and compare the blocks of memory one + word at a time. */ + a1 = (unsigned long*) s1; + a2 = (unsigned long*) s2; + while (n >= LBLOCKSIZE) + { + if (*a1 != *a2) + break; + a1++; + a2++; + n -= LBLOCKSIZE; + } + + /* check m mod LBLOCKSIZE remaining characters */ + + s1 = (char*)a1; + s2 = (char*)a2; + } + + while (n--) + { + if (*s1 != *s2) + return *s1 - *s2; + s1++; + s2++; + } + + return 0; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} + diff --git a/newlib/libc/string/memcpy.c b/newlib/libc/string/memcpy.c new file mode 100644 index 000000000..5336f25a9 --- /dev/null +++ b/newlib/libc/string/memcpy.c @@ -0,0 +1,111 @@ +/* +FUNCTION + <<memcpy>>---copy memory regions + +ANSI_SYNOPSIS + #include <string.h> + void* memcpy(void *<[out]>, const void *<[in]>, size_t <[n]>); + +TRAD_SYNOPSIS + void *memcpy(<[out]>, <[in]>, <[n]> + void *<[out]>; + void *<[in]>; + size_t <[n]>; + +DESCRIPTION + This function copies <[n]> bytes from the memory region + pointed to by <[in]> to the memory region pointed to by + <[out]>. + + If the regions overlap, the behavior is undefined. + +RETURNS + <<memcpy>> returns a pointer to the first byte of the <[out]> + region. + +PORTABILITY +<<memcpy>> is ANSI C. + +<<memcpy>> requires no supporting OS subroutines. + +QUICKREF + memcpy ansi pure + */ + +#include <_ansi.h> +#include <stddef.h> +#include <limits.h> + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +/* How many bytes are copied each iteration of the 4X unrolled loop. */ +#define BIGBLOCKSIZE (sizeof (long) << 2) + +/* How many bytes are copied each iteration of the word copy loop. */ +#define LITTLEBLOCKSIZE (sizeof (long)) + +/* Threshhold for punting to the byte copier. */ +#define TOO_SMALL(LEN) ((LEN) < BIGBLOCKSIZE) + +_PTR +_DEFUN (memcpy, (dst0, src0, len0), + _PTR dst0 _AND + _CONST _PTR src0 _AND + size_t len0) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *dst = (char *) dst0; + char *src = (char *) src0; + + _PTR save = dst0; + + while (len0--) + { + *dst++ = *src++; + } + + return save; +#else + char *dst = dst0; + _CONST char *src = src0; + long *aligned_dst; + _CONST long *aligned_src; + int len = len0; + + /* If the size is small, or either SRC or DST is unaligned, + then punt into the byte copy loop. This should be rare. */ + if (!TOO_SMALL(len) && !UNALIGNED (src, dst)) + { + aligned_dst = (long*)dst; + aligned_src = (long*)src; + + /* Copy 4X long words at a time if possible. */ + while (len >= BIGBLOCKSIZE) + { + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + len -= BIGBLOCKSIZE; + } + + /* Copy one long word at a time if possible. */ + while (len >= LITTLEBLOCKSIZE) + { + *aligned_dst++ = *aligned_src++; + len -= LITTLEBLOCKSIZE; + } + + /* Pick up any residual with a byte copier. */ + dst = (char*)aligned_dst; + src = (char*)aligned_src; + } + + while (len--) + *dst++ = *src++; + + return dst0; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/memmove.c b/newlib/libc/string/memmove.c new file mode 100644 index 000000000..2528e27d4 --- /dev/null +++ b/newlib/libc/string/memmove.c @@ -0,0 +1,143 @@ +/* +FUNCTION + <<memmove>>---move possibly overlapping memory + +INDEX + memmove + +ANSI_SYNOPSIS + #include <string.h> + void *memmove(void *<[dst]>, const void *<[src]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + void *memmove(<[dst]>, <[src]>, <[length]>) + void *<[dst]>; + void *<[src]>; + size_t <[length]>; + +DESCRIPTION + This function moves <[length]> characters from the block of + memory starting at <<*<[src]>>> to the memory starting at + <<*<[dst]>>>. <<memmove>> reproduces the characters correctly + at <<*<[dst]>>> even if the two areas overlap. + + +RETURNS + The function returns <[dst]> as passed. + +PORTABILITY +<<memmove>> is ANSI C. + +<<memmove>> requires no supporting OS subroutines. + +QUICKREF + memmove ansi pure +*/ + +#include <string.h> +#include <_ansi.h> +#include <stddef.h> +#include <limits.h> + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +/* How many bytes are copied each iteration of the 4X unrolled loop. */ +#define BIGBLOCKSIZE (sizeof (long) << 2) + +/* How many bytes are copied each iteration of the word copy loop. */ +#define LITTLEBLOCKSIZE (sizeof (long)) + +/* Threshhold for punting to the byte copier. */ +#define TOO_SMALL(LEN) ((LEN) < BIGBLOCKSIZE) + +/*SUPPRESS 20*/ +_PTR +_DEFUN (memmove, (dst_void, src_void, length), + _PTR dst_void _AND + _CONST _PTR src_void _AND + size_t length) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *dst = dst_void; + _CONST char *src = src_void; + + if (src < dst && dst < src + length) + { + /* Have to copy backwards */ + src += length; + dst += length; + while (length--) + { + *--dst = *--src; + } + } + else + { + while (length--) + { + *dst++ = *src++; + } + } + + return dst_void; +#else + char *dst = dst_void; + _CONST char *src = src_void; + long *aligned_dst; + _CONST long *aligned_src; + int len = length; + + if (src < dst && dst < src + len) + { + /* Destructive overlap...have to copy backwards */ + src += len; + dst += len; + while (len--) + { + *--dst = *--src; + } + } + else + { + /* Use optimizing algorithm for a non-destructive copy to closely + match memcpy. If the size is small or either SRC or DST is unaligned, + then punt into the byte copy loop. This should be rare. */ + if (!TOO_SMALL(len) && !UNALIGNED (src, dst)) + { + aligned_dst = (long*)dst; + aligned_src = (long*)src; + + /* Copy 4X long words at a time if possible. */ + while (len >= BIGBLOCKSIZE) + { + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + *aligned_dst++ = *aligned_src++; + len -= BIGBLOCKSIZE; + } + + /* Copy one long word at a time if possible. */ + while (len >= LITTLEBLOCKSIZE) + { + *aligned_dst++ = *aligned_src++; + len -= LITTLEBLOCKSIZE; + } + + /* Pick up any residual with a byte copier. */ + dst = (char*)aligned_dst; + src = (char*)aligned_src; + } + + while (len--) + { + *dst++ = *src++; + } + } + + return dst_void; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/memset.c b/newlib/libc/string/memset.c new file mode 100644 index 000000000..f6ec46b9a --- /dev/null +++ b/newlib/libc/string/memset.c @@ -0,0 +1,110 @@ +/* +FUNCTION + <<memset>>---set an area of memory + +INDEX + memset + +ANSI_SYNOPSIS + #include <string.h> + void *memset(const void *<[dst]>, int <[c]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + void *memset(<[dst]>, <[c]>, <[length]>) + void *<[dst]>; + int <[c]>; + size_t <[length]>; + +DESCRIPTION + This function converts the argument <[c]> into an unsigned + char and fills the first <[length]> characters of the array + pointed to by <[dst]> to the value. + +RETURNS + <<memset>> returns the value of <[m]>. + +PORTABILITY +<<memset>> is ANSI C. + + <<memset>> requires no supporting OS subroutines. + +QUICKREF + memset ansi pure +*/ + +#include <string.h> + +#define LBLOCKSIZE (sizeof(long)) +#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) +#define TOO_SMALL(LEN) ((LEN) < LBLOCKSIZE) + +_PTR +_DEFUN (memset, (m, c, n), + _PTR m _AND + int c _AND + size_t n) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *s = (char *) m; + + while (n-- != 0) + { + *s++ = (char) c; + } + + return m; +#else + char *s = (char *) m; + int count, i; + unsigned long buffer; + unsigned long *aligned_addr; + unsigned char *unaligned_addr; + + if (!TOO_SMALL (n) && !UNALIGNED (m)) + { + /* If we get this far, we know that n is large and m is word-aligned. */ + + aligned_addr = (unsigned long*)m; + + /* Store C into each char sized location in BUFFER so that + we can set large blocks quickly. */ + c &= 0xff; + if (LBLOCKSIZE == 4) + { + buffer = (c << 8) | c; + buffer |= (buffer << 16); + } + else + { + buffer = 0; + for (i = 0; i < LBLOCKSIZE; i++) + buffer = (buffer << 8) | c; + } + + while (n >= LBLOCKSIZE*4) + { + *aligned_addr++ = buffer; + *aligned_addr++ = buffer; + *aligned_addr++ = buffer; + *aligned_addr++ = buffer; + n -= 4*LBLOCKSIZE; + } + + while (n >= LBLOCKSIZE) + { + *aligned_addr++ = buffer; + n -= LBLOCKSIZE; + } + /* Pick up the remainder with a bytewise loop. */ + s = (char*)aligned_addr; + } + + while (n--) + { + *s++ = (char)c; + } + + return m; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/rindex.c b/newlib/libc/string/rindex.c new file mode 100644 index 000000000..3c6dff909 --- /dev/null +++ b/newlib/libc/string/rindex.c @@ -0,0 +1,44 @@ +/* +FUNCTION + <<rindex>>---reverse search for character in string + +INDEX + rindex + +ANSI_SYNOPSIS + #include <string.h> + char * rindex(const char *<[string]>, int <[c]>); + +TRAD_SYNOPSIS + #include <string.h> + char * rindex(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; + +DESCRIPTION + This function finds the last occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). + + This function is identical to <<strrchr>>. + +RETURNS + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. + +PORTABILITY +<<rindex>> requires no supporting OS subroutines. + +QUICKREF + rindex - pure +*/ + +#include <string.h> + +char * +_DEFUN (rindex, (s, c), + _CONST char *s _AND + int c) +{ + return strrchr (s, c); +} diff --git a/newlib/libc/string/strcasecmp.c b/newlib/libc/string/strcasecmp.c new file mode 100644 index 000000000..4dcfc784a --- /dev/null +++ b/newlib/libc/string/strcasecmp.c @@ -0,0 +1,56 @@ +/* +FUNCTION + <<strcasecmp>>---case insensitive character string compare + +INDEX + strcasecmp + +ANSI_SYNOPSIS + #include <string.h> + int strcasecmp(const char *<[a]>, const char *<[b]>); + +TRAD_SYNOPSIS + #include <string.h> + int strcasecmp(<[a]>, <[b]>) + char *<[a]>; + char *<[b]>; + +DESCRIPTION + <<strcasecmp>> compares the string at <[a]> to + the string at <[b]> in a case-insensitive manner. + +RETURNS + + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after + both are converted to upper case), <<strcasecmp>> returns a + number greater than zero. If the two strings match, + <<strcasecmp>> returns zero. If <<*<[a]>>> sorts + lexicographically before <<*<[b]>>>, <<strcasecmp>> returns a + number less than zero. + +PORTABILITY +<<strcasecmp>> is in the Berkeley Software Distribution. + +<<strcasecmp>> requires no supporting OS subroutines. It uses +tolower() from elsewhere in this library. + +QUICKREF + strcasecmp +*/ + +#include <string.h> +#include <ctype.h> + +int +_DEFUN (strcasecmp, (s1, s2), + _CONST char *s1 _AND + _CONST char *s2) +{ + while (*s1 != '\0' && tolower(*s1) == tolower(*s2)) + { + s1++; + s2++; + } + + return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); +} diff --git a/newlib/libc/string/strcat.c b/newlib/libc/string/strcat.c new file mode 100644 index 000000000..411eadb85 --- /dev/null +++ b/newlib/libc/string/strcat.c @@ -0,0 +1,104 @@ +/* +FUNCTION + <<strcat>>---concatenate strings + +INDEX + strcat + +ANSI_SYNOPSIS + #include <string.h> + char *strcat(char *<[dst]>, const char *<[src]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strcat(<[dst]>, <[src]>) + char *<[dst]>; + char *<[src]>; + +DESCRIPTION + <<strcat>> appends a copy of the string pointed to by <[src]> + (including the terminating null character) to the end of the + string pointed to by <[dst]>. The initial character of + <[src]> overwrites the null character at the end of <[dst]>. + +RETURNS + This function returns the initial value of <[dst]> + +PORTABILITY +<<strcat>> is ANSI C. + +<<strcat>> requires no supporting OS subroutines. + +QUICKREF + strcat ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/* Nonzero if X is aligned on a "long" boundary. */ +#define ALIGNED(X) \ + (((long)X & (sizeof (long) - 1)) == 0) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + + +/*SUPPRESS 560*/ +/*SUPPRESS 530*/ + +char * +_DEFUN (strcat, (s1, s2), + char *s1 _AND + _CONST char *s2) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *s = s1; + + while (*s1) + s1++; + + while (*s1++ = *s2++) + ; + return s; +#else + char *s = s1; + + + /* Skip over the data in s1 as quickly as possible. */ + if (ALIGNED (s1)) + { + unsigned long *aligned_s1 = (unsigned long *)s1; + while (!DETECTNULL (*aligned_s1)) + aligned_s1++; + + s1 = (char *)aligned_s1; + } + + while (*s1) + s1++; + + /* s1 now points to the its trailing null character, we can + just use strcpy to do the work for us now. + + ?!? We might want to just include strcpy here. + Also, this will cause many more unaligned string copies because + s1 is much less likely to be aligned. I don't know if its worth + tweaking strcpy to handle this better. */ + strcpy (s1, s2); + + return s; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strchr.c b/newlib/libc/string/strchr.c new file mode 100644 index 000000000..de4585f75 --- /dev/null +++ b/newlib/libc/string/strchr.c @@ -0,0 +1,108 @@ +/* +FUNCTION + <<strchr>>---search for character in string + +INDEX + strchr + +ANSI_SYNOPSIS + #include <string.h> + char * strchr(const char *<[string]>, int <[c]>); + +TRAD_SYNOPSIS + #include <string.h> + char * strchr(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; + +DESCRIPTION + This function finds the first occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). + +RETURNS + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. + +PORTABILITY +<<strchr>> is ANSI C. + +<<strchr>> requires no supporting OS subroutines. + +QUICKREF + strchr ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/* Nonzero if X is not aligned on a "long" boundary. */ +#define UNALIGNED(X) ((long)X & (sizeof (long) - 1)) + +/* How many bytes are loaded each iteration of the word copy loop. */ +#define LBLOCKSIZE (sizeof (long)) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +/* DETECTCHAR returns nonzero if (long)X contains the byte used + to fill (long)MASK. */ +#define DETECTCHAR(X,MASK) (DETECTNULL(X ^ MASK)) + +char * +_DEFUN (strchr, (s1, i), + _CONST char *s1 _AND + int i) +{ + _CONST unsigned char *s = (_CONST unsigned char *)s1; +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + unsigned char c = (unsigned int)i; + + while (*s && *s != c) + { + s++; + } + + if (*s != c) + { + s = NULL; + } + + return (char *) s; +#else + unsigned char c = (unsigned char)i; + unsigned long mask,j; + unsigned long *aligned_addr; + + if (!UNALIGNED (s)) + { + mask = 0; + for (j = 0; j < LBLOCKSIZE; j++) + mask = (mask << 8) | c; + + aligned_addr = (unsigned long*)s; + while (!DETECTNULL (*aligned_addr) && !DETECTCHAR (*aligned_addr, mask)) + aligned_addr++; + + /* The block of bytes currently pointed to by aligned_addr + contains either a null or the target char, or both. We + catch it using the bytewise search. */ + + s = (unsigned char*)aligned_addr; + } + + while (*s && *s != c) + s++; + if (*s == c) + return (char *)s; + return NULL; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strcmp.c b/newlib/libc/string/strcmp.c new file mode 100644 index 000000000..81d65272e --- /dev/null +++ b/newlib/libc/string/strcmp.c @@ -0,0 +1,106 @@ +/* +FUNCTION + <<strcmp>>---character string compare + +INDEX + strcmp + +ANSI_SYNOPSIS + #include <string.h> + int strcmp(const char *<[a]>, const char *<[b]>); + +TRAD_SYNOPSIS + #include <string.h> + int strcmp(<[a]>, <[b]>) + char *<[a]>; + char *<[b]>; + +DESCRIPTION + <<strcmp>> compares the string at <[a]> to + the string at <[b]>. + +RETURNS + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, + <<strcmp>> returns a number greater than zero. If the two + strings match, <<strcmp>> returns zero. If <<*<[a]>>> + sorts lexicographically before <<*<[b]>>>, <<strcmp>> returns a + number less than zero. + +PORTABILITY +<<strcmp>> is ANSI C. + +<<strcmp>> requires no supporting OS subroutines. + +QUICKREF + strcmp ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +/* DETECTNULL returns nonzero if (long)X contains a NULL byte. */ +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +int +_DEFUN (strcmp, (s1, s2), + _CONST char *s1 _AND + _CONST char *s2) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + while (*s1 != '\0' && *s1 == *s2) + { + s1++; + s2++; + } + + return (*(unsigned char *) s1) - (*(unsigned char *) s2); +#else + unsigned long *a1; + unsigned long *a2; + + /* If s1 or s2 are unaligned, then compare bytes. */ + if (!UNALIGNED (s1, s2)) + { + /* If s1 and s2 are word-aligned, compare them a word at a time. */ + a1 = (unsigned long*)s1; + a2 = (unsigned long*)s2; + while (*a1 == *a2) + { + /* To get here, *a1 == *a2, thus if we find a null in *a1, + then the strings must be equal, so return zero. */ + if (DETECTNULL (*a1)) + return 0; + + a1++; + a2++; + } + + /* A difference was detected in last few bytes of s1, so search bytewise */ + s1 = (char*)a1; + s2 = (char*)a2; + } + + while (*s1 != '\0' && *s1 == *s2) + { + s1++; + s2++; + } + return (*(unsigned char *) s1) - (*(unsigned char *) s2); +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strcoll.c b/newlib/libc/string/strcoll.c new file mode 100644 index 000000000..8760b2217 --- /dev/null +++ b/newlib/libc/string/strcoll.c @@ -0,0 +1,48 @@ +/* +FUNCTION + <<strcoll>>---locale specific character string compare + +INDEX + strcoll + +ANSI_SYNOPSIS + #include <string.h> + int strcoll(const char *<[stra]>, const char * <[strb]>); + +TRAD_SYNOPSIS + #include <string.h> + int strcoll(<[stra]>, <[strb]>) + char *<[stra]>; + char *<[strb]>; + +DESCRIPTION + <<strcoll>> compares the string pointed to by <[stra]> to + the string pointed to by <[strb]>, using an interpretation + appropriate to the current <<LC_COLLATE>> state. + +RETURNS + If the first string is greater than the second string, + <<strcoll>> returns a number greater than zero. If the two + strings are equivalent, <<strcoll>> returns zero. If the first + string is less than the second string, <<strcoll>> returns a + number less than zero. + +PORTABILITY +<<strcoll>> is ANSI C. + +<<strcoll>> requires no supporting OS subroutines. + +QUICKREF + strcoll ansi pure +*/ + +#include <string.h> + +int +_DEFUN (strcoll, (a, b), + _CONST char *a _AND + _CONST char *b) + +{ + return strcmp (a, b); +} diff --git a/newlib/libc/string/strcpy.c b/newlib/libc/string/strcpy.c new file mode 100644 index 000000000..905b2541c --- /dev/null +++ b/newlib/libc/string/strcpy.c @@ -0,0 +1,99 @@ +/* +FUNCTION + <<strcpy>>---copy string + +INDEX + strcpy + +ANSI_SYNOPSIS + #include <string.h> + char *strcpy(char *<[dst]>, const char *<[src]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strcpy(<[dst]>, <[src]>) + char *<[dst]>; + char *<[src]>; + +DESCRIPTION + <<strcpy>> copies the string pointed to by <[src]> + (including the terminating null character) to the array + pointed to by <[dst]>. + +RETURNS + This function returns the initial value of <[dst]>. + +PORTABILITY +<<strcpy>> is ANSI C. + +<<strcpy>> requires no supporting OS subroutines. + +QUICKREF + strcpy ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/*SUPPRESS 560*/ +/*SUPPRESS 530*/ + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +char* +_DEFUN (strcpy, (dst0, src0), + char *dst0 _AND + _CONST char *src0) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *s = dst0; + + while (*dst0++ = *src0++) + ; + + return s; +#else + char *dst = dst0; + _CONST char *src = src0; + long *aligned_dst; + _CONST long *aligned_src; + + /* If SRC or DEST is unaligned, then copy bytes. */ + if (!UNALIGNED (src, dst)) + { + aligned_dst = (long*)dst; + aligned_src = (long*)src; + + /* SRC and DEST are both "long int" aligned, try to do "long int" + sized copies. */ + while (!DETECTNULL(*aligned_src)) + { + *aligned_dst++ = *aligned_src++; + } + + dst = (char*)aligned_dst; + src = (char*)aligned_src; + } + + while (*dst++ = *src++) + ; + return dst0; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strcspn.c b/newlib/libc/string/strcspn.c new file mode 100644 index 000000000..fe68b8f51 --- /dev/null +++ b/newlib/libc/string/strcspn.c @@ -0,0 +1,54 @@ +/* +FUNCTION + <<strcspn>>---count chars not in string + +INDEX + strcspn + +ANSI_SYNOPSIS + size_t strcspn(const char *<[s1]>, const char *<[s2]>); + +TRAD_SYNOPSIS + size_t strcspn(<[s1]>, <[s2]>) + char *<[s1]>; + char *<[s2]>; + +DESCRIPTION + This function computes the length of the initial part of + the string pointed to by <[s1]> which consists entirely of + characters <[NOT]> from the string pointed to by <[s2]> + (excluding the terminating null character). + +RETURNS + <<strcspn>> returns the length of the substring found. + +PORTABILITY +<<strcspn>> is ANSI C. + +<<strcspn>> requires no supporting OS subroutines. + */ + +#include <string.h> + +size_t +_DEFUN (strcspn, (s1, s2), + _CONST char *s1 _AND + _CONST char *s2) +{ + _CONST char *s = s1; + _CONST char *c; + + while (*s1) + { + for (c = s2; *c; c++) + { + if (*s1 == *c) + break; + } + if (*c) + break; + s1++; + } + + return s1 - s; +} diff --git a/newlib/libc/string/strerror.c b/newlib/libc/string/strerror.c new file mode 100644 index 000000000..78336595d --- /dev/null +++ b/newlib/libc/string/strerror.c @@ -0,0 +1,650 @@ +/*** +**** CAUTION!!! KEEP DOC CONSISTENT---if you change text of a message +**** here, change two places: +**** 1) the leading doc section (alphabetized by macro) +**** 2) the real text inside switch(errnum) +***/ + +/* +FUNCTION + <<strerror>>---convert error number to string + +INDEX + strerror + +ANSI_SYNOPSIS + #include <string.h> + char *strerror(int <[errnum]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strerror(<[errnum]>) + int <[errnum]>; + +DESCRIPTION +<<strerror>> converts the error number <[errnum]> into a +string. The value of <[errnum]> is usually a copy of <<errno>>. +If <<errnum>> is not a known error number, the result points to an +empty string. + +This implementation of <<strerror>> prints out the following strings +for each of the values defined in `<<errno.h>>': + +o+ +o E2BIG +Arg list too long + +o EACCES +Permission denied + +o EADV +Advertise error + +o EAGAIN +No more processes + +o EBADF +Bad file number + +o EBADMSG +Bad message + +o EBUSY +Device or resource busy + +o ECHILD +No children + +o ECOMM +Communication error + +o EDEADLK +Deadlock + +o EEXIST +File exists + +o EDOM +Math argument + +o EFAULT +Bad address + +o EFBIG +File too large + +o EIDRM +Identifier removed + +o EINTR +Interrupted system call + +o EINVAL +Invalid argument + +o EIO +I/O error + +o EISDIR +Is a directory + +o ELIBACC +Cannot access a needed shared library + +o ELIBBAD +Accessing a corrupted shared library + +o ELIBEXEC +Cannot exec a shared library directly + +o ELIBMAX +Attempting to link in more shared libraries than system limit + +o ELIBSCN +<<.lib>> section in a.out corrupted + +o EMFILE +Too many open files + +o EMLINK +Too many links + +o EMULTIHOP +Multihop attempted + +o ENAMETOOLONG +File or path name too long + +o ENFILE +Too many open files in system + +o ENODEV +No such device + +o ENOENT +No such file or directory + +o ENOEXEC +Exec format error + +o ENOLCK +No lock + +o ENOLINK +Virtual circuit is gone + +o ENOMEM +Not enough space + +o ENOMSG +No message of desired type + +o ENONET +Machine is not on the network + +o ENOPKG +No package + +o ENOSPC +No space left on device + +o ENOSR +No stream resources + +o ENOSTR +Not a stream + +o ENOSYS +Function not implemented + +o ENOTBLK +Block device required + +o ENOTDIR +Not a directory + +o ENOTEMPTY +Directory not empty + +o ENOTTY +Not a character device + +o ENXIO +No such device or address + +o EPERM +Not owner + +o EPIPE +Broken pipe + +o EPROTO +Protocol error + +o ERANGE +Result too large + +o EREMOTE +Resource is remote + +o EROFS +Read-only file system + +o ESPIPE +Illegal seek + +o ESRCH +No such process + +o ESRMNT +Srmount error + +o ETIME +Stream ioctl timeout + +o ETXTBSY +Text file busy + +o EXDEV +Cross-device link + +o- + +RETURNS +This function returns a pointer to a string. Your application must +not modify that string. + +PORTABILITY +ANSI C requires <<strerror>>, but does not specify the strings used +for each error number. + +Although this implementation of <<strerror>> is reentrant, ANSI C +declares that subsequent calls to <<strerror>> may overwrite the +result string; therefore portable code cannot depend on the reentrancy +of this subroutine. + +This implementation of <<strerror>> provides for user-defined +extensibility. <<errno.h>> defines <[__ELASTERROR]>, which can be +used as a base for user-defined error values. If the user supplies a +routine named <<_user_strerror>>, and <[errnum]> passed to +<<strerror>> does not match any of the supported values, +<<_user_strerror>> is called with <[errnum]> as its argument. + +<<_user_strerror>> takes one argument of type <[int]>, and returns a +character pointer. If <[errnum]> is unknown to <<_user_strerror>>, +<<_user_strerror>> returns <[NULL]>. The default <<_user_strerror>> +returns <[NULL]> for all input values. + +<<strerror>> requires no supporting OS subroutines. + +QUICKREF + strerror ansi pure +*/ + +#include <errno.h> +#include <string.h> + +char * +_DEFUN (strerror, (errnum), + int errnum) +{ + char *error; + extern char *_user_strerror _PARAMS ((int)); + + switch (errnum) + { +/* go32 defines EPERM as EACCES */ +#if defined (EPERM) && (!defined (EACCES) || (EPERM != EACCES)) + case EPERM: + error = "Not owner"; + break; +#endif +#ifdef ENOENT + case ENOENT: + error = "No such file or directory"; + break; +#endif +#ifdef ESRCH + case ESRCH: + error = "No such process"; + break; +#endif +#ifdef EINTR + case EINTR: + error = "Interrupted system call"; + break; +#endif +#ifdef EIO + case EIO: + error = "I/O error"; + break; +#endif +/* go32 defines ENXIO as ENODEV */ +#if defined (ENXIO) && (!defined (ENODEV) || (ENXIO != ENODEV)) + case ENXIO: + error = "No such device or address"; + break; +#endif +#ifdef E2BIG + case E2BIG: + error = "Arg list too long"; + break; +#endif +#ifdef ENOEXEC + case ENOEXEC: + error = "Exec format error"; + break; +#endif +#ifdef EBADF + case EBADF: + error = "Bad file number"; + break; +#endif +#ifdef ECHILD + case ECHILD: + error = "No children"; + break; +#endif +#ifdef EAGAIN + case EAGAIN: + error = "No more processes"; + break; +#endif +#ifdef ENOMEM + case ENOMEM: + error = "Not enough space"; + break; +#endif +#ifdef EACCES + case EACCES: + error = "Permission denied"; + break; +#endif +#ifdef EFAULT + case EFAULT: + error = "Bad address"; + break; +#endif +#ifdef ENOTBLK + case ENOTBLK: + error = "Block device required"; + break; +#endif +#ifdef EBUSY + case EBUSY: + error = "Device or resource busy"; + break; +#endif +#ifdef EEXIST + case EEXIST: + error = "File exists"; + break; +#endif +#ifdef EXDEV + case EXDEV: + error = "Cross-device link"; + break; +#endif +#ifdef ENODEV + case ENODEV: + error = "No such device"; + break; +#endif +#ifdef ENOTDIR + case ENOTDIR: + error = "Not a directory"; + break; +#endif +#ifdef EISDIR + case EISDIR: + error = "Is a directory"; + break; +#endif +#ifdef EINVAL + case EINVAL: + error = "Invalid argument"; + break; +#endif +#ifdef ENFILE + case ENFILE: + error = "Too many open files in system"; + break; +#endif +#ifdef EMFILE + case EMFILE: + error = "Too many open files"; + break; +#endif +#ifdef ENOTTY + case ENOTTY: + error = "Not a character device"; + break; +#endif +#ifdef ETXTBSY + case ETXTBSY: + error = "Text file busy"; + break; +#endif +#ifdef EFBIG + case EFBIG: + error = "File too large"; + break; +#endif +#ifdef ENOSPC + case ENOSPC: + error = "No space left on device"; + break; +#endif +#ifdef ESPIPE + case ESPIPE: + error = "Illegal seek"; + break; +#endif +#ifdef EROFS + case EROFS: + error = "Read-only file system"; + break; +#endif +#ifdef EMLINK + case EMLINK: + error = "Too many links"; + break; +#endif +#ifdef EPIPE + case EPIPE: + error = "Broken pipe"; + break; +#endif +#ifdef EDOM + case EDOM: + error = "Math argument"; + break; +#endif +#ifdef ERANGE + case ERANGE: + error = "Result too large"; + break; +#endif +#ifdef ENOMSG + case ENOMSG: + error = "No message of desired type"; + break; +#endif +#ifdef EIDRM + case EIDRM: + error = "Identifier removed"; + break; +#endif +#ifdef EDEADLK + case EDEADLK: + error = "Deadlock"; + break; +#endif +#ifdef ENOLCK + case ENOLCK: + error = "No lock"; + break; +#endif +#ifdef ENOSTR + case ENOSTR: + error = "Not a stream"; + break; +#endif +#ifdef ETIME + case ETIME: + error = "Stream ioctl timeout"; + break; +#endif +#ifdef ENOSR + case ENOSR: + error = "No stream resources"; + break; +#endif +#ifdef ENONET + case ENONET: + error = "Machine is not on the network"; + break; +#endif +#ifdef ENOPKG + case ENOPKG: + error = "No package"; + break; +#endif +#ifdef EREMOTE + case EREMOTE: + error = "Resource is remote"; + break; +#endif +#ifdef ENOLINK + case ENOLINK: + error = "Virtual circuit is gone"; + break; +#endif +#ifdef EADV + case EADV: + error = "Advertise error"; + break; +#endif +#ifdef ESRMNT + case ESRMNT: + error = "Srmount error"; + break; +#endif +#ifdef ECOMM + case ECOMM: + error = "Communication error"; + break; +#endif +#ifdef EPROTO + case EPROTO: + error = "Protocol error"; + break; +#endif +#ifdef EMULTIHOP + case EMULTIHOP: + error = "Multihop attempted"; + break; +#endif +#ifdef EBADMSG + case EBADMSG: + error = "Bad message"; + break; +#endif +#ifdef ELIBACC + case ELIBACC: + error = "Cannot access a needed shared library"; + break; +#endif +#ifdef ELIBBAD + case ELIBBAD: + error = "Accessing a corrupted shared library"; + break; +#endif +#ifdef ELIBSCN + case ELIBSCN: + error = ".lib section in a.out corrupted"; + break; +#endif +#ifdef ELIBMAX + case ELIBMAX: + error = "Attempting to link in more shared libraries than system limit"; + break; +#endif +#ifdef ELIBEXEC + case ELIBEXEC: + error = "Cannot exec a shared library directly"; + break; +#endif +#ifdef ENOSYS + case ENOSYS: + error = "Function not implemented"; + break; +#endif +#ifdef ENMFILE + case ENMFILE: + error = "No more files"; + break; +#endif +#ifdef ENOTEMPTY + case ENOTEMPTY: + error = "Directory not empty"; + break; +#endif +#ifdef ENAMETOOLONG + case ENAMETOOLONG: + error = "File or path name too long"; + break; +#endif +#ifdef ELOOP + case ELOOP: + error = "Too many symbolic links"; + break; +#endif +#ifdef ENOBUFS + case ENOBUFS: + error = "No buffer space available"; + break; +#endif +#ifdef EAFNOSUPPORT + case EAFNOSUPPORT: + error = "Address family not supported by protocol family"; + break; +#endif +#ifdef EPROTOTYPE + case EPROTOTYPE: + error = "Protocol wrong type for socket"; + break; +#endif +#ifdef ENOTSOCK + case ENOTSOCK: + error = "Socket operation on non-socket"; + break; +#endif +#ifdef ENOPROTOOPT + case ENOPROTOOPT: + error = "Protocol not available"; + break; +#endif +#ifdef ESHUTDOWN + case ESHUTDOWN: + error = "Can't send after socket shutdown"; + break; +#endif +#ifdef ECONNREFUSED + case ECONNREFUSED: + error = "Connection refused"; + break; +#endif +#ifdef EADDRINUSE + case EADDRINUSE: + error = "Address already in use"; + break; +#endif +#ifdef ECONNABORTED + case ECONNABORTED: + error = "Software caused connection abort"; + break; +#endif +#if (defined(EWOULDBLOCK) && (!defined (EAGAIN) || (EWOULDBLOCK != EAGAIN))) + case EWOULDBLOCK: + error = "Operation would block"; + break; +#endif +#ifdef ENOTCONN + case ENOTCONN: + error = "Socket is not connected"; + break; +#endif +#ifdef ESOCKTNOSUPPORT + case ESOCKTNOSUPPORT: + error = "Socket type not supported"; + break; +#endif +#ifdef EISCONN + case EISCONN: + error = "Socket is already connected"; + break; +#endif +#ifdef EOPNOTSUPP + case EOPNOTSUPP: + error = "Operation not supported on socket"; + break; +#endif +#ifdef EMSGSIZE + case EMSGSIZE: + error = "Message too long"; + break; +#endif +#ifdef ETIMEDOUT + case ETIMEDOUT: + error = "Connection timed out"; + break; +#endif + default: + if ((error = _user_strerror (errnum)) == 0) + error = ""; + break; + } + + return error; +} diff --git a/newlib/libc/string/strings.tex b/newlib/libc/string/strings.tex new file mode 100644 index 000000000..2d17d1c6f --- /dev/null +++ b/newlib/libc/string/strings.tex @@ -0,0 +1,133 @@ +@node Strings +@chapter Strings and Memory (@file{string.h}) + +This chapter describes string-handling functions and functions for +managing areas of memory. The corresponding declarations are in +@file{string.h}. + +@menu +* bcmp:: Compare two memory areas +* bcopy:: Copy memory regions +* bzero:: Initialize memory to zero +* index:: Search for character in string +* memchr:: Find character in memory +* memcmp:: Compare two memory areas +* memcpy:: Copy memory regions +* memmove:: Move possibly overlapping memory +* memset:: Set an area of memory +* rindex:: Reverse search for character in string +* strcasecmp:: Compare strings ignoring case +* strcat:: Concatenate strings +* strchr:: Search for character in string +* strcmp:: Character string compare +* strcoll:: Locale specific character string compare +* strcpy:: Copy string +* strcspn:: Count chars not in string +* strerror:: Convert error number to string +* strlen:: Character string length +* strlwr:: Convert string to lower case +* strncasecmp:: Compare strings ignoring case +* strncat:: Concatenate strings +* strncmp:: Character string compare +* strncpy:: Counted copy string +* strpbrk:: Find chars in string +* strrchr:: Reverse search for character in string +* strspn:: Find initial match +* strstr:: Find string segment +* strtok:: Get next token from a string +* strupr:: Convert string to upper case +* strxfrm:: Transform string +@end menu + +@page +@include string/bcmp.def + +@page +@include string/bcopy.def + +@page +@include string/bzero.def + +@page +@include string/index.def + +@page +@include string/memchr.def + +@page +@include string/memcmp.def + +@page +@include string/memcpy.def + +@page +@include string/memmove.def + +@page +@include string/memset.def + +@page +@include string/rindex.def + +@page +@include string/strcasecmp.def + +@page +@include string/strcat.def + +@page +@include string/strchr.def + +@page +@include string/strcmp.def + +@page +@include string/strcoll.def + +@page +@include string/strcpy.def + +@page +@include string/strcspn.def + +@page +@include string/strerror.def + +@page +@include string/strlen.def + +@page +@include string/strlwr.def + +@page +@include string/strncasecmp.def + +@page +@include string/strncat.def + +@page +@include string/strncmp.def + +@page +@include string/strncpy.def + +@page +@include string/strpbrk.def + +@page +@include string/strrchr.def + +@page +@include string/strspn.def + +@page +@include string/strstr.def + +@page +@include string/strtok.def + +@page +@include string/strupr.def + +@page +@include string/strxfrm.def diff --git a/newlib/libc/string/strlen.c b/newlib/libc/string/strlen.c new file mode 100644 index 000000000..4249e14c7 --- /dev/null +++ b/newlib/libc/string/strlen.c @@ -0,0 +1,88 @@ +/* +FUNCTION + <<strlen>>---character string length + +INDEX + strlen + +ANSI_SYNOPSIS + #include <string.h> + size_t strlen(const char *<[str]>); + +TRAD_SYNOPSIS + #include <string.h> + size_t strlen(<[str]>) + char *<[src]>; + +DESCRIPTION + The <<strlen>> function works out the length of the string + starting at <<*<[str]>>> by counting chararacters until it + reaches a <<NULL>> character. + +RETURNS + <<strlen>> returns the character count. + +PORTABILITY +<<strlen>> is ANSI C. + +<<strlen>> requires no supporting OS subroutines. + +QUICKREF + strlen ansi pure +*/ + +#include <_ansi.h> +#include <string.h> +#include <limits.h> + +#define LBLOCKSIZE (sizeof (long)) +#define UNALIGNED(X) ((long)X & (LBLOCKSIZE - 1)) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +size_t +_DEFUN (strlen, (str), + _CONST char *str) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + _CONST char *start = str; + + while (*str) + str++; + + return str - start; +#else + _CONST char *start = str; + unsigned long *aligned_addr; + + if (!UNALIGNED (str)) + { + /* If the string is word-aligned, we can check for the presence of + a null in each word-sized block. */ + aligned_addr = (unsigned long*)str; + while (!DETECTNULL (*aligned_addr)) + aligned_addr++; + + /* Once a null is detected, we check each byte in that block for a + precise position of the null. */ + str = (char*)aligned_addr; + } + + while (*str) + str++; + return str - start; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strlwr.c b/newlib/libc/string/strlwr.c new file mode 100644 index 000000000..cf0d45f71 --- /dev/null +++ b/newlib/libc/string/strlwr.c @@ -0,0 +1,50 @@ +/* +FUNCTION + <<strlwr>>---force string to lower case + +INDEX + strlwr + +ANSI_SYNOPSIS + #include <string.h> + char *strlwr(char *<[a]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strlwr(<[a]>) + char *<[a]>; + +DESCRIPTION + <<strlwr>> converts each characters in the string at <[a]> to + lower case. + +RETURNS + <<strlwr>> returns its argument, <[a]>. + +PORTABILITY +<<strlwr>> is not widely portable. + +<<strlwr>> requires no supporting OS subroutines. + +QUICKREF + strlwr +*/ + +#include <string.h> +#include <ctype.h> + +char * +strlwr (a) + char *a; +{ + char *ret = a; + + while (*a != '\0') + { + if (isupper (*a)) + *a = tolower (*a); + ++a; + } + + return ret; +} diff --git a/newlib/libc/string/strncasecmp.c b/newlib/libc/string/strncasecmp.c new file mode 100644 index 000000000..28c6cc44f --- /dev/null +++ b/newlib/libc/string/strncasecmp.c @@ -0,0 +1,64 @@ +/* +FUNCTION + <<strncasecmp>>---case insensitive character string compare + +INDEX + strncasecmp + +ANSI_SYNOPSIS + #include <string.h> + int strncasecmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + int strncasecmp(<[a]>, <[b]>, <[length]>) + char *<[a]>; + char *<[b]>; + size_t <[length]> + +DESCRIPTION + <<strncasecmp>> compares up to <[length]> characters + from the string at <[a]> to the string at <[b]> in a + case-insensitive manner. + +RETURNS + + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>> (after + both are converted to upper case), <<strncasecmp>> returns a + number greater than zero. If the two strings are equivalent, + <<strncasecmp>> returns zero. If <<*<[a]>>> sorts + lexicographically before <<*<[b]>>>, <<strncasecmp>> returns a + number less than zero. + +PORTABILITY +<<strncasecmp>> is in the Berkeley Software Distribution. + +<<strncasecmp>> requires no supporting OS subroutines. It uses +tolower() from elsewhere in this library. + +QUICKREF + strncasecmp +*/ + +#include <string.h> +#include <ctype.h> + +int +_DEFUN (strncasecmp, (s1, s2, n), + _CONST char *s1 _AND + _CONST char *s2 _AND + size_t n) +{ + if (n == 0) + return 0; + + while (n-- != 0 && tolower(*s1) == tolower(*s2)) + { + if (n == 0 || *s1 == '\0' || *s2 == '\0') + break; + s1++; + s2++; + } + + return tolower(*(unsigned char *) s1) - tolower(*(unsigned char *) s2); +} diff --git a/newlib/libc/string/strncat.c b/newlib/libc/string/strncat.c new file mode 100644 index 000000000..57ca068eb --- /dev/null +++ b/newlib/libc/string/strncat.c @@ -0,0 +1,115 @@ +/* +FUNCTION + <<strncat>>---concatenate strings + +INDEX + strncat + +ANSI_SYNOPSIS + #include <string.h> + char *strncat(char *<[dst]>, const char *<[src]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strncat(<[dst]>, <[src]>, <[length]>) + char *<[dst]>; + char *<[src]>; + size_t <[length]>; + +DESCRIPTION + <<strncat>> appends not more than <[length]> characters from + the string pointed to by <[src]> (including the terminating + null character) to the end of the string pointed to by + <[dst]>. The initial character of <[src]> overwrites the null + character at the end of <[dst]>. A terminating null character + is always appended to the result + +WARNINGS + Note that a null is always appended, so that if the copy is + limited by the <[length]> argument, the number of characters + appended to <[dst]> is <<n + 1>>. + + +RETURNS + This function returns the initial value of <[dst]> + +PORTABILITY +<<strncat>> is ANSI C. + +<<strncat>> requires no supporting OS subroutines. + +QUICKREF + strncat ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/* Nonzero if X is aligned on a "long" boundary. */ +#define ALIGNED(X) \ + (((long)X & (sizeof (long) - 1)) == 0) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +char * +_DEFUN (strncat, (s1, s2, n), + char *s1 _AND + _CONST char *s2 _AND + size_t n) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *s = s1; + + while (*s1) + s1++; + while (n-- != 0 && (*s1++ = *s2++)) + { + if (n == 0) + *s1 = '\0'; + } + + return s; +#else + char *s = s1; + + /* Skip over the data in s1 as quickly as possible. */ + if (ALIGNED (s1)) + { + unsigned long *aligned_s1 = (unsigned long *)s1; + while (!DETECTNULL (*aligned_s1)) + aligned_s1++; + + s1 = (char *)aligned_s1; + } + + while (*s1) + s1++; + + /* s1 now points to the its trailing null character, now copy + up to N bytes from S2 into S1 stopping if a NULL is encountered + in S2. + + It is not safe to use strncpy here since it copies EXACTLY N + characters, NULL padding if necessary. */ + while (n-- != 0 && (*s1++ = *s2++)) + { + if (n == 0) + *s1 = '\0'; + } + + return s; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strncmp.c b/newlib/libc/string/strncmp.c new file mode 100644 index 000000000..9801b7d92 --- /dev/null +++ b/newlib/libc/string/strncmp.c @@ -0,0 +1,122 @@ +/* +FUNCTION + <<strncmp>>---character string compare + +INDEX + strncmp + +ANSI_SYNOPSIS + #include <string.h> + int strncmp(const char *<[a]>, const char * <[b]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + int strncmp(<[a]>, <[b]>, <[length]>) + char *<[a]>; + char *<[b]>; + size_t <[length]> + +DESCRIPTION + <<strncmp>> compares up to <[length]> characters + from the string at <[a]> to the string at <[b]>. + +RETURNS + If <<*<[a]>>> sorts lexicographically after <<*<[b]>>>, + <<strncmp>> returns a number greater than zero. If the two + strings are equivalent, <<strncmp>> returns zero. If <<*<[a]>>> + sorts lexicographically before <<*<[b]>>>, <<strncmp>> returns a + number less than zero. + +PORTABILITY +<<strncmp>> is ANSI C. + +<<strncmp>> requires no supporting OS subroutines. + +QUICKREF + strncmp ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +/* DETECTNULL returns nonzero if (long)X contains a NULL byte. */ +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +int +_DEFUN (strncmp, (s1, s2, n), + _CONST char *s1 _AND + _CONST char *s2 _AND + size_t n) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + if (n == 0) + return 0; + + while (n-- != 0 && *s1 == *s2) + { + if (n == 0 || *s1 == '\0') + break; + s1++; + s2++; + } + + return (*(unsigned char *) s1) - (*(unsigned char *) s2); +#else + unsigned long *a1; + unsigned long *a2; + + if (n == 0) + return 0; + + /* If s1 or s2 are unaligned, then compare bytes. */ + if (!UNALIGNED (s1, s2)) + { + /* If s1 and s2 are word-aligned, compare them a word at a time. */ + a1 = (unsigned long*)s1; + a2 = (unsigned long*)s2; + while (n >= sizeof (long) && *a1 == *a2) + { + n -= sizeof (long); + + /* If we've run out of bytes or hit a null, return zero + since we already know *a1 == *a2. */ + if (n == 0 || DETECTNULL (*a1)) + return 0; + + a1++; + a2++; + } + + /* A difference was detected in last few bytes of s1, so search bytewise */ + s1 = (char*)a1; + s2 = (char*)a2; + } + + while (n-- > 0 && *s1 == *s2) + { + /* If we've run out of bytes or hit a null, return zero + since we already know *s1 == *s2. */ + if (n == 0 || *s1 == '\0') + return 0; + s1++; + s2++; + } + return (*(unsigned char *) s1) - (*(unsigned char *) s2); +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strncpy.c b/newlib/libc/string/strncpy.c new file mode 100644 index 000000000..7c1973ba6 --- /dev/null +++ b/newlib/libc/string/strncpy.c @@ -0,0 +1,125 @@ +/* +FUNCTION + <<strncpy>>---counted copy string + +INDEX + strncpy + +ANSI_SYNOPSIS + #include <string.h> + char *strncpy(char *<[dst]>, const char *<[src]>, size_t <[length]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strncpy(<[dst]>, <[src]>, <[length]>) + char *<[dst]>; + char *<[src]>; + size_t <[length]>; + +DESCRIPTION + <<strncpy>> copies not more than <[length]> characters from the + the string pointed to by <[src]> (including the terminating + null character) to the array pointed to by <[dst]>. If the + string pointed to by <[src]> is shorter than <[length]> + characters, null characters are appended to the destination + array until a total of <[length]> characters have been + written. + +RETURNS + This function returns the initial value of <[dst]>. + +PORTABILITY +<<strncpy>> is ANSI C. + +<<strncpy>> requires no supporting OS subroutines. + +QUICKREF + strncpy ansi pure +*/ + +#include <string.h> +#include <limits.h> + +/*SUPPRESS 560*/ +/*SUPPRESS 530*/ + +/* Nonzero if either X or Y is not aligned on a "long" boundary. */ +#define UNALIGNED(X, Y) \ + (((long)X & (sizeof (long) - 1)) | ((long)Y & (sizeof (long) - 1))) + +#if LONG_MAX == 2147483647L +#define DETECTNULL(X) (((X) - 0x01010101) & ~(X) & 0x80808080) +#else +#if LONG_MAX == 9223372036854775807L +/* Nonzero if X (a long int) contains a NULL byte. */ +#define DETECTNULL(X) (((X) - 0x0101010101010101) & ~(X) & 0x8080808080808080) +#else +#error long int is not a 32bit or 64bit type. +#endif +#endif + +#ifndef DETECTNULL +#error long int is not a 32bit or 64bit byte +#endif + +#define TOO_SMALL(LEN) ((LEN) < sizeof (long)) + +char * +_DEFUN (strncpy, (dst0, src0), + char *dst0 _AND + _CONST char *src0 _AND + size_t count) +{ +#if defined(PREFER_SIZE_OVER_SPEED) || defined(__OPTIMIZE_SIZE__) + char *dscan; + _CONST char *sscan; + + dscan = dst0; + sscan = src0; + while (count > 0) + { + --count; + if ((*dscan++ = *sscan++) == '\0') + break; + } + while (count-- > 0) + *dscan++ = '\0'; + + return dst0; +#else + char *dst = dst0; + _CONST char *src = src0; + long *aligned_dst; + _CONST long *aligned_src; + + /* If SRC and DEST is aligned and count large enough, then copy words. */ + if (!UNALIGNED (src, dst) && !TOO_SMALL (count)) + { + aligned_dst = (long*)dst; + aligned_src = (long*)src; + + /* SRC and DEST are both "long int" aligned, try to do "long int" + sized copies. */ + while (count >= sizeof (long int) && !DETECTNULL(*aligned_src)) + { + count -= sizeof (long int); + *aligned_dst++ = *aligned_src++; + } + + dst = (char*)aligned_dst; + src = (char*)aligned_src; + } + + while (count > 0) + { + --count; + if ((*dst++ = *src++) == '\0') + break; + } + + while (count-- > 0) + *dst++ = '\0'; + + return dst0; +#endif /* not PREFER_SIZE_OVER_SPEED */ +} diff --git a/newlib/libc/string/strpbrk.c b/newlib/libc/string/strpbrk.c new file mode 100644 index 000000000..e7f2dd2b6 --- /dev/null +++ b/newlib/libc/string/strpbrk.c @@ -0,0 +1,58 @@ +/* +FUNCTION + <<strpbrk>>---find chars in string + +INDEX + strpbrk + +ANSI_SYNOPSIS + #include <string.h> + char *strpbrk(const char *<[s1]>, const char *<[s2]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strpbrk(<[s1]>, <[s2]>) + char *<[s1]>; + char *<[s2]>; + +DESCRIPTION + This function locates the first occurence in the string + pointed to by <[s1]> of any character in string pointed to by + <[s2]> (excluding the terminating null character). + +RETURNS + <<strpbrk>> returns a pointer to the character found in <[s1]>, or a + null pointer if no character from <[s2]> occurs in <[s1]>. + +PORTABILITY +<<strpbrk>> requires no supporting OS subroutines. +*/ + +#include <string.h> + +char * +_DEFUN (strpbrk, (s1, s2), + _CONST char *s1 _AND + _CONST char *s2) +{ + _CONST char *c = s2; + if (!*s1) + return (char *) NULL; + + while (*s1) + { + for (c = s2; *c; c++) + { + if (*s1 == *c) + break; + } + if (*c) + break; + s1++; + } + + if (*c == '\0') + s1 = NULL; + + return (char *) s1; +} diff --git a/newlib/libc/string/strrchr.c b/newlib/libc/string/strrchr.c new file mode 100644 index 000000000..65160f55e --- /dev/null +++ b/newlib/libc/string/strrchr.c @@ -0,0 +1,61 @@ +/* +FUNCTION + <<strrchr>>---reverse search for character in string + +INDEX + strrchr + +ANSI_SYNOPSIS + #include <string.h> + char * strrchr(const char *<[string]>, int <[c]>); + +TRAD_SYNOPSIS + #include <string.h> + char * strrchr(<[string]>, <[c]>); + char *<[string]>; + int *<[c]>; + +DESCRIPTION + This function finds the last occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). + +RETURNS + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. + +PORTABILITY +<<strrchr>> is ANSI C. + +<<strrchr>> requires no supporting OS subroutines. + +QUICKREF + strrchr ansi pure +*/ + +#include <string.h> + +char * +_DEFUN (strrchr, (s, i), + _CONST char *s _AND + int i) +{ + _CONST char *last = NULL; + char c = i; + + while (*s) + { + if (*s == c) + { + last = s; + } + s++; + } + + if (*s == c) + { + last = s; + } + + return (char *) last; +} diff --git a/newlib/libc/string/strspn.c b/newlib/libc/string/strspn.c new file mode 100644 index 000000000..32b921b10 --- /dev/null +++ b/newlib/libc/string/strspn.c @@ -0,0 +1,59 @@ +/* +FUNCTION + <<strspn>>---find initial match + +INDEX + strspn + +ANSI_SYNOPSIS + #include <string.h> + size_t strspn(const char *<[s1]>, const char *<[s2]>); + +TRAD_SYNOPSIS + #include <string.h> + size_t strspn(<[s1]>, <[s2]>) + char *<[s1]>; + char *<[s2]>; + +DESCRIPTION + This function computes the length of the initial segment of + the string pointed to by <[s1]> which consists entirely of + characters from the string pointed to by <[s2]> (excluding the + terminating null character). + +RETURNS + <<strspn>> returns the length of the segment found. + +PORTABILITY +<<strspn>> is ANSI C. + +<<strspn>> requires no supporting OS subroutines. + +QUICKREF + strspn ansi pure +*/ + +#include <string.h> + +size_t +_DEFUN (strspn, (s1, s2), + _CONST char *s1 _AND + _CONST char *s2) +{ + _CONST char *s = s1; + _CONST char *c; + + while (*s1) + { + for (c = s2; *c; c++) + { + if (*s1 == *c) + break; + } + if (*c == '\0') + break; + s1++; + } + + return s1 - s; +} diff --git a/newlib/libc/string/strstr.c b/newlib/libc/string/strstr.c new file mode 100644 index 000000000..dddced3b2 --- /dev/null +++ b/newlib/libc/string/strstr.c @@ -0,0 +1,73 @@ +/* +FUNCTION + <<strstr>>---find string segment + +INDEX + strstr + +ANSI_SYNOPSIS + #include <string.h> + char *strstr(const char *<[s1]>, const char *<[s2]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strstr(<[s1]>, <[s2]>) + char *<[s1]>; + char *<[s2]>; + +DESCRIPTION + Locates the first occurence in the string pointed to by <[s1]> of + the sequence of characters in the string pointed to by <[s2]> + (excluding the terminating null character). + +RETURNS + Returns a pointer to the located string segment, or a null + pointer if the string <[s2]> is not found. If <[s2]> points to + a string with zero length, the <[s1]> is returned. + +PORTABILITY +<<strstr>> is ANSI C. + +<<strstr>> requires no supporting OS subroutines. + +QUICKREF + strstr ansi pure +*/ + +#include <string.h> + +char * +_DEFUN (strstr, (searchee, lookfor), + _CONST char *searchee _AND + _CONST char *lookfor) +{ + if (*searchee == 0) + { + if (*lookfor) + return (char *) NULL; + return (char *) searchee; + } + + while (*searchee) + { + size_t i; + i = 0; + + while (1) + { + if (lookfor[i] == 0) + { + return (char *) searchee; + } + + if (lookfor[i] != searchee[i]) + { + break; + } + i++; + } + searchee++; + } + + return (char *) NULL; +} diff --git a/newlib/libc/string/strtok.c b/newlib/libc/string/strtok.c new file mode 100644 index 000000000..bc11f0df7 --- /dev/null +++ b/newlib/libc/string/strtok.c @@ -0,0 +1,76 @@ +/* +FUNCTION + <<strtok>>---get next token from a string + +INDEX + strtok + +INDEX + strtok_r + +ANSI_SYNOPSIS + #include <string.h> + char *strtok(char *<[source]>, const char *<[delimiters]>) + char *strtok_r(char *<[source]>, const char *<[delimiters]>, + char **<[lasts]>) + +TRAD_SYNOPSIS + #include <string.h> + char *strtok(<[source]>, <[delimiters]>) + char *<[source]>; + char *<[delimiters]>; + + char *strtok_r(<[source]>, <[delimiters]>, <[lasts]>) + char *<[source]>; + char *<[delimiters]>; + char **<[lasts]>; + +DESCRIPTION + The <<strtok>> function is used to isolate sequential tokens in a + null-terminated string, <<*<[source]>>>. These tokens are delimited + in the string by at least one of the characters in <<*<[delimiters]>>>. + The first time that <<strtok>> is called, <<*<[source]>>> should be + specified; subsequent calls, wishing to obtain further tokens from + the same string, should pass a null pointer instead. The separator + string, <<*<[delimiters]>>>, must be supplied each time, and may + change between calls. + + The <<strtok>> function returns a pointer to the beginning of each + subsequent token in the string, after replacing the separator + character itself with a NUL character. When no more tokens remain, + a null pointer is returned. + + The <<strtok_r>> function has the same behavior as <<strtok>>, except + a pointer to placeholder <<*[lasts]>> must be supplied by the caller. + +RETURNS + <<strtok>> returns a pointer to the next token, or <<NULL>> if + no more tokens can be found. + +NOTES + <<strtok>> is unsafe for multi-thread applications. <<strtok_r>> + is MT-Safe and should be used instead. + +PORTABILITY +<<strtok>> is ANSI C. + +<<strtok>> requires no supporting OS subroutines. + +QUICKREF + strtok ansi impure +*/ + +#include <string.h> +#include <_ansi.h> +#include <reent.h> + +#ifndef _REENT_ONLY + +char * +_DEFUN (strtok, (s, delim), + register char *s _AND + register const char *delim) +{ + return strtok_r (s, delim, &(_REENT->_new._reent._strtok_last)); +} +#endif diff --git a/newlib/libc/string/strtok_r.c b/newlib/libc/string/strtok_r.c new file mode 100644 index 000000000..ed323369e --- /dev/null +++ b/newlib/libc/string/strtok_r.c @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1988 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <string.h> + +char * +_DEFUN (strtok_r, (s, delim, lasts), + register char *s _AND + register const char *delim _AND + char **lasts) +{ + register char *spanp; + register int c, sc; + char *tok; + + + if (s == NULL && (s = *lasts) == NULL) + return (NULL); + + /* + * Skip (span) leading delimiters (s += strspn(s, delim), sort of). + */ +cont: + c = *s++; + for (spanp = (char *)delim; (sc = *spanp++) != 0;) { + if (c == sc) + goto cont; + } + + if (c == 0) { /* no non-delimiter characters */ + *lasts = NULL; + return (NULL); + } + tok = s - 1; + + /* + * Scan token (scan for delimiters: s += strcspn(s, delim), sort of). + * Note that delim must have one NUL; we stop if we see that, too. + */ + for (;;) { + c = *s++; + spanp = (char *)delim; + do { + if ((sc = *spanp++) == c) { + if (c == 0) + s = NULL; + else + s[-1] = 0; + *lasts = s; + return (tok); + } + } while (sc != 0); + } + /* NOTREACHED */ +} diff --git a/newlib/libc/string/strupr.c b/newlib/libc/string/strupr.c new file mode 100644 index 000000000..d7f7c129d --- /dev/null +++ b/newlib/libc/string/strupr.c @@ -0,0 +1,49 @@ +/* +FUNCTION + <<strupr>>---force string to uppercase + +INDEX + strupr + +ANSI_SYNOPSIS + #include <string.h> + char *strupr(char *<[a]>); + +TRAD_SYNOPSIS + #include <string.h> + char *strupr(<[a]>) + char *<[a]>; + +DESCRIPTION + <<strupr>> converts each characters in the string at <[a]> to + upper case. + +RETURNS + <<strupr>> returns its argument, <[a]>. + +PORTABILITY +<<strupr>> is not widely portable. + +<<strupr>> requires no supporting OS subroutines. + +QUICKREF + strupr */ + +#include <string.h> +#include <ctype.h> + +char * +strupr (a) + char *a; +{ + char *ret = a; + + while (*a != '\0') + { + if (islower (*a)) + *a = toupper (*a); + ++a; + } + + return ret; +} diff --git a/newlib/libc/string/strxfrm.c b/newlib/libc/string/strxfrm.c new file mode 100644 index 000000000..65ed4f1b1 --- /dev/null +++ b/newlib/libc/string/strxfrm.c @@ -0,0 +1,75 @@ +/* +FUNCTION + <<strxfrm>>---transform string + +INDEX + strxfrm + +ANSI_SYNOPSIS + #include <string.h> + size_t strxfrm(char *<[s1]>, const char *<[s2]>, size_t <[n]>); + +TRAD_SYNOPSIS + #include <string.h> + size_t strxfrm(<[s1]>, <[s2]>, <[n]>); + char *<[s1]>; + char *<[s2]>; + size_t <[n]>; + +DESCRIPTION + This function transforms the string pointed to by <[s2]> and + places the resulting string into the array pointed to by + <[s1]>. The transformation is such that if the <<strcmp>> + function is applied to the two transformed strings, it returns + a value greater than, equal to, or less than zero, + correspoinding to the result of a <<strcoll>> function applied + to the same two original strings. + + No more than <[n]> characters are placed into the resulting + array pointed to by <[s1]>, including the terminating null + character. If <[n]> is zero, <[s1]> may be a null pointer. If + copying takes place between objects that overlap, the behavior + is undefined. + + With a C locale, this function just copies. + +RETURNS + The <<strxfrm>> function returns the length of the transformed string + (not including the terminating null character). If the value returned + is <[n]> or more, the contents of the array pointed to by + <[s1]> are indeterminate. + +PORTABILITY +<<strxfrm>> is ANSI C. + +<<strxfrm>> requires no supporting OS subroutines. + +QUICKREF + strxfrm ansi pure +*/ + +#include <string.h> + +size_t +_DEFUN (strxfrm, (s1, s2, n), + char *s1 _AND + _CONST char *s2 _AND + size_t n) +{ + size_t res; + res = 0; + while (n-- > 0) + { + if ((*s1++ = *s2++) != '\0') + ++res; + else + return res; + } + while (*s2) + { + ++s2; + ++res; + } + + return res; +} diff --git a/newlib/libc/string/u_strerr.c b/newlib/libc/string/u_strerr.c new file mode 100644 index 000000000..fa4605c8b --- /dev/null +++ b/newlib/libc/string/u_strerr.c @@ -0,0 +1,8 @@ +#include <_ansi.h> + +char * +_DEFUN(_user_strerror, (errnum), + int errnum) +{ + return 0; +} diff --git a/newlib/libc/sys.tex b/newlib/libc/sys.tex new file mode 100644 index 000000000..44b608b9c --- /dev/null +++ b/newlib/libc/sys.tex @@ -0,0 +1,436 @@ +@c -*- Texinfo -*- +@node Syscalls +@chapter System Calls + +@cindex linking the C library +The C subroutine library depends on a handful of subroutine calls for +operating system services. If you use the C library on a system that +complies with the POSIX.1 standard (also known as IEEE 1003.1), most of +these subroutines are supplied with your operating system. + +If some of these subroutines are not provided with your system---in +the extreme case, if you are developing software for a ``bare board'' +system, without an OS---you will at least need to provide do-nothing +stubs (or subroutines with minimal functionality) to allow your +programs to link with the subroutines in @code{libc.a}. + +@menu +* Stubs:: Definitions for OS interface +* Reentrant Syscalls:: Reentrant covers for OS subroutines +@end menu + +@node Stubs +@section Definitions for OS interface +@cindex stubs + +@cindex subroutines for OS interface +@cindex OS interface subroutines +This is the complete set of system definitions (primarily subroutines) +required; the examples shown implement the minimal functionality +required to allow @code{libc} to link, and fail gracefully where OS +services are not available. + +Graceful failure is permitted by returning an error code. A minor +complication arises here: the C library must be compatible with +development environments that supply fully functional versions of these +subroutines. Such environments usually return error codes in a global +@code{errno}. However, the Cygnus C library provides a @emph{macro} +definition for @code{errno} in the header file @file{errno.h}, as part +of its support for reentrant routines (@pxref{Reentrancy,,Reentrancy}). + +@cindex @code{errno} global vs macro +The bridge between these two interpretations of @code{errno} is +straightforward: the C library routines with OS interface calls +capture the @code{errno} values returned globally, and record them in +the appropriate field of the reentrancy structure (so that you can query +them using the @code{errno} macro from @file{errno.h}). + +This mechanism becomes visible when you write stub routines for OS +interfaces. You must include @file{errno.h}, then disable the macro, +like this: + +@example +#include <errno.h> +#undef errno +extern int errno; +@end example + +@noindent +The examples in this chapter include this treatment of @code{errno}. + +@ftable @code +@item _exit +Exit a program without cleaning up files. If your system doesn't +provide this, it is best to avoid linking with subroutines that require +it (@code{exit}, @code{system}). + +@item close +Close a file. Minimal implementation: + +@example +int close(int file)@{ + return -1; +@} +@end example + +@item environ +A pointer to a list of environment variables and their values. For a +minimal environment, this empty list is adequate: + +@example +char *__env[1] = @{ 0 @}; +char **environ = __env; +@end example + +@item execve +Transfer control to a new process. Minimal implementation (for a system +without processes): + +@example +#include <errno.h> +#undef errno +extern int errno; +int execve(char *name, char **argv, char **env)@{ + errno=ENOMEM; + return -1; +@} +@end example + +@item fork +Create a new process. Minimal implementation (for a system without processes): + +@example +#include <errno.h> +#undef errno +extern int errno; +int fork() @{ + errno=EAGAIN; + return -1; +@} +@end example + +@item fstat +Status of an open file. For consistency with other minimal +implementations in these examples, all files are regarded as character +special devices. The @file{sys/stat.h} header file required is +distributed in the @file{include} subdirectory for this C library. + +@example +#include <sys/stat.h> +int fstat(int file, struct stat *st) @{ + st->st_mode = S_IFCHR; + return 0; +@} +@end example + +@item getpid +Process-ID; this is sometimes used to generate strings unlikely to +conflict with other processes. Minimal implementation, for a system +without processes: + +@example +int getpid() @{ + return 1; +@} +@end example + +@item isatty +Query whether output stream is a terminal. For consistency with the +other minimal implementations, which only support output to +@code{stdout}, this minimal implementation is suggested: + +@example +int isatty(int file)@{ + return 1; +@} +@end example + +@item kill +Send a signal. Minimal implementation: + +@example +#include <errno.h> +#undef errno +extern int errno; +int kill(int pid, int sig)@{ + errno=EINVAL; + return(-1); +@} +@end example + +@item link +Establish a new name for an existing file. Minimal implementation: + +@example +#include <errno.h> +#undef errno +extern int errno; +int link(char *old, char *new)@{ + errno=EMLINK; + return -1; +@} +@end example + +@item lseek +Set position in a file. Minimal implementation: + +@example +int lseek(int file, int ptr, int dir)@{ + return 0; +@} +@end example + +@c FIXME! Why no stub for open? + +@item read +Read from a file. Minimal implementation: + +@example +int read(int file, char *ptr, int len)@{ + return 0; +@} +@end example + +@item sbrk +Increase program data space. As @code{malloc} and related functions +depend on this, it is useful to have a working implementation. The +following suffices for a standalone system; it exploits the symbol +@code{end} automatically defined by the GNU linker. + +@example +@group +caddr_t sbrk(int incr)@{ + extern char end; /* @r{Defined by the linker} */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) @{ + heap_end = &end; + @} + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + @{ + _write (1, "Heap and stack collision\n", 25); + abort (); + @} + + heap_end += incr; + return (caddr_t) prev_heap_end; +@} +@end group +@end example + +@item stat +Status of a file (by name). Minimal implementation: + +@example +int stat(char *file, struct stat *st) @{ + st->st_mode = S_IFCHR; + return 0; +@} +@end example + +@item times +Timing information for current process. Minimal implementation: + +@example +int times(struct tms *buf)@{ + return -1; +@} +@end example + +@item unlink +Remove a file's directory entry. Minimal implementation: + +@example +#include <errno.h> +#undef errno +extern int errno; +int unlink(char *name)@{ + errno=ENOENT; + return -1; +@} +@end example + +@item wait +Wait for a child process. Minimal implementation: +@example +#include <errno.h> +#undef errno +extern int errno; +int wait(int *status) @{ + errno=ECHILD; + return -1; +@} +@end example + +@item write +Write a character to a file. @file{libc} subroutines will use this +system routine for output to all files, @emph{including} +@code{stdout}---so if you need to generate any output, for example to a +serial port for debugging, you should make your minimal @code{write} +capable of doing this. The following minimal implementation is an +incomplete example; it relies on a @code{writechar} subroutine (not +shown; typically, you must write this in assembler from examples +provided by your hardware manufacturer) to actually perform the output. + +@example +@group +int write(int file, char *ptr, int len)@{ + int todo; + + for (todo = 0; todo < len; todo++) @{ + writechar(*ptr++); + @} + return len; +@} +@end group +@end example + +@end ftable + +@page +@node Reentrant Syscalls +@section Reentrant covers for OS subroutines + +Since the system subroutines are used by other library routines that +require reentrancy, @file{libc.a} provides cover routines (for example, +the reentrant version of @code{fork} is @code{_fork_r}). These cover +routines are consistent with the other reentrant subroutines in this +library, and achieve reentrancy by using a reserved global data block +(@pxref{Reentrancy,,Reentrancy}). + +@c FIXME!!! The following ignored text specifies how this section ought +@c to work; however, both standalone info and Emacs info mode fail when +@c confronted with nodes beginning `_' as of 24may93. Restore when Info +@c readers fixed! +@ignore +@menu +* _open_r:: Reentrant version of open +* _close_r:: Reentrant version of close +* _lseek_r:: Reentrant version of lseek +* _read_r:: Reentrant version of read +* _write_r:: Reentrant version of write +* _link_r:: Reentrant version of link +* _unlink_r:: Reentrant version of unlink +* _stat_r:: Reentrant version of stat +* _fstat_r:: Reentrant version of fstat +* _sbrk_r:: Reentrant version of sbrk +* _fork_r:: Reentrant version of fork +* _wait_r:: Reentrant version of wait +@end menu + +@down +@include reent/filer.def +@include reent/execr.def +@include reent/statr.def +@include reent/fstatr.def +@include reent/linkr.def +@include reent/sbrkr.def +@up +@end ignore + +@ftable @code +@item _open_r +A reentrant version of @code{open}. It takes a pointer +to the global data block, which holds @code{errno}. + +@example +int _open_r(void *@var{reent}, + const char *@var{file}, int @var{flags}, int @var{mode}); +@end example + +@item _close_r +A reentrant version of @code{close}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _close_r(void *@var{reent}, int @var{fd}); +@end example + +@item _lseek_r +A reentrant version of @code{lseek}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +off_t _lseek_r(void *@var{reent}, + int @var{fd}, off_t @var{pos}, int @var{whence}); +@end example + +@item _read_r +A reentrant version of @code{read}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +long _read_r(void *@var{reent}, + int @var{fd}, void *@var{buf}, size_t @var{cnt}); +@end example + +@item _write_r +A reentrant version of @code{write}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +long _write_r(void *@var{reent}, + int @var{fd}, const void *@var{buf}, size_t @var{cnt}); +@end example + +@item _fork_r +A reentrant version of @code{fork}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _fork_r(void *@var{reent}); +@end example + +@item _wait_r +A reentrant version of @code{wait}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _wait_r(void *@var{reent}, int *@var{status}); +@end example + +@item _stat_r +A reentrant version of @code{stat}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _stat_r(void *@var{reent}, + const char *@var{file}, struct stat *@var{pstat}); +@end example + +@item _fstat_r +A reentrant version of @code{fstat}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _fstat_r(void *@var{reent}, + int @var{fd}, struct stat *@var{pstat}); +@end example + +@item _link_r +A reentrant version of @code{link}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _link_r(void *@var{reent}, + const char *@var{old}, const char *@var{new}); +@end example + +@item _unlink_r +A reentrant version of @code{unlink}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +int _unlink_r(void *@var{reent}, const char *@var{file}); +@end example + +@item _sbrk_r +A reentrant version of @code{sbrk}. It takes a pointer to the global +data block, which holds @code{errno}. + +@example +char *_sbrk_r(void *@var{reent}, size_t @var{incr}); +@end example +@end ftable diff --git a/newlib/libc/sys/Makefile.am b/newlib/libc/sys/Makefile.am new file mode 100644 index 000000000..a3c57d101 --- /dev/null +++ b/newlib/libc/sys/Makefile.am @@ -0,0 +1,33 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = $(sys_dir) . + +if HAVE_SYS_DIR +SYSLIB = lib.a +endif + +noinst_LIBRARIES = $(SYSLIB) +noinst_DATA = $(CRT0) + +lib.a: $(sys_dir)/lib.a + rm -f $@ + ln $(sys_dir)/lib.a $@ >/dev/null 2>/dev/null \ + || cp $(sys_dir)/lib.a $@ + +$(sys_dir)/lib.a: ; @true + +crt0.o: $(sys_dir)/crt0.o + rm -f $@ + ln $(sys_dir)/crt0.o $@ >/dev/null 2>/dev/null \ + || cp $(sys_dir)/crt0.o $@ + +$(sys_dir)/crt0.o: ; @true + +CLEANFILES = crt0.o + +doc: + +ACLOCAL_AMFLAGS = -I ../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/Makefile.in b/newlib/libc/sys/Makefile.in new file mode 100644 index 000000000..122b208b1 --- /dev/null +++ b/newlib/libc/sys/Makefile.in @@ -0,0 +1,415 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +SUBDIRS = $(sys_dir) . + +@HAVE_SYS_DIR_TRUE@SYSLIB = \ +@HAVE_SYS_DIR_TRUE@lib.a + +noinst_LIBRARIES = $(SYSLIB) +noinst_DATA = $(CRT0) + +CLEANFILES = crt0.o + +ACLOCAL_AMFLAGS = -I ../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_SOURCES = lib.a.c +lib_a_OBJECTS = lib.a.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DATA = $(noinst_DATA) + +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = lib.a.c +OBJECTS = lib.a.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ../../acinclude.m4 \ + ../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done +info-am: +info: info-recursive +dvi-am: +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) $(DATA) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-data-recursive \ +uninstall-data-recursive install-exec-recursive \ +uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \ +all-recursive check-recursive installcheck-recursive info-recursive \ +dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +lib.a: $(sys_dir)/lib.a + rm -f $@ + ln $(sys_dir)/lib.a $@ >/dev/null 2>/dev/null \ + || cp $(sys_dir)/lib.a $@ + +$(sys_dir)/lib.a: ; @true + +crt0.o: $(sys_dir)/crt0.o + rm -f $@ + ln $(sys_dir)/crt0.o $@ >/dev/null 2>/dev/null \ + || cp $(sys_dir)/crt0.o $@ + +$(sys_dir)/crt0.o: ; @true + +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/a29khif/Makefile.am b/newlib/libc/sys/a29khif/Makefile.am new file mode 100644 index 000000000..48f389695 --- /dev/null +++ b/newlib/libc/sys/a29khif/Makefile.am @@ -0,0 +1,48 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _alloc.s \ + _close.s \ + _cycles.s \ + _exit.s \ + _getpsiz.s \ + _gettz.s \ + _ioctl.s \ + _iostat.s \ + _iowait.s \ + _lseek.s \ + _open.s \ + _query.s \ + _read.s \ + _setim.s \ + _settrap.s \ + _setvec.s \ + _tmpnam.s \ + _write.s \ + alloc.s \ + clock.s \ + getargs.s \ + getenv.s \ + read.s \ + remove.s \ + rename.s \ + signal.s \ + _sbrk.s \ + _fstat.s \ + _isatty.s \ + systime.s \ + vec.s \ + kill.c \ + getpid.c \ + stubs.s + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/a29khif/Makefile.in b/newlib/libc/sys/a29khif/Makefile.in new file mode 100644 index 000000000..027a83098 --- /dev/null +++ b/newlib/libc/sys/a29khif/Makefile.in @@ -0,0 +1,337 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _alloc.s \ + _close.s \ + _cycles.s \ + _exit.s \ + _getpsiz.s \ + _gettz.s \ + _ioctl.s \ + _iostat.s \ + _iowait.s \ + _lseek.s \ + _open.s \ + _query.s \ + _read.s \ + _setim.s \ + _settrap.s \ + _setvec.s \ + _tmpnam.s \ + _write.s \ + alloc.s \ + clock.s \ + getargs.s \ + getenv.s \ + read.s \ + remove.s \ + rename.s \ + signal.s \ + _sbrk.s \ + _fstat.s \ + _isatty.s \ + systime.s \ + vec.s \ + kill.c \ + getpid.c \ + stubs.s + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = _alloc.o _close.o _cycles.o _exit.o _getpsiz.o _gettz.o \ +_ioctl.o _iostat.o _iowait.o _lseek.o _open.o _query.o _read.o _setim.o \ +_settrap.o _setvec.o _tmpnam.o _write.o alloc.o clock.o getargs.o \ +getenv.o read.o remove.o rename.o signal.o _sbrk.o _fstat.o _isatty.o \ +systime.o vec.o kill.o getpid.o stubs.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/a29khif/_alloc.s b/newlib/libc/sys/a29khif/_alloc.s new file mode 100644 index 000000000..ecdd1ddb1 --- /dev/null +++ b/newlib/libc/sys/a29khif/_alloc.s @@ -0,0 +1,55 @@ +; @(#)_alloc.s 1.4 90/10/14 21:57:19, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; 07/06/89 (JS) Replaced call to const tav,HIF_macro @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 to syscall macro, +; and deleted call to reterr macro as a NULL needs to be +; returned on failure. +; _alloc.s +; void *vp = _sysalloc( int size ); +; + .file "_alloc.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __sysalloc +__sysalloc: + const tav,HIF_alloc @ asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + const v0, 0 ; return NULL on error. + +; +; int errret = _sysfree( void *addr, int size ); +; + .global __sysfree +__sysfree: + const tav,HIF_free @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_close.s b/newlib/libc/sys/a29khif/_close.s new file mode 100644 index 000000000..04f52ae00 --- /dev/null +++ b/newlib/libc/sys/a29khif/_close.s @@ -0,0 +1,40 @@ +; @(#)_close.s 1.4 90/10/14 21:57:20, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc.; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _close.s +; int cc = _close( int fd ); +; + .file "_close.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __close +;; syscalls used now -- .global _close + +__close: +;; syscalls used now -- _close: + const tav,HIF_close @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_cycles.s b/newlib/libc/sys/a29khif/_cycles.s new file mode 100644 index 000000000..94f9df3b4 --- /dev/null +++ b/newlib/libc/sys/a29khif/_cycles.s @@ -0,0 +1,39 @@ +; @(#)_cycles.s 1.2 90/10/14 21:57:21, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _cycles.s +; struct { unsigned long low_ticks, long hi_ticks } = _cycles( ); +; + .file "_cycles.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __cycles + +__cycles: + const tav,HIF_cycles @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_exit.s b/newlib/libc/sys/a29khif/_exit.s new file mode 100644 index 000000000..65b9b83e3 --- /dev/null +++ b/newlib/libc/sys/a29khif/_exit.s @@ -0,0 +1,39 @@ +; @(#)_exit.s 1.2 90/10/14 21:57:22, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _exit.s +; _exit( int rc ); +; + .file "_exit.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __exit + +__exit: + const tav,HIF_exit @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_fstat.s b/newlib/libc/sys/a29khif/_fstat.s new file mode 100644 index 000000000..0144d76d9 --- /dev/null +++ b/newlib/libc/sys/a29khif/_fstat.s @@ -0,0 +1,79 @@ + .file "_fstat.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __fstat +;; syscalls used now -- .global _fstat + .word 0x40000 +__fstat: +;; syscalls used now -- _fstat: + sub gr1,gr1,32 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,48 + sll lr5,lr10,0 + const gr116,__iostat + consth gr116,__iostat + calli lr0,gr116 + sll lr2,lr5,0 + sll lr10,gr96,0 + jmpt lr10,L8 + sll gr116,lr10,30 + jmpf gr116,L3 + add gr116,lr11,12 + add gr117,lr11,12 + const gr116,4096 + store 0,0,gr116,gr117 + add gr117,lr11,4 + const gr116,1 + jmp L4 + store 0,0,gr116,gr117 +L3: + const gr117,8192 + store 0,0,gr117,gr116 + add gr116,lr11,4 + store 0,0,gr117,gr116 +L4: + add gr117,lr11,20 + const gr116,0 + store 0,0,gr116,gr117 + store 0,0,gr116,lr11 + const gr116,_time + consth gr116,_time + calli lr0,gr116 + const lr2,0 + add gr116,lr11,16 + store 0,0,gr96,gr116 + sll lr2,lr5,0 + const lr3,0 + const lr7,__lseek + consth lr7,__lseek + calli lr0,lr7 + const lr4,1 + sll lr10,gr96,0 + constn lr6,65535 + cpneq gr116,lr10,lr6 + jmpf gr116,L7 + sll lr2,lr5,0 + const lr3,0 + calli lr0,lr7 + const lr4,2 + add gr116,lr11,8 + store 0,0,gr96,gr116 + cpneq gr96,gr96,lr6 + jmpf gr96,L7 + sll lr2,lr5,0 + sll lr3,lr10,0 + calli lr0,lr7 + const lr4,0 + cpneq gr96,gr96,lr6 + jmpt gr96,L8 + const gr96,0 +L7: + constn gr96,65535 +L8: + add gr1,gr1,32 + nop + jmpi lr0 + asleu V_FILL,lr1,gr127 + diff --git a/newlib/libc/sys/a29khif/_getpsiz.s b/newlib/libc/sys/a29khif/_getpsiz.s new file mode 100644 index 000000000..b9949a003 --- /dev/null +++ b/newlib/libc/sys/a29khif/_getpsiz.s @@ -0,0 +1,38 @@ +; @(#)_getpsiz.s 1.2 90/10/14 21:57:23, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _getpsiz.s +; int size = _getpsiz( ); +; + .file "_getpsiz.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __getpsiz + +__getpsiz: + const tav,HIF_getpagesize @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end diff --git a/newlib/libc/sys/a29khif/_gettz.s b/newlib/libc/sys/a29khif/_gettz.s new file mode 100644 index 000000000..36cf1c702 --- /dev/null +++ b/newlib/libc/sys/a29khif/_gettz.s @@ -0,0 +1,39 @@ +; @(#)_gettz.s 2.2 90/10/14 21:57:24, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _gettz.s +; _gettz( void ); +; + .file "_gettz.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __gettz + +__gettz: + const tav,HIF_gettz @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_ioctl.s b/newlib/libc/sys/a29khif/_ioctl.s new file mode 100644 index 000000000..0ca51c504 --- /dev/null +++ b/newlib/libc/sys/a29khif/_ioctl.s @@ -0,0 +1,39 @@ +; @(#)_ioctl.s 1.2 90/10/14 21:57:25, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _ioctl.s +; _ioctl( int fd ); +; + .file "_ioctl.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __ioctl + +__ioctl: + const tav,HIF_ioctl @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_iostat.s b/newlib/libc/sys/a29khif/_iostat.s new file mode 100644 index 000000000..ae97c5de5 --- /dev/null +++ b/newlib/libc/sys/a29khif/_iostat.s @@ -0,0 +1,43 @@ +;---------------------------------------------------------------------------- +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _iostat.s +; _iostat( int fd ); +; + .file "_iostat.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __iostat + .global _iostat + +__iostat: +_iostat: + const tav,HIF_iostat @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end + diff --git a/newlib/libc/sys/a29khif/_iowait.s b/newlib/libc/sys/a29khif/_iowait.s new file mode 100644 index 000000000..3e2ad61cd --- /dev/null +++ b/newlib/libc/sys/a29khif/_iowait.s @@ -0,0 +1,39 @@ +; @(#)_iowait.s 1.3 90/10/14 21:57:27, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _iowait.s +; _iowait( int fd ); +; + .file "_iowait.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __iowait + +__iowait: + const tav,HIF_iowait @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_isatty.s b/newlib/libc/sys/a29khif/_isatty.s new file mode 100644 index 000000000..55110e2fc --- /dev/null +++ b/newlib/libc/sys/a29khif/_isatty.s @@ -0,0 +1,22 @@ + .file "isatty.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __isatty + .global _isatty + .word 0x30000 +__isatty: +_isatty: + sub gr1,gr1,16 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,28 + const gr116,__iostat + consth gr116,__iostat + calli lr0,gr116 + sll lr2,lr6,0 + sll gr96,gr96,30 + add gr1,gr1,16 + srl gr96,gr96,31 + jmpi lr0 + asleu V_FILL,lr1,gr127 diff --git a/newlib/libc/sys/a29khif/_lseek.s b/newlib/libc/sys/a29khif/_lseek.s new file mode 100644 index 000000000..56a7fc6c9 --- /dev/null +++ b/newlib/libc/sys/a29khif/_lseek.s @@ -0,0 +1,42 @@ +; @(#)_lseek.s 1.4 90/10/14 21:57:28, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _lseek.s +; int cc = _lseek( int fd, long offset, int whence ); +; + .file "_lseek.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __lseek +;; syscalls used now -- .global _lseek + + +__lseek: +;; syscalls used now -- _lseek: + const tav,HIF_lseek @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_open.s b/newlib/libc/sys/a29khif/_open.s new file mode 100644 index 000000000..3a9ed7e61 --- /dev/null +++ b/newlib/libc/sys/a29khif/_open.s @@ -0,0 +1,39 @@ +; @(#)_open.s 1.4 90/10/14 21:57:30, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _open.s +; int fd = _open( char *path, int oflag [, int mode ] ); +; + .file "_open.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __open + +__open: + const tav,HIF_open @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_query.s b/newlib/libc/sys/a29khif/_query.s new file mode 100644 index 000000000..6887bea93 --- /dev/null +++ b/newlib/libc/sys/a29khif/_query.s @@ -0,0 +1,39 @@ +; @(#)_query.s 2.2 90/10/14 21:57:31, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _query.s +; _query( query_code ); +; + .file "_query.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __query + +__query: + const tav,HIF_query @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_read.s b/newlib/libc/sys/a29khif/_read.s new file mode 100644 index 000000000..23ebbe732 --- /dev/null +++ b/newlib/libc/sys/a29khif/_read.s @@ -0,0 +1,38 @@ +; @(#)_read.s 1.4 90/10/14 21:57:32, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _read.s +; int nread = _read( int fd, char *buf, int count ); +; + .file "_read.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __read + +__read: + const tav,HIF_read @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end diff --git a/newlib/libc/sys/a29khif/_sbrk.s b/newlib/libc/sys/a29khif/_sbrk.s new file mode 100644 index 000000000..33c1269cd --- /dev/null +++ b/newlib/libc/sys/a29khif/_sbrk.s @@ -0,0 +1,30 @@ + .file "sbrk.c" + .sect .lit,lit +gcc2_compiled.: + .text + .align 4 + .global __sbrk + .word 0x30000 +__sbrk: + sub gr1,gr1,16 + asgeu V_SPILL,gr1,gr126 + add lr1,gr1,28 + sll lr2,lr6,0 + jmpt lr2,L4 + constn gr96,65535 + const gr116,__sysalloc + consth gr116,__sysalloc + calli lr0,gr116 + nop + sll gr117,gr96,0 + cpneq gr116,gr117,0 + jmpf gr116,L4 + constn gr96,65535 + sll gr96,gr117,0 +L4: + add gr1,gr1,16 + nop + jmpi lr0 + asleu V_FILL,lr1,gr127 + + diff --git a/newlib/libc/sys/a29khif/_setim.s b/newlib/libc/sys/a29khif/_setim.s new file mode 100644 index 000000000..0cf86aeda --- /dev/null +++ b/newlib/libc/sys/a29khif/_setim.s @@ -0,0 +1,39 @@ +; @(#)_setim.s 2.2 90/10/14 21:57:33, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _setim.s +; _setim( im, di ); +; + .file "_setim.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __setim + +__setim: + const tav,HIF_setim @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_settrap.s b/newlib/libc/sys/a29khif/_settrap.s new file mode 100644 index 000000000..259097288 --- /dev/null +++ b/newlib/libc/sys/a29khif/_settrap.s @@ -0,0 +1,39 @@ +; @(#)_settrap.s 2.2 90/10/14 21:57:34, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _settrap.s +; void *prevaddr = _settrap( int trapno, void *trapaddr ); +; + .file "_settrap.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __settrap + +__settrap: + const tav,HIF_settrap @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_setvec.s b/newlib/libc/sys/a29khif/_setvec.s new file mode 100644 index 000000000..09d4076f5 --- /dev/null +++ b/newlib/libc/sys/a29khif/_setvec.s @@ -0,0 +1,38 @@ +; @(#)_setvec.s 1.2 90/10/14 21:57:35, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _setvec.s +; int success = _setvec( int trap_no, void (*handler)( void ) ); +; + .file "_setvec.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global __setvec + +__setvec: + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end diff --git a/newlib/libc/sys/a29khif/_tmpnam.s b/newlib/libc/sys/a29khif/_tmpnam.s new file mode 100644 index 000000000..c7795e27a --- /dev/null +++ b/newlib/libc/sys/a29khif/_tmpnam.s @@ -0,0 +1,41 @@ +; @(#)_tmpnam.s 1.2 90/10/14 21:57:36, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _tmpnam.s +; char *cp = _khif_tmpnam( char *bufr ); +; /* same as ANSI tmpnam(), but NULL arg is not allowed */ +; NOTE - Will not work on BSD (no tmpnam sys call) +; + .file "_tmpnam.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __khif_tmpnam + +__khif_tmpnam: + const tav,HIF_tmpnam @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/_write.s b/newlib/libc/sys/a29khif/_write.s new file mode 100644 index 000000000..21c0e5815 --- /dev/null +++ b/newlib/libc/sys/a29khif/_write.s @@ -0,0 +1,40 @@ +; @(#)_write.s 1.4 90/10/14 21:57:37, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _write.s +; int written = _write( int fd, char *buf, int count ); +; + .file "_write.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __write +;; syscalls used now -- .global _write + +__write: +;; syscalls used now -- _write: + const tav,HIF_write @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end diff --git a/newlib/libc/sys/a29khif/aclocal.m4 b/newlib/libc/sys/a29khif/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/a29khif/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/a29khif/alloc.s b/newlib/libc/sys/a29khif/alloc.s new file mode 100644 index 000000000..cd90022a5 --- /dev/null +++ b/newlib/libc/sys/a29khif/alloc.s @@ -0,0 +1,64 @@ +; +;(#)_alloc.s 1.4 90/10/14 21:57:19, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; 07/06/89 (JS) Replaced call to const tav,HIF_macro +; and deleted call to reterr macro as a NULL needs to be +; returned on failure. +; _alloc.s +; void *vp = _sysalloc( int size ); +; + .file "_alloc.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global __sysalloc +__sysalloc: + const tav,HIF_alloc + asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + const v0, 0 ; return NULL on error. + +; +; int errret = _sysfree( void *addr, int size ); +; + .global __sysfree +__sysfree: + const tav,HIF_free + asneq V_SYSCALL,gr1,gr1 + jmpti tav,lr0 + const tpc,_errno + consth tpc,_errno + store 0,0,tav,tpc + jmpi lr0 + constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/clock.s b/newlib/libc/sys/a29khif/clock.s new file mode 100644 index 000000000..5cb26dff0 --- /dev/null +++ b/newlib/libc/sys/a29khif/clock.s @@ -0,0 +1,41 @@ +; @(#)clock.s 1.3 90/10/14 21:57:43, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; clock.s +; long ticks = clock( ); +; + .file "clock.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global _clock + .global __clock + +_clock: +__clock: + const tav,HIF_clock @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/configure b/newlib/libc/sys/a29khif/configure new file mode 100755 index 000000000..0279884f6 --- /dev/null +++ b/newlib/libc/sys/a29khif/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=_alloc.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/a29khif/configure.in b/newlib/libc/sys/a29khif/configure.in new file mode 100644 index 000000000..de247d3d3 --- /dev/null +++ b/newlib/libc/sys/a29khif/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/a29khif configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(_alloc.s) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/a29khif/crt0.s b/newlib/libc/sys/a29khif/crt0.s new file mode 100644 index 000000000..8ae79f898 --- /dev/null +++ b/newlib/libc/sys/a29khif/crt0.s @@ -0,0 +1,226 @@ +; @(#)crt0.s 2.7 90/10/15 13:17:57, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .file "crt0.s" +; crt0.s version 2.1-7 +; +; This module gets control from the OS. +; It saves away the Am29027 Mode register settings and +; then sets up the pointers to the resident spill and fill +; trap handlers. It then establishes argv and argc for passing +; to main. It then calls _main. If main returns, it calls _exit. +; +; void = start( ); +; NOTE - not C callable (no lead underscore) +; + .include "sys/sysmac.h" +; +; + .extern V_SPILL, V_FILL + .comm __29027Mode, 8 ; A shadow of the mode register + .comm __LibInit, 4 + .comm __environ, 4 ; Environment variables, currently none. + .text + .extern _main, _exit + .extern _memset + + .word 0 ; Terminating tag word + .global start +start: + sub gr1, gr1, 6 * 4 + asgeu V_SPILL, gr1, rab ; better not ever happen + add lr1, gr1, 6 * 4 +; +; Initialize the .bss section to zero by using the memset library function. +; The .bss initialization section below has been commented out as it breaks +; XRAY29K that has been released. The operators sizeof and startof create +; new sections that are not recognized by XRAY29k, but will be implemented +; in the next release (2.0). +; +; const lr4, $sizeof(.bss) ; get size of .bss section to zero out +; consth lr4, $sizeof(.bss) +; const lr2, $startof(.bss) ; Get start address of .bss section +; consth lr2, $startof(.bss) +; const lr0, _memset ; address of memset function +; consth lr0, _memset +; calli lr0, lr0 ; call memset function +; const lr3, 0 + +; Save the initial value of the Am29027's Mode register +; If your const tav,HIF_does @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 not enter crt0 with value for Am29027's Mode register +; in gr96 and gr97, and also if the coprocessor is active uncomment the +; next 4 lines. +; const gr96, 0xfc00820 +; consth gr96, 0xfc00820 +; const gr97, 0x1375 +; store 1, 3, gr96, gr97 +; + const gr98, __29027Mode + consth gr98, __29027Mode + store 0, 0, gr96, gr98 + add gr98, gr98, 4 + store 0, 0, gr97, gr98 +; +; Now call the const tav,HIF_to @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 setup the spill and fill trap handlers +; + const lr3, spill + consth lr3, spill + const lr2, V_SPILL + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 + const lr3, fill + consth lr3, fill + const lr2, V_FILL + const tav,HIF_setvec @ asneq V_SYSCALL,gr1,gr1 +; +; Set up dividu handler, since native one don't work?! +; Set it up by hand (FIXME) since HIF_settrap doesn't work either! +; +; const lr3,Edividu +; consth lr3,Edividu +; +; const lr2,35 +; const tav,HIF_settrap @ asneq V_SYSCALL,gr1,gr1 +; asge 0x50,gr121,0 ; check whether it failed +; const lr2,0x8000008c ; abs addr of dividu trap handler on EB +; consth lr2,0x8000008c +; store 0,0,lr3,lr2 ; Clobber vector FIXME + +; +; Get the argv base address and calculate argc. +; + const tav,HIF_getargs @ asneq V_SYSCALL,gr1,gr1 + add lr3, v0, 0 ; argv + add lr4, v0, 0 + constn lr2, -1 +argcloop: ; scan for NULL terminator + load 0, 0, gr97, lr4 + add lr4, lr4, 4 + cpeq gr97, gr97, 0 + jmpf gr97, argcloop + add lr2, lr2, 1 +; +; Now call LibInit, if there is one. To aid runtime libraries +; that need to do some startup initialization, we have created +; a bss variable called LibInit. If the library doesn't need +; any run-time initialization, the variable is still 0. If the +; library does need run-time initialization, the library will +; contain a definition like +; void (*_LibInit)(void) = LibInitFunction; +; The linker will match up our bss LibInit with this data LibInit +; and the variable will not be 0. +; + const lr0, __LibInit + consth lr0, __LibInit + load 0, 0, lr0, lr0 + cpeq gr96, lr0, 0 + jmpt gr96, NoLibInit + nop + calli lr0, lr0 + nop +NoLibInit: +; +; call main, passing it 2 arguments. main( argc, argv ) +; + const lr0, _main + consth lr0, _main + calli lr0, lr0 + nop +; +; call exit +; + const lr0, _exit + consth lr0, _exit + calli lr0, lr0 + add lr2, gr96, 0 +; +; Should never get here, but just in case +; +loop: + const tav,HIF_exit @ asneq V_SYSCALL,gr1,gr1 + jmp loop + nop + .sbttl "Spill and Fill trap handlers" + .eject +; +; SPILL, FILL trap handlers +; +; Note that these Spill and Fill trap handlers allow the OS to +; assume that the only registers of use are between gr1 and rfb. +; Therefore, if the OS desires to, it may simply preserve from +; lr0 for (rfb-gr1)/4 registers when doing a context save. +; +; +; Here is the spill handler +; +; spill registers from [*gr1..*rab) +; and move rab downto where gr1 points +; +; rab must change before rfb for signals to work +; +; On entry: rfb - rab = windowsize, gr1 < rab +; Near the end: rfb - rab > windowsize, gr1 == rab +; On exit: rfb - rab = windowsize, gr1 == rab +; + .global spill +spill: + sub tav, rab, gr1 ; tav = number of bytes to spill + srl tav, tav, 2 ; change byte count to word count + sub tav, tav, 1 ; make count zero based + mtsr cr, tav ; set Count Remaining register + sub tav, rab, gr1 + sub tav, rfb, tav ; pull down free bound and save it in rab + add rab, gr1, 0 ; first pull down allocate bound + storem 0, 0, lr0, tav ; store lr0..lr(tav) into rfb + jmpi tpc ; return... + add rfb, tav, 0 +; +; Here is the fill handler +; +; fill registers from [*rfb..*lr1) +; and move rfb upto where lr1 points. +; +; rab must change before rfb for signals to work +; +; On entry: rfb - rab = windowsize, lr1 > rfb +; Near the end: rfb - rab < windowsize, lr1 == rab + windowsize +; On exit: rfb - rab = windowsize, lr1 == rfb +; + .global fill +fill: + const tav, 0x80 << 2 + or tav, tav, rfb ; tav = ((rfb>>2) | 0x80)<<2 == [rfb]<<2 + mtsr ipa, tav ; ipa = [rfb]<<2 == 1st reg to fill + ; gr0 is now the first reg to spill + sub tav, lr1, rfb ; tav = number of bytes to spill + add rab, rab, tav ; push up allocate bound + srl tav, tav, 2 ; change byte count to word count + sub tav, tav, 1 ; make count zero based + mtsr cr, tav ; set Count Remaining register + loadm 0, 0, gr0, rfb ; load registers + jmpi tpc ; return... + add rfb, lr1, 0 ; ... first pushing up free bound + + .end diff --git a/newlib/libc/sys/a29khif/getargs.s b/newlib/libc/sys/a29khif/getargs.s new file mode 100644 index 000000000..aa1f9c442 --- /dev/null +++ b/newlib/libc/sys/a29khif/getargs.s @@ -0,0 +1,38 @@ +; @(#)getargs.s 1.2 90/10/14 21:57:44, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _getargs.s +; void _getargs( void ); +; + .file "_getargs.s" + .include "sys/sysmac.h" + .text + .word 0x00020000 ; Debugger tag word + .global __getargs + +__getargs: + const tav,HIF_getargs @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .end diff --git a/newlib/libc/sys/a29khif/getenv.s b/newlib/libc/sys/a29khif/getenv.s new file mode 100644 index 000000000..4351849a0 --- /dev/null +++ b/newlib/libc/sys/a29khif/getenv.s @@ -0,0 +1,48 @@ +; @(#)getenv.s 1.4 90/10/14 21:57:45, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; getenv.s +; char *value = getenv( const char *name ); +; + .file "getenv.s" + + .include "sys/sysmac.h" + + .text + .word 0x00030000 ; Debugger tag word + .global _getenv + .global __getenv +_getenv: +__getenv: + const tav,HIF_getenv @ asneq V_SYSCALL,gr1,gr1 ; HIF service trap + jmpti tav, lr0 ; If tav is true, were finished, return. + const tpc, _errno + consth tpc, _errno ; Otherwise, + store 0, 0, tav, tpc ; store error code in _errno, + jmpi lr0 ; then return + const v0, 0 ; with a value of 0 (NULL pointer). + + .end diff --git a/newlib/libc/sys/a29khif/getpid.c b/newlib/libc/sys/a29khif/getpid.c new file mode 100644 index 000000000..99d88bd39 --- /dev/null +++ b/newlib/libc/sys/a29khif/getpid.c @@ -0,0 +1,12 @@ +/* Stub for getpid. */ + +#include <_ansi.h> + +/* This should really return pid_t, but that doesn't seem to be in + <sys/types.h>. */ + +int +_DEFUN_VOID (_getpid) +{ + return 1; +} diff --git a/newlib/libc/sys/a29khif/kill.c b/newlib/libc/sys/a29khif/kill.c new file mode 100644 index 000000000..ff9fe5428 --- /dev/null +++ b/newlib/libc/sys/a29khif/kill.c @@ -0,0 +1,21 @@ +/* Stub for kill. */ + +#include <_ansi.h> +#include <errno.h> + +/* The pid argument should be of type pid_t. */ + +int +_DEFUN (_kill, (pid, sig), + int pid _AND + int sig) +{ + if (pid == 1 || pid < 0) + { + if (sig == 0) + return 0; + return raise (sig); + } + errno = EINVAL; + return -1; +} diff --git a/newlib/libc/sys/a29khif/read.s b/newlib/libc/sys/a29khif/read.s new file mode 100644 index 000000000..1a5daf301 --- /dev/null +++ b/newlib/libc/sys/a29khif/read.s @@ -0,0 +1,54 @@ +; @(#)_read.s 1.4 90/10/14 21:57:32, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _read.s +; int nread = _read( int fd, char *buf, int count ); +; + .file "_read.s" + .include "sys/sysmac.h" + .text + .word 0x00050000 ; Debugger tag word + .global __read +;; syscalls used now -- .global _read + +__read: +;; syscalls used now -- _read: + .ifdef _BSD_OS +; BSD version - uses readv const tav,HIF_call @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + sub msp, msp, 8 + store 0, 0, lr3, msp + add tav, msp, 4 + add lr3, msp, 0 + store 0, 0, lr4, tav + const lr4, 1 + const tav,HIF_readv @ asneq V_SYSCALL,gr1,gr1 + jmpti tav, lr0 + add msp, msp, 8 + const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .else + const tav,HIF_read @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + .endif + .end diff --git a/newlib/libc/sys/a29khif/remove.s b/newlib/libc/sys/a29khif/remove.s new file mode 100644 index 000000000..948be04c2 --- /dev/null +++ b/newlib/libc/sys/a29khif/remove.s @@ -0,0 +1,43 @@ +; @(#)remove.s 1.3 90/10/14 21:57:53, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; remove.s +; int cc = remove( char *path ); +; + .file "remove.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global _remove + .global __remove + .global __unlink + +_remove: +__remove: +__unlink: + const tav,HIF_remove @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/rename.s b/newlib/libc/sys/a29khif/rename.s new file mode 100644 index 000000000..31da614e3 --- /dev/null +++ b/newlib/libc/sys/a29khif/rename.s @@ -0,0 +1,41 @@ +; @(#)rename.s 1.3 90/10/14 21:57:54, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; rename.s +; int cc = rename( char *from, char *to ); +; + .file "rename.s" + .include "sys/sysmac.h" + .text + .word 0x00040000 ; Debugger tag word + .global _rename + .global __rename + +_rename: +__rename: + const tav,HIF_rename @ asneq V_SYSCALL,gr1,gr1 @ jmpti tav,lr0 @ const tpc,_errno @ consth tpc,_errno @ store 0,0,tav,tpc @ jmpi lr0 @ constn v0,-1 + + .end diff --git a/newlib/libc/sys/a29khif/signal.s b/newlib/libc/sys/a29khif/signal.s new file mode 100644 index 000000000..29273a0d3 --- /dev/null +++ b/newlib/libc/sys/a29khif/signal.s @@ -0,0 +1,452 @@ +;@(#)signal.s 2.15 90/10/14 21:57:55, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .file "signal.s" + +; SigEntry is the address of an array of C-level user code signal handlers. +; They must return to the top-level before doing a sigret() return function. +; Nested signals are supported. + + .extern V_SPILL, V_FILL + .extern fill ; In crt0.s + + .align 4 + .comm WindowSize, 4 + .data +SigEntry: + .word 0 ; reserved + .word 0 ; adds. of #2 SIGINT handler + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; reserved + .word 0 ; adds. of #8 SIGFPE handler + + .text + + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + + .reg tav, gr121 + .reg tpc, gr122 + .reg lrp, gr123 + .reg slp, gr124 + .reg msp, gr125 + .reg rab, gr126 + .reg rfb, gr127 + +;=================================================================== setjmp() +; int +; setjmp(label_t jmpbuf) +; { +; *jmpbuf = {gr1, msp, lr0, lr1}; +; return 0; +; } +; + .global _setjmp +_setjmp: + store 0, 0, gr1, lr2 + add lr2, lr2, 4 + store 0, 0, msp, lr2 + add lr2, lr2, 4 + store 0, 0, lr0, lr2 + add lr2, lr2, 4 + store 0, 0, lr1, lr2 + jmpi lr0 + const v0, 0 +; +;==================================================================== longjmp() +; int +; longjmp(label_t jmpbuf, int value) +; { +; /* BUG: check for this +; if (msp > jmpbuf->msp || gr1 > jmpbuf->gr1) +; longjmperror(); +; */ +; +; gr1 = jmpbuf->gr1; +; lr2addr = jmpbuf->gr1 + 8; +; msp = jmpbuf->msp; +; +; /* saved lr1 is invalid if saved lr2addr > rfb */ +; if (lr2addr > rfb) { +; /* +; * None of the registers are useful. +; * Set rfb to lr2addr - 512 & rab to rfb - 512. +; * the FILL assert will take care of filling +; */ +; lr1 = jmpbuf->lr1; +; rab = lr2addr - windowsize; +; rfb = lr2addr; +; } +; +; lr0 = jmpbuf->lr0; +; if (rfb < lr1) +; raise V_FILL; +; return value; +; } +; + .global _longjmp +_longjmp: + load 0, 0, tav, lr2 ; copy in gr1 + add v1, lr2, 4 ; v1 points to msp + ; make sure we return a non-zero value + cpeq v0, lr3, 0 + srl v0, v0, 31 + or v0, lr3, v0 + + add gr1, tav, 0 ; now update gr1 + add tav, tav, 8 ; calculate lr2addr + load 0, 0, msp, v1 ; update msp from jmpbuf + cpleu v3, tav, rfb ; if (lr2addr > rfb) + jmpt v3, $1 ; { + add v1, v1, 4 ; v1 points to lr0 + add v2, v1, 4 ; v2 points to lr1 + load 0, 0, lr1, v2 ; lr1 = value from jmpbuf + sub v3, rfb, rab ; + sub rab, tav, v3 ; rab = lr2addr - windowsize + add rfb, tav, 0 ; rfb = lr2addr +$1: ; } + load 0, 0, lr0, v1 + jmpi lr0 + asgeu V_FILL, rfb, lr1 ; may fill from rfb to lr1 +; +;================================================================== sigcode +; About to deliver a signal to a user mode signal handler. +; msp+(15*4) = signal_number +; msp+(14*4) = gr1 +; msp+(13*4) = rab +; msp+(12*4) = PC0 +; msp+(11*4) = PC1 +; msp+(10*4) = PC2 +; msp+( 9*4) = CHA +; msp+( 8*4) = CHD +; msp+( 7*4) = CHC +; msp+( 6*4) = ALU +; msp+( 5*4) = OPS +; msp+( 4*4) = gr121 +; msp+( 3*4) = gr99 +; msp+( 2*4) = gr98 +; msp+( 1*4) = gr97 +; msp = gr96 +; The state of all the registers (except for msp, chc and rab) +; is the same as when the process was interrupted. +; +; We must make the stack and window consistent before calling the handler +; The orignal rab value is on the stack. The interrupt handler placed +; rfb-Windowsize in rab. This is required to support nested interrupts. +; +; Note that the window becomes incosistent only during certain +; critical sections in spill, fill, longjmp and sigcode. +; rfb - rab > windowsize => we are in spill +; rfb - rab < windowsize => we are in fill +; gr1 + 8 > rfb => we are in long-longjmp case +; In case of spill, fill and lonjmp; rab is modified first, +; so if we are in one of these critical sections, +; we set rab to rfb - WINDOWSIZE. +; + .equ SIGCTX_SIZE, (16)*4 + .equ SIGCTX_SIGNUMB, (15)*4 + .equ SIGCTX_GR1_OFFSET, (14)*4 + .equ SIGCTX_RAB_OFFSET, (13)*4 + .equ SIGCTX_PC0_OFFSET, (12)*4 + .equ SIGCTX_PC1_OFFSET, (11)*4 + .equ SIGCTX_PC2_OFFSET, (10)*4 + .equ SIGCTX_CHC_OFFSET, (7)*4 + .equ SIGCTX_OPS_OFFSET, (5)*4 + .equ SIGCTX_TAV_OFFSET, (4)*4 + .global sigcode +sigcode: +; -------------------------------------------------------- R-Stack fixup + const v0, WindowSize ; get register cache size + consth v0, WindowSize + load 0, 0, v0, v0 + add v2, msp, SIGCTX_RAB_OFFSET + load 0, 0, v2, v2 ; get interrupted rab value + sub v1, rfb, v2 ; determine if rfb-rab <= WINDOW_SIZE + cpgeu v1, v1, v0 ; + jmpt v1, nfill ; jmp if spill or 'normal' interrupt + add v1, gr1, 8 + cpgt v1, v1, rfb ; interrupted longjmp can look like fill + jmpf v1, nfill ; test for long-longjmp interruption + nop ; jmp if gr1+8 <= rfb +; Fixup signal stack to re-start interrupted fill +; backup pc1 -- this is needed for the partial fill case. +; Clear chc so an interrupted load/store does not restart. +; Reset rab to a window distance below rfb, rab shall be +; decremented again on re-starting the interrupted fill. +; The interrupt handler set rab=rfb-WindowSize. +; + add v0, msp, SIGCTX_RAB_OFFSET + store 0, 0, rab, v0 ; re-store (rfb-WindowSize) for rab + const v2, fill + consth v2, fill + add v0, msp, SIGCTX_PC1_OFFSET + store 0, 0, v2, v0 + sub v2, v2, 4 ; determine pc0 + add v0, msp, SIGCTX_PC0_OFFSET + store 0, 0, v2, v0 + const v2, 0 ; clear chc + add v0, msp, SIGCTX_CHC_OFFSET + store 0, 0, v2, v0 + +nfill: + cpgt v0, gr1, rfb ; if gr1 > rfb then gr1 = rfb + jmpt v0, lower + cplt v0, gr1, rab ; if gr1 < rab then gr1 = rab + jmpt v0, raise + nop +; -------------------------------------------------------- save_regs +sig1: sub msp, msp, (4+2+25)*4 ; reserve space for regs + mfsr gr96, ipc + mfsr gr97, ipa + mfsr gr98, ipb + mfsr gr99, q + mtsrim cr, 4-1 + storem 0, 0, gr96, msp +; "push" registers stack support + add gr96, lr1, 0 + add gr97, rfb, 0 + mtsrim cr, 2-1 + add gr99, msp, 2*4 + storem 0, 0, gr96, gr99 +; "push" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + storem 0, 0, gr100, gr96 +; +; -------------------------------------------------------- Dummy Call + .equ RALLOC, 4*4 ; make space for function calls + add v0, rfb, 0 ; store original rfb + sub gr1, gr1, RALLOC + asgeu V_SPILL, gr1, rab + add lr1, v0, 0 ; set lr1 = original rfb + add v1, msp, (4+2+25)*4 + SIGCTX_SIGNUMB + load 0, 0, lr2, v1 ; restore signal number + sub v1, lr2, 1 ; get handler index + sll v1, v1, 2 ; point to addresses +; +; -------------------------------------------------------- call C-level +; Handler must not use HIF services other than the _sigret() type. + const v0, SigEntry + consth v0, SigEntry + add v0, v0, v1 + load 0, 0, v0, v0 ; determine if handler registered + cpeq v1, v0, 0 + jmpt v1, NoHandler + nop + calli lr0, v0 ; call C-level signal handler + nop +; +; -------------------------------------------------------- default return +NoHandler: + jmp __sigdfl + nop + +; -------------------------------------------------------- support bits +lower: sll gr1, rfb, 0 + jmp sig1 + nop +raise: sll gr1, rab, 0 + jmp sig1 + nop +/* +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr Q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair +*/ + +; ======================================================== _sigret() + .global __sigret +__sigret: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 323 ; HIF _sigret + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigdfl() + .global __sigdfl +__sigdfl: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 322 ; HIF _sigdfl + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigrep() +__sigrep: + .global __sigrep +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 324 ; HIF _sigrep + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sigskp() + .global __sigskp +__sigskp: +; repair_regs +; -------------------------------------------------------- repair_regs + mtsrim cr, 4-1 + loadm 0, 0, gr96, msp + mtsr ipc, gr96 + mtsr ipa, gr97 + mtsr ipb, gr98 + mtsr q, gr99 +; "pop" registers stack support + mtsrim cr, 2-1 + add gr99, msp, 2*4 + loadm 0, 0, gr96, gr99 + add lr1, gr96, 0 + add rfb, gr97, 0 +; "pop" remaining global registers + mtsrim cr, 25-1 ; gr100-gr124 + add gr96, msp, (4+2)*4 + loadm 0, 0, gr100, gr96 + add msp, msp, (4+2+25)*4 ; repair msp to save_regs entry value +; -------------------------------------------------------- end repair + const tav, 325 ; HIF _sigskp + asneq 69, gr1,gr1 + halt ; commit suicide if returns + +; ======================================================== _sendsig() +; lr2 = signal number + .global _raise + .global __sendsig +_raise: +__sendsig: + const tav, 326 ; HIF sendsig + asneq 69, gr1,gr1 + jmpi lr0 + nop + +; +; ======================================================== signal() +; lr2 = signal number +; lr3 = handler address + .global _signal +_signal: +; the memory variable WindowSize must be initalised at the +; start when rfb and rab are a window size apart. + const v0, WindowSize ; get register cache size + consth v0, WindowSize + load 0, 0, v1, v0 + cpeq v1, v1, 0 + jmpf v1, WindowSizeOK + sub v1, rfb, rab ; rfb-rab = WINDOW_SIZE + store 0, 0, v1, v0 +WindowSizeOK: + const v1, SigEntry + consth v1, SigEntry + sub v3, lr2, 1 ; get handler index + sll v3, v3, 2 ; pointer to addresses + add v1, v1, v3 + store 0,0, lr3, v1 ; save new handler + + const lr2, sigcode + consth lr2, sigcode + ;Fall through to __signal +; ======================================================== _signal() + .global __signal +__signal: + const tav, 321 ; HIF signal + asneq 69, gr1,gr1 + jmpi lr0 + nop diff --git a/newlib/libc/sys/a29khif/stubs.s b/newlib/libc/sys/a29khif/stubs.s new file mode 100644 index 000000000..e0b29bc77 --- /dev/null +++ b/newlib/libc/sys/a29khif/stubs.s @@ -0,0 +1,135 @@ +; +; +; File of stubs so that unix applications can link into a HIF monitor +; +; sac@cygnus.com + + .text + + .global _sysalloc +_sysalloc: + const gr121,__sysalloc + consth gr121,__sysalloc + jmpi gr121 + + .global _sysfree +_sysfree: + const gr121,__sysfree + consth gr121,__sysfree + jmpi gr121 + + + .global _cycles +_cycles: + const gr121,__cycles + consth gr121,__cycles + jmpi gr121 + +; .global _exit +;_exit: +; const gr121,__exit +; consth gr121,__exit +; jmpi gr121 + + .global _getpsiz +_getpsiz: + const gr121,__getpsiz + consth gr121,__getpsiz + jmpi gr121 + + .global _gettz +_gettz: + const gr121,__gettz + consth gr121,__gettz + jmpi gr121 + + .global _ioctl +_ioctl: + const gr121,__ioctl + consth gr121,__ioctl + jmpi gr121 + + + .global _iowait +_iowait: + const gr121,__iowait + consth gr121,__iowait + jmpi gr121 + + +;; syscalls used now -- .global _open +;; syscalls used now -- _open: +;; syscalls used now -- const gr121,__open +;; syscalls used now -- consth gr121,__open +;; syscalls used now -- jmpi gr121 + + .global _query +_query: + const gr121,__query + consth gr121,__query + jmpi gr121 + + + .global _setim +_setim: + const gr121,__setim + consth gr121,__setim + jmpi gr121 + + .global _settrap +_settrap: + const gr121,__settrap + consth gr121,__settrap + jmpi gr121 + + .global _setvec +_setvec: + const gr121,__setvec + consth gr121,__setvec + jmpi gr121 + + .global _getargs +_getargs: + const gr121,__getargs + consth gr121,__getargs + jmpi gr121 + +;; syscalls used now -- .global _unlink +;; syscalls used now -- _unlink: +;; syscalls used now -- const gr121,__unlink +;; syscalls used now -- consth gr121,__unlink +;; syscalls used now -- jmpi gr121 + + .global _sigret +_sigret: + const gr121,__sigret + consth gr121,__sigret + jmpi gr121 + + .global _sigdfl +_sigdfl: + const gr121,__sigdfl + consth gr121,__sigdfl + jmpi gr121 + + .global _sigrep +_sigrep: + const gr121,__sigrep + consth gr121,__sigrep + jmpi gr121 + + .global _sigskp +_sigskp: + const gr121,__sigskp + consth gr121,__sigskp + jmpi gr121 + + .global _sendsig +_sendsig: + const gr121,__sendsig + consth gr121,__sendsig + jmpi gr121 + + ; fill this jmpi delay slot + ; the others are not done since they do not matter + constn lr0,-1 diff --git a/newlib/libc/sys/a29khif/sys/cpudef.h b/newlib/libc/sys/a29khif/sys/cpudef.h new file mode 100644 index 000000000..4ec6ed39c --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/cpudef.h @@ -0,0 +1,270 @@ +; @(#)cpudef.h 2.3 90/10/14 20:55:56, Copyright 1989, 1990 AMD +;----------------------------------------------------------------------- +; Useful equates +;----------------------------------------------------------------------- +; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + ; Processor status registers OPS (sr1) and CPS (sr2) + .equ CA,0x8000 ; Coprocessor active + .equ IP,0x4000 ; Interrupt pending + .equ TE,0x2000 ; Trace enable + .equ TP,0x1000 ; Trace pending + .equ TU,0x0800 ; Trap unaligned access + .equ FZ,0x0400 ; Freeze + .equ LK,0x0200 ; Lock + .equ RE,0x0100 ; ROM enable + .equ WM,0x0080 ; Wait mode + .equ PD,0x0040 ; No translation for Data + .equ PI,0x0020 ; No translation for Instr + .equ SM,0x0010 ; Supervisor mode + .equ IM,0x000C ; Interrupt mask + .equ IM1,0x0100 ; enable INTR0-1 + .equ IM2,0x1000 ; enable INTR0-2 + .equ IM3,0x1100 ; enable INTR0-3 + .equ DI,0x0002 ; Disable ints + .equ DA,0x0001 ; Disable ints and traps + + ; Configuration register CFG (sr3) + .equ PRL,0xFF000000 ; Processor release level + .equ VF,0x10 ; Vector fetch + .equ RV,0x08 ; ROM Vector area + .equ BO,0x04 ; Byte order + .equ CP,0x02 ; Coprocessor present + .equ CD,0x01 ; BTC disable + + ; Channel control register CHC (sr6) + .equ LS,0x8000 ; Load store + .equ ML,0x4000 ; Multiple operation + .equ ST,0x2000 ; Set + .equ LA,0x1000 ; Lock active + .equ TF,0x0400 ; Transaction faulted + .equ TR,0x03FC ; Target register + .equ NN,0x0002 ; Not needed + .equ CV,0x0001 ; Contents valid + + ; Timer reload register TMR (sr9) + .equ IE,0x01000000 ; timer int enable + .equ IN,0x02000000 ; timer int pending + .equ OV,0x04000000 ; timer Overflow + + ; MMU configuration register MMU (sr13) + .equ PS,0x300 ; Page size + .equ PID,0xFF ; Process identifier + + ; ALU status register ALU (sr132) + .equ DF,0x800 ; Divide flag + .equ V,0x400 ; Overflow + .equ N,0x200 ; Negative + .equ Z,0x100 ; Zero + .equ C,0x080 ; Carry + + ; TLB entry + .equ VTAG,0xFFFF8000 ; Virtual tag + .equ VE,0x4000 ; Valid entry + .equ SR,0x2000 ; Supervisor read + .equ SW,0x1000 ; Supervisor write + .equ SE,0x0800 ; Supervisor execute + .equ UR,0x0400 ; User read + .equ UW,0x0200 ; User write + .equ UE,0x0100 ; User execute + .equ TID,0x00FF ; Task identifier + .equ RPN,0xFFFFFC00 ; Real page number + .equ PGM,0x00C0 ; User programmable + .equ U,0x0002 ; Usage + .equ F,0x0001 ; Flag + +;----------------------------------------------------------------------- +;Global registers +;----------------------------------------------------------------------- + + .reg rsp, gr1 ; local register stack pointer + + ; System-wide statics + .reg s0, gr64 + .reg spillreg, s0 ; pointer to user spill handler + .reg s1, gr65 + .reg fillreg, s1 ; pointer to user fill handler + .reg s2, gr66 + .reg heapptr, s2 ; pointer to heap area + .reg s3, gr67 + .reg s4, gr68 + .reg s5, gr69 + .reg s6, gr70 + .reg s7, gr71 + .reg s8, gr72 + .reg s9, gr73 + .reg s10, gr74 + .reg s11, gr75 + .reg s12, gr76 + .reg s13, gr77 + .reg s14, gr78 + .reg s15, gr79 + + ; Interrupt handler temporaries + .reg i0, gr80 + .reg i1, gr81 + .reg i2, gr82 + .reg i3, gr83 + .reg i4, gr84 + .reg i5, gr85 + .reg i6, gr86 + .reg i7, gr87 + .reg i8, gr88 + .reg i9, gr89 + .reg i10, gr90 + .reg i11, gr91 + .reg i12, gr92 + .reg i13, gr93 + .reg i14, gr94 + .reg i15, gr95 + + ; Subroutine/function temporaries + ; also used for function return values + .reg t0, gr96 + .reg rtn, t0 + .reg t1, gr97 + .reg t2, gr98 + .reg t3, gr99 + .reg t4, gr100 + .reg t5, gr101 + .reg t6, gr102 + .reg t7, gr103 + .reg t8, gr104 + .reg t9, gr105 + .reg t10, gr106 + .reg t11, gr107 + .reg t12, gr108 + .reg t13, gr109 + .reg t14, gr110 + .reg t15, gr111 + + ; User process statics + .reg u0, gr112 + .reg u1, gr113 + .reg u2, gr114 + .reg u3, gr115 + + ; More subroutine/function temporaries + .reg t16, gr116 + .reg t17, gr117 + .reg t18, gr118 + .reg t19, gr119 + .reg t20, gr120 + + ; Older names for the same registers + .reg tmp0, gr116 + .reg tmp1, gr117 + .reg tmp2, gr118 + .reg tmp3, gr119 + .reg tmp4, gr120 + + ; Trap handler temporaries + .reg tav, gr121 ; arg/temp + .reg tpc, gr122 ; rtn/temp + + ; Linkage pointers + .reg lrp, gr123 ; large rtn ptr + .reg slp, gr124 ; static link ptr + .reg msp, gr125 ; memory stack ptr + .reg rab, gr126 ; register allocate bound + .reg rfb, gr127 ; register free bound + +;----------------------------------------------------------------------- +;Local compiler registers +; (only valid if frame has been established) +;----------------------------------------------------------------------- + + .reg p15, lr17 ; outgoing arg 16 + .reg p14, lr16 ; outgoing arg 15 + .reg p13, lr15 ; outgoing arg 14 + .reg p12, lr14 ; outgoing arg 13 + .reg p11, lr13 ; outgoing arg 12 + .reg p10, lr12 ; outgoing arg 11 + .reg p9, lr11 ; outgoing arg 10 + .reg p8, lr10 ; outgoing arg 9 + .reg p7, lr9 ; outgoing arg 8 + .reg p6, lr8 ; outgoing arg 7 + .reg p5, lr7 ; outgoing arg 6 + .reg p4, lr6 ; outgoing arg 5 + .reg p3, lr5 ; outgoing arg 4 + .reg p2, lr4 ; outgoing arg 3 + .reg p1, lr3 ; outgoing arg 2 + .reg p0, lr2 ; outgoing arg 1 + .reg fp, lr1 ; frame pointer + .reg raddr, lr0 ; return address + +;----------------------------------------------------------------------- +; Vectors +;----------------------------------------------------------------------- + + .equ V_ILLEG, 0 ; Illegal opcode + .equ V_ALIGN, 1 ; Unaligned access + .equ V_RANGE, 2 ; Out of range + .equ V_COPRE, 3 ; Coprocessor not present + .equ V_COEXC, 4 ; Coprocessor exception + .equ V_PROT, 5 ; Protection violation + .equ V_INSTR, 6 ; Instruction access exception + .equ V_DATA, 7 ; Data access exception + .equ V_UITLB, 8 ; User-mode instruction TLB miss + .equ V_UDTLB, 9 ; User-mode data TLB miss + .equ V_SITLB, 10 ; Supervisor-mode instr TLB miss + .equ V_SDTLB, 11 ; Supervisor-mode data TLB miss + .equ V_ITLB, 12 ; Instruction TLB violation + .equ V_DTLB, 13 ; Data TLB violation + .equ V_TIMER, 14 ; Timer + .equ V_TRACE, 15 ; Trace + .equ V_INTR0, 16 ; Interrupt 0 + .equ V_INTR1, 17 ; Interrupt 1 + .equ V_INTR2, 18 ; Interrupt 2 + .equ V_INTR3, 19 ; Interrupt 3 + .equ V_TRAP0, 20 ; Trap 0 + .equ V_TRAP1, 21 ; Trap 1 + +;----------------------------------------------------------------------- +;constants for LOAD and STORE operations +;----------------------------------------------------------------------- + +; CE operand values + .equ CE, 0b1 ;coprocessor enable + .equ ME, 0b0 ; memory enable + +; CNTL operand values + .equ IO, 0b1000000 ;set for I/O + .equ PA, 0b0100000 ;force physical addr + .equ SB, 0b0010000 ;set for set BP + .equ UA, 0b0001000 ;force user mode access + .equ ROM, 0b0000100 ;ROM access + .equ HWORD, 0b0000010 ;Half word access + .equ BYTE, 0b0000001 ;Byte access + .equ WORD, 0b0000000 ;Word access + +;----------------------------------------------------------------------- +; stack alignment value +;----------------------------------------------------------------------- + .equ STKALIGN, 8 ; double word align + diff --git a/newlib/libc/sys/a29khif/sys/fpsymbol.h b/newlib/libc/sys/a29khif/sys/fpsymbol.h new file mode 100644 index 000000000..3fc6ac88b --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/fpsymbol.h @@ -0,0 +1,2970 @@ +; @(#)fpsymbol.h 1.4 90/10/14 20:55:59, Copyright 1989, 1990 AMD +; start of fpsymbol.h file +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE INSTRUCTION WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; Revision Information: +;------------------------------------------------------------------------ +; Date: March 31, 1989 +; Author: Roy Carlson per Bob Perlman and Richard Relph +; +; The symbols section describing transactions was modified to contain +; several new symbol values. The reason for the change was to force the +; CA bit to be set--and remain set--once code accesses the coprocessor. +; +; Future operating systems will use the Coprocessor Active (CA) bit in +; the Old Processor Status Register to determine whether or not to save +; coprocessor state, etc.. This means that the instruction control field +; Set Coprocessor Active (SA) bit should be used as follows: +; +; (1) any coprocessor STORE must have its SA bit set to 1, +; so as to set CA, +; +; and (2) any coprocessor LOAD must have its SA bit set to 0, +; so as to prevent clearing CA. +;------------------------------------------------------------------------ +; Date: 89/01/30 12:32:13; author: jim; lines added/del: 5/4 +; Corrected CP_IEEE_GRADUAL_UFLOW_MODE and CP_RMS_MASK. +; Added CP_EXCPS_POSITION, the ls bit of the CP_XXX_EXCP ensemble. +; fixed a few typos in comments. +;------------------------------------------------------------------------ +; Date: 89/01/23 18:00:26; author: jim; lines added/del: 488/468 +; Richard O. Parker +; January 5, 1989 +; +; 1) The _cp_prec_field in the "cp_build_inst", "cp_build_inst_h" +; and "cp_build_inst_l" macros was not being defined in the case +; of Am29K-supported floating-point instructions (e.g., FADD, FSUB, +; DADD, etc.). +; +; 2) The multiplexor select codes in the opcode table entries +; associated with the "cp_build_inst", "cp_build_inst_h" and +; "cp_build_inst_l" macros, pertaining to the CONVERT_F_TO_D +; and CONVERT_D_TO_F instructions were incorrect. +;------------------------------------------------------------------------ +; Date: 88/12/20 14:28:26; author: jim; lines added/del: 1/1 +; Larry Westerman corrected definition of CP_MOVE_P. +; Version required for Release 1.1 of the Intrinsics shipped 12/12/88. +;------------------------------------------------------------------------ +; Date: 88/11/18 15:44:45; author: law; +; Initial revision +; +; +;======================================================================== +; +; The following mnemonics are used to specify the 14 LSBs of the +; instruction word (fields SIP, SIQ, SIT, SIF, IF, and CO). +; +;======================================================================== +; +; floating point operation codes. +; + .equ CP_PASS_P, 0x00000000 ; pass P + .equ CP_MINUSP, 0x00000040 ; -P + .equ CP_ABSP, 0x00000080 ; |P| + .equ CP_SIGNT_TIMES_ABSP, 0x00000C00 ; SIGN(T) * |P| +; + .equ CP_P_PLUS_T, 0x00000001 ; P + T + .equ CP_P_MINUS_T, 0x00000101 ; P - T + .equ CP_MINUSP_PLUS_T, 0x00001001 ; -P + T + .equ CP_MINUSP_MINUS_T, 0x00001101 ; -P - T + .equ CP_ABS_P_PLUS_T, 0x00000081 ; |P + T| + .equ CP_ABS_P_MINUS_T, 0x00000181 ; |P - T| + .equ CP_ABSP_PLUS_ABST, 0x00002201 ; |P| + |T| + .equ CP_ABSP_MINUS_ABST, 0x00002301 ; |P| - |T| + .equ CP_ABS_ABSP_MINUS_ABST, 0x00002381 ; ||P| - |T|| +; + .equ CP_P_TIMES_Q, 0x00000002 ; P * Q + .equ CP_MINUSP_TIMES_Q, 0x00001002 ; -P * Q + .equ CP_ABS_P_TIMES_Q, 0x00000082 ; |P * Q| +; + .equ CP_COMPARE_P_AND_T, 0x00000103 ; compare P and T +; + .equ CP_MAX_P_AND_T, 0x00000104 ; max P,T + .equ CP_MAX_ABSP_AND_ABST, 0x00002304 ; max |P|, |T| +; + .equ CP_MIN_P_AND_T, 0x00001005 ; min P,T + .equ CP_MIN_ABSP_AND_ABST, 0x00003205 ; min |P|,|T| + .equ CP_LIMIT_P_TO_MAGT, 0x00003A05 ; limit P to magnitude of T +; + .equ CP_CONVERT_T_TO_INT, 0x00000006 ; convert T to integer +; + .equ CP_SCALE_T_TO_INT_BY_Q, 0x00000007 ; scale T to integer by Q +; + .equ CP_PQ_PLUS_T, 0x00000008 ; (P * Q) + T + .equ CP_MINUSPQ_PLUS_T, 0x00001008 ; (-P * Q) + T + .equ CP_PQ_MINUS_T, 0x00000108 ; (P * Q) - T + .equ CP_MINUSPQ_MINUS_T, 0x00001108 ; (-P * Q) - T + .equ CP_ABSPQ_PLUS_ABST, 0x00002A08 ; |(P * Q)| + T + .equ CP_MINUSABSPQ_PLUS_ABST, 0x00003A08 ;-|(P * Q)| + T + .equ CP_ABSPQ_MINUS_ABST, 0x00002B08 ; |(P * Q)| - |T| +; + .equ CP_ROUND_T_TO_INT, 0x00000009 ; round T to integral value +; + .equ CP_RECIPROCAL_OF_P, 0x0000000A ; reciprocal of P +; + .equ CP_CONVERT_T_TO_ALT, 0x0000000B ; convert T to alt. f.p. format + .equ CP_CONVERT_T_FROM_ALT, 0x0000000C ; convert T to alt. f.p. format +; +; +; integer operation codes. +; + .equ CP_I_PASS_P, 0x00000020 ; integer pass P + .equ CP_I_MINUSP, 0x00000060 ; integer -P + .equ CP_I_ABSP, 0x000000A0 ; integer |P| + .equ CP_I_SIGNT_TIMES_ABSP, 0x00000C20 ; integer SIGN(T) * |P| +; + .equ CP_I_P_PLUS_T, 0x00000021 ; integer P + T + .equ CP_I_P_MINUS_T, 0x00000121 ; integer P - T + .equ CP_I_MINUSP_PLUS_T, 0x00001021 ; integer -P + T + .equ CP_I_ABS_P_PLUS_T, 0x000000A1 ; integer |P + T| + .equ CP_I_ABS_P_MINUS_T, 0x000001A1 ; integer |P - T| +; + .equ CP_I_P_TIMES_Q, 0x00000022 ; integer P * Q +; + .equ CP_I_COMPARE_P_AND_T, 0x00000123 ; integer compare P and T +; + .equ CP_I_MAX_P_AND_T, 0x00000124 ; integer max P,T +; + .equ CP_I_MIN_P_AND_T, 0x00001025 ; integer min P,T +; + .equ CP_I_CONVERT_T_TO_FLOAT, 0x00000026 ; integer convert T to f.p. +; + .equ CP_I_SCALE_T_TO_FLOAT_BY_Q, 0x00000027 ; integer scale T to f.p. by Q +; + .equ CP_I_P_OR_T, 0x00000030 ; integer P OR T +; + .equ CP_I_P_AND_T, 0x00000031 ; integer P AND T +; + .equ CP_I_P_XOR_T, 0x00000032 ; integer P XOR T +; + .equ CP_I_NOT_T, 0x00000032 ; integer NOT T +; + .equ CP_I_LSHIFT_P_BY_Q, 0x00000033 ; integer logical shift P by Q +; places +; + .equ CP_I_ASHIFT_P_BY_Q, 0x00000034 ; integer arith. shift P by Q +; places +; + .equ CP_I_FSHIFT_PT_BY_Q, 0x00000035 ; integer funnel shift PT by Q +; places +; +; +; move instruction (f.p. or integer) +; + .equ CP_MOVE_P, 0x00000018 ; move operand P +; +; +;======================================================================== +; +; precision codes for the the operands in registers R and S, and for +; the result (instruction word fields IPR, RPR). +; +;======================================================================== +; +; + .equ CP_D_S, 0x00008000 ;Double result, single input(s) + .equ CP_S_D, 0x00004000 ;Single result, double input(s) + .equ CP_D_D, 0x00000000 ;Double result, double input(s) + .equ CP_S_S, 0x0000C000 ;Single result, single input(s) +; +;======================================================================== +; +; The following mnemonics are used to specify the 16 LSBs of an Am29027 +; instruction word for floating-point instructions supported by the +; Am29000 instruction set. +; +;======================================================================== +; + .equ CP_FADD, 0x0000C001 + .equ CP_DADD, 0x00000001 + .equ CP_FSUB, 0x0000C101 + .equ CP_DSUB, 0x00000101 + .equ CP_FMUL, 0x0000C002 + .equ CP_DMUL, 0x00000002 + .equ CP_FEQ, 0x0000C103 + .equ CP_DEQ, 0x00000103 + .equ CP_FGE, 0x0000C103 + .equ CP_DGE, 0x00000103 + .equ CP_FGT, 0x0000C103 + .equ CP_DGT, 0x00000103 + .equ CP_CONVERT_I_TO_F, 0x0000C026 ; CONVERT (int -> s.p.) + .equ CP_CONVERT_I_TO_D, 0x00008026 ; CONVERT (int -> d.p.) + .equ CP_CONVERT_F_TO_I, 0x0000C006 ; CONVERT (s.p.-> int) + .equ CP_CONVERT_D_TO_I, 0x00004006 ; CONVERT (d.p.-> int) + .equ CP_CONVERT_F_TO_D, 0x00008000 ; CONVERT (s.p.-> d.p.) + .equ CP_CONVERT_D_TO_F, 0x00004000 ; CONVERT (d.p.-> s.p.) +; +; +;======================================================================== +; +; operand select codes (instruction word fields PMS, QMS, TMS). +; +;======================================================================== +; +; + .equ CP_P_EQ_R, 0x00000000 + .equ CP_P_EQ_S, 0x01000000 + .equ CP_P_EQ_0, 0x02000000 + .equ CP_P_EQ_ONE_HALF, 0x03000000 + .equ CP_P_EQ_IMINUS1, 0x03000000 + .equ CP_P_EQ_1, 0x04000000 + .equ CP_P_EQ_2, 0x05000000 + .equ CP_P_EQ_3, 0x06000000 + .equ CP_P_EQ_PI, 0x07000000 + .equ CP_P_EQ_IMINUSMAX, 0x07000000 + .equ CP_P_EQ_RF0, 0x08000000 + .equ CP_P_EQ_RF1, 0x09000000 + .equ CP_P_EQ_RF2, 0x0A000000 + .equ CP_P_EQ_RF3, 0x0B000000 + .equ CP_P_EQ_RF4, 0x0C000000 + .equ CP_P_EQ_RF5, 0x0D000000 + .equ CP_P_EQ_RF6, 0x0E000000 + .equ CP_P_EQ_RF7, 0x0F000000 +; + .equ CP_Q_EQ_R, 0x00000000 + .equ CP_Q_EQ_S, 0x00100000 + .equ CP_Q_EQ_0, 0x00200000 + .equ CP_Q_EQ_ONE_HALF, 0x00300000 + .equ CP_Q_EQ_IMINUS1, 0x00300000 + .equ CP_Q_EQ_1, 0x00400000 + .equ CP_Q_EQ_2, 0x00500000 + .equ CP_Q_EQ_3, 0x00600000 + .equ CP_Q_EQ_PI, 0x00700000 + .equ CP_Q_EQ_IMINUSMAX, 0x00700000 + .equ CP_Q_EQ_RF0, 0x00800000 + .equ CP_Q_EQ_RF1, 0x00900000 + .equ CP_Q_EQ_RF2, 0x00A00000 + .equ CP_Q_EQ_RF3, 0x00B00000 + .equ CP_Q_EQ_RF4, 0x00C00000 + .equ CP_Q_EQ_RF5, 0x00D00000 + .equ CP_Q_EQ_RF6, 0x00E00000 + .equ CP_Q_EQ_RF7, 0x00F00000 +; + .equ CP_T_EQ_R, 0x00000000 + .equ CP_T_EQ_S, 0x00010000 + .equ CP_T_EQ_0, 0x00020000 + .equ CP_T_EQ_ONE_HALF, 0x00030000 + .equ CP_T_EQ_IMINUS1, 0x00030000 + .equ CP_T_EQ_1, 0x00040000 + .equ CP_T_EQ_2, 0x00050000 + .equ CP_T_EQ_3, 0x00060000 + .equ CP_T_EQ_PI, 0x00070000 + .equ CP_T_EQ_IMINUSMAX, 0x00070000 + .equ CP_T_EQ_RF0, 0x00080000 + .equ CP_T_EQ_RF1, 0x00090000 + .equ CP_T_EQ_RF2, 0x000A0000 + .equ CP_T_EQ_RF3, 0x000B0000 + .equ CP_T_EQ_RF4, 0x000C0000 + .equ CP_T_EQ_RF5, 0x000D0000 + .equ CP_T_EQ_RF6, 0x000E0000 + .equ CP_T_EQ_RF7, 0x000F0000 +; +; +;======================================================================== +; +; destination select codes (instruction word fields RF, RFS) +; +;======================================================================== +; +; + .equ CP_DEST_EQ_GP, 0x00000000 + .equ CP_DEST_EQ_RF0, 0x80000000 + .equ CP_DEST_EQ_RF1, 0x90000000 + .equ CP_DEST_EQ_RF2, 0xA0000000 + .equ CP_DEST_EQ_RF3, 0xB0000000 + .equ CP_DEST_EQ_RF4, 0xC0000000 + .equ CP_DEST_EQ_RF5, 0xD0000000 + .equ CP_DEST_EQ_RF6, 0xE0000000 + .equ CP_DEST_EQ_RF7, 0xF0000000 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE MODE REGISTER DOUBLE WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; + .equ CP_PFF_MASK, 0x00000003 ; primary f.p. format mask + .equ CP_PFF_EQ_IEEE, 0x00000000 ; primary f.p. format = IEEE + .equ CP_PFF_EQ_DECD, 0x00000001 ; primary f.p. format = DEC D + .equ CP_PFF_EQ_DECG, 0x00000002 ; primary f.p. format = DEC G + .equ CP_PFF_EQ_IBM, 0x00000003 ; primary f.p. format = IBM + .equ CP_PFF_POSITION, 0 +; + .equ CP_AFF_MASK, 0x0000000C ; alternate f.p. format mask + .equ CP_AFF_EQ_IEEE, 0x00000000 ; alternate f.p. format = IEEE + .equ CP_AFF_EQ_DECD, 0x00000004 ; alternate f.p. format = DEC D + .equ CP_AFF_EQ_DECG, 0x00000008 ; alternate f.p. format = DEC G + .equ CP_AFF_EQ_IBM, 0x0000000C ; alternate f.p. format = IBM + .equ CP_AFF_POSITION, 2 +; + .equ CP_SAT_MASK, 0x00000010 ; saturate mode (SAT) mask + .equ CP_SATURATE_MODE, 0x00000010 ; enable saturate mode (SAT=1) + .equ CP_SAT_POSITION, 4 +; + .equ CP_AP_MASK, 0x00000020 ; affine/proj. mode (AP) mask + .equ CP_AFFINE_MODE, 0x00000020 ; enable affine mode (AP=1) + .equ CP_PROJECTIVE_MODE, 0x00000000 ; enable projective mode (AP=0) + .equ CP_AP_POSITION, 5 +; + .equ CP_TRP_MASK, 0x00000040 ; IEEE trap mode (TRP) mask + .equ CP_IEEE_TRAPS_ENABLED, 0x00000040 ; IEEE trap mode enabled (TRP=1) + .equ CP_IEEE_TRAPS_DISABLED, 0x00000000 ; IEEE trap mode disabled (TRP=0) + .equ CP_TRP_POSITION, 6 +; + .equ CP_SU_MASK, 0x00000080 ; IEEE sud. uflow (SU) mask + .equ CP_IEEE_SUDDEN_UFLOW_MODE, 0x00000080 ; IEEE sud. uflow mode (SU=1) + .equ CP_IEEE_GRADUAL_UFLOW_MODE,0x00000000 ; IEEE grad uflow mode (SU=0) + .equ CP_SU_POSITION, 7 +; + .equ CP_BS_MASK, 0x00000100 ; IBM sig. mask (BS) + .equ CP_BS_POSITION, 8 +; + .equ CP_BU_MASK, 0x00000200 ; IBM underflow mask (BU) + .equ CP_BU_POSITION, 9 +; + .equ CP_MS_MASK, 0x00000800 ; signed int. mpy (MS) mask + .equ CP_SIGNED_INT_MPY_MODE, 0x00000800 ; signed int. mpy mode (MS=1) + .equ CP_UNSIGNED_INT_MPY_MODE, 0x00000000 ; unsigned int. mpy mode (MS=0) + .equ CP_MS_POSITION, 11 +; + .equ CP_MF_MASK, 0x00003000 ; int. mult. fmt. mode (MF) mask + .equ CP_MF_EQ_LSBS, 0x00000000 ; int. mult. fmt. = LSBs + .equ CP_MF_EQ_LSBSFA, 0x00001000 ; int. mult. fmt. = LSBs,fmt. adj. + .equ CP_MF_EQ_MSBS, 0x00002000 ; int. mult. fmt. = MSBs + .equ CP_MF_EQ_MSBSFA, 0x00003000 ; int. mult. fmt. = MSBs,fmt. adj. + .equ CP_MF_POSITION, 12 +; + .equ CP_RMS_MASK, 0x0001C000 ; round mode (RMS) mask + .equ CP_RMS_EQ_NEAREST, 0x00000000 ; round mode = to nearest + .equ CP_RMS_EQ_MINUS_INF, 0x00004000 ; round mode = toward -oo + .equ CP_RMS_EQ_PLUS_INF, 0x00008000 ; round mode = toward +oo + .equ CP_RMS_EQ_ZERO, 0x0000C000 ; round mode = toward zero + .equ CP_RMS_POSITION, 14 +; + .equ CP_PL_MASK, 0x00100000 ; pipeline mode (PL) mask + .equ CP_FLOWTHROUGH_MODE, 0x00000000 ; select flow-through mode + .equ CP_PIPELINE_MODE, 0x00100000 ; select pipeline mode + .equ CP_PL_POSITION, 20 +; + .equ CP_INVALID_OP_EXCP_MASK, 0x00400000 ; invalid operation excp. mask(IM) + .equ CP_RESERVED_OP_EXCP_MASK,0x00800000 ; reserved operand excp. mask(RM) + .equ CP_OVERFLOW_EXCP_MASK, 0x01000000 ; overflow exception mask (VM) + .equ CP_UNDERFLOW_EXCP_MASK, 0x02000000 ; underflow exception mask(UM) + .equ CP_INEXACT_EXCP_MASK, 0x04000000 ; inexact result excp. mask(XM) + .equ CP_ZERO_EXCP_MASK, 0x08000000 ; zero result exception mask (ZM) + .equ CP_EXCPS_POSITION, 22 +; + .equ CP_PLTC_MASK, 0x0000000F ; pipeline timer count (PLTC) mask + .equ CP_PLTC_EQ_2, 0x00000002 ; pipeline timer count = 2 + .equ CP_PLTC_EQ_3, 0x00000003 ; pipeline timer count = 3 + .equ CP_PLTC_EQ_4, 0x00000004 ; pipeline timer count = 4 + .equ CP_PLTC_EQ_5, 0x00000005 ; pipeline timer count = 5 + .equ CP_PLTC_EQ_6, 0x00000006 ; pipeline timer count = 6 + .equ CP_PLTC_EQ_7, 0x00000007 ; pipeline timer count = 7 + .equ CP_PLTC_EQ_8, 0x00000008 ; pipeline timer count = 8 + .equ CP_PLTC_EQ_9, 0x00000009 ; pipeline timer count = 9 + .equ CP_PLTC_EQ_10, 0x0000000A ; pipeline timer count = 10 + .equ CP_PLTC_EQ_11, 0x0000000B ; pipeline timer count = 11 + .equ CP_PLTC_EQ_12, 0x0000000C ; pipeline timer count = 12 + .equ CP_PLTC_EQ_13, 0x0000000D ; pipeline timer count = 13 + .equ CP_PLTC_EQ_14, 0x0000000E ; pipeline timer count = 14 + .equ CP_PLTC_EQ_15, 0x0000000F ; pipeline timer count = 15 + .equ CP_PLTC_POSITION, 0 +; + .equ CP_MATC_MASK, 0x000000F0 ; mpy-acc timer count (MATC) mask + .equ CP_MATC_EQ_2, 0x00000020 ; mpy-acc timer count = 2 + .equ CP_MATC_EQ_3, 0x00000030 ; mpy-acc timer count = 3 + .equ CP_MATC_EQ_4, 0x00000040 ; mpy-acc timer count = 4 + .equ CP_MATC_EQ_5, 0x00000050 ; mpy-acc timer count = 5 + .equ CP_MATC_EQ_6, 0x00000060 ; mpy-acc timer count = 6 + .equ CP_MATC_EQ_7, 0x00000070 ; mpy-acc timer count = 7 + .equ CP_MATC_EQ_8, 0x00000080 ; mpy-acc timer count = 8 + .equ CP_MATC_EQ_9, 0x00000090 ; mpy-acc timer count = 9 + .equ CP_MATC_EQ_10, 0x000000A0 ; mpy-acc timer count = 10 + .equ CP_MATC_EQ_11, 0x000000B0 ; mpy-acc timer count = 11 + .equ CP_MATC_EQ_12, 0x000000C0 ; mpy-acc timer count = 12 + .equ CP_MATC_EQ_13, 0x000000D0 ; mpy-acc timer count = 13 + .equ CP_MATC_EQ_14, 0x000000E0 ; mpy-acc timer count = 14 + .equ CP_MATC_EQ_15, 0x000000F0 ; mpy-acc timer count = 15 + .equ CP_MATC_POSITION, 4 +; + .equ CP_MVTC_MASK, 0x00000F00 ; MOVE P timer count (MVTC) mask + .equ CP_MVTC_EQ_2, 0x00000200 ; MOVE P timer count = 2 + .equ CP_MVTC_EQ_3, 0x00000300 ; MOVE P timer count = 3 + .equ CP_MVTC_EQ_4, 0x00000400 ; MOVE P timer count = 4 + .equ CP_MVTC_EQ_5, 0x00000500 ; MOVE P timer count = 5 + .equ CP_MVTC_EQ_6, 0x00000600 ; MOVE P timer count = 6 + .equ CP_MVTC_EQ_7, 0x00000700 ; MOVE P timer count = 7 + .equ CP_MVTC_EQ_8, 0x00000800 ; MOVE P timer count = 8 + .equ CP_MVTC_EQ_9, 0x00000900 ; MOVE P timer count = 9 + .equ CP_MVTC_EQ_10, 0x00000A00 ; MOVE P timer count = 10 + .equ CP_MVTC_EQ_11, 0x00000B00 ; MOVE P timer count = 11 + .equ CP_MVTC_EQ_12, 0x00000C00 ; MOVE P timer count = 12 + .equ CP_MVTC_EQ_13, 0x00000D00 ; MOVE P timer count = 13 + .equ CP_MVTC_EQ_14, 0x00000E00 ; MOVE P timer count = 14 + .equ CP_MVTC_EQ_15, 0x00000F00 ; MOVE P timer count = 15 + .equ CP_MVTC_POSITION, 8 +; + .equ CP_AD_MASK, 0x00001000 ; + .equ CP_ADVANCE_DRDY_MODE, 0x00001000 ; + .equ CP_NORMAL_DRDY_MODE, 0x00000000 ; + .equ CP_AD_POSITION, 12 +; + .equ CP_HE_MASK, 0x00002000 ; Halt-on-error mask (HE) + .equ CP_HALT_ON_ERROR_ENABLED, 0x00002000 ; Halt-on-error enabled (HE=1) + .equ CP_HALT_ON_ERROR_DISABLED,0x00000000 ; Halt-on-error disabled (HE=0) + .equ CP_HE_POSITION, 13 +; + .equ CP_EX_MASK, 0x00004000 ; EXCP enable mask (EX) + .equ CP_EXCP_ENABLED, 0x00004000 ; EXCP enabled (EX=1) + .equ CP_EXCP_DISABLED, 0x00000000 ; EXCP disabled (EX=0) + .equ CP_EX_POSITION, 14 +; +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE STATUS REGISTER WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; + .equ CP_INVALID_OP_EXCP, 0x00000001 + .equ CP_INVALID_OP_EXCP_POSITION, 0 +; + .equ CP_RESERVED_OP_EXCP, 0x00000002 + .equ CP_RESERVED_OP_EXCP_POSITION, 1 +; + .equ CP_OVERFLOW_EXCP, 0x00000004 + .equ CP_OVERFLOW_EXCP_POSITION, 2 +; + .equ CP_UNDERFLOW_EXCP, 0x00000008 + .equ CP_UNDERFLOW_EXCP_POSITION, 3 +; + .equ CP_INEXACT_EXCP, 0x00000010 + .equ CP_INEXACT_EXCP_POSITION, 4 +; + .equ CP_ZERO_EXCP, 0x00000020 + .equ CP_ZERO_EXCP_POSITION, 5 +; + .equ CP_EXCP_STATUS_MASK, 0x00000040 + .equ CP_EXCP_STATUS_FLAG_POSITION, 6 +; + .equ CP_R_TEMP_VALID_MASK, 0x00000080 + .equ R_TEMP_VALID_POSITION, 7 +; + .equ CP_S_TEMP_VALID_MASK, 0x00000100 + .equ CP_S_TEMP_VALID_POSITION, 8 +; + .equ CP_I_TEMP_VALID_FLAG, 0x00000200 + .equ CP_I_TEMP_VALID_POSITION, 9 +; + .equ CP_OPERATION_PENDING_MASK, 0x00000400 + .equ CP_OPERATION_PENDING_POSITION,10 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR DEFINING THE FLAG REGISTER WORD | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; + .equ CP_INVALID_OP_FLAG, 0x00000001 + .equ CP_INVALID_OP_FLAG_POSITION, 0 +; + .equ CP_CARRY_FLAG, 0x00000001 + .equ CP_CARRY_FLAG_POSITION, 0 +; + .equ CP_RESERVED_OP_FLAG, 0x00000002 + .equ CP_RESERVED_OP_FLAG_POSITION, 1 +; + .equ CP_OVERFLOW_FLAG, 0x00000004 + .equ CP_OVERFLOW_FLAG_POSITION, 2 +; + .equ CP_UNORDERED_FLAG, 0x00000004 + .equ CP_UNORDERED_FLAG_POSITION, 2 +; + .equ CP_UNDERFLOW_FLAG, 0x00000008 + .equ CP_UNDERFLOW_FLAG_POSITION, 3 +; + .equ CP_LESS_THAN_FLAG, 0x00000008 + .equ CP_LESS_THAN_POSITION, 3 +; + .equ CP_WINNER_FLAG, 0x00000008 + .equ CP_WINNER_FLAG_POSITION, 3 +; + .equ CP_INEXACT_FLAG, 0x00000010 + .equ CP_INEXACT_FLAG_POSITION, 4 +; + .equ CP_GREATER_THAN_FLAG, 0x00000010 + .equ CP_GREATER_THAN_FLAG_POSITION,4 +; + .equ CP_ZERO_FLAG, 0x00000020 + .equ CP_ZERO_FLAG_POSITION, 5 +; + .equ CP_EQUAL_FLAG, 0x00000020 + .equ CP_EQUAL_FLAG_POSITION, 5 +; + .equ CP_SIGN_FLAG, 0x00000040 + .equ CP_SIGN_FLAG_POSITION, 6 +; +; +; ______________________________________________________________________ +;|______________________________________________________________________| +;| | +;| SYMBOLS FOR TRANSACTION REQUEST TYPES | +;| | +;|______________________________________________________________________| +;|______________________________________________________________________| +; +; +; write requests +; +; Note: Each WRITE_* transaction request, plus ADV_TEMPS sets the CA +; (Coprocessor Active) bit in the 29000 Current Processor Status Register. +; + .equ CP_WRITE_R, 0x20 ;write sing or doub to R register + .equ CP_WRITE_S, 0x21 ;write sing or doub to S register + .equ CP_WRITE_RS, 0x22 ;write sing operands to R and S + .equ CP_WRITE_MODE, 0x23 ;write mode double word to 29027 + .equ CP_WRITE_STATUS, 0x24 ;write status word to 29027 + .equ CP_WRITE_PREC, 0x25 ;write reg. file precision word + ; to 29027 + .equ CP_WRITE_INST, 0x26 ;write instruction to 29027 + .equ CP_ADV_TEMPS, 0x27 ;move R-Temp, S-Temp into R,S +; +; read requests +; + .equ CP_READ_MSBS, 0x00 ;read sing result or MSB of doub + .equ CP_READ_LSBS, 0x01 ;read LSB of doub result + .equ CP_READ_FLAGS, 0x02 ;read 29027 flag register + .equ CP_READ_STATUS, 0x03 ;read 29027 status register + .equ CP_SAVE_STATE, 0x04 ;read one word of 29027 state +; +; "start operation" symbol; this is "OR"ed with a WRITE_R, WRITE_S, +; WRITE_RS, or WRITE_INST symbol. +; + + .equ CP_START, 0b1000000 ;bit to start 29027 operation +; +; "suppress exceptions reporting" symbol; this is "OR"ed with a ed +; +; + + .equ CP_NO_ERR, 0b1000000 ;suppress exception reporting +; ; during load. +; cp_write_r - transfers 32- or 64-bit operand to Am29027 +; register R +; cp_write_s - transfers 32- or 64-bit operand to Am29027 +; register S +; cp_write_rs - transfers two 32-bit floating-point operands to +; Am29027 registers R and S +; cp_write_prec - transfers a word to the Am29027 precision register +; cp_write_status - transfers a word to the Am29027 status register +; cp_write_inst - transfers an instruction to the Am29027 +; instruction register +; cp_advance_temps - transfers the contents of the Am29027 temporary +; registers to the corresponding working registers +; cp_write_mode - transfers a mode specification the the Am29027 +; mode register +; cp_read_dp - read a double-precision floating-point result +; from the Am29027 +; cp_read_sp - read a single-precision floating-point result +; from the Am29027 +; cp_read_int - read an integer result from the Am29027 +; cp_read_flags - read the contents of the Am29027 flag register +; cp_read_status - read the contents of the Am29027 status register +; cp_read_state_wd - read a single Am29027 state word +; cp_save_state - save Am29027 state +; cp_restore_state - restore Am29027 state +; cp_build_inst - build an Am29027 instruction +; cp_build_inst_h - build 16 MSBs of an Am29027 instruction +; cp_build_inst_l - build 16 LSBs of an Am29027 instruction +; +; +; +;============================================================================ +; MACRO NAME: cp_write_r +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a 32- or 64-bit operand to Am29027 input register R +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32-bit operand to be +; transferred, or the 32 MSBs of the 64-bit operand to be +; transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit operand to be transferred +; +; INT - indicates that the operand to be transferred is a 32-bit +; integer +; +; START - indicates that a new Am29027 operation is to be started +; once the operand has been transferred +; +; +; USAGE: +; +; cp_write_r reg [,LSB_reg] [,START] for floating-point operands +; or cp_write_r reg, INT [,START] for integer operands +; +; Transferring double-precision floating-point operands - Either of +; two forms is acceptable: +; +; cp_write_r reg +; or cp_write_r reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_r lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr3 +; to the least-significant half. +; +; cp_write_r lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the least-significant half. +; +; +; Transferring single-precision floating-point operands - Use the +; form: +; +; cp_write_r reg +; +; +; Ex: cp_write_r lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, (the contents of lr3 +; will be transferred to the least- +; significant half of register R, but +; these bits are don't cares). +; +; +; Transferring integer operands - Use the form: +; +; cp_write_r reg,INT +; +; +; Ex: cp_write_r lr2,INT Transfers the contents of lr2 to +; the least-significant half of Am29027 +; register R, (the contents of lr2 +; will also be transferred to the most- +; significant half of register R, but +; these bits are don't cares). +; +; +; Starting an Am29027 operation - Any of the forms above may be +; appended with parameter START, e.g.: +; +; cp_write_r lr2,START +; +; cp_write_r lr2,lr5,START +; +; cp_write_r lr2,INT,START +; +; +;============================================================================ +; + .macro cp_write_r,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_WRITE_R: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_R,p1,%%((&p1)+1) + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","INT" + store 1,CP_WRITE_R,p1,p1 + .exitm + .endif +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_R|CP_START,p1,%%((&p1)+1) + .exitm + .endif +; + store 1,CP_WRITE_R,p1,p2 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p2@","START" + .ifeqs "@p3@","INT" + store 1,CP_WRITE_R|CP_START,p1,p1 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p2@","INT" + .ifeqs "@p3@","START" + store 1,CP_WRITE_R|CP_START,p1,p1 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p3@","START" + store 1,CP_WRITE_R|CP_START,p1,p2 + .else + .err + .print "cp_write_r: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_r: too many parameters" + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_s +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a 32- or 64-bit operand to Am29027 input register S +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32-bit operand to be +; transferred, or the 32 MSBs of the 64-bit operand to be +; transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit operand to be transferred +; +; INT - indicates that the operand to be transferred is a 32-bit +; integer +; +; START - indicates that a new Am29027 operation is to be started +; once the operand has been transferred +; +; +; USAGE: +; +; cp_write_s reg [,LSB_reg] [,START] for floating-point operands +; or cp_write_s reg, INT [,START] for integer operands +; +; Transferring double-precision floating-point operands - Either of +; two forms is acceptable: +; +; cp_write_s reg +; or cp_write_s reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_s lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, and the contents of lr3 +; to the least-significant half. +; +; cp_write_s lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, and the contents of lr5 +; to the least-significant half. +; +; +; Transferring single-precision floating-point operands - Use the +; form: +; +; cp_write_s reg +; +; +; Ex: cp_write_s lr2 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register S, (the contents of lr3 +; will be transferred to the least- +; significant half of register S, but +; these bits are don't cares). +; +; +; Transferring integer operands - Use the form: +; +; cp_write_s reg,INT +; +; +; Ex: cp_write_s lr2,INT Transfers the contents of lr2 to +; the least-significant half of Am29027 +; register S, (the contents of lr2 +; will also be transferred to the most- +; significant half of register S, but +; these bits are don't cares). +; +; +; Starting an Am29027 operation - Any of the forms above may be +; appended with parameter START, e.g.: +; +; cp_write_s lr2,START +; +; cp_write_s lr2,lr5,START +; +; cp_write_s lr2,INT,START +; +; +;============================================================================ +; + .macro cp_write_s,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_write_s: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_S,p1,%%((&p1)+1) + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","INT" + store 1,CP_WRITE_S,p1,p1 + .exitm + .endif +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_S|CP_START,p1,%%((&p1)+1) + .exitm + .endif +; + store 1,CP_WRITE_S,p1,p2 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p2@","START" + .ifeqs "@p3@","INT" + store 1,CP_WRITE_S|CP_START,p1,p1 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p2@","INT" + .ifeqs "@p3@","START" + store 1,CP_WRITE_S|CP_START,p1,p1 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm + .endif +; + .ifeqs "@p3@","START" + store 1,CP_WRITE_S|CP_START,p1,p2 + .else + .err + .print "cp_write_s: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_s: too many parameters" + .endif +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_rs +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers two 32-bit floating-point operands to Am29027 +; input registers R and S +; +; PARAMETERS: +; reg1 - the Am29000 g.p. register containing the 32-bit operand to be +; transferred to register R +; +; reg2 - the Am29000 g.p. register containing the 32-bit operand to be +; transferred to register S +; +; START - indicates that a new Am29027 operation is to be started +; once the operands have been transferred +; +; +; USAGE: +; +; cp_write_rs reg1, reg2 [,START] +; +; Ex: cp_write_rs lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the most-significant half of Am29027 +; register S. +; +; cp_write_rs lr2,lr5,START Transfers the contents of lr2 to +; the most-significant half of Am29027 +; register R, and the contents of lr5 +; to the most-significant half of Am29027 +; register S; a new operation is started +; once the transfer is complete. +; +; +; +;============================================================================ +; + .macro cp_write_rs,p1,p2,p3 +; +; + .if $narg<=1 + .err + .print "cp_write_rs: missing parameter(s)" + .exitm + .endif +; +; + .if $narg==2 + .ifeqs "@p2@","START" + .err + .print "cp_write_rs: bad parameter list" + .else + store 1,CP_WRITE_RS,p1,p2 + .endif + .exitm + .endif +; +; + .if $narg==3 + .ifeqs "@p3@","START" + store 1,CP_WRITE_RS|CP_START,p1,p2 + .else + .err + .print "cp_write_rs: bad parameter list" + .endif + .exitm + .endif +; +; + .if $narg>=4 + .err + .print "cp_write_rs: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_prec +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a word to the Am29027 precision register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 precision register +; +; USAGE: +; +; cp_write_prec reg +; +; Ex: cp_write_prec lr2 Transfers the contents of lr2 to +; the Am29027 precision register. +; +; +;============================================================================ +; + .macro cp_write_prec,p1 +; +; + .if $narg!=1 + .err + .print "cp_write_prec: bad parameter list" + .else + store 1,CP_WRITE_PREC,p1,0 + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_status +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers a word to the Am29027 precision register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 status register +; +; RESTORE - indicates that this is the last step of a state restoration +; sequence (flow-through mode only) +; +; INVALIDATE - indicates that the current contents of the ALU pipeline +; register are to be invalidated (pipeline mode only) +; +; USAGE: +; +; cp_write_status reg [,RESTORE|INVALIDATE] +; +; Ex: cp_write_status lr2 Transfers the contents of lr2 to +; the Am29027 status register. +; +; +; cp_write_status lr2,RESTORE Transfers the contents of lr2 to +; the Am29027 status register, and +; completes the state restore +; sequence +; +; cp_write_status lr2,INVALIDATE Transfers the contents of lr2 to +; the Am29027 status register, and +; invalidates the contents of the +; ALU pipeline. +; +; +;============================================================================ +; + .macro cp_write_status,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_status: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_STATUS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","RESTORE" + store 1,CP_WRITE_STATUS|CP_START,p1,0 + .exitm + .endif +; + .ifeqs "@p2@","INVALIDATE" + store 1,CP_WRITE_STATUS|CP_START,p1,0 + .exitm + .endif +; + .err + .print "cp_write_status: bad parameter list" + .exitm +; + .endif +; +; + .if $narg >=3 + .err + .print "cp_write_status: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_inst +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 16, 1988 +; +; FUNCTION: Transfers an instruction word to the Am29027 instruction +; register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the word to be +; transferred to the Am29027 instruction register +; +; START - indicates that a new Am29027 operation is to be started +; once the instruction word has been transferred +; +; USAGE: +; +; cp_write_inst reg [,START] +; +; Ex: cp_write_inst lr2 Transfers the contents of lr2 to +; the Am29027 instruction register. +; +; +; cp_write_inst lr2,START Transfers the contents of lr2 to +; the Am29027 status register; a +; new operation is started once the +; transfer is complete. +; +; +;============================================================================ +; + .macro cp_write_inst,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_inst: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_INST,p1,p1 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","START" + store 1,CP_WRITE_INST|CP_START,p1,p1 + .else + .err + .print "cp_write_inst: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg >=3 + .err + .print "cp_write_inst: too many parameters" + .exitm + .endif +; + .endm +; +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_advance_temps +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the contents of Am29027 registers R-Temp, S-Temp, +; and I-Temp to register R, register S, and the instruction +; register, respectively. +; +; PARAMETERS: none +; +; USAGE: +; +; cp_advance_temps +; +; +; +;============================================================================ +; + .macro cp_advance_temps +; +; + .if $narg!=0 + .err + .print "cp_advance_temp: takes no parameters" + .else + store 1,CP_ADV_TEMPS,gr1,0 ; use gr1 because it's never protected + .endif +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_write_mode +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers a 64-bit mode specification to the Am29027 mode +; register +; +; PARAMETERS: +; reg - the Am29000 g.p. register containing the 32 MSBs of the +; 64-bit mode specification to be transferred. +; +; LSB_reg - the Am29000 g.p. register containing the 32 LSBs of the +; 64-bit mode specification to be transferred. +; +; USAGE: +; +; cp_write_mode reg [,LSB_reg] +; +; Either of two forms is acceptable: +; +; cp_write_mode reg +; or cp_write_mode reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are taken from the next g.p. +; register. +; +; Ex: cp_write_mode lr2 Transfers the contents of lr2 to +; the most-significant half of the Am29027 +; mode register, and the contents of lr3 +; to the least-significant half. +; +; cp_write_mode lr2,lr5 Transfers the contents of lr2 to +; the most-significant half of the Am29027 +; mode register, and the contents of lr5 +; to the least-significant half. +; +; +; +;============================================================================ +; + .macro cp_write_mode,p1,p2 +; + .if $narg==0 + .err + .print "cp_write_mode: missing parameter(s)" + .endif +; +; + .if $narg==1 + store 1,CP_WRITE_MODE,%%((&p1)+1),p1 + .exitm + .endif +; +; + .if $narg==2 + store 1,CP_WRITE_MODE,p2,p1 + .exitm + .endif +; +; + .if $narg>=3 + .err + .print "cp_write_mode: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_dp +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 double-precison floating-point +; result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the 32 MSBs of the +; current Am29027 result are to be written. +; +; LSB_reg - the Am29000 g.p. register into which the 32 LSBs of the +; current Am29027 result are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_dp reg [,LSB_reg] [,START] +; +; Either of two forms is acceptable: +; +; cp_read_dp reg +; or cp_read_dp reg, LSB_reg +; +; If LSB_reg is omitted, the LSBs are written to the next g.p. register. +; +; Ex: cp_read_dp lr2 Transfers the 32 MSBs of the current +; Am29027 result to lr2, and the 32 LSBs +; to lr3. +; +; cp_read_dp lr2,lr5 Transfers the 32 MSBs of the current +; Am29027 result to lr2, and the 32 LSBs +; to lr5. +; +; Exception reporting can be suppressed by appending NO_ERR to either +; of the above, e.g.: +; +; cp_read_dp lr2,NO_ERR +; cp_read_dp lr2,lr5,NO_ERR +; +; +;============================================================================ +; + .macro cp_read_dp,p1,p2,p3 +; + .if $narg==0 + .err + .print "cp_read_dp: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_LSBS,%%((&p1)+1),0 + load 1,CP_READ_MSBS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,%%((&p1)+1),0 + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .exitm + .endif +; + load 1,CP_READ_LSBS,p2,0 + load 1,CP_READ_MSBS,p1,0 + .exitm +; + .endif +; +; + .if $narg==3 +; + .ifeqs "@p3@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,p2,0 + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_dp: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=4 + .err + .print "cp_read_dp: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_sp +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 single-precison floating-point +; result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; result is to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_sp reg [,START] +; +; Ex: cp_read_sp lr2 Transfers the current Am29027 result +; to lr2. +; +; cp_read_sp lr2,NO_ERR Transfers the current Am29027 result +; to lr2, and suppresses exception +; reporting for this transfer. +; +; +;============================================================================ +; + .macro cp_read_sp,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_sp: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_MSBS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_MSBS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_sp: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_sp: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_int +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the current Am29027 integer result to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; result is to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_int reg [,START] +; +; Ex: cp_read_int lr2 Transfers the current Am29027 result +; to lr2. +; +; cp_read_int lr2,NO_ERR Transfers the current Am29027 result +; to lr2, and suppresses exception +; reporting for this transfer. +; +; +;============================================================================ +; + .macro cp_read_int,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_int: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_LSBS,p1,0 + nop ; leave a cycle for the MSBs to come out + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_LSBS|CP_NO_ERR,p1,0 + nop ; leave a cycle for the MSBs to come out + .else + .err + .print "cp_read_int: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_int: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_flags +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 17, 1988 +; +; FUNCTION: Transfers the contents of the Am29027 flag register +; to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; flag register contents are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_flags reg [,START] +; +; Ex: cp_read_flags lr2 Transfers the Am29027 flag register +; contents to lr2. +; +; cp_read_flags lr2,NO_ERR Transfers the Am29027 flag register +; contents to lr2, and suppresses +; exception reporting for this +; transfer. +; +; +;============================================================================ +; + .macro cp_read_flags,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_flags: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_FLAGS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_FLAGS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_flags: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_flags: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_status +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the contents of the Am29027 status register +; to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the current Am29027 +; status register contents are to be written. +; +; NO_ERR - indicates that exception reporting is to be suppressed for this +; transfer. +; +; USAGE: +; +; cp_read_status reg [,START] +; +; Ex: cp_read_status lr2 Transfers the Am29027 status register +; contents to lr2. +; +; cp_read_status lr2,NO_ERR Transfers the Am29027 status register +; contents to lr2, and suppresses +; exception reporting for this +; transfer. +; +; +;============================================================================ +; + .macro cp_read_status,p1,p2 +; + .if $narg==0 + .err + .print "cp_read_status: missing parameter(s)" + .endif +; +; + .if $narg==1 + load 1,CP_READ_STATUS,p1,0 + .exitm + .endif +; +; + .if $narg==2 +; + .ifeqs "@p2@","NO_ERR" + load 1,CP_READ_STATUS|CP_NO_ERR,p1,0 + .else + .err + .print "cp_read_status: bad parameter list" + .endif + .exitm +; + .endif +; +; + .if $narg>=3 + .err + .print "cp_read_status: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_read_state_wd +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the next Am29027 state word to the Am29000 +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the next Am29027 +; state word contents are to be written. +; +; USAGE: +; +; cp_read_state_wd reg +; +; Ex: cp_read_state_wd lr2 Transfers the next Am29027 state word +; to lr2. +; +;============================================================================ +; + .macro cp_read_state_wd,p1 +; + .if $narg==0 + .err + .print "cp_read_state_wd: missing parameter" + .endif +; +; + .if $narg==1 + load 1,CP_SAVE_STATE,p1,0 + .exitm + .endif +; +; + .if $narg>=2 + .err + .print "cp_read_state_wd: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_save_state +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Transfers the current Am29027 state to the Am29000 +; +; PARAMETERS: +; reg - the first of 30 Am29000 g.p. registers in which Am29027 state +; is saved. +; +; USAGE: +; +; cp_save_state reg +; +; This macro transfers the current Am29027 state to a block of 30 Am29000 +; registers. State is stored in the following order: +; +; reg instruction register +; reg+1 I-Temp +; reg+2 R MSBs +; reg+3 R LSBs +; reg+4 S MSBs +; reg+5 S LSBs +; reg+6 R-Temp MSBs +; reg+7 R-Temp LSBs +; reg+8 S-Temp MSBs +; reg+9 S-Temp LSBs +; reg+10 status +; reg+11 precision +; reg+12 RF0 MSBs +; reg+13 RF0 LSBs +; . . +; . . +; . . +; reg+26 RF7 MSBs +; reg+27 RF7 LSBs +; reg+28 mode MSBs +; reg+29 mode LSBs +; +; +; Ex: cp_save_state lr2 Transfers the current Am29027 state to +; the Am29000, starting at lr2. +; +; NOTES: +; 1) This macro stores all 64-bit quantities in "big-endian" order, +; i.e. MSBs first. For example, the 32 MSBs of register R are +; stored in reg+2, and the 32 LSBs are stored in reg+3. The Am29027 +; transfers these quantites in "little-endian" order; the macro +; is responsible for swapping MS and LS words. +; +;============================================================================ +; + .macro cp_save_state,p1 +; + .if $narg==0 + .err + .print "cp_save_state: missing parameter" + .endif +; +; + .if $narg==1 + cp_read_sp p1,NO_ERR + ;guarantee that we're at beginning of + ; save state sequence + cp_read_state_wd %%((&p1)+ 0) ; instruction + cp_read_state_wd %%((&p1)+ 1) ; I-Temp + cp_read_state_wd %%((&p1)+ 3) ; R MSBs + cp_read_state_wd %%((&p1)+ 2) ; R LSBs + cp_read_state_wd %%((&p1)+ 5) ; S MSBs + cp_read_state_wd %%((&p1)+ 4) ; S LSBs + cp_read_state_wd %%((&p1)+ 7) ; R-Temp MSBs + cp_read_state_wd %%((&p1)+ 6) ; R-Temp LSBs + cp_read_state_wd %%((&p1)+ 9) ; S-Temp MSBs + cp_read_state_wd %%((&p1)+ 8) ; S-Temp LSBs + cp_read_state_wd %%((&p1)+10) ; status + cp_read_state_wd %%((&p1)+11) ; precision + cp_read_state_wd %%((&p1)+13) ; RF0 MSBs + cp_read_state_wd %%((&p1)+12) ; RF0 LSBs + cp_read_state_wd %%((&p1)+15) ; RF1 MSBs + cp_read_state_wd %%((&p1)+14) ; RF1 LSBs + cp_read_state_wd %%((&p1)+17) ; RF2 MSBs + cp_read_state_wd %%((&p1)+16) ; RF2 LSBs + cp_read_state_wd %%((&p1)+19) ; RF3 MSBs + cp_read_state_wd %%((&p1)+18) ; RF3 LSBs + cp_read_state_wd %%((&p1)+21) ; RF4 MSBs + cp_read_state_wd %%((&p1)+20) ; RF4 LSBs + cp_read_state_wd %%((&p1)+23) ; RF5 MSBs + cp_read_state_wd %%((&p1)+22) ; RF5 LSBs + cp_read_state_wd %%((&p1)+25) ; RF6 MSBs + cp_read_state_wd %%((&p1)+24) ; RF6 LSBs + cp_read_state_wd %%((&p1)+27) ; RF7 MSBs + cp_read_state_wd %%((&p1)+26) ; RF7 LSBs + cp_read_state_wd %%((&p1)+29) ; mode MSBs + cp_read_state_wd %%((&p1)+28) ; mode LSBs + .exitm + .endif +; +; + .if $narg>=2 + .err + .print "cp_save_state: too many parameters" + .endif +; + .endm +; +; +; +; +; +;============================================================================ +; MACRO NAME: cp_restore_state +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 18, 1988 +; +; FUNCTION: Restores Am29027 state +; +; PARAMETERS: +; reg - the first of 30 Am29000 g.p. registers containing Am29027 +; state. +; +; temp - a scratch register used by cp_restore_state +; +; USAGE: +; +; cp_restore_state reg,temp +; +; This macro restores Am29027 state by transferring 30 words to the +; Am29027; these words are taken from a block of Am29000 g.p. registers +; starting at "reg." The words are assumed to be stored in the following +; order: +; +; reg instruction register +; reg+1 I-Temp +; reg+2 R MSBs +; reg+3 R LSBs +; reg+4 S MSBs +; reg+5 S LSBs +; reg+6 R-Temp MSBs +; reg+7 R-Temp LSBs +; reg+8 S-Temp MSBs +; reg+9 S-Temp LSBs +; reg+10 status +; reg+11 precision +; reg+12 RF0 MSBs +; reg+13 RF0 LSBs +; . . +; . . +; . . +; reg+26 RF7 MSBs +; reg+27 RF7 LSBs +; reg+28 mode MSBs +; reg+29 mode LSBs +; +; +; Ex: cp_restore_state lr2,gr70 Restores Am29027 state by +; transferring a block of 30 words +; that begins at lr2. Register gr70 +; is used as scratch storage by this +; macro. +; +; +;============================================================================ +; + .macro cp_restore_state,p1,p2 +; + .if $narg<=1 + .err + .print "cp_restore_state: missing parameter(s)" + .endif +; +; + .if $narg==2 + + const p2,0 ;clear the status register + cp_write_status p2 +; + cp_write_mode %%((&p1)+28) ;restore the mode register +; + const p2,0x80000018 ; restore RF0 + consth p2,0x80000018 + cp_write_inst p2 + cp_write_r %%((&p1)+12),START +; + consth p2,0x90000018 ; restore RF1 + cp_write_inst p2 + cp_write_r %%((&p1)+14),START +; + consth p2,0xA0000018 ; restore RF2 + cp_write_inst p2 + cp_write_r %%((&p1)+16),START +; + consth p2,0xB0000018 ; restore RF3 + cp_write_inst p2 + cp_write_r %%((&p1)+18),START +; + consth p2,0xC0000018 ; restore RF4 + cp_write_inst p2 + cp_write_r %%((&p1)+20),START +; + consth p2,0xD0000018 ; restore RF5 + cp_write_inst p2 + cp_write_r %%((&p1)+22),START +; + consth p2,0xE0000018 ; restore RF6 + cp_write_inst p2 + cp_write_r %%((&p1)+24),START +; + consth p2,0xF0000018 ; restore RF7 + cp_write_inst p2 + cp_write_r %%((&p1)+26),START +; + cp_read_sp p2 ; do a dummy read, to guarantee that + ; the last operation is complete +; + cp_write_prec %%((&p1)+11) ; restore precision +; + cp_write_r %%((&p1)+2) ; restore R + cp_write_s %%((&p1)+4) ; restore S + cp_write_inst %%((&p1)+0) ; restore instruction + cp_advance_temps ; move R,S, and inst. to working registers +; + cp_write_r %%((&p1)+6) ; restore R-Temp + cp_write_s %%((&p1)+8) ; restore S-Temp + cp_write_inst %%((&p1)+1) ; restore I-Temp +; +; restore the status register, retime last operation +; + cp_write_status %%((&p1)+10),RESTORE +; + .exitm + .endif +; +; + .if $narg>=3 + .err + .print "cp_restore_state: too many parameters" + .endif +; + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 32-bit Am29027 instruction in an Am29000 g.p. +; register. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; Op-codes fall into two categories: those that correspond to Am29000 +; floating-point op-codes, and for which the precision is implicit (e.g. +; FADD, DMUL); and those that correspond to Am29027 base operations +; (e.g. P_PLUS_T, P_TIMES_Q), and which require an explicit precision +; specification. +; +; Every operation specified must have a destination; if the operation +; does not write a result to the Am29027 register file, destination GP +; must be specified. The number of source operands specified must agree +; with the number of source operands required by the operation specified. +; +; Ex: +; +; cp_build_inst lr2,FADD,RF7,R,S +; Builds an instruction word to +; perform the operation: +; RF7 <- R + S +; where R, S, and RF7 are single- +; precision f.p. operands. The +; instruction word is placed in lr2. +; +; cp_build_inst gr119,DMUL,GP,R,ONE_HALF +; Builds an instruction word to +; perform the operation: +; R * .5 +; where R, .5, and the result +; are double-precision f.p. operands. +; The result is not written to the +; Am29027 register file. The +; instruction word is written to +; gr119. +; +; +; cp_build_inst lr3,MIN_P_AND_T,S_D,RF7,R,S +; Builds an instruction word to +; perform the operation: +; RF7 <- smaller of(R,S) +; where R and S are double-precision +; f.p. operands, and RF7 is a single- +; precison f.p. operand. The +; instruction word is written to +; lr3. +; +; +; cp_build_inst gr97,I_P_TIMES_Q,S_S,GP,R,2 +; Builds an instruction word to +; perform the operation: +; R * 2 +; where R, .5, and the result +; are single-precision integer operands. +; The result is not written to the +; Am29027 register file. The +; instruction word is written to +; gr97 +; +; +; cp_build_inst lr7,ABS_P,D_D,RF6,S +; Builds an instruction word to +; perform the operation: +; RF6 <- |S| +; where S and RF7 are double-precision +; f.p. operands. The instruction +; word is written to gr7. +; +; +; cp_build_inst gr127,PQ_PLUS_T,D_D,RF6,R,S,RF6 +; Builds an instruction word to +; perform the operation: +; RF6 <- (R * S) + RF6 +; where R, S and the result are +; double-precision f.p. operands. +; The instruction word is written +; to gr127. +; +; +; +;============================================================================ +; + .macro cp_build_inst,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; ** CORRECTION (1/4/89 ROP) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val + + const p1,_cp_inst_word + consth p1,_cp_inst_word +; + .endm +; +; +; + .macro _cp_set_op_params,par1,par2,par3,par4,par5,par6,par7 + .ifeqs "@par1@","@par2@" + .set _cp_op_type,par3 + .set _cp_no_params,par4 + .set _cp_p_paramno,par5 + .set _cp_q_paramno,par6 + .set _cp_t_paramno,par7 + .endif + .endm +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst_h +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 16 MSBs of a 32-bit Am29027 instruction in an +; Am29000 g.p. register. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst_h reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; This macro is similar to cp_build_inst, but creates only the 16 MSBs +; of the 32-bit Am29027 instruction word. This macro is useful in cases +; where the 16 LSBs of instruction word, which specify the operation +; to be performed, already exist in an Am29000 g.p. register, but where +; the 16 MSBs, which specify operand sources and destination, must be +; changed. In such cases, one Am29000 instruction can be saved by using +; cp_build_inst_h instead of cp_build_inst. +; +; Syntax and usage are identical to that of cp_build_inst. +; +; NOTE: This macro references macro _cp_set_op_params, which appears +; in the assembly listing for macro _cp_build_inst. +; +; +; +; +;============================================================================ +; + .macro cp_build_inst_h,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst_h: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst_h: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst_h: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; ** CORRECTION (1-4-89 Rich Parker) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst_h: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val +; + consth p1,_cp_inst_word +; + .endm +; +; +; +; +;============================================================================ +; MACRO NAME: cp_build_inst_l +; +; WRITTEN BY: Bob Perlman +; +; MOST RECENT UPDATE: April 24, 1988 +; : January 4, 1989 Rich Parker +; +; FUNCTION: Builds a 16 LSBs of a 32-bit Am29027 instruction in an +; Am29000 g.p. register; the 16 MSBs of the register are +; set to 0.. +; +; PARAMETERS: +; reg - the Am29000 g.p. register into which the instruction word +; is to be written +; +; op_code - mnemonic specifying the operation to be performed +; (e.g. FADD, P_TIMES_Q) +; +; precision - precision specification for destination, source operands: +; D_S - double-prec. result, single-prec. input(s) +; D_D - double-prec. result, double-prec. input(s) +; S_S - single-prec. result, single-prec. input(s) +; S_D - single-prec. result, double-prec. input(s) +; +; dest - destination for the operation result: +; RF0 - store result in Am29027 register file location RF0 +; RF1 - store result in Am29027 register file location RF1 +; RF2 - store result in Am29027 register file location RF2 +; RF3 - store result in Am29027 register file location RF3 +; RF4 - store result in Am29027 register file location RF4 +; RF5 - store result in Am29027 register file location RF5 +; RF6 - store result in Am29027 register file location RF6 +; RF7 - store result in Am29027 register file location RF7 +; GP - result is to be stored in an Am29000 g.p. register +; with a read_dp, read_sp, or read_int macro. +; +; source1, +; source2, +; source3 - source operand specifications: +; R - take source from Am29027 register R +; S - take source from Am29027 register S +; RF0 - take source from Am29027 register file location RF0 +; RF1 - take source from Am29027 register file location RF1 +; RF2 - take source from Am29027 register file location RF2 +; RF3 - take source from Am29027 register file location RF3 +; RF4 - take source from Am29027 register file location RF4 +; RF5 - take source from Am29027 register file location RF5 +; RF6 - take source from Am29027 register file location RF6 +; RF7 - take source from Am29027 register file location RF7 +; 0 - source is 0 +; ONE_HALF - source is constant .5 (f.p. operations only) +; IMINUS1 - source is constant -1 (integer operations only) +; 1 - source is constant 1 +; 2 - source is constant 2 +; 3 - source is constant 3 +; PI - source is constant pi (f.p. operations only) +; IMINUSMAX - source is -(2**63) (integer operations only) +; +; +; USAGE: +; +; cp_build_inst_l reg,op_code,[precision,]dest,source1[,source2][,source3] +; +; This macro is similar to cp_build_inst, but creates only the 16 LSBs +; of the 32-bit Am29027 instruction word; the 16 MSBs of the target +; register are set to 0. This macro is useful in cases +; where it is helpful to specify instruction LSBs and MSBs separately, +; to improve instruction scheduling. +; +; Syntax and usage are identical to that of cp_build_inst. +; +; NOTE: This macro references macro _cp_set_op_params, which appears +; in the assembly listing for macro _cp_build_inst. +; +; +;============================================================================ +; + .macro cp_build_inst_l,p1,p2,p3,p4,p5,p6,p7 +; + .if $narg<=3 + .err + .print "cp_build_inst_h: missing parameter(s)" + .exitm + .endif +; +; classify operation type +; + .set _cp_op_type,255 + + _cp_set_op_params p2,FADD,1,5,4,0,5 + _cp_set_op_params p2,DADD,1,5,4,0,5 + _cp_set_op_params p2,FSUB,1,5,4,0,5 + _cp_set_op_params p2,DSUB,1,5,4,0,5 + _cp_set_op_params p2,FMUL,1,5,4,5,0 + _cp_set_op_params p2,DMUL,1,5,4,5,0 + _cp_set_op_params p2,FEQ,1,5,4,0,5 + _cp_set_op_params p2,DEQ,1,5,4,0,5 + _cp_set_op_params p2,FGE,1,5,4,0,5 + _cp_set_op_params p2,DGE,1,5,4,0,5 + _cp_set_op_params p2,FGT,1,5,4,0,5 + _cp_set_op_params p2,DGT,1,5,4,0,5 + _cp_set_op_params p2,CONVERT_I_TO_F,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_I_TO_D,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_F_TO_I,1,4,0,0,4 + _cp_set_op_params p2,CONVERT_D_TO_I,1,4,0,0,4 +; +; The next two lines were corrected on 1-4-89, Rich Parker +; + _cp_set_op_params p2,CONVERT_F_TO_D,1,4,4,0,0 + _cp_set_op_params p2,CONVERT_D_TO_F,1,4,4,0,0 +; + _cp_set_op_params p2,PASS_P,0,5,5,0,0 + _cp_set_op_params p2,MINUSP,0,5,5,0,0 + _cp_set_op_params p2,ABSP,0,5,5,0,0 + _cp_set_op_params p2,SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,MINUSP_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,ABSP_PLUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,ABS_ABSP_MINUS_ABST,0,6,5,0,6 + _cp_set_op_params p2,P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,MINUSP_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,ABS_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MAX_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,MIN_ABSP_AND_ABST,0,6,5,0,6 + _cp_set_op_params p2,LIMIT_P_TO_MAGT,0,6,5,0,6 + _cp_set_op_params p2,CONVERT_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,SCALE_T_TO_INT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,PQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_PLUS_T,0,7,5,6,7 + _cp_set_op_params p2,PQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,MINUSPQ_MINUS_T,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,MINUSABSPQ_PLUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ABSPQ_MINUS_ABST,0,7,5,6,7 + _cp_set_op_params p2,ROUND_T_TO_INT,0,5,0,0,5 + _cp_set_op_params p2,RECIPROCAL_OF_P,0,5,5,0,0 + _cp_set_op_params p2,CONVERT_T_TO_ALT,0,5,0,0,5 + _cp_set_op_params p2,CONVERT_T_FROM_ALT,0,5,0,0,5 + _cp_set_op_params p2,I_PASS_P,0,5,5,0,0 + _cp_set_op_params p2,I_MINUSP,0,5,5,0,0 + _cp_set_op_params p2,I_ABSP,0,5,5,0,0 + _cp_set_op_params p2,I_SIGNT_TIMES_ABSP,0,6,6,0,5 + _cp_set_op_params p2,I_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_MINUSP_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_PLUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_ABS_P_MINUS_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_TIMES_Q,0,6,5,6,0 + _cp_set_op_params p2,I_COMPARE_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MAX_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_MIN_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_CONVERT_T_TO_FLOAT,0,5,0,0,5 + _cp_set_op_params p2,I_SCALE_T_TO_FLOAT_BY_Q,0,6,0,6,5 + _cp_set_op_params p2,I_P_OR_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_AND_T,0,6,5,0,6 + _cp_set_op_params p2,I_P_XOR_T,0,6,5,0,6 + _cp_set_op_params p2,I_NOT_T,0,5,0,0,5 + _cp_set_op_params p2,I_LSHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_ASHIFT_P_BY_Q,0,6,5,6,0 + _cp_set_op_params p2,I_FSHIFT_PT_BY_Q,0,7,5,7,6 + _cp_set_op_params p2,MOVE_P,0,5,5,0,0 +; +; +; if we couldn't find the op_code, flag an error +; + .if _cp_op_type>=2 + .err + .print "cp_build_inst_h: invalid Am29027 instruction mnemonic" + .exitm + .endif +; +; if number of parameters is incorrect, flag error +; + .if $narg!=_cp_no_params + .err + .print "cp_build_inst_h: incorrect number of parameters" + .exitm + .endif +; +; find correct value for precision field, if appropriate +; + .set _cp_prec_field,0 ; CORRECTION (1-4-89 Rich Parker) + .if _cp_op_type==0 ; need to look for precision + .set _cp_found_precision,0 + .ifeqs "@p3@","D_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","D_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_D" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .ifeqs "@p3@","S_S" + .set _cp_prec_field,CP_@p3 + .set _cp_found_precision,1 + .endif + .if _cp_found_precision==0 + .err + .print "cp_build_inst_h: missing precision field" + .exitm + .endif + .endif +; +; find value for destination field +; + .if _cp_op_type==0 + .set _cp_dest_field_val,CP_DEST_EQ_@p4 + .else + .set _cp_dest_field_val,CP_DEST_EQ_@p3 + .endif +; +; find correct value for p select field +; + .if _cp_p_paramno==0 + .set _cp_p_field_val,0x00000000 + .endif + .if _cp_p_paramno==4 + .set _cp_p_field_val,CP_P_EQ_@p4 + .endif + .if _cp_p_paramno==5 + .set _cp_p_field_val,CP_P_EQ_@p5 + .endif + .if _cp_p_paramno==6 + .set _cp_p_field_val,CP_P_EQ_@p6 + .endif + .if _cp_p_paramno==7 + .set _cp_p_field_val,CP_P_EQ_@p7 + .endif + .ifeqs "@p2@","I_NOT_T" + .set _cp_p_field_val,CP_P_EQ_IMINUS1 + .endif +; +; find correct value for q select field +; + .if _cp_q_paramno==0 + .set _cp_q_field_val,0x00000000 + .endif + .if _cp_q_paramno==4 + .set _cp_q_field_val,CP_Q_EQ_@p4 + .endif + .if _cp_q_paramno==5 + .set _cp_q_field_val,CP_Q_EQ_@p5 + .endif + .if _cp_q_paramno==6 + .set _cp_q_field_val,CP_Q_EQ_@p6 + .endif + .if _cp_q_paramno==7 + .set _cp_q_field_val,CP_Q_EQ_@p7 + .endif +; +; find correct value for t select field +; + .if _cp_t_paramno==0 + .set _cp_t_field_val,0x00000000 + .endif + .if _cp_t_paramno==4 + .set _cp_t_field_val,CP_T_EQ_@p4 + .endif + .if _cp_t_paramno==5 + .set _cp_t_field_val,CP_T_EQ_@p5 + .endif + .if _cp_t_paramno==6 + .set _cp_t_field_val,CP_T_EQ_@p6 + .endif + .if _cp_t_paramno==7 + .set _cp_t_field_val,CP_T_EQ_@p7 + .endif +; +; + .set _cp_inst_word,CP_@p2@|_cp_prec_field|_cp_dest_field_val + .set _cp_inst_word,_cp_inst_word|_cp_p_field_val + .set _cp_inst_word,_cp_inst_word|_cp_q_field_val + .set _cp_inst_word,_cp_inst_word|_cp_t_field_val +; + const p1,_cp_inst_word +; + .endm +; +; end of file fpsymbol.h diff --git a/newlib/libc/sys/a29khif/sys/intrinsi.h b/newlib/libc/sys/a29khif/sys/intrinsi.h new file mode 100644 index 000000000..1ae3a8b5c --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/intrinsi.h @@ -0,0 +1,457 @@ +; @(#)intrinsi.h 1.4 90/10/14 20:56:06, Copyright 1988, 1989, 1990 AMD +; start of file intrinsi.h +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; + .title "QTC Intrinsics Header file" +; +; Floating point library package for AMD 29000 family +; +; Copyright 1988 Advanced Micro Devices, Inc. +; +; All rights reserved +; +; Developed for AMD by Quantitative Technology Corporation +; 8700 SW Creekside Place Suite D +; Beaverton OR 97005 +; (503) 626-3081 +; +; Version information : +; +; Revision 1.6 89/06/29 16:08:51 jimh +; Fixed two bugs regarding compatiblility with the fpsymbol file. The +; definitions of ROUND_TO_PLUS/MINUS_INFINITY were reversed. Set_Rounding +; _Mode was fixed to set the local copy (29000 resident) of rounding mode +; in 29027 mode. +; +; +; Revision 1.5 89/04/17 11:20:49 jim +; replaced emfsr and emtsr macro calls with mfsr and mtsr instructions. +; +; Revision 1.4 89/02/24 15:18:04 jimh +; Added the definitions of FP_ENV_MODE_1_DEFAULT, FP_ENV_MODE_2_DEFAULT, +; FP_FLAGS_DEFAULT. +; Added macro clear_Flags. +; Changed the operation of set_Invalid_Op_flag, set_Reserved_Op_flag. +; +; Revision 1.3 89/02/01 18:30:12 jimh +; Changed the way set_Rounding_Mode, extract_Rounding_Mode, set_Invalid_Op_flag +; and set_Reserved_Op_flag are done. Changed save_FP_regs. +; +; Revision 1.2 89/01/31 10:01:54 jimh +; Updated to the new standard. This includes moving in register +; definitions, changing old symbols to reflect those in fpsymbol.h, +; and changing the include file to smartmac.h. +; +; + .include "../traps/fpenv.h" ; RPD 8/21/89 + .include "sys/smartmac.h" + + .equ DOUBLE_EXP_WIDTH, 11 + .equ DOUBLE_EXTENDED_WIDTH, 56 + + .equ SIGNED, 0 + .equ UNSIGNED, 1 + + .equ ROUND_TO_NEAREST, 0 + .equ ROUND_TO_MINUS_INFINITY, 1 + .equ ROUND_TO_PLUS_INFINITY, 2 + .equ ROUND_TO_ZERO, 3 + .equ ROUNDING_MODE_POSITION, 14 + + .equ FORMAT_INTEGER, 0 + .equ FORMAT_SINGLE, 1 + .equ FORMAT_DOUBLE, 2 + + .equ DOUBLE_MSB_MASK,0x00080000 +; +; The following are definitions used in the smart macro package, defining +; the 29000 shadow registers for the floating-point register file, and +; some temporary registers used during the library routines +; + .reg FP0, gr96 + .reg FP1, gr98 + .reg FP2, gr100 + .reg FP3, gr102 + .reg FP4, gr104 + .reg FP5, gr106 + .reg FP6, gr108 + .reg FP7, gr110 +; +; GR60 through GR6F are used to return the value of a function +; + .reg rtn0, gr96 + .reg rtn1, gr97 + .reg rtn2, gr98 + .reg rtn3, gr99 + .reg rtn4, gr100 + .reg rtn5, gr101 + .reg rtn6, gr102 + .reg rtn7, gr103 + .reg rtn8, gr104 + .reg rtn9, gr105 + .reg rtn10, gr106 + .reg rtn11, gr107 + .reg rtn12, gr108 + .reg rtn13, gr109 + .reg rtn14, gr110 + .reg rtn15, gr111 +; +; GR74..GR78 (116-120) - temporaries +; + .reg t0, gr116 + .reg t1, gr117 + .reg t2, gr118 + .reg t3, gr119 + .reg t4, gr120 +; +; FP_ENV_MODE_1 and FP_ENV_MODE_2 are based on 64-bit 29027 Mode register, +; and thus the fpsymbol.h CP_ constants may be used directly. +; +; FP_ENV_MODE_1 (Bits 0-31) +; +; 0-3 - floating-point format select, always 0 +; 4 - Saturate enable +; 5 - IEEE Affine/Projective mode (ignored by traps code) +; 6 - IEEE Trap enable +; 7 - IEEE Sudden underflow / FP Environment Fast Float Select +; 8-10 - ignored +; 11 - Integer multiplication signed/unsigned select +; 12-13 - Integer multiplication format adjust +; 14-16 - Rounding mode select +; 17-19 - ignored +; 20 - Pipeline mode select +; 21 - ignored +; 22 - Invalid operation mask bit +; 23 - Reserved operand mask bit +; 24 - Overflow mask bit +; 25 - Underflow mask bit +; 26 - Inexact result mask bit +; 27 - Zero mask bit +; 28-31 - ignored +; +; FP_ENV_MODE_2 (Bits 32-63) [Hardware configuration register, rarely modified] +; +; 32-35 - Pipeline timer count +; 36-39 - Timer count for multiply-accumulate operation +; 40-43 - Timer count for save state transaction request +; 44-63 - ignored +; +; FP_ENV_MODE_1 definitions +; + .set FP_ENV_MODE_1_DEFAULT, CP_PFF_EQ_IEEE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_AFF_EQ_IEEE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_AFFINE_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_IEEE_TRAPS_DISABLED + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_IEEE_GRADUAL_UFLOW_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_UNSIGNED_INT_MPY_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_MF_EQ_LSBS + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_RMS_EQ_NEAREST + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_FLOWTHROUGH_MODE + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_INVALID_OP_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_RESERVED_OP_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_OVERFLOW_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_UNDERFLOW_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_INEXACT_EXCP_MASK + .set FP_ENV_MODE_1_DEFAULT,FP_ENV_MODE_1_DEFAULT|CP_ZERO_EXCP_MASK +; +; FP_ENV_MODE_2 definitions +; + .set FP_ENV_MODE_2_DEFAULT, CP_PLTC_EQ_6 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_MATC_EQ_9 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_MVTC_EQ_3 + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_NORMAL_DRDY_MODE + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_HALT_ON_ERROR_DISABLED + .set FP_ENV_MODE_2_DEFAULT,FP_ENV_MODE_2_DEFAULT|CP_EXCP_DISABLED +; +; FP_FLAGS_DEFAULT definitions +; + .equ FP_FLAGS_DEFAULT, 0x00000000 ; No flags set +; +; The following macros are used by transcendentals to access the environment. +; +; MACRO NAME: clear_Flags +; +; FUNCTION: to clear the flags on entry to a transcendental routine. +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - temporary working register +; + .macro clear_Flags,reg,reg2 + .endm +; +; MACRO NAME: set_Invalid_Op_flag +; +; FUNCTION: to set the Invalid operation flag in the floating-point status +; register +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - 2nd temporary working register +; + .macro set_Invalid_Op_flag,reg,reg2 + .endm + +; +; MACRO NAME: set_Reserved_Op_flag +; +; FUNCTION: to set the Reserved Op flag in the floating-point status register +; +; INPUT PARAMETERS: reg - temporary working register +; reg2 - 2nd temporary working register +; + .macro set_Reserved_Op_flag,reg,reg2 + .endm + +; +; MACRO NAME: extract_Rounding_Mode +; +; FUNCTION: to extract the Rounding Mode portion of the floating-point +; invironment mode register, shift the value to the range of +; 0-7, and leave it in a register +; +; INPUT PARAMETERS: reg - destination for the mode +; + .macro extract_Rounding_Mode,reg + .ifdef _29027_MODE + .extern __29027Mode + const reg,__29027Mode + consth reg,__29027Mode + load 0,0,reg,reg + srl reg,reg,CP_RMS_POSITION + and reg,reg,CP_RMS_MASK >> CP_RMS_POSITION + .else + mfsr reg,FPE + and reg,reg,FPE_FPRND_MASK + srl reg,reg,FPE_FPRND_POSITION + .endif + .endm + +; +; MACRO NAME: set_Rounding_Mode +; +; FUNCTION: to set the 29027 Rounding Mode to a given value +; +; INPUT PARAMETERS: reg - working register +; reg2 - second working register +; rounding_mode - value of the rounding mode +; 0 - round to nearest +; 1 - round to minus infinity +; 2 - round to plus infinity +; 3 - round to zero +; +; NOTES: rounding_mode value is not checked +; 29027 Mode register is NOT written by this macro +; + .macro set_Rounding_Mode,reg,reg2,mode + .ifdef _29027_MODE + .extern __29027Mode + const reg2,__29027Mode + consth reg2,__29027Mode + load 0,0,reg,reg2 + const reg2,CP_RMS_MASK + consth reg2,CP_RMS_MASK + andn reg,reg,reg2 + const reg2,mode + sll reg2,reg2,CP_RMS_POSITION + or reg,reg,reg2 + const reg2,__29027Mode + consth reg2,__29027Mode + store 0,0,reg,reg2 + add reg2,reg2,4 + load 0,0,reg2,reg2 + cp_write_mode reg2,reg + .else + mfsr reg,FPE + andn reg,reg,FPE_FPRND_MASK + const reg2,mode + sll reg2,reg2,FPE_FPRND_POSITION + or reg,reg,reg2 + mtsr FPE,reg + .endif + .endm +; +; +; NOTE: The 29027 is the floating point coprocessor for the 29000. +; It contains 8 floating point registers FP0 to FP7. Three of +; these, FP0, FP1, and FP2, are currently designated as scratch, +; that is, they will not be preserved across calls. The other +; five contain values that must be saved whenever they are used +; in code, and restored before the exit of the routine. The 29027 +; registers are tagged with a single bit indicating the precision +; of the current value. When numbers are read into the 29027, +; they are always stored in double precision, so that single +; precision values are converted on input. Only the MOVE instruction +; fails to do this automatic widening. If the result from calculations +; in the 29027 ALU (determined by the result precision bit in the +; instruction word) is to be single precision and the result saved in +; an FP reg, the result precision bit from the instruction gets copied +; into the precision bit for the register. If a single precision +; SNaN is saved from the 29027, it will be converted to a double +; precision QNaN. Along the way it will cause an unmasked exception +; when read off the chip and cause changes to the status register. +; So the preservation routine will need to modify the mode register to +; mask off the exceptions, save the state of the status register before +; saving the FP regs, and restore the status and mode registers to their +; original settings when the save is complete. +; +; REFERENCE: The instructions to drive the Am29027 are described in the +; Am29027 manual beginning on page 17. Table 4 describes the +; operation codes and table 3 the multiplexer codes. Communication +; with the 29000 is described on pages 11 and 12 of the Am29027 +; manual and chapters 6 and 8 of the Am29000 User's Manual +; +; MACRO NAME: save_FP_regs +; +; FUNCTION: to save the AMD 29027 floating point register values in the +; 29000 general purpose registers +; +; INPUT PARAMETERS: fp_register, one of the 29027 registers FP3 - FP7 +; +; REGISTER USAGE: the following registers are used in save_FP_regs +; +; rtn0 this register is used in setting the mode and status registers +; rtn1 this register is used in setting the mode and status registers +; rtn6 this register is used to store the MSW when FP3 is saved +; rtn7 this register is used to store the LSW when FP3 is saved +; rtn8 this register is used to store the MSW when FP4 is saved +; rtn9 this register is used to store the LSW when FP4 is saved +; + + .macro save_FP_regs,fp_register + .ifdef _29027_MODE + ; + ; For 29027 mode, expand the macro into 29027 code to preserve FP register + ; + .ifeqs "@fp_register@","FP3" + const rtn6,__29027Mode ; Load the address of FP mode + consth rtn6,__29027Mode + load 0,0,rtn0,rtn6 ; Load MSW of FP mode into rtn0 + add rtn6,rtn6,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn6 ; Load LSW of FP mode into rtn1 + const rtn6,CP_RESERVED_OP_EXCP_MASK ; Load mask to disable exception + consth rtn6,CP_RESERVED_OP_EXCP_MASK + or rtn0,rtn0,rtn6 ; OR in disable of exception mask + cp_write_mode rtn1, rtn0 ; Reset mode w/exception disabled + cp_read_status rtn0 ; Read status and save in rtn1 + const rtn6,CP_PASS_P | CP_P_EQ_RF3 ; Instruction is PASS_P from RF3 + consth rtn6,CP_PASS_P | CP_P_EQ_RF3 + ; Load & execute the instruction + ; + store 1,CP_WRITE_INST | CP_START,rtn6,rtn6 + load 1,CP_READ_MSBS,rtn6,rtn6 ; Read the MSW to first register + load 1,CP_READ_LSBS,rtn7,rtn7 ; Read the LSW to second register + cp_write_status rtn0 ; Restore the original status + const rtn1,__29027Mode ; Load the address of FP mode + consth rtn1,__29027Mode + load 0,0,rtn0,rtn1 ; Load MSW of FP mode into rtn0 + add rtn1,rtn1,4 ; Increment rtn6 to __29027Mode+4 + load 0,0,rtn1,rtn1 ; Load LSW of FP mode into rtn1 + cp_write_mode rtn1, rtn0 ; Restore the original write mode + .endif + .ifeqs "@fp_register@","FP4" + const rtn8,__29027Mode ; Load the address of FP mode + consth rtn8,__29027Mode + load 0,0,rtn0,rtn8 ; Load MSW of FP mode into rtn0 + add rtn8,rtn8,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn8 ; Load LSW of FP mode into rtn1 + const rtn8,CP_RESERVED_OP_EXCP_MASK ; Load mask to disable exception + consth rtn8,CP_RESERVED_OP_EXCP_MASK + or rtn0,rtn0,rtn8 ; OR in disable of exception mask + cp_write_mode rtn1, rtn0 ; Reset mode w/exception disabled + cp_read_status rtn0 ; Read status and save in rtn1 + const rtn8,CP_PASS_P | CP_P_EQ_RF4 ; Instruction is PASS_P from RF4 + consth rtn8,CP_PASS_P | CP_P_EQ_RF4 + ; Load & execute the instruction + ; + store 1,CP_WRITE_INST | CP_START,rtn8,rtn8 + load 1,CP_READ_MSBS,rtn8,rtn8 ; Read the MSW to first register + load 1,CP_READ_LSBS,rtn9,rtn9 ; Read the LSW to second register + cp_write_status rtn0 ; Restore the original status + const rtn1,__29027Mode ; Load the address of FP mode + consth rtn1,__29027Mode + load 0,0,rtn0,rtn1 ; Load MSW of FP mode into rtn0 + add rtn1,rtn1,4 ; Increment rtn6 + 4 + load 0,0,rtn1,rtn1 ; Load LSW of FP mode into rtn1 + cp_write_mode rtn1, rtn0 ; Restore the original write mode + .endif + .else + ; + ; For 29000 mode, do nothing + ; + .endif + .endm +; +; MACRO NAME: restore_FP_regs +; +; FUNCTION: to restore the AMD 29027 floating point register values from the +; 29000 general purpose registers +; +; INPUT PARAMETERS: fp_register, one of the 29027 registers FP3 - FP7 +; +; REGISTER USAGE: the following registers are used in restore_FP_regs +; +; rtn0 this register is used in setting the mode and status registers +; rtn6 the value in this register is stored as the MSW of FP3 +; rtn7 the value in this register is stored as the LSW of FP3 +; rtn8 the value in this register is stored as the MSW of FP4 +; rtn9 the value in this register is stored as the LSW of FP4 +; + .macro restore_FP_regs,fp_register + .ifdef _29027_MODE + ; + ; For 29027 mode, move data from return registers to the correct FP register + ; + .ifeqs "@fp_register@","FP3" + store 1,CP_WRITE_R ,rtn6,rtn7 ; Move the data to the R register + ; Then create the instruction + ; + const rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF3 + consth rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF3 + ; + ; Perform the write + ; + store 1,(CP_WRITE_INST | CP_START),rtn0,0 + .endif + .ifeqs "@fp_register@","FP4" + store 1,CP_WRITE_R ,rtn8,rtn9 ; Move the data to the R register + ; Then create the instruction + ; + const rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF4 + consth rtn0,CP_MOVE_P|CP_D_D|CP_P_EQ_R|CP_DEST_EQ_RF4 + ; + ; Perform the write + ; + store 1,(CP_WRITE_INST | CP_START),rtn0,0 + .endif + .else + ; + ; For 29000 mode, do nothing. + ; + .endif + .endm +; +; end of file intrinsi.h diff --git a/newlib/libc/sys/a29khif/sys/macros.h b/newlib/libc/sys/a29khif/sys/macros.h new file mode 100644 index 000000000..3c832f033 --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/macros.h @@ -0,0 +1,37 @@ +; @(#)macros.h 1.3 90/10/14 20:56:10, Copyright 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; macros.h +; Short macros of general utility + + .macro mov, dest,src + add dest, src, 0 + .endm + + .macro not, dest,src + nand dest, src, src + .endm diff --git a/newlib/libc/sys/a29khif/sys/proreg.h b/newlib/libc/sys/a29khif/sys/proreg.h new file mode 100644 index 000000000..ca16b708c --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/proreg.h @@ -0,0 +1,60 @@ +; @(#)proreg.h 1.3 90/10/14 20:56:11, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; proreg.h +; + ; 16 function value return regs + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + .reg v4, gr100 + .reg v5, gr101 + .reg v6, gr102 + .reg v7, gr103 + .reg v8, gr104 + .reg v9, gr105 + .reg v10, gr106 + .reg v11, gr107 + .reg v12, gr108 + .reg v13, gr109 + .reg v14, gr110 + .reg v15, gr111 +; + .reg rsp, gr1 ; Register Stack Pointer + .reg ret, gr96 ; First word of return value + .reg rp0, gr112 ; Reserved for Programmer, #0 + .reg rp1, gr113 ; Reserved for Programmer, #1 + .reg rp2, gr114 ; Reserved for Programmer, #2 + .reg rp3, gr115 ; Reserved for Programmer, #3 + .reg tav, gr121 ; Temporary, Argument for Trap Handlers + .reg tpc, gr122 ; Temporary, Return PC for Trap Handlers + .reg lrp, gr123 ; Large Return Pointer + .reg slp, gr124 ; Static Link Pointer + .reg msp, gr125 ; Memory Stack Pointer + .reg rab, gr126 ; Register Allocate Bound + .reg rfb, gr127 ; Register Free Bound diff --git a/newlib/libc/sys/a29khif/sys/romdcl.h b/newlib/libc/sys/a29khif/sys/romdcl.h new file mode 100644 index 000000000..d52ca0598 --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/romdcl.h @@ -0,0 +1,392 @@ +; @(#)romdcl.h 1.4 90/10/14 20:56:12, Copyright 1988, 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + .sbttl "Register, Constant and Macro Declarations - v1.4" + +; Copyright 1988, Advanced Micro Devices +; Written by Gibbons and Associates, Inc. + +;v1.4 JG correct FUNCTION macro - fault in register padding to even + +;----------------------------------------------------------------------- +;Global registers +;----------------------------------------------------------------------- + .reg rsp, gr1 ;local reg. var. stack pointer + + .equ SYS_TEMP, 64 ;system temp registers + + .reg st0, gr64 + .reg st1, gr65 + .reg st2, gr66 + .reg st3, gr67 + .reg st4, gr68 + .reg st5, gr69 + .reg st6, gr70 + .reg st7, gr71 + .reg st8, gr72 + .reg st9, gr73 + .reg st10, gr74 + .reg st11, gr75 + .reg st12, gr76 + .reg st13, gr77 + .reg st14, gr78 + .reg st15, gr79 + + .equ SYS_STAT, 80 ;system static registers + + .reg ss0, gr80 + .reg ss1, gr81 + .reg ss2, gr82 + .reg ss3, gr83 + .reg ss4, gr84 + .reg ss5, gr85 + .reg ss6, gr86 + .reg ss7, gr87 + .reg ss8, gr88 + .reg ss9, gr89 + .reg ss10, gr90 + .reg ss11, gr91 + .reg ss12, gr92 + .reg ss13, gr93 + .reg ss14, gr94 + .reg ss15, gr95 + + .equ RET_VAL, 96 ;return registers + + .reg v0, gr96 + .reg v1, gr97 + .reg v2, gr98 + .reg v3, gr99 + .reg v4, gr100 + .reg v5, gr101 + .reg v6, gr102 + .reg v7, gr103 + .reg v8, gr104 + .reg v9, gr105 + .reg v10, gr106 + .reg v11, gr107 + .reg v12, gr108 + .reg v13, gr109 + .reg v14, gr110 + .reg v15, gr111 + + .equ TEMP_REG, 96 ;temp registers + + .reg t0, gr96 + .reg t1, gr97 + .reg t2, gr98 + .reg t3, gr99 + .reg t4, gr100 + .reg t5, gr101 + .reg t6, gr102 + .reg t7, gr103 + .reg t8, gr104 + .reg t9, gr105 + .reg t10, gr106 + .reg t11, gr107 + .reg t12, gr108 + .reg t13, gr109 + .reg t14, gr110 + .reg t15, gr111 + + .equ RES_REG, 112 ;reserved (for user) + + .reg r0, gr112 + .reg r1, gr113 + .reg r2, gr114 + .reg r3, gr115 + + .equ TEMP_EXT, 116 ;temp extension (and shared) + + .reg x0, gr116 + .reg x1, gr117 + .reg x2, gr118 + .reg x3, gr119 + .reg x4, gr120 + .reg x5, gr121 + .reg x6, gr122 + .reg x7, gr123 + .reg x8, gr124 + +;----------------------------------------------------------------------- +;Global registers with special calling convention uses +;----------------------------------------------------------------------- + + .reg tav, gr121 ;trap handler argument (also x6) + .reg tpc, gr122 ;trap handler return (also x7) + .reg lsrp, gr123 ;large return pointer (also x8) + .reg slp, gr124 ;static link pointer (also x9) + .reg msp, gr125 ;memory stack pointer + .reg rab, gr126 ;register alloc bound + .reg rfb, gr127 ;register frame bound + +;----------------------------------------------------------------------- +;Local compiler registers - output parameters, etc. +; (only valid if frame has been established) +;----------------------------------------------------------------------- + + .reg p15, lr17 ;parameter registers + .reg p14, lr16 + .reg p13, lr15 + .reg p12, lr14 + .reg p11, lr13 + .reg p10, lr12 + .reg p9, lr11 + .reg p8, lr10 + .reg p7, lr9 + .reg p6, lr8 + .reg p5, lr7 + .reg p4, lr6 + .reg p3, lr5 + .reg p2, lr4 + .reg p1, lr3 + .reg p0, lr2 + + +;----------------------------------------------------------------------- +;TLB register count +;----------------------------------------------------------------------- + + .equ TLB_CNT, 128 + + .eject + +;----------------------------------------------------------------------- +;constants for general use +;----------------------------------------------------------------------- + .equ WRD_SIZ, 4 ;word size + .equ TRUE, 0x80000000 ;logical true -- bit 31 + .equ FALSE, 0x00000000 ;logical false -- 0 + .equ CHKPAT_a5, 0xa5a5a5a5 ;check pattern + +;----------------------------------------------------------------------- +;constants for data access control +;----------------------------------------------------------------------- + .equ CE, 0b1 ;coprocessor enable + .equ CD, 0b0 ;coprocessor disable + + .equ AS, 0b1000000 ;set for I/O + .equ PA, 0b0100000 ;set for physical ad + .equ SB, 0b0010000 ;set for set BP + .equ UA, 0b0001000 ;set for user access + + .equ ROM_OPT, 0b100 ;OPT values for acc + .equ DATA_OPT, 0b000 + .equ INST_OPT, 0b000 + + .equ ROM_CTL, (PA + ROM_OPT) ;control field + .equ DATA_CTL, (PA + DATA_OPT) + .equ INST_CTL, (PA + INST_OPT) + .equ IO_CTL, (AS + PA + DATA_OPT) + + + .eject + +;----------------------------------------------------------------------- +;defined vectors +;----------------------------------------------------------------------- + + .equ V_IllegalOp, 0 + .equ V_Unaligned, 1 + .equ V_OutOfRange, 2 + .equ V_NoCoProc, 3 + .equ V_CoProcExcept, 4 + .equ V_ProtViol, 5 + .equ V_InstAccExcept, 6 + .equ V_DataAccExcept, 7 + .equ V_UserInstTLB, 8 + .equ V_UserDataTLB, 9 + .equ V_SupInstTLB, 10 + .equ V_SupDataTLB, 11 + .equ V_InstTLBProt, 12 + .equ V_DataTLBProt, 13 + .equ V_Timer, 14 + .equ V_Trace, 15 + .equ V_INTR0, 16 + .equ V_INTR1, 17 + .equ V_INTR2, 18 + .equ V_INTR3, 19 + .equ V_TRAP0, 20 + .equ V_TRAP1, 21 + + ; 22 - 31 reserved + + .equ V_MULTIPLY, 32 + .equ V_DIVIDE, 33 + .equ V_MULTIPLU, 34 + .equ V_DIVIDU, 35 + .equ V_CONVERT, 36 + + ; 37 - 41 reserved + + .equ V_FEQ, 42 + .equ V_DEQ, 43 + .equ V_FGT, 44 + .equ V_DGT, 45 + .equ V_FGE, 46 + .equ V_DGE, 47 + .equ V_FADD, 48 + .equ V_DADD, 49 + .equ V_FSUB, 50 + .equ V_DSUB, 51 + .equ V_FMUL, 52 + .equ V_DMUL, 53 + .equ V_FDIV, 54 + .equ V_DDIV, 55 + + ; 56 - 63 reserved + + .equ V_SPILL, 64 + .equ V_FILL, 65 + .equ V_BSDCALL, 66 + .equ V_SYSVCALL, 67 + .equ V_BRKPNT, 68 + .equ V_EPI_OS, 69 + + .eject + + .macro R_LEFT,REGVAR + + ;Rotate left + ; + ; Parameters: REGVAR register to rotate + + add REGVAR, REGVAR, REGVAR ;shift left by 1 bit, C = MSB + addc REGVAR, REGVAR, 0 ;add C to LSB + + .endm +;---------------------------------------------------------------------- + + + .macro FUNCTION,NAME,INCNT,LOCCNT,OUTCNT + + ;Introduces a non-leaf routine. + ; + ;This macro defines the standard tag word before the function, + ;then establishes the statement label with the function's name + ;and finally allocates a register stack frame. It may not be used + ;if a memory stack frame is required. + ; + ;Note also that the size of the register stack frame is limited. + ;Neither this nor the lack of a memory frame is considered to be + ;a severe restriction in an assembly language environment. The + ;assembler will report errors if the requested frame is too large + ;for this macro. + ; + ;It may be good practice to allocate an even number of both output + ;registers and local registers. This will help in maintaining + ;double word alignment within these groups. The macro will assure + ;double word alignment of the stack frame as a whole as required + ;for correct linkage. + ; + ; Paramters: NAME the function name + ; INCNT input parameter count + ; LOCCNT local register count + ; OUTCNT output parameter count + + .set ALLOC_CNT, ((2 + OUTCNT + LOCCNT) << 2) + .set PAD_CNT, (ALLOC_CNT & 4) + .set ALLOC_CNT, (ALLOC_CNT + PAD_CNT) + .set REG_PAD, (PAD_CNT >> 2) + .if (INCNT) + .set IN_PRM, (4 + OUTCNT + REG_PAD + LOCCNT + 0x80) + .endif + .if (LOCCNT) + .set LOC_REG, (2 + OUTCNT + REG_PAD + 0x80) + .endif + .if (OUTCNT) + .set OUT_PRM, (2 + 0x80) + .endif + + .word ((2 + OUTCNT + LOCCNT) << 16) +NAME: + sub rsp, rsp, ALLOC_CNT + asgeu V_SPILL, rsp, rab + add lr1, rsp, ((4 + OUTCNT + LOCCNT + REG_PAD + INCNT) << 2) + + .endm +;---------------------------------------------------------------------- + + + .macro LEAF,NAME,INCNT + + ;Introduces a leaf routine + ; + ;This macro defines the standard tag word before the function, + ;then establishes the statement label with the function's name. + ; + ; Paramters: NAME the function name + ; INCNT input parameter count + + .if (INCNT) + .set IN_PRM, (2 + 0x80) + .endif + .set ALLOC_CNT, 0 + + .word 0 +NAME: + + .endm +;---------------------------------------------------------------------- + + + .macro EPILOGUE + + ;De-allocates register stack frame (only and only if necessary). + + .if (ALLOC_CNT) + + add rsp, rsp, ALLOC_CNT + nop + jmpi lr0 + asleu V_FILL, lr1, rfb + + .else + + jmpi lr0 + nop + + .endif + + .set IN_PRM, (1024) ;illegal, to cause err on ref + .set LOC_REG, (1024) ;illegal, to cause err on ref + .set OUT_PRM, (1024) ;illegal, to cause err on ref + .set ALLOC_CNT, (1024) ;illegal, to cause err on ref + + .endm +;---------------------------------------------------------------------- + + +;Initial values for macro set variables to guard against misuse + + .set IN_PRM, (1024) ;illegal, to cause err on ref + .set LOC_REG, (1024) ;illegal, to cause err on ref + .set OUT_PRM, (1024) ;illegal, to cause err on ref + .set ALLOC_CNT, (1024) ;illegal, to cause err on ref + +;...................................................................... +; end of romdcl.h diff --git a/newlib/libc/sys/a29khif/sys/smartmac.h b/newlib/libc/sys/a29khif/sys/smartmac.h new file mode 100644 index 000000000..2c870fa2a --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/smartmac.h @@ -0,0 +1,1491 @@ +; @(#)smartmac.h 1.2 90/10/14 20:56:14, AMD +; start of smartmac.h file +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; + .title "AM29000 Smart Macro Package" +; +; Floating point package for AMD 29000 family +; +; Copyright 1988 Advanced Micro Devices, Inc. +; +; All rights reserved +; +; Developed for AMD by Quantitative Technology Corporation +; 8700 SW Creekside Place Suite D +; Beaverton OR 97005 +; (503) 626-3081 +; +; Version information : +; +; Version 1.0 - 1 June 1988 - Larry Westerman (smart_macros.h) +; +; Revision 1.4 89/02/01 18:26:03 jimh +; Changed to relect the new symbols from Bob Perlman, and the new include file.s +; +; Revision 1.3 89/01/31 10:13:34 jimh +; Updated to use symbols from Bob Perlmans fpsymbol.h file. This is +; an extensive change. +; +; Revision 1.2 89/01/26 09:23:50 jimh +; This version checked in previous to substituting Bob Perlman's floating +; point symbols. +; +; Revision 1.1 89/01/24 13:23:29 jim +; Initial revision +; Replaces smart_macros.h ver 1.11. +; +; +; +; +; NOTES: +; +; This package makes the following assumptions about the use of these +; smart macros: +; +; 1. These macros will be after the entry code for a transcendental +; routine. This entry code will move the original function arguments +; (by value, if the target language is FORTRAN) into the global +; registers t0/t1 and t2/t3 (t0 and t2 for single precision +; routines). +; 2. The sources of all operands will be one register from the +; following list: +; t0 or t2 - the source is one of the original input operands +; rtn0 - the source is rtn0, which should be used as the +; source for all constant values to be sent to the +; AM29027 (when used) +; FP0 - FP7 - the source is one of the fp registers +; 3. The destination of all operations will be a register from the +; following list: +; rtn0 - the destination is the function return value +; FP0 - FP7 - the destination is one of the fp registers +; 4. The additional registers available for temporary use are +; t4, lrp, and slp. +; +; These register definitions are all taken from the file "proregs.a" +; which was supplied by AMD. NOTE that the FP0-FP7 registers, for the +; Am29000 version of the file, overlap with the rtn0-rtn15 registers, so +; that FP0 corresponds to rtn0/rtn1, FP1 to rtn2/rtn3, and so forth. +; + .equ ERROR,0 + .equ NO_ERROR,1 + + .equ DOUBLE_FUNCTION,0 + .equ SINGLE_FUNCTION,1 + + .equ T_OPERATION,0 + .equ Q_OPERATION,1 + + .equ R_SOURCE_29000,0 + .equ R_SOURCE_29027,1 + + .equ S_SOURCE_29000,0 + .equ S_SOURCE_29027,1 + + .equ DESTINATION_29000, 0 + .equ DESTINATION_29027, 1 + +; +; SMART MACRO : mfadd +; +; FUNCTION : single-precision floating point addition +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfadd,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfadd: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_PLUS_T + .set OPERATION_TYPE, T_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fadd destination,operand1,operand2 + + .endif + + .endm ; end of mfadd macro definition + +; +; SMART MACRO : mfsub +; +; FUNCTION : single-precision floating point subtraction +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfsub,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfsub: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_MINUS_T + .set OPERATION_TYPE, T_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fsub destination,operand1,operand2 + + .endif + + .endm ; end of mfsub macro definition + +; +; SMART MACRO : mfmul +; +; FUNCTION : single-precision floating point multiplication +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfmul,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfmul: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_P_TIMES_Q + .set OPERATION_TYPE, Q_OPERATION + perform_single_operation destination,operand1,operand2 + read_single_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + fmul destination,operand1,operand2 + + .endif + + .endm ; end of mfmul macro definition + +; +; SMART MACRO : mfdiv +; +; FUNCTION : single-precision floating point divide +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mfdiv,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mfdiv: missing parameter(s)" + .exitm + .endif + + ; + ; Generate the trap instruction in all cases + ; + fdiv destination, operand1, operand2 + + .endm ; end of mfdiv macro definition + + +; +; SMART MACRO : mdadd +; +; FUNCTION : double-precision floating point addition +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdadd,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdadd: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_PLUS_T + .set OPERATION_TYPE, T_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dadd destination,operand1,operand2 + + .endif + + .endm ; end of mdadd macro definition + +; +; SMART MACRO : mdsub +; +; FUNCTION : double-precision floating point subtraction +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdsub,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdsub: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_MINUS_T + .set OPERATION_TYPE, T_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dsub destination,operand1,operand2 + + .endif + + .endm ; end of mdsub macro definition + +; +; SMART MACRO : mdmul +; +; FUNCTION : double-precision floating point multiplication +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mdmul,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mdmul: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; For 29027 mode, perform full suite of checking + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_P_TIMES_Q + .set OPERATION_TYPE, Q_OPERATION + perform_double_operation destination,operand1,operand2 + read_double_result destination + ; + ; Save the instruction for the next macro invocation + ; + .set PREVIOUS_INSTRUCTION, CURRENT_INSTRUCTION + + .else + ; + ; For 29000 mode, simply produce equivalent trap-inducing instruction + ; + dmul destination,operand1,operand2 + + .endif + + .endm ; end of mdmul macro definition + +; +; SMART MACRO : mddiv +; +; FUNCTION : double-precision floating point divide +; +; Required arguments : destination - one of possible destinations +; operand1 - one of possible sources +; operand2 - one of possible sources +; + .macro mddiv,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "mddiv: missing parameter(s)" + .exitm + .endif + + ; + ; Generate the trap instruction in all cases + ; + ddiv destination, operand1, operand2 + + .endm ; end of mfdiv macro definition + +; +; SMART MACRO: mconvert +; +; FUNCTION: Floating point/integer conversion +; +; PARAMETERS: destination - one of the possible destinations +; source - one of the possible sources +; sign_flag - one of SIGNED or UNSIGNED +; rounding_mode - one of ROUND_TO_NEAREST, ROUND_TO_PLUS, +; ROUND_TO_MINUS, ROUND_TO_ZERO +; destination_precision - one of FORMAT_INTEGER, FORMAT_DOUBLE, +; or FORMAT_SINGLE +; source_precision - one of FORMAT_INTEGER, FORMAT_DOUBLE, +; or FORMAT_SINGLE +; + .macro mconvert, destination, source, sign_flag, rounding_mode, destination_precision, source_precision + + .if $narg!=6 + .err + .print "mconvert: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .if ( destination_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_CONVERT_T_TO_INT + select_T_operand source + .if ( source_precision == FORMAT_DOUBLE ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_S_D + .else + .if ( source_precision == FORMAT_SINGLE ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_S_S + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .if ( destination_precision == FORMAT_DOUBLE ) + .if ( source_precision == FORMAT_SINGLE ) + .set CURRENT_INSTRUCTION, CP_PASS_P | CP_P_EQ_R | CP_D_S + select_P_operand source + .else + .if ( source_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_I_CONVERT_T_TO_FLOAT | CP_D_S + select_T_operand source + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .if ( destination_precision == FORMAT_SINGLE ) + .if ( source_precision == FORMAT_DOUBLE ) + .set CURRENT_INSTRUCTION, CP_PASS_P | CP_P_EQ_R | CP_S_D + select_P_operand source + .else + .if ( source_precision == FORMAT_INTEGER ) + .set CURRENT_INSTRUCTION, CP_I_CONVERT_T_TO_FLOAT | CP_S_S + select_T_operand source + .else + .err + .print "mconvert: invalid source type" + .exitm + .endif + .endif + .else + .err + .print "mconvert: invalid destination type " + .exitm + .endif + .endif + .endif + ; + ; Perform the operation, using a 29027 dummy register as the second + ; source operand, to avoid writing any data inappropriately to the + ; 29027 + ; + select_destination destination + .set S_SOURCE, S_SOURCE_29027 + .if ( source_precision == FORMAT_DOUBLE ) + write_and_execute_double_operation source, FP0 + .else + write_and_execute_single_operation source, FP0 + .endif + .if ( destination_precision == FORMAT_DOUBLE ) + read_double_result destination + .else + .if ( destination_precision == FORMAT_SINGLE ) + read_single_result destination + .else + read_integer_result destination + .endif + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + convert destination,source,sign_flag,rounding_mode,destination_precision,source_precision + + .endif + + .endm ; end of mfeq macro definition + +; +; SMART MACRO: mfeq +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfeq, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfeq: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_EQUAL_FLAG_POSITION + sll destination, destination, 31 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + feq destination,operand1,operand2 + + .endif + + .endm ; end of mfeq macro definition + +; +; SMART MACRO: mfge +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfge, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfge: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + and destination, destination, CP_EQUAL_FLAG | CP_GREATER_THAN_FLAG + cpneq destination, destination, 0x0 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + fge destination,operand1,operand2 + + .endif + + .endm ; end of mfge macro definition + +; +; SMART MACRO: mfgt +; +; FUNCTION: Single precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mfgt, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mfgt: missing parameter(s)" + .exitm + .endif + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_S_S | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compares - @destination@" + .exitm + .else + perform_single_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_GREATER_THAN_FLAG_POSITION + sll destination, destination, 31 + .endif + + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + fgt destination,operand1,operand2 + + .endif + + .endm ; end of mfgt macro definition + +; +; SMART MACRO: mdeq +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdeq, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdeq: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_EQUAL_FLAG_POSITION + sll destination, destination, 31 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + deq destination,operand1,operand2 + + .endif + + .endm ; end of mdeq macro definition + +; +; SMART MACRO: mdge +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdge, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdge: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + and destination, destination, CP_EQUAL_FLAG | CP_GREATER_THAN_FLAG + cpneq destination, destination, 0x0 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + dge destination,operand1,operand2 + + .endif + + .endm ; end of mdge macro definition + +; +; SMART MACRO: mdgt +; +; FUNCTION: Double precision, floating point compare +; +; PARAMETERS: destination - one of the possible destinations +; operand1 - one of the possible sources +; operand2 - one of the possible sources +; + .macro mdgt, destination, operand1, operand2 + + .if $narg!=3 + .err + .print "mdgt: missing parameter(s)" + .exitm + .endif + + + .ifdef _29027_MODE + ; + ; Generate in line 29027 code + ; + initialize_previous_instruction + .set CURRENT_INSTRUCTION, CP_D_D | CP_COMPARE_P_AND_T + .set OPERATION_TYPE, T_OPERATION + select_destination destination + ; + ; 29027 registers are not valid destinations for compare operations + ; If the destination is a 29000 register, write the appropriate + ; Boolean value to that register. + ; + .if ( DESTINATION == DESTINATION_29027 ) + .err + .print "29027 destinations invalid for compare - @destination@" + .exitm + .else + perform_double_operation destination, operand1, operand2 + cp_read_flags destination + srl destination, destination, CP_GREATER_THAN_FLAG_POSITION + sll destination, destination, 31 + .endif + .else + ; + ; For 29000 mode (the default) just invoke the trap-inducing instruction + ; + dgt destination,operand1,operand2 + + .endif + + .endm ; end of mdgt macro definition + +; +; MACRO NAME : perform_double_operation +; +; FUNCTION : After the instruction base is set up, do the appropriate checking +; to send the instruction if necessary, send the double-precision +; operands if necessary, and start the operation +; +; PARAMETERS : destination - one of possible destination operands +; operand1 - one of possible source operands +; operand2 - one of possible source operands +; + .macro perform_double_operation,destination,operand1,operand2 + + .if $narg!=3 + .err + .print "perform_double_operation: missing parameter(s)" + .exitm + .endif + + ; + ; Start defining the instruction + ; + select_destination destination + select_P_operand operand1 + select_S_operand operand2 + + write_and_execute_double_operation operand1, operand2 + + .endm ; End of perform_double_operation macro definition + +; +; MACRO NAME : perform_single_operation +; +; FUNCTION : After the instruction base is set up, do the appropriate checking +; to send the instruction if necessary, send the single-precision +; operands if necessary and start the operation +; +; PARAMETERS : destination - one of possible destination operands +; operand1 - one of possible source operands +; operand2 - one of possible source operands +; + .macro perform_single_operation,destination,operand1,operand2 + + ; + ; Start defining the instruction + ; + select_destination destination + select_P_operand operand1 + select_S_operand operand2 + write_and_execute_single_operation operand1,operand2 + + .endm ; End of perform_single_operation macro definition + +; +; MACRO NAME : write_and_execute_double_operation +; +; FUNCTION : Write the instruction and operands for a double-precision +; operation, and start the operation +; +; PARAMETER : operand1 - first operand of double-precision operation +; operand2 - second operand of operation +; + .macro write_and_execute_double_operation,operand1,operand2 + .if ( ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29027 ) ) + ; + ; If both sources are within the 29027, write the instruction + ; and start the operation + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4, START + .else + ; + ; One or both of the sources must be written first, so check the + ; previous instruction + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4 + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29027 ) + .ifeqs "@operand1@","t0" + cp_write_r t0, t1, START + .else + .ifeqs "@operand1@","t2" + cp_write_r t2, t3, START + .else + .ifeqs "@operand1@","rtn0" + cp_write_r rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .if ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29000 ) + .ifeqs "@operand2@","t0" + cp_write_s t0, t1, START + .else + .ifeqs "@operand2@","t2" + cp_write_s t2, t3, START + .else + .ifeqs "@operand2@","rtn0" + cp_write_s rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29000 ) + .ifeqs "@operand1@","t0" + cp_write_r t0, t1 + .else + .ifeqs "@operand1@","t2" + cp_write_r t2, t3 + .else + .ifeqs "@operand1@","rtn0" + cp_write_r rtn0, rtn1 + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .ifeqs "@operand2@","t0" + cp_write_s t0, t1, START + .else + .ifeqs "@operand2@","t2" + cp_write_s t2, t3, START + .else + .ifeqs "@operand2@","rtn0" + cp_write_s rtn0, rtn1, START + .else + .err + .print "Invalid source for double operation - @operand1@" + .exitm + .endif + .endif + .endif + .endif + .endif + + .endm ; end of write_and_execute_double_operation macro definition + +; +; MACRO NAME : write_and_execute_single_operation +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : operand1 - first source for single-precision operation +; operand2 - second source for operation +; + .macro write_and_execute_single_operation,operand1,operand2 + + .if ( ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29027 ) ) + ; + ; If both sources are within the 29027, write the instruction + ; and start the operation + ; + const t4, CURRENT_INSTRUCTION + consth t4, CURRENT_INSTRUCTION + cp_write_inst t4, START + .else + ; + ; One or both of the sources must be written first, so check the + ; previous instruction + ; + const t4,CURRENT_INSTRUCTION + consth t4,CURRENT_INSTRUCTION + cp_write_inst t4, START + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29027 ) + cp_write_r operand1, operand1, START + .endif + .if ( R_SOURCE == R_SOURCE_29027 ) && ( S_SOURCE == S_SOURCE_29000 ) + cp_write_s operand2, operand2, START + .endif + .if ( R_SOURCE == R_SOURCE_29000 ) && ( S_SOURCE == S_SOURCE_29000 ) + cp_write_rs operand1, operand2, START + .endif + .endif + + .endm ; End of write_and_execute_single_operation macro definition + +; +; MACRO NAME : read_double_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination - one of the possible destination registers +; + .macro read_double_result,destination + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_dp rtn0, rtn1 + .else + .err + .print "Invalid destination for double result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_double_result macro definition + +; +; MACRO NAME : read_single_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination +; + .macro read_single_result,destination + + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_sp rtn0 + .else + .err + .print "Invalid destination for single result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_single_result macro definition + +; +; MACRO NAME : read_integer_result +; +; FUNCTION : If necessary, read the result from the 29027 into a +; register on the 29000 +; +; PARAMETER : destination +; + .macro read_integer_result,destination + + .if ( DESTINATION == DESTINATION_29000 ) + ; + ; If the destination is not within the 29027 register file, read + ; the result and store it into the correct register in the 29000 + ; + .ifeqs "@destination@","rtn0" + cp_read_int rtn0 + .else + .err + .print "Invalid destination for single result - @destination@" + .exitm + .endif + .endif + + .endm ; End of read_integer_result macro definition + +; +; MACRO NAME : select_P_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable R_SOURCE to 0 for local register file, or 1 for +; floating-point register file. +; +; PARAMETER : operand1 - one of the possible source operands +; + .macro select_P_operand,operand1 + .ifeqs "@operand1@","t0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","t2" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","rtn0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_R + .exitm + .endif + .ifeqs "@operand1@","FP0" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF0 + .exitm + .endif + .ifeqs "@operand1@","FP1" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF1 + .exitm + .endif + .ifeqs "@operand1@","FP2" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF2 + .exitm + .endif + .ifeqs "@operand1@","FP3" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF3 + .exitm + .endif + .ifeqs "@operand1@","FP4" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF4 + .exitm + .endif + .ifeqs "@operand1@","FP5" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF5 + .exitm + .endif + .ifeqs "@operand1@","FP6" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF6 + .exitm + .endif + .ifeqs "@operand1@","FP7" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_P_EQ_RF7 + .exitm + .endif + .err + .print "@operand1@ - Invalid operand" + + .endm ; end of select_P_operand macro definition + +; +; MACRO NAME : select_S_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable S_SOURCE to S_SOURCE_29000 or S_SOURCE_29027 +; as appropriate +; +; PARAMETER : operand2 - one of the possible source operands +; + .macro select_S_operand,operand2 + .ifeqs "@operand2@","t0" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","t2" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","rtn0" + .set S_SOURCE,S_SOURCE_29000 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_S + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_S + .endif + .exitm + .endif + .ifeqs "@operand2@","FP0" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF0 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF0 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP1" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF1 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF1 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP2" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF2 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF2 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP3" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF3 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF3 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP4" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF4 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF4 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP5" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF5 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF5 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP6" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF6 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF6 + .endif + .exitm + .endif + .ifeqs "@operand2@","FP7" + .set S_SOURCE,S_SOURCE_29027 + .if ( OPERATION_TYPE == T_OPERATION ) + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF7 + .else + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_Q_EQ_RF7 + .endif + .exitm + .endif + .err + .print "@operand2@ - Invalid operand" + + .endm ; end of select_S_operand macro definition + +; +; MACRO NAME : select_T_operand +; +; FUNCTION : Given an operand, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word, to read the corresponding +; source into the T operand. In addition, set the +; variable R_SOURCE to 0 for local register file, or 1 for +; floating-point register file. +; +; PARAMETER : operand1 - one of the possible source operands +; + .macro select_T_operand,operand1 + .ifeqs "@operand1@","t0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","t2" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","rtn0" + .set R_SOURCE,R_SOURCE_29000 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_R + .exitm + .endif + .ifeqs "@operand1@","FP0" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF0 + .exitm + .endif + .ifeqs "@operand1@","FP1" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF1 + .exitm + .endif + .ifeqs "@operand1@","FP2" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF2 + .exitm + .endif + .ifeqs "@operand1@","FP3" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF3 + .exitm + .endif + .ifeqs "@operand1@","FP4" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF4 + .exitm + .endif + .ifeqs "@operand1@","FP5" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF5 + .exitm + .endif + .ifeqs "@operand1@","FP6" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF6 + .exitm + .endif + .ifeqs "@operand1@","FP7" + .set R_SOURCE,R_SOURCE_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_T_EQ_RF7 + .exitm + .endif + .err + .print "@operand1@ - Invalid operand" + + .endm ; end of select_T_operand macro definition + +; +; MACRO NAME : select_destination +; +; FUNCTION : Given a destination, determine if the operand is from the +; register file, and if so, set the appropriate bits in +; the current instruction word. In addition, set the +; variable DESTINATION to DESTINATION_29000 or +; DESTINATION_29027 as appropriate +; +; PARAMETER : destination - one of the possible destination operands +; + .macro select_destination,destination + .ifeqs "@destination@","rtn0" + .set DESTINATION,DESTINATION_29000 + .exitm + .endif + .ifeqs "@destination@","FP0" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF0 + .exitm + .endif + .ifeqs "@destination@","FP1" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF1 + .exitm + .endif + .ifeqs "@destination@","FP2" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF2 + .exitm + .endif + .ifeqs "@destination@","FP3" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF3 + .exitm + .endif + .ifeqs "@destination@","FP4" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF4 + .exitm + .endif + .ifeqs "@destination@","FP5" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF5 + .exitm + .endif + .ifeqs "@destination@","FP6" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF6 + .exitm + .endif + .ifeqs "@destination@","FP7" + .set DESTINATION,DESTINATION_29027 + .set CURRENT_INSTRUCTION, CURRENT_INSTRUCTION | CP_DEST_EQ_RF7 + .exitm + .endif + .err + .print "@destination@ - Invalid operand" + + .endm ; end of select_destination macro definition + +; MACRO NAME : initialize_previous_instruction +; +; FUNCTION : Make sure the previous instruction is defined and set to zero +; + .macro initialize_previous_instruction + + .ifndef PREVIOUS_INSTRUCTION + ; + ; Make sure that the previous instruction variable is initialized + ; + .set PREVIOUS_INSTRUCTION,0 + .endif + + .endm ; end of initialize_previous_instruction macro definition + + +; MACRO NAME : prepare_function_parameters +; +; FUNCTION : To place the input parameters into the correct position for +; use by the function body. When the target language is +; FORTRAN, the values of the input arguments are read from the +; supplied addresses and moved to the t0-t3 temporary area. +; When the target language is C or Pascal, the values of the +; input arguments are simply moved to the t0-t3 temporary area. +; + .macro prepare_function_parameters,arg1,arg2 + + .if $narg==0 + .err + .print "Missing function argument(s)" + .exitm + .endif + + .if $narg>2 + .err + .print "Too many function arguments + .exitm + .endif + + .if $narg>=1 + .if $isreg(@arg1) + .ifdef FORTRAN + load 0,0,t0,arg1 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t1,arg1,4 + load 0,0,t1,t1 + .endif + .else + add t0,arg1,0 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t1,%%(&arg1+1),0 + .endif + .endif + .else + .err + .print "Function argument not register - @arg1@" + .endif + .endif + .if $narg==2 + .if $isreg (@arg2) + .ifdef FORTRAN + load 0,0,t2,arg2 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t3,arg2,4 + load 0,0,t3,t3 + .endif + .else + add t2,arg2,0 + .if ( FUNCTION_TYPE == DOUBLE_FUNCTION ) + add t3,%%(&arg2+1),0 + .endif + .endif + .else + .err + .print "Function argument not register - @arg2@" + .endif + .endif + + .endm ; end of prepare_function_parameters macro definition + +; end of smartmac.h file diff --git a/newlib/libc/sys/a29khif/sys/sysmac.h b/newlib/libc/sys/a29khif/sys/sysmac.h new file mode 100644 index 000000000..01ff9eec2 --- /dev/null +++ b/newlib/libc/sys/a29khif/sys/sysmac.h @@ -0,0 +1,165 @@ +; @(#)sysmac.h 1.7 90/10/14 20:56:17, Copyright 1988, 1989, 1990 AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1988, 1989, 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; +; sysmac.h +; + .include "sys/proreg.h" + +; Supported system call function numbers - BSD emulation + + .equ BSD_exit, 1 + .equ BSD_open, 5 + .equ BSD_close, 6 + .equ BSD_remove, 10 + .equ BSD_lseek, 19 + .equ BSD_sbrk, 69 + .equ BSD_readv, 120 + .equ BSD_writev, 121 + .equ BSD_rename, 128 +; Functions above 0x100 are handled by Am29000 code + .equ BSD_alloc, 0x101 + .equ BSD_free, 0x102 + .equ BSD_getpagesize, 0x103 + + .equ BSD_clock, 0x111 + +; Supported system call function numbers - HIF version 2.0 + + .equ HIF_exit, 0x01 + + .equ HIF_open, 0x11 + .equ HIF_close, 0x12 + .equ HIF_read, 0x13 + .equ HIF_write, 0x14 + .equ HIF_lseek, 0x15 + .equ HIF_remove, 0x16 + .equ HIF_rename, 0x17 + .equ HIF_ioctl, 0x18 + .equ HIF_iowait, 0x19 + .equ HIF_iostat, 0x1a + + .equ HIF_tmpnam, 0x21 + + .equ HIF_time, 0x31 + + .equ HIF_getenv, 0x41 + .equ HIF_gettz, 0x43 + + .equ HIF_sysalloc, 0x101 + .equ HIF_alloc, HIF_sysalloc ;Synonym. + .equ HIF_sysfree, 0x102 + .equ HIF_free, HIF_sysfree ;Synonym. + .equ HIF_getpsize, 0x103 + .equ HIF_getpagesize,HIF_getpsize ;Synonym. + .equ HIF_getargs, 0x104 + + .equ HIF_clock, 0x111 + .equ HIF_cycles, 0x112 + + .equ HIF_setvec, 0x121 + .equ HIF_settrap, 0x122 + .equ HIF_setim, 0x123 + + .equ HIF_query, 0x131 + + .equ HIF_signal, 0x141 + .equ HIF_sigdfl, 0x142 + .equ HIF_sigret, 0x143 + .equ HIF_sigrep, 0x144 + .equ HIF_sigskp, 0x145 + .equ HIF_sendsig, 0x146 + +;Maintain compatibility with HIF 1.0 code. + + .equ EPI_exit, HIF_exit + + .equ EPI_open, HIF_open + .equ EPI_close, HIF_close + .equ EPI_read, HIF_read + .equ EPI_write, HIF_write + .equ EPI_lseek, HIF_lseek + .equ EPI_remove, HIF_remove + .equ EPI_rename, HIF_rename + + .equ EPI_tmpnam, HIF_tmpnam + + .equ EPI_time, HIF_time + + .equ EPI_getenv, HIF_getenv + .equ EPI_gettz, HIF_gettz + .equ EPI_alloc, HIF_sysalloc + .equ EPI_free, HIF_sysfree + .equ EPI_getpagesize, HIF_getpsize + .equ EPI_getargs, HIF_getargs + + .equ EPI_clock, HIF_clock + .equ EPI_cycles, HIF_cycles + + .equ EPI_setvec, HIF_setvec + + .equ V_SYSCALL, 69 + +; System call macros +/* Now that source files have been sed'd to avoid these macros, they + are just commented out. -- gnu@cygnus.com Oct 90 + + .ifdef _BSD_OS + .equ V_SYSCALL, 66 + .else + .equ V_SYSCALL, 69 + .endif + + .macro syscall, name + .ifdef _BSD_OS + const tav, SYS_@name + .else + const tav, HIF_@name + .endif + asneq V_SYSCALL, gr1, gr1 + .endm + +; error return +; set errno to the error value in tav. +; return -1 +; + .macro returnerr +;; .extern _errno ; rather have undef'd sym than multiple def's + const tpc, _errno + consth tpc, _errno + store 0, 0, tav, tpc + jmpi lr0 + constn v0, -1 + .endm + +; package the most common case in one macro +; + .macro system, name + syscall name + jmpti tav, lr0 + returnerr + .endm + */ diff --git a/newlib/libc/sys/a29khif/systime.s b/newlib/libc/sys/a29khif/systime.s new file mode 100644 index 000000000..95b193360 --- /dev/null +++ b/newlib/libc/sys/a29khif/systime.s @@ -0,0 +1,44 @@ +; @(#)systime.s 1.2 90/10/14 21:57:59, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; _time.s +; time_t secs = time( time_t *secs ); +; +; NOTE - Will not work on BSD (no time sys call) +; + .file "systime.s" + .include "sys/sysmac.h" + .text + .word 0x00030000 ; Debugger tag word + .global _time +_time: + const tav,HIF_time @ asneq V_SYSCALL,gr1,gr1 + cpeq gr97, lr2, 0 + jmpti gr97, lr0 + nop + jmpi lr0 + store 0, 0, gr96, lr2 + .end diff --git a/newlib/libc/sys/a29khif/vec.s b/newlib/libc/sys/a29khif/vec.s new file mode 100644 index 000000000..5a7083a3c --- /dev/null +++ b/newlib/libc/sys/a29khif/vec.s @@ -0,0 +1,35 @@ +; @(#)vec.s 1.2 90/10/14 21:58:01, AMD +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Copyright 1990 Advanced Micro Devices, Inc. +; +; This software is the property of Advanced Micro Devices, Inc (AMD) which +; specifically grants the user the right to modify, use and distribute this +; software provided this notice is not removed or altered. All other rights +; are reserved by AMD. +; +; AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +; SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +; DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +; USE OF THIS SOFTWARE. +; +; So that all may benefit from your experience, please report any problems +; or suggestions about this software to the 29K Technical Support Center at +; 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +; 0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. +; +; Advanced Micro Devices, Inc. +; 29K Support Products +; Mail Stop 573 +; 5900 E. Ben White Blvd. +; Austin, TX 78741 +; 800-292-9263 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + .global V_SPILL, V_FILL + .global V_EPI_OS, V_BSD_OS + + .equ V_SPILL, 64 + .equ V_FILL, 65 + + .equ V_BSD_OS, 66 + .equ V_EPI_OS, 69 + .end diff --git a/newlib/libc/sys/aclocal.m4 b/newlib/libc/sys/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/arm/Makefile.am b/newlib/libc/sys/arm/Makefile.am new file mode 100644 index 000000000..1af0f8ddd --- /dev/null +++ b/newlib/libc/sys/arm/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c libcfunc.c trap.S setjmp.S + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/arm/Makefile.in b/newlib/libc/sys/arm/Makefile.in new file mode 100644 index 000000000..ac2d41036 --- /dev/null +++ b/newlib/libc/sys/arm/Makefile.in @@ -0,0 +1,320 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c libcfunc.c trap.S setjmp.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o libcfunc.o trap.o setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/arm/aclocal.m4 b/newlib/libc/sys/arm/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/arm/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/arm/configure b/newlib/libc/sys/arm/configure new file mode 100755 index 000000000..3a28b7179 --- /dev/null +++ b/newlib/libc/sys/arm/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=trap.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/arm/configure.in b/newlib/libc/sys/arm/configure.in new file mode 100644 index 000000000..eeac4889f --- /dev/null +++ b/newlib/libc/sys/arm/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/arm configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(trap.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/arm/crt0.S b/newlib/libc/sys/arm/crt0.S new file mode 100644 index 000000000..174c88971 --- /dev/null +++ b/newlib/libc/sys/arm/crt0.S @@ -0,0 +1,244 @@ +#include "swi.h" + +/* ANSI concatenation macros. */ +#define CONCAT(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +#ifdef __USER_LABEL_PREFIX__ +#define FUNCTION( name ) CONCAT (__USER_LABEL_PREFIX__, name) +#else +#error __USER_LABEL_PREFIX is not defined +#endif + +/* .text is used instead of .section .text so it works with arm-aout too. */ + .text + .code 32 + .align 0 + + .global _mainCRTStartup + .global _start + .global start +start: +_start: +_mainCRTStartup: + +/* Start by setting up a stack */ +#ifdef ARM_RDP_MONITOR + /* Issue Demon SWI to read stack info */ + swi SWI_GetEnv /* Returns command line in r0 */ + mov sp,r1 /* and the highest memory address in r1 */ + ldr sl, .LC2 /* stack limit is at end of data */ + add sl, sl, #256 /* allow slop for stack overflow handling */ + /* and small frames */ +#else +#ifdef ARM_RDI_MONITOR + /* Issue Angel SWI to read stack info */ + mov r0, #AngelSWI_Reason_HeapInfo + adr r1, .LC0 /* point at ptr to 4 words to receive data */ + swi AngelSWI_ARM /* We are always in ARM mode for startup */ + ldr r0, .LC0 /* point at values read */ + ldr sp, [r0, #8] + ldr sl, [r0, #12] + add sl, sl, #256 /* allow slop for stack overflow handling */ + /* and small frames */ +#else + /* Set up the stack pointer to a fixed value */ + ldr r3, .LC0 + mov sp, r3 + /* Setup a default stack-limit in-case the code has been + compiled with "-mapcs-stack-check". Hard-wiring this value + is not ideal, since there is currently no support for + checking that the heap and stack have not collided, or that + this default 64k is enough for the program being executed. + However, it ensures that this simple crt0 world will not + immediately cause an overflow event: */ + sub sl, sp, #64 << 10 /* Still assumes 256bytes below sl */ +#endif +#endif + mov a2, #0 /* Second arg: fill value */ + mov fp, a2 /* Null frame pointer */ + mov r7, a2 /* Null frame pointer for Thumb */ + + ldr a1, .LC1 /* First arg: start of memory block */ + ldr a3, .LC2 + sub a3, a3, a1 /* Third arg: length of block */ + + +#ifdef __thumb__ /* Enter Thumb mode.... */ + + add a4, pc, #1 /* Get the address of the Thumb block */ + bx a4 /* Go there and start Thumb decoding */ + + .code 16 + .global __change_mode + .thumb_func +__change_mode: +#endif + + bl FUNCTION (memset) +#if !defined (ARM_RDP_MONITOR) && !defined (ARM_RDI_MONITOR) + mov r0, #0 /* no arguments */ + mov r1, #0 /* no argv either */ +#else + /* Need to set up standard file handles */ + bl FUNCTION (initialise_monitor_handles) + +#ifdef ARM_RDP_MONITOR + swi SWI_GetEnv /* sets r0 to point to the command line */ + mov r1, r0 +#else + mov r0, #AngelSWI_Reason_GetCmdLine + adr r1, .LC30 /* Space for command line */ + swi AngelSWI + ldr r1, .LC30 +#endif + /* Parse string at r1 */ + mov r0, #0 /* count of arguments so far */ +.LC10: +/* Skip leading blanks */ +#ifdef __thumb__ + ldrb r3, [r1] + add r1, #1 +#else + ldrb r3, [r1], #1 +#endif + cmp r3, #0 + beq .LC12 + cmp r3, #' ' + beq .LC10 + +/* See whether we are scanning a string */ + cmp r3, #'"' +#ifdef __thumb__ + beq .LC20 + cmp r3, #'\'' + bne .LC21 +.LC20: + mov r2, r3 + b .LC22 + +.LC21: + mov r2, #' ' /* terminator type */ + sub r1, r1, #1 /* adjust back to point at start char */ +.LC22: +#else + cmpne r3, #'\'' + moveq r2, r3 + movne r2, #' ' /* terminator type */ + subne r1, r1, #1 /* adjust back to point at start char */ +#endif + +/* Stack a pointer to the current argument */ +#ifdef __thumb__ + push {r1} +#else + stmfd sp!, {r1} +#endif + add r0, r0, #1 +.LC11: +#ifdef __thumb__ + ldrb r3, [r1] + add r1, #1 +#else + ldrb r3, [r1], #1 +#endif + cmp r3, #0 + beq .LC12 + cmp r2, r3 /* reached terminator? */ + bne .LC11 + mov r2, #0 + sub r3, r1, #1 + strb r2, [r3] /* terminate the arg string */ + b .LC10 + +.LC12: + mov r1, sp /* point at stacked arg pointers */ + /* We've now got the stacked args in order reverse the */ +#ifdef __thumb__ + mov r2, r0 + lsl r2, #2 + add r2, sp + mov r3, sp +.LC15: cmp r2, r3 + bls .LC14 + sub r2, #4 + ldr r4, [r2] + ldr r5, [r3] + str r5, [r2] + str r4, [r3] + add r3, #4 + b .LC15 +.LC14: +#else + add r2, sp, r0, LSL #2 /* End of args */ + mov r3, sp /* Start of args */ +.LC13: cmp r2, r3 + ldrhi r4,[r2, #-4] /* Reverse ends of list */ + ldrhi r5, [r3] + strhi r5, [r2, #-4]! + strhi r4, [r3], #4 + bhi .LC13 +#endif + +#endif + bl FUNCTION (main) + + bl FUNCTION (exit) /* Should not return */ + +#ifdef __thumb__ + /* Come out of Thumb mode... This code should be redundant... */ + + mov a4, pc + bx a4 + + .code 32 + .global change_back +change_back: + /* Halt the execution. This code should never be executed. */ + /* + ** With no debug monitor, this probably aborts (eventually). + ** With a Demon debug monitor, this halts cleanly. + ** With an Angel debug monitor, this will report 'Unknown SWI'. + */ + swi SWI_Exit +#endif + + /* For Thumb, constants must be after the code since only + positive offsets are supported for PC relative addresses. */ + + .align 0 +.LC0: +#ifdef ARM_RDI_MONITOR + .word HeapBase +#else +#ifndef ARM_RDP_MONITOR +#ifdef __pe__ + .word 0x800000 +#else +/* .word 0x80000 */ /* Top of RAM on the PIE board */ +#endif +#endif +#endif +.LC1: + .word __bss_start__ +.LC2: + .word __bss_end__ + +#ifdef ARM_RDI_MONITOR +.LC30: .word CommandLine + +/* Workspace for Angel calls. */ + .data +/* Data returned by monitor SWI */ +HeapBase: .word 0 +HeapLimit: .word 0 +StackBase: .word 0 +StackLimit: .word 0 +CommandLine: .space 256,0 /* Maximum length of 255 chars handled */ +#endif + +#ifdef __pe__ + .section .idata$3 + .long 0,0,0,0,0,0,0,0 +#endif + diff --git a/newlib/libc/sys/arm/libcfunc.c b/newlib/libc/sys/arm/libcfunc.c new file mode 100644 index 000000000..ddc611f34 --- /dev/null +++ b/newlib/libc/sys/arm/libcfunc.c @@ -0,0 +1,40 @@ +/* Support files for GNU libc. Files in the C namespace go here. + Files in the system namespace (ie those that start with an underscore) + go in syscalls.c. + + Note: These functions are in a seperate file so that OS providers can + overrride the system call stubs (defined in syscalls.c) without having + to provide libc funcitons as well. */ +#include "swi.h" + +#ifdef ARM_RDI_MONITOR + +static inline int +do_AngelSWI (int reason, void * arg) +{ + int value; + asm volatile ("mov r0, %1; mov r1, %2; swi %a3; mov %0, r0" + : "=r" (value) /* Outputs */ + : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */ + : "r0", "r1", "lr" + /* Clobbers r0 and r1, and lr if in supervisor mode */); + return value; +} +#endif /* ARM_RDI_MONITOR */ + + +void +abort (void) +{ +#ifdef ARM_RDI_MONITOR + do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_RunTimeError); +#else + asm ("mov r0,#17\nswi %a0" :: "i" (SWI_Exit)); +#endif +} + +void +alarm (void) +{ +} diff --git a/newlib/libc/sys/arm/setjmp.S b/newlib/libc/sys/arm/setjmp.S new file mode 100644 index 000000000..eab8e214a --- /dev/null +++ b/newlib/libc/sys/arm/setjmp.S @@ -0,0 +1,102 @@ +/* This is a simple version of setjmp and longjmp. + + Nick Clifton, Cygnus Solutions, 13 June 1997. */ + +/* ANSI concatenation macros. */ +#define CONCAT(a, b) CONCAT2(a, b) +#define CONCAT2(a, b) a ## b + +#ifdef __USER_LABEL_PREFIX__ +#define FUNCTION( name ) CONCAT (__USER_LABEL_PREFIX__, name) +#else +#error __USER_LABEL_PREFIX__ is not defined +#endif + + + .text + .code 32 + .align 2 + +/* int setjmp (jmp_buf); */ + .globl FUNCTION(setjmp) +FUNCTION(setjmp): + + /* Save all the callee-preserved registers into the jump buffer. */ + stmea a1!, { v1-v7, fp, ip, sp, lr } + +#if 0 /* Simulator does not cope with FP instructions yet.... */ +#ifndef __SOFTFP__ + /* Save the floating point registers */ + sfmea f4, 4, [a1] +#endif +#endif + /* When setting up the jump buffer return 0. */ + mov a1, #0 + + /* Return to caller, see comment in longjmp below */ +#ifdef __APCS_26__ + movs pc, lr +#else + tst lr, #1 + moveq pc, lr +.word 0xe12fff1e /* bx lr */ +#endif + + +/* volatile void longjmp (jmp_buf, int); */ + .globl FUNCTION(longjmp) +FUNCTION(longjmp): + + /* If we have stack extension code it ought to be handled here. */ + + /* Restore the registers, retrieving the state when setjmp() was called. */ + ldmfd a1!, { v1-v7, fp, ip, sp, lr } + +#if 0 /* Simulator does not cope with FP instructions yet.... */ +#ifndef __SOFTFP__ + /* Restore floating point registers as well */ + lfmfd f4, 4, [a1] +#endif +#endif + /* Put the return value into the integer result register. + But if it is zero then return 1 instead. */ + movs a1, a2 + moveq a1, #1 + + /* Arm/Thumb interworking support: + + The interworking scheme expects functions to use a BX instruction + to return control to their parent. Since we need this code to work + in both interworked and non-interworked environments as well as with + older processors which do not have the BX instruction we do the + following: + Test the return address. + If the bottom bit is clear perform an "old style" function exit. + (We know that we are in ARM mode and returning to an ARM mode caller). + Otherwise use the BX instruction to perform the function exit. + + We know that we will never attempt to perform the BX instruction on + an older processor, because that kind of processor will never be + interworked, and a return address with the bottom bit set will never + be generated. + + In addition, we do not actually assemble the BX instruction as this would + require us to tell the assembler that the processor is an ARM7TDMI and + it would store this information in the binary. We want this binary to be + able to be linked with binaries compiled for older processors however, so + we do not want such information stored there. + + If we are running using the APCS-26 convention however, then we never + test the bottom bit, because this is part of the processor status. + Instead we just do a normal return, since we know that we cannot be + returning to a Thumb caller - the Thumb doe snot support APCS-26 + */ + +#ifdef __APCS_26__ + movs pc, lr +#else + tst lr, #1 + moveq pc, lr +.word 0xe12fff1e /* bx lr */ +#endif + diff --git a/newlib/libc/sys/arm/swi.h b/newlib/libc/sys/arm/swi.h new file mode 100644 index 000000000..91fad5912 --- /dev/null +++ b/newlib/libc/sys/arm/swi.h @@ -0,0 +1,65 @@ + +/***************************************************************************\ +* SWI numbers * +\***************************************************************************/ + +/* SWI numbers for RDP (Demon) monitor */ +#define SWI_WriteC 0x0 +#define SWI_Write0 0x2 +#define SWI_ReadC 0x4 +#define SWI_CLI 0x5 +#define SWI_GetEnv 0x10 +#define SWI_Exit 0x11 +#define SWI_EnterOS 0x16 + +#define SWI_GetErrno 0x60 +#define SWI_Clock 0x61 +#define SWI_Time 0x63 +#define SWI_Remove 0x64 +#define SWI_Rename 0x65 +#define SWI_Open 0x66 + +#define SWI_Close 0x68 +#define SWI_Write 0x69 +#define SWI_Read 0x6a +#define SWI_Seek 0x6b +#define SWI_Flen 0x6c + +#define SWI_IsTTY 0x6e +#define SWI_TmpNam 0x6f +#define SWI_InstallHandler 0x70 +#define SWI_GenerateError 0x71 + + +/* Now the SWI numbers and reason codes for RDI (Angel) monitors */ +#define AngelSWI_ARM (0x123456) +#ifdef __thumb__ +#define AngelSWI (0xAB) +#else +#define AngelSWI AngelSWI_ARM +#endif + +/* The reason codes: */ +#define AngelSWI_Reason_Open (0x01) +#define AngelSWI_Reason_Close (0x02) +#define AngelSWI_Reason_WriteC (0x03) +#define AngelSWI_Reason_Write0 (0x04) +#define AngelSWI_Reason_Write (0x05) +#define AngelSWI_Reason_Read (0x06) +#define AngelSWI_Reason_ReadC (0x07) +#define AngelSWI_Reason_IsTTY (0x09) +#define AngelSWI_Reason_Seek (0x0A) +#define AngelSWI_Reason_FLen (0x0C) +#define AngelSWI_Reason_TmpNam (0x0D) +#define AngelSWI_Reason_Remove (0x0E) +#define AngelSWI_Reason_Rename (0x0F) +#define AngelSWI_Reason_Clock (0x10) +#define AngelSWI_Reason_Time (0x11) +#define AngelSWI_Reason_System (0x12) +#define AngelSWI_Reason_Errno (0x13) +#define AngelSWI_Reason_GetCmdLine (0x15) +#define AngelSWI_Reason_HeapInfo (0x16) +#define AngelSWI_Reason_EnterSVC (0x17) +#define AngelSWI_Reason_ReportException (0x18) +#define ADP_Stopped_ApplicationExit ((2 << 16) + 38) +#define ADP_Stopped_RunTimeError ((2 << 16) + 34) diff --git a/newlib/libc/sys/arm/sys/param.h b/newlib/libc/sys/arm/sys/param.h new file mode 100644 index 000000000..968c8ef14 --- /dev/null +++ b/newlib/libc/sys/arm/sys/param.h @@ -0,0 +1,10 @@ +/* ARM configuration file; HZ is 100 rather than the default 60 */ + +#ifndef _SYS_PARAM_H +# define _SYS_PARAM_H + +# define HZ (100) +# define NOFILE (60) +# define PATHSIZE (1024) + +#endif diff --git a/newlib/libc/sys/arm/syscalls.c b/newlib/libc/sys/arm/syscalls.c new file mode 100644 index 000000000..fb190e11b --- /dev/null +++ b/newlib/libc/sys/arm/syscalls.c @@ -0,0 +1,575 @@ +/* Support files for GNU libc. Files in the system namespace go here. + Files in the C namespace (ie those that do not start with an + underscore) go in .c. */ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/fcntl.h> +#include <stdio.h> +#include <time.h> +#include <sys/time.h> +#include <sys/times.h> +#include <errno.h> +#include <reent.h> +#include "swi.h" + +/* Forward prototypes. */ +#ifndef _PARAMS +#error UGG +#endif +int isatty _PARAMS ((int)); +clock_t _times _PARAMS ((struct tms *)); +int _gettimeofday _PARAMS ((struct timeval *, struct timezone *)); +void _raise _PARAMS ((void)); +int _unlink _PARAMS ((void)); +int _link _PARAMS ((void)); +int _fstat _PARAMS ((int, struct stat *)); +caddr_t _sbrk _PARAMS ((int)); +int _getpid _PARAMS ((int)); +int _kill _PARAMS ((int, int)); +void _exit _PARAMS ((int)); +int _close _PARAMS ((int)); +int _swiclose _PARAMS ((int)); +int _open _PARAMS ((const char *, int, ...)); +int _swiopen _PARAMS ((const char *, int)); +int _write _PARAMS ((int, char *, int)); +int _swiwrite _PARAMS ((int, char *, int)); +int _lseek _PARAMS ((int, int, int)); +int _swilseek _PARAMS ((int, int, int)); +int _read _PARAMS ((int, char *, int)); +int _swiread _PARAMS ((int, char *, int)); +void initialise_monitor_handles _PARAMS ((void)); + +static int wrap _PARAMS ((int)); +static int error _PARAMS ((int)); +static int get_errno _PARAMS ((void)); +static int remap_handle _PARAMS ((int)); +static int do_AngelSWI _PARAMS ((int, void *)); +static int findslot _PARAMS ((int)); + +/* Register name faking - works in collusion with the linker. */ +register char * stack_ptr asm ("sp"); + + +/* following is copied from libc/stdio/local.h to check std streams */ +extern void _EXFUN(__sinit,(struct _reent *)); +#define CHECK_INIT(fp) \ + do \ + { \ + if ((fp)->_data == 0) \ + (fp)->_data = _REENT; \ + if (!(fp)->_data->__sdidinit) \ + __sinit ((fp)->_data); \ + } \ + while (0) + +/* Adjust our internal handles to stay away from std* handles */ +#define FILE_HANDLE_OFFSET (0x20) + +static int std_files_checked; +static int monitor_stdin; +static int monitor_stdout; +static int monitor_stderr; + +/* Struct used to keep track of the file position, just so we + can implement fseek(fh,x,SEEK_CUR). */ +typedef struct +{ + int handle; + int pos; +} +poslog; + +#define MAX_OPEN_FILES 20 +static poslog openfiles [MAX_OPEN_FILES]; + +static int +findslot (int fh) +{ + int i; + for (i = 0; i < MAX_OPEN_FILES; i ++) + if (openfiles[i].handle == fh) + break; + return i; +} + +#ifdef ARM_RDI_MONITOR + +static inline int +do_AngelSWI (int reason, void * arg) +{ + int value; + asm volatile ("mov r0, %1; mov r1, %2; swi %a3; mov %0, r0" + : "=r" (value) /* Outputs */ + : "r" (reason), "r" (arg), "i" (AngelSWI) /* Inputs */ + : "r0", "r1", "lr" + /* Clobbers r0 and r1, and lr if in supervisor mode */); + return value; +} +#endif /* ARM_RDI_MONITOR */ + +/* Function to convert std(in|out|err) handles to internal versions */ +static int +remap_handle (int fh) +{ + if (!std_files_checked) + { + CHECK_INIT(stdin); + CHECK_INIT(stdout); + CHECK_INIT(stderr); + std_files_checked = 1; + } + if (fh == __sfileno (stdin)) + return monitor_stdin; + if (fh == __sfileno (stdout)) + return monitor_stdout; + if (fh == __sfileno (stderr)) + return monitor_stderr; + + return fh - FILE_HANDLE_OFFSET; +} + +void +initialise_monitor_handles (void) +{ + int i; + +#ifdef ARM_RDI_MONITOR + int volatile block[3]; + + block[0] = (int) ":tt"; + block[2] = 3; /* length of filename */ + block[1] = 0; /* mode "r" */ + monitor_stdin = do_AngelSWI (AngelSWI_Reason_Open, (void *) block); + + block[0] = (int) ":tt"; + block[2] = 3; /* length of filename */ + block[1] = 4; /* mode "w" */ + monitor_stdout = monitor_stderr = do_AngelSWI (AngelSWI_Reason_Open, (void *) block); +#else + int fh; + const char * name; + + name = ":tt"; + asm ("mov r0,%2; mov r1, #0; swi %a1; mov %0, r0" + : "=r"(fh) + : "i" (SWI_Open),"r"(name) + : "r0","r1"); + monitor_stdin = fh; + + name = ":tt"; + asm ("mov r0,%2; mov r1, #4; swi %a1; mov %0, r0" + : "=r"(fh) + : "i" (SWI_Open),"r"(name) + : "r0","r1"); + monitor_stdout = monitor_stderr = fh; +#endif + + for (i = 0; i < MAX_OPEN_FILES; i ++) + openfiles[i].handle = -1; + + openfiles[0].handle = monitor_stdin; + openfiles[0].pos = 0; + openfiles[1].handle = monitor_stdout; + openfiles[1].pos = 0; +} + +static int +get_errno (void) +{ +#ifdef ARM_RDI_MONITOR + return do_AngelSWI (AngelSWI_Reason_Errno, NULL); +#else + asm ("swi %a0" :: "i" (SWI_GetErrno)); +#endif +} + +static int +error (int result) +{ + errno = get_errno (); + return result; +} + +static int +wrap (int result) +{ + if (result == -1) + return error (-1); + return result; +} + +/* Returns # chars not! written */ + +int +_swiread (int file, + char * ptr, + int len) +{ + int fh = remap_handle (file); +#ifdef ARM_RDI_MONITOR + int block[3]; + + block[0] = fh; + block[1] = (int) ptr; + block[2] = len; + + return do_AngelSWI (AngelSWI_Reason_Read, block); +#else + asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0" + : /* No outputs */ + : "i"(SWI_Read), "r"(fh), "r"(ptr), "r"(len) + : "r0","r1","r2"); +#endif +} + +int +_read (int file, + char * ptr, + int len) +{ + int slot = findslot (remap_handle (file)); + int x = _swiread (file, ptr, len); + + if (x < 0) + return error (-1); + + if (slot != MAX_OPEN_FILES) + openfiles [slot].pos += len - x; + + /* x == len is not an error, at least if we want feof() to work */ + return len - x; +} + +int +_swilseek (int file, + int ptr, + int dir) +{ + int res; + int fh = remap_handle (file); + int slot = findslot (fh); +#ifdef ARM_RDI_MONITOR + int block[2]; +#endif + + if (dir == SEEK_CUR) + { + if (slot == MAX_OPEN_FILES) + return -1; + ptr = openfiles[slot].pos + ptr; + dir = SEEK_SET; + } + +#ifdef ARM_RDI_MONITOR + if (dir == SEEK_END) + { + block[0] = fh; + ptr += do_AngelSWI (AngelSWI_Reason_FLen, block); + } + + /* This code only does absolute seeks */ + block[0] = remap_handle (file); + block[1] = ptr; + res = do_AngelSWI (AngelSWI_Reason_Seek, block); +#else + if (dir == SEEK_END) + { + asm ("mov r0, %2; swi %a1; mov %0, r0" + : "=r" (res) + : "i" (SWI_Flen), "r" (fh) + : "r0"); + ptr += res; + } + + /* This code only does absolute seeks */ + asm ("mov r0, %2; mov r1, %3; swi %a1; mov %0, r0" + : "=r" (res) + : "i" (SWI_Seek), "r" (fh), "r" (ptr) + : "r0", "r1"); +#endif + + if (slot != MAX_OPEN_FILES && res == 0) + openfiles[slot].pos = ptr; + + /* This is expected to return the position in the file */ + return res == 0 ? ptr : -1; +} + +int +_lseek (int file, + int ptr, + int dir) +{ + return wrap (_swilseek (file, ptr, dir)); +} + +/* Returns #chars not! written */ +int +_swiwrite ( + int file, + char * ptr, + int len) +{ + int fh = remap_handle (file); +#ifdef ARM_RDI_MONITOR + int block[3]; + + block[0] = fh; + block[1] = (int) ptr; + block[2] = len; + + return do_AngelSWI (AngelSWI_Reason_Write, block); +#else + asm ("mov r0, %1; mov r1, %2;mov r2, %3; swi %a0" + : /* No outputs */ + : "i"(SWI_Write), "r"(fh), "r"(ptr), "r"(len) + : "r0","r1","r2"); +#endif +} + +int +_write (int file, + char * ptr, + int len) +{ + int slot = findslot (remap_handle (file)); + int x = _swiwrite (file, ptr,len); + + if (x == -1 || x == len) + return error (-1); + + if (slot != MAX_OPEN_FILES) + openfiles[slot].pos += len - x; + + return len - x; +} + +int +_swiopen (const char * path, + int flags) +{ + int aflags = 0, fh; +#ifdef ARM_RDI_MONITOR + int block[3]; +#endif + + int i = findslot (-1); + + if (i == MAX_OPEN_FILES) + return -1; + + /* The flags are Unix-style, so we need to convert them */ +#ifdef O_BINARY + if (flags & O_BINARY) + aflags |= 1; +#endif + + if (flags & O_RDWR) + aflags |= 2; + + if (flags & O_CREAT) + aflags |= 4; + + if (flags & O_TRUNC) + aflags |= 4; + + if (flags & O_APPEND) + { + aflags &= ~4; /* Can't ask for w AND a; means just 'a' */ + aflags |= 8; + } + +#ifdef ARM_RDI_MONITOR + block[0] = (int) path; + block[2] = strlen (path); + block[1] = aflags; + + fh = do_AngelSWI (AngelSWI_Reason_Open, block); + +#else + asm ("mov r0,%2; mov r1, %3; swi %a1; mov %0, r0" + : "=r"(fh) + : "i" (SWI_Open),"r"(path),"r"(aflags) + : "r0","r1"); +#endif + + if (fh >= 0) + { + openfiles[i].handle = fh; + openfiles[i].pos = 0; + } + + return fh >= 0 ? fh + FILE_HANDLE_OFFSET : error (fh); +} + +int +_open (const char * path, + int flags, + ...) +{ + return wrap (_swiopen (path, flags)); +} + +int +_swiclose (int file) +{ + int myhan = remap_handle (file); + int slot = findslot (myhan); + + if (slot != MAX_OPEN_FILES) + openfiles[slot].handle = -1; + +#ifdef ARM_RDI_MONITOR + return do_AngelSWI (AngelSWI_Reason_Close, & myhan); +#else + asm ("mov r0, %1; swi %a0" :: "i" (SWI_Close),"r"(myhan):"r0"); +#endif +} + +int +_close (int file) +{ + return wrap (_swiclose (file)); +} + +void +_exit (int n) +{ + /* FIXME: return code is thrown away. */ + +#ifdef ARM_RDI_MONITOR + do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_ApplicationExit); +#else + asm ("swi %a0" :: "i" (SWI_Exit)); +#endif +} + +int +_kill (int n, int m) +{ +#ifdef ARM_RDI_MONITOR + return do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_ApplicationExit); +#else + asm ("swi %a0" :: "i" (SWI_Exit)); +#endif +} + +int +_getpid (int n) +{ + return 1; +} + +caddr_t +_sbrk (int incr) +{ + extern char end asm ("end"); /* Defined by the linker */ + static char * heap_end; + char * prev_heap_end; + + if (heap_end == NULL) + heap_end = & end; + + prev_heap_end = heap_end; + + if (heap_end + incr > stack_ptr) + { + _write (1, "_sbrk: Heap and stack collision\n", 32); + abort (); + } + + heap_end += incr; + + return (caddr_t) prev_heap_end; +} + +int +_fstat (int file, struct stat * st) +{ + memset (st, 0, sizeof (* st)); + st->st_mode = S_IFCHR; + st->st_blksize = 1024; + return 0; +} + +int +_link (void) +{ + return -1; +} + +int +_unlink (void) +{ + return -1; +} + +void +_raise (void) +{ + return; +} + +int +_gettimeofday (struct timeval * tp, struct timezone * tzp) +{ + + if (tp) + { + /* Ask the host for the seconds since the Unix epoch */ +#ifdef ARM_RDI_MONITOR + tp->tv_sec = do_AngelSWI (AngelSWI_Reason_Time,NULL); +#else + { + int value; + asm ("swi %a1; mov %0, r0" : "=r" (value): "i" (SWI_Time) : "r0"); + tp->tv_sec = value; + } +#endif + tp->tv_usec = 0; + } + + /* Return fixed data for the timezone */ + if (tzp) + { + tzp->tz_minuteswest = 0; + tzp->tz_dsttime = 0; + } + + return 0; +} + +/* Return a clock that ticks at 100Hz. */ +clock_t +_times (struct tms * tp) +{ + clock_t timeval; + +#ifdef ARM_RDI_MONITOR + timeval = do_AngelSWI (AngelSWI_Reason_Clock,NULL); +#else + asm ("swi %a1; mov %0, r0" : "=r" (timeval): "i" (SWI_Clock) : "r0"); +#endif + + if (tp) + { + tp->tms_utime = timeval; /* user time */ + tp->tms_stime = 0; /* system time */ + tp->tms_cutime = 0; /* user time, children */ + tp->tms_cstime = 0; /* system time, children */ + } + + return timeval; +}; + + +int +isatty (int fd) +{ + return 1; +} + diff --git a/newlib/libc/sys/arm/trap.S b/newlib/libc/sys/arm/trap.S new file mode 100644 index 000000000..328fabca5 --- /dev/null +++ b/newlib/libc/sys/arm/trap.S @@ -0,0 +1,93 @@ + /* Run-time exception support */ +#include "swi.h" + +/* .text is used instead of .section .text so it works with arm-aout too. */ + .text + .align 0 + .global __rt_stkovf_split_big + .global __rt_stkovf_split_small + +/* The following functions are provided for software stack checking. + If hardware stack-checking is being used then the code can be + compiled without the PCS entry checks, and simply rely on VM + management to extend the stack for a thread. + + The stack extension event occurs when the PCS function entry code + would result in a stack-pointer beneath the stack-limit register + value. The system relies on the following map: + + +-----------------------------------+ <-- end of stack block + | ... | + | ... | + | active stack | + | ... | <-- sp (stack-pointer) somewhere in here + | ... | + +-----------------------------------+ <-- sl (stack-limit) + | stack-extension handler workspace | + +-----------------------------------+ <-- base of stack block + + The "stack-extension handler workspace" is an amount of memory in + which the stack overflow support code must execute. It must be + large enough to deal with the worst case path through the extension + code. At the moment the compiler expects this to be AT LEAST + 256bytes. It uses this fact to code functions with small local + data usage within the overflow space. + + In a true target environment We may need to increase the space + between sl and the true limit to allow for the stack extension + code, SWI handlers and for undefined instruction handlers of the + target environment. */ + +__rt_stkovf_split_small: + mov ip,sp @ Ensure we can calculate the stack required + @ and fall through to... +__rt_stkovf_split_big: + @ in: sp = current stack-pointer (beneath stack-limit) + @ sl = current stack-limit + @ ip = low stack point we require for the current function + @ lr = return address into the current function + @ fp = frame-pointer + @ original sp --> +----------------------------------+ + @ | pc (12 ahead of PCS entry store) | + @ current fp ---> +----------------------------------+ + @ | lr (on entry) pc (on exit) | + @ +----------------------------------+ + @ | sp ("original sp" on entry) | + @ +----------------------------------+ + @ | fp (on entry to function) | + @ +----------------------------------+ + @ | | + @ | ..argument and work registers.. | + @ | | + @ current sp ---> +----------------------------------+ + @ + @ The "current sl" is somewhere between "original sp" and "current sp" + @ but above "true sl". The "current sl" should be at least 256bytes + @ above the "true sl". The 256byte stack guard should be large enough + @ to deal with the worst case function entry stacking (160bytes) plus + @ the stack overflow handler stacking requirements, plus the stack + @ required for the memory allocation routines. + @ + @ Normal PCS entry (before stack overflow check) can stack 16 + @ standard registers (64bytes) and 8 floating point registers + @ (96bytes). This gives a minimum stack guard of 160bytes (excluding + @ the stack required for the code). (Actually only a maximum of + @ 14standard registers are ever stacked on entry to a function). + @ + @ NOTE: Structure returns are performed by the caller allocating a + @ dummy space on the stack and passing in a "phantom" arg1 into + @ the function. This means that we do not need to worry about + @ preserving the stack under "sp" even on function return. + @ + @ Code should never poke values beneath sp. The sp register + @ should always be "dropped" first to cover the data. This + @ protects the data against any events that may try and use + @ the stack. + + SUB ip, sp, ip @ extra stack required for function + @ Add stack extension code here. If desired a new stack chunk + @ can be allocated, and the register state updated suitably. + + @ We now know how much extra stack the function requires. + @ Terminate the program for the moment: + swi SWI_Exit diff --git a/newlib/libc/sys/configure b/newlib/libc/sys/configure new file mode 100755 index 000000000..a62edf598 --- /dev/null +++ b/newlib/libc/sys/configure @@ -0,0 +1,1809 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=a29khif + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../.. $srcdir/../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../.. $srcdir/../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../.." + fi +else + newlib_basedir="${srcdir}/../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +if test -n "${sys_dir}"; then + subdirs="${sys_dir}" + +fi + +CRT0= +if test -n "${sys_dir}"; then + CRT0=crt0.o +fi + + + + +if test x${sys_dir} != x; then + HAVE_SYS_DIR_TRUE= + HAVE_SYS_DIR_FALSE='#' +else + HAVE_SYS_DIR_TRUE='#' + HAVE_SYS_DIR_FALSE= +fi + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g +s%@subdirs@%$subdirs%g +s%@CRT0@%$CRT0%g +s%@HAVE_SYS_DIR_TRUE@%$HAVE_SYS_DIR_TRUE%g +s%@HAVE_SYS_DIR_FALSE@%$HAVE_SYS_DIR_FALSE%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + +if test "$no_recursion" != yes; then + + # Remove --cache-file and --srcdir arguments so they do not pile up. + ac_sub_configure_args= + ac_prev= + for ac_arg in $ac_configure_args; do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case "$ac_arg" in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + *) ac_sub_configure_args="$ac_sub_configure_args $ac_arg" ;; + esac + done + + for ac_config_dir in ${sys_dir}; do + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + if test ! -d $srcdir/$ac_config_dir; then + continue + fi + + echo configuring in $ac_config_dir + + case "$srcdir" in + .) ;; + *) + if test -d ./$ac_config_dir || mkdir ./$ac_config_dir; then :; + else + { echo "configure: error: can not create `pwd`/$ac_config_dir" 1>&2; exit 1; } + fi + ;; + esac + + ac_popdir=`pwd` + cd $ac_config_dir + + # A "../" for each directory in /$ac_config_dir. + ac_dots=`echo $ac_config_dir|sed -e 's%^\./%%' -e 's%[^/]$%&/%' -e 's%[^/]*/%../%g'` + + case "$srcdir" in + .) # No --srcdir option. We are building in place. + ac_sub_srcdir=$srcdir ;; + /*) # Absolute path. + ac_sub_srcdir=$srcdir/$ac_config_dir ;; + *) # Relative path. + ac_sub_srcdir=$ac_dots$srcdir/$ac_config_dir ;; + esac + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f $ac_sub_srcdir/configure; then + ac_sub_configure=$ac_sub_srcdir/configure + elif test -f $ac_sub_srcdir/configure.in; then + ac_sub_configure=$ac_configure + else + echo "configure: warning: no configuration information is in $ac_config_dir" 1>&2 + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + + # Make the cache file name correct relative to the subdirectory. + case "$cache_file" in + /*) ac_sub_cache_file=$cache_file ;; + *) # Relative path. + ac_sub_cache_file="$ac_dots$cache_file" ;; + esac + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo "running ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir" + # The eval makes quoting arguments work. + if eval ${CONFIG_SHELL-/bin/sh} $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_sub_srcdir + then : + else + { echo "configure: error: $ac_sub_configure failed for $ac_config_dir" 1>&2; exit 1; } + fi + fi + + cd $ac_popdir + done +fi + diff --git a/newlib/libc/sys/configure.in b/newlib/libc/sys/configure.in new file mode 100644 index 000000000..ea6749041 --- /dev/null +++ b/newlib/libc/sys/configure.in @@ -0,0 +1,24 @@ +dnl This is the newlib/libc/sys configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(a29khif) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../..) + +NEWLIB_CONFIGURE(../..) + +if test -n "${sys_dir}"; then + AC_CONFIG_SUBDIRS(${sys_dir}) +fi + +CRT0= +if test -n "${sys_dir}"; then + CRT0=crt0.o +fi +AC_SUBST(CRT0) + +AM_CONDITIONAL(HAVE_SYS_DIR, test x${sys_dir} != x) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/cygwin/Makefile.am b/newlib/libc/sys/cygwin/Makefile.am new file mode 100644 index 000000000..f55a90adb --- /dev/null +++ b/newlib/libc/sys/cygwin/Makefile.am @@ -0,0 +1,19 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +# This is a hack to force automake to include a definition for +# COMPILE. +EXTRA_LIBRARIES = libfoo.a +libfoo_a_SOURCES = crt0.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/cygwin/Makefile.in b/newlib/libc/sys/cygwin/Makefile.in new file mode 100644 index 000000000..21f4afa28 --- /dev/null +++ b/newlib/libc/sys/cygwin/Makefile.in @@ -0,0 +1,311 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +# This is a hack to force automake to include a definition for +# COMPILE. +EXTRA_LIBRARIES = libfoo.a +libfoo_a_SOURCES = crt0.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libfoo_a_LIBADD = +libfoo_a_OBJECTS = crt0.o +lib_a_LIBADD = +lib_a_OBJECTS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(libfoo_a_SOURCES) $(lib_a_SOURCES) +OBJECTS = $(libfoo_a_OBJECTS) $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libfoo.a: $(libfoo_a_OBJECTS) $(libfoo_a_DEPENDENCIES) + -rm -f libfoo.a + $(AR) cru libfoo.a $(libfoo_a_OBJECTS) $(libfoo_a_LIBADD) + $(RANLIB) libfoo.a + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/cygwin/aclocal.m4 b/newlib/libc/sys/cygwin/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/cygwin/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/cygwin/configure b/newlib/libc/sys/cygwin/configure new file mode 100755 index 000000000..1690b2708 --- /dev/null +++ b/newlib/libc/sys/cygwin/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt0.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/cygwin/configure.in b/newlib/libc/sys/cygwin/configure.in new file mode 100644 index 000000000..a7179a298 --- /dev/null +++ b/newlib/libc/sys/cygwin/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/cygwin32 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(crt0.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/cygwin/crt0.c b/newlib/libc/sys/cygwin/crt0.c new file mode 100644 index 000000000..d6bdd5a57 --- /dev/null +++ b/newlib/libc/sys/cygwin/crt0.c @@ -0,0 +1,49 @@ + +#ifdef __PPC__ +/* For the PowerPC, we want to make this function have its structured + exception table exception function point to something we control. */ + +extern void __cygwin_exception_handler(); +extern void mainCRTStartup(void) __attribute__((__exception__(__cygwin_exception_handler))); +#endif + +/* In the following ifdef'd i386 code, the FPU precision is set to 80 bits + and all FPU exceptions are masked. The former is needed to make long + doubles work correctly. The latter causes the FPU to generate NaNs and + Infinities instead of signals for certain operations. +*/ + +#ifdef __i386__ +#define FPU_RESERVED 0xF0C0 +#define FPU_DEFAULT 0x033f + +/* For debugging on *#!$@ windbg. bp for breakpoint. */ +int __cygwin_crt0_bp = 0; +#endif + +extern int main (int argc, char **argv); + +void +mainCRTStartup () +{ +#ifdef __i386__ + if (__cygwin_crt0_bp) + asm volatile ("int3"); + + { + volatile unsigned short cw; + + /* Get Control Word */ + __asm__ volatile ("fnstcw %0" : "=m" (cw) : ); + + /* mask in */ + cw &= FPU_RESERVED; + cw |= FPU_DEFAULT; + + /* set cw */ + __asm__ volatile ("fldcw %0" :: "m" (cw)); + } +#endif + + cygwin_crt0 (main); +} diff --git a/newlib/libc/sys/cygwin/sys/dirent.h b/newlib/libc/sys/cygwin/sys/dirent.h new file mode 100644 index 000000000..3c0ec4e77 --- /dev/null +++ b/newlib/libc/sys/cygwin/sys/dirent.h @@ -0,0 +1,58 @@ +/* Posix dirent.h for WIN32. */ + +/* Including this file should not require any Windows headers. */ + +#ifndef _SYS_DIRENT_H +#define _SYS_DIRENT_H + +#include <sys/types.h> + +struct dirent +{ + long __d_reserved[4]; + ino_t d_ino; /* Just for compatibility, it's junk */ + char d_name[256]; /* FIXME: use NAME_MAX? */ +}; + +#define __DIRENT_COOKIE 0xdede4242 + +typedef struct +{ + /* This is first to set alignment in non _COMPILING_NEWLIB case. */ + unsigned long __d_cookie; + struct dirent *__d_dirent; + char *__d_dirname; /* directory name with trailing '*' */ + off_t __d_position; /* used by telldir/seekdir */ + unsigned long __d_dirhash; /* hash of directory name for use by + readdir */ + union + { +#ifdef _COMPILING_NEWLIB + struct + { + HANDLE __handle; + char __open_p; + } __d_data; +#endif + char __d_filler[16]; + } __d_u; +} DIR; + +DIR *opendir (const char *); +struct dirent *readdir (DIR *); +void rewinddir (DIR *); +int closedir (DIR *); + +#ifndef _POSIX_SOURCE +off_t telldir (DIR *); +void seekdir (DIR *, off_t loc); + +int scandir (const char *__dir, + struct dirent ***__namelist, + int (*select) (const struct dirent *), + int (*compar) (const struct dirent **, const struct dirent **)); + +int alphasort (const struct dirent **__a, const struct dirent **__b); +#endif /* _POSIX_SOURCE */ + +#endif diff --git a/newlib/libc/sys/cygwin/sys/param.h b/newlib/libc/sys/cygwin/sys/param.h new file mode 100644 index 000000000..42bb019d1 --- /dev/null +++ b/newlib/libc/sys/cygwin/sys/param.h @@ -0,0 +1,43 @@ +#ifndef _SYS_PARAM_H +#define _SYS_PARAM_H + +#include <sys/types.h> +/* Linux includes limits.h, but this is not universally done. */ +#include <limits.h> + +/* Max number of open files. The Posix version is OPEN_MAX. */ +/* Number of fds is virtually unlimited in cygwin, but we must provide + some reasonable value for Posix conformance */ +#define NOFILE 8192 + +/* Max number of groups; must keep in sync with NGROUPS_MAX in limits.h */ +#define NGROUPS 16 + +/* Ticks/second for system calls such as times() */ +/* FIXME: is this the appropriate value? */ +#define HZ 1000 + +/* Max hostname size that can be dealt with */ +/* FIXME: is this the appropriate value? */ +#define MAXHOSTNAMELEN 64 + +/* This is defined to be the same as MAX_PATH which is used internally. + The Posix version is PATH_MAX. */ +#define MAXPATHLEN (260 - 1 /*NUL*/) + +/* Some autoconf'd packages check for endianness. When cross-building we + can't run programs on the target. Fortunately, autoconf supports the + definition of byte order in sys/param.h (that's us!). + The values here are the same as used in gdb/defs.h (are the more + appropriate values?). */ +#define BIG_ENDIAN 4321 +#define LITTLE_ENDIAN 1234 + +/* All known win32 systems are little endian. */ +#define BYTE_ORDER LITTLE_ENDIAN + +#ifndef NULL +#define NULL 0L +#endif + +#endif diff --git a/newlib/libc/sys/cygwin/sys/utime.h b/newlib/libc/sys/cygwin/sys/utime.h new file mode 100644 index 000000000..196b0891e --- /dev/null +++ b/newlib/libc/sys/cygwin/sys/utime.h @@ -0,0 +1,22 @@ +#ifndef _SYS_UTIME_H +#define _SYS_UTIME_H + +#ifdef __cplusplus +extern "C" { +#endif +#include <_ansi.h> +#include <sys/types.h> + +struct utimbuf +{ + time_t actime; + time_t modtime; +}; + +int _EXFUN(utime, (const char *__path, struct utimbuf *__buf)); + +#ifdef __cplusplus +}; +#endif + +#endif /* _SYS_UTIME_H */ diff --git a/newlib/libc/sys/cygwin/sys/utmp.h b/newlib/libc/sys/cygwin/sys/utmp.h new file mode 100644 index 000000000..1c1c9aa0a --- /dev/null +++ b/newlib/libc/sys/cygwin/sys/utmp.h @@ -0,0 +1,49 @@ +#ifndef UTMP_H +#define UTMP_H + +#include <sys/types.h> +#include <time.h> +#include <paths.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define UT_LINESIZE 16 +#define UT_NAMESIZE 16 +#define UT_HOSTSIZE 256 +#define ut_name ut_user + +struct utmp +{ + short ut_type; + pid_t ut_pid; + char ut_line[UT_LINESIZE]; + char ut_id[2]; + time_t ut_time; + char ut_user[UT_NAMESIZE]; + char ut_host[UT_HOSTSIZE]; + long ut_addr; +}; + +#define INIT_PROCESS 5 +#define LOGIN_PROCESS 6 +#define USER_PROCESS 7 +#define DEAD_PROCESS 8 + +extern struct utmp *_getutline (struct utmp *); +extern struct utmp *getutent (void); +extern struct utmp *getutid (struct utmp *); +extern struct utmp *getutline (struct utmp *); +extern void endutent (void); +extern void pututline (struct utmp *); +extern void setutent (void); +extern void utmpname (const char *); + +void login (struct utmp *); +int logout (char *); + +#ifdef __cplusplus +} +#endif +#endif /* UTMP_H */ diff --git a/newlib/libc/sys/d10v/Makefile.am b/newlib/libc/sys/d10v/Makefile.am new file mode 100644 index 000000000..da89f1198 --- /dev/null +++ b/newlib/libc/sys/d10v/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.S creat.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/d10v/Makefile.in b/newlib/libc/sys/d10v/Makefile.in new file mode 100644 index 000000000..d6fc79a93 --- /dev/null +++ b/newlib/libc/sys/d10v/Makefile.in @@ -0,0 +1,320 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.S creat.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o trap.o creat.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/d10v/aclocal.m4 b/newlib/libc/sys/d10v/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/d10v/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/d10v/configure b/newlib/libc/sys/d10v/configure new file mode 100755 index 000000000..d861d17e1 --- /dev/null +++ b/newlib/libc/sys/d10v/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=creat.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/d10v/configure.in b/newlib/libc/sys/d10v/configure.in new file mode 100644 index 000000000..5559c87c8 --- /dev/null +++ b/newlib/libc/sys/d10v/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/d10v configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(creat.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/d10v/creat.c b/newlib/libc/sys/d10v/creat.c new file mode 100644 index 000000000..62ec5ead8 --- /dev/null +++ b/newlib/libc/sys/d10v/creat.c @@ -0,0 +1,7 @@ +int +creat(path, mode) + const char *path; + int mode; +{ + return _creat (path, mode); +} diff --git a/newlib/libc/sys/d10v/crt0.S b/newlib/libc/sys/d10v/crt0.S new file mode 100644 index 000000000..9a2ed02fb --- /dev/null +++ b/newlib/libc/sys/d10v/crt0.S @@ -0,0 +1,63 @@ + .text + .global _start + .type _start,@function + .stabs "crt0.S",100,0,0,_start + .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0 + .stabs "_start:F(0,1)",36,0,1,_start + +_start: + +; R14 always contains memory base address (0) + + ldi r14,0 + +; Set the USER and SYSTEM stack pointers. + + ldi r0, 0 ; zero arguments + ldi r1, 0 + mvtc r0, psw ; select SPI and set it + ldi sp, _stack + ldi r10, 0x8000 ; select SPU/FP and set it + mvtc r10, psw || ldi r11, 0; clear stack frame + ldi sp, _stack - 0x200 + ldi r13, 0 + +; Clear the BSS. Do it in two parts for efficiency: longwords first +; for most of it, then the remaining 0 to 3 bytes. + + ldi r2, __bss_start ; R2 = start of BSS + ldi r3, _end ; R3 = end of BSS + 1 + sub r3, r2 ; R3 = BSS size in bytes + mv r4, r3 + srli r4, 2 ; R4 = BSS size in longwords (rounded down) +loop1: + cmpeqi r4, 0 ; more longords to zero out? + brf0t.s endloop1 ; nope + st2w r0, @r2+ ; yep, zero out another longword + subi r4, 1 ; decrement count + bra.l loop1 ; go do some more + +endloop1: + and3 r4, r3, 3 ; get no. of remaining BSS bytes to clear +loop2: + cmpeqi r4, 0 ; more bytes to zero out? + brf0t.s endloop2 ; nope + stb r0, @r2 ; yep, zero out another byte + addi r2, 1 ; bump address + subi r4, 1 ; decrement count + bra.s loop2 ; go do some more +endloop2: +; Call main, then stop simulator + st r11, @-sp + st r13, @-sp + mv r11, sp + + bl main + bl exit + stop +.Lstart: + .size _start,.Lstart-_start + .stabs "",36,0,0,.Lstart-_start + + .section .stack +_stack: .long 1 diff --git a/newlib/libc/sys/d10v/sys/syscall.h b/newlib/libc/sys/d10v/sys/syscall.h new file mode 100644 index 000000000..64e53a3d9 --- /dev/null +++ b/newlib/libc/sys/d10v/sys/syscall.h @@ -0,0 +1,38 @@ +/* syscall.h - definitions of system calls for D10V. + * + * This file must contain only pre-processor directives, and no C code, + * because it's included by assembly language sources as well as C. + */ + +#define SYS_exit 1 +#define SYS_fork 2 + +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 +#define SYS_stat 38 + +#define SYS_pipe 42 +#define SYS_execve 59 +#define SYS_kill 60 + +#define SYS_utime 201 /* not really a system call */ +#define SYS_wait 202 /* nor is this */ diff --git a/newlib/libc/sys/d10v/syscalls.c b/newlib/libc/sys/d10v/syscalls.c new file mode 100644 index 000000000..11192074a --- /dev/null +++ b/newlib/libc/sys/d10v/syscalls.c @@ -0,0 +1,216 @@ +/* syscalls.c - non-trap system calls for D10V + * + * This file contains system calls that cannot be implemented with + * a simple "trap 15" instruction. The ones that can are in trap.S. + */ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <errno.h> +#undef errno + +void _exit (int n); /* in trap.S */ + +extern int _write (int fd, const void *ptr, size_t len); + +int errno; + +register char *stack_ptr asm ("sp"); + +caddr_t +_sbrk (int incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + char *sp = (char *)stack_ptr; + + if (heap_end == 0) + { + heap_end = (char *)((((unsigned short) &end) + 7) & ~7); + } + prev_heap_end = heap_end; + if (heap_end + incr > sp) + { + _write (2, "Heap and stack collision\n", sizeof ("Heap and stack collision\n")-1); + abort (); + } + heap_end += incr; + if ((unsigned short)heap_end > 0xbfff + || (heap_end < prev_heap_end && incr > 0) + || (heap_end < (char *)((((unsigned short) &end) + 7) & ~7))) + { + _write (2, "Too much memory was allocated\n", sizeof ("Too much memory was allocated\n")-1); + abort (); + } + + return (caddr_t) prev_heap_end; +} + +int +_fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + +int +_unlink () +{ + errno = ENOSYS; + return -1; +} + +int +isatty (int fd) +{ + return 1; +} + +void +_raise () +{ +} + +/* If this library is compiled with -mint32, provide conversion functions for + the system call traps. */ + +#if __INT__==32 +extern short _read16 (short fd, void *ptr, short len); +int +_read (int fd, void *ptr, size_t len) +{ + return _read16 ((short)fd, ptr, (short)len); +} + +extern short _write16 (short fd, const void *ptr, short len); +int +_write (int fd, const void *ptr, size_t len) +{ + return _write16 ((short)fd, ptr, (short)len); +} + +extern short _lseek16 (short fd, long offset, short whence); +int +_lseek (int fd, off_t offset, int whence) +{ + return _lseek16 ((short)fd, offset, (short)whence); +} + +extern short _close16 (short fd); +int +_close (int fd) +{ + return _close16 ((short)fd); +} + +extern short _open16 (const char *name, short flags, short mode); +int +_open (const char *name, int flags, mode_t mode) +{ + return _open16 (name, (short)flags, (short)mode); +} + +extern short _creat16 (const char *name, mode_t mode); +int +_creat (const char *name, mode_t mode) +{ + return _creat16 (name, mode); +} + +extern void _exit16 (short status); +void +_exit (int status) +{ + _exit16 ((short)status); +} + +extern short _stat16 (const char *name, struct stat *stat_pkt); +int +_stat (const char *name, struct stat *stat_pkt) +{ + return _stat16 (name, stat_pkt); +} + +extern short _chmod16 (const char *name, short mode); +int +_chmod (const char *name, mode_t mode) +{ + return _chmod16 (name, (short)mode); +} + +extern short _chown16 (const char *name, short uid, short gid); +int +_chown (const char *name, uid_t uid, gid_t gid) +{ + return _chown16 (name, (short)uid, (short)gid); +} + +extern short _fork16 (void); +int +_fork (void) +{ + return _fork16 (); +} + +extern short _wait16 (short *status); +int +_wait (int *status) +{ + if (status) + { + short status16; + short ret = _wait16 (&status16); + if (ret >= 0) + *status = status16; + return ret; + } + else + return _wait16 ((short *)0); +} + +extern short _execve16 (const char *filename, const char *argv [], const char *envp[]); +int +_execve (const char *filename, const char *argv [], const char *envp[]) +{ + return _execve16 (filename, argv, envp); +} + +extern short _execv16 (const char *filename, const char *argv []); +int +_execv (const char *filename, const char *argv []) +{ + return _execv16 (filename, argv); +} + +extern short _pipe16 (short fds[]); +int +_pipe (int fds[]) +{ + short fds16[2]; + short ret = _pipe16 (fds16); + if (ret >= 0) + { + fds[0] = fds16[0]; + fds[1] = fds16[1]; + } + + return ret; +} + +extern short _getpid16 (void); +int +_getpid (void) +{ + return _getpid16 (); +} + +extern short _kill16 (short pid, short sig); +int +_kill (int pid, int sig) +{ + return _kill16 ((short)pid, (short)sig); +} +#endif diff --git a/newlib/libc/sys/d10v/trap.S b/newlib/libc/sys/d10v/trap.S new file mode 100644 index 000000000..9aca42913 --- /dev/null +++ b/newlib/libc/sys/d10v/trap.S @@ -0,0 +1,296 @@ +#include "sys/syscall.h" + +#define SYSCALL(name) \ + .global name ; \ +name: ; \ + ldi r4, SYS ## name ; \ + bra __trap0 + + .text + .stabs "trap.S",100,0,0,__trap0 + .stabs "int:t(0,1)=r(0,1);-65536;65535;",128,0,0,0 + .stabs "long int:t(0,2)=r(0,1);0020000000000;0017777777777;",128,0,0,0 + .stabs "_trap0:F(0,1)",36,0,1,__trap0 + .stabs "arg1:P(0,1)",64,0,1,0 + .stabs "arg2:P(0,1)",64,0,1,1 + .stabs "arg3:P(0,1)",64,0,1,2 + .stabs "arg4:P(0,1)",64,0,1,3 + .stabs "number:P(0,1)",64,0,1,4 + .global __trap0 + .type __trap0,@function +__trap0: + trap 15 /* trap 15 returns result in r0, error code in r4 */ + cmpeqi r4,0 /* is error code zero? */ + brf0t ret /* yes, skip setting errno */ +#if __INT__==32 + st r4,@(errno+2,r14) /* no, set errno */ + srai r4,15 /* sign extend high word */ + st r4,@(errno,r14) +#else + st r4,@(errno,r14) /* no, set errno */ +#endif + +ret: + jmp r13 /* return to caller */ +.Ltrap0: + .size __trap0,.Ltrap0-__trap0 + .stabs "",36,0,0,.Ltrap0-__trap0 + +#define CONCAT(a,b) a ## b +#define STRING(a) #a +#define XSTRING(a) STRING(a) +#define XSTRING2(a,b) XSTRING(CONCAT(a,b)) + +#if __INT__==32 +#define _read _read16 +#define _lseek _lseek16 +#define _write _write16 +#define _close _close16 +#define _open _open16 +#define _creat _creat16 +#define _exit _exit16 +#define _stat _stat16 +#define _chmod _chmod16 +#define _chown _chown16 +#define _fork _fork16 +#define _wait _wait16 +#define _execve _execve16 +#define _execv _execv16 +#define _pipe _pipe16 +#define _kill _kill16 +#define _getpid _getpid16 +#endif + +/* Until the assembler allows semicolon as a statement separator, */ +/* we cannot use the SYSCALL macro. So expand it manually for now. */ + +/* #SYSCALL(_read) */ +/* #SYSCALL(_lseek) */ +/* #SYSCALL(_write) */ +/* #SYSCALL(_close) */ +/* #SYSCALL(_open) */ +/* #SYSCALL(_creat) */ +/* #SYSCALL(_exit) */ +/* #SYSCALL(_stat) */ +/* #SYSCALL(_chmod) */ +/* #SYSCALL(_chown) */ +/* #SYSCALL(_fork) */ +/* #SYSCALL(_wait) */ +/* #SYSCALL(_execve) */ +/* #SYSCALL(_execv) */ +/* #SYSCALL(_pipe) */ +/* #SYSCALL(_getpid) */ +/* #SYSCALL(_kill) */ + + .global _read + .type _read,@function + .stabs XSTRING2(_read,:F(0,1)),36,0,2,_read + .stabs "fd:P(0,1)",64,0,1,0 + .stabs "ptr:P(0,1)",64,0,1,1 + .stabs "len:P(0,1)",64,0,1,2 +_read: + ldi r4, SYS_read + bra __trap0 +.Lread: + .size _read,.-_read + .stabs "",36,0,0,.Lread-_read + + .global _lseek + .type _lseek,@function + .stabs XSTRING2(_lseek,:F(0,1)),36,0,3,_lseek + .stabs "fd:P(0,1)",64,0,1,0 + .stabs "offset:P(0,1)",64,0,1,2 + .stabs "whence:p(0,1)",160,0,1,0 +_lseek: + ldi r4, SYS_lseek + bra __trap0 +.Llseek: + .size _lseek,.Llseek-_lseek + .stabs "",36,0,0,.Llseek-_lseek + + .global _write + .type _write,@function + .stabs XSTRING2(_write,:F(0,1)),36,0,4,_write + .stabs "fd:P(0,1)",64,0,1,0 + .stabs "ptr:P(0,1)",64,0,1,1 + .stabs "len:P(0,1)",64,0,1,2 +_write: + ldi r4, SYS_write + bra __trap0 +.Lwrite: + .size _write,.Lwrite-_write + .stabs "",36,0,0,.Lwrite-_write + + .global _close + .type _close,@function + .stabs XSTRING2(_close,:F(0,1)),36,0,5,_close + .stabs "fd:P(0,1)",64,0,1,0 +_close: + ldi r4, SYS_close + bra __trap0 +.Lclose: + .size _close,.Lclose-_close + .stabs "",36,0,0,.Lclose-_close + + .global _open + .type _open,@function + .stabs XSTRING2(_open,:F(0,1)),36,0,6,_open + .stabs "name:P(0,1)",64,0,1,0 + .stabs "flags:P(0,1)",64,0,1,1 + .stabs "mode:P(0,1)",64,0,1,2 +_open: + ldi r4, SYS_open + bra __trap0 +.Lopen: + .size _open,.Lopen-_open + .stabs "",36,0,0,.Lopen-_open + + .global _creat + .type _creat,@function + .stabs XSTRING2(_creat,:F(0,1)),36,0,7,_creat + .stabs "name:P(0,1)",64,0,1,0 + .stabs "mode:P(0,1)",64,0,1,1 +_creat: + ldi r4, SYS_creat + bra __trap0 +.Lcreat: + .size _creat,.Lcreat-_creat + .stabs "",36,0,0,.Lcreat-_creat + + .global _exit + .type _exit,@function + .stabs XSTRING2(_exit,:F(0,1)),36,0,8,_exit + .stabs "status:P(0,1)",64,0,1,0 +_exit: + ldi r4, SYS_exit + bra __trap0 +.Lexit: + .size _exit,.Lexit-_exit + .stabs "",36,0,0,.Lexit-_exit + + .global _stat + .type _stat,@function + .stabs XSTRING2(_stat,:F(0,1)),36,0,9,_stat + .stabs "name:P(0,1)",64,0,1,0 + .stabs "packet:P(0,1)",64,0,1,1 +_stat: + ldi r4, SYS_stat + bra __trap0 +.Lstat: + .size _stat,.Lstat-_stat + .stabs "",36,0,0,.Lstat-_stat + + .global _chmod + .type _chmod,@function + .stabs XSTRING2(_chmod,:F(0,1)),36,0,10,_chmod + .stabs "name:P(0,1)",64,0,1,0 + .stabs "mode:P(0,1)",64,0,1,1 +_chmod: + ldi r4, SYS_chmod + bra __trap0 +.Lchmod: + .size _chmod,.Lchmod-_chmod + .stabs "",36,0,0,.Lchmod-_chmod + + .global _chown + .type _chown,@function + .stabs XSTRING2(_chown,:F(0,1)),36,0,11,_chown + .stabs "name:P(0,1)",64,0,1,0 + .stabs "uid:P(0,1)",64,0,1,1 + .stabs "gid:P(0,1)",64,0,1,2 +_chown: + ldi r4, SYS_chown + bra __trap0 +.Lchown: + .size _chown,.Lchown-_chown + .stabs "",36,0,0,.Lchown-_chown + + .global _fork + .type _fork,@function + .stabs XSTRING2(_fork,:F(0,1)),36,0,12,_fork +_fork: + ldi r4, SYS_fork + bra __trap0 +.Lfork: + .size _fork,.Lfork-_fork + .stabs "",36,0,0,.Lfork-_fork + + .global _wait + .type _wait,@function + .stabs "status:P(0,1)",64,0,1,0 + .stabs XSTRING2(_wait,:F(0,1)),36,0,13,_wait +_wait: + ldi r4, SYS_wait + bra __trap0 +.Lwait: + .size _wait,.Lwait-_wait + .stabs "",36,0,0,.Lwait-_wait + + .global _execve + .type _execve,@function + .stabs "name:P(0,1)",64,0,1,0 + .stabs "argv:P(0,1)",64,0,1,1 + .stabs "envp:P(0,1)",64,0,1,2 + .stabs XSTRING2(_execve,:F(0,1)),36,0,14,_execve +_execve: + ldi r4, SYS_execve + bra __trap0 +.Lexecve: + .size _execve,.Lexecve-_execve + .stabs "",36,0,0,.Lexecve-_execve + + .global _execv + .type _execv,@function + .stabs XSTRING2(_execv,:F(0,1)),36,0,15,_execv + .stabs "name:P(0,1)",64,0,1,0 + .stabs "argv:P(0,1)",64,0,1,1 +_execv: + ldi r4, SYS_execv + bra __trap0 +.Lexecv: + .size _execv,.Lexecv-_execv + .stabs "",36,0,0,.Lexecv-_execv + + .global _pipe + .type _pipe,@function + .stabs XSTRING2(_pipe,:F(0,1)),36,0,16,_pipe + .stabs "fds:P(0,1)",64,0,1,0 +_pipe: + ldi r4, SYS_pipe + bra __trap0 +.Lpipe: + .size _pipe,.Lpipe-_pipe + .stabs "",36,0,0,.Lpipe-_pipe + + .global time + .type time,@function + .stabs XSTRING2(time,:F(0,1)),36,0,17,time + .stabs "ptr:P(0,1)",64,0,1,0 +time: + ldi r4, SYS_time + bra __trap0 +.Ltime: + .size time,.Ltime-time + .stabs "",36,0,0,.Ltime-time + + .global _kill + .type _kill,@function + .stabs XSTRING2(_kill,:F(0,1)),36,0,18,_kill + .stabs "pid:P(0,1)",64,0,1,0 + .stabs "sig:P(0,1)",64,0,1,1 +_kill: + ldi r4, SYS_kill + bra __trap0 +.Lkill: + .size _kill,.Lkill-_kill + .stabs "",36,0,0,.Lkill-_kill + + .global _getpid + .type _getpid,@function + .stabs XSTRING2(_getpid,:F(0,1)),36,0,19,_getpid +_getpid: + ldi r4, SYS_getpid + bra __trap0 +.Lgetpid: + .size _getpid,.Lgetpid-_getpid + .stabs "",36,0,0,.Lgetpid-_getpid diff --git a/newlib/libc/sys/decstation/Makefile.am b/newlib/libc/sys/decstation/Makefile.am new file mode 100644 index 000000000..ad289976f --- /dev/null +++ b/newlib/libc/sys/decstation/Makefile.am @@ -0,0 +1,45 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +COPYOFILES = \ + read.o \ + open.o \ + _exit.o \ + write.o \ + lseek.o \ + close.o \ + sbrk.o \ + cerror.o \ + fork.o \ + isatty.o \ + ioctl.o \ + getpid.o \ + time.o \ + kill.o \ + wait.o \ + execve.o \ + gettimeofday.o \ + link.o \ + unlink.o \ + fstat.o \ + times.o \ + getrusage.o + +lib_a_SOURCES = _main.c +lib_a_LIBADD = $(COPYOFILES) + +$(COPYOFILES): + ar x /lib/libc.a $(COPYOFILES) + +all: crt0.o + +crt0.o: + cp /lib/crt0.o crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/decstation/Makefile.in b/newlib/libc/sys/decstation/Makefile.in new file mode 100644 index 000000000..8fc5c67c2 --- /dev/null +++ b/newlib/libc/sys/decstation/Makefile.in @@ -0,0 +1,332 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +COPYOFILES = \ + read.o \ + open.o \ + _exit.o \ + write.o \ + lseek.o \ + close.o \ + sbrk.o \ + cerror.o \ + fork.o \ + isatty.o \ + ioctl.o \ + getpid.o \ + time.o \ + kill.o \ + wait.o \ + execve.o \ + gettimeofday.o \ + link.o \ + unlink.o \ + fstat.o \ + times.o \ + getrusage.o + +lib_a_SOURCES = _main.c +lib_a_LIBADD = $(COPYOFILES) + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_DEPENDENCIES = read.o open.o _exit.o write.o lseek.o close.o \ +sbrk.o cerror.o fork.o isatty.o ioctl.o getpid.o time.o kill.o wait.o \ +execve.o gettimeofday.o link.o unlink.o fstat.o times.o getrusage.o +lib_a_OBJECTS = _main.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +$(COPYOFILES): + ar x /lib/libc.a $(COPYOFILES) + +all: crt0.o + +crt0.o: + cp /lib/crt0.o crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/decstation/_main.c b/newlib/libc/sys/decstation/_main.c new file mode 100644 index 000000000..64878088d --- /dev/null +++ b/newlib/libc/sys/decstation/_main.c @@ -0,0 +1,6 @@ + +__main() +{ + + +} diff --git a/newlib/libc/sys/decstation/aclocal.m4 b/newlib/libc/sys/decstation/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/decstation/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/decstation/configure b/newlib/libc/sys/decstation/configure new file mode 100755 index 000000000..7508f7624 --- /dev/null +++ b/newlib/libc/sys/decstation/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=_main.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/decstation/configure.in b/newlib/libc/sys/decstation/configure.in new file mode 100644 index 000000000..e2e2738bb --- /dev/null +++ b/newlib/libc/sys/decstation/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/decstation configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(_main.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/decstation/sys/dirent.h b/newlib/libc/sys/decstation/sys/dirent.h new file mode 100644 index 000000000..c5a90e9fe --- /dev/null +++ b/newlib/libc/sys/decstation/sys/dirent.h @@ -0,0 +1,46 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_DIRENT_H +# define _SYS_DIRENT_H + +/* + * This file was written to be compatible with the BSD directory + * routines, so it looks like it. But it was written from scratch. + * Sean Eric Fagan, sef@Kithrup.COM + * + * Modified by dje@cygnus.com for sun. + * Modified by eichin@cygnus.com for decstation (ultrix 4.2) + */ + +typedef struct __dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + long dd_bbase; + long dd_entno; + long dd_bsize; + char *dd_buf; +} DIR; + +# define __dirfd(dp) ((dp)->dd_fd) + +DIR *opendir (const char *); +struct dirent *readdir (DIR *); +void rewinddir (DIR *); +int closedir (DIR *); + +#include <sys/types.h> + +#define MAXNAMLEN 255 + +#define d_ino d_fileno /* compatibility */ + +struct dirent { + unsigned long d_fileno; + unsigned short d_reclen; + unsigned short d_namlen; + char d_name[MAXNAMLEN + 1]; +}; + +/* FIXME: include definition of DIRSIZ() ? */ + +#endif diff --git a/newlib/libc/sys/go32/Makefile.am b/newlib/libc/sys/go32/Makefile.am new file mode 100644 index 000000000..4ccd669da --- /dev/null +++ b/newlib/libc/sys/go32/Makefile.am @@ -0,0 +1,105 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _exit.s \ + _main.c \ + abort.c \ + access.c \ + bdos.c \ + bdosptr.c \ + brk.s \ + chdir.s \ + chmod.c \ + chown.c \ + clock.S \ + close.s \ + creat.s \ + crlf2nl.c \ + dir.c \ + dosmem.S \ + dpmi.c \ + dup.s \ + dup2.s \ + exec.c \ + fchmod.c \ + findfirs.s \ + findnext.s \ + fixpath.c \ + fstat.s \ + fsync.s \ + ftruncat.c \ + gerrno.s \ + getcwd.c \ + getdate.c \ + getdtabl.c \ + getgid.c \ + getkey.s \ + getpages.c \ + getpid.c \ + getrusag.c \ + gettime.c \ + gettimeo.c \ + getuid.c \ + getwd.s \ + go32func.c \ + infoblk.c \ + inportb.s \ + inportl.s \ + inportsb.s \ + inportsl.s \ + inportsw.s \ + inportw.s \ + int86x.s \ + intdos.c \ + intdosx.c \ + isatty.s \ + kbhit.s \ + kill.c \ + link.s \ + longjmp.S \ + lseek.s \ + lstat.s \ + mkdir.s \ + open.s \ + outportb.s \ + outportl.s \ + outportw.s \ + outprtsb.s \ + outprtsl.s \ + outprtsw.s \ + read.s \ + readv.c \ + rename.s \ + rmdir.s \ + sbrk.s \ + screen.S \ + setjmp.S \ + setmode.s \ + setstack.S \ + settimeo.s \ + sleep.c \ + stat.c \ + stat_ast.s \ + syserr.c \ + system.s \ + tell.s \ + time.c \ + truncate.c \ + turbo.s \ + umask.c \ + unlink.s \ + utime.c \ + utimes.c \ + write.s \ + writev.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/go32/Makefile.in b/newlib/libc/sys/go32/Makefile.in new file mode 100644 index 000000000..eb0fb8f29 --- /dev/null +++ b/newlib/libc/sys/go32/Makefile.in @@ -0,0 +1,402 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _exit.s \ + _main.c \ + abort.c \ + access.c \ + bdos.c \ + bdosptr.c \ + brk.s \ + chdir.s \ + chmod.c \ + chown.c \ + clock.S \ + close.s \ + creat.s \ + crlf2nl.c \ + dir.c \ + dosmem.S \ + dpmi.c \ + dup.s \ + dup2.s \ + exec.c \ + fchmod.c \ + findfirs.s \ + findnext.s \ + fixpath.c \ + fstat.s \ + fsync.s \ + ftruncat.c \ + gerrno.s \ + getcwd.c \ + getdate.c \ + getdtabl.c \ + getgid.c \ + getkey.s \ + getpages.c \ + getpid.c \ + getrusag.c \ + gettime.c \ + gettimeo.c \ + getuid.c \ + getwd.s \ + go32func.c \ + infoblk.c \ + inportb.s \ + inportl.s \ + inportsb.s \ + inportsl.s \ + inportsw.s \ + inportw.s \ + int86x.s \ + intdos.c \ + intdosx.c \ + isatty.s \ + kbhit.s \ + kill.c \ + link.s \ + longjmp.S \ + lseek.s \ + lstat.s \ + mkdir.s \ + open.s \ + outportb.s \ + outportl.s \ + outportw.s \ + outprtsb.s \ + outprtsl.s \ + outprtsw.s \ + read.s \ + readv.c \ + rename.s \ + rmdir.s \ + sbrk.s \ + screen.S \ + setjmp.S \ + setmode.s \ + setstack.S \ + settimeo.s \ + sleep.c \ + stat.c \ + stat_ast.s \ + syserr.c \ + system.s \ + tell.s \ + time.c \ + truncate.c \ + turbo.s \ + umask.c \ + unlink.s \ + utime.c \ + utimes.c \ + write.s \ + writev.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = _exit.o _main.o abort.o access.o bdos.o bdosptr.o brk.o \ +chdir.o chmod.o chown.o clock.o close.o creat.o crlf2nl.o dir.o \ +dosmem.o dpmi.o dup.o dup2.o exec.o fchmod.o findfirs.o findnext.o \ +fixpath.o fstat.o fsync.o ftruncat.o gerrno.o getcwd.o getdate.o \ +getdtabl.o getgid.o getkey.o getpages.o getpid.o getrusag.o gettime.o \ +gettimeo.o getuid.o getwd.o go32func.o infoblk.o inportb.o inportl.o \ +inportsb.o inportsl.o inportsw.o inportw.o int86x.o intdos.o intdosx.o \ +isatty.o kbhit.o kill.o link.o longjmp.o lseek.o lstat.o mkdir.o open.o \ +outportb.o outportl.o outportw.o outprtsb.o outprtsl.o outprtsw.o \ +read.o readv.o rename.o rmdir.o sbrk.o screen.o setjmp.o setmode.o \ +setstack.o settimeo.o sleep.o stat.o stat_ast.o syserr.o system.o \ +tell.o time.o truncate.o turbo.o umask.o unlink.o utime.o utimes.o \ +write.o writev.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/go32/_exit.s b/newlib/libc/sys/go32/_exit.s new file mode 100644 index 000000000..8c135976e --- /dev/null +++ b/newlib/libc/sys/go32/_exit.s @@ -0,0 +1,20 @@ +# /* This is file _EXIT.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl __exit +__exit: + movb 4(%esp),%al + movb $0x4c,%ah + int $0x21 diff --git a/newlib/libc/sys/go32/_main.c b/newlib/libc/sys/go32/_main.c new file mode 100644 index 000000000..c8c6136f7 --- /dev/null +++ b/newlib/libc/sys/go32/_main.c @@ -0,0 +1,3 @@ +__main() +{ +} diff --git a/newlib/libc/sys/go32/abort.c b/newlib/libc/sys/go32/abort.c new file mode 100644 index 000000000..f2466c84c --- /dev/null +++ b/newlib/libc/sys/go32/abort.c @@ -0,0 +1,8 @@ + +void +abort() +{ + + exit(1); + +} diff --git a/newlib/libc/sys/go32/access.c b/newlib/libc/sys/go32/access.c new file mode 100644 index 000000000..ad368caa1 --- /dev/null +++ b/newlib/libc/sys/go32/access.c @@ -0,0 +1,34 @@ +/* This is file ACCESS.C */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <fcntl.h> +#include <sys/stat.h> +#include <unistd.h> + +int access(const char *fn, int flags) +{ + struct stat s; + if (stat(fn, &s)) + return -1; + if (s.st_mode & S_IFDIR) + return 0; + if (flags & W_OK) + { + if (s.st_mode & S_IWRITE) + return 0; + return -1; + } + return 0; +} + diff --git a/newlib/libc/sys/go32/aclocal.m4 b/newlib/libc/sys/go32/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/go32/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/go32/bdos.c b/newlib/libc/sys/go32/bdos.c new file mode 100644 index 000000000..523f73aa6 --- /dev/null +++ b/newlib/libc/sys/go32/bdos.c @@ -0,0 +1,12 @@ +#include <errno.h> +#include "dos.h" + +bdos(int func, unsigned dx, unsigned al) +{ + union REGS r; + r.x.dx = dx; + r.h.ah = func; + r.h.al = al; + int86(0x21, &r, &r); + return r.x.ax; +} diff --git a/newlib/libc/sys/go32/bdosptr.c b/newlib/libc/sys/go32/bdosptr.c new file mode 100644 index 000000000..214d40baf --- /dev/null +++ b/newlib/libc/sys/go32/bdosptr.c @@ -0,0 +1,12 @@ +#include <errno.h> +#include "dos.h" + +bdosptr(int func, void *dx, unsigned al) +{ + union REGS r; + r.x.dx = dx; + r.h.ah = func; + r.h.al = al; + int86(0x21, &r, &r); + return r.x.ax; +} diff --git a/newlib/libc/sys/go32/brk.s b/newlib/libc/sys/go32/brk.s new file mode 100644 index 000000000..c9d8db0e9 --- /dev/null +++ b/newlib/libc/sys/go32/brk.s @@ -0,0 +1,27 @@ +# /* This is file BRK.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _brk +_brk: + pushl %ebx + pushl %esi + pushl %edi + movw $0x4a00,%ax + movl 16(%esp),%ebx + int $0x21 + popl %edi + popl %esi + popl %ebx + ret diff --git a/newlib/libc/sys/go32/chdir.s b/newlib/libc/sys/go32/chdir.s new file mode 100644 index 000000000..a494408e7 --- /dev/null +++ b/newlib/libc/sys/go32/chdir.s @@ -0,0 +1,27 @@ +# /* This is file CHDIR.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _chdir +_chdir: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movb $0x3b,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/chmod.c b/newlib/libc/sys/go32/chmod.c new file mode 100644 index 000000000..72f5f5716 --- /dev/null +++ b/newlib/libc/sys/go32/chmod.c @@ -0,0 +1,15 @@ +/* This is file CHMOD.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +chmod(){} diff --git a/newlib/libc/sys/go32/chown.c b/newlib/libc/sys/go32/chown.c new file mode 100644 index 000000000..a780510ed --- /dev/null +++ b/newlib/libc/sys/go32/chown.c @@ -0,0 +1,15 @@ +/* This is file CHOWN.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +chown(){} diff --git a/newlib/libc/sys/go32/clock.S b/newlib/libc/sys/go32/clock.S new file mode 100644 index 000000000..e6ac06ed2 --- /dev/null +++ b/newlib/libc/sys/go32/clock.S @@ -0,0 +1,45 @@ +/* This is file CLOCK.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +** +** Modified by C. Sandmann for DPMI support (sandmann@clio.rice.edu) +*/ + .data +clock_init: + .long 0 + + .text + .globl _clock +_clock: + call _rawclock + imull $54931,%eax,%eax + ret + + .align 4,0x90 + .globl _rawclock +_rawclock: + movzwl __core_select,%eax + testl %eax,%eax + je old_clock /* Image run with pre-DPMI extender */ + movw %ax,%gs + movl %gs:0x46c(,1),%eax + jmp check_initted +old_clock: + movl 0xe000046c,%eax +check_initted: + cmp $0,clock_init + jne clock_initted + movl %eax,clock_init +clock_initted: + subl clock_init,%eax + ret + diff --git a/newlib/libc/sys/go32/close.s b/newlib/libc/sys/go32/close.s new file mode 100644 index 000000000..3b0797ddf --- /dev/null +++ b/newlib/libc/sys/go32/close.s @@ -0,0 +1,27 @@ +# /* This is file CLOSE.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _close +_close: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movb $0x3e,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/configure b/newlib/libc/sys/go32/configure new file mode 100755 index 000000000..398652cb7 --- /dev/null +++ b/newlib/libc/sys/go32/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=djtime.h + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/go32/configure.in b/newlib/libc/sys/go32/configure.in new file mode 100644 index 000000000..5706733f0 --- /dev/null +++ b/newlib/libc/sys/go32/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/go32 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(djtime.h) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/go32/copying.dj b/newlib/libc/sys/go32/copying.dj new file mode 100644 index 000000000..79b4f700b --- /dev/null +++ b/newlib/libc/sys/go32/copying.dj @@ -0,0 +1,63 @@ +This is the file "copying.dj". + + Copyright Information for sources and executables that are marked + Copyright (C) DJ Delorie + 24 Kirsten Ave + Rochester NH 03867-2954 + +This document is Copyright (C) DJ Delorie and may be distributed +verbatim, but changing it is not allowed. + +Source code copyright DJ Delorie is distributed under the terms of the +GNU General Public Licence, with the following exceptions: + + +* Source code copyright DJ Delorie is distributed under the terms of the + GNU General Public Licence, with the following exceptions: + ("go32.exe" refers to go32.exe and debug32.exe) + + * There are no conditions on distributing copies of stub.exe as + it is originally distributed in this software package, prepended + onto a binary or otherwise. This is the recommended distribution + mechanism for applications. + + * Binaries of emu387 may be distributed with no restrictions. + + * If a user creates an application, prepends a copy of go32.exe onto + the beginning of it, and distributes it free of charge, then the + user is under no obligations to distribute source or pay royalties. + Note that the copyright terms of the FSF and/or UCB must be + obeyed regardless of this. + + * If a user creates an application, prepends a copy of go32.exe onto + the beginning of it, and charges a fee for the software, then a + royalty of $5 or 5% of the selling price per copy sold must be paid + to DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954. Note that + shareware programs are not considered "sold" until payment is rendered + for them. + + * For all other cases, source code for go32.exe must be distributed + with any distributed copies of go32.exe. + + * Software that requires go32.exe to run, but is not distributed with + a copy of go32.exe, incurs no obligations with regards to the + above sections. + + * Contact me for special terms if none of the above are suitable. + + * Donations are always appreciated. + + The intent of this copyright is this: If you make money by using the + programs I wrote, I get some of it. If you use your sources to + teach others how to write programs, I'll support you. + +Changes to source code copyright BSD or FSF are copyright DJ Delorie, but +fall under the terms of the original copyright. + +A copy of the file "COPYING" is included with this document. If you did not +receive a copy of "COPYING", you may obtain one from whence this document +was obtained, or by writing: + Free Software Foundation + 675 Mass Ave + Cambridge, MA 02139 + USA diff --git a/newlib/libc/sys/go32/creat.s b/newlib/libc/sys/go32/creat.s new file mode 100644 index 000000000..4c02e72f4 --- /dev/null +++ b/newlib/libc/sys/go32/creat.s @@ -0,0 +1,19 @@ +# /* This is file CREAT.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _creat +_creat: + movb $1,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/crlf2nl.c b/newlib/libc/sys/go32/crlf2nl.c new file mode 100644 index 000000000..18b7061cc --- /dev/null +++ b/newlib/libc/sys/go32/crlf2nl.c @@ -0,0 +1,69 @@ +/* This is file CRLF2NL.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +unsigned crlf2nl(char *buf, unsigned len) +{ + char *bp = buf; + int i=0; + while (len--) + { + if (*bp != 13) + { + *buf++ = *bp; + i++; + } + bp++; + } + return i; +} + +unsigned readcr(int fd, char *buf, unsigned len) +{ + unsigned i; + i = read(fd, buf, len); + if (i <= 0) + return i; + return crlf2nl(buf, i); +} + +static char *sbuf = 0; +#define BUFSIZE 4096 + +unsigned writecr(int fd, char *buf, unsigned len) +{ + unsigned bufp=0, sbufp=0, crcnt=0, rlen=0; + int rv; + if (sbuf == 0) + sbuf = (char *)malloc(BUFSIZE+1); + while (len--) + { + if (buf[bufp] == 10) + { + crcnt++; + sbuf[sbufp++] = 13; + } + sbuf[sbufp++] = buf[bufp++]; + if ((sbufp >= BUFSIZE) || (len == 0)) + { + rv = write(fd, sbuf, sbufp); + if (rv < 0) + return rv; + rlen += rv - crcnt; + crcnt = 0; + sbufp = 0; + } + } + return rlen; +} + diff --git a/newlib/libc/sys/go32/crt0.S b/newlib/libc/sys/go32/crt0.S new file mode 100644 index 000000000..5fc6cf77c --- /dev/null +++ b/newlib/libc/sys/go32/crt0.S @@ -0,0 +1,233 @@ + +/* +** Called as start(argc, argv, envp) +*/ + +/* gs:edx points to prog_info structure. All other registers are OBSOLETE +** but included for backwards compatibility +*/ + +/* These symbols are for global constructors and destructors */ +#if 0 + .section .ctor + .globl ___go32_first_ctor +___go32_first_ctor: + .section .dtor + .globl ___go32_last_ctor +___go32_last_ctor: + .globl ___go32_first_dtor +___go32_first_dtor: + .data + .globl ___go32_last_dtor +___go32_last_dtor: +#endif + .text + .globl _start +_start: + .globl start +start: +#ifdef EMU387 + pusha + push %gs +#endif + movl %eax,__hard_master + movl %esi,___pid + movl %edi,___transfer_buffer + movl %ebx,_ScreenPrimary + movl %ebp,_ScreenSecondary + + cmpl $0, %edx + je Lcopy_none + movw %gs,%cx + movw %ds,%ax + cmpw %cx,%ax + je Lcopy_none + + movl %gs:(%edx), %ecx + cmpl __go32_info_block, %ecx + jbe Lcopy_less + movl __go32_info_block, %ecx +Lcopy_less: + movl $__go32_info_block, %edi + addl $3, %ecx + andl $0xfffffffc, %ecx + movl %ecx, (%edi) + addl $4, %edi + addl $4, %edx + subl $4, %ecx +Lcopy_more: + movl %gs:(%edx), %eax + movl %eax, (%edi) + addl $4, %edx + addl $4, %edi + subl $4, %ecx + jnz Lcopy_more + + movl __go32_info_block+4, %eax + movl %eax, _ScreenPrimary + movl __go32_info_block+8, %eax + movl %eax, _ScreenSecondary +/* Backward compatibility - do not copy this one! +** movl __go32_info_block+12, %eax +** movl %eax, ___transfer_buffer +*/ + movl __go32_info_block+20, %eax + movl %eax, ___pid + movl __go32_info_block+24, %eax + movl %eax, __hard_master + + jmp Lcopy_done + +Lcopy_none: + movl %ebx,__go32_info_block+4 + movl %ebp,__go32_info_block+8 + movl %edi,__go32_info_block+12 + movl $4096,__go32_info_block+16 + movl %esi,__go32_info_block+20 + movl %eax,__go32_info_block+24 + movl $28, __go32_info_block +Lcopy_done: + +#ifndef EMU387 + call __setstack +#endif + xorl %esi,%esi + xorl %edi,%edi + xorl %ebp,%ebp + xorl %ebx,%ebx + + movl %esp,%ebx +#ifdef MAKE_GCRT0 + call mcount_init /* initialize the profiler */ +#endif + movl 8(%ebx),%eax + pushl %eax + movl %eax,_environ + pushl 4(%ebx) + pushl (%ebx) + call ___main + call _main + addl $12,%esp +#ifdef EMU387 + pop %gs + popa +#else + pushl %eax + call _exit + +exit_again: + movl $0x4c00,%eax + int $0x21 + jmp exit_again +#endif + + ret + + +#ifdef MAKE_GCRT0 + .globl __exit +__exit: + call mcount_write /* make sure we dump the output */ +exit_again2: + movb 4(%esp),%al + movb $0x4c,%ah + int $0x21 + jmp exit_again2 + +/* Here is where we initialize the timer interrupt - specific to go32 */ +/* In this case, the timer calls mcount_isr */ + .globl mcount_isr_init +mcount_isr_init: + movw __go32_info_block+36, %ax /* run mode */ + cmp $1,%ax + jb skip_mcount + cmp $3,%ax + ja skip_mcount + + movw $16,%ax + movw %ax,%gs + + movzbl __hard_master,%eax /* timer is on irq 0 */ + shll $3,%eax /* times 8 bpv */ +/* movl $960,%eax vector 0x78 * 8 bpv */ + movw %gs:(%eax),%cx + movw %cx,mc_chain + movw %gs:6(%eax),%cx + movw %cx,mc_chain_hi + movw %gs:2(%eax),%cx + movw %cx,mc_chain_sel + + movl $mcount_isr,%ecx + movw %cx,%gs:(%eax) + movw $0xd8,%gs:2(%eax) /* selector 27 == 32-bit code */ + movw $0x8f00,%gs:4(%eax) + rorl $16,%ecx + movw %cx,%gs:6(%eax) + movw %ds,%ax + movw %ax,%gs +skip_mcount: + movl mcount_histogram,%eax + movl $1,(%eax) + ret + +/* Obtain the PC where we interrupted, and bump the histogram. We should */ +/* do error checking here, but we don't. This routine is specific to go32 */ +/* in some spots */ +mcount_isr: + pushl %eax + cmpl $1,mcount_skip + je L0 + movl 4(%esp),%eax /* get the PC */ + subl $0x1020,%eax /* to fit in low..high */ + andl $0xfffffffc,%eax + shrl $1,%eax /* now points to one 4-byte entry */ + addl mcount_histogram,%eax + incw (%eax) +L0: + popl %eax + ljmp mc_chain /* chain to the next timer vector */ + iret +#endif + + .data + + .globl _environ +_environ: + .long 0 + + .globl ___pid +___pid: + .long 42 + + .globl ___transfer_buffer +___transfer_buffer: + .long 0 + + .globl _ScreenPrimary +_ScreenPrimary: + .long 0 + + .globl _ScreenSecondary +_ScreenSecondary: + .long 0 + + .globl __hard_master + .globl __hard_slave + .globl __core_select +__hard_master: + .byte 0 +__hard_slave: + .byte 0 +__core_select: + .short 0 + +#ifdef MAKE_GCRT0 +mc_chain: + .short 0 +mc_chain_hi: + .short 0 +mc_chain_sel: + .short 0 +#endif + + diff --git a/newlib/libc/sys/go32/dir.c b/newlib/libc/sys/go32/dir.c new file mode 100644 index 000000000..ba3831a82 --- /dev/null +++ b/newlib/libc/sys/go32/dir.c @@ -0,0 +1,95 @@ +#include <string.h> + +#include "sys/dir.h" +#include "sys/dirent.h" +#include <errno.h> + +DIR *opendir(char *name) +{ + int length; + DIR *dir = (DIR *)malloc(sizeof(DIR)); + dir->num_read = 0; + dir->name = (char *)malloc(strlen(name)+6); + strcpy(dir->name, name); + + /* Append a "." if we got only the device name */ + if (dir->name[1] == ':' && strlen(dir->name) == 2) + strcat(dir->name, "."); + + /* Strip trailing slashes, so we can append "/*.*" */ + while (1) + { + length = strlen(dir->name); + if (length == 0) break; + if (dir->name[length - 1] == '/' || + dir->name[length - 1] == '\\') + dir->name[length - 1] = '\0'; + else + break; + } + + strcat(dir->name, "/*.*"); + return dir; +} + + + +static char *strlwr(char *s) +{ + char *p = s; + while (*s) + { + if ((*s >= 'A') && (*s <= 'Z')) + *s += 'a'-'A'; + s++; + } + return p; +} + +struct dirent *readdir(DIR *dir) +{ + int done; + int oerrno = errno; + if (dir->num_read) + done = findnext(&dir->ff); + else + done = findfirst(dir->name, &dir->ff, + FA_ARCH|FA_RDONLY|FA_DIREC|FA_HIDDEN|FA_SYSTEM); + if (done) + { + if (errno == ENMFILE) + errno = oerrno; + return 0; + } + dir->num_read ++; + dir->de.d_namlen = strlen(dir->ff.ff_name); + strcpy(dir->de.d_name,dir->ff.ff_name); + strlwr(dir->de.d_name); + return &dir->de; +} + +long telldir(DIR *dir) +{ + return dir->num_read; +} + +void seekdir(DIR *dir, long loc) +{ + int i; + rewinddir(dir); + for (i=0; i<loc; i++) + readdir(dir); +} + +void rewinddir(DIR *dir) +{ + dir->num_read = 0; +} + +int closedir(DIR *dir) +{ + free(dir->name); + free(dir); + return 0; +} + diff --git a/newlib/libc/sys/go32/dir.h b/newlib/libc/sys/go32/dir.h new file mode 100644 index 000000000..826c4604d --- /dev/null +++ b/newlib/libc/sys/go32/dir.h @@ -0,0 +1,53 @@ +#ifndef _DIR_H_
+#define _DIR_H_
+
+struct ffblk {
+ char ff_reserved[21];
+ char ff_attrib;
+ short ff_ftime;
+ short ff_fdate;
+ short ff_filler;
+ long ff_fsize;
+ char ff_name[16];
+};
+
+#define FA_RDONLY 1
+#define FA_HIDDEN 2
+#define FA_SYSTEM 4
+#define FA_LABEL 8
+#define FA_DIREC 16
+#define FA_ARCH 32
+
+/* for fnmerge/fnsplit */
+#define MAXPATH 80
+#define MAXDRIVE 3
+#define MAXDIR 66
+#define MAXFILE 9
+#define MAXEXT 5
+
+#define WILDCARDS 0x01
+#define EXTENSION 0x02
+#define FILENAME 0x04
+#define DIRECTORY 0x08
+#define DRIVE 0x10
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int findfirst(const char *pathname, struct ffblk *ffblk, int attrib);
+int findnext(struct ffblk *ffblk);
+
+void fnmerge (char *path, const char *drive, const char *dir,
+ const char *name, const char *ext);
+int fnsplit (const char *path, char *drive, char *dir,
+ char *name, char *ext);
+
+int getdisk(void);
+int setdisk(int drive);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/djtime.h b/newlib/libc/sys/go32/djtime.h new file mode 100644 index 000000000..db28dbe7e --- /dev/null +++ b/newlib/libc/sys/go32/djtime.h @@ -0,0 +1,42 @@ +/* This is file TIME.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _SYS_TIME_H_ +#define _SYS_TIME_H_ + +#include <time.h> + +struct timeval { + long tv_sec; + long tv_usec; +}; + +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +int gettimeofday(struct timeval *tp, struct timezone *tzp); + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/newlib/libc/sys/go32/dos.h b/newlib/libc/sys/go32/dos.h new file mode 100644 index 000000000..8b42562d2 --- /dev/null +++ b/newlib/libc/sys/go32/dos.h @@ -0,0 +1,107 @@ +#ifndef _DOS_H_ +#define _DOS_H_ + +#include "pc.h" + +union REGS { + struct { + unsigned long ax; + unsigned long bx; + unsigned long cx; + unsigned long dx; + unsigned long si; + unsigned long di; + unsigned long cflag; + unsigned long flags; + } x; + struct { + unsigned char al; + unsigned char ah; + unsigned short upper_ax; + unsigned char bl; + unsigned char bh; + unsigned short upper_bx; + unsigned char cl; + unsigned char ch; + unsigned short upper_cx; + unsigned char dl; + unsigned char dh; + unsigned short upper_dx; + } h; +}; + +struct SREGS { + unsigned short cs; + unsigned short ds; + unsigned short es; + unsigned short fs; + unsigned short gs; + unsigned short ss; +}; + +struct ftime { + unsigned ft_tsec:5; /* 0-29, double to get real seconds */ + unsigned ft_min:6; /* 0-59 */ + unsigned ft_hour:5; /* 0-23 */ + unsigned ft_day:5; /* 1-31 */ + unsigned ft_month:4; /* 1-12 */ + unsigned ft_year:7; /* since 1980 */ +}; + +struct date { + short da_year; + char da_day; + char da_mon; +}; + +struct time { + unsigned char ti_min; + unsigned char ti_hour; + unsigned char ti_hund; + unsigned char ti_sec; +}; + +struct dfree { + unsigned df_avail; + unsigned df_total; + unsigned df_bsec; + unsigned df_sclus; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +int bdos(int func, unsigned dx, unsigned al); +int bdosptr(int func, void *dx, unsigned al); +int int86(int ivec, union REGS *in, union REGS *out); +int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg); +int intdos(union REGS *in, union REGS *out); +int intdosx(union REGS *in, union REGS *out, struct SREGS *seg); + +int enable(void); +int disable(void); + +int getftime(int handle, struct ftime *ftimep); +int setftime(int handle, struct ftime *ftimep); + +int getcbrk(void); +int setcbrk(int new_value); + +void getdate(struct date *); +void gettime(struct time *); +void setdate(struct date *); +void settime(struct time *); + +void getdfree(unsigned char drive, struct dfree *ptr); + +void delay(unsigned msec); +int _get_default_drive(void); +void _fixpath(const char *, char *); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/newlib/libc/sys/go32/dosmem.S b/newlib/libc/sys/go32/dosmem.S new file mode 100644 index 000000000..c1956f767 --- /dev/null +++ b/newlib/libc/sys/go32/dosmem.S @@ -0,0 +1,120 @@ +/* DOSMEM.S */ +/* +** Copyright (C) 1993 C.W. Sandmann +** +** This file may be freely distributed as long as the author's name remains. +** Extender environment independent way to set up Real area 1Mb access. +** Procedure takes a single argument %eax which contains the real area offset. +** After call, access may be made with "%gs:(%eax)" +*/ + .text + .align 2 + .globl dosmemsetup +dosmemsetup: /* no params, expected ASM call only */ + pushl %eax + movzwl __core_select,%eax + testl %eax,%eax + je old_go32 /* Image run with pre-DPMI extender */ + movw %ax,%gs /* Use real area selector */ + popl %eax /* Plus real offset */ + andl $0x0fffffff,%eax /* Clear any linear access bits */ + ret + .align 2,0x90 +old_go32: + push %ds + pop %gs /* Use arena selector */ + popl %eax + orl $0xe0000000,%eax /* Plus linear access area */ + ret + + .align 2 + .globl _dosmemget +_dosmemget: /* long offset, long len, long *buf */ + push %gs + movl 8(%esp),%eax /* offset */ + call dosmemsetup + movl 12(%esp),%ecx /* length */ + movl 16(%esp),%edx /* arena offset */ + pushl %esi + pushl %edi + movl %eax,%esi + movl %edx,%edi + push %ds + push %es + push %ds + pop %es + push %gs + pop %ds + cld + rep + movsb /* move ECX bytes from Real area */ + pop %es + pop %ds + popl %edi + popl %esi + pop %gs + ret + + .align 2 + .globl _dosmemput +_dosmemput: /* long *buf, long len, long offset */ + push %gs + movl 16(%esp),%eax /* offset */ + call dosmemsetup + movl 12(%esp),%ecx /* length */ + movl 8(%esp),%edx /* arena offset */ + pushl %esi + pushl %edi + movl %eax,%edi + movl %edx,%esi + push %es + push %gs + pop %es + cld + rep + movsb /* move ECX bytes to Real area */ + pop %es + popl %edi + popl %esi + pop %gs + ret + + .align 2 /* 8(bp) 12(bp) 16(bp) 20(bp) 24(bp) */ + .globl _movedata /* src_sel, src_ofs, dest_sel, dest_ofs, len */ +_movedata: + pushl %ebp + movl %esp,%ebp + pushw %ds + pushw %es + pushl %esi + pushl %edi + + movl 8(%ebp),%eax + movw %ax,%ds + movl 12(%ebp),%esi + + movl 16(%ebp),%eax + movw %ax,%es + movl 20(%ebp),%edi + + movl 24(%ebp),%ecx + pushl %ecx + shrl $2,%ecx + jcxz no_big_move + rep + movsl +no_big_move: + popl %ecx + andl $3,%ecx + jcxz no_little_move + rep + movsb +no_little_move: + + popl %edi + popl %esi + popw %es + popw %ds + leave + ret + diff --git a/newlib/libc/sys/go32/dpmi.c b/newlib/libc/sys/go32/dpmi.c new file mode 100644 index 000000000..5215065e1 --- /dev/null +++ b/newlib/libc/sys/go32/dpmi.c @@ -0,0 +1,413 @@ +#include <stdlib.h> +#include "dos.h" +#include "go32.h" +#include <sys/types.h> +#include "dpmi.h" + +static union REGS r; +static struct SREGS s; + +int _go32_dpmi_allocate_dos_memory(_go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0100; + r.x.bx = info->size; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + info->size = r.x.bx; + return r.x.ax; + } + else + { + info->rm_segment = r.x.ax; + info->pm_selector = r.x.dx; + return 0; + } +} + +int _go32_dpmi_free_dos_memory(_go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0101; + r.x.dx = info->pm_selector; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +int _go32_dpmi_resize_dos_memory(_go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0102; + r.x.bx = info->size; + r.x.dx = info->pm_selector; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + info->size = r.x.bx; + return r.x.ax; + } + else + { + return 0; + } +} + +int _go32_dpmi_get_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0200; + r.h.bl = vector; + int86(0x31, &r, &r); + info->rm_segment = r.x.cx; + info->rm_offset = r.x.dx; + return 0; +} + +int _go32_dpmi_set_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0201; + r.h.bl = vector; + r.x.cx = info->rm_segment; + r.x.dx = info->rm_offset; + int86(0x31, &r, &r); + return 0; +} + +int _go32_dpmi_get_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0204; + r.h.bl = vector; + int86(0x31, &r, &r); + info->pm_selector = r.x.cx; + info->pm_offset = r.x.dx; + return 0; +} + +int _go32_dpmi_set_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info) +{ + r.x.ax = 0x0205; + r.h.bl = vector; + r.x.cx = info->pm_selector; + r.x.dx = info->pm_offset; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +/* In real DPMI, we enter with only CS known, and SS on a locked 4K stack which + is *NOT* our SS. We must set up everthing, including a stack swap, then + restore it the way we found it. C. Sandmann 4-93 */ + +static unsigned char wrapper_intcommon[] = { +0x1e, /* push ds */ +0x06, /* push es */ +0x0f, 0xa0, /* push fs */ +0x0f, 0xa8, /* push gs */ +0x60, /* pusha */ +0x66, 0xb8, 0x34, 0x12, /* mov ax,0x1234 */ +0x8e, 0xd8, /* mov ds,ax */ +0x8e, 0xc0, /* mov es,ax */ +0x8e, 0xe0, /* mov fs,ax */ +0x8e, 0xe8, /* mov gs,ax */ +0xbb, 0x00, 0x00, 0x00, 0x00, /* mov ebx,_local_stack */ +0xfc, /* cld */ +0x89, 0xe1, /* mov ecx,esp */ +0x8c, 0xd2, /* mov dx,ss */ +0x8e, 0xd0, /* mov ss,ax */ +0x89, 0xdc, /* mov esp,ebx */ +0x52, /* push edx */ +0x51, /* push ecx */ +0xe8, 0x00, 0x00, 0x00, 0x00, /* call _rmih */ +0x58, /* pop eax */ +0x5b, /* pop ebx */ +0x8e, 0xd3, /* mov ss,bx */ +0x89, 0xc4, /* mov esp,eax */ +0x61, /* popa */ +0x0f, 0xa9, /* pop gs */ +0x0f, 0xa1, /* pop fs */ +0x07, /* pop es */ +0x1f /* pop ds */ +}; + +static unsigned char wrapper_intiret[] = { +0xcf /* iret */ +}; + +static unsigned char wrapper_intchain[] = { +0x2e, 0xff, 0x2d, 0x00, 0x00, 0x00, 0x00, /* jmp cs:[_old_int+39] */ +0xcf, /* iret */ +0x78, 0x56, 0x34, 0x12, +0xcd, 0xab +}; + +/* _interrupt_stack_size can be changed globally before calling this routine if + needed. Don't change it between calls or you will mess up the malloc chain ! */ + +unsigned _interrupt_stack_size = 32256; + +int _go32_dpmi_chain_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info) +{ + char *mystack; + unsigned char *wrapper = (unsigned char *)malloc(sizeof(wrapper_intcommon) + sizeof(wrapper_intchain)); + if (wrapper == 0) + return 0x8015; + mystack = (char *)malloc(_interrupt_stack_size); + if (mystack == 0) + return 0x8015; + + r.x.ax = 0x0204; + r.h.bl = vector; + int86(0x31, &r, &r); + + memcpy(wrapper, wrapper_intcommon, sizeof(wrapper_intcommon)); + memcpy(wrapper+sizeof(wrapper_intcommon), wrapper_intchain, sizeof(wrapper_intchain)); + *(short *)(wrapper+9) = _go32_my_ds(); + *(long *)(wrapper+20) = (int)mystack + _interrupt_stack_size; + *(long *)(wrapper+36) = info->pm_offset - (int)wrapper - 40; + *(long *)(wrapper+sizeof(wrapper_intcommon)+3) = (long)wrapper+sizeof(wrapper_intcommon)+8; + *(long *)(wrapper+sizeof(wrapper_intcommon)+8) = r.x.dx; + *(short *)(wrapper+sizeof(wrapper_intcommon)+12) = r.x.cx; + + r.x.ax = 0x0205; + r.h.bl = vector; + r.x.cx = _go32_my_cs(); + r.x.dx = (int)wrapper; + int86(0x31, &r, &r); + return 0; +} + +int _go32_dpmi_allocate_iret_wrapper(_go32_dpmi_seginfo *info) +{ + char *mystack; + unsigned char *wrapper = (unsigned char *)malloc(sizeof(wrapper_intcommon) + sizeof(wrapper_intiret)); + if (wrapper == 0) + return 0x8015; + mystack = (char *)malloc(_interrupt_stack_size); + if (mystack == 0) + return 0x8015; + + memcpy(wrapper, wrapper_intcommon, sizeof(wrapper_intcommon)); + memcpy(wrapper+sizeof(wrapper_intcommon), wrapper_intiret, sizeof(wrapper_intiret)); + *(short *)(wrapper+9) = _go32_my_ds(); + *(long *)(wrapper+20) = (int)mystack + _interrupt_stack_size; + *(long *)(wrapper+36) = info->pm_offset - (int)wrapper - 40; + + info->pm_offset = (int)wrapper; + return 0; +} + +int _go32_dpmi_free_iret_wrapper(_go32_dpmi_seginfo *info) +{ + char *mystack; + char *wrapper = (char *)info->pm_offset; + mystack = (char *)(*(long *)(wrapper+20) - _interrupt_stack_size); + free(mystack); + free(wrapper); + return 0; +} + +int _go32_dpmi_simulate_int(int vector, _go32_dpmi_registers *regs) +{ + r.h.bl = vector; + r.h.bh = 0; + r.x.cx = 0; + r.x.di = (int)regs; + if (vector == 0x21 && regs->x.ax == 0x4b00) + { + r.x.ax = 0xff0a; + int86(0x21, &r, &r); + } + else + { + r.x.ax = 0x0300; + int86(0x31, &r, &r); + } + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +int _go32_dpmi_simulate_fcall(_go32_dpmi_registers *regs) +{ + r.x.ax = 0x0301; + r.h.bh = 0; + r.x.cx = 0; + r.x.di = (int)regs; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +int _go32_dpmi_simulate_fcall_iret(_go32_dpmi_registers *regs) +{ + r.x.ax = 0x0302; + r.h.bh = 0; + r.x.cx = 0; + r.x.di = (int)regs; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +/* Bug here; this needs to be fixed like above with SS & CLD */ + +static unsigned char wrapper_common[] = { +0x66, 0x06, /* push es */ +0x66, 0x1e, /* push ds */ +0x66, 0x06, /* push es */ +0x66, 0x1f, /* pop ds */ +0x56, /* push esi */ +0x57, /* push edi */ +0xe8, 0x00, 0x00, 0x00, 0x00, /* call _rmcb */ +0x5f, /* pop edi */ +0x5e, /* pop esi */ +0x66, 0x1f, /* pop ds */ +0x66, 0x07, /* pop es */ +0xfc, /* cld */ +0x66, 0x8b, 0x06, /* mov ax,[esi] */ +0x66, 0x26, 0x89, 0x47, 0x2a, /* mov es:[edi+42],ax */ +0x66, 0x8b, 0x46, 0x02, /* mov ax,[esi+2] */ +0x66, 0x26, 0x89, 0x47, 0x2c, /* mov es:[edi+44],ax */ +}; + +static unsigned char wrapper_retf[] = { +0x66, 0x26, 0x83, 0x47, 0x2e, 0x04, /* add es:[edi+46],0x4 */ +0xcf /* iret */ +}; + +static unsigned char wrapper_iret[] = { +0x66, 0x8b, 0x46, 0x04, /* mov ax,[esi+4] */ +0x66, 0x26, 0x89, 0x47, 0x20, /* mov es:[edi+32],ax */ +0x66, 0x26, 0x83, 0x47, 0x2e, 0x06, /* add es:[edi+46],0x6 */ +0xcf /* iret */ +}; + +int _go32_dpmi_allocate_real_mode_callback_retf(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs) +{ + unsigned char *wrapper = (unsigned char *)malloc(sizeof(wrapper_common) + sizeof(wrapper_retf)); + if (wrapper == 0) + return 0x8015; + + memcpy(wrapper, wrapper_common, sizeof(wrapper_common)); + memcpy(wrapper+sizeof(wrapper_common), wrapper_retf, sizeof(wrapper_retf)); + *(long *)(wrapper+11) = info->pm_offset - (int)wrapper - 15; + info->size = (int)wrapper; + + r.x.ax = 0x0303; + r.x.si = (int)wrapper; + r.x.di = (int)regs; + s.ds = _go32_my_cs(); + s.es = _go32_my_ds(); + s.fs = 0; + s.gs = 0; + int86x(0x31, &r, &r, &s); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + info->rm_segment = r.x.cx; + info->rm_offset = r.x.dx; + return 0; + } +} + +int _go32_dpmi_allocate_real_mode_callback_iret(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs) +{ + unsigned char *wrapper = (unsigned char *)malloc(sizeof(wrapper_common) + sizeof(wrapper_iret)); + if (wrapper == 0) + return 0x8015; + + memcpy(wrapper, wrapper_common, sizeof(wrapper_common)); + memcpy(wrapper+sizeof(wrapper_common), wrapper_iret, sizeof(wrapper_iret)); + *(long *)(wrapper+11) = info->pm_offset - (int)wrapper - 15; + info->size = (int)wrapper; + + r.x.ax = 0x0303; + r.x.si = (int)wrapper; + r.x.di = (int)regs; + s.ds = _go32_my_cs(); + s.es = _go32_my_ds(); + s.fs = 0; + s.gs = 0; + int86x(0x31, &r, &r, &s); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + info->rm_segment = r.x.cx; + info->rm_offset = r.x.dx; + return 0; + } +} + +int _go32_dpmi_free_real_mode_callback(_go32_dpmi_seginfo *info) +{ + free((char *)info->size); + r.x.ax = 0x0304; + r.x.cx = info->rm_segment; + r.x.dx = info->rm_offset; + int86(0x31, &r, &r); + if (r.x.flags & 1) + { + return r.x.ax; + } + else + { + return 0; + } +} + +int _go32_dpmi_get_free_memory_information(_go32_dpmi_meminfo *info) +{ + r.x.ax = 0x0500; + r.x.di = (int)info; + int86(0x31, &r, &r); + return 0; +} + +u_long _go32_dpmi_remaining_physical_memory() +{ + _go32_dpmi_meminfo info; + _go32_dpmi_get_free_memory_information(&info); + if (info.available_physical_pages) + return info.available_physical_pages * 4096; + return info.available_memory; +} + +u_long _go32_dpmi_remaining_virtual_memory() +{ + _go32_dpmi_meminfo info; + _go32_dpmi_get_free_memory_information(&info); + return info.available_memory; +} diff --git a/newlib/libc/sys/go32/dpmi.h b/newlib/libc/sys/go32/dpmi.h new file mode 100644 index 000000000..7a2cb13af --- /dev/null +++ b/newlib/libc/sys/go32/dpmi.h @@ -0,0 +1,151 @@ +/* This is file dpmi.h */
+/*
+** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
+**
+** This file is distributed under the terms listed in the document
+** "copying.dj", available from DJ Delorie at the address above.
+** A copy of "copying.dj" should accompany this file; if not, a copy
+** should be available from where this file was obtained. This file
+** may not be distributed without a verbatim copy of "copying.dj".
+**
+** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _DPMI_H_
+#define _DPMI_H_
+
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef union {
+ struct {
+ u_long edi;
+ u_long esi;
+ u_long ebp;
+ u_long res;
+ u_long ebx;
+ u_long edx;
+ u_long ecx;
+ u_long eax;
+ } d;
+ struct {
+ u_short di, di_hi;
+ u_short si, si_hi;
+ u_short bp, bp_hi;
+ u_short res, res_hi;
+ u_short bx, bx_hi;
+ u_short dx, dx_hi;
+ u_short cx, cx_hi;
+ u_short ax, ax_hi;
+ u_short flags;
+ u_short es;
+ u_short ds;
+ u_short fs;
+ u_short gs;
+ u_short ip;
+ u_short cs;
+ u_short sp;
+ u_short ss;
+ } x;
+ struct {
+ u_char edi[4];
+ u_char esi[4];
+ u_char ebp[4];
+ u_char res[4];
+ u_char bl, bh, ebx_b2, ebx_b3;
+ u_char dl, dh, edx_b2, edx_b3;
+ u_char cl, ch, ecx_b2, ecx_b3;
+ u_char al, ah, eax_b2, eax_b3;
+ } h;
+} _go32_dpmi_registers;
+
+typedef struct {
+ u_long size;
+ u_long pm_offset;
+ u_short pm_selector;
+ u_short rm_offset;
+ u_short rm_segment;
+} _go32_dpmi_seginfo;
+
+typedef struct {
+ u_long available_memory;
+ u_long available_pages;
+ u_long available_lockable_pages;
+ u_long linear_space;
+ u_long unlocked_pages;
+ u_long available_physical_pages;
+ u_long total_physical_pages;
+ u_long free_linear_space;
+ u_long max_pages_in_paging_file;
+ u_long reserved[3];
+} _go32_dpmi_meminfo;
+
+/* returns zero if success, else dpmi error and info->size is max size */
+int _go32_dpmi_allocate_dos_memory(_go32_dpmi_seginfo *info);
+ /* set size to bytes/16, call, use rm_segment. Do not
+ change anthing but size until the memory is freed.
+ If error, max size is returned in size as bytes/16. */
+int _go32_dpmi_free_dos_memory(_go32_dpmi_seginfo *info);
+ /* set new size to bytes/16, call. If error, max size
+ is returned in size as bytes/16 */
+int _go32_dpmi_resize_dos_memory(_go32_dpmi_seginfo *info);
+ /* uses pm_selector to free memory */
+
+/* These both use the rm_segment:rm_offset fields only */
+int _go32_dpmi_get_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+int _go32_dpmi_set_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+
+/* These do NOT wrap the function in pm_offset in an iret handler.
+ You must provide an assembler interface yourself, or alloc one below.
+ You may NOT longjmp out of an interrupt handler. */
+int _go32_dpmi_get_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* puts vector in pm_selector:pm_offset. */
+int _go32_dpmi_set_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* sets vector from pm_offset and pm_selector */
+int _go32_dpmi_chain_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* sets up wrapper that calls function in pm_offset, chaining to old
+ handler when it returns */
+
+/* These can be used to generate assember IRET-style wrappers for functions */
+int _go32_dpmi_allocate_iret_wrapper(_go32_dpmi_seginfo *info);
+ /* Put function ptr in pm_offset, call, returns wrapper entry in pm_offset. */
+int _go32_dpmi_free_iret_wrapper(_go32_dpmi_seginfo *info);
+ /* assumes pm_offset points to wrapper, frees it */
+
+/* simulate real mode calls. CS:IP from regs for non-interrupt */
+int _go32_dpmi_simulate_int(int vector, _go32_dpmi_registers *regs);
+int _go32_dpmi_simulate_fcall(_go32_dpmi_registers *regs);
+int _go32_dpmi_simulate_fcall_iret(_go32_dpmi_registers *regs);
+
+/* These automatically handle the tasks of restructuring the
+ real-mode stack for the proper return type. The callback
+ (info->pm_offset) is called as (*pmcb)(_go32_dpmi_registers *regs); */
+int _go32_dpmi_allocate_real_mode_callback_retf(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs);
+ /* points callback at pm_offset, returns seg:ofs of callback addr
+ in rm_segment:rm_offset. Do not change any fields until freed.
+ Interface is added to simulate far return */
+int _go32_dpmi_allocate_real_mode_callback_iret(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs);
+ /* same, but simulates iret */
+int _go32_dpmi_free_real_mode_callback(_go32_dpmi_seginfo *info);
+ /* frees callback */
+
+/* Only available_memory is guaranteed to be valid. Try
+ available_physical_pages for phys mem left */
+int _go32_dpmi_get_free_memory_information(_go32_dpmi_meminfo *info);
+
+/* Convenience functions. These use the above memory info call.
+ The return value is *bytes* */
+u_long _go32_dpmi_remaining_physical_memory(void);
+u_long _go32_dpmi_remaining_virtual_memory(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/dup.s b/newlib/libc/sys/go32/dup.s new file mode 100644 index 000000000..e093baffd --- /dev/null +++ b/newlib/libc/sys/go32/dup.s @@ -0,0 +1,28 @@ +# /* This is file DUP.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _dup +_dup: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movb $0x45,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + ret diff --git a/newlib/libc/sys/go32/dup2.s b/newlib/libc/sys/go32/dup2.s new file mode 100644 index 000000000..e26b48fa1 --- /dev/null +++ b/newlib/libc/sys/go32/dup2.s @@ -0,0 +1,28 @@ +# /* This is file DUP2.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _dup2 +_dup2: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movb $0x46,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/exec.c b/newlib/libc/sys/go32/exec.c new file mode 100644 index 000000000..004666c71 --- /dev/null +++ b/newlib/libc/sys/go32/exec.c @@ -0,0 +1,509 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include <fcntl.h> +#include "go32.h" +#include "dpmi.h" +/*#include "process.h"*/ +#if 1 +#define P_WAIT 1
+#define P_NOWAIT 2 /* always generates error */
+#define P_OVERLAY 3
+#endif +extern const char **environ; +#define environ ((const char **)environ) + +#define scan_ptr() \ + char const **ptr; \ + for (ptr = &argv0; *ptr; ptr++); \ + ptr = (char const **)(*++ptr); + +int execl(const char *path, const char *argv0, ...) +{ + return spawnve(P_OVERLAY, path, &argv0, environ); +} + +int execle(const char *path, const char *argv0, ... /*, const char **envp */) +{ + scan_ptr(); + return spawnve(P_OVERLAY, path, &argv0, ptr); +} + +int execlp(const char *path, const char *argv0, ...) +{ + return spawnvpe(P_OVERLAY, path, &argv0, environ); +} + +int execlpe(const char *path, const char *argv0, ... /*, const char **envp */) +{ + scan_ptr(); + return spawnvpe(P_OVERLAY, path, &argv0, ptr); +} + +/*-------------------------------------------------*/ + +int execv(const char *path, const char **argv) +{ + return spawnve(P_OVERLAY, path, argv, environ); +} + +int execve(const char *path, const char **argv, const char **envp) +{ + return spawnve(P_OVERLAY, path, argv, envp); +} + +int execvp(const char *path, const char **argv) +{ + return spawnvpe(P_OVERLAY, path, argv, environ); +} + +int execvpe(const char *path, const char **argv, const char **envp) +{ + return spawnvpe(P_OVERLAY, path, argv, envp); +} + +/*-------------------------------------------------*/ + +int spawnl(int mode, const char *path, const char *argv0, ...) +{ + return spawnve(mode, path, &argv0, environ); +} + +int spawnle(int mode, const char *path, const char *argv0, ... /*, const char **envp */) +{ + scan_ptr(); + return spawnve(mode, path, &argv0, ptr); +} + +int spawnlp(int mode, const char *path, const char *argv0, ...) +{ + return spawnvpe(mode, path, &argv0, environ); +} + +int spawnlpe(int mode, const char *path, const char *argv0, ... /*, const char **envp */) +{ + scan_ptr(); + return spawnvpe(mode, path, &argv0, ptr); +} + +/*-------------------------------------------------*/ + +typedef struct { + u_short eseg; + u_short argoff; + u_short argseg; + u_short fcb1_off; + u_short fcb1_seg; + u_short fcb2_off; + u_short fcb2_seg; +} Execp; + +static Execp parm; + +static u_long tbuf; + +static u_long talloc(size_t amt) +{ + u_long rv = tbuf; + tbuf += amt; + return rv; +} + +static int direct_exec_tail(const char *program, const char *args, const char **envp) +{ + _go32_dpmi_registers r; + u_long program_la; + u_long arg_la; + u_long parm_la; + u_long env_la, env_e_la; + char arg_header[3]; + int i; + + program_la = talloc(strlen(program)+1); + arg_la = talloc(strlen(args)+3); + parm_la = talloc(sizeof(Execp)); + + dosmemput(program, strlen(program)+1, program_la); + + arg_header[0] = strlen(args); + arg_header[1] = '\r'; + dosmemput(arg_header, 1, arg_la); + dosmemput(args, strlen(args), arg_la+1); + dosmemput(arg_header+1, 1, arg_la+1+strlen(args)); + + do { + env_la = talloc(1); + } while (env_la & 15); + talloc(-1); + for (i=0; envp[i]; i++) + { + env_e_la = talloc(strlen(envp[i])+1); + dosmemput(envp[i], strlen(envp[i])+1, env_e_la); + } + arg_header[0] = 0; + arg_header[1] = 1; + arg_header[2] = 0; + dosmemput(arg_header, 3, talloc(3)); + env_e_la = talloc(strlen(program)+1); + dosmemput(program, strlen(program)+1, env_e_la); + + parm.eseg = env_la / 16; + parm.argseg = arg_la / 16; + parm.argoff = arg_la & 15; + dosmemput(&parm, sizeof(parm), parm_la); + + memset(&r, 0, sizeof(r)); + r.x.ax = 0x4b00; + r.x.ds = program_la / 16; + r.x.dx = program_la & 15; + r.x.es = parm_la / 16; + r.x.bx = parm_la & 15; + _go32_dpmi_simulate_int(0x21, &r); + if (r.x.flags & 1) + { + errno = r.x.ax; + return -1; + } + + memset(&r, 0, sizeof(r)); + r.h.ah = 0x4d; + _go32_dpmi_simulate_int(0x21, &r); + + if (r.x.flags & 1) + { + errno = r.x.ax; + return -1; + } + return r.x.ax; +} + +static int direct_exec(const char *program, const char **argv, const char **envp) +{ + int i, arglen; + char *args, *argp; + + tbuf = _go32_info_block.linear_address_of_transfer_buffer; + + arglen = 0; + for (i=1; argv[i]; i++) + arglen += strlen(argv[i]) + 1; + args = (char *)malloc(arglen+1); + argp = args; + for (i=1; argv[i]; i++) + { + const char *p = argv[i]; + if (argp - args > 125) + break; + *argp++ = ' '; + while (*p) + { + if (argp - args > 125) + break; + *argp++ = *p++; + } + } + *argp = 0; + + return direct_exec_tail(program, args, envp); +} + +typedef struct { + char magic[16]; + int struct_length; + char go32[16]; +} StubInfo; +#define STUB_INFO_MAGIC "StubInfoMagic!!" + +static int go32_exec(const char *program, const char **argv, const char **envp) +{ + int is_stubbed = 0; + int found_si = 0; + StubInfo si; + unsigned short header[3]; + int pf, has_dot, i; + char *go32, *sip; + const char *pp, *pe; + char rpath[80], *rp; + int stub_offset, argc; + + int si_la, rm_la, rm_seg; + short *rm_argv; + char cmdline[34]; + + pf = open(program, O_RDONLY|O_BINARY); + + read(pf, header, sizeof(header)); + if (header[0] == 0x010b || header[0] == 0x014c) + { + is_stubbed = 1; + } + else if (header[0] == 0x5a4d) + { + int header_offset = (long)header[2]*512L; + if (header[1]) + header_offset += (long)header[1] - 512L; + lseek(pf, header_offset - 4, 0); + read(pf, &stub_offset, 4); + header[0] = 0; + read(pf, header, sizeof(header)); + if (header[0] == 0x010b) + is_stubbed = 1; + if (header[0] == 0x014c) + is_stubbed = 1; + lseek(pf, stub_offset, 0); + read(pf, &si, sizeof(si)); + if (memcmp(STUB_INFO_MAGIC, si.magic, 16) == 0) + found_si = 1; + } + if (!is_stubbed) + { + close(pf); + return direct_exec(program, argv, envp); + } + + if (found_si) + go32 = si.go32; + else + go32 = "go32.exe"; + has_dot = 0; + for (i=0; go32[i]; i++) + if (go32[i] == '.') + has_dot = 1; + if (!has_dot) + strcpy(go32+i, ".exe"); + for (i=0; envp[i]; i++) + if (strncmp(envp[i], "PATH=", 5) == 0) + pp = envp[i]+5; + strcpy(rpath, go32); + while (access(rpath, 0)) + { + char *ptr; + rp = rpath; + for (pe=pp; *pe && *pe != ';'; pe++) + *rp++ = *pe; + pp = pe+1; + if (rp > rpath && rp[-1] != '/' && rp[-1] != '\\' && rp[-1] != ':') + *rp++ = '/'; + for (ptr = go32; *ptr; ptr++) + *rp++ = *ptr; + *rp = 0; + if (access(rpath, 0) == 0) + break; + if (*pe == 0) + return direct_exec(program, argv, envp); /* give up and just run it */ + } + + if (found_si) + { + lseek(pf, stub_offset, 0); + sip = (char *)malloc(si.struct_length); + read(pf, sip, si.struct_length); + } + close(pf); + + argv[0] = program; /* since that's where we really found it */ + + tbuf = _go32_info_block.linear_address_of_transfer_buffer; + + if (found_si) + { + si_la = talloc(si.struct_length); + dosmemput(sip, si.struct_length, si_la); + free(sip); + } + + for (argc=0; argv[argc]; argc++); + rm_la = talloc(2*(argc+1)); + rm_seg = (_go32_info_block.linear_address_of_transfer_buffer >> 4) & 0xffff; + rm_argv = (short *)malloc((argc+1) * sizeof(short)); + for (i=0; i<argc; i++) + { + int sl = strlen(argv[i]) + 1; + int q = talloc(sl); + dosmemput(argv[i], sl, q); + rm_argv[i] = (q - (rm_seg<<4)) & 0xffff; + } + rm_argv[i] = 0; + dosmemput(rm_argv, 2*(argc+1), rm_la); + + sprintf(cmdline, " !proxy %04x %04x %04x %04x %04x", + argc, rm_seg, (rm_la - (rm_seg<<4))&0xffff, + rm_seg, (si_la - (rm_seg<<4))&0xffff); + if (!found_si) + cmdline[22] = 0; /* remove stub information */ + + return direct_exec_tail(rpath, cmdline, envp); +} + +static int command_exec(const char *program, const char **argv, const char **envp) +{ + const char *comspec=0; + char *cmdline; + char *newargs[3]; + int cmdlen; + int i; + + cmdlen = strlen(program) + 4; + for (i=0; argv[i]; i++) + cmdlen += strlen(argv[i]) + 1; + cmdline = (char *)malloc(cmdlen); + + strcpy(cmdline, "/c "); + for (i=0; program[i]; i++) + { + if (program[i] == '/') + cmdline[i+3] = '\\'; + else + cmdline[i+3] = program[i]; + } + cmdline[i+3] = 0; + for (i=1; argv[i]; i++) + { + strcat(cmdline, " "); + strcat(cmdline, argv[i]); + } + for (i=0; envp[i]; i++) + if (strncmp(envp[i], "COMSPEC=", 8) == 0) + comspec = envp[i]+8; + if (!comspec) + for (i=0; environ[i]; i++) + if (strncmp(environ[i], "COMSPEC=", 8) == 0) + comspec = environ[i]+8; + if (!comspec) + comspec = "c:/command.com"; + newargs[0] = comspec; + newargs[1] = cmdline; + newargs[2] = 0; + i = direct_exec(comspec, (const char **)newargs, envp); + free(cmdline); + return i; +} + +static int script_exec(const char *program, const char **argv, const char **envp) +{ + return go32_exec(program, argv, envp); +} + +static struct { + char *extension; + int (*interp)(const char *, const char **, const char **); +} interpreters[] = { + { ".com", direct_exec }, + { ".exe", go32_exec }, + { ".bat", command_exec }, + { 0, script_exec } +}; +#define INTERP_NO_EXT 3 + +int spawnv(int mode, const char *path, const char **argv) +{ + return spawnve(mode, path, argv, environ); +} + +int spawnve(int mode, const char *path, const char **argv, const char **envp) +{ + /* This is the one that does the work! */ + int i = -1; + char rpath[80], *rp, *rd=0; + fflush(stdout); /* just in case */ + for (rp=rpath; *path; *rp++ = *path++) + { + if (*path == '.') + rd = rp; + if (*path == '\\' || *path == '/') + rd = 0; + } + *rp = 0; + if (rd) + { + for (i=0; interpreters[i].extension; i++) + if (strcasecmp(rd, interpreters[i].extension) == 0) + break; + } + while (access(rpath, 0)) + { + i++; + if (interpreters[i].extension == 0 || rd) + { + errno = ENOENT; + return -1; + } + strcpy(rp, interpreters[i].extension); + } + if (i == -1) + i = INTERP_NO_EXT; + i = interpreters[i].interp(rpath, argv, envp); + if (mode == P_OVERLAY) + exit(i); + return i; +} + +int spawnvp(int mode, const char *path, const char **argv) +{ + return spawnvpe(mode, path, argv, environ); +} + +int spawnvpe(int mode, const char *path, const char **argv, const char **envp) +{ + const char *pp, *pe, *ptr; + char rpath[80], *rp, *rd; + int hasdot = 0, i, tried_dot = 0; + + for (ptr=path; *ptr; ptr++) + { + if (*ptr == '.') + hasdot = 1; + if (*ptr == '/' || *ptr == '\\' || *ptr == ':') + return spawnve(mode, path, argv, envp); + } + + pp = 0; + for (i=0; envp[i]; i++) + if (strncmp(envp[i], "PATH=", 5) == 0) + pp = envp[i] + 5; + if (pp == 0) + return spawnve(mode, path, argv, envp); + + while (1) + { + if (!tried_dot) + { + rp = rpath; + pe = pp; + tried_dot = 1; + } + else + { + rp = rpath; + for (pe = pp; *pe && *pe != ';'; pe++) + *rp++ = *pe; + pp = pe+1; + if (rp > rpath && rp[-1] != '/' && rp[-1] != '\\' && rp[-1] != ':') + *rp++ = '/'; + } + for (ptr = path; *ptr; ptr++) + *rp++ = *ptr; + *rp = 0; + + if (hasdot) + { + if (access(rpath, 0) == 0) + return spawnve(mode, rpath, argv, envp); + } + else + { + for (i=0; interpreters[i].extension; i++) + { + strcpy(rp, interpreters[i].extension); + if (access(rpath, 0) == 0) + return spawnve(mode, rpath, argv, envp); + } + } + if (*pe == 0) + { + errno = ENOENT; + return -1; + } + } +} diff --git a/newlib/libc/sys/go32/fchmod.c b/newlib/libc/sys/go32/fchmod.c new file mode 100644 index 000000000..a161dfcfa --- /dev/null +++ b/newlib/libc/sys/go32/fchmod.c @@ -0,0 +1,18 @@ +/* This is file FCHMOD.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +fchmod() +{ + write(2, "Warning: fchmod() unimplemented\n", 32); +} diff --git a/newlib/libc/sys/go32/findfirs.s b/newlib/libc/sys/go32/findfirs.s new file mode 100644 index 000000000..fa3f24768 --- /dev/null +++ b/newlib/libc/sys/go32/findfirs.s @@ -0,0 +1,18 @@ + .globl _findfirst +_findfirst: + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edx + movb $0x1a,%ah + int $0x21 + + movl 16(%esp),%edx + movl 24(%esp),%ecx + movb $0x4e,%ah + int $0x21 + + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/findnext.s b/newlib/libc/sys/go32/findnext.s new file mode 100644 index 000000000..4e6518ffd --- /dev/null +++ b/newlib/libc/sys/go32/findnext.s @@ -0,0 +1,16 @@ + .globl _findnext +_findnext: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movb $0x1a,%ah + int $0x21 + + movb $0x4f,%ah + int $0x21 + + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/fixpath.c b/newlib/libc/sys/go32/fixpath.c new file mode 100644 index 000000000..e7d61fddd --- /dev/null +++ b/newlib/libc/sys/go32/fixpath.c @@ -0,0 +1,155 @@ +/* + (c) Copyright 1992 Eric Backus + + This software may be used freely so long as this copyright notice is + left intact. There is no warrantee on this software. +*/ + +#include "dos.h" /* For intdos() */ +#include <errno.h> /* For errno */ +#include <string.h> /* For strlen() */ + +int +_get_default_drive(void) +{ + union REGS regs; + + regs.h.ah = 0x19; /* DOS Get Default Drive call */ + regs.h.al = 0; + (void) intdos(®s, ®s); + return regs.h.al; +} + +static char * +get_current_directory(char *out, int drive_number) +{ + union REGS regs; + + regs.h.ah = 0x47; + regs.h.dl = drive_number + 1; + regs.x.si = (unsigned long) (out + 1); + (void) intdos(®s, ®s); + if (regs.x.cflag != 0) + { + errno = regs.x.ax; + return out; + } + else + { + /* Root path, don't insert "/", it'll be added later */ + if (*(out + 1) != '\0') + *out = '/'; + else + *out = '\0'; + return out + strlen(out); + } +} + +static int +is_slash(int c) +{ + return c == '/' || c == '\\'; +} + +static int +is_term(int c) +{ + return c == '/' || c == '\\' || c == '\0'; +} + +/* Takes as input an arbitrary path. Fixes up the path by: + 1. Removing consecutive slashes + 2. Removing trailing slashes + 3. Making the path absolute if it wasn't already + 4. Removing "." in the path + 5. Removing ".." entries in the path (and the directory above them) + 6. Adding a drive specification if one wasn't there + 7. Converting all slashes to '/' + */ +void +_fixpath(const char *in, char *out) +{ + int drive_number; + const char *ip = in; + char *op = out; + + /* Add drive specification to output string */ + if (*(ip + 1) == ':' && ((*ip >= 'a' && *ip <= 'z') || + (*ip >= 'A' && *ip <= 'Z'))) + { + if (*ip >= 'a' && *ip <= 'z') + drive_number = *ip - 'a'; + else + drive_number = *ip - 'A'; + *op++ = *ip++; + *op++ = *ip++; + } + else + { + drive_number = _get_default_drive(); + *op++ = drive_number + 'a'; + *op++ = ':'; + } + + /* Convert relative path to absolute */ + if (!is_slash(*ip)) + op = get_current_directory(op, drive_number); + + /* Step through the input path */ + while (*ip) + { + /* Skip input slashes */ + if (is_slash(*ip)) + { + ip++; + continue; + } + + /* Skip "." and output nothing */ + if (*ip == '.' && is_term(*(ip + 1))) + { + ip++; + continue; + } + + /* Skip ".." and remove previous output directory */ + if (*ip == '.' && *(ip + 1) == '.' && is_term(*(ip + 2))) + { + ip += 2; + /* Don't back up over drive spec */ + if (op > out + 2) + /* This requires "/" to follow drive spec */ + while (!is_slash(*--op)); + continue; + } + + /* Copy path component from in to out */ + *op++ = '/'; + while (!is_term(*ip)) *op++ = *ip++; + } + + /* If root directory, insert trailing slash */ + if (op == out + 2) *op++ = '/'; + + /* Null terminate the output */ + *op = '\0'; +} + +#ifdef TEST +#include <stdio.h> + +int +main(int argc, char **argv) +{ + char path[90]; + int i; + + for (i = 1; i < argc; i++) + { + _fixpath(argv[i], path); + (void) printf("'%s' -> '%s'\n", argv[i], path); + } + + return 0; +} +#endif diff --git a/newlib/libc/sys/go32/fstat.s b/newlib/libc/sys/go32/fstat.s new file mode 100644 index 000000000..5414eaf38 --- /dev/null +++ b/newlib/libc/sys/go32/fstat.s @@ -0,0 +1,19 @@ +# /* This is file FSTAT.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _fstat +_fstat: + movb $3,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/fsync.s b/newlib/libc/sys/go32/fsync.s new file mode 100644 index 000000000..5f246f057 --- /dev/null +++ b/newlib/libc/sys/go32/fsync.s @@ -0,0 +1,27 @@ +# /* This is file FSYNC.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _fsync +_fsync: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movb $0x68,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + ret diff --git a/newlib/libc/sys/go32/ftruncat.c b/newlib/libc/sys/go32/ftruncat.c new file mode 100644 index 000000000..1e2544f25 --- /dev/null +++ b/newlib/libc/sys/go32/ftruncat.c @@ -0,0 +1,25 @@ +/* This is file FTRUNCAT.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <fcntl.h> + +/* +** Note: this only works right if you close the file right after truncating! +*/ + +ftruncate(int fd, unsigned long where) +{ + lseek(fd, where, 0); + write(fd, 0, 0); +} diff --git a/newlib/libc/sys/go32/gerrno.s b/newlib/libc/sys/go32/gerrno.s new file mode 100644 index 000000000..ff6b6da93 --- /dev/null +++ b/newlib/libc/sys/go32/gerrno.s @@ -0,0 +1,33 @@ +# /* This is file GERRNO.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + +# Modified to use newlib's reent mechanism, 960414, dje. +# Reentrancy isn't really supported of course, the purpose is to +# record `errno' in the normal place. + + .text + .globl syscall_error +syscall_error: + pushl %eax + call ___errno + popl %edx + mov %edx,(%eax) + mov $-1,%eax + ret + + .globl syscall_check +syscall_check: + jb syscall_error + mov $0,%eax + ret diff --git a/newlib/libc/sys/go32/getcwd.c b/newlib/libc/sys/go32/getcwd.c new file mode 100644 index 000000000..1dd4dcbcd --- /dev/null +++ b/newlib/libc/sys/go32/getcwd.c @@ -0,0 +1,37 @@ +/* This is file GETCWD.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <errno.h> + +char *getcwd(char *buf, int n) +{ + char tmp[90]; + getwd(tmp); + if (strlen(tmp)+1 > n) + { + errno = ERANGE; + return 0; + } + if (buf == 0) + { + buf = malloc(n); + if (buf == 0) + { + errno = ENOMEM; + return 0; + } + } + strcpy(buf, tmp); + return buf; +} diff --git a/newlib/libc/sys/go32/getdate.c b/newlib/libc/sys/go32/getdate.c new file mode 100644 index 000000000..7593b0af0 --- /dev/null +++ b/newlib/libc/sys/go32/getdate.c @@ -0,0 +1,11 @@ +#include "dos.h" + +void getdate( struct date *dateblk) +{ + union REGS regs; + regs.h.ah = 0x2a; + intdos( ®s, ®s); + dateblk-> da_year = regs.x.cx; + dateblk-> da_mon = regs.h.dh; + dateblk-> da_day = regs.h.dl; +} diff --git a/newlib/libc/sys/go32/getdtabl.c b/newlib/libc/sys/go32/getdtabl.c new file mode 100644 index 000000000..b266c23b9 --- /dev/null +++ b/newlib/libc/sys/go32/getdtabl.c @@ -0,0 +1,18 @@ +/* This is file GETDTABL.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +getdtablesize() +{ + return 50; /* really depends on FILES= in config.sys */ +} diff --git a/newlib/libc/sys/go32/getgid.c b/newlib/libc/sys/go32/getgid.c new file mode 100644 index 000000000..a0cd7b988 --- /dev/null +++ b/newlib/libc/sys/go32/getgid.c @@ -0,0 +1,9 @@ + +#include <sys/types.h> + +getgid() +{ + + return 20; + +} diff --git a/newlib/libc/sys/go32/getkey.s b/newlib/libc/sys/go32/getkey.s new file mode 100644 index 000000000..876483ea9 --- /dev/null +++ b/newlib/libc/sys/go32/getkey.s @@ -0,0 +1,59 @@ +/* This is file GETKEY.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Modified by J. Alan Eldridge, Liberty Brokerage, 77 Water St, NYC 10005 + +Changed handling of characters starting with 0xE0: + Now calls interrupt 16, function 10 + if leading byte was 0x00, ah = 0x01 + if leading byte was 0xE0, ah = 0x02 + + The main function is now called getxkey()... + getkey is provided to maintain compatibility with + already written software +*/ + + .globl _getxkey +_getxkey: + pushl %ebx + pushl %esi + pushl %edi + movb $0x10,%ah + int $0x16 + mov $1,%bl + cmpb $0,%al + je L0 + cmpb $0xE0,%al + jne L1 + inc %bl +L0: + movb %ah,%al + movb %bl,%ah + jmp L2 +L1: + movb $0,%ah +L2: + andl $0xffff,%eax + popl %edi + popl %esi + popl %ebx + ret + + .globl _getkey +_getkey: + call _getxkey + testb $0x02,%ah + jz L3 + movb $0x01,%ah +L3: + ret diff --git a/newlib/libc/sys/go32/getpages.c b/newlib/libc/sys/go32/getpages.c new file mode 100644 index 000000000..8218b154e --- /dev/null +++ b/newlib/libc/sys/go32/getpages.c @@ -0,0 +1,18 @@ +/* This is file GETPAGES.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +getpagesize() +{ + return 4096; +} diff --git a/newlib/libc/sys/go32/getpid.c b/newlib/libc/sys/go32/getpid.c new file mode 100644 index 000000000..60f6e6d66 --- /dev/null +++ b/newlib/libc/sys/go32/getpid.c @@ -0,0 +1,18 @@ +/* This is file GETPID.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +getpid() +{ + return 42; /* Why not? */ +} diff --git a/newlib/libc/sys/go32/getrusag.c b/newlib/libc/sys/go32/getrusag.c new file mode 100644 index 000000000..15722c5dd --- /dev/null +++ b/newlib/libc/sys/go32/getrusag.c @@ -0,0 +1,35 @@ +/* This is file GETRUSAG.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <sys/time.h> +#include <sys/resource.h> + +static struct timeval old_time = {0,0}; + +int getrusage(int who, struct rusage *rusage) +{ + struct timeval now; + bzero(rusage, sizeof(struct rusage)); + if (old_time.tv_sec == 0) + gettimeofday(&old_time, 0); + gettimeofday(&now, 0); + rusage->ru_utime.tv_usec = now.tv_usec - old_time.tv_usec; + rusage->ru_utime.tv_sec = now.tv_sec - old_time.tv_sec; + if (rusage->ru_utime.tv_usec < 0) + { + rusage->ru_utime.tv_usec += 1000000; + rusage->ru_utime.tv_sec -= 1; + } + return 0; +} diff --git a/newlib/libc/sys/go32/gettime.c b/newlib/libc/sys/go32/gettime.c new file mode 100644 index 000000000..ba8116119 --- /dev/null +++ b/newlib/libc/sys/go32/gettime.c @@ -0,0 +1,12 @@ +#include "dos.h" + +void gettime( struct time *tp) +{ + union REGS regs; + regs.h.ah = 0x2c; + intdos( ®s, ®s); + tp->ti_hour = regs.h.ch; + tp->ti_min = regs.h.cl; + tp->ti_sec = regs.h.dh; + tp->ti_hund = regs.h.dl; +} diff --git a/newlib/libc/sys/go32/gettimeo.c b/newlib/libc/sys/go32/gettimeo.c new file mode 100644 index 000000000..7f4f7c874 --- /dev/null +++ b/newlib/libc/sys/go32/gettimeo.c @@ -0,0 +1,61 @@ +/* + (c) Copyright 1992 Eric Backus + + This software may be used freely so long as this copyright notice is + left intact. There is no warrantee on this software. +*/ + +#include <time.h> +#include <sys/time.h> +#include "dos.h" + +static int daylight, gmtoffset; + +int +gettimeofday (struct timeval *tp, struct timezone *tzp) +{ + + if (tp) + { + struct time t; + struct date d; + struct tm tmrec; + + gettime (&t); + getdate (&d); + tmrec.tm_year = d.da_year - 1900; + tmrec.tm_mon = d.da_mon - 1; + tmrec.tm_mday = d.da_day; + tmrec.tm_hour = t.ti_hour; + tmrec.tm_min = t.ti_min; + tmrec.tm_sec = t.ti_sec; +/* tmrec.tm_gmtoff = gmtoffset;*/ + tmrec.tm_isdst = daylight; + tp->tv_sec = mktime (&tmrec); + tp->tv_usec = t.ti_hund * (1000000 / 100); + } + if (tzp) + { + tzp->tz_minuteswest = gmtoffset; + tzp->tz_dsttime = daylight; + } + + return 0; +} + +void +__gettimeofday_init () +{ + time_t ltm, gtm; + struct tm *lstm; + + daylight = 0; + gmtoffset = 0; + ltm = gtm = time (NULL); + ltm = mktime (lstm = localtime (<m)); + gtm = mktime (gmtime (>m)); + daylight = lstm->tm_isdst; + gmtoffset = (int)(gtm - ltm) / 60; + +} + diff --git a/newlib/libc/sys/go32/gettimeo.s b/newlib/libc/sys/go32/gettimeo.s new file mode 100644 index 000000000..7e85adf1f --- /dev/null +++ b/newlib/libc/sys/go32/gettimeo.s @@ -0,0 +1,19 @@ +# /* This is file GETTIMEO.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _gettimeofday +_gettimeofday: + movb $4,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/getuid.c b/newlib/libc/sys/go32/getuid.c new file mode 100644 index 000000000..4ce9a46c1 --- /dev/null +++ b/newlib/libc/sys/go32/getuid.c @@ -0,0 +1,9 @@ + +#include <sys/types.h> + +getuid() +{ + + return 10; + +} diff --git a/newlib/libc/sys/go32/getwd.s b/newlib/libc/sys/go32/getwd.s new file mode 100644 index 000000000..15d856ef8 --- /dev/null +++ b/newlib/libc/sys/go32/getwd.s @@ -0,0 +1,31 @@ +# /* This is file GETWD.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _getwd +_getwd: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%esi + movb $47,(%esi) + incl %esi + movb $0,%dl + movb $0x47,%ah + int $0x21 + movl 16(%esp),%eax + popl %edi + popl %esi + popl %ebx + ret diff --git a/newlib/libc/sys/go32/go32.h b/newlib/libc/sys/go32/go32.h new file mode 100644 index 000000000..32afc0ebe --- /dev/null +++ b/newlib/libc/sys/go32/go32.h @@ -0,0 +1,70 @@ +/* This is file go32.h */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _GO32_H_ +#define _GO32_H_ + +#include <sys/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* This must match go32/proginfo.h */ + +typedef struct { + u_long size_of_this_structure_in_bytes; + u_long linear_address_of_primary_screen; + u_long linear_address_of_secondary_screen; + u_long linear_address_of_transfer_buffer; + u_long size_of_transfer_buffer; /* >= 4k */ + u_long pid; + u_char master_interrupt_controller_base; + u_char slave_interrupt_controller_base; + u_short selector_for_linear_memory; + u_long linear_address_of_stub_info_structure; + u_long linear_address_of_original_psp; + u_short run_mode; + u_short run_mode_info; +} Go32_Info_Block; + +extern Go32_Info_Block _go32_info_block; + +#define _GO32_RUN_MODE_UNDEF 0 +#define _GO32_RUN_MODE_RAW 1 +#define _GO32_RUN_MODE_XMS 2 +#define _GO32_RUN_MODE_VCPI 3 +#define _GO32_RUN_MODE_DPMI 4 + +void dosmemget(int offset, int length, void *buffer); +void dosmemput(const void *buffer, int length, int offset); +void movedata(unsigned source_selector, unsigned source_offset, + unsigned dest_selector, unsigned dest_offset, + size_t length); + +/* returns number of times hit since last call. (zero first time) */ +u_long _go32_was_ctrl_break_hit(); +void _go32_want_ctrl_break(int yes); /* auto-yes if call above function */ + +u_short _go32_my_cs(); +u_short _go32_my_ds(); +u_short _go32_my_ss(); +u_short _go32_conventional_mem_selector(); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/newlib/libc/sys/go32/go32func.c b/newlib/libc/sys/go32/go32func.c new file mode 100644 index 000000000..ec3853ba1 --- /dev/null +++ b/newlib/libc/sys/go32/go32func.c @@ -0,0 +1,69 @@ +#include <sys/types.h> +#include "go32.h" +#include "dpmi.h" +#include "dos.h" + +u_short _go32_my_cs() +{ + asm("movw %cs,%ax"); +} + +u_short _go32_my_ds() +{ + asm("movw %ds,%ax"); +} + +u_short _go32_my_ss() +{ + asm("movw %ss,%ax"); +} + +u_short _go32_conventional_mem_selector() +{ + return _go32_info_block.selector_for_linear_memory; +} + +static _go32_dpmi_registers regs; +static volatile u_long ctrl_break_count = 0; +static int ctrl_break_hooked = 0; +static _go32_dpmi_seginfo old_vector; +static _go32_dpmi_seginfo new_vector; + +static ctrl_break_isr(_go32_dpmi_registers *regs) +{ + ctrl_break_count ++; +} + +u_long _go32_was_ctrl_break_hit() +{ + u_long cnt; + _go32_want_ctrl_break(1); + cnt = ctrl_break_count; + ctrl_break_count = 0; + return cnt; +} + +void _go32_want_ctrl_break(int yes) +{ + if (yes) + { + if (ctrl_break_hooked) + return; + _go32_dpmi_get_real_mode_interrupt_vector(0x1b, &old_vector); + + new_vector.pm_offset = (int)ctrl_break_isr; + _go32_dpmi_allocate_real_mode_callback_iret(&new_vector, ®s); + _go32_dpmi_set_real_mode_interrupt_vector(0x1b, &new_vector); + ctrl_break_count = 0; + ctrl_break_hooked = 1; + } + else + { + if (!ctrl_break_hooked) + return; + _go32_dpmi_set_real_mode_interrupt_vector(0x1b, &old_vector); + _go32_dpmi_free_real_mode_callback(&new_vector); + ctrl_break_count = 0; + ctrl_break_hooked = 0; + } +} diff --git a/newlib/libc/sys/go32/infoblk.c b/newlib/libc/sys/go32/infoblk.c new file mode 100644 index 000000000..0a54b6b18 --- /dev/null +++ b/newlib/libc/sys/go32/infoblk.c @@ -0,0 +1,4 @@ +#include "go32.h" + +Go32_Info_Block _go32_info_block = { sizeof(Go32_Info_Block) }; + diff --git a/newlib/libc/sys/go32/inportb.s b/newlib/libc/sys/go32/inportb.s new file mode 100644 index 000000000..d2425fc55 --- /dev/null +++ b/newlib/libc/sys/go32/inportb.s @@ -0,0 +1,21 @@ +#/* This is file INPORTB.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportb +_inportb: + movl 4(%esp),%edx +# inb %dx,%al + .byte 0xec + movzb %al,%eax + ret diff --git a/newlib/libc/sys/go32/inportl.s b/newlib/libc/sys/go32/inportl.s new file mode 100644 index 000000000..477dec19d --- /dev/null +++ b/newlib/libc/sys/go32/inportl.s @@ -0,0 +1,19 @@ +#/* This is file INPORTL.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportl +_inportl: + movl 4(%esp),%edx + inl %dx,%eax + ret diff --git a/newlib/libc/sys/go32/inportsb.s b/newlib/libc/sys/go32/inportsb.s new file mode 100644 index 000000000..db7dc37f8 --- /dev/null +++ b/newlib/libc/sys/go32/inportsb.s @@ -0,0 +1,25 @@ +#/* This is file INPORTSB.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportsb +_inportsb: + pushl %edi + movl 8(%esp),%edx + movl 12(%esp),%edi + movl 16(%esp),%ecx + rep + insb + popl %edi + ret + diff --git a/newlib/libc/sys/go32/inportsl.s b/newlib/libc/sys/go32/inportsl.s new file mode 100644 index 000000000..d4a8d5507 --- /dev/null +++ b/newlib/libc/sys/go32/inportsl.s @@ -0,0 +1,24 @@ +#/* This is file INPORTSL.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportsl +_inportsl: + pushl %edi + movl 8(%esp),%edx + movl 12(%esp),%edi + movl 16(%esp),%ecx + rep + insl + popl %edi + ret diff --git a/newlib/libc/sys/go32/inportsw.s b/newlib/libc/sys/go32/inportsw.s new file mode 100644 index 000000000..31880d717 --- /dev/null +++ b/newlib/libc/sys/go32/inportsw.s @@ -0,0 +1,24 @@ +#/* This is file INPORTSW.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportsw +_inportsw: + pushl %edi + movl 8(%esp),%edx + movl 12(%esp),%edi + movl 16(%esp),%ecx + rep + insw + popl %edi + ret diff --git a/newlib/libc/sys/go32/inportw.s b/newlib/libc/sys/go32/inportw.s new file mode 100644 index 000000000..fdb58aa26 --- /dev/null +++ b/newlib/libc/sys/go32/inportw.s @@ -0,0 +1,21 @@ +#/* This is file INPORTW.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _inportw +_inportw: + movl 4(%esp),%edx +# inw (%dx),%ax + .byte 0x66, 0xed + movzwl %ax,%eax + ret diff --git a/newlib/libc/sys/go32/int86x.s b/newlib/libc/sys/go32/int86x.s new file mode 100644 index 000000000..7b49bcd12 --- /dev/null +++ b/newlib/libc/sys/go32/int86x.s @@ -0,0 +1,103 @@ + .data +ds: + .word 0 +es: + .word 0 +fs: + .word 0 +gs: + .word 0 + + .globl int86 +int86: + .byte 0x2e + push ds + pop %ds + .byte 0x2e + push es + pop %es + .byte 0x2e + push fs + pop %fs + .byte 0x2e + push gs + pop %gs + + .byte 0xcd +int86_vec: + .byte 0x03 + ret + + .text + .globl _int86x +_int86x: + movl 16(%esp), %eax + + movw 2(%eax), %cx + movw %cx, ds + movw 4(%eax), %cx + movw %cx, es + movw 6(%eax), %cx + movw %cx, fs + movw 8(%eax), %cx + movw %cx, gs + + jmp int86_common + + .globl _int86 +_int86: + movw %ds, %ax + movw %ax, ds + movw %ax, es + movw %ax, fs + movw %ax, gs + jmp int86_common + +int86_common: + pushl %ebp + movl %esp,%ebp + pushl %ebx + pushl %esi + pushl %edi + pushf + + movl 8(%ebp),%eax + movb %al,int86_vec + + movl 12(%ebp),%eax + movl 4(%eax),%ebx + movl 8(%eax),%ecx + movl 12(%eax),%edx + movl 16(%eax),%esi + movl 20(%eax),%edi + movl (%eax),%eax + + push %ds + push %es + call int86 + pop %es + pop %ds + + pushf + pushl %eax + movl %esp,%ebp + addl $24,%ebp + movl 16(%ebp),%eax + popl (%eax) + movl %ebx,4(%eax) + movl %ecx,8(%eax) + movl %edx,12(%eax) + movl %esi,16(%eax) + movl %edi,20(%eax) + popl %ebx /* flags */ + movl %ebx,28(%eax) + andl $1,%ebx + movl %ebx,24(%eax) + movl (%eax),%eax + + popf + popl %edi + popl %esi + popl %ebx + popl %ebp + ret diff --git a/newlib/libc/sys/go32/intdos.c b/newlib/libc/sys/go32/intdos.c new file mode 100644 index 000000000..a13f38ec8 --- /dev/null +++ b/newlib/libc/sys/go32/intdos.c @@ -0,0 +1,7 @@ +#include <sys/dos.h> + +int +intdos(union REGS *in, union REGS *out) +{ + return int86(0x21, in, out); +} diff --git a/newlib/libc/sys/go32/intdosx.c b/newlib/libc/sys/go32/intdosx.c new file mode 100644 index 000000000..ec3e9fbc2 --- /dev/null +++ b/newlib/libc/sys/go32/intdosx.c @@ -0,0 +1,6 @@ +#include <sys/dos.h> + +intdosx(union REGS *in, union REGS *out, struct SREGS *seg) +{ + return int86x(0x21, in, out, seg); +} diff --git a/newlib/libc/sys/go32/isatty.s b/newlib/libc/sys/go32/isatty.s new file mode 100644 index 000000000..9086b073c --- /dev/null +++ b/newlib/libc/sys/go32/isatty.s @@ -0,0 +1,33 @@ +# /* This is file ISATTY.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _isatty +_isatty: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movw $0x4400,%ax + int $0x21 + popl %edi + popl %esi + popl %ebx + movl $0,%eax + jb tf + testl $0x80,%edx + jz tf + movl $1,%eax +tf: + ret diff --git a/newlib/libc/sys/go32/kbhit.s b/newlib/libc/sys/go32/kbhit.s new file mode 100644 index 000000000..0f34e1b76 --- /dev/null +++ b/newlib/libc/sys/go32/kbhit.s @@ -0,0 +1,51 @@ +/* This is file KBHIT.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + + .globl _kbhit +_kbhit: + pushl %ebp + movl %esp,%ebp + pushl %ebx + pushl %esi + pushl %edi + +try_again: + movl $0x41a,%eax + call dosmemsetup + movzwl %gs:(%eax),%ebx + movzwl %gs:2(%eax),%ecx + cmp %ebx,%ecx + je key_not_hit + + movb $0x11,%ah + int $0x16 + jz key_not_hit + cmp $0,%eax + jne key_hit + movb $0x10,%ah + int $0x16 + jmp try_again + +key_not_hit: + movl $0,%eax + jmp L1 + +key_hit: + movl $1,%eax +L1: + popl %edi + popl %esi + popl %ebx + leave + ret diff --git a/newlib/libc/sys/go32/kill.c b/newlib/libc/sys/go32/kill.c new file mode 100644 index 000000000..3335f1a56 --- /dev/null +++ b/newlib/libc/sys/go32/kill.c @@ -0,0 +1,6 @@ +kill() +{ + + +} + diff --git a/newlib/libc/sys/go32/link.s b/newlib/libc/sys/go32/link.s new file mode 100644 index 000000000..f1cc133a0 --- /dev/null +++ b/newlib/libc/sys/go32/link.s @@ -0,0 +1,28 @@ +# /* This is file LINK.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _link +_link: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movl 20(%esp),%edi + movb $0x56,%ah + int $0x21 + pop %edi + pop %esi + pop %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/longjmp.S b/newlib/libc/sys/go32/longjmp.S new file mode 100644 index 000000000..d29eebbee --- /dev/null +++ b/newlib/libc/sys/go32/longjmp.S @@ -0,0 +1,65 @@ +/* This is file LONGJMP.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +/* +** jmp_buf: +** eax ebx ecx edx esi edi ebp esp eip es fs gs ss +** 0 4 8 12 16 20 24 28 32 36 38 40 42 +*/ + + .globl _longjmp /* jmp_buf, int */ +_longjmp: + pushl %ebp + movl %esp,%ebp + + movl 8(%ebp),%edi /* get jmp_buf */ + movl 12(%ebp),%eax /* store retval in j->eax */ + testl %eax,%eax + jne 0f + incl %eax +0: + movl %eax,0(%edi) + + movl 24(%edi),%ebp + + pushfl /* get flags so will only re-enable */ + popl %ebx /* interrupts if they were previously */ + /* enabled */ + + cli + movw 42(%edi),%ax + movw %ax,%ss + movl 28(%edi),%esp + + pushl 32(%edi) /* for a ret! */ + + pushl %ebx /* save flags that contain previous */ + /* interrupt state */ + + movw 36(%edi),%ax + movw %ax,%es + movw 38(%edi),%ax + movw %ax,%fs + movw 40(%edi),%ax + movw %ax,%gs + movl 0(%edi),%eax + movl 4(%edi),%ebx + movl 8(%edi),%ecx + movl 12(%edi),%edx + movl 16(%edi),%esi + movl 20(%edi),%edi + + popfl /* restore previous interrupt state */ + + ret /* actually jump to new eip */ diff --git a/newlib/libc/sys/go32/lseek.s b/newlib/libc/sys/go32/lseek.s new file mode 100644 index 000000000..34609d088 --- /dev/null +++ b/newlib/libc/sys/go32/lseek.s @@ -0,0 +1,36 @@ +# /* This is file LSEEK.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _lseek +_lseek: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl 20(%esp),%ecx + shrl $16,%ecx + movl 20(%esp),%edx + andl $0xffff,%edx + movb 24(%esp),%al + movb $0x42,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + shll $16,%edx + andl $0xffff,%eax + orl %edx,%eax + ret diff --git a/newlib/libc/sys/go32/lstat.s b/newlib/libc/sys/go32/lstat.s new file mode 100644 index 000000000..2585b354f --- /dev/null +++ b/newlib/libc/sys/go32/lstat.s @@ -0,0 +1,19 @@ +# /* This is file LSTAT.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _lstat +_lstat: + movb $6,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/mkdir.s b/newlib/libc/sys/go32/mkdir.s new file mode 100644 index 000000000..e8fe19447 --- /dev/null +++ b/newlib/libc/sys/go32/mkdir.s @@ -0,0 +1,27 @@ +# /* This is file MKDIR.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _mkdir +_mkdir: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movb $0x39,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/open.s b/newlib/libc/sys/go32/open.s new file mode 100644 index 000000000..5fd8a04b0 --- /dev/null +++ b/newlib/libc/sys/go32/open.s @@ -0,0 +1,31 @@ +# /* This is file OPEN.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .data + .globl __fmode +__fmode: + .long 0x4000 + + .text + .globl _open +_open: + testl $0xc000,8(%esp) + jnz L0 + andl $0xc000,__fmode + movl __fmode,%eax + orl %eax,8(%esp) +L0: + movb $2,%al + jmp turbo_assist + diff --git a/newlib/libc/sys/go32/outportb.s b/newlib/libc/sys/go32/outportb.s new file mode 100644 index 000000000..10c4342f8 --- /dev/null +++ b/newlib/libc/sys/go32/outportb.s @@ -0,0 +1,21 @@ +#/* This is file OUTPORTB.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _outportb +_outportb: + movl 4(%esp),%edx + movl 8(%esp),%eax +# outb %al,%dx + .byte 0xee + ret diff --git a/newlib/libc/sys/go32/outportl.s b/newlib/libc/sys/go32/outportl.s new file mode 100644 index 000000000..61204b4bc --- /dev/null +++ b/newlib/libc/sys/go32/outportl.s @@ -0,0 +1,20 @@ +#/* This is file OUTPORTL.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _outportl +_outportl: + movl 4(%esp),%edx + movl 8(%esp),%eax + outl %eax,%dx + ret diff --git a/newlib/libc/sys/go32/outportw.s b/newlib/libc/sys/go32/outportw.s new file mode 100644 index 000000000..cde464843 --- /dev/null +++ b/newlib/libc/sys/go32/outportw.s @@ -0,0 +1,22 @@ +#/* This is file OUTPORTW.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _outportw +_outportw: + movl 4(%esp),%edx + movl 8(%esp),%eax +# outw %ax,%dx + .byte 0x66, 0xef + ret + diff --git a/newlib/libc/sys/go32/outprtsb.s b/newlib/libc/sys/go32/outprtsb.s new file mode 100644 index 000000000..f9ed4a1d5 --- /dev/null +++ b/newlib/libc/sys/go32/outprtsb.s @@ -0,0 +1,25 @@ + +#/* This is file OUTPRTSB.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _outportsb +_outportsb: + pushl %esi + movl 8(%esp),%edx + movl 12(%esp),%esi + movl 16(%esp),%ecx + rep + outsb + popl %esi + ret diff --git a/newlib/libc/sys/go32/outprtsl.s b/newlib/libc/sys/go32/outprtsl.s new file mode 100644 index 000000000..2f3e1c7cc --- /dev/null +++ b/newlib/libc/sys/go32/outprtsl.s @@ -0,0 +1,25 @@ +#/* This is file OUTPRTSL.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ + + .globl _outportsl +_outportsl: + pushl %esi + movl 8(%esp),%edx + movl 12(%esp),%esi + movl 16(%esp),%ecx + rep + outsl + popl %esi + ret + diff --git a/newlib/libc/sys/go32/outprtsw.s b/newlib/libc/sys/go32/outprtsw.s new file mode 100644 index 000000000..6045f196f --- /dev/null +++ b/newlib/libc/sys/go32/outprtsw.s @@ -0,0 +1,25 @@ +#/* This is file OUTPRTSW.S */ +#/* +#** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +#** +#** This file is distributed under the terms listed in the document +#** "copying.dj", available from DJ Delorie at the address above. +#** A copy of "copying.dj" should accompany this file; if not, a copy +#** should be available from where this file was obtained. This file +#** may not be distributed without a verbatim copy of "copying.dj". +#** +#** This file is distributed WITHOUT ANY WARRANTY; without even the implied +#** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +#*/ +# + .globl _outportsw +_outportsw: + pushl %esi + movl 8(%esp),%edx + movl 12(%esp),%esi + movl 16(%esp),%ecx + rep + outsw + popl %esi + ret + diff --git a/newlib/libc/sys/go32/pc.h b/newlib/libc/sys/go32/pc.h new file mode 100644 index 000000000..8851d749e --- /dev/null +++ b/newlib/libc/sys/go32/pc.h @@ -0,0 +1,71 @@ +/*
+** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
+**
+** This file is distributed under the terms listed in the document
+** "copying.dj", available from DJ Delorie at the address above.
+** A copy of "copying.dj" should accompany this file; if not, a copy
+** should be available from where this file was obtained. This file
+** may not be distributed without a verbatim copy of "copying.dj".
+**
+** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+**
+** Modified by J. Alan Eldridge, Liberty Brokerage, 77 Water St, NYC 10005
+**
+** added getxkey(), which can read extended keystrokes that start with
+** 0xE0, as well as those which start with 0x00
+**
+** added global char ScreenAttrib, the attribute used by ScreenClear():
+** it defaults to 0x07 so as not to break existing code.
+**
+** added ScreenMode(), to return the current video mode
+*/
+
+#ifndef _PC_H_
+#define _PC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+unsigned char inportb(unsigned short port);
+unsigned short inportw(unsigned short port);
+unsigned long inportl(unsigned short port);
+unsigned char inportsb(unsigned short port, unsigned char *buf, unsigned len);
+unsigned short inportsw(unsigned short port, unsigned short *buf, unsigned len);
+unsigned long inportsl(unsigned short port, unsigned long *buf, unsigned len);
+void outportb(unsigned short port, unsigned char data);
+void outportw(unsigned short port, unsigned short data);
+void outportl(unsigned short port, unsigned long data);
+void outportsb(unsigned short port, unsigned char *buf, unsigned len);
+void outportsw(unsigned short port, unsigned short *buf, unsigned len);
+void outportsl(unsigned short port, unsigned long *buf, unsigned len);
+
+int kbhit(void);
+int getkey(void); /* ALT's have 0x100 set */
+int getxkey(void); /* ALT's have 0x100 set, 0xe0 sets 0x200 */
+
+void sound(int frequency);
+#define nosound() sound(0)
+
+extern unsigned char ScreenAttrib;
+extern short *ScreenPrimary;
+extern short *ScreenSecondary;
+
+/* For the primary screen: */
+int ScreenMode(void);
+int ScreenRows(void);
+int ScreenCols(void);
+void ScreenPutChar(int ch, int attr, int x, int y);
+void ScreenSetCursor(int row, int col);
+void ScreenGetCursor(int *row, int *col);
+void ScreenClear(void);
+void ScreenUpdate(void *virtual_screen);
+void ScreenUpdateLine(void *virtual_screen_line, int row);
+void ScreenRetrieve(void *virtual_screen);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/read.s b/newlib/libc/sys/go32/read.s new file mode 100644 index 000000000..c989241ee --- /dev/null +++ b/newlib/libc/sys/go32/read.s @@ -0,0 +1,30 @@ +# /* This is file READ.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _read +_read: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl 20(%esp),%edx + movl 24(%esp),%ecx + movb $0x3f,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + ret diff --git a/newlib/libc/sys/go32/readv.c b/newlib/libc/sys/go32/readv.c new file mode 100644 index 000000000..c50ef32fc --- /dev/null +++ b/newlib/libc/sys/go32/readv.c @@ -0,0 +1,31 @@ +/* This is file READV.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <sys/types.h> +#include <sys/uio.h> + +readv(int handle, struct iovec *iov, int count) +{ + unsigned long r, t=0; + while (count) + { + r = read(handle, iov->iov_base, iov->iov_len); + if (r < 0) + return r; + t += r; + iov++; + count--; + } + return t; +} diff --git a/newlib/libc/sys/go32/rename.s b/newlib/libc/sys/go32/rename.s new file mode 100644 index 000000000..549dcb82d --- /dev/null +++ b/newlib/libc/sys/go32/rename.s @@ -0,0 +1,31 @@ +# /* This is file RENAME.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _rename +_rename: + pushl %ebx + pushl %esi + pushl %edi + movl 20(%esp),%edx + movb $0x41,%ah + int $0x21 # remove "to" + movl 16(%esp),%edx + movl 20(%esp),%edi + movb $0x56,%ah + int $0x21 # move "from" to "to" + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/rmdir.s b/newlib/libc/sys/go32/rmdir.s new file mode 100644 index 000000000..b4668797f --- /dev/null +++ b/newlib/libc/sys/go32/rmdir.s @@ -0,0 +1,27 @@ +# /* This is file RMDIR.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _rmdir +_rmdir: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movb $0x3a,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/sbrk.s b/newlib/libc/sys/go32/sbrk.s new file mode 100644 index 000000000..190396c8c --- /dev/null +++ b/newlib/libc/sys/go32/sbrk.s @@ -0,0 +1,27 @@ +# /* This is file SBRK.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _sbrk +_sbrk: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movw $0x4a01,%ax + int $0x21 + popl %edi + popl %esi + popl %ebx + ret diff --git a/newlib/libc/sys/go32/screen.S b/newlib/libc/sys/go32/screen.S new file mode 100644 index 000000000..4786f7ffe --- /dev/null +++ b/newlib/libc/sys/go32/screen.S @@ -0,0 +1,256 @@ +/* This is file SCREEN.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +** +** Modified by J. Alan Eldridge, Liberty Brokerage, 77 Water St, NYC 10005 +** +** added global char ScreenAttrib -- this is the attribute +** used by ScreenClear(): it defaults to 0x07 so as not to +** break existing code. +** +** Modified by C. Sandmann (sandmann@clio.rice.edu) for DPMI support +** Combined SCREEN2.S and SCREEN.C into SCREEN.S +*/ + + .data + + .globl _ScreenAttrib +_ScreenAttrib: + .byte 0x07 + + .text + + .align 2 + .globl _ScreenSetCursor + /* row, col */ +_ScreenSetCursor: + pushl %ebp + movl %esp,%ebp + pushl %ebx + pushl %esi + pushl %edi + movb $0x02,%ah + movb $0,%bh + movb 8(%ebp),%dh + movb 12(%ebp),%dl + int $0x10 + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + + .align 2 + .globl _ScreenGetCursor + /* &row, &col */ +_ScreenGetCursor: + pushl %ebp + movl %esp,%ebp + pushl %ebx + pushl %esi + pushl %edi + movb $0x03,%ah + movb $0,%bh + pushl %ebp + int $0x10 + popl %ebp + movl 8(%ebp),%esi + movzbl %dh,%eax + movl %eax,(%esi) + movl 12(%ebp),%esi + movzbl %dl,%eax + movl %eax,(%esi) + popl %edi + popl %esi + popl %ebx + popl %ebp + ret + + .align 2 + .globl _ScreenClear +_ScreenClear: + pushl %edi + call _ScreenCols + movl %eax,%ecx + call _ScreenRows + /* ECX is total words to store */ + imull %eax,%ecx + movl _ScreenPrimary,%eax + call dosmemsetup + movl %eax,%edi + push %es + push %gs + pop %es + movb $0x20,%al + movb _ScreenAttrib,%ah + rep + stosw + pop %es + popl %edi + ret + + .align 2 + .globl _ScreenRows +_ScreenRows: + movl $0x484,%eax + call dosmemsetup + movzbl %gs:(%eax),%eax + incl %eax + ret + + .align 2 + .globl _ScreenCols +_ScreenCols: + movl $0x44a,%eax + call dosmemsetup + movzwl %gs:(%eax),%eax + ret + + .align 2 + .globl _ScreenMode +_ScreenMode: + movl $0x449,%eax + call dosmemsetup + movzbl %gs:(%eax),%eax + ret + + .align 2 + .globl _ScreenPutChar +_ScreenPutChar: + /* int ch, int attr, unsigned x, unsigned y */ +/* + if ( (x >= ScreenCols()) || (y >= ScreenRows())) return; + ch &= 0xff; + attr = (attr & 0xff) << 8; + *(unsigned short *)(ScreenPrimary+x+y*ScreenCols()) = ch | attr; +*/ + call _ScreenRows + cmpl %eax,16(%esp) + jae L1 + call _ScreenCols + cmpl %eax,12(%esp) + jae L1 + /* Out of range */ + movl %eax,%edx + imull 16(%esp),%edx + addl 12(%esp),%edx + /* EDX = x + y*ScreenCols */ + + movb 4(%esp),%cl + movb 8(%esp),%ch + + movl _ScreenPrimary,%eax + call dosmemsetup + movw %cx,%gs:(%eax,%edx,2) +L1: + ret + +/* A quick way to update the screen from a logical video buffer, used + primarily for DPMI full screen management */ + .align 2 + .globl _ScreenUpdate + /* (void *)screenbuf */ +_ScreenUpdate: + call _ScreenRows + movl %eax,%ecx + call _ScreenCols + imull %eax,%ecx + sarl $1,%ecx + /* Number of long words in screen */ + + movl _ScreenPrimary,%eax + call dosmemsetup + movl 4(%esp),%edx + /* screenbuf */ + + pushl %esi + pushl %edi + movl %eax,%edi + movl %edx,%esi + push %es + push %gs + pop %es + rep + movsl + /* move ECX bytes to Real area */ + pop %es + popl %edi + popl %esi + ret + +/* A quick way to update a screen line from a logical video buffer, used + primarily for DPMI full screen management */ + .align 2 + .globl _ScreenUpdateLine + /* (void *)screenline, int row */ +_ScreenUpdateLine: + call _ScreenCols + movl %eax,%ecx + sarl $1,%ecx + /* Number of long words in screen line */ + shll $1,%eax + imull 8(%esp),%eax + addl _ScreenPrimary,%eax + call dosmemsetup + movl 4(%esp),%edx + /* screenbuf */ + + pushl %esi + pushl %edi + movl %eax,%edi + movl %edx,%esi + push %es + push %gs + pop %es + rep + movsl + /* move ECX bytes to Real area */ + pop %es + popl %edi + popl %esi + ret + + +/* A quick way to update the screen from a logical video buffer, used + primarily for DPMI full screen management */ + .align 2 + .globl _ScreenRetrieve + /* (void *)screenbuf */ +_ScreenRetrieve: + call _ScreenRows + movl %eax,%ecx + call _ScreenCols + imull %eax,%ecx + sarl $1,%ecx + /* Number of long words in screen */ + + movl _ScreenPrimary,%eax + call dosmemsetup + movl 4(%esp),%edx + /* screenbuf */ + + pushl %esi + pushl %edi + movl %eax,%esi + movl %edx,%edi + push %ds + push %gs + pop %ds + rep + movsl + /* move ECX bytes to Real area */ + pop %ds + popl %edi + popl %esi + ret + + diff --git a/newlib/libc/sys/go32/setjmp.S b/newlib/libc/sys/go32/setjmp.S new file mode 100644 index 000000000..ef9a258e1 --- /dev/null +++ b/newlib/libc/sys/go32/setjmp.S @@ -0,0 +1,61 @@ +/* This is file SETJMP.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +/* +** jmp_buf: +** eax ebx ecx edx esi edi ebp esp eip es fs gs ss +** 0 4 8 12 16 20 24 28 32 36 38 40 42 +*/ + + .globl _setjmp /* jmp_buf */ +_setjmp: + pushl %ebp + movl %esp,%ebp + + pushl %edi + movl 8(%ebp),%edi + + movl %eax,0(%edi) + movl %ebx,4(%edi) + movl %ecx,8(%edi) + movl %edx,12(%edi) + movl %esi,16(%edi) + + movl -4(%ebp),%eax + movl %eax,20(%edi) + + movl 0(%ebp),%eax + movl %eax,24(%edi) + + movl %esp,%eax + addl $12,%eax + movl %eax,28(%edi) + + movl 4(%ebp),%eax + movl %eax,32(%edi) + + movw %es, %ax + movw %ax, 36(%edi) + movw %fs, %ax + movw %ax, 38(%edi) + movw %gs, %ax + movw %ax, 40(%edi) + movw %ss, %ax + movw %ax, 42(%edi) + + popl %edi + movl $0,%eax + leave + ret + diff --git a/newlib/libc/sys/go32/setmode.s b/newlib/libc/sys/go32/setmode.s new file mode 100644 index 000000000..071e31636 --- /dev/null +++ b/newlib/libc/sys/go32/setmode.s @@ -0,0 +1,19 @@ +# /* This is file SETMODE.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _setmode +_setmode: + movb $8,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/setstack.S b/newlib/libc/sys/go32/setstack.S new file mode 100644 index 000000000..dcd3ac0b2 --- /dev/null +++ b/newlib/libc/sys/go32/setstack.S @@ -0,0 +1,70 @@ +/* This routine potentially increases the stack size at runtime based on + the _stklen variable. Only used by DPMI code. + Copyright (c) 1993 C. Sandmann + Environment: called by crt0.s (and gcrt0.s) + EAX, EBX, EBP, EDI, ESI disposable (cleared on return) */ + + .text + .globl __setstack +__setstack: + movl %esp,%eax + andl $0xc0000000,%eax /* clear all except upper bits */ + jne ok_stack /* obviously not DPMI! */ + movw %ss,%ax + lsll %eax,%ebx /* stack segment limit */ + movl %esp,%eax /* current location */ + subl %ebx,%eax /* Free stack */ + cmpl %eax,__stklen + jb ok_stack + +/* Not enough stack. Call sbrk() to get a new area. Copy current ESP + 20 + to end of new area (3 args + our stack). Change ESP to new area. Set new + limit to start of new area using DPMI services. */ + + pushl __stklen + call _sbrk /* eax = got memory base */ + popl %ebx /* remove _stklen */ + cmpl $0xffffffff,%eax /* if eax = -1 failure */ + je badstack + addl %eax,%ebx /* ebx now is end of new stack area */ + andl $0xfffffff0,%ebx /* 16 byte alignment */ + addl $0xfff,%eax /* make stack base page aligned */ + andl $0xfffff000,%eax /* 4096 byte alignment */ + +/* Now copy old stack to new stack. We only need our part + 4 words, 3 for + the parameters to pass to main, one for our return EIP (4 extra safety) */ + movl %esp, %esi /* Source is current stack */ + subl $0x20, %ebx /* 8 longwords */ + movl %ebx, %edi /* Destination is new stack */ + movl $8,%ecx + rep + movsl + +/* New stack in place. Change ESP to point to it. Assumes new stack is + higher in memory so we don't get caught by limit. Change limit using + DPMI services. */ + + movl %ebx,%esp /* Switch to new stack */ + subl $1,%eax /* Low 12 bits all 1s */ + pushl %eax /* Easiest way to move long to words */ + popw %dx + popw %cx + movl $8,%eax /* DPMI function Set Segment Limit */ + movw %ss,%bx /* Selector */ + int $0x31 /* Do service */ + + xor %ecx,%ecx /* Clean up */ + xor %edx,%edx /* Clean up */ + +ok_stack: + ret /* What we have is already bigger */ + +badstack: + movl $0x4c01,%eax + int $0x21 + jmp badstack + + .data + .globl __stklen + .comm __stklen,4 + diff --git a/newlib/libc/sys/go32/settimeo.s b/newlib/libc/sys/go32/settimeo.s new file mode 100644 index 000000000..f9325cc9e --- /dev/null +++ b/newlib/libc/sys/go32/settimeo.s @@ -0,0 +1,19 @@ +# /* This is file SETTIMEO.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _settimeofday +_settimeofday: + movb $5,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/sleep.c b/newlib/libc/sys/go32/sleep.c new file mode 100644 index 000000000..96e547ddc --- /dev/null +++ b/newlib/libc/sys/go32/sleep.c @@ -0,0 +1,27 @@ +/* This is file sleep.c */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + + +sleep(unsigned int seconds) +{ + long tnow, tthen; + time(&tnow); + tthen = tnow + seconds; + while (1) + { + time(&tnow); + if (tnow >= tthen) + return; + } +} diff --git a/newlib/libc/sys/go32/stat.c b/newlib/libc/sys/go32/stat.c new file mode 100644 index 000000000..e64e5b80c --- /dev/null +++ b/newlib/libc/sys/go32/stat.c @@ -0,0 +1,151 @@ +/* + (c) Copyright 1992 Eric Backus + + This software may be used freely so long as this copyright notice is + left intact. There is no warrantee on this software. +*/ + +#include <sys/stat.h> +#include <string.h> +#include <stdlib.h> + +#include "dos.h" +#include <errno.h> +#include <stdio.h> + +extern int _stat_assist(const char *, struct stat *); +extern void _fixpath(const char *, char *); + +struct path_list +{ + struct path_list *next; + char *path; + int inode; +}; + +static int +fixinode(const char *path, struct stat *buf) +{ + static struct path_list *path_list[1256]; + /* Start the inode count at three, since root path should be two */ + static int inode_count = 3; + + struct path_list *path_ptr, *prev_ptr; + const char *p; + int hash; + + /* Skip over device and leading '/' */ + if (path[1] == ':' && path[2] == '/') path += 3; + + /* We could probably use a better hash than this */ + p = path; + hash = 0; + while (*p != '\0') hash += *p++; + hash = hash & 0xff; + + /* Have we seen this string? */ + path_ptr = path_list[hash]; + prev_ptr = path_ptr; + while (path_ptr) + { + if (strcmp(path, path_ptr->path) == 0) break; + prev_ptr = path_ptr; + path_ptr = path_ptr->next; + } + + if (path_ptr) + /* Same string, so same inode */ + buf->st_ino = path_ptr->inode; + else + { + /* New string with same hash code */ + path_ptr = malloc(sizeof *path_ptr); + if (path_ptr == NULL) + { + errno = ENOMEM; + return -1; + } + path_ptr->next = NULL; + path_ptr->path = strdup(path); + if (path_ptr->path == NULL) + { + errno = ENOMEM; + return -1; + } + path_ptr->inode = inode_count; + if (prev_ptr) + prev_ptr->next = path_ptr; + else + path_list[hash] = path_ptr; + buf->st_ino = inode_count; + inode_count++; + } + return 0; +} + +int +stat(const char *path, struct stat *buf) +{ + static int stat_called_before = 0; + char p[1090]; /* Should be p[PATH_MAX+1] */ + int status; + + /* Normalize the path */ + _fixpath(path, p); + + /* Work around strange bug with stat and time */ + if (!stat_called_before) + { + stat_called_before = 1; + (void) time((time_t *) 0); + } + + /* Check for root path */ + if (strcmp(p, "/") == 0 || strcmp(p + 1, ":/") == 0) + { + /* Handle root path as special case, stat_assist doesn't like + the root directory. */ + if (p[1] == ':') + { + if (p[0] >= 'a' && p[0] <= 'z') + buf->st_dev = p[0] - 'a'; + else + buf->st_dev = p[0] - 'A'; + } + else + buf->st_dev = -1; /* No device? */ + buf->st_ino = 2; /* Root path always inode 2 */ + buf->st_mode = S_IFDIR | S_IREAD | S_IWRITE | S_IEXEC; + buf->st_nlink = 1; + buf->st_uid = getuid(); + buf->st_gid = getgid(); + buf->st_rdev = buf->st_dev; + buf->st_size = 0; + buf->st_atime = 0; + buf->st_mtime = 0; + buf->st_ctime = 0; + buf->st_blksize = 512; /* Not always correct? */ + status = 0; + } + else + { + status = _stat_assist(p, buf); + + /* Make inode numbers unique */ + if (status == 0) status = fixinode(p, buf); + + /* The stat_assist does something weird with st_dev, but sets + st_rdev to the drive number. Fix st_dev. */ + buf->st_dev = buf->st_rdev; + + /* Make all files owned by ourself. */ + buf->st_uid = getuid(); + buf->st_gid = getgid(); + + /* Make all directories writable. They always are in DOS, but + stat_assist doesn't think so. */ + if (S_ISDIR(buf->st_mode)) buf->st_mode |= S_IWRITE; + } + + return status; +} diff --git a/newlib/libc/sys/go32/stat.s b/newlib/libc/sys/go32/stat.s new file mode 100644 index 000000000..045725f32 --- /dev/null +++ b/newlib/libc/sys/go32/stat.s @@ -0,0 +1,19 @@ +# /* This is file STAT.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _stat +_stat: + movb $6,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/stat_ast.s b/newlib/libc/sys/go32/stat_ast.s new file mode 100644 index 000000000..3574f8279 --- /dev/null +++ b/newlib/libc/sys/go32/stat_ast.s @@ -0,0 +1,21 @@ +/* This is file STAT_AST.S */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +** +** Modified very slightly by Eric Backus. +*/ + + .text + .globl __stat_assist +__stat_assist: + movb $6,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/sys/dir.h b/newlib/libc/sys/go32/sys/dir.h new file mode 100644 index 000000000..6ac830f27 --- /dev/null +++ b/newlib/libc/sys/go32/sys/dir.h @@ -0,0 +1,33 @@ +#ifndef _DIR_H_ +#define _DIR_H_ + +struct ffblk { + char ff_reserved[21]; + char ff_attrib; + short ff_ftime; + short ff_fdate; + short ff_filler; + long ff_fsize; + char ff_name[16]; +}; + +#define FA_RDONLY 1 +#define FA_HIDDEN 2 +#define FA_SYSTEM 4 +#define FA_LABEL 8 +#define FA_DIREC 16 +#define FA_ARCH 32 + +#ifdef __cplusplus +extern "C" { +#endif + +int findfirst(const char *pathname, struct ffblk *ffblk, int attrib); +int findnext(struct ffblk *ffblk); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/newlib/libc/sys/go32/sys/dirent.h b/newlib/libc/sys/go32/sys/dirent.h new file mode 100644 index 000000000..50ae799d8 --- /dev/null +++ b/newlib/libc/sys/go32/sys/dirent.h @@ -0,0 +1,39 @@ +/* This is file DIRENT.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _dirent_h_ +#define _dirent_h_ + +#include <sys/dir.h> + +struct dirent { + unsigned short d_namlen; + char d_name[14]; +}; + +typedef struct { + int num_read; + char *name; + struct ffblk ff; + struct dirent de; +} DIR; + +DIR *opendir(char *name); +struct dirent *readdir(DIR *dir); +long telldir(DIR *dir); +void seekdir(DIR *dir, long loc); +void rewinddir(DIR *dir); +int closedir(DIR *dir); + +#endif diff --git a/newlib/libc/sys/go32/sys/dos.h b/newlib/libc/sys/go32/sys/dos.h new file mode 100644 index 000000000..ff3103f93 --- /dev/null +++ b/newlib/libc/sys/go32/sys/dos.h @@ -0,0 +1,57 @@ +#ifndef _DOS_H_ +#define _DOS_H_ + +union REGS { + struct { + unsigned long ax; + unsigned long bx; + unsigned long cx; + unsigned long dx; + unsigned long si; + unsigned long di; + unsigned long cflag; + unsigned long flags; + } x; + struct { + unsigned char al; + unsigned char ah; + unsigned short upper_ax; + unsigned char bl; + unsigned char bh; + unsigned short upper_bx; + unsigned char cl; + unsigned char ch; + unsigned short upper_cx; + unsigned char dl; + unsigned char dh; + unsigned short upper_dx; + } h; +}; + +struct SREGS { + unsigned short cs; + unsigned short ds; + unsigned short es; + unsigned short fs; + unsigned short gs; + unsigned short ss; +}; + +#ifdef __cplusplus +extern "C" { +#endif + +int bdos(int func, unsigned dx, unsigned al); +int bdosptr(int func, void *dx, unsigned al); +int int86(int ivec, union REGS *in, union REGS *out); +int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg); +int intdos(union REGS *in, union REGS *out); +int intdosx(union REGS *in, union REGS *out, struct SREGS *seg); + +#ifdef __cplusplus +} +#endif + +#endif + + diff --git a/newlib/libc/sys/go32/sys/dpmi.h b/newlib/libc/sys/go32/sys/dpmi.h new file mode 100644 index 000000000..7a2cb13af --- /dev/null +++ b/newlib/libc/sys/go32/sys/dpmi.h @@ -0,0 +1,151 @@ +/* This is file dpmi.h */
+/*
+** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
+**
+** This file is distributed under the terms listed in the document
+** "copying.dj", available from DJ Delorie at the address above.
+** A copy of "copying.dj" should accompany this file; if not, a copy
+** should be available from where this file was obtained. This file
+** may not be distributed without a verbatim copy of "copying.dj".
+**
+** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _DPMI_H_
+#define _DPMI_H_
+
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef union {
+ struct {
+ u_long edi;
+ u_long esi;
+ u_long ebp;
+ u_long res;
+ u_long ebx;
+ u_long edx;
+ u_long ecx;
+ u_long eax;
+ } d;
+ struct {
+ u_short di, di_hi;
+ u_short si, si_hi;
+ u_short bp, bp_hi;
+ u_short res, res_hi;
+ u_short bx, bx_hi;
+ u_short dx, dx_hi;
+ u_short cx, cx_hi;
+ u_short ax, ax_hi;
+ u_short flags;
+ u_short es;
+ u_short ds;
+ u_short fs;
+ u_short gs;
+ u_short ip;
+ u_short cs;
+ u_short sp;
+ u_short ss;
+ } x;
+ struct {
+ u_char edi[4];
+ u_char esi[4];
+ u_char ebp[4];
+ u_char res[4];
+ u_char bl, bh, ebx_b2, ebx_b3;
+ u_char dl, dh, edx_b2, edx_b3;
+ u_char cl, ch, ecx_b2, ecx_b3;
+ u_char al, ah, eax_b2, eax_b3;
+ } h;
+} _go32_dpmi_registers;
+
+typedef struct {
+ u_long size;
+ u_long pm_offset;
+ u_short pm_selector;
+ u_short rm_offset;
+ u_short rm_segment;
+} _go32_dpmi_seginfo;
+
+typedef struct {
+ u_long available_memory;
+ u_long available_pages;
+ u_long available_lockable_pages;
+ u_long linear_space;
+ u_long unlocked_pages;
+ u_long available_physical_pages;
+ u_long total_physical_pages;
+ u_long free_linear_space;
+ u_long max_pages_in_paging_file;
+ u_long reserved[3];
+} _go32_dpmi_meminfo;
+
+/* returns zero if success, else dpmi error and info->size is max size */
+int _go32_dpmi_allocate_dos_memory(_go32_dpmi_seginfo *info);
+ /* set size to bytes/16, call, use rm_segment. Do not
+ change anthing but size until the memory is freed.
+ If error, max size is returned in size as bytes/16. */
+int _go32_dpmi_free_dos_memory(_go32_dpmi_seginfo *info);
+ /* set new size to bytes/16, call. If error, max size
+ is returned in size as bytes/16 */
+int _go32_dpmi_resize_dos_memory(_go32_dpmi_seginfo *info);
+ /* uses pm_selector to free memory */
+
+/* These both use the rm_segment:rm_offset fields only */
+int _go32_dpmi_get_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+int _go32_dpmi_set_real_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+
+/* These do NOT wrap the function in pm_offset in an iret handler.
+ You must provide an assembler interface yourself, or alloc one below.
+ You may NOT longjmp out of an interrupt handler. */
+int _go32_dpmi_get_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* puts vector in pm_selector:pm_offset. */
+int _go32_dpmi_set_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* sets vector from pm_offset and pm_selector */
+int _go32_dpmi_chain_protected_mode_interrupt_vector(int vector, _go32_dpmi_seginfo *info);
+ /* sets up wrapper that calls function in pm_offset, chaining to old
+ handler when it returns */
+
+/* These can be used to generate assember IRET-style wrappers for functions */
+int _go32_dpmi_allocate_iret_wrapper(_go32_dpmi_seginfo *info);
+ /* Put function ptr in pm_offset, call, returns wrapper entry in pm_offset. */
+int _go32_dpmi_free_iret_wrapper(_go32_dpmi_seginfo *info);
+ /* assumes pm_offset points to wrapper, frees it */
+
+/* simulate real mode calls. CS:IP from regs for non-interrupt */
+int _go32_dpmi_simulate_int(int vector, _go32_dpmi_registers *regs);
+int _go32_dpmi_simulate_fcall(_go32_dpmi_registers *regs);
+int _go32_dpmi_simulate_fcall_iret(_go32_dpmi_registers *regs);
+
+/* These automatically handle the tasks of restructuring the
+ real-mode stack for the proper return type. The callback
+ (info->pm_offset) is called as (*pmcb)(_go32_dpmi_registers *regs); */
+int _go32_dpmi_allocate_real_mode_callback_retf(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs);
+ /* points callback at pm_offset, returns seg:ofs of callback addr
+ in rm_segment:rm_offset. Do not change any fields until freed.
+ Interface is added to simulate far return */
+int _go32_dpmi_allocate_real_mode_callback_iret(_go32_dpmi_seginfo *info, _go32_dpmi_registers *regs);
+ /* same, but simulates iret */
+int _go32_dpmi_free_real_mode_callback(_go32_dpmi_seginfo *info);
+ /* frees callback */
+
+/* Only available_memory is guaranteed to be valid. Try
+ available_physical_pages for phys mem left */
+int _go32_dpmi_get_free_memory_information(_go32_dpmi_meminfo *info);
+
+/* Convenience functions. These use the above memory info call.
+ The return value is *bytes* */
+u_long _go32_dpmi_remaining_physical_memory(void);
+u_long _go32_dpmi_remaining_virtual_memory(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/sys/errno.h b/newlib/libc/sys/go32/sys/errno.h new file mode 100644 index 000000000..44852aee3 --- /dev/null +++ b/newlib/libc/sys/go32/sys/errno.h @@ -0,0 +1,73 @@ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +/* ??? This file has been modified to work with newlib's way of storing + `errno'. Arguably there's no need and arguably we shouldn't diverge + from go32 sources. If you feel strongly about it, please change it. + The interface between newlib and system's version of errno is via + __errno, so there's no problem in storing errno in a different place + (any changes can be dealt with inside __errno). */ + +#ifndef _SYS_ERRNO_H_ +#define _SYS_ERRNO_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/reent.h> + +#ifndef _REENT_ONLY +#define errno (*__errno()) +extern int *__errno _PARAMS ((void)); +#endif + +#define __errno_r(ptr) ((ptr)->_errno) + +#define ENOENT 2 /* No such file or directory */ +#define ENOTDIR 3 /* No path */ +#define EMFILE 4 /* Too many open files */ +#define EACCES 5 /* Permission denied */ +#define EBADF 6 /* Bad file number */ +#define EARENA 7 /* Arena trashed */ +#define ENOMEM 8 /* Not enough core */ +#define ESEGV 9 /* invalid memory address */ +#define EBADENV 10 /* invalid environment */ +#define ENODEV 15 /* No such device */ +#define ENMFILE 18 /* No more files */ +#define EINVAL 19 /* Invalid argument */ +#define E2BIG EBADENV /* Arg list too long */ +#define ENOEXEC 21 /* Exec format error */ +#define EXDEV 17 /* Cross-device link */ +#define EPIPE 32 /* POHC */ +#define EDOM 33 /* Math argument */ +#define ERANGE 34 /* Result too large */ +#if 0 /* readline.c assumes that if this is defined, so is O_NDELAY. + Newlib doesn't use it, so comment it out. */ +#define EWOULDBLOCK 35 /* POHC */ +#endif +#define EEXIST 36 /* File already exists */ +#define EINTR 100 /* Interrupted system call */ +#define EIO 101 /* I/O or bounds error */ +#define ENOSPC 102 /* No space left on drive */ +#define EAGAIN 103 /* No more processes */ +#define ECHILD 200 /* child exited (porting only) */ +#define EFAULT 201 /* bad address */ +#define ENXIO ENODEV +#define EPERM EACCES + +/* New values required by newlib and the Cygnus toolchain. */ +#define ENOSYS 230 /* Function not implemented */ +#define ESPIPE 231 /* Illegal seek */ + +#endif diff --git a/newlib/libc/sys/go32/sys/fcntl.h b/newlib/libc/sys/go32/sys/fcntl.h new file mode 100644 index 000000000..792c0673d --- /dev/null +++ b/newlib/libc/sys/go32/sys/fcntl.h @@ -0,0 +1,12 @@ +#define O_RDONLY 0x0001 +#define O_WRONLY 0x0002 +#define O_RDWR 0x0004 +#define O_CREAT 0x0100 +#define O_TRUNC 0x0200 +#define O_EXCL 0x0400 +#define O_APPEND 0x0800 +#define O_TEXT 0x4000 +#define O_BINARY 0x8000 + + + diff --git a/newlib/libc/sys/go32/sys/file.h b/newlib/libc/sys/go32/sys/file.h new file mode 100644 index 000000000..79f5f65f5 --- /dev/null +++ b/newlib/libc/sys/go32/sys/file.h @@ -0,0 +1,31 @@ +/* This is file FILE.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _FILE_H_ +#define _FILE_H_ + +#include <fcntl.h> + +#define L_SET 0 +#define L_CURR 1 +#define L_INCR 1 +#define L_XTND 2 + + +#define F_OK 0 /* does file exist */ +#define X_OK 1 /* is it executable by caller */ +#define W_OK 2 /* is it writable by caller */ +#define R_OK 4 /* is it readable by caller */ + +#endif diff --git a/newlib/libc/sys/go32/sys/go32.h b/newlib/libc/sys/go32/sys/go32.h new file mode 100644 index 000000000..4b6adefe1 --- /dev/null +++ b/newlib/libc/sys/go32/sys/go32.h @@ -0,0 +1,69 @@ +/* This is file go32.h */
+/*
+** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
+**
+** This file is distributed under the terms listed in the document
+** "copying.dj", available from DJ Delorie at the address above.
+** A copy of "copying.dj" should accompany this file; if not, a copy
+** should be available from where this file was obtained. This file
+** may not be distributed without a verbatim copy of "copying.dj".
+**
+** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _GO32_H_
+#define _GO32_H_
+
+#include <sys/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* This must match go32/proginfo.h */
+
+typedef struct {
+ u_long size_of_this_structure_in_bytes;
+ u_long linear_address_of_primary_screen;
+ u_long linear_address_of_secondary_screen;
+ u_long linear_address_of_transfer_buffer;
+ u_long size_of_transfer_buffer; /* >= 4k */
+ u_long pid;
+ u_char master_interrupt_controller_base;
+ u_char slave_interrupt_controller_base;
+ u_short selector_for_linear_memory;
+ u_long linear_address_of_stub_info_structure;
+ u_long linear_address_of_original_psp;
+ u_short run_mode;
+ u_short run_mode_info;
+} Go32_Info_Block;
+
+extern Go32_Info_Block _go32_info_block;
+
+#define _GO32_RUN_MODE_UNDEF 0
+#define _GO32_RUN_MODE_RAW 1
+#define _GO32_RUN_MODE_XMS 2
+#define _GO32_RUN_MODE_VCPI 3
+#define _GO32_RUN_MODE_DPMI 4
+
+void dosmemget(int offset, int length, void *buffer);
+void dosmemput(const void *buffer, int length, int offset);
+void movedata(unsigned source_selector, unsigned source_offset,
+ unsigned dest_selector, unsigned dest_offset,
+ size_t length);
+
+/* returns number of times hit since last call. (zero first time) */
+u_long _go32_was_ctrl_break_hit(void);
+void _go32_want_ctrl_break(int yes); /* auto-yes if call above function */
+
+u_short _go32_my_cs(void);
+u_short _go32_my_ds(void);
+u_short _go32_my_ss(void);
+u_short _go32_conventional_mem_selector(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/sys/param.h b/newlib/libc/sys/go32/sys/param.h new file mode 100644 index 000000000..c912b4082 --- /dev/null +++ b/newlib/libc/sys/go32/sys/param.h @@ -0,0 +1,22 @@ +/* This is file PARAM.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _PARAM_H_ +#define _PARAM_H_ + +#define MAXPATHLEN 80 +/* 100, according to the real go32 sys/times.h */ +#define HZ (100) + +#endif diff --git a/newlib/libc/sys/go32/sys/pc.h b/newlib/libc/sys/go32/sys/pc.h new file mode 100644 index 000000000..4bce557d1 --- /dev/null +++ b/newlib/libc/sys/go32/sys/pc.h @@ -0,0 +1,56 @@ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _PC_H_ +#define _PC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +unsigned char inportb(unsigned short port); +unsigned short inportw(unsigned short port); +unsigned long inportl(unsigned short port); +unsigned char inportsb(unsigned short port, unsigned char *buf, unsigned len); +unsigned short inportsw(unsigned short port, unsigned short *buf, unsigned len); +unsigned long inportsl(unsigned short port, unsigned long *buf, unsigned len); +void outportb(unsigned short port, unsigned char data); +void outportw(unsigned short port, unsigned short data); +void outportl(unsigned short port, unsigned long data); +void outportsb(unsigned short port, unsigned char *buf, unsigned len); +void outportsw(unsigned short port, unsigned short *buf, unsigned len); +void outportsl(unsigned short port, unsigned long *buf, unsigned len); + +int kbhit(void); +int getkey(void); + +void sound(int frequency); + +extern short ScreenPrimary[]; +extern short ScreenSecondary[]; + +/* For the primary screen: */ +int ScreenRows(); +int ScreenCols(); +void ScreenPutChar(int ch, int attr, int x, int y); +void ScreenSetCursor(int row, int col); +void ScreenGetCursor(int *row, int *col); +void ScreenClear(); + + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/newlib/libc/sys/go32/sys/register.h b/newlib/libc/sys/go32/sys/register.h new file mode 100644 index 000000000..56fb737dd --- /dev/null +++ b/newlib/libc/sys/go32/sys/register.h @@ -0,0 +1,28 @@ +/* This is file REGISTER.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + unsigned ax, bx, cx, dx, si, di, bp, f; + } REGISTERS; + +#define FLAGS_C 1 + +#ifdef __cplusplus +} +#endif + diff --git a/newlib/libc/sys/go32/sys/resource.h b/newlib/libc/sys/go32/sys/resource.h new file mode 100644 index 000000000..afdf39217 --- /dev/null +++ b/newlib/libc/sys/go32/sys/resource.h @@ -0,0 +1,50 @@ +/* This is file RESOURCE.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _SYS_RESOURCE_H_ +#define _SYS_RESOURCE_H_ + +#include <sys/time.h> + +#define RUSAGE_SELF 0 /* calling process */ +#define RUSAGE_CHILDREN -1 /* terminated child processes */ + +struct rusage { + struct timeval ru_utime; /* user time used */ + struct timeval ru_stime; /* system time used */ + long ru_maxrss; /* integral max resident set size */ + long ru_ixrss; /* integral shared text memory size */ + long ru_idrss; /* integral unshared data size */ + long ru_isrss; /* integral unshared stack size */ + long ru_minflt; /* page reclaims */ + long ru_majflt; /* page faults */ + long ru_nswap; /* swaps */ + long ru_inblock; /* block input operations */ + long ru_oublock; /* block output operations */ + long ru_msgsnd; /* messages sent */ + long ru_msgrcv; /* messages received */ + long ru_nsignals; /* signals received */ + long ru_nvcsw; /* voluntary context switches */ + long ru_nivcsw; /* involuntary context switches */ +}; + + +#ifdef __cplusplus +extern "C" int getrusage(int who, struct rusage *rusage); +#else +extern int getrusage(int who, struct rusage *rusage); +#endif + +#endif + diff --git a/newlib/libc/sys/go32/sys/setjmp.h b/newlib/libc/sys/go32/sys/setjmp.h new file mode 100644 index 000000000..59e30c43e --- /dev/null +++ b/newlib/libc/sys/go32/sys/setjmp.h @@ -0,0 +1,44 @@ +/*
+** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954
+**
+** This file is distributed under the terms listed in the document
+** "copying.dj", available from DJ Delorie at the address above.
+** A copy of "copying.dj" should accompany this file; if not, a copy
+** should be available from where this file was obtained. This file
+** may not be distributed without a verbatim copy of "copying.dj".
+**
+** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+*/
+
+#ifndef _SETJMP_H_
+#define _SETJMP_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+ unsigned long eax;
+ unsigned long ebx;
+ unsigned long ecx;
+ unsigned long edx;
+ unsigned long esi;
+ unsigned long edi;
+ unsigned long ebp;
+ unsigned long esp;
+ unsigned long eip;
+ unsigned short es;
+ unsigned short fs;
+ unsigned short gs;
+ unsigned short ss;
+} jmp_buf[1];
+
+extern int setjmp(jmp_buf);
+extern void longjmp(jmp_buf, int);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/newlib/libc/sys/go32/sys/stdc.h b/newlib/libc/sys/go32/sys/stdc.h new file mode 100644 index 000000000..b2e5bc19b --- /dev/null +++ b/newlib/libc/sys/go32/sys/stdc.h @@ -0,0 +1,15 @@ +/* This is file STDC.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <sys/types.h> diff --git a/newlib/libc/sys/go32/sys/uio.h b/newlib/libc/sys/go32/sys/uio.h new file mode 100644 index 000000000..d09fa5061 --- /dev/null +++ b/newlib/libc/sys/go32/sys/uio.h @@ -0,0 +1,23 @@ +/* This is file UIO.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _SYS_UIO_H_ +#define _SYS_UIO_H_ + +struct iovec { + void *iov_base; + unsigned long iov_len; +}; + +#endif diff --git a/newlib/libc/sys/go32/syserr.c b/newlib/libc/sys/go32/syserr.c new file mode 100644 index 000000000..1fe4ca4cf --- /dev/null +++ b/newlib/libc/sys/go32/syserr.c @@ -0,0 +1,38 @@ + +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +char *sys_errlist[] = { + "no error", + "invalid function", + "file not found", + "path not found", + "too many open files", + "access denied", + "invalid file handle", + "arena trashed", + "not enough memory", + "invalid block", + "no environment", + "no format", + "invalid access code", + "invalid data", + "undefined", + "invalid drive", + "attempt to remove current directory", + "not same device", + "no more files" +}; + +int sys_nerr= sizeof(sys_errlist) / sizeof(char *); + diff --git a/newlib/libc/sys/go32/system.s b/newlib/libc/sys/go32/system.s new file mode 100644 index 000000000..9b12bbee8 --- /dev/null +++ b/newlib/libc/sys/go32/system.s @@ -0,0 +1,19 @@ +# /* This is file SYSTEM.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _system +_system: + movb $7,%al + jmp turbo_assist diff --git a/newlib/libc/sys/go32/tell.s b/newlib/libc/sys/go32/tell.s new file mode 100644 index 000000000..5427cbe3f --- /dev/null +++ b/newlib/libc/sys/go32/tell.s @@ -0,0 +1,33 @@ +# /* This is file TELL.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _tell +_tell: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl $0,%ecx + movl $0,%edx + movw $0x4201,%ax + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + shll $16,%edx + andl $0xffff,%eax + orl %edx,%eax + ret diff --git a/newlib/libc/sys/go32/time.c b/newlib/libc/sys/go32/time.c new file mode 100644 index 000000000..f8ab6f47e --- /dev/null +++ b/newlib/libc/sys/go32/time.c @@ -0,0 +1,53 @@ +/* +FUNCTION +<<time>>---get current calendar time (as single number) + +INDEX + time + +ANSI_SYNOPSIS + #include <time.h> + time_t time(time_t *<[t]>); + +TRAD_SYNOPSIS + #include <time.h> + time_t time(<[t]>) + time_t *<[t]>; + +DESCRIPTION +<<time>> looks up the best available representation of the current +time and returns it, encoded as a <<time_t>>. It stores the same +value at <[t]> unless the argument is <<NULL>>. + +RETURNS +A <<-1>> result means the current time is not available; otherwise the +result represents the current time. + +PORTABILITY +ANSI C requires <<time>>. +This function is a wrapper for <<gettimeofday>>; this pollutes the +namespace, and should be dealt with in the future. +*/ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/time.h> + +time_t +_DEFUN(time,(t), + time_t *t) +{ + struct timeval now; + + if (gettimeofday(&now, (struct timezone *)0) >= 0) + { + if (t) + { + *t = now.tv_sec; + } + + return now.tv_sec; + + } + return -1 ; +} diff --git a/newlib/libc/sys/go32/truncate.c b/newlib/libc/sys/go32/truncate.c new file mode 100644 index 000000000..8c64ee5a5 --- /dev/null +++ b/newlib/libc/sys/go32/truncate.c @@ -0,0 +1,25 @@ +/* This is file TRUNCATE.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <fcntl.h> + +truncate(const char *fn, unsigned long where) +{ + int fd = open(fn, O_WRONLY); + if (fd < 0) + return -1; + lseek(fd, where, 0); + write(fd, 0, 0); + close(fd); +} diff --git a/newlib/libc/sys/go32/turbo.s b/newlib/libc/sys/go32/turbo.s new file mode 100644 index 000000000..4bf2253e9 --- /dev/null +++ b/newlib/libc/sys/go32/turbo.s @@ -0,0 +1,30 @@ +# /* This is file TURBO.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl turbo_assist +turbo_assist: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl 20(%esp),%ecx + movl 24(%esp),%edx + movb $0xff,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + ret diff --git a/newlib/libc/sys/go32/umask.c b/newlib/libc/sys/go32/umask.c new file mode 100644 index 000000000..4fabe640b --- /dev/null +++ b/newlib/libc/sys/go32/umask.c @@ -0,0 +1,4 @@ +umask() +{ + return 0644; +} diff --git a/newlib/libc/sys/go32/unlink.s b/newlib/libc/sys/go32/unlink.s new file mode 100644 index 000000000..afc9fe8f9 --- /dev/null +++ b/newlib/libc/sys/go32/unlink.s @@ -0,0 +1,27 @@ +# /* This is file UNLINK.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _unlink +_unlink: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%edx + movb $0x41,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jmp syscall_check diff --git a/newlib/libc/sys/go32/utime.c b/newlib/libc/sys/go32/utime.c new file mode 100644 index 000000000..555a79c3f --- /dev/null +++ b/newlib/libc/sys/go32/utime.c @@ -0,0 +1,15 @@ +/* This is file UTIME.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +utime(){} diff --git a/newlib/libc/sys/go32/utimes.c b/newlib/libc/sys/go32/utimes.c new file mode 100644 index 000000000..46b530ba2 --- /dev/null +++ b/newlib/libc/sys/go32/utimes.c @@ -0,0 +1,15 @@ +/* This is file UTIMES.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +utimes(){} diff --git a/newlib/libc/sys/go32/write.s b/newlib/libc/sys/go32/write.s new file mode 100644 index 000000000..4c2d34806 --- /dev/null +++ b/newlib/libc/sys/go32/write.s @@ -0,0 +1,30 @@ +# /* This is file WRITE.S */ +# /* +# ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +# ** +# ** This file is distributed under the terms listed in the document +# ** "copying.dj", available from DJ Delorie at the address above. +# ** A copy of "copying.dj" should accompany this file; if not, a copy +# ** should be available from where this file was obtained. This file +# ** may not be distributed without a verbatim copy of "copying.dj". +# ** +# ** This file is distributed WITHOUT ANY WARRANTY; without even the implied +# ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# */ + + .text + .globl _write +_write: + pushl %ebx + pushl %esi + pushl %edi + movl 16(%esp),%ebx + movl 20(%esp),%edx + movl 24(%esp),%ecx + movb $0x40,%ah + int $0x21 + popl %edi + popl %esi + popl %ebx + jb syscall_error + ret diff --git a/newlib/libc/sys/go32/writestub.c b/newlib/libc/sys/go32/writestub.c new file mode 100644 index 000000000..ae1b99359 --- /dev/null +++ b/newlib/libc/sys/go32/writestub.c @@ -0,0 +1,6 @@ + +sswrite(a,b,c) +{ + /*write(1,"writing\n",9);*/ + return write_real(a,b,c); +} diff --git a/newlib/libc/sys/go32/writev.c b/newlib/libc/sys/go32/writev.c new file mode 100644 index 000000000..86f9b1e41 --- /dev/null +++ b/newlib/libc/sys/go32/writev.c @@ -0,0 +1,31 @@ +/* This is file WRITEV.C */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <sys/types.h> +#include <sys/uio.h> + +writev(int handle, struct iovec *iov, int count) +{ + unsigned long r, t=0; + while (count) + { + r = write(handle, iov->iov_base, iov->iov_len); + if (r < 0) + return r; + t += r; + iov++; + count--; + } + return t; +} diff --git a/newlib/libc/sys/h8300hms/Makefile.am b/newlib/libc/sys/h8300hms/Makefile.am new file mode 100644 index 000000000..131adc047 --- /dev/null +++ b/newlib/libc/sys/h8300hms/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c write.c _exit.c sbrk.c misc.c crt1.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/h8300hms/Makefile.in b/newlib/libc/sys/h8300hms/Makefile.in new file mode 100644 index 000000000..e4b08a394 --- /dev/null +++ b/newlib/libc/sys/h8300hms/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c write.c _exit.c sbrk.c misc.c crt1.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o write.o _exit.o sbrk.o misc.o crt1.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/h8300hms/_exit.c b/newlib/libc/sys/h8300hms/_exit.c new file mode 100644 index 000000000..17d1538cb --- /dev/null +++ b/newlib/libc/sys/h8300hms/_exit.c @@ -0,0 +1,23 @@ +/* FIXME: which one? */ + +#include <_ansi.h> + +/* `sleep' is passed an argument in r0 that indicates the reason + the program is exiting. The format of r0 is defined in devo/include/wait.h. +*/ + +void +_DEFUN (_exit,(rc), + int rc) +{ + short rc2 = rc << 8; + asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0"); +} + +void +_DEFUN (__exit,(rc), + int rc) +{ + short rc2 = rc << 8; + asm("mov.w %0,r0\n\tsleep" : : "r" (rc2) : "r0"); +} diff --git a/newlib/libc/sys/h8300hms/aclocal.m4 b/newlib/libc/sys/h8300hms/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/h8300hms/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/h8300hms/configure b/newlib/libc/sys/h8300hms/configure new file mode 100755 index 000000000..cab59b35a --- /dev/null +++ b/newlib/libc/sys/h8300hms/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt1.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/h8300hms/configure.in b/newlib/libc/sys/h8300hms/configure.in new file mode 100644 index 000000000..7f5b630f6 --- /dev/null +++ b/newlib/libc/sys/h8300hms/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/h8300hms configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(crt1.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/h8300hms/crt0.S b/newlib/libc/sys/h8300hms/crt0.S new file mode 100644 index 000000000..94a4e2948 --- /dev/null +++ b/newlib/libc/sys/h8300hms/crt0.S @@ -0,0 +1,69 @@ +; h8/300 and h8/300h start up file. + +#ifdef __H8300__ + + .section .text + .global _start +_start: + mov.w #_stack,sp + mov.w #_edata,r0 + mov.w #_end,r1 + mov.w #0,r2 +.loop: mov.w r2,@r0 + adds #2,r0 + cmp r1,r0 + blo .loop + jsr @___main + jsr @_main + jsr @_exit + + .section .stack +_stack: .word 1 + +#endif + +#ifdef __H8300H__ + + .h8300h + .section .text + .global _start +_start: + mov.l #_stack,sp + mov.l #_edata,er0 + mov.l #_end,er1 + mov.w #0,r2 ; not sure about alignment requirements +.loop: mov.w r2,@er0 ; playing it safe for now + adds #2,er0 + cmp.l er1,er0 + blo .loop + jsr @___main + jsr @_main + jsr @_exit + + .section .stack +_stack: .long 1 + +#endif + +#ifdef __H8300S__ + + .h8300s + .section .text + .global _start +_start: + mov.l #_stack,sp + mov.l #_edata,er0 + mov.l #_end,er1 + mov.w #0,r2 ; not sure about alignment requirements +.loop: mov.w r2,@er0 ; playing it safe for now + adds #2,er0 + cmp.l er1,er0 + blo .loop + jsr @___main + jsr @_main + jsr @_exit + + .section .stack +_stack: .long 1 + +#endif diff --git a/newlib/libc/sys/h8300hms/crt1.c b/newlib/libc/sys/h8300hms/crt1.c new file mode 100644 index 000000000..dd0be3145 --- /dev/null +++ b/newlib/libc/sys/h8300hms/crt1.c @@ -0,0 +1,16 @@ +void __main () +{ + static int initialized; + if (! initialized) + { + typedef void (*pfunc) (); + extern pfunc __ctors[]; + extern pfunc __ctors_end[]; + pfunc *p; + + initialized = 1; + for (p = __ctors_end; p > __ctors; ) + (*--p) (); + + } +} diff --git a/newlib/libc/sys/h8300hms/misc.c b/newlib/libc/sys/h8300hms/misc.c new file mode 100644 index 000000000..6021b5cb6 --- /dev/null +++ b/newlib/libc/sys/h8300hms/misc.c @@ -0,0 +1,34 @@ +/* Misc. operating system stubs. */ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> + +/* _raise(), getpid(), and kill() are required by abort(). + getpid/kill are prefixed with '_' because of MISSING_SYSCALL_NAMES. */ + +int _DEFUN(_raise,(sig), + int sig) +{ + return 0; +} + +int _DEFUN(_getpid,(),) +{ + return 0; +} + +int _DEFUN(_kill,(pid, sig), + int pid _AND + int sig) +{ + if (pid == 0) + { + /* Narrow SIG down to a short, in case we're compiled with -mint32. */ + short sig2 = sig; + /* This causes the simulator to indicate abort() was called. + The format of r0 is defined by devo/include/wait.h. */ + asm ("mov.w %0,r0\n\tsleep" : : "r" (sig2) : "r0"); + } + return 0; +} diff --git a/newlib/libc/sys/h8300hms/sbrk.c b/newlib/libc/sys/h8300hms/sbrk.c new file mode 100644 index 000000000..1456a67eb --- /dev/null +++ b/newlib/libc/sys/h8300hms/sbrk.c @@ -0,0 +1,28 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> + +register char *stack_ptr asm ("sp"); + +caddr_t + _sbrk(incr) + int incr; +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return (caddr_t)prev_heap_end; +} + diff --git a/newlib/libc/sys/h8300hms/sys/file.h b/newlib/libc/sys/h8300hms/sys/file.h new file mode 100644 index 000000000..a01e805e6 --- /dev/null +++ b/newlib/libc/sys/h8300hms/sys/file.h @@ -0,0 +1,30 @@ +/* This is file FILE.H */ +/* +** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#ifndef _FILE_H_ +#define _FILE_H_ + +#include <fcntl.h> + +#define L_SET 0 +#define L_CURR 1 +#define L_XTND 2 + + +#define F_OK 0 /* does file exist */ +#define X_OK 1 /* is it executable by caller */ +#define W_OK 2 /* is it writable by caller */ +#define R_OK 4 /* is it readable by caller */ + +#endif diff --git a/newlib/libc/sys/h8300hms/syscalls.c b/newlib/libc/sys/h8300hms/syscalls.c new file mode 100644 index 000000000..b7a90e316 --- /dev/null +++ b/newlib/libc/sys/h8300hms/syscalls.c @@ -0,0 +1,50 @@ +/* Operating system stubs, set up for the MRI simulator */ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> + +int _DEFUN(_read,(file, ptr, len), + int file _AND + char *ptr _AND + int len) +{ + return 0; +} + + +int _DEFUN(_lseek,(file, ptr, dir), + int file _AND + int ptr _AND + int dir) +{ + return 0; +} + +int _DEFUN(_close,(file), + int file) +{ + return -1; +} + +int isatty(file) + int file; +{ + return 1; +} + +int _DEFUN(_fstat,(file, st), + int file _AND + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + +int +_open (path, flags) + const char *path; + int flags; +{ + return 0; +} diff --git a/newlib/libc/sys/h8300hms/write.c b/newlib/libc/sys/h8300hms/write.c new file mode 100644 index 000000000..22fc63d57 --- /dev/null +++ b/newlib/libc/sys/h8300hms/write.c @@ -0,0 +1,16 @@ + + +int _write(file, ptr, len) + int file; + char *ptr; + int len; +{ + int todo; + + for (todo = 0; todo < len; todo++) + { + asm("mov.b #0,r1l\n mov.b %0l,r2l\njsr @@0xc4" : : "r" (*ptr++) : "r1", "r2"); + } + return len; +} + diff --git a/newlib/libc/sys/h8500hms/Makefile.am b/newlib/libc/sys/h8500hms/Makefile.am new file mode 100644 index 000000000..8febfd388 --- /dev/null +++ b/newlib/libc/sys/h8500hms/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c misc.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/h8500hms/Makefile.in b/newlib/libc/sys/h8500hms/Makefile.in new file mode 100644 index 000000000..4ce720db6 --- /dev/null +++ b/newlib/libc/sys/h8500hms/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c misc.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o misc.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/h8500hms/aclocal.m4 b/newlib/libc/sys/h8500hms/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/h8500hms/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/h8500hms/configure b/newlib/libc/sys/h8500hms/configure new file mode 100755 index 000000000..adbba2da1 --- /dev/null +++ b/newlib/libc/sys/h8500hms/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=misc.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/h8500hms/configure.in b/newlib/libc/sys/h8500hms/configure.in new file mode 100644 index 000000000..b050f4ed1 --- /dev/null +++ b/newlib/libc/sys/h8500hms/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/h8500hms configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(misc.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/h8500hms/crt0.c b/newlib/libc/sys/h8500hms/crt0.c new file mode 100644 index 000000000..fa7d1b93c --- /dev/null +++ b/newlib/libc/sys/h8500hms/crt0.c @@ -0,0 +1,32 @@ + +extern char _start_bss; +extern char end; +extern char stack; + +static zeroandrun(); +#pragma noprolog + +start() +{ + asm("mov.w #%off(_stack),sp"); +/* asm("ldc.w #0x700,sr");*/ + asm("ldc.b #%page(_stack),tp"); + asm("ldc.b #%page(_stack),dp"); + asm("ldc.b #%page(_stack),ep"); + /* Can't have anything else in here, since the fp won't be set up + so local variables won't work */ + zeroandrun(); +} + +static +zeroandrun() +{ + char *p; + p = &_start_bss; + while (p < &end) + { + *p++ = 0; + } + main(); + _exit(); +} diff --git a/newlib/libc/sys/h8500hms/misc.c b/newlib/libc/sys/h8500hms/misc.c new file mode 100644 index 000000000..a791704a1 --- /dev/null +++ b/newlib/libc/sys/h8500hms/misc.c @@ -0,0 +1,29 @@ +/* Misc. operating system stubs. */ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <signal.h> + +/* _raise(), getpid(), and kill() are required by abort(). + getpid/kill are prefixed with '_' because of MISSING_SYSCALL_NAMES. */ + +int _DEFUN(_raise,(sig), + int sig) +{ + return 0; +} + +int _DEFUN(_getpid,(),) +{ + return 0; +} + +int _DEFUN(_kill,(pid, sig), + int pid _AND + int sig) +{ + if (sig == SIGABRT) + asm ("mov.w #34,r3; trapa #15"); + return 0; +} diff --git a/newlib/libc/sys/h8500hms/syscalls.c b/newlib/libc/sys/h8500hms/syscalls.c new file mode 100644 index 000000000..bb0c3c0c7 --- /dev/null +++ b/newlib/libc/sys/h8500hms/syscalls.c @@ -0,0 +1,129 @@ + +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> + +int +_read (file, ptr, len) + int file; + char *ptr; + size_t len; + +{ + return 0; +} + + +int +_lseek (file, ptr, dir) + int file; + int ptr; + int dir; + +{ + return 0; + +} + +static +writechar (c) + char c; + + +{ + register int n asm ("r3"); + n = c; +asm ("clr.w r1;mov.w %0,r0; mov.w #6,r3; trapa #15": :"g" (n) : "r3","r1","r0"); +} + + + +int +_write (file, ptr, len) + int file; + char *ptr; + size_t len; +{ + + int todo; + + for (todo = 0; todo < len; todo++) + { + writechar (*ptr++); + } + return len; + +} + + + +int +_close (file) + int file; +{ + + return -1; +} + + + +caddr_t +_sbrk (incr) + size_t incr; +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return (caddr_t) prev_heap_end; +} + + + +int +isatty (file) + int file; +{ + return 1; +} + + + +int +_fstat (file, stat) + int file; + struct stat *stat; + +{ + stat->st_mode = S_IFCHR; + return 0; +} + +int +_open (path, flags) + const char *path; + int flags; + +{ + return 0; +} + + +void +_exit (status) + int status; +{ + asm (" mov.w #33,r3; trapa #15"); +} diff --git a/newlib/libc/sys/m88kbug/Makefile.am b/newlib/libc/sys/m88kbug/Makefile.am new file mode 100644 index 000000000..9e6c84db5 --- /dev/null +++ b/newlib/libc/sys/m88kbug/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/m88kbug/Makefile.in b/newlib/libc/sys/m88kbug/Makefile.in new file mode 100644 index 000000000..57227db85 --- /dev/null +++ b/newlib/libc/sys/m88kbug/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/m88kbug/aclocal.m4 b/newlib/libc/sys/m88kbug/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/m88kbug/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/m88kbug/configure b/newlib/libc/sys/m88kbug/configure new file mode 100755 index 000000000..f7efa59fe --- /dev/null +++ b/newlib/libc/sys/m88kbug/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=syscalls.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/m88kbug/configure.in b/newlib/libc/sys/m88kbug/configure.in new file mode 100644 index 000000000..33f201000 --- /dev/null +++ b/newlib/libc/sys/m88kbug/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/m88kbug configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(syscalls.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/m88kbug/crt0.c b/newlib/libc/sys/m88kbug/crt0.c new file mode 100644 index 000000000..d0d95e418 --- /dev/null +++ b/newlib/libc/sys/m88kbug/crt0.c @@ -0,0 +1,19 @@ +extern int main(int argc, char **argv); + +extern char edata; +extern char end; +extern char stack; + +_start() +{ + char *p; + + p = &edata + 1; + while (p < &end) + { + *p++ = 0; + } + + main(0, 0); + _exit(); +} diff --git a/newlib/libc/sys/m88kbug/sys/systraps.h b/newlib/libc/sys/m88kbug/sys/systraps.h new file mode 100644 index 000000000..f3ee1a3c2 --- /dev/null +++ b/newlib/libc/sys/m88kbug/sys/systraps.h @@ -0,0 +1,9 @@ +/* trap numbers for mvme187bug */ + +#define INCHR 0x0000 +#define OUTCHR 0x0020 +#define RETURN 0x0063 + +#define SYSTRAP(x) {asm("or r9,r0,%0" : : "i" (x) : "r9"); asm("tb0 0,r0,496");} + +/* end of systraps.h */ diff --git a/newlib/libc/sys/m88kbug/syscalls.c b/newlib/libc/sys/m88kbug/syscalls.c new file mode 100644 index 000000000..32f42a925 --- /dev/null +++ b/newlib/libc/sys/m88kbug/syscalls.c @@ -0,0 +1,131 @@ +/* Operating system and traps for mvme187bug, the motorolola BUG + monitor for m88k */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/times.h> +#include <errno.h> + +#include "sys/systraps.h" + +static void writechar(int c) { + register int n asm ("r2"); + n = c; + SYSTRAP(OUTCHR); + return; +} + +static int readchar(void) { + register int n asm ("r2"); + SYSTRAP(INCHR); + return(n); +} + +int read(int file, char *ptr, int len) { + int todo; + + for (todo = len; todo; --todo) { + *ptr++ = readchar(); + } + + return(len); +} + +int lseek(int file, int ptr, int dir) { + return 0; +} + +int write(int file, char *ptr, int len) { + int todo; + + for (todo = len; todo; --todo) { + writechar(*ptr++); + } + return(len); +} + +int close(int file) { + return(-1); +} + +caddr_t sbrk(int incr) { + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return((caddr_t) prev_heap_end); +} + +int isatty(int file) { + return(1); +} + +int fstat(int file, struct stat *st) { + st->st_mode = S_IFCHR; + return(0); +} + +int stat(char *filename, struct stat *st) { + st->st_mode = S_IFCHR; + return(0); +} + +int open(const char *path, int flags) { + return(0); +} + + +int _exit() { + SYSTRAP(RETURN); +} + +int execve(char *name, char **argv, char **env) { + errno = ENOMEM; + return(-1); +} + +int fork() { + errno = EAGAIN; + return(-1); +} + +int getpid() { + return(1); +} + +int kill(int pid, int sig) { + errno = EINVAL; + return(-1); +} + +int link(char *old, char *new) { + errno = EMLINK; + return(-1); +} + +clock_t times(struct tms *buf) { + return(-1); +} + +int unlink(char *name) { + errno = ENOENT; + return(-1); +} + +int wait(int *status) { + errno = ECHILD; + return(-1); +} + +/* end of syscalls.c */ diff --git a/newlib/libc/sys/netware/Makefile.am b/newlib/libc/sys/netware/Makefile.am new file mode 100644 index 000000000..e112bac10 --- /dev/null +++ b/newlib/libc/sys/netware/Makefile.am @@ -0,0 +1,16 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + getpid.c \ + link.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/netware/Makefile.in b/newlib/libc/sys/netware/Makefile.in new file mode 100644 index 000000000..3e240f455 --- /dev/null +++ b/newlib/libc/sys/netware/Makefile.in @@ -0,0 +1,301 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + getpid.c \ + link.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = getpid.o link.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/netware/aclocal.m4 b/newlib/libc/sys/netware/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/netware/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/netware/configure b/newlib/libc/sys/netware/configure new file mode 100755 index 000000000..c5dfd8932 --- /dev/null +++ b/newlib/libc/sys/netware/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=link.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/netware/configure.in b/newlib/libc/sys/netware/configure.in new file mode 100644 index 000000000..16f824c1f --- /dev/null +++ b/newlib/libc/sys/netware/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/netware configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(link.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/netware/crt0.c b/newlib/libc/sys/netware/crt0.c new file mode 100644 index 000000000..1d796d025 --- /dev/null +++ b/newlib/libc/sys/netware/crt0.c @@ -0,0 +1,4 @@ +/* I have a copy of something that would serve as a NetWare crt0.o, + but it is copyright by Novell. */ + +int _dummy_crt0 = 1; diff --git a/newlib/libc/sys/netware/getpid.c b/newlib/libc/sys/netware/getpid.c new file mode 100644 index 000000000..9218dfcc3 --- /dev/null +++ b/newlib/libc/sys/netware/getpid.c @@ -0,0 +1,11 @@ +/* NetWare version of getpid. This is supposed to return a unique + identifier which is used to create temporary file names. We use + the thread ID. I hope this is unique. */ + +#include <unistd.h> + +pid_t +getpid () +{ + return GetThreadID (); +} diff --git a/newlib/libc/sys/netware/link.c b/newlib/libc/sys/netware/link.c new file mode 100644 index 000000000..d816d0ac6 --- /dev/null +++ b/newlib/libc/sys/netware/link.c @@ -0,0 +1,17 @@ +/* NetWare version of link. This can not be implemented using an + MS-DOS file system. */ + +#include <unistd.h> +#include <errno.h> + +#undef errno +extern int errno; + +int +link (path1, path2) + const char *path1; + const char *path2; +{ + errno = ENOSYS; + return -1; +} diff --git a/newlib/libc/sys/rtems/Makefile.am b/newlib/libc/sys/rtems/Makefile.am new file mode 100644 index 000000000..24b82b83e --- /dev/null +++ b/newlib/libc/sys/rtems/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = dummysys.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/rtems/Makefile.in b/newlib/libc/sys/rtems/Makefile.in new file mode 100644 index 000000000..f3b663d6d --- /dev/null +++ b/newlib/libc/sys/rtems/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = dummysys.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = dummysys.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/rtems/aclocal.m4 b/newlib/libc/sys/rtems/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/rtems/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/rtems/configure b/newlib/libc/sys/rtems/configure new file mode 100755 index 000000000..3a2398504 --- /dev/null +++ b/newlib/libc/sys/rtems/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=dummysys.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/rtems/configure.in b/newlib/libc/sys/rtems/configure.in new file mode 100644 index 000000000..5d9abcf05 --- /dev/null +++ b/newlib/libc/sys/rtems/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/rtems configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(dummysys.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/rtems/crt0.c b/newlib/libc/sys/rtems/crt0.c new file mode 100644 index 000000000..5c5b0f661 --- /dev/null +++ b/newlib/libc/sys/rtems/crt0.c @@ -0,0 +1,48 @@ +void rtems_provides_crt0( void ) {} +/* + * RTEMS Fake crt0 + * + * Each RTEMS BSP provides its own crt0 and linker script. Unfortunately + * this means that crt0 and the linker script are not available as + * each tool is configured. Without a crt0 and linker script, some + * targets do not successfully link "conftest.c" during the configuration + * process. So this fake crt0.c provides all the symbols required to + * successfully link a program. The resulting program will not run + * but this is enough to satisfy the autoconf macro AC_PROG_CC. + */ + +/* RTEMS provides some of its own routines including a Malloc family */ + +void *malloc() { return 0; } +void *realloc() { return 0; } +void free() { ; } +void abort() { ; } +int raise() { return -1; } + +/* The PowerPC expects certain symbols to be defined in the linker script. */ + +#if defined(__PPC__) + int __SDATA_START__; int __SDATA2_START__; + int __GOT_START__; int __GOT_END__; + int __GOT2_START__; int __GOT2_END__; + int __SBSS_END__; int __SBSS2_END__; + int __FIXUP_START__; int __FIXUP_END__; + int __EXCEPT_START__; int __EXCEPT_END__; + int __init; int __fini; +#endif + +/* The hppa expects this to be defined in the real crt0.s. + * Also for some reason, the hppa1.1 does not find atexit() + * during the AC_PROG_CC tests. + */ + +#if defined(__hppa__) +/* + asm ( ".subspa \$GLOBAL\$,QUAD=1,ALIGN=8,ACCESS=0x1f,SORT=40"); + asm ( ".export \$global\$" ); + asm ( "\$global\$:"); +*/ + + int atexit(void (*function)(void)) { return 0; } +#endif + diff --git a/newlib/libc/sys/rtems/dummysys.c b/newlib/libc/sys/rtems/dummysys.c new file mode 100644 index 000000000..81091182e --- /dev/null +++ b/newlib/libc/sys/rtems/dummysys.c @@ -0,0 +1 @@ +void not_required_by_rtems( void ) {} diff --git a/newlib/libc/sys/rtems/include/limits.h b/newlib/libc/sys/rtems/include/limits.h new file mode 100644 index 000000000..e9f45e44c --- /dev/null +++ b/newlib/libc/sys/rtems/include/limits.h @@ -0,0 +1,178 @@ +/* + * This file lists the minimums for the limits set by each of + * the POSIX features subsets. + * + * XXX: Careful attention needs to be paid to section 2.8 in 1003.1b-1993 + * to segregrate the variables below based on their "class" according + * to our implementation. We also need to set the Run-Time Invariant + * and other related values. + * + * $Id$ + */ + +#ifndef _GCC_LIMITS_H_ /* if we have not seen gcc's limits.h yet */ +#include_next <limits.h> +#endif + +#ifndef __POSIX_LIMITS_h +#define __POSIX_LIMITS_h + +/**************************************************************************** + **************************************************************************** + * * + * P1003.1b-1993 defines the constants below this comment. * + * * + **************************************************************************** + ****************************************************************************/ + +#define _POSIX_AIO_LISTIO_MAX 2 +#define _POSIX_AIO_MAX 1 +#define _POSIX_ARG_MAX 4096 +#define _POSIX_CHILD_MAX 6 +#define _POSIX_DELAYTIMER_MAX 32 +#define _POSIX_LINK_MAX 8 +#define _POSIX_MAX_CANON 255 +#define _POSIX_MAX_INPUT 255 +#define _POSIX_MQ_OPEN_MAX 8 +#define _POSIX_MQ_PRIO_MAX 32 +#define _POSIX_NAME_MAX 255 +#define _POSIX_NGROUPS_MAX 0 +#define _POSIX_OPEN_MAX 16 +#define _POSIX_PATH_MAX 255 +#define _POSIX_PIPE_BUF 512 +#define _POSIX_RTSIG_MAX 8 +#define _POSIX_SEM_NSEMS_MAX 256 +#define _POSIX_SEM_VALUE_MAX 32767 +#define _POSIX_SIGQUEUE_MAX 32 +#define _POSIX_SSIZE_MAX 32767 +#define _POSIX_STREAM_MAX 8 +#define _POSIX_TIMER_MAX 32 +#define _POSIX_TZNAME_MAX 3 + +/* + * Definitions of the following may be omitted if the value is >= stated + * minimum but is indeterminate. + */ + +#define AIO_LISTIO_MAX 2 +#define AIO_MAX 1 +#define AIO_PRIO_DELTA_MAX 0 +#define ARG_MAX 4096 +#define CHILD_MAX 6 +#define DELAYTIMER_MAX 32 +#define MQ_OPEN_MAX 8 +#define MQ_PRIO_MAX 32 +#define OPEN_MAX 16 +#define PAGESIZE 1 +#define RTSIG_MAX 8 +#define SEM_NSEMS_MAX 256 +#define SEM_VALUE_MAX 32767 +#define SIGQUEUE_MAX 32 +#define STREAM_MAX 8 +#define TIMER_MAX 32 +#define TZNAME_MAX 3 + +/* + * Pathname Variables + */ + +#define LINK_MAX 8 +#define MAX_CANON 255 +#define MAX_INPUT 255 +#define NAME_MAX 255 +#define PATH_MAX 255 +#define PIPE_BUF 512 + +/* + * Invariant values + */ + +#define SSIZE_MAX 32767 + +/* + * Maximum Values + */ + +#define _POSIX_CLOCKRES_MIN 0 /* in nanoseconds */ + +/**************************************************************************** + **************************************************************************** + * * + * P1003.1c/D10 defines the constants below this comment. * + * + * XXX: doc seems to have printing problems in this table :( + * * + **************************************************************************** + ****************************************************************************/ + +#define _POSIX_LOGIN_NAME_MAX 9 +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +#define _POSIX_THREAD_KEYS_MAX 28 +#define _POSIX_THREAD_THREADS_MAX 64 +#define _POSIX_TTY_NAME_MAX 9 + +/* + * Definitions of the following may be omitted if the value is >= stated + * minimum but is indeterminate. + * + * NOTE: LOGIN_NAME_MAX is named LOGNAME_MAX under Solaris 2.x. Perhaps + * the draft specification will be changing. jrs 05/24/96 + */ + +#define LOGIN_NAME_MAX _POSIX_LOGIN_NAME_MAX +#define TTY_NAME_MAX _POSIX_TTY_NAME_MAX +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS + +/* + * RTEMS is smart enough to give us the minimum stack size if we ask + * for too little. Because the real RTEMS limit for this is cpu dependent + * AND rtems header files are not installed yet, we cannot use the cpu + * dependent constant CPU_STACK_MINIMUM_SIZE. Moreover, we do not want + * to duplicate that information here so we will just let RTEMS magically + * give us its minimum stack size. + * + * NOTE: The other alternative is to have this be a macro for a + * routine in RTEMS which returns the constant. + */ + +#define PTHREAD_STACK_MIN 0 + +/* + * The maximum number of keys (PTHREAD_KEYS_MAX) and threads + * (PTHREAD_THREADS_MAX) are configurable and may exceed the minimum. + * +#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX +#define PTHREAD_THREADS_MAX _POSIX_THREAD_THREADS_MAX +*/ + + +/**************************************************************************** + **************************************************************************** + * * + * P1003.4b/D8 defines the constants below this comment. * + * * + **************************************************************************** + ****************************************************************************/ + +#define _POSIX_INTERRUPT_OVERRUN_MAX 32 + +/* + * Definitions of the following may be omitted if the value is >= stated + * minimum but is indeterminate. + */ + +#define INTERRUPT_OVERRUN_MAX 32 + +/* + * Pathname Variables + */ + +#define MIN_ALLOC_SIZE +#define REC_MIN_XFER_SIZE +#define REC_MAX_XFER_SIZE +#define REC_INCR_XFER_SIZE +#define REC_XFER_ALIGN +#define MAX_ATOMIC_SIZE + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/rtems/include/signal.h b/newlib/libc/sys/rtems/include/signal.h new file mode 100644 index 000000000..bb61b0c17 --- /dev/null +++ b/newlib/libc/sys/rtems/include/signal.h @@ -0,0 +1,142 @@ +/* + * $Id$ + */ + +#ifndef __POSIX_SIGNALS_h +#define __POSIX_SIGNALS_h + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/features.h> +#include "_ansi.h" + +#include <sys/time.h> +#include <sys/siginfo.h> +#include <reent.h> /* only for reentrant signal() and raise() */ + +/* + * 7.7 Signal handling <signal.h>, ANSI C Standard. + */ + +typedef int sig_atomic_t; + +/* + * ANSI C Signal Handling Functions + */ + +typedef void (*_sig_func_ptr) (); + +_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr)); +int _EXFUN(_raise_r, (struct _reent *, int)); + +#ifndef _REENT_ONLY +_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr)); +int _EXFUN(raise, (int)); +#endif + +/* + * 3.3.2 Send a Signal to a Process, P1003.1b-1993, p. 68 + * + * NOTE: Behavior of kill() depends on _POSIX_SAVED_IDS. + */ + +int _EXFUN(kill, (pid_t pid, int sig)); + +/* + * 3.3.3 Manipulate Signal Sets, P1003.1b-1993, p. 69 + */ + +int _EXFUN(sigemptyset, (sigset_t *set)); +int _EXFUN(sigfillset, (sigset_t *set)); +int _EXFUN(sigaddset, (sigset_t *set, int signo)); +int _EXFUN(sigdelset, (sigset_t *set, int signo)); +int _EXFUN(sigismember, (const sigset_t *set, int signo)); + +/* + * 3.3.4 Examine and Change Signal Action, P1003.1b-1993, p. 70 + */ + +int _EXFUN(sigaction, + (int sig, const struct sigaction *act, struct sigaction *oact) +); + +/* + * 3.3.5 Examine and Change Blocked Signals, P1003.1b-1993, p. 73 + * + * NOTE: P1003.1c/D10, p. 37 adds pthread_sigmask(). + */ + +/* values for how */ + +#define SIG_BLOCK 1 /* resulting_set = (current_set | set) */ +#define SIG_UNBLOCK 2 /* resulting_set = (current_set & ~set) */ +#define SIG_SETMASK 3 /* resulting_set = set */ + +int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset)); + +#if defined(_POSIX_THREADS) +int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset)); +#endif + +/* + * 3.3.6 Examine Pending Signals, P1003.1b-1993, p. 75 + */ + +int _EXFUN(sigpending, (sigset_t *set)); + +/* + * 3.3.7 Wait for a Signal, P1003.1b-1993, p. 75 + */ + +int _EXFUN(sigsuspend, (const sigset_t *sigmask)); + +#if defined(_POSIX_REALTIME_SIGNALS) + +/* + * 3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 + * + * NOTE: P1003.1c/D10, p. 39 adds sigwait(). + */ + +int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info)); +int _EXFUN(sigtimedwait, + (const sigset_t *set, siginfo_t *info, const struct timespec *timeout) +); +int _EXFUN(sigwait, (const sigset_t *set, int *sig)); + +/* + * 3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 + */ + +int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value)); + +#endif + +/* + * 3.3.10 Send a Signal to a Thread, P1003.1c/D10, p. 43 + */ + +#if defined(_POSIX_THREADS) +int _EXFUN(pthread_kill, (pthread_t thread, int sig)); +#endif + +/* + * 3.4.1 Schedule Alarm, P1003.1b-1993, p. 79 + */ + +unsigned int _EXFUN(alarm, (unsigned int seconds)); + +/* + * 3.4.2 Suspend Process Execution, P1003.1b-1993, p. 80 + */ + +int _EXFUN(pause, (void)); + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/rtems/include/time.h b/newlib/libc/sys/rtems/include/time.h new file mode 100644 index 000000000..647adc6d5 --- /dev/null +++ b/newlib/libc/sys/rtems/include/time.h @@ -0,0 +1,218 @@ +/* + * $Id$ + */ + + +#ifndef __POSIX_TIME_h +#define __POSIX_TIME_h + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/features.h> +#include "_ansi.h" +#include <sys/types.h> +#include <sys/time.h> +#include <sys/siginfo.h> + +/* + * 4.8.1.5 Special Symbol {CLK_TCK}, P1003.1b-1993, p. 97 + */ + +#define CLK_TCK sysconf(_SC_CLK_TCK) + +/* + * Get size_t from the GNU C version of stddef.h + */ + +#define __need_size_t +#include <stddef.h> + +/* + * ANSI C Time Conversion Structure + * + * XXX reference + */ + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; +}; + +/* + * ANSI C Time Conversion Routines + * + * XXX reference + */ + +clock_t _EXFUN(clock, (void)); +double _EXFUN(difftime, (time_t _time2, time_t _time1)); +time_t _EXFUN(mktime, (struct tm *_timeptr)); +time_t _EXFUN(time, (time_t *_timer)); +size_t _EXFUN(strftime, + (char *_s, size_t _maxsize, const char *_fmt, const struct tm *_t)); + +#ifndef _REENT_ONLY +char *_EXFUN(asctime, (const struct tm *_tblock)); +char *_EXFUN(ctime, (const time_t *_time)); +struct tm *_EXFUN(gmtime, (const time_t *_timer)); +struct tm *_EXFUN(localtime,(const time_t *_timer)); +#endif + +/* + * Added by 8.3.5 - 8.3.8, P1002.1c/D10, p. 66-69. + */ + +char *_EXFUN(asctime_r, (const struct tm *, char *)); +char *_EXFUN(ctime_r, (const time_t *, char *)); +struct tm *_EXFUN(gmtime_r, (const time_t *, struct tm *)); +struct tm *_EXFUN(localtime_r, (const time_t *, struct tm *)); + +/* + * 4.5.1 Get System Time, P1003.1b-1993, p. 91 + */ + +time_t _EXFUN(time, (time_t *tloc)); + +#if defined(_POSIX_TIMERS) + +/* + * 14.2.1 Clocks, P1003.1b-1993, p. 263 + */ + +int _EXFUN(clock_settime, (clockid_t clock_id, const struct timespec *tp)); +int _EXFUN(clock_gettime, (clockid_t clock_id, struct timespec *tp)); +int _EXFUN(clock_getres, (clockid_t clock_id, struct timespec *res)); + +/* + * 14.2.2 Create a Per-Process Timer, P1003.1b-1993, p. 264 + */ + +int _EXFUN(timer_create, + (clockid_t clock_id, struct sigevent *evp, timer_t *timerid) +); + +/* + * 14.2.3 Delete a Per_process Timer, P1003.1b-1993, p. 266 + */ + +int _EXFUN(timer_delete, (timer_t timerid)); + +/* + * 14.2.4 Per-Process Timers, P1003.1b-1993, p. 267 + */ + +int _EXFUN(timer_settime, + (timer_t timerid, + int flags, + const struct itimerspec *value, + struct itimerspec *ovalue) +); + +int _EXFUN(timer_gettime, (timer_t timerid, struct itimerspec *value)); +int _EXFUN(timer_getoverrun, (timer_t timerid)); + +/* + * 14.2.5 High Resolution Sleep, P1003.1b-1993, p. 269 + */ + +int _EXFUN(nanosleep, (const struct timespec *rqtp, struct timespec *rmtp)); + +#endif /* _POSIX_TIMERS */ + +/* + * 20.1.1 CPU-time Clock Attributes, P1003.4b/D8, p. 54 + */ + +/* values for the clock enable attribute */ + +#define CLOCK_ENABLED 1 /* clock is enabled, i.e. counting execution time */ +#define CLOCK_DISABLED 0 /* clock is disabled */ + +/* values for the pthread cputime_clock_allowed attribute */ + +#define CLOCK_ALLOWED 1 /* If a thread is created with this value a */ + /* CPU-time clock attached to that thread */ + /* shall be accessible. */ +#define CLOCK_DISALLOWED 0 /* If a thread is created with this value, the */ + /* thread shall not have a CPU-time clock */ + /* accessible. */ + +/* + * 14.1.3 Manifest Constants, P1003.1b-1993, p. 262 + */ + +#define CLOCK_REALTIME (clockid_t)1 + +/* + * Flag indicating time is "absolute" with respect to the clock + * associated with a time + */ + +#define TIMER_ABSTIME 4 + +/* + * 20.1.2 Manifest Constants, P1003.4b/D8, p. 55 + */ + +#if defined(_POSIX_CPUTIME) + +/* + * When used in a clock or timer function call, this is interpreted as + * the identifier of the CPU_time clock associated with the PROCESS + * making the function call. + */ + +#define CLOCK_PROCESS_CPUTIME (clockid_t)2 + +#endif + +#if defined(_POSIX_THREAD_CPUTIME) + +/* + * When used in a clock or timer function call, this is interpreted as + * the identifier of the CPU_time clock associated with the THREAD + * making the function call. + */ + +#define CLOCK_THREAD_CPUTIME (clockid_t)3 + +#endif + +#if defined(_POSIX_CPUTIME) + +/* + * 20.1.3 Accessing a Process CPU-time CLock, P1003.4b/D8, p. 55 + */ + +int _EXFUN(clock_getcpuclockid, (pid_t pid, clockid_t *clock_id)); + +#endif /* _POSIX_CPUTIME */ + +#if defined(_POSIX_CPUTIME) || defined(_POSIX_THREAD_CPUTIME) + +/* + * 20.1.5 CPU-time Clock Attribute Access, P1003.4b/D8, p. 56 + */ + +int _EXFUN(clock_setenable_attr, (clockid_t clock_id, int attr)); + +int _EXFUN(clock_getenable_attr, (clockid_t clock_id, int *attr)); + +#endif /* _POSIX_CPUTIME or _POSIX_THREAD_CPUTIME */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/rtems/sys/dirent.h b/newlib/libc/sys/rtems/sys/dirent.h new file mode 100644 index 000000000..93808d312 --- /dev/null +++ b/newlib/libc/sys/rtems/sys/dirent.h @@ -0,0 +1,52 @@ +#ifndef _SYS_DIRENT_H +# define _SYS_DIRENT_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This file was written to be compatible with the BSD directory + * routines, so it looks like it. But it was written from scratch. + * Sean Eric Fagan, sef@Kithrup.COM + * + * Copied to RTEMS configuration without modification. + */ + +typedef struct _dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + char *dd_buf; + int dd_len; + long dd_seek; +} DIR; + +# define __dirfd(dp) ((dp)->dd_fd) + +DIR *opendir(const char *); +struct dirent *readdir(DIR *); +void rewinddir(DIR *); +int closedir(DIR *); +void seekdir(DIR *dir, long loc); +long telldir(DIR *dir); + +#include <sys/types.h> + +#include <limits.h> + +struct dirent { + long d_ino; + off_t d_off; + unsigned short d_reclen; + /* we need better syntax for variable-sized arrays */ + unsigned short d_namlen; + char d_name[NAME_MAX + 1]; +}; + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/newlib/libc/sys/rtems/sys/features.h b/newlib/libc/sys/rtems/sys/features.h new file mode 100644 index 000000000..8a6b8cb5a --- /dev/null +++ b/newlib/libc/sys/rtems/sys/features.h @@ -0,0 +1,111 @@ +/* + * This file lists the symbols which may be defined to indicate + * the presence of POSIX features subsets. If defined, the + * feature must be supported. + * + * NOTE: This file lists all feature constants. The ones not supported + * should be commented out. + * + * XXX: These are all "Compile-Time Symbolic Constants". Need to + * address "Execution-Time" ones. + * + * $Id$ + */ + +#ifndef __RTEMS_POSIX_FEATURES_h +#define __RTEMS_POSIX_FEATURES_h + +/* + * XXX: Temporary function so we can break when something that is + * not implemented is invoked. + */ + +int POSIX_MP_NOT_IMPLEMENTED( void ); +int POSIX_NOT_IMPLEMENTED( void ); +int POSIX_BOTTOM_REACHED( void ); + +/**************************************************************************** + **************************************************************************** + * * + * P1003.1b-1993 defines the constants below this comment. * + * * + **************************************************************************** + ****************************************************************************/ + +/* + * Newlib may already have this set defined. + */ + +#ifndef _POSIX_JOB_CONTROL +#define _POSIX_JOB_CONTROL +#endif + +#ifndef _POSIX_SAVED_IDS +#define _POSIX_SAVED_IDS +#endif + +#define _POSIX_ASYNCHRONOUS_IO +#define _POSIX_FSYNC +#define _POSIX_MAPPED_FILES +#define _POSIX_MEMLOCK +#define _POSIX_MEMLOCK_RANGE +#define _POSIX_MEMORY_PROTECTION +#define _POSIX_MESSAGE_PASSING +#define _POSIX_PRIORITIZED_IO +#define _POSIX_PRIORITY_SCHEDULING +#define _POSIX_REALTIME_SIGNALS +#define _POSIX_SEMAPHORES +#define _POSIX_SHARED_MEMORY_OBJECTS +#define _POSIX_SYNCHRONIZED_IO +#define _POSIX_TIMERS + +/* + * This indicates the version number of the POSIX standard we are + * trying to be compliant with. + * + * NOTE: Newlib may already have this set defined. + */ + +#ifdef _POSIX_VERSION +#undef _POSIX_VERSION +#define _POSIX_VERSION 199309L +#endif + +/**************************************************************************** + **************************************************************************** + * * + * P1003.1c/D10 defines the constants below this comment. * + * * + **************************************************************************** + ****************************************************************************/ + +#define _POSIX_THREADS +#define _POSIX_THREAD_ATTR_STACKADDR +#define _POSIX_THREAD_ATTR_STACKSIZE +#define _POSIX_THREAD_PRIORITY_SCHEDULING +#define _POSIX_THREAD_PRIO_INHERIT +#define _POSIX_THREAD_PRIO_PROTECT +#define _POSIX_THREAD_PROCESS_SHARED +#define _POSIX_THREAD_SAFE_FUNCTIONS + +/**************************************************************************** + **************************************************************************** + * * + * P1003.4b/D8 defines the constants below this comment. * + * * + **************************************************************************** + ****************************************************************************/ + +#define _POSIX_SPAWN +#define _POSIX_TIMEOUTS +#define _POSIX_CPUTIME +#define _POSIX_THREAD_CPUTIME +#define _POSIX_SPORADIC_SERVER +#define _POSIX_THREAD_SPORADIC_SERVER +#define _POSIX_DEVICE_CONTROL +#define _POSIX_DEVCTL_DIRECTION +#define _POSIX_INTERRUPT_CONTROL +#define _POSIX_ADVISORY_INFO + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/rtems/sys/sched.h b/newlib/libc/sys/rtems/sys/sched.h new file mode 100644 index 000000000..16cee13c7 --- /dev/null +++ b/newlib/libc/sys/rtems/sys/sched.h @@ -0,0 +1,56 @@ +/* + * $Id$ + */ + + +#ifndef __POSIX_SYS_SCHEDULING_h +#define __POSIX_SYS_SCHEDULING_h + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/features.h> + +#include <sys/types.h> +#include <sys/time.h> + +/* + * 13.2 Scheduling Policies, P1003.1b-1993, p. 250 + * + * NOTE: SCHED_SPORADIC added by P1003.4b/D8, p. 34. + */ + +#define SCHED_OTHER 0 +#define SCHED_FIFO 1 +#define SCHED_RR 2 + +#if defined(_POSIX_SPORADIC_SERVER) +#define SCHED_SPORADIC 3 +#endif + +/* + * 13.1 Scheduling Parameters, P1003.1b-1993, p. 249 + * + * NOTE: Fields whose name begins with "ss_" added by P1003.4b/D8, p. 33. + */ + +struct sched_param { + int sched_priority; /* Process execution scheduling priority */ + +#if defined(_POSIX_SPORADIC_SERVER) + int ss_low_priority; /* Low scheduling priority for sporadic */ + /* server */ + struct timespec ss_replenish_period; + /* Replenishment period for sporadic server */ + struct timespec ss_initial_budget; /* Initial budget for sporadic server */ +#endif +}; + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ + diff --git a/newlib/libc/sys/rtems/sys/siginfo.h b/newlib/libc/sys/rtems/sys/siginfo.h new file mode 100644 index 000000000..c1bcf61ae --- /dev/null +++ b/newlib/libc/sys/rtems/sys/siginfo.h @@ -0,0 +1,176 @@ +/* + * $Id$ + */ + +#ifndef __POSIX_SYS_SIGNAL_INFORMATION_h +#define __POSIX_SYS_SIGNAL_INFORMATION_h + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_POSIX_THREADS) +#include <sys/types.h> +#endif + +/* + * 3.3 Signal Concepts, P1003.1b-1993, p. 60 + */ + +typedef __uint32_t sigset_t; + +#define SIG_DFL ((void (*)())0) /* Request for default signal handling */ +#define SIG_IGN ((void (*)())1) /* Request that signal be ignored */ + +#define SIG_ERR ((void (*)())-1) /* Returned by signal() on error */ + +/* + * Required Signals. + * + * The default action is in parentheses and is one of the + * following actions: + * + * (1) abnormal termination of process + * (2) ignore the signal + * (3) stop the process + * (4) continue the process if it is currently stopped, otherwise + * ignore the signal + */ + +#define SIGHUP 1 /* (1) hangup detected on controlling terminal */ +#define SIGINT 2 /* (1) interactive attention signal */ +#define SIGQUIT 3 /* (1) interactive termination signal */ +#define SIGILL 4 /* (1) illegal instruction */ +#define SIGTRAP 5 /* (1) trace trap (not reset) */ +#define SIGIOT 6 /* (1) IOT instruction */ +#define SIGABRT 6 /* (1) abnormal terminal signal */ +#define SIGEMT 7 /* (1) EMT instruction */ +#define SIGFPE 8 /* (1) erroneous arithmetic operation */ +#define SIGKILL 9 /* (1) termination signal */ +#define SIGBUS 10 /* (1) bus error */ +#define SIGSEGV 11 /* (1) invalid memory reference */ +#define SIGSYS 12 /* (1) bad argument to system call */ +#define SIGPIPE 13 /* (1) write on pipe with no readers */ +#define SIGALRM 14 /* (1) timeout signal, such as initiated by alarm() */ +#define SIGTERM 15 /* (1) termination signal */ +#define SIGUSR1 16 /* (1) reserved as application defined signal 1 */ +#define SIGUSR2 17 /* (1) reserved as application defined signal 2 */ + +#define __SIGFIRSTNOTRT SIGHUP +#define __SIGLASTNOTRT SIGUSR2 + +/* + * RTEMS does not support job control, hence no Job Control Signals are + * defined per P1003.1b-1993, p. 60-61. + */ + +/* + * RTEMS does not support memory protection, hence no Memory Protection + * Signals are defined per P1003.1b-1993, p. 60-61. + */ + +/* + * Real-Time Signals Range, P1003.1b-1993, p. 61 + * + * NOTE: This should be at least RTSIG_MAX (which is a minimum of 8) signals. + */ + +#define SIGRTMIN 18 +#define SIGRTMAX 32 + +/* sigev_notify values + * + * NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD. + */ + +#define SIGEV_NONE 1 /* No asynchronous notification shall be delivered */ + /* when the event of interest occurs. */ +#define SIGEV_SIGNAL 2 /* A queued signal, with an application defined */ + /* value, shall be delivered when the event of */ + /* interest occurs. */ +#define SIGEV_THREAD 3 /* A notification function shall be called to */ + /* perform notification. */ +/* + * 3.3.1.2 Signal Generation and Delivery, P1003.1b-1993, p. 63 + * + * NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and + * sigev_notify_attributes to the sigevent structure. + */ + +union sigval { + int sival_int; /* Integer signal value */ + void *sival_ptr; /* Pointer signal value */ +}; + +struct sigevent { + int sigev_notify; /* Notification type */ + int sigev_signo; /* Signal number */ + union sigval sigev_value; /* Signal value */ + +#if defined(_POSIX_THREADS) + void (*sigev_notify_function)( union sigval ); + /* Notification function */ + pthread_attr_t *sigev_notify_attributes; /* Notification Attributes */ +#endif +}; + +/* + * 3.3.1.3 Signal Actions, P1003.1b-1993, p. 64 + */ + +/* si_code values, p. 66 */ + +#define SI_USER 1 /* Sent by a user. kill(), abort(), etc */ +#define SI_QUEUE 2 /* Sent by sigqueue() */ +#define SI_TIMER 3 /* Sent by expiration of a timer_settime() timer */ +#define SI_ASYNCIO 4 /* Indicates completion of asycnhronous IO */ +#define SI_MESGQ 5 /* Indicates arrival of a message at an empty queue */ + +typedef struct { + int si_signo; /* Signal number */ + int si_code; /* Cause of the signal */ + union sigval si_value; /* Signal value */ +} siginfo_t; + +/* + * 3.3.4 Examine and Change Signal Action, P1003.1b-1993, p. 70 + */ + +/* sa_flags values */ + +#define SA_NOCLDSTOP 1 /* Do not generate SIGCHLD when children stop */ +#define SA_SIGINFO 2 /* Invoke the signal catching function with */ + /* three arguments instead of one. */ + +/* + * Data Structure Notes: + * + * (1) Routines stored in sa_handler should take a single int as + * there argument although the POSIX standard does not require this. + * (2) The fields sa_handler and sa_sigaction may overlap, and a conforming + * application should not use both simultaneously. + * + * NOTE: In this implementation, macros are provided to access into the + * union. + */ + +struct sigaction { + int sa_flags; /* Special flags to affect behavior of signal */ + sigset_t sa_mask; /* Additional set of signals to be blocked */ + /* during execution of signal-catching */ + /* function. */ + union { + void (*_handler)(); /* SIG_DFL, SIG_IGN, or pointer to a function */ + void (*_sigaction)( int, siginfo_t *, void * ); + } _signal_handlers; +}; + +#define sa_handler _signal_handlers._handler +#define sa_sigaction _signal_handlers._sigaction + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/rtems/sys/signal.h b/newlib/libc/sys/rtems/sys/signal.h new file mode 100644 index 000000000..0aefbae6a --- /dev/null +++ b/newlib/libc/sys/rtems/sys/signal.h @@ -0,0 +1,6 @@ +/* + * Is <sys/signal.h> really necessary for RTEMS? + * + * For sure we want to keep newlib's default version out of the install + * so this empty file helps out in that regards. + */ diff --git a/newlib/libc/sys/rtems/sys/time.h b/newlib/libc/sys/rtems/sys/time.h new file mode 100644 index 000000000..596ec5730 --- /dev/null +++ b/newlib/libc/sys/rtems/sys/time.h @@ -0,0 +1,73 @@ +/* + * $Id$ + */ + +#include <sys/types.h> + +#ifndef __POSIX_SYS_TIME_h +#define __POSIX_SYS_TIME_h + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Get the CPU dependent types for clock_t and time_t + * + * NOTE: These must be visible by including <time.h>. + */ + +/* Get _CLOCK_T_ and _TIME_T_. */ +#include <machine/types.h> + +#ifndef __clock_t_defined +typedef _CLOCK_T_ clock_t; +#define __clock_t_defined +#endif + +#ifndef __time_t_defined +typedef _TIME_T_ time_t; +#define __time_t_defined +#endif + +/* + * 14.1.1 Time Value Specification Structures, P1003.1b-1993, p. 261 + */ + +struct timespec { + time_t tv_sec; /* Seconds */ + long tv_nsec; /* Nanoseconds */ +}; + +struct itimerspec { + struct timespec it_interval; /* Timer period */ + struct timespec it_value; /* Timer expiration */ +}; + +/* XXX should really be ifdef'ed */ + +/* + * BSD based stuff + */ + +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; + +struct timeval { + int tv_sec; + int tv_usec; +}; + +int gettimeofday( + struct timeval *tp, + struct timezone *tzp +); + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include */ diff --git a/newlib/libc/sys/rtems/sys/times.h b/newlib/libc/sys/rtems/sys/times.h new file mode 100644 index 000000000..3b8599d30 --- /dev/null +++ b/newlib/libc/sys/rtems/sys/times.h @@ -0,0 +1,31 @@ +/* + * $Id$ + */ + +#ifndef __POSIX_SYS_TIMES_h +#define __POSIX_SYS_TIMES_h + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/types.h> + +/* + * 4.5.2 Get Process Times, P1003.1b-1993, p. 92 + */ + +struct tms { + clock_t tms_utime; /* User CPU time */ + clock_t tms_stime; /* System CPU time */ + clock_t tms_cutime; /* User CPU time of terminated child processes */ + clock_t tms_cstime; /* System CPU time of terminated child processes */ +}; + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ + diff --git a/newlib/libc/sys/rtems/sys/types.h b/newlib/libc/sys/rtems/sys/types.h new file mode 100644 index 000000000..974655027 --- /dev/null +++ b/newlib/libc/sys/rtems/sys/types.h @@ -0,0 +1,346 @@ +/* + * XXX address -D__CPU__ versus -DCPU + * + * $Id$ + */ + +#ifndef __POSIX_SYS_TYPES_h +#define __POSIX_SYS_TYPES_h + +#ifdef __cplusplus +extern "C" { +#endif + +#include <sys/features.h> +#include <_ansi.h> +#include <stddef.h> +#include <machine/types.h> + +/* + * Define __go32_types if we are in go32 configuration. It will be undefined + * at the end of this file. + */ + +#ifdef __i386__ +#if !defined (__unix__) || defined (_WIN32) +#define __go32_types__ +#endif +#endif + +#ifndef _POSIX_SOURCE +#define physadr physadr_t +#define quad quad_t + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; +typedef unsigned short ushort; /* System V compatibility */ +typedef unsigned int uint; /* System V compatibility */ +# endif /*!_POSIX_SOURCE */ + +typedef long daddr_t; +typedef char * caddr_t; + +/* + * 2.5: Primitive System Data Types, P1003.1b-1993, p. 32. + */ + +#ifdef __go32_types__ +typedef unsigned long ino_t; +#else +#ifdef __sparc__ +typedef unsigned long ino_t; +#else +typedef unsigned short ino_t; +#endif +#endif + +typedef unsigned long long dev_t;/* device numbers 32-bit major and minor */ +typedef long off_t; /* file sizes */ + +typedef unsigned short uid_t; /* user IDs */ +typedef unsigned short gid_t; /* group IDs */ + +typedef int pid_t; /* process and process group IDs */ +typedef long key_t; + +#ifdef __go32_types__ +typedef char *addr_t; +typedef int mode_t; +#else +#if defined (__sparc__) && !defined (__sparc_v9__) +#ifdef __svr4__ +typedef unsigned long mode_t; /* some file attributes */ +#else +typedef unsigned short mode_t; /* some file attributes */ +#endif +#else +typedef unsigned mode_t; /* some file attributes */ +#endif +#endif /* ! __go32_types__ */ + +typedef unsigned int nlink_t; /* link counts */ + +#ifndef __SIZE_T +#define __SIZE_T +typedef int size_t; /* see C Standard XXX */ +#endif + +typedef int ssize_t; /* count of bytes (memory space) or error */ + +/* + * This is just copied from the standard newlib <sys/types.h> + */ + +# ifndef _POSIX_SOURCE + +# define NBBY 8 /* number of bits in a byte */ +/* + * Select uses bit masks of file descriptors in longs. + * These macros manipulate such bit fields (the filesystem macros use chars). + * FD_SETSIZE may be defined by the user, but the default here + * should be >= NOFILE (param.h). + */ +# ifndef FD_SETSIZE +# define FD_SETSIZE 60 +# endif + +typedef long fd_mask; +#define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */ +#ifndef howmany +#define howmany(x,y) (((x)+((y)-1))/(y)) +#endif + +typedef struct fd_set { + fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; +} fd_set; + + +#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS))) +#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS))) +#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS))) +#define FD_ZERO(p) bzero((caddr_t)(p), sizeof (*(p))) + + +# endif /* _POSIX_SOURCE */ + +/* + * 4.1.1 Get Process and Parent Process IDs, P1003.1b-1993, p. 83 + */ + +pid_t _EXFUN(getpid, (void) ); +pid_t _EXFUN(getppid, (void) ); + +/* + * 4.2.1 Get Real User, Effective User, Real Group, and Effective Group IDs, + * P1003.1b-1993, p. 84 + */ + +#ifndef __go32_types__ +uid_t _EXFUN(getuid, (void)); +uid_t _EXFUN(geteuid, (void)); +gid_t _EXFUN(getgid, (void)); +gid_t _EXFUN(getegid, (void)); +#endif + +/* + * 4.2.2 Set User and Group IDs, P1003.1b-1993, p. 84 + */ + +int _EXFUN(setuid, (uid_t uid)); +int _EXFUN(setgid, (gid_t gid)); + +/* + * 4.2.3 Get Supplementary IDs, P1003.1b-1993, p. 86 + */ + +int _EXFUN(getgroups, (int gidsetsize, gid_t grouplist[]) ); + +/* + * 4.2.4 Get User Name, P1003.1b-1993, p. 87 + * + * NOTE: P1003.1c/D10, p. 49 adds getlogin_r(). + */ + +char * _EXFUN(getlogin, (void) ); + +#if defined(_POSIX_THREAD_SAFE_FUNCTIONS) +int _EXFUN(getlogin_r, (char *name, size_t namesize) ); +#endif + +/* + * 4.3.1 Get Process Group IDs, P1003.1b-1993, p. 89 + */ + +pid_t _EXFUN(getpgrp, (void) ); + +/* + * 4.3.2 Create Session and Set Process Group ID, P1003.1b-1993, p. 88 + */ + +pid_t _EXFUN(setsid, (void) ); + +/* + * 4.3.3 Set Process Group ID for Job Control, P1003.1b-1993, p. 89 + */ + +int _EXFUN(setpgid, (pid_t pid, pid_t pgid) ); + +/* + * 14.1.3 Clock Type Definition, P1003.1b-1993, p. 262 + * + * Set the CPU dependent types for clockid_t and timer_t based on the + * unsigned 32 bit integer type defined in <sys/config.h> + */ + +/* Set _CLOCK_T_ and _TIME_T_. */ +#define _CLOCKID_T_ __uint32_t +#define _TIMER_T_ __uint32_t + +#ifndef __clockid_t_defined +typedef _CLOCKID_T_ clockid_t; +#define __clockid_t_defined +#endif + +#ifndef __timer_t_defined +typedef _TIMER_T_ timer_t; +#define __timer_t_defined +#endif + +/* + * Get rid of this variable + */ + +#undef __go32_types__ + + +#if defined(_POSIX_THREADS) + +#include <sys/sched.h> + +/* + * 2.5 Primitive System Data Types, P1003.1c/D10, p. 19. + */ + +typedef __uint32_t pthread_t; /* identify a thread */ + +/* + * XXX + * + * NOTE: P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute. + */ + +/* P1003.1c/D10, p. 118-119 */ +#define PTHREAD_SCOPE_PROCESS 0 +#define PTHREAD_SCOPE_SYSTEM 1 + +/* P1003.1c/D10, p. 111 */ +#define PTHREAD_INHERIT_SCHED 1 /* scheduling policy and associated */ + /* attributes are inherited from */ + /* the calling thread. */ +#define PTHREAD_EXPLICIT_SCHED 2 /* set from provided attribute object */ + +/* P1003.1c/D10, p. 141 */ +#define PTHREAD_CREATE_DETACHED 0 +#define PTHREAD_CREATE_JOINABLE 1 + +typedef struct { + int is_initialized; + void *stackaddr; + int stacksize; + int contentionscope; + int inheritsched; + int schedpolicy; + struct sched_param schedparam; + +#if defined(_POSIX_THREAD_CPUTIME) + int cputime_clock_allowed; /* see time.h */ +#endif + int detachstate; + +} pthread_attr_t; + +/* + * XXX + */ + +#if defined(_POSIX_THREAD_PROCESS_SHARED) +/* + * NOTE: P1003.1c/D10, p. 81 defines following values for process_shared. + */ + +#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */ +#define PTHREAD_PROCESS_SHARED 1 /* visible too all processes with access to */ + /* the memory where the resource is */ + /* located */ +#endif + +/* + * 13.6.1 Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 + */ + +#if defined(_POSIX_THREAD_PRIO_PROTECT) +/* + * Values for protocol. + */ + +#define PTHREAD_PRIO_NONE 0 +#define PTHREAD_PRIO_INHERIT 1 +#define PTHREAD_PRIO_PROTECT 2 +#endif + +/* + * XXX + */ + +typedef __uint32_t pthread_mutex_t; /* identify a mutex */ + +typedef struct { + int is_initialized; +#if defined(_POSIX_THREAD_PROCESS_SHARED) + int process_shared; /* allow mutex to be shared amongst processes */ +#endif +#if defined(_POSIX_THREAD_PRIO_PROTECT) + int prio_ceiling; + int protocol; +#endif + int recursive; +} pthread_mutexattr_t; + +/* + * XXX + */ + +typedef __uint32_t pthread_cond_t; /* identify a condition variable */ + +typedef struct { + int is_initialized; +#if defined(_POSIX_THREAD_PROCESS_SHARED) + int process_shared; /* allow this to be shared amongst processes */ +#endif +} pthread_condattr_t; /* a condition attribute object */ + +/* + * XXX + */ + +typedef __uint32_t pthread_key_t; /* thread-specific data keys */ + +/* + * XXX + */ + +typedef struct { + int is_initialized; /* is this structure initialized? */ + int init_executed; /* has the initialization routine been run? */ +} pthread_once_t; /* dynamic package initialization */ + +#endif /* defined(_POSIX_THREADS) */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/newlib/libc/sys/sh/Makefile.am b/newlib/libc/sys/sh/Makefile.am new file mode 100644 index 000000000..da89f1198 --- /dev/null +++ b/newlib/libc/sys/sh/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.S creat.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sh/Makefile.in b/newlib/libc/sys/sh/Makefile.in new file mode 100644 index 000000000..d6fc79a93 --- /dev/null +++ b/newlib/libc/sys/sh/Makefile.in @@ -0,0 +1,320 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.S creat.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o trap.o creat.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in \ + ../../../acinclude.m4 ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sh/aclocal.m4 b/newlib/libc/sys/sh/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sh/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sh/configure b/newlib/libc/sys/sh/configure new file mode 100755 index 000000000..d861d17e1 --- /dev/null +++ b/newlib/libc/sys/sh/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=creat.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sh/configure.in b/newlib/libc/sys/sh/configure.in new file mode 100644 index 000000000..84e836394 --- /dev/null +++ b/newlib/libc/sys/sh/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sh configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(creat.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sh/creat.c b/newlib/libc/sys/sh/creat.c new file mode 100644 index 000000000..62ec5ead8 --- /dev/null +++ b/newlib/libc/sys/sh/creat.c @@ -0,0 +1,7 @@ +int +creat(path, mode) + const char *path; + int mode; +{ + return _creat (path, mode); +} diff --git a/newlib/libc/sys/sh/crt0.S b/newlib/libc/sys/sh/crt0.S new file mode 100644 index 000000000..5ad67806a --- /dev/null +++ b/newlib/libc/sys/sh/crt0.S @@ -0,0 +1,55 @@ + .section .text + .global start +start: + mov.l stack_k,r15 + + ! zero out bss + mov.l edata_k,r0 + mov.l end_k,r1 + mov #0,r2 +start_l: + mov.l r2,@r0 + add #4,r0 + cmp/ge r0,r1 + bt start_l + +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY) + mov.l set_fpscr_k, r1 + jsr @r1 + mov #0,r4 + lds r3,fpscr +#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) */ + + ! call the mainline + mov.l main_k,r0 + jsr @r0 + or r0,r0 + + ! call exit + mov r0,r4 + mov.l exit_k,r0 + jsr @r0 + or r0,r0 + + .align 2 +#if defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(__SH4_SINGLE_ONLY__) +set_fpscr_k: + .long ___set_fpscr +#endif /* defined (__SH3E__) || defined(__SH4_SINGLE__) || defined(__SH4__) || defined(SH4_SINGLE_ONLY) */ +stack_k: + .long _stack +edata_k: + .long _edata +end_k: + .long _end +main_k: + .long _main +exit_k: + .long _exit + +#ifdef __ELF__ + .section .stack,"aw" +#else + .section .stack +#endif +_stack: .long 0xdeaddead diff --git a/newlib/libc/sys/sh/sys/syscall.h b/newlib/libc/sys/sh/sys/syscall.h new file mode 100644 index 000000000..f141df764 --- /dev/null +++ b/newlib/libc/sys/sh/sys/syscall.h @@ -0,0 +1,31 @@ +#define SYS_exit 1 +#define SYS_fork 2 + +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 +#define SYS_stat 38 + +#define SYS_pipe 42 +#define SYS_execve 59 + +#define SYS_utime 201 /* not really a system call */ +#define SYS_wait 202 /* nor is this */ diff --git a/newlib/libc/sys/sh/syscalls.c b/newlib/libc/sys/sh/syscalls.c new file mode 100644 index 000000000..8d04a9ee5 --- /dev/null +++ b/newlib/libc/sys/sh/syscalls.c @@ -0,0 +1,170 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +int errno; + +/* This is used by _sbrk. */ +register char *stack_ptr asm ("r15"); + +int +_read (int file, + char *ptr, + int len) +{ + return __trap34 (SYS_read, file, ptr, len); +} + +int +_lseek (int file, + int ptr, + int dir) +{ + return __trap34 (SYS_lseek, file, ptr, dir); +} + +int +_write ( int file, + char *ptr, + int len) +{ + return __trap34 (SYS_write, file, ptr, len); +} + +int +_close (int file) +{ + return __trap34 (SYS_close, file, 0, 0); +} + +caddr_t +_sbrk (int incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return (caddr_t) prev_heap_end; +} + +int +_fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + +int +_open (const char *path, + int flags) +{ + return __trap34 (SYS_open, path, flags, 0); +} + +int +_creat (const char *path, + int mode) +{ + return __trap34 (SYS_creat, path, mode, 0); +} + +int +_unlink () +{ + return -1; +} + +isatty (fd) + int fd; +{ + return 1; +} + +_exit (n) +{ + return __trap34 (SYS_exit, n, 0, 0); +} + +_kill (n, m) +{ + return __trap34 (SYS_exit, 0xdead, 0, 0); +} + +_getpid (n) +{ + return 1; +} + +_raise () +{ +} + +int +_stat (const char *path, struct stat *st) + +{ + return __trap34 (SYS_stat, path, st, 0); +} + +int +_chmod (const char *path, short mode) +{ + return __trap34 (SYS_chmod, path, mode); +} + +int +_chown (const char *path, short owner, short group) +{ + return __trap34 (SYS_chown, path, owner, group); +} + +int +_utime (path, times) + const char *path; + char *times; +{ + return __trap34 (SYS_utime, path, times); +} + +int +_fork () +{ + return __trap34 (SYS_fork); +} + +int +_wait (statusp) + int *statusp; +{ + return __trap34 (SYS_wait); +} + +int +_execve (const char *path, char *const argv[], char *const envp[]) +{ + return __trap34 (SYS_execve, path, argv, envp); +} + +int +_execv (const char *path, char *const argv[]) +{ + return __trap34 (SYS_execv, path, argv); +} + +int +_pipe (int *fd) +{ + return __trap34 (SYS_pipe, fd); +} diff --git a/newlib/libc/sys/sh/trap.S b/newlib/libc/sys/sh/trap.S new file mode 100644 index 000000000..4512293e3 --- /dev/null +++ b/newlib/libc/sys/sh/trap.S @@ -0,0 +1,15 @@ + .text + .global ___trap34 +___trap34: + trapa #34 + tst r1,r1 ! r1 is errno + bt ret + mov.l perrno,r2 + mov.l r1,@r2 +ret: + rts + nop + + .align 2 +perrno: + .long _errno diff --git a/newlib/libc/sys/sparc64/Makefile.am b/newlib/libc/sys/sparc64/Makefile.am new file mode 100644 index 000000000..83f0d31b3 --- /dev/null +++ b/newlib/libc/sys/sparc64/Makefile.am @@ -0,0 +1,119 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +# _r.o is for the reentrant syscall stubs. + +SUFFIXES = _r.o + +.S_r.o: + $(COMPILE) -DREENT -c $< -o $@ + +.c_r.o: + $(COMPILE) -DREENT -c $< -o $@ + +# We no longer copy files out of /lib/libc.a. This is kept around until +# most of them have replacements. +# +#COPYOFILES = \ +# Ovfork.o _sigvec.o abort.o access.o chown.o creat.o \ +# errlst.o getdents.o getdtablesize.o getpid.o \ +# getrusage.o gettimeofday.o ieee_globals.o ioctl.o isatty.o \ +# kill.o popen.o sbrk.o sigblock.o sigpause.o sigsetmask.o \ +# sigtramp.o sigvec.o sleep.o setitimer.o start_float.o \ +# time.o times.o utime.o utimes.o wait3.o +COPYOFILES = + +# These files are from Sun's libc.a but must be renamed because they +# conflict with other library .o's. They are renamed to xxxS.o. +# div.o is used by times.o. errno.o conflicts with libc/errno/errno.o. +#COPYRENAMEOFILES = divS.o errnoS.o +COPYRENAMEOFILES = + +#COPYOMFILES = ieee_flags.o +COPYOMFILES = + +# CFILES_R, SFILES_R, and TEMPLATE_SFILES_R define those system calls that are +# needed by the ANSI C part of newlib (and thus we must provide namespace +# clean versions of them because we define REENTRANT_SYSCALLS_PROVIDED). + +CFILES = _main.c ieee.c \ + closedir.c opendir.c readdir.c rewinddir.c scandir.c seekdir.c \ + telldir.c \ + creat.c isatty.c utime2.c + +CFILES_R = + +SFILES = cerror.S crt0.S dup2.S execve.S _exit.S sigsetjmp.S utime.S + +SFILES_R = sbrk.S wait.S + +# List of files built from template.S (with an '_' suffix). + +TEMPLATE_SFILES = access_ chdir_ chmod_ chown_ dup_ fcntl_ \ + lstat_ mkdir_ pipe_ rmdir_ times_ umask_ utimes_ + +TEMPLATE_SFILES_R = close_ fork_ fstat_ getpid_ gettimeofday_ kill_ \ + link_ lseek_ open_ read_ stat_ times_ unlink_ wait4_ write_ + +OFILES = $(COPYOFILES) $(COPYRENAMEOFILES) $(COPYOMFILES) \ + $(SFILES:.S=.o) $(SFILES_R:.S=.o) $(SFILES_R:.S=_r.o) \ + $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) $(TEMPLATE_SFILES_R:_=_r.o) \ + $(CFILES:.c=.o) $(CFILES_R:.c=.o) $(CFILES_R:.c=_r.o) + +lib_a_SOURCES = $(SFILES) $(SFILES_R) $(CFILES) $(CFILES_R) +lib_a_LIBADD = $(COPYOFILES) $(COPYRENAMEOFILES) $(COPYOMFILES) \ + $(SFILES_R:.S=_r.o) \ + $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) \ + $(TEMPLATE_SFILES_R:_=_r.o) \ + $(CFILES_R:.c=_r.o) + +$(COPYOFILES): + $(AR) x /lib/libc.a $(COPYOFILES) + +$(COPYRENAMEOFILES): + $(AR) x /lib/libc.a $(COPYRENAMEOFILES:S.o=.o) + for f in $(COPYRENAMEOFILES); do mv `basename $$f S.o`.o $$f; done + +$(COPYOMFILES): + $(AR) x /lib/libm.a $(COPYOMFILES) + +stamp-srcs: Makefile template.S template_r.S + for f in $(TEMPLATE_SFILES:_=); do \ + $(COMPILE) -E -Dfunc=$$f $(srcdir)/template.S >$$f.S; \ + done + for f in $(TEMPLATE_SFILES_R:_=); do \ + $(COMPILE) -E -Dfunc=$$f $(srcdir)/template_r.S | sed -e 's/^_/#/' >$$f.S; \ + done + touch stamp-srcs + +# Make a dependency for each file built from a template. + +$(TEMPLATE_SFILES:_=.S) $(TEMPLATE_SFILES_R:_=.S): stamp-srcs + +all: crt0.o + +close_r.o: close.S +fork_r.o: fork.S +fstat_r.o: fstat.S +getpid_r.o: getpid.S +gettimeofday_r.o: gettimeofday.S +kill_r.o: kill.S +link_r.o: link.S +lseek_r.o: lseek.S +open_r.o: open.S +read_r.o: read.S +sbrk_r.o: sbrk.S +stat_r.o: stat.S +times_r.o: times.S +unlink_r.o: unlink.S +wait_r.o: wait.S +wait4_r.o: wait4.S +write_r.o: write.S + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sparc64/Makefile.in b/newlib/libc/sys/sparc64/Makefile.in new file mode 100644 index 000000000..3768341c2 --- /dev/null +++ b/newlib/libc/sys/sparc64/Makefile.in @@ -0,0 +1,412 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +# _r.o is for the reentrant syscall stubs. + +SUFFIXES = _r.o + +# We no longer copy files out of /lib/libc.a. This is kept around until +# most of them have replacements. +# +#COPYOFILES = \ +# Ovfork.o _sigvec.o abort.o access.o chown.o creat.o \ +# errlst.o getdents.o getdtablesize.o getpid.o \ +# getrusage.o gettimeofday.o ieee_globals.o ioctl.o isatty.o \ +# kill.o popen.o sbrk.o sigblock.o sigpause.o sigsetmask.o \ +# sigtramp.o sigvec.o sleep.o setitimer.o start_float.o \ +# time.o times.o utime.o utimes.o wait3.o +COPYOFILES = + +# These files are from Sun's libc.a but must be renamed because they +# conflict with other library .o's. They are renamed to xxxS.o. +# div.o is used by times.o. errno.o conflicts with libc/errno/errno.o. +#COPYRENAMEOFILES = divS.o errnoS.o +COPYRENAMEOFILES = + +#COPYOMFILES = ieee_flags.o +COPYOMFILES = + +# CFILES_R, SFILES_R, and TEMPLATE_SFILES_R define those system calls that are +# needed by the ANSI C part of newlib (and thus we must provide namespace +# clean versions of them because we define REENTRANT_SYSCALLS_PROVIDED). + +CFILES = _main.c ieee.c \ + closedir.c opendir.c readdir.c rewinddir.c scandir.c seekdir.c \ + telldir.c \ + creat.c isatty.c utime2.c + +CFILES_R = + +SFILES = cerror.S crt0.S dup2.S execve.S _exit.S sigsetjmp.S utime.S + +SFILES_R = sbrk.S wait.S + +# List of files built from template.S (with an '_' suffix). + +TEMPLATE_SFILES = access_ chdir_ chmod_ chown_ dup_ fcntl_ \ + lstat_ mkdir_ pipe_ rmdir_ times_ umask_ utimes_ + +TEMPLATE_SFILES_R = close_ fork_ fstat_ getpid_ gettimeofday_ kill_ \ + link_ lseek_ open_ read_ stat_ times_ unlink_ wait4_ write_ + +OFILES = $(COPYOFILES) $(COPYRENAMEOFILES) $(COPYOMFILES) \ + $(SFILES:.S=.o) $(SFILES_R:.S=.o) $(SFILES_R:.S=_r.o) \ + $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) $(TEMPLATE_SFILES_R:_=_r.o) \ + $(CFILES:.c=.o) $(CFILES_R:.c=.o) $(CFILES_R:.c=_r.o) + +lib_a_SOURCES = $(SFILES) $(SFILES_R) $(CFILES) $(CFILES_R) +lib_a_LIBADD = $(COPYOFILES) $(COPYRENAMEOFILES) $(COPYOMFILES) \ + $(SFILES_R:.S=_r.o) \ + $(TEMPLATE_SFILES:_=.o) $(TEMPLATE_SFILES_R:_=.o) \ + $(TEMPLATE_SFILES_R:_=_r.o) \ + $(CFILES_R:.c=_r.o) + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_DEPENDENCIES = sbrk_r.o wait_r.o access.o chdir.o chmod.o chown.o \ +dup.o fcntl.o lstat.o mkdir.o pipe.o rmdir.o times.o umask.o utimes.o \ +close.o fork.o fstat.o getpid.o gettimeofday.o kill.o link.o lseek.o \ +open.o read.o stat.o times.o unlink.o wait4.o write.o close_r.o \ +fork_r.o fstat_r.o getpid_r.o gettimeofday_r.o kill_r.o link_r.o \ +lseek_r.o open_r.o read_r.o stat_r.o times_r.o unlink_r.o wait4_r.o \ +write_r.o +lib_a_OBJECTS = cerror.o crt0.o dup2.o execve.o _exit.o sigsetjmp.o \ +utime.o sbrk.o wait.o _main.o ieee.o closedir.o opendir.o readdir.o \ +rewinddir.o scandir.o seekdir.o telldir.o creat.o isatty.o utime2.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s _r.o +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.S_r.o: + $(COMPILE) -DREENT -c $< -o $@ + +.c_r.o: + $(COMPILE) -DREENT -c $< -o $@ + +$(COPYOFILES): + $(AR) x /lib/libc.a $(COPYOFILES) + +$(COPYRENAMEOFILES): + $(AR) x /lib/libc.a $(COPYRENAMEOFILES:S.o=.o) + for f in $(COPYRENAMEOFILES); do mv `basename $$f S.o`.o $$f; done + +$(COPYOMFILES): + $(AR) x /lib/libm.a $(COPYOMFILES) + +stamp-srcs: Makefile template.S template_r.S + for f in $(TEMPLATE_SFILES:_=); do \ + $(COMPILE) -E -Dfunc=$$f $(srcdir)/template.S >$$f.S; \ + done + for f in $(TEMPLATE_SFILES_R:_=); do \ + $(COMPILE) -E -Dfunc=$$f $(srcdir)/template_r.S | sed -e 's/^_/#/' >$$f.S; \ + done + touch stamp-srcs + +# Make a dependency for each file built from a template. + +$(TEMPLATE_SFILES:_=.S) $(TEMPLATE_SFILES_R:_=.S): stamp-srcs + +all: crt0.o + +close_r.o: close.S +fork_r.o: fork.S +fstat_r.o: fstat.S +getpid_r.o: getpid.S +gettimeofday_r.o: gettimeofday.S +kill_r.o: kill.S +link_r.o: link.S +lseek_r.o: lseek.S +open_r.o: open.S +read_r.o: read.S +sbrk_r.o: sbrk.S +stat_r.o: stat.S +times_r.o: times.S +unlink_r.o: unlink.S +wait_r.o: wait.S +wait4_r.o: wait4.S +write_r.o: write.S + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sparc64/_exit.S b/newlib/libc/sys/sparc64/_exit.S new file mode 100644 index 000000000..174f72165 --- /dev/null +++ b/newlib/libc/sys/sparc64/_exit.S @@ -0,0 +1,14 @@ +! _exit() system call + +#include "sys/syscallasm.h" + + TEXT_SECTION + ALIGN (4) + GLOBAL (ASM_SYMBOL (_exit)) +ASM_SYMBOL (_exit): + mov SYS_exit,%g1 + ta %icc,SYSCALL_TRAP + +! If that returns (yikes!), try an illegal insn ... + + WORD (0)
\ No newline at end of file diff --git a/newlib/libc/sys/sparc64/_main.c b/newlib/libc/sys/sparc64/_main.c new file mode 100644 index 000000000..64878088d --- /dev/null +++ b/newlib/libc/sys/sparc64/_main.c @@ -0,0 +1,6 @@ + +__main() +{ + + +} diff --git a/newlib/libc/sys/sparc64/aclocal.m4 b/newlib/libc/sys/sparc64/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sparc64/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sparc64/cerror.S b/newlib/libc/sys/sparc64/cerror.S new file mode 100644 index 000000000..c29563fef --- /dev/null +++ b/newlib/libc/sys/sparc64/cerror.S @@ -0,0 +1,29 @@ +! Set errno. +! This function is called by all the syscall stubs. +! +! FIXME: We assume errno is the first member of struct _reent. +! Not sure what to do about this. + +#include <sys/syscallasm.h> + + DATA_SECTION + ALIGN (4) + GLOBAL (ASM_SYMBOL (errno)) ! FIXME: ASM_PRIVATE_SYMBOL ? +ASM_SYMBOL (errno): + WORD (0) + + TEXT_SECTION + ALIGN (4) + + GLOBAL (ASM_PRIVATE_SYMBOL (cerror)) +ASM_PRIVATE_SYMBOL (cerror): + sethi %hi (ASM_SYMBOL (errno)),%g1 + stw %o0,[%g1+%lo (ASM_SYMBOL (errno))] + jmpl %o7+8,%g0 + mov -1,%o0 + + GLOBAL (ASM_PRIVATE_SYMBOL (cerror_r)) +ASM_PRIVATE_SYMBOL (cerror_r): + stw %o0,[%o1] + jmpl %o7+8,%g0 + mov -1,%o0 diff --git a/newlib/libc/sys/sparc64/closedir.c b/newlib/libc/sys/sparc64/closedir.c new file mode 100644 index 000000000..d87d81654 --- /dev/null +++ b/newlib/libc/sys/sparc64/closedir.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)closedir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * close a directory. + */ +int +closedir(dirp) + register DIR *dirp; +{ + int fd; + + fd = dirp->dd_fd; + dirp->dd_fd = -1; + dirp->dd_loc = 0; + (void)free((void *)dirp->dd_buf); + (void)free((void *)dirp); + return(close(fd)); +} diff --git a/newlib/libc/sys/sparc64/configure b/newlib/libc/sys/sparc64/configure new file mode 100755 index 000000000..9ca57580f --- /dev/null +++ b/newlib/libc/sys/sparc64/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=template_r.S + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sparc64/configure.in b/newlib/libc/sys/sparc64/configure.in new file mode 100644 index 000000000..c434b2244 --- /dev/null +++ b/newlib/libc/sys/sparc64/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sparc64 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(template_r.S) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sparc64/creat.c b/newlib/libc/sys/sparc64/creat.c new file mode 100644 index 000000000..6b1116206 --- /dev/null +++ b/newlib/libc/sys/sparc64/creat.c @@ -0,0 +1,11 @@ +/* creat() "system call" */ + +/* This is needed by f2c and therefore the SPEC benchmarks. */ + +#include <fcntl.h> + +int +creat (const char *path, mode_t mode) +{ + return open (path, O_WRONLY | O_CREAT | O_TRUNC, mode); +} diff --git a/newlib/libc/sys/sparc64/crt0.S b/newlib/libc/sys/sparc64/crt0.S new file mode 100644 index 000000000..ed2cb7e93 --- /dev/null +++ b/newlib/libc/sys/sparc64/crt0.S @@ -0,0 +1,123 @@ +! C run time start off + +! This file supports: +! +! - both 32bit pointer and 64bit pointer environments (at compile time) +! - an imposed stack bias (of 2047) (at run time) +! - medium/low and medium/anywhere code models (at run time) + +! Initial stack setup: +! +! bottom of stack (higher memory address) +! ... +! text of environment strings +! text of argument strings +! envp[envc] = 0 (4/8 bytes) +! ... +! env[0] (4/8 bytes) +! argv[argc] = 0 (4/8 bytes) +! ... +! argv[0] (4/8 bytes) +! argc (4/8 bytes) +! register save area (64 bits by 16 registers = 128 bytes) +! top of stack (%sp) + +! Stack Bias: +! +! It is the responsibility of the o/s to set this up. +! We handle both a 0 and 2047 value for the stack bias. + +! Medium/Anywhere code model support: +! +! In this model %g4 points to the start of the data segment. +! The text segment can go anywhere, but %g4 points to the *data* segment. +! It is up to the compiler/linker to get this right. +! +! Since this model is statically linked the start of the data segment +! is known at link time. Eg: +! +! sethi %hh(data_start), %g1 +! sethi %lm(data_start), %g4 +! or %g1, %hm(data_start), %g1 +! or %g4, %lo(data_start), %g4 +! sllx %g1, 32, %g1 +! or %g4, %g1, %g4 +! +! FIXME: For now we just assume 0. + +! FIXME: if %g1 contains a non-zero value, atexit() should be invoked +! with this value. + +#include <sys/syscallasm.h> + + TEXT_SECTION + ALIGN (4) + GLOBAL (ASM_PRIVATE_SYMBOL (start)) +ASM_PRIVATE_SYMBOL (start): + clr %fp + +! We use %g4 even if the code model is Medium/Low (simplifies the code). + + clr %g4 ! Medium/Anywhere base reg + +! If there is a stack bias in effect, account for it in %g5. Then always +! add %g5 to stack references below. This way the code can be used with +! or without an imposed bias. + + andcc %sp, 1, %g5 + bnz,a .LHaveBias + mov 2047, %g5 +.LHaveBias: + add %sp, %g5, %sp + +#if TARGET_PTR_SIZE == 32 + ! FIXME: We apparently assume here that there is no reserved word. + ! This is probably correct, but try to verify it. + ld [%sp + 0x80], %o0 ! argc + add %sp, 0x84, %o1 ! argv + add %o0, 1, %o2 + sll %o2, 2, %o2 +#else /* TARGET_PTR_SIZE == 64 */ + ld [%sp + 0x8c], %o0 ! argc.lo + add %sp, 0x90, %o1 ! argv + add %o0, 1, %o2 + sll %o2, 3, %o2 +#endif + add %o1, %o2, %o2 ! envp + sethi %hi (ASM_SYMBOL (environ)), %o3 + or %o3, %lo (ASM_SYMBOL (environ)), %o3 +#if TARGET_PTR_SIZE == 32 + st %o2, [%o3 + %g4] +#else /* TARGET_PTR_SIZE == 64 */ + stx %o2, [%o3 + %g4] +#endif + +! Restore any stack bias before we call main() ... + + sub %sp, %g5, %sp + + GLOBAL (ASM_SYMBOL (main)) + call ASM_SYMBOL (main) + +! FIXME: Not sure if this is needed anymore. +#if TARGET_PTR_SIZE == 32 + sub %sp, 0x20, %sp ! room to push args +#else /* TARGET_PTR_SIZE == 64 */ + sub %sp, 0x30, %sp ! room to push args +#endif + + GLOBAL (ASM_SYMBOL (exit)) + call ASM_SYMBOL (exit) + nop + + GLOBAL (ASM_SYMBOL (_exit)) + call ASM_SYMBOL (_exit) + nop + + set SYS_exit, %g1 + ta SYSCALL_TRAP ! in case user redefines __exit + +! If all the above methods fail to terminate the program, try an illegal insn. +! If that does not work, the o/s is hosed more than we are. + + WORD (0) diff --git a/newlib/libc/sys/sparc64/dup2.S b/newlib/libc/sys/sparc64/dup2.S new file mode 100644 index 000000000..f46fb703e --- /dev/null +++ b/newlib/libc/sys/sparc64/dup2.S @@ -0,0 +1,9 @@ +! dup2() system call + +#include "sys/syscallasm.h" + +/* FIXME: rewrite in C to use fcntl */ + +#ifndef __svr4__ /* svr4 uses fcntl */ + defsyscall (dup2, SYS_dup2) +#endif diff --git a/newlib/libc/sys/sparc64/execve.S b/newlib/libc/sys/sparc64/execve.S new file mode 100644 index 000000000..804d2ee3c --- /dev/null +++ b/newlib/libc/sys/sparc64/execve.S @@ -0,0 +1,27 @@ +! execve.S +! This function is invoked by the other exec*() fns. +! +! If sizeof(char *) == 64, we invoke a new Shade function until the real one +! is defined. + +#include "sys/syscallasm.h" + + TEXT_SECTION + ALIGN (4) + GLOBAL (ASM_SYMBOL (execve)) +ASM_SYMBOL (execve): + mov SYS_execve,%g1 +#if TARGET_PTR_SIZE == 64 + ta 42 +#else + ta SYSCALL_TRAP +#endif + + bcc noerr + nop + + seterrno() + +noerr: + jmpl %o7+8,%g0 + nop diff --git a/newlib/libc/sys/sparc64/ieee.c b/newlib/libc/sys/sparc64/ieee.c new file mode 100644 index 000000000..28289761d --- /dev/null +++ b/newlib/libc/sys/sparc64/ieee.c @@ -0,0 +1,115 @@ + +#include <ieeefp.h> + + +fp_rnd +_DEFUN_VOID(fpgetround) +{ + char *out; + ieee_flags("get", "direction","", &out); + if (strcmp(out,"nearest") == 0) return FP_RN; + if (strcmp(out,"negative") == 0) return FP_RM; + if (strcmp(out,"positive") == 0) return FP_RP; + if (strcmp(out,"tozero") == 0) return FP_RZ; + abort(); + +} + +fp_rnd +_DEFUN(fpsetround,(new), + fp_rnd new) +{ + fp_rnd old = fpgetround(); + char *dummy; + + switch (new) + { + case FP_RN: + ieee_flags("set", "direction", "nearest", &dummy); + break; + case FP_RM: + ieee_flags("set", "direction", "negative", &dummy); + break; + case FP_RP: + ieee_flags("set", "direction", "positive", &dummy); + break; + case FP_RZ: + ieee_flags("set", "direction", "tozero", &dummy); + break; + default: + break; + } + return old; +} + + +fp_except +_DEFUN_VOID(fpgetmask) +{ + char *out; + int r = 0; + + int i = ieee_flags("get","exception","",&out); + if (i & 1) r |= FP_X_IMP; + if (i & 2) r |= FP_X_DX; + if (i & 4) r |= FP_X_UFL; + if (i & 8) r |= FP_X_OFL; + if (i & 16) r |= FP_X_INV; + return r; + +} + +fp_except +_DEFUN(fpsetmask,(mask), + fp_except mask) +{ + fp_except old = fpgetmask(); + + char *out; + ieee_flags("clear","exception", "all", &out); + + + if (mask & FP_X_IMP) + ieee_flags("set","exception","inexact", &out); + if (mask & FP_X_DX) + ieee_flags("set","exception","division", &out); + if (mask & FP_X_UFL) + ieee_flags("set","exception","underflow", &out); + if (mask & FP_X_OFL) + ieee_flags("set","exception","overflow", &out); + if (mask & FP_X_INV) + ieee_flags("set","exception","invalid", &out); + + return old; + +} + +fp_except +_DEFUN(fpsetsticky,(mask), + fp_except mask) +{ + return fpsetmask(mask); +} + +fp_except +_DEFUN_VOID(fpgetsticky) +{ + return fpgetmask(); +} + +int +_DEFUN(fpsetroundtoi,(rdi_mode), + fp_rdi rdi_mode) +{ + + return 0; + +} + +int +_DEFUN_VOID(fpgetroundtoi) +{ + + return 0; + +} diff --git a/newlib/libc/sys/sparc64/isatty.c b/newlib/libc/sys/sparc64/isatty.c new file mode 100644 index 000000000..3c64647a9 --- /dev/null +++ b/newlib/libc/sys/sparc64/isatty.c @@ -0,0 +1,17 @@ +/* isatty.c */ + +/* Dumb implementation so programs will at least run. */ + +#include <sys/stat.h> + +int +isatty (int fd) +{ + struct stat buf; + + if (fstat (fd, &buf) < 0) + return 0; + if (S_ISCHR (buf.st_mode)) + return 1; + return 0; +} diff --git a/newlib/libc/sys/sparc64/lstat.S b/newlib/libc/sys/sparc64/lstat.S new file mode 100644 index 000000000..381330d17 --- /dev/null +++ b/newlib/libc/sys/sparc64/lstat.S @@ -0,0 +1,5 @@ +! lstat() system call + +#include "sys/syscallasm.h" + + defsyscall (lstat, SYS_lstat) diff --git a/newlib/libc/sys/sparc64/opendir.c b/newlib/libc/sys/sparc64/opendir.c new file mode 100644 index 000000000..ce080e312 --- /dev/null +++ b/newlib/libc/sys/sparc64/opendir.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)opendir.c 5.11 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> +#include <fcntl.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * open a directory. + */ +DIR * +opendir(name) + const char *name; +{ + register DIR *dirp; + register int fd; + + if ((fd = open(name, 0)) == -1) + return NULL; + if (fcntl(fd, F_SETFD, 1) == -1 || + (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { + close (fd); + return NULL; + } + /* + * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE + * buffer that it cluster boundary aligned. + * Hopefully this can be a big win someday by allowing page trades + * to user space to be done by getdirentries() + */ + dirp->dd_buf = malloc (512); + dirp->dd_len = 512; + + if (dirp->dd_buf == NULL) { + close (fd); + return NULL; + } + dirp->dd_fd = fd; + dirp->dd_loc = 0; + dirp->dd_seek = 0; + /* + * Set up seek point for rewinddir. + */ + return dirp; +} diff --git a/newlib/libc/sys/sparc64/readdir.c b/newlib/libc/sys/sparc64/readdir.c new file mode 100644 index 000000000..b3839870c --- /dev/null +++ b/newlib/libc/sys/sparc64/readdir.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> + +/* + * get next entry in a directory. + */ +struct dirent * +readdir(dirp) +register DIR *dirp; { + register struct dirent *dp; + + for (;;) { + if (dirp->dd_loc == 0) { + dirp->dd_size = getdents (dirp->dd_fd, + dirp->dd_buf, + dirp->dd_len); + + if (dirp->dd_size <= 0) + return NULL; + } + if (dirp->dd_loc >= dirp->dd_size) { + dirp->dd_loc = 0; + continue; + } + dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); + if ((int)dp & 03) /* bogus pointer check */ + return NULL; + if (dp->d_reclen <= 0 || + dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) + return NULL; + dirp->dd_loc += dp->d_reclen; + if (dp->d_ino == 0) + continue; + return (dp); + } +} diff --git a/newlib/libc/sys/sparc64/rewinddir.c b/newlib/libc/sys/sparc64/rewinddir.c new file mode 100644 index 000000000..d52c013c4 --- /dev/null +++ b/newlib/libc/sys/sparc64/rewinddir.c @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)rewinddir.c 5.1 (Berkeley) 5/25/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> + +void +rewinddir(dirp) + DIR *dirp; +{ + extern long _rewinddir; + + _seekdir((dirp), _rewinddir); + _rewinddir = telldir(dirp); +} diff --git a/newlib/libc/sys/sparc64/sbrk.S b/newlib/libc/sys/sparc64/sbrk.S new file mode 100644 index 000000000..bff72fa81 --- /dev/null +++ b/newlib/libc/sys/sparc64/sbrk.S @@ -0,0 +1,78 @@ +! sbrk() system call + +#include "sys/syscallasm.h" + + DATA_SECTION + ALIGN (4) + +! CURBRK contains the current top of allocated space. +! END is a private symbol in svr4, but a public one in sunos4. +! FIXME: CURBRK is 4 bytes for now. + + + GLOBAL (ASM_PRIVATE_SYMBOL (curbrk)) +ASM_PRIVATE_SYMBOL (curbrk): +#ifdef __svr4__ + WORD (ASM_PRIVATE_SYMBOL (end)) +#else + WORD (ASM_SYMBOL (end)) +#endif + + TEXT_SECTION + ALIGN (4) +#ifdef REENT + GLOBAL (ASM_SYMBOL (_sbrk_r)) +ASM_SYMBOL (_sbrk_r): + mov %o0,%o5 + mov %o1,%o0 +#else + GLOBAL (ASM_SYMBOL (sbrk)) +ASM_SYMBOL (sbrk): +#endif + add %o0,7,%o0 + andn %o0,7,%o0 + sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o2 + lduw [%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))],%o3 + add %o3,7,%o3 + andn %o3,7,%o3 + add %o3,%o0,%o0 + mov %o0,%o4 + mov SYS_brk,%g1 + ta SYSCALL_TRAP + bcs err + nop + stw %o4,[%o2+%lo (ASM_PRIVATE_SYMBOL (curbrk))] + jmpl %o7+8,%g0 + mov %o3,%o0 + +#ifdef REENT + GLOBAL (ASM_SYMBOL (_brk_r)) +ASM_SYMBOL (_brk_r): + mov %o0,%o5 + mov %o1,%o0 +#else + GLOBAL (ASM_SYMBOL (brk)) +ASM_SYMBOL (brk): +#endif + add %o0,7,%o0 + andn %o0,7,%o0 + mov %o0,%o2 + mov SYS_brk,%g1 + ta SYSCALL_TRAP + bcs err + nop + sethi %hi (ASM_PRIVATE_SYMBOL (curbrk)),%o3 + st %o2,[%o3+%lo (ASM_PRIVATE_SYMBOL (curbrk))] + retl + mov %g0,%o0 + +err: +#ifdef REENT + sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 + or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 +#else + sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 + or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 +#endif + jmpl %g1,%g0 + mov %o5,%o1 diff --git a/newlib/libc/sys/sparc64/scandir.c b/newlib/libc/sys/sparc64/scandir.c new file mode 100644 index 000000000..bcfd525c4 --- /dev/null +++ b/newlib/libc/sys/sparc64/scandir.c @@ -0,0 +1,138 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)scandir.c 5.10 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +/* + * Scan the directory dirname calling select to make a list of selected + * directory entries then sort using qsort and compare routine dcomp. + * Returns the number of entries and a pointer to a list of pointers to + * struct dirent (through namelist). Returns -1 if there were any errors. + */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <dirent.h> +#include <stdlib.h> +#include <string.h> + +/* + * The DIRSIZ macro gives the minimum record length which will hold + * the directory entry. This requires the amount of space in struct dirent + * without the d_name field, plus enough space for the name with a terminating + * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. + */ +#undef DIRSIZ +#define DIRSIZ(dp) \ + ((sizeof (struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) + +#ifndef __P +#define __P(args) () +#endif + +int +scandir(dirname, namelist, select, dcomp) + const char *dirname; + struct dirent ***namelist; + int (*select) __P((struct dirent *)); + int (*dcomp) __P((const void *, const void *)); +{ + register struct dirent *d, *p, **names; + register size_t nitems; + struct stat stb; + long arraysz; + DIR *dirp; + + if ((dirp = opendir(dirname)) == NULL) + return(-1); + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); + + /* + * estimate the array size by taking the size of the directory file + * and dividing it by a multiple of the minimum size entry. + */ + arraysz = (stb.st_size / 24); + names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + + nitems = 0; + while ((d = readdir(dirp)) != NULL) { + if (select != NULL && !(*select)(d)) + continue; /* just selected names */ + /* + * Make a minimum size copy of the data + */ + p = (struct dirent *)malloc(DIRSIZ(d)); + if (p == NULL) + return(-1); + p->d_ino = d->d_ino; + p->d_reclen = d->d_reclen; + p->d_namlen = d->d_namlen; + bcopy(d->d_name, p->d_name, p->d_namlen + 1); + /* + * Check to make sure the array has space left and + * realloc the maximum size. + */ + if (++nitems >= arraysz) { + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); /* just might have grown */ + arraysz = stb.st_size / 12; + names = (struct dirent **)realloc((char *)names, + arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + } + names[nitems-1] = p; + } + closedir(dirp); + if (nitems && dcomp != NULL) + qsort(names, nitems, sizeof(struct dirent *), dcomp); + *namelist = names; + return(nitems); +} + +/* + * Alphabetic order comparison routine for those who want it. + */ +int +alphasort(d1, d2) + const void *d1; + const void *d2; +{ + return(strcmp((*(struct dirent **)d1)->d_name, + (*(struct dirent **)d2)->d_name)); +} diff --git a/newlib/libc/sys/sparc64/seekdir.c b/newlib/libc/sys/sparc64/seekdir.c new file mode 100644 index 000000000..50331402a --- /dev/null +++ b/newlib/libc/sys/sparc64/seekdir.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)seekdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> + +/* + * Seek to an entry in a directory. + * _seekdir is in telldir.c so that it can share opaque data structures. + */ +void +seekdir(dirp, loc) + DIR *dirp; + long loc; +{ + + _seekdir(dirp, loc); +} diff --git a/newlib/libc/sys/sparc64/sigsetjmp.S b/newlib/libc/sys/sparc64/sigsetjmp.S new file mode 100644 index 000000000..7751e5f8c --- /dev/null +++ b/newlib/libc/sys/sparc64/sigsetjmp.S @@ -0,0 +1,77 @@ +! This file is called sigsetjmp.s because that is what V8 uses. +! We do not define sigsetjmp() or setlongjmp() yet. +! Solaris has setjmp/longjmp in setjmp.o. Move this stuff there. + +#include <sys/syscallasm.h> + + TEXT_SECTION + ALIGN (4) + +#ifdef __svr4__ + + GLOBAL (ASM_SYMBOL (setjmp)) + .proc 04 +ASM_SYMBOL (setjmp): + + clr [%o0] + stx %sp,[%o0+8] + add %o7,8,%g1 + stx %g1,[%o0+16] + retl + mov %g0,%o0 + + GLOBAL (ASM_SYMBOL (longjmp)) + .proc 04 +ASM_SYMBOL (longjmp): + + flushw ! flush register windows + sub %sp,136,%sp + ldx [%o0+8],%fp + ldx [%o0+16],%g1 + tst %o1 + bne L0 + sub %g1,8,%o7 + mov 1,%o1 +L0: + retl + restore %o1,0,%o0 + +#else + + GLOBAL (ASM_SYMBOL (setjmp)) + .proc 04 +ASM_SYMBOL (setjmp): + save %sp,-136,%sp + or %g0,%g0,%o0 ! %o0 = 0 + or %g0,0x6d,%g1 ! %g1 = 0x6d (syscall number) + ta SYSCALL_TRAP + stw %o0,[%i0+4] ! save result at [%i0+4] (sigmask?) + add %fp,-8,%o1 ! %o1 -> tmp 8 byte buffer + or %g0,%g0,%o0 ! %o0 = 0 + or %g0,0x70,%g1 ! %g1 = 0x70 (syscall number) + ta SYSCALL_TRAP + lduw [%fp-4],%g1 ! %g1 = onsstack? + stw %fp,[%i0+8] ! save %fp at [%i0+8] + stw %g1,[%i0+0] ! save ? at [%i0+8] + add %i7,8,%g1 ! %g1 = return address + stw %g1,[%i0+12] ! save return address at [%i0+12] + add %g1,4,%g1 ! %g1 = nPC + stw %g1,[%i0+16] ! save nPC at [%i0+16] + stw %g0,[%i0+20] + stw %g0,[%i0+24] + stw %g0,[%i0+32] + jmpl %i7+8,%g0 + restore %g0,0,%o0 + + GLOBAL (ASM_SYMBOL (longjmp)) + .proc 04 +ASM_SYMBOL (longjmp): + orcc %g0,%o1,%g0 ! return val == 0 ? + be,a L1 ! branch if 0 + or %g0,1,%o1 ! make it 1 (executed if branch taken) +L1: + or %g0,0x8b,%g1 ! set syscall 0x8b + stw %o1,[%o0+28] ! save return val for restoration + ta SYSCALL_TRAP + +#endif /* ! __svr4__ */ diff --git a/newlib/libc/sys/sparc64/stat.S b/newlib/libc/sys/sparc64/stat.S new file mode 100644 index 000000000..32adb23ce --- /dev/null +++ b/newlib/libc/sys/sparc64/stat.S @@ -0,0 +1,9 @@ +! stat() system call + +#include "sys/syscallasm.h" + +#ifdef REENT + defsyscall_r (_stat_r, SYS_stat, 2) +#else + defsyscall (stat, SYS_stat) +#endif diff --git a/newlib/libc/sys/sparc64/sys/dirent.h b/newlib/libc/sys/sparc64/sys/dirent.h new file mode 100644 index 000000000..864bb5ca1 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/dirent.h @@ -0,0 +1,48 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_DIRENT_H +# define _SYS_DIRENT_H + +/* + * This file was written to be compatible with the BSD directory + * routines, so it looks like it. But it was written from scratch. + * Sean Eric Fagan, sef@Kithrup.COM + */ + +typedef struct __dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + char *dd_buf; + int dd_len; + long dd_seek; +} DIR; + +# define __dirfd(dp) ((dp)->dd_fd) + +DIR *opendir (const char *); +struct dirent *readdir (DIR *); +void rewinddir (DIR *); +int closedir (DIR *); + +#include <sys/types.h> + +#undef MAXNAMLEN /* from unistd.h */ +#ifdef __svr4__ +#define MAXNAMLEN 512 +#else +#define MAXNAMLEN 255 +#endif + +#define d_ino d_fileno /* compatibility */ + +struct dirent { + off_t d_off; + unsigned long d_fileno; + unsigned short d_reclen; + unsigned short d_namlen; + char d_name[MAXNAMLEN + 1]; +}; + +/* FIXME: include definition of DIRSIZ() ? */ + +#endif diff --git a/newlib/libc/sys/sparc64/sys/fcntl.h b/newlib/libc/sys/sparc64/sys/fcntl.h new file mode 100644 index 000000000..940649ac7 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/fcntl.h @@ -0,0 +1,178 @@ +/* sys/fcntl.h for sparc64 */ + +/* This is basically the same as the default version, except that a few of + the values are different on Solaris (eg: FCREAT). + We support both SunOS4 and Solaris. */ + +#ifndef _SYS_FCNTL_H_ +#define _SYS_FCNTL_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <_ansi.h> + +#define _FOPEN (-1) /* from sys/file.h, kernel use only */ +#define _FREAD 0x0001 /* read enabled */ +#define _FWRITE 0x0002 /* write enabled */ +#define _FNDELAY 0x0004 /* non blocking I/O (4.2 style) */ +#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */ +#ifdef __svr4__ +#define _FNONBLOCK 0x0080 /* non blocking I/O (POSIX) */ +#define _FCREAT 0x0100 /* open with file create */ +#define _FTRUNC 0x0200 /* open with truncation */ +#define _FEXCL 0x0400 /* error on open if file exists */ +#define _FNOCTTY 0x0800 /* don't assign a ctty on this open */ +#else +#define _FMARK 0x0010 /* internal; mark during gc() */ +#define _FDEFER 0x0020 /* internal; defer for next gc pass */ +#define _FASYNC 0x0040 /* signal pgrp when data ready */ +#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */ +#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */ +#define _FCREAT 0x0200 /* open with file create */ +#define _FTRUNC 0x0400 /* open with truncation */ +#define _FEXCL 0x0800 /* error on open if file exists */ +#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */ +#define _FSYNC 0x2000 /* do all writes synchronously */ +#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ +#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */ +#endif /* ! __svr4__ */ + +#define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) + +/* + * Flag values for open(2) and fcntl(2) + * The kernel adds 1 to the open modes to turn it into some + * combination of FREAD and FWRITE. + */ +#define O_RDONLY 0 /* +1 == FREAD */ +#define O_WRONLY 1 /* +1 == FWRITE */ +#define O_RDWR 2 /* +1 == FREAD|FWRITE */ +#define O_APPEND _FAPPEND +#define O_CREAT _FCREAT +#define O_TRUNC _FTRUNC +#define O_EXCL _FEXCL +/* O_SYNC _FSYNC not posix, defined below */ +/* O_NDELAY _FNDELAY set in include/fcntl.h */ +/* O_NDELAY _FNBIO set in 5include/fcntl.h */ +#define O_NONBLOCK _FNONBLOCK +#define O_NOCTTY _FNOCTTY + +#ifndef _POSIX_SOURCE + +#define O_SYNC _FSYNC + +/* + * Flags that work for fcntl(fd, F_SETFL, FXXXX) + */ +#define FAPPEND _FAPPEND +#define FSYNC _FSYNC +#define FASYNC _FASYNC +#define FNBIO _FNBIO +#define FNONBIO _FNONBLOCK /* XXX fix to be NONBLOCK everywhere */ +#define FNDELAY _FNDELAY + +/* + * Flags that are disallowed for fcntl's (FCNTLCANT); + * used for opens, internal state, or locking. + */ +#define FREAD _FREAD +#define FWRITE _FWRITE +#define FMARK _FMARK +#define FDEFER _FDEFER +#define FSHLOCK _FSHLOCK +#define FEXLOCK _FEXLOCK + +/* + * The rest of the flags, used only for opens + */ +#define FOPEN _FOPEN +#define FCREAT _FCREAT +#define FTRUNC _FTRUNC +#define FEXCL _FEXCL +#define FNOCTTY _FNOCTTY + +#endif !_POSIX_SOURCE + +/* XXX close on exec request; must match UF_EXCLOSE in user.h */ +#define FD_CLOEXEC 1 /* posix */ + +/* fcntl(2) requests */ +#define F_DUPFD 0 /* Duplicate fildes */ +#define F_GETFD 1 /* Get fildes flags (close on exec) */ +#define F_SETFD 2 /* Set fildes flags (close on exec) */ +#define F_GETFL 3 /* Get file flags */ +#define F_SETFL 4 /* Set file flags */ +#ifndef _POSIX_SOURCE +#ifdef __svr4__ +#define F_GETOWN 23 /* Get owner - for ASYNC */ +#define F_SETOWN 24 /* Set owner - for ASYNC */ +#else +#define F_GETOWN 5 /* Get owner - for ASYNC */ +#define F_SETOWN 6 /* Set owner - for ASYNC */ +#endif +#endif /* !_POSIX_SOURCE */ +#ifdef __svr4__ +#define F_GETLK 14 /* Get record-locking information */ +#define F_SETLK 6 /* Set or Clear a record-lock (Non-Blocking) */ +#define F_SETLKW 7 /* Set or Clear a record-lock (Blocking) */ +#else +#define F_GETLK 7 /* Get record-locking information */ +#define F_SETLK 8 /* Set or Clear a record-lock (Non-Blocking) */ +#define F_SETLKW 9 /* Set or Clear a record-lock (Blocking) */ +#endif +#ifndef _POSIX_SOURCE +#define F_RGETLK 10 /* Test a remote lock to see if it is blocked */ +#define F_RSETLK 11 /* Set or unlock a remote lock */ +#define F_CNVT 12 /* Convert a fhandle to an open fd */ +#define F_RSETLKW 13 /* Set or Clear remote record-lock(Blocking) */ +#endif /* !_POSIX_SOURCE */ + +/* fcntl(2) flags (l_type field of flock structure) */ +#define F_RDLCK 1 /* read lock */ +#define F_WRLCK 2 /* write lock */ +#define F_UNLCK 3 /* remove lock(s) */ +#ifndef _POSIX_SOURCE +#define F_UNLKSYS 4 /* remove remote locks for a given system */ +#endif /* !_POSIX_SOURCE */ + +/*#include <sys/stdtypes.h>*/ + +/* file segment locking set data type - information passed to system by user */ +struct flock { + short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ + short l_whence; /* flag to choose starting offset */ + long l_start; /* relative offset, in bytes */ + long l_len; /* length, in bytes; 0 means lock to EOF */ + short l_pid; /* returned with F_GETLK */ + short l_xxx; /* reserved for future use */ +}; + +#ifndef _POSIX_SOURCE +/* extended file segment locking set data type */ +struct eflock { + short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */ + short l_whence; /* flag to choose starting offset */ + long l_start; /* relative offset, in bytes */ + long l_len; /* length, in bytes; 0 means lock to EOF */ + short l_pid; /* returned with F_GETLK */ + short l_xxx; /* reserved for future use */ + long l_rpid; /* Remote process id wanting this lock */ + long l_rsys; /* Remote system id wanting this lock */ +}; +#endif /* !_POSIX_SOURCE */ + + +#include <sys/types.h> +#include <sys/stat.h> /* sigh. for the mode bits for open/creat */ + +extern int open _PARAMS ((const char *, int, ...)); +extern int creat _PARAMS ((const char *, mode_t)); +extern int fcntl _PARAMS ((int, int, ...)); + +#ifdef __cplusplus +} +#endif + +#endif /* !_SYS_FCNTL_H_ */ diff --git a/newlib/libc/sys/sparc64/sys/file.h b/newlib/libc/sys/sparc64/sys/file.h new file mode 100644 index 000000000..768494377 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/file.h @@ -0,0 +1,3 @@ +/* This is the same as sys/fcntl.h for now. */ + +#include <sys/fcntl.h> diff --git a/newlib/libc/sys/sparc64/sys/stat.h b/newlib/libc/sys/sparc64/sys/stat.h new file mode 100644 index 000000000..256c1b41b --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/stat.h @@ -0,0 +1,131 @@ +#ifndef _SYS_STAT_H +#define _SYS_STAT_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include <_ansi.h> +#include <sys/types.h> + +#ifdef __svr4__ + +#include <sys/time.h> + +#define _ST_FSTYPSZ 16 /* array size for file system type name */ + +struct stat +{ + dev_t st_dev; + long st_pad1[3]; /* reserved for network id */ + ino_t st_ino; + mode_t st_mode; + nlink_t st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + long st_pad2[2]; + off_t st_size; + long st_pad3; /* future off_t expansion */ + timestruc_t st_atim; + timestruc_t st_mtim; + timestruc_t st_ctim; + long st_blksize; + long st_blocks; + char st_fstype[_ST_FSTYPSZ]; + long st_pad4[8]; /* expansion area */ +}; + +#define st_atime st_atim.tv_sec +#define st_mtime st_mtim.tv_sec +#define st_ctime st_ctim.tv_sec + +#else + +#include <time.h> + +struct stat +{ + dev_t st_dev; + ino_t st_ino; + mode_t st_mode; + short st_nlink; + uid_t st_uid; + gid_t st_gid; + dev_t st_rdev; + off_t st_size; + time_t st_atime; + int st_spare1; + time_t st_mtime; + int st_spare2; + time_t st_ctime; + int st_spare3; + long st_blksize; + long st_blocks; + long st_spare4[2]; +}; + +#endif + +#define _IFMT 0170000 /* type of file */ +#define _IFDIR 0040000 /* directory */ +#define _IFCHR 0020000 /* character special */ +#define _IFBLK 0060000 /* block special */ +#define _IFREG 0100000 /* regular */ +#define _IFLNK 0120000 /* symbolic link */ +#define _IFSOCK 0140000 /* socket */ +#define _IFIFO 0010000 /* fifo */ + +#define S_ISUID 0004000 /* set user id on execution */ +#define S_ISGID 0002000 /* set group id on execution */ +#ifndef _POSIX_SOURCE +#define S_ISVTX 0001000 /* save swapped text even after use */ +#define S_IREAD 0000400 /* read permission, owner */ +#define S_IWRITE 0000200 /* write permission, owner */ +#define S_IEXEC 0000100 /* execute/search permission, owner */ + +#define S_ENFMT 0002000 /* enforcement-mode locking */ + +#define S_IFMT _IFMT +#define S_IFDIR _IFDIR +#define S_IFCHR _IFCHR +#define S_IFBLK _IFBLK +#define S_IFREG _IFREG +#define S_IFLNK _IFLNK +#define S_IFSOCK _IFSOCK +#define S_IFIFO _IFIFO +#endif /* !_POSIX_SOURCE */ + + +#define S_IRWXU 0000700 /* rwx, owner */ +#define S_IRUSR 0000400 /* read permission, owner */ +#define S_IWUSR 0000200 /* write permission, owner */ +#define S_IXUSR 0000100 /* execute/search permission, owner */ +#define S_IRWXG 0000070 /* rwx, group */ +#define S_IRGRP 0000040 /* read permission, group */ +#define S_IWGRP 0000020 /* write permission, grougroup */ +#define S_IXGRP 0000010 /* execute/search permission, group */ +#define S_IRWXO 0000007 /* rwx, other */ +#define S_IROTH 0000004 /* read permission, other */ +#define S_IWOTH 0000002 /* write permission, other */ +#define S_IXOTH 0000001 /* execute/search permission, other */ + +#define S_ISBLK(m) (((m)&_IFMT) == _IFBLK) +#define S_ISCHR(m) (((m)&_IFMT) == _IFCHR) +#define S_ISDIR(m) (((m)&_IFMT) == _IFDIR) +#define S_ISFIFO(m) (((m)&_IFMT) == _IFIFO) +#define S_ISREG(m) (((m)&_IFMT) == _IFREG) +#define S_ISLNK(m) (((m)&_IFMT) == _IFLNK) +#define S_ISSOCK(m) (((m)&_IFMT) == _IFSOCK) + +int _EXFUN(chmod,( const char *_path, mode_t _mode )); +int _EXFUN(fstat,( int _fd, struct stat *_sbuf )); +int _EXFUN(mkdir,( char *_path, mode_t _mode )); +int _EXFUN(mkfifo,( char *_path, mode_t _mode )); +int _EXFUN(stat,( const char *_path, struct stat *_sbuf )); +mode_t _EXFUN(umask,( mode_t _mask )); + +#ifdef __cplusplus +} +#endif +#endif /* _SYS_STAT_H */ diff --git a/newlib/libc/sys/sparc64/sys/syscall.h b/newlib/libc/sys/sparc64/sys/syscall.h new file mode 100644 index 000000000..df5da365f --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/syscall.h @@ -0,0 +1,346 @@ +#ifndef _SYSCALL_H_ +#define _SYSCALL_H_ + +/* + * This file defines the system calls for SPARC. + * + * WARNING: This file can be included by assembler files. + */ + +#define SYS_exit 1 +#define SYS_fork 2 +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#ifdef __svr4__ +#define SYS_time 13 /* old time in sunos4 */ +#endif +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_brk 17 +#ifdef __svr4__ +#define SYS_stat 18 /* old stat in sunos4 */ +#endif +#define SYS_lseek 19 +#define SYS_getpid 20 +#ifdef __svr4__ +#define SYS_mount 21 /* old mount in sunos4 */ +#define SYS_umount 22 /* old umount in sunos4 */ +#define SYS_setuid 23 /* old setuid in sunos4 */ +#endif +#define SYS_getuid 24 +#ifdef __svr4__ +#define SYS_stime 25 /* old stime in sunos4 */ +#endif +#define SYS_ptrace 26 +#ifdef __svr4__ +#define SYS_alarm 27 /* old alarm in sunos4 */ +#define SYS_fstat 28 /* old fstat in sunos4 */ +#define SYS_pause 29 /* old pause in sunos4 */ +#define SYS_utime 30 /* old utime in sunos4 */ +#define SYS_stty 31 /* old stty in sunos4 */ +#define SYS_gtty 32 /* old gtty in sunos4 */ +#endif +#define SYS_access 33 +#ifdef __svr4__ +#define SYS_nice 34 /* old nice in sunos4 */ +#define SYS_statfs 35 /* old ftime in sunos4 */ +#endif +#define SYS_sync 36 +#define SYS_kill 37 +#ifdef __svr4__ +#define SYS_fstatfs 38 +#define SYS_pgrpsys 39 /* old setpgrp in sunos4 */ +#define SYS_xenix 40 +#else +#define SYS_stat 38 +#define SYS_lstat 40 +#endif +#define SYS_dup 41 +#define SYS_pipe 42 +#define SYS_times 43 /* times is obsolete in sunos4, used anyway */ +#define SYS_profil 44 +#ifdef __svr4__ +#define SYS_plock 45 /* unused in sunos4 */ +#define SYS_setgid 46 /* old setgid in sunos4 */ +#endif +#define SYS_getgid 47 +#ifdef __svr4__ +#define SYS_signal 48 /* old sigsys in sunos4 */ +#define SYS_msgsys 49 /* unused in sunos4 */ +#define SYS_sun 50 /* unused in sunos4 */ +#endif +#define SYS_acct 51 +#ifdef __svr4__ +#define SYS_shmsys 52 /* old phys in sunos4 */ +#define SYS_semsys 53 +#else +#define SYS_mctl 53 +#endif +#define SYS_ioctl 54 +#ifdef __svr4__ +#define SYS_uadmin 55 +#else +#define SYS_reboot 55 +#endif + /* 56 is old: mpxchan (reserved in sunos5) */ +#ifdef __svr4__ +#define SYS_utssys 57 +#define SYS_fsync 58 +#else +#define SYS_symlink 57 +#define SYS_readlink 58 +#endif +#define SYS_execve 59 +#define SYS_umask 60 +#define SYS_chroot 61 +#ifdef __svr4__ +#define SYS_fcntl 62 +#define SYS_ulimit 63 /* unused in sunos4 */ + /* 64-77 unused/reserved in sunos5 */ +#else +#define SYS_fstat 62 +#define SYS_getpagesize 64 +#define SYS_msync 65 + /* 66 is old: vfork */ + /* 67 is old: vread */ + /* 68 is old: vwrite */ +#define SYS_sbrk 69 +#define SYS_sstk 70 +#define SYS_mmap 71 +#define SYS_vadvise 72 +#define SYS_munmap 73 +#define SYS_mprotect 74 +#define SYS_madvise 75 +#define SYS_vhangup 76 + /* 77 is old: vlimit */ +#endif + +#ifdef __svr4__ +#define SYS_rfsys 78 +#define SYS_rmdir 79 +#define SYS_mkdir 80 +#define SYS_getdents 81 + /* 82 not used, was libattach */ + /* 83 not used, was libdetach */ +#define SYS_sysfs 84 +#define SYS_getmsg 85 +#define SYS_putmsg 86 +#define SYS_poll 87 +#define SYS_lstat 88 +#define SYS_symlink 89 +#define SYS_readlink 90 +#define SYS_setgroups 91 +#define SYS_getgroups 92 +#define SYS_fchmod 93 +#define SYS_fchown 94 +#define SYS_sigprocmask 95 +#define SYS_sigsuspend 96 +#define SYS_sigaltstack 97 +#define SYS_sigaction 98 +#define SYS_sigpending 99 +#define SYS_context 100 +#define SYS_evsys 101 +#define SYS_evtrapret 102 +#define SYS_statvfs 103 +#define SYS_fstatvfs 104 + /* 105 reserved */ +#define SYS_nfssys 106 +#define SYS_waitsys 107 +#define SYS_sigsendsys 108 +#define SYS_hrtsys 109 +#define SYS_acancel 110 +#define SYS_async 111 +#define SYS_priocntlsys 112 +#define SYS_pathconf 113 +#define SYS_mincore 114 +#define SYS_mmap 115 +#define SYS_mprotect 116 +#define SYS_munmap 117 +#define SYS_fpathconf 118 +#define SYS_vfork 119 +#define SYS_fchdir 120 +#define SYS_readv 121 +#define SYS_writev 122 +#define SYS_xstat 123 +#define SYS_lxstat 124 +#define SYS_fxstat 125 +#define SYS_xmknod 126 +#define SYS_clocal 127 +#define SYS_setrlimit 128 +#define SYS_getrlimit 129 +#define SYS_lchown 130 +#define SYS_memcntl 131 +#define SYS_getpmsg 132 +#define SYS_putpmsg 133 +#define SYS_rename 134 +#define SYS_uname 135 +#define SYS_setegid 136 +#define SYS_sysconfig 137 +#define SYS_adjtime 138 +#define SYS_systeminfo 139 +#define SYS_seteuid 141 +#define SYS_vtrace 142 +#define SYS_fork1 143 +#define SYS_sigwait 144 +#define SYS_lwp_info 145 +#define SYS_yield 146 +#define SYS_lwp_sema_p 147 +#define SYS_lwp_sema_v 148 +#define SYS_modctl 152 +#define SYS_fchroot 153 +#define SYS_utimes 154 +#define SYS_vhangup 155 +#define SYS_gettimeofday 156 +#define SYS_getitimer 157 +#define SYS_setitimer 158 +#define SYS_lwp_create 159 +#define SYS_lwp_exit 160 +#define SYS_lwp_suspend 161 +#define SYS_lwp_continue 162 +#define SYS_lwp_kill 163 +#define SYS_lwp_self 164 +#define SYS_lwp_setprivate 165 +#define SYS_lwp_getprivate 166 +#define SYS_lwp_wait 167 +#define SYS_lwp_mutex_unlock 168 +#define SYS_lwp_mutex_lock 169 +#define SYS_lwp_cond_wait 170 +#define SYS_lwp_cond_signal 171 +#define SYS_lwp_cond_broadcast 172 +#define SYS_pread 173 +#define SYS_pwrite 174 +#define SYS_llseek 175 +#define SYS_inst_sync 176 +#define SYS_auditsys 186 +#else +#define SYS_mincore 78 +#define SYS_getgroups 79 +#define SYS_setgroups 80 +#define SYS_getpgrp 81 +#define SYS_setpgrp 82 +#define SYS_setitimer 83 + /* 84 is old: wait & wait3 */ +#define SYS_swapon 85 +#define SYS_getitimer 86 +#define SYS_gethostname 87 +#define SYS_sethostname 88 +#define SYS_getdtablesize 89 +#define SYS_dup2 90 +#define SYS_getdopt 91 +#define SYS_fcntl 92 +#define SYS_select 93 +#define SYS_setdopt 94 +#define SYS_fsync 95 +#define SYS_setpriority 96 +#define SYS_socket 97 +#define SYS_connect 98 +#define SYS_accept 99 +#define SYS_getpriority 100 +#define SYS_send 101 +#define SYS_recv 102 + /* 103 was socketaddr */ +#define SYS_bind 104 +#define SYS_setsockopt 105 +#define SYS_listen 106 + /* 107 was vtimes */ +#define SYS_sigvec 108 +#define SYS_sigblock 109 +#define SYS_sigsetmask 110 +#define SYS_sigpause 111 +#define SYS_sigstack 112 +#define SYS_recvmsg 113 +#define SYS_sendmsg 114 +#define SYS_vtrace 115 +#define SYS_gettimeofday 116 +#define SYS_getrusage 117 +#define SYS_getsockopt 118 + /* 119 is old resuba */ +#define SYS_readv 120 +#define SYS_writev 121 +#define SYS_settimeofday 122 +#define SYS_fchown 123 +#define SYS_fchmod 124 +#define SYS_recvfrom 125 +#define SYS_setreuid 126 +#define SYS_setregid 127 +#define SYS_rename 128 +#define SYS_truncate 129 +#define SYS_ftruncate 130 +#define SYS_flock 131 + /* 132 is unused */ +#define SYS_sendto 133 +#define SYS_shutdown 134 +#define SYS_socketpair 135 +#define SYS_mkdir 136 +#define SYS_rmdir 137 +#define SYS_utimes 138 + /* 139 is unused */ +#define SYS_adjtime 140 +#define SYS_getpeername 141 +#define SYS_gethostid 142 + /* 143 is old: sethostid */ +#define SYS_getrlimit 144 +#define SYS_setrlimit 145 +#define SYS_killpg 146 + /* 147 is unused */ + /* 148 is old: setquota */ + /* 149 is old: quota */ +#define SYS_getsockname 150 +#define SYS_getmsg 151 +#define SYS_putmsg 152 +#define SYS_poll 153 + /* 154 is old: nfs_mount */ +#define SYS_nfssvc 155 +#define SYS_getdirentries 156 +#define SYS_statfs 157 +#define SYS_fstatfs 158 +#define SYS_unmount 159 +#define SYS_async_daemon 160 +#define SYS_getfh 161 +#define SYS_getdomainname 162 +#define SYS_setdomainname 163 + /* 164 is old: pcfs_mount */ +#define SYS_quotactl 165 +#define SYS_exportfs 166 +#define SYS_mount 167 +#define SYS_ustat 168 +#define SYS_semsys 169 +#define SYS_msgsys 170 +#define SYS_shmsys 171 +#define SYS_auditsys 172 +#define SYS_rfssys 173 +#define SYS_getdents 174 +#define SYS_setsid 175 +#define SYS_fchdir 176 +#define SYS_fchroot 177 +#define SYS_vpixsys 178 + +#define SYS_aioread 179 +#define SYS_aiowrite 180 +#define SYS_aiowait 181 +#define SYS_aiocancel 182 + +#define SYS_sigpending 183 + /* 184 is available */ +#define SYS_setpgid 185 +#define SYS_pathconf 186 +#define SYS_fpathconf 187 +#define SYS_sysconf 188 + +#define SYS_uname 189 + +#endif /* ! __svr4__ */ + +#endif /* _SYSCALL_H_ */ + + + diff --git a/newlib/libc/sys/sparc64/sys/syscallasm.h b/newlib/libc/sys/sparc64/sys/syscallasm.h new file mode 100644 index 000000000..d882a9e31 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/syscallasm.h @@ -0,0 +1,87 @@ +#ifndef _SYSCALLASM_H_ +#define _SYSCALLASM_H_ + +/* + * This file defines the system calls for SPARC for the assembler. + * Anything C-ish is not allowed in this file. + * C files should include syscall.h. + */ + +#include <sys/syscall.h> + +/* Some macros for writing assember syscall stubs. */ + +#ifdef __svr4__ +#define TEXT_SECTION .section ".text" +#define DATA_SECTION .section ".data" +#define ALIGN(x) .align x +#define GLOBAL(sym) .global sym +#define WORD(x) .long x +#define ASM_SYMBOL(name) name +#define ASM_PRIVATE_SYMBOL(name) _##name +#define SYSCALL_TRAP 8 +#else +#define TEXT_SECTION .text +#define DATA_SECTION .data +#define ALIGN(x) .align x +#define GLOBAL(sym) .global sym +#define WORD(x) .word x +#define ASM_SYMBOL(name) _##name +#define ASM_PRIVATE_SYMBOL(name) name +#define SYSCALL_TRAP 0 +#endif + +#define defsyscall(name, n) \ + TEXT_SECTION ; \ + ALIGN (4) ; \ + GLOBAL (ASM_SYMBOL (name)) ; \ +ASM_SYMBOL (name): \ + mov n,%g1 ; \ + ta %icc,SYSCALL_TRAP ; \ + bcc noerr ; \ + sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ + or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ + jmpl %g1+%g0,%g0 ; \ + nop ; \ +noerr: \ + jmpl %o7+8,%g0 ; \ + nop + +/* Support for reentrant syscalls. The "struct _reent *" arg is always the + the first one. After that we allow up to four additional args. We could + allow more, but that's all we need for now. + + It may seem inefficient to have the reent arg be the first one as it means + copying all the other args into place (as opposed to making the reent arg + the last one in which case there wouldn't be any copying). I chose a clean + design over an extra four instructions in a system call. All other + reentrant functions use the first arg this way. */ + +#define defsyscall_r(name, n) \ + TEXT_SECTION ; \ + ALIGN (4) ; \ + GLOBAL (ASM_SYMBOL (name)) ; \ +ASM_SYMBOL (name): \ + mov n,%g1 ; \ + mov %o0,%o5 ; \ + mov %o1,%o0 ; \ + mov %o2,%o1 ; \ + mov %o3,%o2 ; \ + mov %o4,%o3 ; \ + ta %icc,SYSCALL_TRAP ; \ + bcc noerr ; \ + sethi %hi (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \ + or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror_r)),%g1 ; \ + jmpl %g1+%g0,%g0 ; \ + mov %o5,%o1 ; \ +noerr: \ + jmpl %o7+8,%g0 ; \ + nop + +#define seterrno() \ + sethi %hi (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ + or %g1,%lo (ASM_PRIVATE_SYMBOL (cerror)),%g1 ; \ + jmpl %g1+%g0,%g0 ; \ + nop + +#endif /* _SYSCALLASM_H_ */ diff --git a/newlib/libc/sys/sparc64/sys/termios.h b/newlib/libc/sys/sparc64/sys/termios.h new file mode 100644 index 000000000..ffdeb9bb2 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/termios.h @@ -0,0 +1,122 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 000000 +# define B50 000001 +# define B75 000002 +# define B110 000003 +# define B134 000004 +# define B150 000005 +# define B200 000006 +# define B300 000007 +# define B600 000010 +# define B1200 000011 +# define B1800 000012 +# define B2400 000013 +# define B4800 000014 +# define B9600 000015 +# define B19200 000016 +# define B38400 000017 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef char speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#endif /* _SYS_TERMIOS_H */ + diff --git a/newlib/libc/sys/sparc64/sys/time.h b/newlib/libc/sys/sparc64/sys/time.h new file mode 100644 index 000000000..36f8e1c11 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/time.h @@ -0,0 +1,22 @@ +#ifndef _SYS_TIME_H +#define _SYS_TIME_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct timeval { + long tv_sec; + long tv_usec; +}; + +typedef struct timestruc { + time_t tv_sec; + long tv_nsec; +} timestruc_t; + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TIME_H */ diff --git a/newlib/libc/sys/sparc64/sys/utime.h b/newlib/libc/sys/sparc64/sys/utime.h new file mode 100644 index 000000000..e2a55faff --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/utime.h @@ -0,0 +1,13 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_UTIME_H +# define _SYS_UTIME_H + +#include <time.h> + +struct utimbuf { + time_t actime; + time_t modtime; +}; + +#endif /* _SYS_UTIME_H */ + diff --git a/newlib/libc/sys/sparc64/sys/utmp.h b/newlib/libc/sys/sparc64/sys/utmp.h new file mode 100644 index 000000000..f519e6af0 --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/utmp.h @@ -0,0 +1,43 @@ +#ifndef _UTMP_H +# define _UTMP_H + +#include <sys/types.h> + +# define UTMP_FILE "/etc/utmp" +# define WTMP_FILE "/etc/wtmp" + +struct utmp { + char ut_user[8]; /* how limited */ + char ut_id[4]; /* ditto */ + char ut_line[12]; /* I'm repeating myself */ + short ut_pid; + short ut_type; + struct exit_status { + short e_termination; + short e_exit; + } ut_exit; /* for DEAD_PROCESS processes */ + time_t ut_time; +}; + +/* Definitions for ut_type fields */ + +# define EMPTY 0 +# define RUN_LVL 1 +# define BOOT_TIME 2 +# define OLD_TIME 3 +# define NEW_TIME 4 +# define INIT_PROCESS 5 +# define LOGIN_PROCESS 6 +# define USER_PROCESS 7 +# define DEAD_PROCESS 8 +# define ACCOUNTING 9 +# define UTMAXTYPE ACCOUNTING + +# define RUNLVL_MSG "run-level %c" +# define BOOT_MSG "system boot" +# define OTIME_MSG "old time" +# define NTIME_MSG "new time" + +#endif /* _UTMP_H */ + + diff --git a/newlib/libc/sys/sparc64/sys/wait.h b/newlib/libc/sys/sparc64/sys/wait.h new file mode 100644 index 000000000..08b756aab --- /dev/null +++ b/newlib/libc/sys/sparc64/sys/wait.h @@ -0,0 +1,43 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _WAIT_H +# define _WAIT_H + +# define WNOHANG 1 +# define WUNTRACED 2 + +/* + * Unlike the atrocity that BSD ended up using, we do not have a "union + * wait," although I could probably implement one. Given the code I + * sometimes end up porting, it might be a good thing. Anyway, the + * format of a stat thingy, filled in by the wait*() routines, is: + * struct { + * int filler:16; + * union { + * struct stopped { + * int signo:8; + * int o177:8; // will be 0177 + * }; + * struct exited { + * int retval:8; + * int zero:8; // 0, obviously 8-) + * }; + * struct termed { + * int zero:8; // zeroes + * int corep:1; // was there a core file? + * int signo:7; // what?! Only 127 signals?! + * }; + * int value:16; + * }; + * }; + * + * Braver souls than I can turn that into a union wait, if desired. Ick. + */ + +# define WIFEXITED(val) ((val)&0xff) +# define WEXITSTATUS(val) (((val)>>8)&0xff) +# define WIFSIGNALED(val) ((val) && !((val)&0xff)) +# define WTERMSIG(val) (((val)>>8)&0x7f) +# define WIFSTOPPED(val) (((val)&0xff)==0177) +# define WSTOPSIG(val) (((val)>>8)&0xff) +#endif /* _SYS_WAIT_H */ + diff --git a/newlib/libc/sys/sparc64/telldir.c b/newlib/libc/sys/sparc64/telldir.c new file mode 100644 index 000000000..37d9de638 --- /dev/null +++ b/newlib/libc/sys/sparc64/telldir.c @@ -0,0 +1,129 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)telldir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * The option SINGLEUSE may be defined to say that a telldir + * cookie may be used only once before it is freed. This option + * is used to avoid having memory usage grow without bound. + */ +#define SINGLEUSE + +/* + * One of these structures is malloced to describe the current directory + * position each time telldir is called. It records the current magic + * cookie returned by getdirentries and the offset within the buffer + * associated with that return value. + */ +struct ddloc { + struct ddloc *loc_next;/* next structure in list */ + long loc_index; /* key associated with structure */ + long loc_seek; /* magic cookie returned by getdirentries */ + long loc_loc; /* offset of entry in buffer */ +}; + +#define NDIRHASH 32 /* Num of hash lists, must be a power of 2 */ +#define LOCHASH(i) ((i)&(NDIRHASH-1)) + +static long dd_loccnt; /* Index of entry for sequential readdir's */ +static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */ + +/* + * return a pointer into a directory + */ +long +telldir(dirp) + const DIR *dirp; +{ + register int index; + register struct ddloc *lp; + + if ((lp = (struct ddloc *)malloc(sizeof(struct ddloc))) == NULL) + return (-1); + index = dd_loccnt++; + lp->loc_index = index; + lp->loc_seek = dirp->dd_seek; + lp->loc_loc = dirp->dd_loc; + lp->loc_next = dd_hash[LOCHASH(index)]; + dd_hash[LOCHASH(index)] = lp; + return (index); +} + +/* + * seek to an entry in a directory. + * Only values returned by "telldir" should be passed to seekdir. + */ +void +_seekdir(dirp, loc) + register DIR *dirp; + long loc; +{ + register struct ddloc *lp; + register struct ddloc **prevlp; + struct dirent *dp; + extern long lseek(); + + prevlp = &dd_hash[LOCHASH(loc)]; + lp = *prevlp; + while (lp != NULL) { + if (lp->loc_index == loc) + break; + prevlp = &lp->loc_next; + lp = lp->loc_next; + } + if (lp == NULL) + return; + if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek) + goto found; + (void) lseek(dirp->dd_fd, lp->loc_seek, 0); + dirp->dd_seek = lp->loc_seek; + dirp->dd_loc = 0; + while (dirp->dd_loc < lp->loc_loc) { + dp = readdir(dirp); + if (dp == NULL) + break; + } +found: +#ifdef SINGLEUSE + *prevlp = lp->loc_next; + free((caddr_t)lp); +#endif +} diff --git a/newlib/libc/sys/sparc64/template.S b/newlib/libc/sys/sparc64/template.S new file mode 100644 index 000000000..53d8e778a --- /dev/null +++ b/newlib/libc/sys/sparc64/template.S @@ -0,0 +1,14 @@ +/* system call template */ + +/* Lots of system calls are trivial functions, so we build their source files + from a template. New syscalls can be added simply by editing the + Makefile! + + Usage: Compile this file with "func" set to the name of the syscall. */ + +#include "sys/syscallasm.h" + +#define concat(a,b) a##b +#define makesys(a) concat (SYS_, a) + + defsyscall (func, makesys(func)) diff --git a/newlib/libc/sys/sparc64/template_r.S b/newlib/libc/sys/sparc64/template_r.S new file mode 100644 index 000000000..8eaa4fc63 --- /dev/null +++ b/newlib/libc/sys/sparc64/template_r.S @@ -0,0 +1,26 @@ +/* reentrant system call template */ + +/* Lots of system calls are trivial functions, so we build their source files + from a template. New syscalls can be added simply by editing the + Makefile! + + The system calls aren't necessarily reentrant. If we were being used in + an embedded system they could be. Reentrant syscalls are also used, + however, to provide ANSI C namespace clean access to the host o/s. + + Usage: Compile this file with "func" set to the name of the syscall. */ + +#include "sys/syscallasm.h" + +#define concat(a,b) a##b +#define concat3(a,b,c) a##b##c +#define makesys(a) concat (SYS_, a) +#define make_r_fn(a) concat3 (_, a, _r) + +/* The leading _'s get turned into #'s by the Makefile. */ + +_ifdef REENT + defsyscall_r (make_r_fn (func), makesys (func)) +_else + defsyscall (func, makesys (func)) +_endif diff --git a/newlib/libc/sys/sparc64/utime.S b/newlib/libc/sys/sparc64/utime.S new file mode 100644 index 000000000..c5729cca3 --- /dev/null +++ b/newlib/libc/sys/sparc64/utime.S @@ -0,0 +1,10 @@ +/* utime() system call */ +/* svr4 only, sunos4 version calls utimes */ + +#ifdef __svr4__ + +#include "sys/syscallasm.h" + + defsyscall (utime, SYS_utime) + +#endif diff --git a/newlib/libc/sys/sparc64/utime2.c b/newlib/libc/sys/sparc64/utime2.c new file mode 100644 index 000000000..5f01e3b2b --- /dev/null +++ b/newlib/libc/sys/sparc64/utime2.c @@ -0,0 +1,26 @@ +/* utime() system call for sunos4 */ + +#ifndef __svr4__ + +#include <time.h> +#include <sys/time.h> +#include <utime.h> + +int +utime (char *path, struct utimbuf *times) +{ + if (times != NULL) + { + struct timeval timevals[2]; + + timevals[0].tv_sec = (long int) times->actime; + timevals[0].tv_usec = 0; + timevals[1].tv_sec = (long int) times->modtime; + timevals[1].tv_usec = 0; + return utimes (path, timevals); + } + + return utimes (path, (struct timeval *) 0); +} + +#endif diff --git a/newlib/libc/sys/sparc64/wait.S b/newlib/libc/sys/sparc64/wait.S new file mode 100644 index 000000000..49ab5e939 --- /dev/null +++ b/newlib/libc/sys/sparc64/wait.S @@ -0,0 +1,35 @@ +! wait() "system" call +! It is really not a system call as it uses wait4(). + +#include "sys/syscallasm.h" + + TEXT_SECTION + ALIGN (4) + +#ifdef REENT + + GLOBAL (ASM_SYMBOL (_wait_r)) +ASM_SYMBOL (_wait_r): + save %sp,-136,%sp + clr %o1 + mov %i1,%o2 + clr %o3 + call ASM_SYMBOL (_wait4_r) + clr %o4 + jmpl %i7+8,%g0 + restore %g0,%o0,%o0 + +#else /* ! REENT */ + + GLOBAL (ASM_SYMBOL (wait)) +ASM_SYMBOL (wait): + save %sp,-136,%sp + clr %o0 + mov %i0,%o1 + clr %o2 + call ASM_SYMBOL (wait4) + clr %o3 + jmpl %i7+8,%g0 + restore %g0,%o0,%o0 + +#endif /* ! REENT */ diff --git a/newlib/libc/sys/sun4/Makefile.am b/newlib/libc/sys/sun4/Makefile.am new file mode 100644 index 000000000..911008641 --- /dev/null +++ b/newlib/libc/sys/sun4/Makefile.am @@ -0,0 +1,95 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +COPYOFILES = \ + Ovfork.o \ + _exit.o \ + _sigvec.o \ + abort.o \ + access.o \ + cerror.o \ + chmod.o \ + chown.o \ + close.o \ + creat.o \ + dup.o \ + dup2.o \ + errlst.o \ + execl.o \ + execle.o \ + execv.o \ + execve.o \ + execvp.o \ + fork.o \ + fstat.o \ + getdtablesize.o \ + getpid.o \ + getrusage.o \ + gettimeofday.o \ + ieee_globals.o \ + ioctl.o \ + isatty.o \ + kill.o \ + link.o \ + lseek.o \ + open.o \ + pipe.o \ + popen.o \ + read.o \ + sbrk.o \ + setitimer.o \ + sigblock.o \ + signal.o \ + sigpause.o \ + sigsetjmp.o \ + sigsetmask.o \ + sigtramp.o \ + sigvec.o \ + sleep.o \ + start_float.o \ + stat.o \ + time.o \ + times.o \ + umask.o \ + unlink.o \ + utime.o \ + utimes.o \ + wait.o \ + wait3.o \ + wait4.o \ + write.o \ + rem.o \ + multiply.o \ + umultiply.o + +# These files are from Sun's libc.a, but the must be renamed because they +# conflict with other library .o's. They are renamed to xxxS.o. +COPYRENAMEOFILES = divS.o + +COPYOMFILES = ieee_flags.o + +lib_a_SOURCES = _main.c ieee.c +lib_a_LIBADD = $(COPYOFILES) $(COPYOMFILES) $(COPYRENAMEOFILES) + +$(COPYOFILES): + $(AR) x /lib/libc.a $(COPYOFILES) + +$(COPYRENAMEOFILES): + $(AR) x /lib/libc.a $(COPYRENAMEFILES:S.o=.o) + for f in $(COPYRENAMEOFILES); do mv `basename $$f S.o`.o $$f; done + +$(COPYOMFILES): + $(AR) x /lib/libm.a $(COPYOMFILES) + +all: crt0.o + +crt0.o: + cp /lib/crt0.o crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sun4/Makefile.in b/newlib/libc/sys/sun4/Makefile.in new file mode 100644 index 000000000..326dd98cc --- /dev/null +++ b/newlib/libc/sys/sun4/Makefile.in @@ -0,0 +1,388 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +COPYOFILES = \ + Ovfork.o \ + _exit.o \ + _sigvec.o \ + abort.o \ + access.o \ + cerror.o \ + chmod.o \ + chown.o \ + close.o \ + creat.o \ + dup.o \ + dup2.o \ + errlst.o \ + execl.o \ + execle.o \ + execv.o \ + execve.o \ + execvp.o \ + fork.o \ + fstat.o \ + getdtablesize.o \ + getpid.o \ + getrusage.o \ + gettimeofday.o \ + ieee_globals.o \ + ioctl.o \ + isatty.o \ + kill.o \ + link.o \ + lseek.o \ + open.o \ + pipe.o \ + popen.o \ + read.o \ + sbrk.o \ + setitimer.o \ + sigblock.o \ + signal.o \ + sigpause.o \ + sigsetjmp.o \ + sigsetmask.o \ + sigtramp.o \ + sigvec.o \ + sleep.o \ + start_float.o \ + stat.o \ + time.o \ + times.o \ + umask.o \ + unlink.o \ + utime.o \ + utimes.o \ + wait.o \ + wait3.o \ + wait4.o \ + write.o \ + rem.o \ + multiply.o \ + umultiply.o + +# These files are from Sun's libc.a, but the must be renamed because they +# conflict with other library .o's. They are renamed to xxxS.o. +COPYRENAMEOFILES = divS.o + +COPYOMFILES = ieee_flags.o + +lib_a_SOURCES = _main.c ieee.c +lib_a_LIBADD = $(COPYOFILES) $(COPYOMFILES) $(COPYRENAMEOFILES) + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_DEPENDENCIES = Ovfork.o _exit.o _sigvec.o abort.o access.o \ +cerror.o chmod.o chown.o close.o creat.o dup.o dup2.o errlst.o execl.o \ +execle.o execv.o execve.o execvp.o fork.o fstat.o getdtablesize.o \ +getpid.o getrusage.o gettimeofday.o ieee_globals.o ioctl.o isatty.o \ +kill.o link.o lseek.o open.o pipe.o popen.o read.o sbrk.o setitimer.o \ +sigblock.o signal.o sigpause.o sigsetjmp.o sigsetmask.o sigtramp.o \ +sigvec.o sleep.o start_float.o stat.o time.o times.o umask.o unlink.o \ +utime.o utimes.o wait.o wait3.o wait4.o write.o rem.o multiply.o \ +umultiply.o ieee_flags.o divS.o +lib_a_OBJECTS = _main.o ieee.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +$(COPYOFILES): + $(AR) x /lib/libc.a $(COPYOFILES) + +$(COPYRENAMEOFILES): + $(AR) x /lib/libc.a $(COPYRENAMEFILES:S.o=.o) + for f in $(COPYRENAMEOFILES); do mv `basename $$f S.o`.o $$f; done + +$(COPYOMFILES): + $(AR) x /lib/libm.a $(COPYOMFILES) + +all: crt0.o + +crt0.o: + cp /lib/crt0.o crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sun4/_main.c b/newlib/libc/sys/sun4/_main.c new file mode 100644 index 000000000..64878088d --- /dev/null +++ b/newlib/libc/sys/sun4/_main.c @@ -0,0 +1,6 @@ + +__main() +{ + + +} diff --git a/newlib/libc/sys/sun4/aclocal.m4 b/newlib/libc/sys/sun4/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sun4/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sun4/configure b/newlib/libc/sys/sun4/configure new file mode 100755 index 000000000..677d21882 --- /dev/null +++ b/newlib/libc/sys/sun4/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=ieee.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sun4/configure.in b/newlib/libc/sys/sun4/configure.in new file mode 100644 index 000000000..b16aed354 --- /dev/null +++ b/newlib/libc/sys/sun4/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sun4 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(ieee.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sun4/ieee.c b/newlib/libc/sys/sun4/ieee.c new file mode 100644 index 000000000..28289761d --- /dev/null +++ b/newlib/libc/sys/sun4/ieee.c @@ -0,0 +1,115 @@ + +#include <ieeefp.h> + + +fp_rnd +_DEFUN_VOID(fpgetround) +{ + char *out; + ieee_flags("get", "direction","", &out); + if (strcmp(out,"nearest") == 0) return FP_RN; + if (strcmp(out,"negative") == 0) return FP_RM; + if (strcmp(out,"positive") == 0) return FP_RP; + if (strcmp(out,"tozero") == 0) return FP_RZ; + abort(); + +} + +fp_rnd +_DEFUN(fpsetround,(new), + fp_rnd new) +{ + fp_rnd old = fpgetround(); + char *dummy; + + switch (new) + { + case FP_RN: + ieee_flags("set", "direction", "nearest", &dummy); + break; + case FP_RM: + ieee_flags("set", "direction", "negative", &dummy); + break; + case FP_RP: + ieee_flags("set", "direction", "positive", &dummy); + break; + case FP_RZ: + ieee_flags("set", "direction", "tozero", &dummy); + break; + default: + break; + } + return old; +} + + +fp_except +_DEFUN_VOID(fpgetmask) +{ + char *out; + int r = 0; + + int i = ieee_flags("get","exception","",&out); + if (i & 1) r |= FP_X_IMP; + if (i & 2) r |= FP_X_DX; + if (i & 4) r |= FP_X_UFL; + if (i & 8) r |= FP_X_OFL; + if (i & 16) r |= FP_X_INV; + return r; + +} + +fp_except +_DEFUN(fpsetmask,(mask), + fp_except mask) +{ + fp_except old = fpgetmask(); + + char *out; + ieee_flags("clear","exception", "all", &out); + + + if (mask & FP_X_IMP) + ieee_flags("set","exception","inexact", &out); + if (mask & FP_X_DX) + ieee_flags("set","exception","division", &out); + if (mask & FP_X_UFL) + ieee_flags("set","exception","underflow", &out); + if (mask & FP_X_OFL) + ieee_flags("set","exception","overflow", &out); + if (mask & FP_X_INV) + ieee_flags("set","exception","invalid", &out); + + return old; + +} + +fp_except +_DEFUN(fpsetsticky,(mask), + fp_except mask) +{ + return fpsetmask(mask); +} + +fp_except +_DEFUN_VOID(fpgetsticky) +{ + return fpgetmask(); +} + +int +_DEFUN(fpsetroundtoi,(rdi_mode), + fp_rdi rdi_mode) +{ + + return 0; + +} + +int +_DEFUN_VOID(fpgetroundtoi) +{ + + return 0; + +} diff --git a/newlib/libc/sys/sun4/sys/dirent.h b/newlib/libc/sys/sun4/sys/dirent.h new file mode 100644 index 000000000..b7ca90b0d --- /dev/null +++ b/newlib/libc/sys/sun4/sys/dirent.h @@ -0,0 +1,45 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_DIRENT_H +# define _SYS_DIRENT_H + +/* + * This file was written to be compatible with the BSD directory + * routines, so it looks like it. But it was written from scratch. + * Sean Eric Fagan, sef@Kithrup.COM + * + * Modified by dje@cygnus.com for sun. + */ + +typedef struct __dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + long dd_bsize; + long dd_off; + char *dd_buf; +} DIR; + +# define __dirfd(dp) ((dp)->dd_fd) + +DIR *opendir (const char *); +struct dirent *readdir (DIR *); +void rewinddir (DIR *); +int closedir (DIR *); + +#include <sys/types.h> + +#define MAXNAMLEN 255 + +#define d_ino d_fileno /* compatibility */ + +struct dirent { + off_t d_off; + unsigned long d_fileno; + unsigned short d_reclen; + unsigned short d_namlen; + char d_name[MAXNAMLEN + 1]; +}; + +/* FIXME: include definition of DIRSIZ() ? */ + +#endif diff --git a/newlib/libc/sys/sun4/sys/file.h b/newlib/libc/sys/sun4/sys/file.h new file mode 100644 index 000000000..94d65c1df --- /dev/null +++ b/newlib/libc/sys/sun4/sys/file.h @@ -0,0 +1,3 @@ +/* FIXME: really fcntl.h */ + +#include <sys/fcntl.h> diff --git a/newlib/libc/sys/sun4/sys/termios.h b/newlib/libc/sys/sun4/sys/termios.h new file mode 100644 index 000000000..ffdeb9bb2 --- /dev/null +++ b/newlib/libc/sys/sun4/sys/termios.h @@ -0,0 +1,122 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 000000 +# define B50 000001 +# define B75 000002 +# define B110 000003 +# define B134 000004 +# define B150 000005 +# define B200 000006 +# define B300 000007 +# define B600 000010 +# define B1200 000011 +# define B1800 000012 +# define B2400 000013 +# define B4800 000014 +# define B9600 000015 +# define B19200 000016 +# define B38400 000017 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef char speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#endif /* _SYS_TERMIOS_H */ + diff --git a/newlib/libc/sys/sun4/sys/utime.h b/newlib/libc/sys/sun4/sys/utime.h new file mode 100644 index 000000000..e2a55faff --- /dev/null +++ b/newlib/libc/sys/sun4/sys/utime.h @@ -0,0 +1,13 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _SYS_UTIME_H +# define _SYS_UTIME_H + +#include <time.h> + +struct utimbuf { + time_t actime; + time_t modtime; +}; + +#endif /* _SYS_UTIME_H */ + diff --git a/newlib/libc/sys/sun4/sys/utmp.h b/newlib/libc/sys/sun4/sys/utmp.h new file mode 100644 index 000000000..f519e6af0 --- /dev/null +++ b/newlib/libc/sys/sun4/sys/utmp.h @@ -0,0 +1,43 @@ +#ifndef _UTMP_H +# define _UTMP_H + +#include <sys/types.h> + +# define UTMP_FILE "/etc/utmp" +# define WTMP_FILE "/etc/wtmp" + +struct utmp { + char ut_user[8]; /* how limited */ + char ut_id[4]; /* ditto */ + char ut_line[12]; /* I'm repeating myself */ + short ut_pid; + short ut_type; + struct exit_status { + short e_termination; + short e_exit; + } ut_exit; /* for DEAD_PROCESS processes */ + time_t ut_time; +}; + +/* Definitions for ut_type fields */ + +# define EMPTY 0 +# define RUN_LVL 1 +# define BOOT_TIME 2 +# define OLD_TIME 3 +# define NEW_TIME 4 +# define INIT_PROCESS 5 +# define LOGIN_PROCESS 6 +# define USER_PROCESS 7 +# define DEAD_PROCESS 8 +# define ACCOUNTING 9 +# define UTMAXTYPE ACCOUNTING + +# define RUNLVL_MSG "run-level %c" +# define BOOT_MSG "system boot" +# define OTIME_MSG "old time" +# define NTIME_MSG "new time" + +#endif /* _UTMP_H */ + + diff --git a/newlib/libc/sys/sun4/sys/wait.h b/newlib/libc/sys/sun4/sys/wait.h new file mode 100644 index 000000000..08b756aab --- /dev/null +++ b/newlib/libc/sys/sun4/sys/wait.h @@ -0,0 +1,43 @@ +/* FIXME: From sys/sysvi386/sys */ +#ifndef _WAIT_H +# define _WAIT_H + +# define WNOHANG 1 +# define WUNTRACED 2 + +/* + * Unlike the atrocity that BSD ended up using, we do not have a "union + * wait," although I could probably implement one. Given the code I + * sometimes end up porting, it might be a good thing. Anyway, the + * format of a stat thingy, filled in by the wait*() routines, is: + * struct { + * int filler:16; + * union { + * struct stopped { + * int signo:8; + * int o177:8; // will be 0177 + * }; + * struct exited { + * int retval:8; + * int zero:8; // 0, obviously 8-) + * }; + * struct termed { + * int zero:8; // zeroes + * int corep:1; // was there a core file? + * int signo:7; // what?! Only 127 signals?! + * }; + * int value:16; + * }; + * }; + * + * Braver souls than I can turn that into a union wait, if desired. Ick. + */ + +# define WIFEXITED(val) ((val)&0xff) +# define WEXITSTATUS(val) (((val)>>8)&0xff) +# define WIFSIGNALED(val) ((val) && !((val)&0xff)) +# define WTERMSIG(val) (((val)>>8)&0x7f) +# define WIFSTOPPED(val) (((val)&0xff)==0177) +# define WSTOPSIG(val) (((val)>>8)&0xff) +#endif /* _SYS_WAIT_H */ + diff --git a/newlib/libc/sys/sysmec/Makefile.am b/newlib/libc/sys/sysmec/Makefile.am new file mode 100644 index 000000000..fdaa7f649 --- /dev/null +++ b/newlib/libc/sys/sysmec/Makefile.am @@ -0,0 +1,18 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = _exit.c access.c chmod.c chown.c close.c creat.c crt1.c \ + execv.c execve.c fork.c fstat.c getpid.c isatty.c \ + kill.c lseek.c open.c pipe.c read.c \ + sbrk.c stat.c time.c trap.S unlink.c utime.c wait.c write.c \ + times.c gettime.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sysmec/Makefile.in b/newlib/libc/sys/sysmec/Makefile.in new file mode 100644 index 000000000..f34404c5b --- /dev/null +++ b/newlib/libc/sys/sysmec/Makefile.in @@ -0,0 +1,306 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = _exit.c access.c chmod.c chown.c close.c creat.c crt1.c \ + execv.c execve.c fork.c fstat.c getpid.c isatty.c \ + kill.c lseek.c open.c pipe.c read.c \ + sbrk.c stat.c time.c trap.S unlink.c utime.c wait.c write.c \ + times.c gettime.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = _exit.o access.o chmod.o chown.o close.o creat.o crt1.o \ +execv.o execve.o fork.o fstat.o getpid.o isatty.o kill.o lseek.o open.o \ +pipe.o read.o sbrk.o stat.o time.o trap.o unlink.o utime.o wait.o \ +write.o times.o gettime.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sysmec/_exit.c b/newlib/libc/sys/sysmec/_exit.c new file mode 100644 index 000000000..bf7e2866b --- /dev/null +++ b/newlib/libc/sys/sysmec/_exit.c @@ -0,0 +1,34 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +static void _do_dtors() +{ + /* The loop variable is static so that if a destructor calls exit, + and we return here, we simply continue with the next destructor. */ + typedef void (*pfunc) (); + extern pfunc __dtors[]; + extern pfunc __dtors_end[]; + static pfunc *p = __dtors; + + while (p < __dtors_end) + (*p++) (); +} + + +void _exit (n) +{ + /* Destructors should be done earlier because they need to be done before the + files are closed, but here is better than nowhere (and this balances the + constructors done in crt1.c. */ + _do_dtors(); + + TRAP0 (SYS_exit, n, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/access.c b/newlib/libc/sys/sysmec/access.c new file mode 100644 index 000000000..ad368caa1 --- /dev/null +++ b/newlib/libc/sys/sysmec/access.c @@ -0,0 +1,34 @@ +/* This is file ACCESS.C */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <fcntl.h> +#include <sys/stat.h> +#include <unistd.h> + +int access(const char *fn, int flags) +{ + struct stat s; + if (stat(fn, &s)) + return -1; + if (s.st_mode & S_IFDIR) + return 0; + if (flags & W_OK) + { + if (s.st_mode & S_IWRITE) + return 0; + return -1; + } + return 0; +} + diff --git a/newlib/libc/sys/sysmec/aclocal.m4 b/newlib/libc/sys/sysmec/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sysmec/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sysmec/chmod.c b/newlib/libc/sys/sysmec/chmod.c new file mode 100644 index 000000000..181460415 --- /dev/null +++ b/newlib/libc/sys/sysmec/chmod.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +chmod (const char *path, mode_t mode) +{ + return TRAP0 (SYS_chmod, path, mode, 0); +} diff --git a/newlib/libc/sys/sysmec/chown.c b/newlib/libc/sys/sysmec/chown.c new file mode 100644 index 000000000..5b083f1db --- /dev/null +++ b/newlib/libc/sys/sysmec/chown.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + + +int +chown (const char *path, short owner, short group) +{ + return TRAP0 (SYS_chown, path, owner, group); +} diff --git a/newlib/libc/sys/sysmec/close.c b/newlib/libc/sys/sysmec/close.c new file mode 100644 index 000000000..323c74ac5 --- /dev/null +++ b/newlib/libc/sys/sysmec/close.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_close (int file) +{ + return TRAP0 (SYS_close, file, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/configure b/newlib/libc/sys/sysmec/configure new file mode 100755 index 000000000..cab59b35a --- /dev/null +++ b/newlib/libc/sys/sysmec/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt1.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sysmec/configure.in b/newlib/libc/sys/sysmec/configure.in new file mode 100644 index 000000000..39673d20c --- /dev/null +++ b/newlib/libc/sys/sysmec/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sysmec configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(crt1.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sysmec/creat.c b/newlib/libc/sys/sysmec/creat.c new file mode 100644 index 000000000..fce9bc31c --- /dev/null +++ b/newlib/libc/sys/sysmec/creat.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +creat (const char *path, + int mode) +{ + return TRAP0 (SYS_creat, path, mode, 0); +} diff --git a/newlib/libc/sys/sysmec/crt0.S b/newlib/libc/sys/sysmec/crt0.S new file mode 100644 index 000000000..ca7c88fe6 --- /dev/null +++ b/newlib/libc/sys/sysmec/crt0.S @@ -0,0 +1,65 @@ +#ifdef __mn10300__ + .section .text + .global _start +_start: + mov _stack-8,a0 # Load up the stack pointer + mov a0,sp + + mov _edata,a0 # Get the start/end of bss + mov _end,a1 + + cmp a0,a1 # If no bss, then do nothing + beq .L0 + + clr d0 # clear d0 + +.L1: + movbu d0,(a0) # Clear a byte and bump pointer + inc a0 + cmp a0,a1 + bne .L1 + +.L0: + call ___main,[],0 # Call __main to run ctors/dtors + clr d0 + clr d1 + mov d0,(4,sp) + call _main,[],0 # Call main program + call _exit,[],0 # All done, no need to return or + # deallocate our stack. + + .section ._stack +_stack: .long 1 +#else + .section .text + .global _start +_start: + mov _stack-4,a3 # Load up the stack pointer and allocate + # our current frame. + + mov _edata,a0 # Get the start/end of bss + mov _end,a1 + + cmp a0,a1 # If no bss, then do nothing + beqx .L0 + + sub d0,d0 # clear d0 + +.L1: + movb d0,(a0) # Clear a byte and bump pointer + add 1,a0 + cmp a0,a1 + bnex .L1 + +.L0: + jsr ___main + sub d0,d0 + mov d0,d1 + mov d0,(a3) + jsr _main # Call main program + jmp _exit # All done, no need to return or + # deallocate our stack. + + .section ._stack +_stack: .long 1 +#endif diff --git a/newlib/libc/sys/sysmec/crt1.c b/newlib/libc/sys/sysmec/crt1.c new file mode 100644 index 000000000..dd0be3145 --- /dev/null +++ b/newlib/libc/sys/sysmec/crt1.c @@ -0,0 +1,16 @@ +void __main () +{ + static int initialized; + if (! initialized) + { + typedef void (*pfunc) (); + extern pfunc __ctors[]; + extern pfunc __ctors_end[]; + pfunc *p; + + initialized = 1; + for (p = __ctors_end; p > __ctors; ) + (*--p) (); + + } +} diff --git a/newlib/libc/sys/sysmec/execv.c b/newlib/libc/sys/sysmec/execv.c new file mode 100644 index 000000000..6665721c0 --- /dev/null +++ b/newlib/libc/sys/sysmec/execv.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +execv (const char *path, char *const argv[]) +{ + return TRAP0 (SYS_execv, path, argv, 0); +} diff --git a/newlib/libc/sys/sysmec/execve.c b/newlib/libc/sys/sysmec/execve.c new file mode 100644 index 000000000..a0d64c233 --- /dev/null +++ b/newlib/libc/sys/sysmec/execve.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_execve (const char *path, char *const argv[], char *const envp[]) +{ + return TRAP0 (SYS_execve, path, argv, envp); +} diff --git a/newlib/libc/sys/sysmec/fork.c b/newlib/libc/sys/sysmec/fork.c new file mode 100644 index 000000000..1aab32445 --- /dev/null +++ b/newlib/libc/sys/sysmec/fork.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_fork () +{ + return TRAP0 (SYS_fork, 0, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/fstat.c b/newlib/libc/sys/sysmec/fstat.c new file mode 100644 index 000000000..261b1449b --- /dev/null +++ b/newlib/libc/sys/sysmec/fstat.c @@ -0,0 +1,19 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + st->st_blksize = 4096; + return 0; +} diff --git a/newlib/libc/sys/sysmec/getpid.c b/newlib/libc/sys/sysmec/getpid.c new file mode 100644 index 000000000..070382e75 --- /dev/null +++ b/newlib/libc/sys/sysmec/getpid.c @@ -0,0 +1,15 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +_getpid (n) +{ + return 1; +} diff --git a/newlib/libc/sys/sysmec/gettime.c b/newlib/libc/sys/sysmec/gettime.c new file mode 100644 index 000000000..69250b12c --- /dev/null +++ b/newlib/libc/sys/sysmec/gettime.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +#include "sys/time.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_gettimeofday (struct timeval *tp, void *tzp) +{ + return TRAP0 (SYS_gettimeofday, tp, tzp, 0); +} diff --git a/newlib/libc/sys/sysmec/isatty.c b/newlib/libc/sys/sysmec/isatty.c new file mode 100644 index 000000000..3ea99863d --- /dev/null +++ b/newlib/libc/sys/sysmec/isatty.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +isatty (fd) + int fd; +{ + return 1; +} diff --git a/newlib/libc/sys/sysmec/kill.c b/newlib/libc/sys/sysmec/kill.c new file mode 100644 index 000000000..638132fed --- /dev/null +++ b/newlib/libc/sys/sysmec/kill.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +_kill (n, m) +{ + return TRAP0 (SYS_exit, 0xdead, 0, 0); +} + diff --git a/newlib/libc/sys/sysmec/lseek.c b/newlib/libc/sys/sysmec/lseek.c new file mode 100644 index 000000000..dad6c39a8 --- /dev/null +++ b/newlib/libc/sys/sysmec/lseek.c @@ -0,0 +1,19 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/unistd.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +off_t +_lseek (int file, + off_t ptr, + int dir) +{ + return TRAP0 (SYS_lseek, file, ptr, dir); +} diff --git a/newlib/libc/sys/sysmec/open.c b/newlib/libc/sys/sysmec/open.c new file mode 100644 index 000000000..0a9dbb04c --- /dev/null +++ b/newlib/libc/sys/sysmec/open.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_open (const char *path, + int flags) +{ + return TRAP0 (SYS_open, path, flags, 0); +} diff --git a/newlib/libc/sys/sysmec/pipe.c b/newlib/libc/sys/sysmec/pipe.c new file mode 100644 index 000000000..4c0078067 --- /dev/null +++ b/newlib/libc/sys/sysmec/pipe.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +pipe (int *fd) +{ + return TRAP0 (SYS_pipe, fd, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/read.c b/newlib/libc/sys/sysmec/read.c new file mode 100644 index 000000000..eae084a6e --- /dev/null +++ b/newlib/libc/sys/sysmec/read.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +_read (int file, + char *ptr, + size_t len) +{ + return TRAP0 (SYS_read, file, ptr, len); +} diff --git a/newlib/libc/sys/sysmec/sbrk.c b/newlib/libc/sys/sysmec/sbrk.c new file mode 100644 index 000000000..80cb431f6 --- /dev/null +++ b/newlib/libc/sys/sysmec/sbrk.c @@ -0,0 +1,36 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +caddr_t +_sbrk (size_t incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; +#if 0 + char *sp = (char *)stack_ptr; +#else + char *sp = (char *)&sp; +#endif + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > sp) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return (caddr_t) prev_heap_end; +} diff --git a/newlib/libc/sys/sysmec/stat.c b/newlib/libc/sys/sysmec/stat.c new file mode 100644 index 000000000..11bbe8e30 --- /dev/null +++ b/newlib/libc/sys/sysmec/stat.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_stat (const char *path, struct stat *st) + +{ + return TRAP0 (SYS_stat, path, st, 0); +} diff --git a/newlib/libc/sys/sysmec/sys/syscall.h b/newlib/libc/sys/sysmec/sys/syscall.h new file mode 100644 index 000000000..f301ea0ee --- /dev/null +++ b/newlib/libc/sys/sysmec/sys/syscall.h @@ -0,0 +1,35 @@ +#define SYS_exit 1 +#define SYS_fork 2 + +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 +#define SYS_stat 38 + + +#define SYS_pipe 42 +#define SYS_execve 59 +#define SYS_times 43 +#define SYS_gettimeofday 116 + +#define SYS_utime 201 /* not really a system call */ +#define SYS_wait 202 /* nor is this */ + diff --git a/newlib/libc/sys/sysmec/time.c b/newlib/libc/sys/sysmec/time.c new file mode 100644 index 000000000..bde056eba --- /dev/null +++ b/newlib/libc/sys/sysmec/time.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +time_t +time (time_t *tloc) +{ + return TRAP0 (SYS_time, tloc, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/times.c b/newlib/libc/sys/sysmec/times.c new file mode 100644 index 000000000..3555fd6a4 --- /dev/null +++ b/newlib/libc/sys/sysmec/times.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +#include "sys/times.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +clock_t +times (struct tms *buffer) +{ + return TRAP0 (SYS_times, buffer, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/trap.S b/newlib/libc/sys/sysmec/trap.S new file mode 100644 index 000000000..911c02dbc --- /dev/null +++ b/newlib/libc/sys/sysmec/trap.S @@ -0,0 +1,13 @@ + .text + .global ___trap0 +___trap0: + syscall + cmp 0,d0 + beq .L0 + mov d0,(_errno) +.L0: +#ifdef __mn10300__ + rets +#else + rts +#endif diff --git a/newlib/libc/sys/sysmec/unlink.c b/newlib/libc/sys/sysmec/unlink.c new file mode 100644 index 000000000..debd806a9 --- /dev/null +++ b/newlib/libc/sys/sysmec/unlink.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_unlink () +{ + return -1; +} diff --git a/newlib/libc/sys/sysmec/utime.c b/newlib/libc/sys/sysmec/utime.c new file mode 100644 index 000000000..8d3e35977 --- /dev/null +++ b/newlib/libc/sys/sysmec/utime.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +utime (path, times) + const char *path; + char *times; +{ + return TRAP0 (SYS_utime, path, times, 0); +} diff --git a/newlib/libc/sys/sysmec/wait.c b/newlib/libc/sys/sysmec/wait.c new file mode 100644 index 000000000..2e5cb6bad --- /dev/null +++ b/newlib/libc/sys/sysmec/wait.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_wait (statusp) + int *statusp; +{ + return TRAP0 (SYS_wait, 0, 0, 0); +} diff --git a/newlib/libc/sys/sysmec/write.c b/newlib/libc/sys/sysmec/write.c new file mode 100644 index 000000000..78fd64f22 --- /dev/null +++ b/newlib/libc/sys/sysmec/write.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (p1), (p2), (p3)) + +int +_write ( int file, + char *ptr, + size_t len) +{ + return TRAP0 (SYS_write, file, ptr, len); +} diff --git a/newlib/libc/sys/sysnec810/Makefile.am b/newlib/libc/sys/sysnec810/Makefile.am new file mode 100644 index 000000000..018895432 --- /dev/null +++ b/newlib/libc/sys/sysnec810/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = io.s write.c sbrk.c misc.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sysnec810/Makefile.in b/newlib/libc/sys/sysnec810/Makefile.in new file mode 100644 index 000000000..36a4f150e --- /dev/null +++ b/newlib/libc/sys/sysnec810/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = io.s write.c sbrk.c misc.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = io.o write.o sbrk.o misc.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sysnec810/aclocal.m4 b/newlib/libc/sys/sysnec810/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sysnec810/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sysnec810/configure b/newlib/libc/sys/sysnec810/configure new file mode 100755 index 000000000..fa90aa2e3 --- /dev/null +++ b/newlib/libc/sys/sysnec810/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=io.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sysnec810/configure.in b/newlib/libc/sys/sysnec810/configure.in new file mode 100644 index 000000000..483662c7a --- /dev/null +++ b/newlib/libc/sys/sysnec810/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sysnec810 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(io.s) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sysnec810/crt0.s b/newlib/libc/sys/sysnec810/crt0.s new file mode 100644 index 000000000..3c7a382ff --- /dev/null +++ b/newlib/libc/sys/sysnec810/crt0.s @@ -0,0 +1,22 @@ + .set STACKTOP, 0x100000 + + .extern __tp_TEXT, 4 + .extern __gp_DATA, 4 + .extern _main + .globl __start + .globl _exit + .globl __exit + + .text +__start: + mov 2, r10 -- set Cache Control Word + ldsr r10, 24 -- +# + mov STACKTOP, sp -- set stack pointer + mov #__tp_TEXT, tp -- set tp register + mov #__gp_DATA, gp -- set gp register offset + add tp, gp -- set gp register + jal _main -- call main function +__exit: + halt -- end of the program + diff --git a/newlib/libc/sys/sysnec810/io.s b/newlib/libc/sys/sysnec810/io.s new file mode 100644 index 000000000..f85975a1f --- /dev/null +++ b/newlib/libc/sys/sysnec810/io.s @@ -0,0 +1,41 @@ +# V800 Series Assembler Source File created by cxx732 + .data + .sdata + .bss + .sbss + .text + #@(#)V800 Series Assembly Code Improver E1.50c [16 Jul 93] + #@(#)V800 Series Assembly Code Generator E1.00f'[25 Nov 93] + #@(#)V800 Series Optic Optimizer E1.00e [13 Jul 93] + #@(#)optimized at Wed May 11 13:37:07 1994 + #@(#)option:_R_xcedfgbhjqkn___s____T: + #@(#)V800 Series Optic Inliner E1.00c [14 Jul 93] + #@(#)V800 Series Optic Merger E1.00b [15 Jul 93] + #@(#)V800 Series Optimizing C Compiler Frontend E1.00j [26 Feb 94] + .file "/sethra/death/sef/v810/devo/newlib/libc/sys/v810/io.c" + #@(#) fsort : -N8192 -G512 -C1024 -q -e -a -d + .align 4 + .frame __inb, .F2 + .globl __inb +__inb: + add -.F2, sp + in.b [r6],r10 + andi 0xff, r10, r10 + add .F2, sp + jmp [lp] + .set .F2, 0x8 + .set .A2, 0x4 + .set .T2, 0x0 + .align 4 + .frame __outb, .F3 + .globl __outb +__outb: + andi 0xff, r7, r10 + out.b r10,[r6] + jmp [lp] + .set .F3, 0x0 + .set .A3, 0x0 + .set .T3, 0x0 + .vline + .vdebug + .vdbstrtab diff --git a/newlib/libc/sys/sysnec810/misc.c b/newlib/libc/sys/sysnec810/misc.c new file mode 100644 index 000000000..f44c03d51 --- /dev/null +++ b/newlib/libc/sys/sysnec810/misc.c @@ -0,0 +1,40 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> + +extern int _write (int, void*, unsigned int); + +int +_open() { + return -1; +} + +int +_close() { + return -1; +} + +int +_lseek() { + return 0; +} + +int +_read() { + return 0; +} + +int +isatty() { + return 1; +} + +int +_DEFUN(_fstat,(file, st), + int file _AND + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + diff --git a/newlib/libc/sys/sysnec810/sbrk.c b/newlib/libc/sys/sysnec810/sbrk.c new file mode 100644 index 000000000..b1cf4a781 --- /dev/null +++ b/newlib/libc/sys/sysnec810/sbrk.c @@ -0,0 +1,12 @@ +extern int _end; + +static char *end_of_data = (char *) &_end; + +char * +_sbrk (int delta) { + char *ptr = end_of_data; + + end_of_data += delta; + return ptr; +} + diff --git a/newlib/libc/sys/sysnec810/write.c b/newlib/libc/sys/sysnec810/write.c new file mode 100644 index 000000000..96c1e49ce --- /dev/null +++ b/newlib/libc/sys/sysnec810/write.c @@ -0,0 +1,36 @@ +static volatile char *data = (char *)(0x20); +static volatile char *control = (char *)(0x24); + +extern void _outb (volatile char*, unsigned char); +extern unsigned char _inb (volatile char*); + +static unsigned char + read_scc_reg (unsigned char n) +{ + _outb (control, n); + return _inb(control); +} + +static void write_scc_data (unsigned char n) +{ + _outb (data, n); +} + +int +_write (int dev, void *buf, unsigned int len) +{ + int i; + char *string = (char*)buf; + + for (i = 0; i < len; i++) + { + int j; + + for (j = 0 ; j < 5000; j++) + ; + write_scc_data (string[i]); + + } + return len; +} + diff --git a/newlib/libc/sys/sysnecv850/Makefile.am b/newlib/libc/sys/sysnecv850/Makefile.am new file mode 100644 index 000000000..2c74d173d --- /dev/null +++ b/newlib/libc/sys/sysnecv850/Makefile.am @@ -0,0 +1,19 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _exit.c access.c chmod.c chown.c close.c creat.c crt1.c \ + execv.c execve.c fork.c fstat.c getpid.c isatty.c \ + kill.c lseek.c open.c pipe.c read.c link.c \ + sbrk.c stat.c time.c trap.S unlink.c utime.c wait.c write.c \ + times.c gettime.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sysnecv850/Makefile.in b/newlib/libc/sys/sysnecv850/Makefile.in new file mode 100644 index 000000000..20060ef4c --- /dev/null +++ b/newlib/libc/sys/sysnecv850/Makefile.in @@ -0,0 +1,307 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + _exit.c access.c chmod.c chown.c close.c creat.c crt1.c \ + execv.c execve.c fork.c fstat.c getpid.c isatty.c \ + kill.c lseek.c open.c pipe.c read.c link.c \ + sbrk.c stat.c time.c trap.S unlink.c utime.c wait.c write.c \ + times.c gettime.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = _exit.o access.o chmod.o chown.o close.o creat.o crt1.o \ +execv.o execve.o fork.o fstat.o getpid.o isatty.o kill.o lseek.o open.o \ +pipe.o read.o link.o sbrk.o stat.o time.o trap.o unlink.o utime.o \ +wait.o write.o times.o gettime.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sysnecv850/_exit.c b/newlib/libc/sys/sysnecv850/_exit.c new file mode 100644 index 000000000..b45ae96c8 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/_exit.c @@ -0,0 +1,34 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +static void _do_dtors() +{ + /* The loop variable is static so that if a destructor calls exit, + and we return here, we simply continue with the next destructor. */ + typedef void (*pfunc) (); + extern pfunc __dtors[]; + extern pfunc __dtors_end[]; + static pfunc *p = __dtors; + + while (p < __dtors_end) + (*p++) (); +} + + +void _exit (n) +{ + /* Destructors should be done earlier because they need to be done before the + files are closed, but here is better than nowhere (and this balances the + constructors done in crt1.c. */ + _do_dtors(); + + TRAP0 (SYS_exit, n, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/access.c b/newlib/libc/sys/sysnecv850/access.c new file mode 100644 index 000000000..ad368caa1 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/access.c @@ -0,0 +1,34 @@ +/* This is file ACCESS.C */ +/* +** Copyright (C) 1993 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 +** +** This file is distributed under the terms listed in the document +** "copying.dj", available from DJ Delorie at the address above. +** A copy of "copying.dj" should accompany this file; if not, a copy +** should be available from where this file was obtained. This file +** may not be distributed without a verbatim copy of "copying.dj". +** +** This file is distributed WITHOUT ANY WARRANTY; without even the implied +** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +*/ + +#include <fcntl.h> +#include <sys/stat.h> +#include <unistd.h> + +int access(const char *fn, int flags) +{ + struct stat s; + if (stat(fn, &s)) + return -1; + if (s.st_mode & S_IFDIR) + return 0; + if (flags & W_OK) + { + if (s.st_mode & S_IWRITE) + return 0; + return -1; + } + return 0; +} + diff --git a/newlib/libc/sys/sysnecv850/aclocal.m4 b/newlib/libc/sys/sysnecv850/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sysnecv850/chmod.c b/newlib/libc/sys/sysnecv850/chmod.c new file mode 100644 index 000000000..c86e5c902 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/chmod.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +chmod (const char *path, mode_t mode) +{ + return TRAP0 (SYS_chmod, path, mode, 0); +} diff --git a/newlib/libc/sys/sysnecv850/chown.c b/newlib/libc/sys/sysnecv850/chown.c new file mode 100644 index 000000000..0344d77a9 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/chown.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +chown (const char *path, short owner, short group) +{ + return TRAP0 (SYS_chown, path, owner, group); +} diff --git a/newlib/libc/sys/sysnecv850/close.c b/newlib/libc/sys/sysnecv850/close.c new file mode 100644 index 000000000..3c62f68e2 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/close.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_close (int file) +{ + return TRAP0 (SYS_close, file, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/configure b/newlib/libc/sys/sysnecv850/configure new file mode 100755 index 000000000..cab59b35a --- /dev/null +++ b/newlib/libc/sys/sysnecv850/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt1.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sysnecv850/configure.in b/newlib/libc/sys/sysnecv850/configure.in new file mode 100644 index 000000000..0bb0a1f85 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sysnecv850 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(crt1.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sysnecv850/creat.c b/newlib/libc/sys/sysnecv850/creat.c new file mode 100644 index 000000000..8d468a68c --- /dev/null +++ b/newlib/libc/sys/sysnecv850/creat.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +creat (const char *path, + int mode) +{ + return TRAP0 (SYS_creat, path, mode, 0); +} diff --git a/newlib/libc/sys/sysnecv850/crt0.S b/newlib/libc/sys/sysnecv850/crt0.S new file mode 100644 index 000000000..15d94dc3c --- /dev/null +++ b/newlib/libc/sys/sysnecv850/crt0.S @@ -0,0 +1,77 @@ +# NEC V850 startup code + + .section .text + .global _start + +_start: + +#if defined __v850e__ || defined __v850ea__ + + movea 255, r0, r20 + mov 65535, r21 + mov hilo(_stack), sp + mov hilo(__ep), ep + mov hilo(__gp), gp + mov hilo(__ctbp), r6 + ldsr r6, ctbp + mov hilo(_edata), r6 + mov hilo(_end), r7 +.L0: + st.w r0, 0[r6] + addi 4, r6, r6 + cmp r7, r6 + bl .L0 +.L1: + jarl ___main, r31 + addi -12, sp, sp + mov 0, r6 + mov 0, r7 + mov 0, r8 + jarl _main, r31 + mov r10, r6 + jarl _exit, r31 + +# else + movea 255, r0, r20 + mov r0, r21 + ori 65535, r0, r21 + movhi hi(_stack), r0, sp + movea lo(_stack), sp, sp + movhi hi(__ep), r0, ep + movea lo(__ep), ep, ep + movhi hi(__gp), r0, gp + movea lo(__gp), gp, gp + + /* Initialise the call table base pointer. + We do this even though we are supposedly + assembling this file for the v850 as this + allows us to use the same binary for all + versions of the v850 architecture. */ + + movhi hi(__ctbp), r0, r6 + movea lo(__ctbp), r6, r6 + ldsr r6, ctbp + + movhi hi(_edata), r0, r6 + movea lo(_edata), r6, r6 + movhi hi(_end), r0, r7 + movea lo(_end), r7, r7 +.L0: + st.b r0, 0[r6] + addi 1, r6, r6 + cmp r7, r6 + bl .L0 +.L1: + jarl ___main, r31 + addi -12, sp, sp + mov 0, r6 + mov 0, r7 + mov 0, r8 + jarl _main, r31 + mov r10, r6 + jarl _exit, r31 + +# endif + + .section .stack +_stack: .long 1 diff --git a/newlib/libc/sys/sysnecv850/crt1.c b/newlib/libc/sys/sysnecv850/crt1.c new file mode 100644 index 000000000..dd0be3145 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/crt1.c @@ -0,0 +1,16 @@ +void __main () +{ + static int initialized; + if (! initialized) + { + typedef void (*pfunc) (); + extern pfunc __ctors[]; + extern pfunc __ctors_end[]; + pfunc *p; + + initialized = 1; + for (p = __ctors_end; p > __ctors; ) + (*--p) (); + + } +} diff --git a/newlib/libc/sys/sysnecv850/execv.c b/newlib/libc/sys/sysnecv850/execv.c new file mode 100644 index 000000000..5286be68b --- /dev/null +++ b/newlib/libc/sys/sysnecv850/execv.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +execv (const char *path, char *const argv[]) +{ + return TRAP0 (SYS_execv, path, argv, 0); +} diff --git a/newlib/libc/sys/sysnecv850/execve.c b/newlib/libc/sys/sysnecv850/execve.c new file mode 100644 index 000000000..b8d97f914 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/execve.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_execve (const char *path, char *const argv[], char *const envp[]) +{ + return TRAP0 (SYS_execve, path, argv, envp); +} diff --git a/newlib/libc/sys/sysnecv850/fork.c b/newlib/libc/sys/sysnecv850/fork.c new file mode 100644 index 000000000..116116c1b --- /dev/null +++ b/newlib/libc/sys/sysnecv850/fork.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_fork () +{ + return TRAP0 (SYS_fork, 0, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/fstat.c b/newlib/libc/sys/sysnecv850/fstat.c new file mode 100644 index 000000000..e8783b376 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/fstat.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} diff --git a/newlib/libc/sys/sysnecv850/getpid.c b/newlib/libc/sys/sysnecv850/getpid.c new file mode 100644 index 000000000..18fd1494e --- /dev/null +++ b/newlib/libc/sys/sysnecv850/getpid.c @@ -0,0 +1,15 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +_getpid (n) +{ + return 1; +} diff --git a/newlib/libc/sys/sysnecv850/gettime.c b/newlib/libc/sys/sysnecv850/gettime.c new file mode 100644 index 000000000..fc47532a0 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/gettime.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +#include "sys/time.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_gettimeofday (struct timeval *tp, void *tzp) +{ + return TRAP0 (SYS_gettimeofday, tp, tzp, 0); +} diff --git a/newlib/libc/sys/sysnecv850/isatty.c b/newlib/libc/sys/sysnecv850/isatty.c new file mode 100644 index 000000000..e5361559f --- /dev/null +++ b/newlib/libc/sys/sysnecv850/isatty.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +isatty (fd) + int fd; +{ + return 1; +} diff --git a/newlib/libc/sys/sysnecv850/kill.c b/newlib/libc/sys/sysnecv850/kill.c new file mode 100644 index 000000000..b8e53955a --- /dev/null +++ b/newlib/libc/sys/sysnecv850/kill.c @@ -0,0 +1,19 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +#include <reent.h> + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +_kill (pid, sig) + pid_t pid; + int sig; +{ + return TRAP0 (SYS_exit, 0xdead0000 | sig, 0, 0); +} + diff --git a/newlib/libc/sys/sysnecv850/link.c b/newlib/libc/sys/sysnecv850/link.c new file mode 100644 index 000000000..9776d7993 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/link.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_link () +{ + return -1; +} diff --git a/newlib/libc/sys/sysnecv850/lseek.c b/newlib/libc/sys/sysnecv850/lseek.c new file mode 100644 index 000000000..b5d3ef0c2 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/lseek.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_lseek (int file, + int ptr, + int dir) +{ + return TRAP0 (SYS_lseek, file, ptr, dir); +} diff --git a/newlib/libc/sys/sysnecv850/open.c b/newlib/libc/sys/sysnecv850/open.c new file mode 100644 index 000000000..96616e528 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/open.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_open (const char *path, + int flags) +{ + return TRAP0 (SYS_open, path, flags, 0); +} diff --git a/newlib/libc/sys/sysnecv850/pipe.c b/newlib/libc/sys/sysnecv850/pipe.c new file mode 100644 index 000000000..494a99e36 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/pipe.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +pipe (int *fd) +{ + return TRAP0 (SYS_pipe, fd, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/read.c b/newlib/libc/sys/sysnecv850/read.c new file mode 100644 index 000000000..ec064cbb2 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/read.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +_read (int file, + char *ptr, + int len) +{ + return TRAP0 (SYS_read, file, ptr, len); +} diff --git a/newlib/libc/sys/sysnecv850/sbrk.c b/newlib/libc/sys/sysnecv850/sbrk.c new file mode 100644 index 000000000..b41370595 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/sbrk.c @@ -0,0 +1,36 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +caddr_t +_sbrk (int incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; +#if 0 + char *sp = (char *)stack_ptr; +#else + char *sp = (char *)&sp; +#endif + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > sp) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + heap_end += incr; + return (caddr_t) prev_heap_end; +} diff --git a/newlib/libc/sys/sysnecv850/stat.c b/newlib/libc/sys/sysnecv850/stat.c new file mode 100644 index 000000000..dc8351e1a --- /dev/null +++ b/newlib/libc/sys/sysnecv850/stat.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_stat (const char *path, struct stat *st) + +{ + return TRAP0 (SYS_stat, path, st, 0); +} diff --git a/newlib/libc/sys/sysnecv850/sys/syscall.h b/newlib/libc/sys/sysnecv850/sys/syscall.h new file mode 100644 index 000000000..f301ea0ee --- /dev/null +++ b/newlib/libc/sys/sysnecv850/sys/syscall.h @@ -0,0 +1,35 @@ +#define SYS_exit 1 +#define SYS_fork 2 + +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 +#define SYS_stat 38 + + +#define SYS_pipe 42 +#define SYS_execve 59 +#define SYS_times 43 +#define SYS_gettimeofday 116 + +#define SYS_utime 201 /* not really a system call */ +#define SYS_wait 202 /* nor is this */ + diff --git a/newlib/libc/sys/sysnecv850/time.c b/newlib/libc/sys/sysnecv850/time.c new file mode 100644 index 000000000..d0dc93f8a --- /dev/null +++ b/newlib/libc/sys/sysnecv850/time.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +time_t +time (time_t *tloc) +{ + return TRAP0 (SYS_time, tloc, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/times.c b/newlib/libc/sys/sysnecv850/times.c new file mode 100644 index 000000000..a558267fe --- /dev/null +++ b/newlib/libc/sys/sysnecv850/times.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +#include "sys/times.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +clock_t +_times (struct tms *buffer) +{ + return TRAP0 (SYS_times, buffer, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/trap.S b/newlib/libc/sys/sysnecv850/trap.S new file mode 100644 index 000000000..9955572a3 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/trap.S @@ -0,0 +1,10 @@ + .text + .global ___trap0 +___trap0: + trap 31 + tst r10,r10 + bz .L0 + movhi hi(_errno),r0,r6 + st.w r10,lo(_errno)[r6] +.L0: + jmp [r31] diff --git a/newlib/libc/sys/sysnecv850/unlink.c b/newlib/libc/sys/sysnecv850/unlink.c new file mode 100644 index 000000000..c6261d3eb --- /dev/null +++ b/newlib/libc/sys/sysnecv850/unlink.c @@ -0,0 +1,16 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_unlink () +{ + return -1; +} diff --git a/newlib/libc/sys/sysnecv850/utime.c b/newlib/libc/sys/sysnecv850/utime.c new file mode 100644 index 000000000..ea1f78993 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/utime.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +utime (path, times) + const char *path; + char *times; +{ + return TRAP0 (SYS_utime, path, times, 0); +} diff --git a/newlib/libc/sys/sysnecv850/wait.c b/newlib/libc/sys/sysnecv850/wait.c new file mode 100644 index 000000000..d8c96f05b --- /dev/null +++ b/newlib/libc/sys/sysnecv850/wait.c @@ -0,0 +1,17 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_wait (statusp) + int *statusp; +{ + return TRAP0 (SYS_wait, 0, 0, 0); +} diff --git a/newlib/libc/sys/sysnecv850/write.c b/newlib/libc/sys/sysnecv850/write.c new file mode 100644 index 000000000..136ac9ec8 --- /dev/null +++ b/newlib/libc/sys/sysnecv850/write.c @@ -0,0 +1,18 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" + +int errno; + +int __trap0 (int function, int p1, int p2, int p3); + +#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3)) + +int +_write ( int file, + char *ptr, + int len) +{ + return TRAP0 (SYS_write, file, ptr, len); +} diff --git a/newlib/libc/sys/sysvi386/Makefile.am b/newlib/libc/sys/sysvi386/Makefile.am new file mode 100644 index 000000000..91c8d69a6 --- /dev/null +++ b/newlib/libc/sys/sysvi386/Makefile.am @@ -0,0 +1,23 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + ioctl.s isatty.c read.s lseek.s close.s sbrk.c fstat.s cerror.s \ + _exit.s write.s open.s signal.s kill.s getpid.s brk.s fork.s wait.s \ + execve.s exec.c utime.s fcntl.s chmod.s getuid.s getgid.s time.s \ + stat.s link.s unlink.s rename.s mkdir.s rmdir.s sigaction.s \ + sigprocmask.s waitpid.s sysconf.s pathconf.s fpathconf.s \ + getdents.s opendir.c readdir.c rewinddir.c closedir.c pipe.s \ + getgroups.s setuid.s getuid.s setgid.s geteuid.s getegid.s \ + chdir.s dup2.c dup.c tcgetattr.c tcsetattr.c speed.c tcline.c \ + times.s pause.s sleep.c alarm.s access.s _longjmp.s _setjmp.s + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sysvi386/Makefile.in b/newlib/libc/sys/sysvi386/Makefile.in new file mode 100644 index 000000000..38c1f76d4 --- /dev/null +++ b/newlib/libc/sys/sysvi386/Makefile.in @@ -0,0 +1,316 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + ioctl.s isatty.c read.s lseek.s close.s sbrk.c fstat.s cerror.s \ + _exit.s write.s open.s signal.s kill.s getpid.s brk.s fork.s wait.s \ + execve.s exec.c utime.s fcntl.s chmod.s getuid.s getgid.s time.s \ + stat.s link.s unlink.s rename.s mkdir.s rmdir.s sigaction.s \ + sigprocmask.s waitpid.s sysconf.s pathconf.s fpathconf.s \ + getdents.s opendir.c readdir.c rewinddir.c closedir.c pipe.s \ + getgroups.s setuid.s getuid.s setgid.s geteuid.s getegid.s \ + chdir.s dup2.c dup.c tcgetattr.c tcsetattr.c speed.c tcline.c \ + times.s pause.s sleep.c alarm.s access.s _longjmp.s _setjmp.s + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = ioctl.o isatty.o read.o lseek.o close.o sbrk.o fstat.o \ +cerror.o _exit.o write.o open.o signal.o kill.o getpid.o brk.o fork.o \ +wait.o execve.o exec.o utime.o fcntl.o chmod.o getuid.o getgid.o time.o \ +stat.o link.o unlink.o rename.o mkdir.o rmdir.o sigaction.o \ +sigprocmask.o waitpid.o sysconf.o pathconf.o fpathconf.o getdents.o \ +opendir.o readdir.o rewinddir.o closedir.o pipe.o getgroups.o setuid.o \ +getuid.o setgid.o geteuid.o getegid.o chdir.o dup2.o dup.o tcgetattr.o \ +tcsetattr.o speed.o tcline.o times.o pause.o sleep.o alarm.o access.o \ +_longjmp.o _setjmp.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sysvi386/_exit.s b/newlib/libc/sys/sysvi386/_exit.s new file mode 100644 index 000000000..57e598979 --- /dev/null +++ b/newlib/libc/sys/sysvi386/_exit.s @@ -0,0 +1,6 @@ + + .globl _exit +_exit: + movl $1, %eax + lcall $7,$0 + diff --git a/newlib/libc/sys/sysvi386/_longjmp.s b/newlib/libc/sys/sysvi386/_longjmp.s new file mode 100644 index 000000000..691409b0b --- /dev/null +++ b/newlib/libc/sys/sysvi386/_longjmp.s @@ -0,0 +1,31 @@ +/ +/ our buffer looks like: +/ eax,ebx,ecx,edx,esi,edi,esp,ebp,pc +/ +/ _longjmp is called with two parameters: jmp_buf*,int +/ jmp_buf* is at 4(%esp), int is at 8(%esp) +/ retaddr is, of course, at (%esp) + + .globl _longjmp + .globl longjmp +_longjmp: +longjmp: + movl 4(%esp), %ebx / address of buf + movl 8(%esp), %eax / store return value + + movl 24(%ebx), %esp / restore stack + movl 32(%ebx), %edi +/ Next line sets up return address. + movl %edi, 0(%esp) + movl 8(%ebx), %ecx + movl 12(%ebx), %edx + movl 16(%ebx), %esi + movl 20(%ebx), %edi + movl 28(%ebx), %ebp + movl 4(%ebx), %ebx + testl %eax,%eax + jne bye + incl %eax / eax hold 0 if we are here +bye: + ret + diff --git a/newlib/libc/sys/sysvi386/_setjmp.s b/newlib/libc/sys/sysvi386/_setjmp.s new file mode 100644 index 000000000..8f191b59a --- /dev/null +++ b/newlib/libc/sys/sysvi386/_setjmp.s @@ -0,0 +1,24 @@ +/ +/ our buffer looks like: +/ eax,ebx,ecx,edx,esi,edi,esp,ebp,pc + + .globl _setjmp + .globl setjmp +_setjmp: +setjmp: + pushl %ebx + movl 8(%esp), %ebx + movl %eax, (%ebx) + popl %eax + movl %eax, 4(%ebx) + movl %ecx, 8(%ebx) + movl %edx, 12(%ebx) + movl %esi, 16(%ebx) + movl %edi, 20(%ebx) + movl %esp, 24(%ebx) + movl %ebp, 28(%ebx) + movl (%esp), %eax + movl %eax, 32(%ebx) + xorl %eax, %eax + ret + diff --git a/newlib/libc/sys/sysvi386/access.s b/newlib/libc/sys/sysvi386/access.s new file mode 100644 index 000000000..bf35891dc --- /dev/null +++ b/newlib/libc/sys/sysvi386/access.s @@ -0,0 +1,8 @@ + .globl _access + .globl access +access: +_access: + movl $0x21, %eax + lcall $7, $0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/aclocal.m4 b/newlib/libc/sys/sysvi386/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sysvi386/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sysvi386/alarm.s b/newlib/libc/sys/sysvi386/alarm.s new file mode 100644 index 000000000..f31b3d380 --- /dev/null +++ b/newlib/libc/sys/sysvi386/alarm.s @@ -0,0 +1,5 @@ + .globl _alarm +_alarm: + movl $0x1b, %eax + lcall $7,$0 + ret diff --git a/newlib/libc/sys/sysvi386/brk.s b/newlib/libc/sys/sysvi386/brk.s new file mode 100644 index 000000000..c3cb43f11 --- /dev/null +++ b/newlib/libc/sys/sysvi386/brk.s @@ -0,0 +1,8 @@ + + .globl _brk +_brk: + movl $0x11, %eax + lcall $7,$0 + jb _cerror + xor %eax,%eax + ret diff --git a/newlib/libc/sys/sysvi386/cerror.s b/newlib/libc/sys/sysvi386/cerror.s new file mode 100644 index 000000000..9d53bae15 --- /dev/null +++ b/newlib/libc/sys/sysvi386/cerror.s @@ -0,0 +1,9 @@ + .globl _cerror +_cerror: + movl %eax, errno + movl $-1, %eax + ret + .data + .globl errno +errno: .long 0 + diff --git a/newlib/libc/sys/sysvi386/chdir.s b/newlib/libc/sys/sysvi386/chdir.s new file mode 100644 index 000000000..9974c8668 --- /dev/null +++ b/newlib/libc/sys/sysvi386/chdir.s @@ -0,0 +1,9 @@ + .globl _chdir + .globl chdir +_chdir: +chdir: + movl $0xc, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/chmod.s b/newlib/libc/sys/sysvi386/chmod.s new file mode 100644 index 000000000..ab5ef3d6a --- /dev/null +++ b/newlib/libc/sys/sysvi386/chmod.s @@ -0,0 +1,9 @@ + .globl _chmod + .globl chmod +_chmod: +chmod: + movl $0xf, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/close.s b/newlib/libc/sys/sysvi386/close.s new file mode 100644 index 000000000..e46c0c13d --- /dev/null +++ b/newlib/libc/sys/sysvi386/close.s @@ -0,0 +1,9 @@ + .globl _close + .globl close +_close: +close: + movl $6, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/closedir.c b/newlib/libc/sys/sysvi386/closedir.c new file mode 100644 index 000000000..d87d81654 --- /dev/null +++ b/newlib/libc/sys/sysvi386/closedir.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)closedir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * close a directory. + */ +int +closedir(dirp) + register DIR *dirp; +{ + int fd; + + fd = dirp->dd_fd; + dirp->dd_fd = -1; + dirp->dd_loc = 0; + (void)free((void *)dirp->dd_buf); + (void)free((void *)dirp); + return(close(fd)); +} diff --git a/newlib/libc/sys/sysvi386/configure b/newlib/libc/sys/sysvi386/configure new file mode 100755 index 000000000..35ff013b8 --- /dev/null +++ b/newlib/libc/sys/sysvi386/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=fps.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sysvi386/configure.in b/newlib/libc/sys/sysvi386/configure.in new file mode 100644 index 000000000..68eeb5243 --- /dev/null +++ b/newlib/libc/sys/sysvi386/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sysvi386 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(fps.s) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sysvi386/crt0.c b/newlib/libc/sys/sysvi386/crt0.c new file mode 100644 index 000000000..7949b3d4c --- /dev/null +++ b/newlib/libc/sys/sysvi386/crt0.c @@ -0,0 +1,127 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char sccsid[] = "@(#)crt0.c 5.7 (Berkeley) 7/3/91"; +#endif /* not lint */ + +/* + * C start up routine. + * Robert Henry, UCB, 20 Oct 81 + * + * We make the following (true) assumption: + * 1) The only register variable that we can trust is ebp, + * which points to the base of the kernel calling frame. + */ + +char **environ = (char **)0; +static int fd; + +/* +asm(".text"); +asm(".long 0xc000c000"); +*/ +extern unsigned char etext; +extern unsigned char eprol asm ("eprol"); +/* extern start() asm("start"); */ + +_start(int arg) +{ + struct kframe { + int kargc; + char *kargv[1]; /* size depends on kargc */ + char kargstr[1]; /* size varies */ + char kenvstr[1]; /* size varies */ + }; + /* + * ALL REGISTER VARIABLES!!! + */ + register struct kframe *kfp; /* r10 */ + register char **targv; + register char **argv; + extern int errno; + extern void _mcleanup(); + +#ifdef lint + kfp = 0; + initcode = initcode = 0; +#else not lint +# if 0 + asm("lea 4(%ebp),%ebx"); /* catch it quick */ +# else + kfp = (struct kframe *)&(((int *)(&arg))[-1]); +# endif +#endif not lint + for (argv = targv = &kfp->kargv[0]; *targv++; /* void */) + /* void */ ; + if (targv >= (char **)(*argv)) + --targv; + environ = targv; +asm("eprol:"); + +#ifdef paranoid + /* + * The standard I/O library assumes that file descriptors 0, 1, and 2 + * are open. If one of these descriptors is closed prior to the start + * of the process, I/O gets very confused. To avoid this problem, we + * insure that the first three file descriptors are open before calling + * main(). Normally this is undefined, as it adds two unnecessary + * system calls. + */ + do { + fd = open("/dev/null", 2); + } while (fd >= 0 && fd < 3); + close(fd); +#endif paranoid + +#ifdef MCRT0 + atexit(_mcleanup); + monstartup(&eprol, &etext); +#endif MCRT0 + errno = 0; + exit(main(kfp->kargc, argv, environ)); +} + +#ifdef CRT0 +/* + * null mcount and moncontrol, + * just in case some routine is compiled for profiling + */ +moncontrol(val) + int val; +{ + +} +asm(".globl mcount"); +asm("mcount: ret"); +#endif CRT0 diff --git a/newlib/libc/sys/sysvi386/dup.c b/newlib/libc/sys/sysvi386/dup.c new file mode 100644 index 000000000..95b0a5c92 --- /dev/null +++ b/newlib/libc/sys/sysvi386/dup.c @@ -0,0 +1,6 @@ +#include <fcntl.h> + +int +dup (int fd1) { + return (fcntl (fd1, F_DUPFD, 0)); +} diff --git a/newlib/libc/sys/sysvi386/dup2.c b/newlib/libc/sys/sysvi386/dup2.c new file mode 100644 index 000000000..6b72599fb --- /dev/null +++ b/newlib/libc/sys/sysvi386/dup2.c @@ -0,0 +1,7 @@ +#include <fcntl.h> + +int +dup2 (int fd1, int fd2) { + close (fd2); /* ignore errors, if any */ + return (fcntl (fd1, F_DUPFD, fd2)); +} diff --git a/newlib/libc/sys/sysvi386/exec.c b/newlib/libc/sys/sysvi386/exec.c new file mode 100644 index 000000000..6587d50a7 --- /dev/null +++ b/newlib/libc/sys/sysvi386/exec.c @@ -0,0 +1,54 @@ +#include <sys/unistd.h> +#include <errno.h> + +extern char **environ; + +int +execv (const char *path, char * const *args) { + extern int execve (const char *, char * const *, char * const*); + return execve (path, args, environ); +} + +int +execl(const char *path, const char *arg1, ...) { + return execv (path, &arg1); +} + +/* + * Copy string, until c or <nul> is encountered. + * NUL-terminate the destination string (s1). + */ + +static char * +strccpy (char *s1, char *s2, char c) { + char *dest = s1; + while (*s2 && *s2 != c) { + *s1++ = *s2++; + } + *s1 = 0; + return dest; +} + +int +execvp(const char *file, char * const *args) { + extern char *getenv (const char *); + char *path = getenv ("PATH"); + char buf[MAXNAMLEN]; + + if (file[0] == '/') { /* absolute pathname -- easy out */ + return execv (file, args); + } + + buf[0] = 0; /* lots of initialization here 8-) */ + while (*path) { + strccpy (buf, path, ':'); + strcat (buf, "/"); + strcat (buf, file); + execv (buf, args); + if (errno != ENOENT) + return -1; + while (*path && *path != ':') + path++; + } + return -1; +} diff --git a/newlib/libc/sys/sysvi386/execve.s b/newlib/libc/sys/sysvi386/execve.s new file mode 100644 index 000000000..d1d29bc9f --- /dev/null +++ b/newlib/libc/sys/sysvi386/execve.s @@ -0,0 +1,7 @@ + .globl _execve + .globl execve +_execve: +execve: + movl $0x3b, %eax + lcall $7,$0 + jb _cerror diff --git a/newlib/libc/sys/sysvi386/fcntl.s b/newlib/libc/sys/sysvi386/fcntl.s new file mode 100644 index 000000000..dc3e11f74 --- /dev/null +++ b/newlib/libc/sys/sysvi386/fcntl.s @@ -0,0 +1,9 @@ + + .globl _fcntl + .globl fcntl +_fcntl: +fcntl: + movl $0x3e, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/fork.s b/newlib/libc/sys/sysvi386/fork.s new file mode 100644 index 000000000..8c9b60035 --- /dev/null +++ b/newlib/libc/sys/sysvi386/fork.s @@ -0,0 +1,12 @@ + .globl _fork + .globl fork +_fork: +fork: + movl $2, %eax + lcall $7,$0 + jb _cerror + testl %edx, %edx + je bye + xorl %eax,%eax +bye: + ret diff --git a/newlib/libc/sys/sysvi386/fpathconf.s b/newlib/libc/sys/sysvi386/fpathconf.s new file mode 100644 index 000000000..b55ea92d1 --- /dev/null +++ b/newlib/libc/sys/sysvi386/fpathconf.s @@ -0,0 +1,6 @@ + .globl fpathconf +fpathconf: + movl $0x2f28, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/fps.s b/newlib/libc/sys/sysvi386/fps.s new file mode 100644 index 000000000..83214dff4 --- /dev/null +++ b/newlib/libc/sys/sysvi386/fps.s @@ -0,0 +1,18 @@ + .globl _fpgetsticky +_fpgetsticky: + getpsw r0 + and.w #0x1f00,r0 + shl.w #0xf8,r0 + ret #0x0 + + + .globl _fpsetsticky +_fpsetsticky: + getpsw r0 + mov.w [ap],r1 + shl.w #0x8,r1 + updpsw.h r1,#0x1f00 + trapfl + and.w #0x1f00,r0 + shl.w #0xf8,r0 + ret #0x0 diff --git a/newlib/libc/sys/sysvi386/fpx.c b/newlib/libc/sys/sysvi386/fpx.c new file mode 100644 index 000000000..d55a1e30f --- /dev/null +++ b/newlib/libc/sys/sysvi386/fpx.c @@ -0,0 +1,73 @@ +#include <ieeefp.h> +#include <machine/registers.h> + + +fp_except _DEFUN(fpsetmask,(newmask), + fp_except newmask) + +{ + fp_except oldmask; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldmask = tkcw.fp_trap; + tkcw.fp_trap = newmask; + sysv60(0, 8, &tkcw); + return oldmask; + +} + +fp_except _DEFUN_VOID(fpgetmask) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.fp_trap; +} + + +fp_rnd _DEFUN_VOID(fpgetround) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.fp_rounding; +} + +fp_rnd _DEFUN(fpsetround,(rnd), + fp_rnd rnd) +{ + fp_rnd oldrnd; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldrnd = tkcw.fp_rounding; + tkcw.fp_rounding = rnd; + sysv60(0, 8, &tkcw); + return oldrnd; +} + + + + + +fp_rdi _DEFUN_VOID(fpgetroundtoi) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.integer_rounding; +} + +fp_rdi _DEFUN(fpsetroundtoi,(rnd), + fp_rdi rnd) +{ + fp_rdi oldrnd; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldrnd = tkcw.integer_rounding; + tkcw.integer_rounding = rnd; + sysv60(0, 8, &tkcw); + return oldrnd; +} + + + diff --git a/newlib/libc/sys/sysvi386/fstat.s b/newlib/libc/sys/sysvi386/fstat.s new file mode 100644 index 000000000..ced264526 --- /dev/null +++ b/newlib/libc/sys/sysvi386/fstat.s @@ -0,0 +1,9 @@ + .globl _fstat + .globl fstat +_fstat: +fstat: + movl $0x1c, %eax + lcall $7,$0 + jb _cerror + xor %eax,%eax + ret diff --git a/newlib/libc/sys/sysvi386/getdents.s b/newlib/libc/sys/sysvi386/getdents.s new file mode 100644 index 000000000..524a88727 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getdents.s @@ -0,0 +1,6 @@ + .globl _getdents +_getdents: + movl $0x51, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/getegid.s b/newlib/libc/sys/sysvi386/getegid.s new file mode 100644 index 000000000..3a9709841 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getegid.s @@ -0,0 +1,9 @@ + .globl _getegid + .globl getegid +_getegid: +getegid: + movl $0x2f, %eax + lcall $7,$0 + movl %edx,%eax + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/geteuid.s b/newlib/libc/sys/sysvi386/geteuid.s new file mode 100644 index 000000000..ae45c473f --- /dev/null +++ b/newlib/libc/sys/sysvi386/geteuid.s @@ -0,0 +1,9 @@ + .globl _geteuid + .globl geteuid +_geteuid: +geteuid: + movl $0x18, %eax + lcall $7,$0 + movl %edx,%eax + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/getgid.s b/newlib/libc/sys/sysvi386/getgid.s new file mode 100644 index 000000000..47a6391f8 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getgid.s @@ -0,0 +1,8 @@ + .globl _getgid + .globl getgid +_getgid: +getgid: + movl $0x2f, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/getgroups.s b/newlib/libc/sys/sysvi386/getgroups.s new file mode 100644 index 000000000..d690adf44 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getgroups.s @@ -0,0 +1,8 @@ + .globl _getgroups + .globl getgroups +_getgroups: +getgroups: + movl $0x2b28, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/getpid.s b/newlib/libc/sys/sysvi386/getpid.s new file mode 100644 index 000000000..6d19dffc9 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getpid.s @@ -0,0 +1,9 @@ + + .globl _getpid + .globl getpid +_getpid: +getpid: + movl $0x14, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/getuid.s b/newlib/libc/sys/sysvi386/getuid.s new file mode 100644 index 000000000..9c4dfe3a4 --- /dev/null +++ b/newlib/libc/sys/sysvi386/getuid.s @@ -0,0 +1,8 @@ + .globl _getuid + .globl getuid +_getuid: +getuid: + movl $0x18, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/ioctl.s b/newlib/libc/sys/sysvi386/ioctl.s new file mode 100644 index 000000000..b63597d1f --- /dev/null +++ b/newlib/libc/sys/sysvi386/ioctl.s @@ -0,0 +1,9 @@ + + .globl _ioctl + .globl ioctl +_ioctl: +ioctl: + movl $0x36, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/isatty.c b/newlib/libc/sys/sysvi386/isatty.c new file mode 100644 index 000000000..fa1e3557f --- /dev/null +++ b/newlib/libc/sys/sysvi386/isatty.c @@ -0,0 +1,11 @@ +#include <sys/termio.h> + +int +isatty(fd) +int fd; { + struct termio buf; + + if (ioctl (fd, TCGETA, &buf) == -1) + return 0; + return 1; +} diff --git a/newlib/libc/sys/sysvi386/kill.s b/newlib/libc/sys/sysvi386/kill.s new file mode 100644 index 000000000..805d8f778 --- /dev/null +++ b/newlib/libc/sys/sysvi386/kill.s @@ -0,0 +1,9 @@ + .globl _kill + .globl kill +_kill: +kill: + movl $0x25, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/link.s b/newlib/libc/sys/sysvi386/link.s new file mode 100644 index 000000000..d298cd08e --- /dev/null +++ b/newlib/libc/sys/sysvi386/link.s @@ -0,0 +1,9 @@ + .globl _link + .globl link +_link: +link: + movl $0x9, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/lseek.s b/newlib/libc/sys/sysvi386/lseek.s new file mode 100644 index 000000000..88b2fc1b0 --- /dev/null +++ b/newlib/libc/sys/sysvi386/lseek.s @@ -0,0 +1,8 @@ + .globl _lseek + .globl lseek +_lseek: +lseek: + movl $0x13, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/mkdir.s b/newlib/libc/sys/sysvi386/mkdir.s new file mode 100644 index 000000000..b2888eb68 --- /dev/null +++ b/newlib/libc/sys/sysvi386/mkdir.s @@ -0,0 +1,9 @@ + .globl _mkdir + .globl mkdir +_mkdir: +mkdir: + movl $0x50, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/open.s b/newlib/libc/sys/sysvi386/open.s new file mode 100644 index 000000000..97356f1ad --- /dev/null +++ b/newlib/libc/sys/sysvi386/open.s @@ -0,0 +1,9 @@ + + .globl _open + .globl open +_open: +open: + movl $5, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/opendir.c b/newlib/libc/sys/sysvi386/opendir.c new file mode 100644 index 000000000..ce080e312 --- /dev/null +++ b/newlib/libc/sys/sysvi386/opendir.c @@ -0,0 +1,80 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)opendir.c 5.11 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> +#include <fcntl.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * open a directory. + */ +DIR * +opendir(name) + const char *name; +{ + register DIR *dirp; + register int fd; + + if ((fd = open(name, 0)) == -1) + return NULL; + if (fcntl(fd, F_SETFD, 1) == -1 || + (dirp = (DIR *)malloc(sizeof(DIR))) == NULL) { + close (fd); + return NULL; + } + /* + * If CLSIZE is an exact multiple of DIRBLKSIZ, use a CLSIZE + * buffer that it cluster boundary aligned. + * Hopefully this can be a big win someday by allowing page trades + * to user space to be done by getdirentries() + */ + dirp->dd_buf = malloc (512); + dirp->dd_len = 512; + + if (dirp->dd_buf == NULL) { + close (fd); + return NULL; + } + dirp->dd_fd = fd; + dirp->dd_loc = 0; + dirp->dd_seek = 0; + /* + * Set up seek point for rewinddir. + */ + return dirp; +} diff --git a/newlib/libc/sys/sysvi386/pathconf.s b/newlib/libc/sys/sysvi386/pathconf.s new file mode 100644 index 000000000..23de786d9 --- /dev/null +++ b/newlib/libc/sys/sysvi386/pathconf.s @@ -0,0 +1,6 @@ + .globl pathconf +pathconf: + movl $0x2e28, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/pause.s b/newlib/libc/sys/sysvi386/pause.s new file mode 100644 index 000000000..8e8bd229b --- /dev/null +++ b/newlib/libc/sys/sysvi386/pause.s @@ -0,0 +1,6 @@ + .globl _pause +_pause: + movl $0x1d, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/pipe.s b/newlib/libc/sys/sysvi386/pipe.s new file mode 100644 index 000000000..6365bcbe6 --- /dev/null +++ b/newlib/libc/sys/sysvi386/pipe.s @@ -0,0 +1,12 @@ + .globl _pipe + .globl pipe +_pipe: +pipe: + movl $0x2a, %eax + lcall $7,$0 + jb _cerror + movl 4(%esp), %ecx + movl (%ecx), %eax + movl 4(%ecx), %edx + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/read.s b/newlib/libc/sys/sysvi386/read.s new file mode 100644 index 000000000..8ecb5bacf --- /dev/null +++ b/newlib/libc/sys/sysvi386/read.s @@ -0,0 +1,8 @@ + .globl _read + .globl read +_read: +read: + movl $3, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/readdir.c b/newlib/libc/sys/sysvi386/readdir.c new file mode 100644 index 000000000..350fa664f --- /dev/null +++ b/newlib/libc/sys/sysvi386/readdir.c @@ -0,0 +1,72 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)readdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <dirent.h> + +/* + * get next entry in a directory. + */ +struct dirent * +readdir(dirp) +register DIR *dirp; { + register struct dirent *dp; + + for (;;) { + if (dirp->dd_loc == 0) { + dirp->dd_size = _getdents (dirp->dd_fd, + dirp->dd_buf, + dirp->dd_len); + + if (dirp->dd_size <= 0) + return NULL; + } + if (dirp->dd_loc >= dirp->dd_size) { + dirp->dd_loc = 0; + continue; + } + dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); + if ((int)dp & 03) /* bogus pointer check */ + return NULL; + if (dp->d_reclen <= 0 || + dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) + return NULL; + dirp->dd_loc += dp->d_reclen; + if (dp->d_ino == 0) + continue; + return (dp); + } +} diff --git a/newlib/libc/sys/sysvi386/rename.s b/newlib/libc/sys/sysvi386/rename.s new file mode 100644 index 000000000..61a69c59e --- /dev/null +++ b/newlib/libc/sys/sysvi386/rename.s @@ -0,0 +1,9 @@ + .globl _rename + .globl rename +_rename: +rename: + movl $0x3028, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/rewinddir.c b/newlib/libc/sys/sysvi386/rewinddir.c new file mode 100644 index 000000000..d52c013c4 --- /dev/null +++ b/newlib/libc/sys/sysvi386/rewinddir.c @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)rewinddir.c 5.1 (Berkeley) 5/25/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <dirent.h> + +void +rewinddir(dirp) + DIR *dirp; +{ + extern long _rewinddir; + + _seekdir((dirp), _rewinddir); + _rewinddir = telldir(dirp); +} diff --git a/newlib/libc/sys/sysvi386/rmdir.s b/newlib/libc/sys/sysvi386/rmdir.s new file mode 100644 index 000000000..427ee108d --- /dev/null +++ b/newlib/libc/sys/sysvi386/rmdir.s @@ -0,0 +1,9 @@ + .globl _rmdir + .globl rmdir +_rmdir: +rmdir: + movl $0x4f, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/sbrk.c b/newlib/libc/sys/sysvi386/sbrk.c new file mode 100644 index 000000000..8ae3ed12b --- /dev/null +++ b/newlib/libc/sys/sysvi386/sbrk.c @@ -0,0 +1,21 @@ +extern end; + +static void *curbrk = (char*)&end; + +void * +sbrk(incr) +int incr; { + extern int errno; + extern int _brk(void *); + void *ptr = curbrk; + int t; + + if (incr == 0) + return curbrk; + t = _brk (curbrk + incr); + if (t == -1 && errno) + return (void *)-1; + curbrk = ((char *)curbrk) + incr; + return ptr; +} + diff --git a/newlib/libc/sys/sysvi386/scandir.c b/newlib/libc/sys/sysvi386/scandir.c new file mode 100644 index 000000000..6c4116c9c --- /dev/null +++ b/newlib/libc/sys/sysvi386/scandir.c @@ -0,0 +1,134 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)scandir.c 5.10 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +/* + * Scan the directory dirname calling select to make a list of selected + * directory entries then sort using qsort and compare routine dcomp. + * Returns the number of entries and a pointer to a list of pointers to + * struct dirent (through namelist). Returns -1 if there were any errors. + */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <dirent.h> +#include <stdlib.h> +#include <string.h> + +/* + * The DIRSIZ macro gives the minimum record length which will hold + * the directory entry. This requires the amount of space in struct dirent + * without the d_name field, plus enough space for the name with a terminating + * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. + */ +#undef DIRSIZ +#define DIRSIZ(dp) \ + ((sizeof (struct dirent) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) + +int +scandir(dirname, namelist, select, dcomp) + const char *dirname; + struct dirent ***namelist; + int (*select) __P((struct dirent *)); + int (*dcomp) __P((const void *, const void *)); +{ + register struct dirent *d, *p, **names; + register size_t nitems; + struct stat stb; + long arraysz; + DIR *dirp; + + if ((dirp = opendir(dirname)) == NULL) + return(-1); + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); + + /* + * estimate the array size by taking the size of the directory file + * and dividing it by a multiple of the minimum size entry. + */ + arraysz = (stb.st_size / 24); + names = (struct dirent **)malloc(arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + + nitems = 0; + while ((d = readdir(dirp)) != NULL) { + if (select != NULL && !(*select)(d)) + continue; /* just selected names */ + /* + * Make a minimum size copy of the data + */ + p = (struct dirent *)malloc(DIRSIZ(d)); + if (p == NULL) + return(-1); + p->d_ino = d->d_ino; + p->d_reclen = d->d_reclen; + p->d_namlen = d->d_namlen; + bcopy(d->d_name, p->d_name, p->d_namlen + 1); + /* + * Check to make sure the array has space left and + * realloc the maximum size. + */ + if (++nitems >= arraysz) { + if (fstat(dirp->dd_fd, &stb) < 0) + return(-1); /* just might have grown */ + arraysz = stb.st_size / 12; + names = (struct dirent **)realloc((char *)names, + arraysz * sizeof(struct dirent *)); + if (names == NULL) + return(-1); + } + names[nitems-1] = p; + } + closedir(dirp); + if (nitems && dcomp != NULL) + qsort(names, nitems, sizeof(struct dirent *), dcomp); + *namelist = names; + return(nitems); +} + +/* + * Alphabetic order comparison routine for those who want it. + */ +int +alphasort(d1, d2) + const void *d1; + const void *d2; +{ + return(strcmp((*(struct dirent **)d1)->d_name, + (*(struct dirent **)d2)->d_name)); +} diff --git a/newlib/libc/sys/sysvi386/seekdir.c b/newlib/libc/sys/sysvi386/seekdir.c new file mode 100644 index 000000000..50331402a --- /dev/null +++ b/newlib/libc/sys/sysvi386/seekdir.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)seekdir.c 5.7 (Berkeley) 6/1/90"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> + +/* + * Seek to an entry in a directory. + * _seekdir is in telldir.c so that it can share opaque data structures. + */ +void +seekdir(dirp, loc) + DIR *dirp; + long loc; +{ + + _seekdir(dirp, loc); +} diff --git a/newlib/libc/sys/sysvi386/setgid.s b/newlib/libc/sys/sysvi386/setgid.s new file mode 100644 index 000000000..a55dbf89e --- /dev/null +++ b/newlib/libc/sys/sysvi386/setgid.s @@ -0,0 +1,9 @@ + .globl _setgid + .globl setgid +_setgid: +setgid: + movl $0x2e, %eax + lcall $7,$0 + jb _cerror + xor %eax,%eax + ret diff --git a/newlib/libc/sys/sysvi386/setuid.s b/newlib/libc/sys/sysvi386/setuid.s new file mode 100644 index 000000000..f24da1fd1 --- /dev/null +++ b/newlib/libc/sys/sysvi386/setuid.s @@ -0,0 +1,9 @@ + .globl _setuid + .globl setuid +_setuid: +setuid: + movl $0x17, %eax + lcall $7,$0 + jb _cerror + xor %eax,%eax + ret diff --git a/newlib/libc/sys/sysvi386/sigaction.s b/newlib/libc/sys/sysvi386/sigaction.s new file mode 100644 index 000000000..35a1b8d2a --- /dev/null +++ b/newlib/libc/sys/sysvi386/sigaction.s @@ -0,0 +1,20 @@ +/ +/ The SCO signal stuff seems to be weird. The POSIX stuff appears to +/ "extended" system calls, and use values in eax and edx. +/ Like most of the other signal routines, it takes a function pointer +/ in %edx. Since this function is terribly small, I am including it +/ in all of the ones that need it, for now at least. Seems silly to include +/ a whole file for two instructions. + +sigret: + addl $4, %esp + lcall $0xf, $0 + .globl sigaction +sigaction: + movl $0x2728, %eax + movl sigret, %edx + lcall $7,$0 + jb _cerror + ret + addl $4, %esp + lcall $0xf,$0 diff --git a/newlib/libc/sys/sysvi386/signal.s b/newlib/libc/sys/sysvi386/signal.s new file mode 100644 index 000000000..2418eb02b --- /dev/null +++ b/newlib/libc/sys/sysvi386/signal.s @@ -0,0 +1,16 @@ +/ According to the iBCS2 book, signal() has 0x30 in %eax, and the address +/ of a function in %edx. This function is where a signal handler will +/ return to; it should just adjust the stack pointer, and call $f,$0. +/ Strange but true. + .globl signal + +sigret: + addl $4, %esp + lcall $0xf, $0 +signal: + movl $0x30, %eax + movl sigret, %edx + lcall $7,$0 + jb _cerror +/ The iBCS2 book also clears out %eax here, which seems to be broken. + ret diff --git a/newlib/libc/sys/sysvi386/sigprocmask.s b/newlib/libc/sys/sysvi386/sigprocmask.s new file mode 100644 index 000000000..fa988d538 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sigprocmask.s @@ -0,0 +1,12 @@ +/ +/ The SCO signal stuff seems to be weird. The POSIX stuff appears to +/ "extended" system calls, and use values in eax and edx. +/ + .globl sigprocmask +sigprocmask: + movl $0x2828, %eax + lcall $7,$0 + jb _cerror + ret + addl $4, %esp + lcall $0xf,$0 diff --git a/newlib/libc/sys/sysvi386/sleep.c b/newlib/libc/sys/sysvi386/sleep.c new file mode 100644 index 000000000..723ee3ce2 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sleep.c @@ -0,0 +1,12 @@ +#include <sys/types.h> +#include <sys/signal.h> + +unsigned +sleep(unsigned secs) { + extern time_t time (time_t *); + time_t t = time(0); + + _alarm(secs); + _pause(); + return (time(0) - t); +} diff --git a/newlib/libc/sys/sysvi386/speed.c b/newlib/libc/sys/sysvi386/speed.c new file mode 100644 index 000000000..1b22c026f --- /dev/null +++ b/newlib/libc/sys/sysvi386/speed.c @@ -0,0 +1,24 @@ +#define _NO_MACROS +#include <sys/termios.h> + +speed_t +cfgetospeed(const struct termios *tp) { + return tp->c_ospeed; +} + +int +cfsetospeed(struct termios *tp, speed_t speed) { + tp->c_ospeed = speed; + return 0; +} + +speed_t +cfgetispeed(const struct termios *tp) { + return tp->c_ispeed; +} + +int +cfsetispeed(struct termios *tp, speed_t speed) { + tp->c_ispeed = speed; + return 0; +} diff --git a/newlib/libc/sys/sysvi386/stat.s b/newlib/libc/sys/sysvi386/stat.s new file mode 100644 index 000000000..50c84bb97 --- /dev/null +++ b/newlib/libc/sys/sysvi386/stat.s @@ -0,0 +1,9 @@ + .globl _stat + .globl stat +_stat: +stat: + movl $0x12, %eax + lcall $7,$0 + jb _cerror + xor %eax,%eax + ret diff --git a/newlib/libc/sys/sysvi386/sys/dirent.h b/newlib/libc/sys/sysvi386/sys/dirent.h new file mode 100644 index 000000000..728042176 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/dirent.h @@ -0,0 +1,36 @@ +#ifndef _SYS_DIRENT_H +# define _SYS_DIRENT_H + +/* + * This file was written to be compatible with the BSD directory + * routines, so it looks like it. But it was written from scratch. + * Sean Eric Fagan, sef@Kithrup.COM + */ + +typedef struct _dirdesc { + int dd_fd; + long dd_loc; + long dd_size; + char *dd_buf; + int dd_len; + long dd_seek; +} DIR; + +# define __dirfd(dp) ((dp)->dd_fd) + +DIR *opendir (const char *); +struct dirent *readdir (DIR *); +void rewinddir (DIR *); +int closedir (DIR *); + +#include <sys/types.h> + +struct dirent { + long d_ino; + off_t d_off; + unsigned short d_reclen; + /* we need better syntax for variable-sized arrays */ + char d_name[1]; +}; + +#endif diff --git a/newlib/libc/sys/sysvi386/sys/param.h b/newlib/libc/sys/sysvi386/sys/param.h new file mode 100644 index 000000000..6c6f6b0a4 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/param.h @@ -0,0 +1,8 @@ +#ifndef _SYS_PARAM_H +# define _SYS_PARAM_H + +# define HZ 60 +# define NOFILE 60 +# define PATHSIZE 1024 + +#endif diff --git a/newlib/libc/sys/sysvi386/sys/setjmp.h b/newlib/libc/sys/sysvi386/sys/setjmp.h new file mode 100644 index 000000000..425b0ae89 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/setjmp.h @@ -0,0 +1,6 @@ +#ifndef _JBLEN +# define _JBLEN 36 + +typedef char jmp_buf[_JBLEN]; + +#endif /* _JBLEN */ diff --git a/newlib/libc/sys/sysvi386/sys/termio.h b/newlib/libc/sys/sysvi386/sys/termio.h new file mode 100644 index 000000000..2ef33b8dc --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/termio.h @@ -0,0 +1,82 @@ +#ifndef _SYS_TERMIO_H +# define _SYS_TERMIO_H + +# define TCGETA (('T'<<8)|1) +# define TCSBRK (('T'<<8)|5) +# define NCC 8 + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VTIME 5 /* also VEOL */ + +# define B0 000000 +# define B50 000001 +# define B75 000002 +# define B110 000003 +# define B134 000004 +# define B150 000005 +# define B200 000006 +# define B300 000007 +# define B600 000010 +# define B1200 000011 +# define B1800 000012 +# define B2400 000013 +# define B4800 000014 +# define B9600 000015 +# define B19200 000016 +# define B38400 000017 + +struct termio { + unsigned short c_iflag; + unsigned short c_oflag; + unsigned short c_cflag; + unsigned short c_lflag; + char c_line; + unsigned char c_cc[NCC]; +}; + +#endif /* _SYS_TERMIO_H */ + diff --git a/newlib/libc/sys/sysvi386/sys/termios.h b/newlib/libc/sys/sysvi386/sys/termios.h new file mode 100644 index 000000000..edc81b3d5 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/termios.h @@ -0,0 +1,121 @@ +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 000000 +# define B50 000001 +# define B75 000002 +# define B110 000003 +# define B134 000004 +# define B150 000005 +# define B200 000006 +# define B300 000007 +# define B600 000010 +# define B1200 000011 +# define B1800 000012 +# define B2400 000013 +# define B4800 000014 +# define B9600 000015 +# define B19200 000016 +# define B38400 000017 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef char speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#endif /* _SYS_TERMIOS_H */ + diff --git a/newlib/libc/sys/sysvi386/sys/utime.h b/newlib/libc/sys/sysvi386/sys/utime.h new file mode 100644 index 000000000..80b1daa74 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/utime.h @@ -0,0 +1,12 @@ +#ifndef _SYS_UTIME_H +# define _SYS_UTIME_H + +#include <time.h> + +struct utimbuf { + time_t actime; + time_t modtime; +}; + +#endif /* _SYS_UTIME_H */ + diff --git a/newlib/libc/sys/sysvi386/sys/utmp.h b/newlib/libc/sys/sysvi386/sys/utmp.h new file mode 100644 index 000000000..f519e6af0 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/utmp.h @@ -0,0 +1,43 @@ +#ifndef _UTMP_H +# define _UTMP_H + +#include <sys/types.h> + +# define UTMP_FILE "/etc/utmp" +# define WTMP_FILE "/etc/wtmp" + +struct utmp { + char ut_user[8]; /* how limited */ + char ut_id[4]; /* ditto */ + char ut_line[12]; /* I'm repeating myself */ + short ut_pid; + short ut_type; + struct exit_status { + short e_termination; + short e_exit; + } ut_exit; /* for DEAD_PROCESS processes */ + time_t ut_time; +}; + +/* Definitions for ut_type fields */ + +# define EMPTY 0 +# define RUN_LVL 1 +# define BOOT_TIME 2 +# define OLD_TIME 3 +# define NEW_TIME 4 +# define INIT_PROCESS 5 +# define LOGIN_PROCESS 6 +# define USER_PROCESS 7 +# define DEAD_PROCESS 8 +# define ACCOUNTING 9 +# define UTMAXTYPE ACCOUNTING + +# define RUNLVL_MSG "run-level %c" +# define BOOT_MSG "system boot" +# define OTIME_MSG "old time" +# define NTIME_MSG "new time" + +#endif /* _UTMP_H */ + + diff --git a/newlib/libc/sys/sysvi386/sys/wait.h b/newlib/libc/sys/sysvi386/sys/wait.h new file mode 100644 index 000000000..7c36f32db --- /dev/null +++ b/newlib/libc/sys/sysvi386/sys/wait.h @@ -0,0 +1,42 @@ +#ifndef _WAIT_H +# define _WAIT_H + +# define WNOHANG 1 +# define WUNTRACED 2 + +/* + * Unlike the atrocity that BSD ended up using, we do not have a "union + * wait," although I could probably implement one. Given the code I + * sometimes end up porting, it might be a good thing. Anyway, the + * format of a stat thingy, filled in by the wait*() routines, is: + * struct { + * int filler:16; + * union { + * struct stopped { + * int signo:8; + * int o177:8; // will be 0177 + * }; + * struct exited { + * int retval:8; + * int zero:8; // 0, obviously 8-) + * }; + * struct termed { + * int zero:8; // zeroes + * int corep:1; // was there a core file? + * int signo:7; // what?! Only 127 signals?! + * }; + * int value:16; + * }; + * }; + * + * Braver souls than I can turn that into a union wait, if desired. Ick. + */ + +# define WIFEXITED(val) ((val)&0xff) +# define WEXITSTATUS(val) (((val)>>8)&0xff) +# define WIFSIGNALED(val) ((val) && !((val)&0xff)) +# define WTERMSIG(val) (((val)>>8)&0x7f) +# define WIFSTOPPED(val) (((val)&0xff)==0177) +# define WSTOPSIG(val) (((val)>>8)&0xff) +#endif /* _SYS_WAIT_H */ + diff --git a/newlib/libc/sys/sysvi386/sysconf.s b/newlib/libc/sys/sysvi386/sysconf.s new file mode 100644 index 000000000..99bbc6040 --- /dev/null +++ b/newlib/libc/sys/sysvi386/sysconf.s @@ -0,0 +1,6 @@ + .globl sysconf +sysconf: + movl $0x2d28, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/tcgetattr.c b/newlib/libc/sys/sysvi386/tcgetattr.c new file mode 100644 index 000000000..e368418c1 --- /dev/null +++ b/newlib/libc/sys/sysvi386/tcgetattr.c @@ -0,0 +1,6 @@ +#include <sys/termios.h> + +int +tcgetattr (int fd, struct termios *tp) { + return _ioctl (fd, _XCGETA, tp); +} diff --git a/newlib/libc/sys/sysvi386/tcline.c b/newlib/libc/sys/sysvi386/tcline.c new file mode 100644 index 000000000..39d4699e0 --- /dev/null +++ b/newlib/libc/sys/sysvi386/tcline.c @@ -0,0 +1,84 @@ +#define _NO_MACROS +#include <sys/unistd.h> +#include <sys/termios.h> +#include <errno.h> + +int +tcsendbreak (int fd, int dur) { + do { + if (_ioctl (fd, _TCSBRK, 0) == -1) + return -1; + } while (dur--); + return 0; +} + +int +tcdrain (int fd) { + return _ioctl (fd, _TCSBRK, 1); +} + +int +tcflush(int fd, int what) { + return _ioctl (fd, _TCFLSH, what); +} + +/* + * I'm not positive about this function. I *think* it's right, + * but I could be missing something. + */ + +int +tcflow (int fd, int action) { + struct termios t; + + switch (action) { + case TCOOFF: + case TCOON: + return _ioctl (fd, _TCXONC, action); +/* + * Here is where I'm not terribly certain. 1003.1 says: + * if action is TCIOFF, the system shall transmit a STOP + * character, which is intended to cause the terminal device + * to stop transmitting data to the system. (Similarly for + * TCION.) + * I *assume* that means I find out what VSTOP for the + * terminal device is, and then write it. 1003.1 also does + * not say what happens if c_cc[VSTOP] is _POSIX_VDISABLE; + * I assume it should reaturn EINVAL, so that's what I do. + * Anyway, here's the code. It might or might not be right. + */ + case TCIOFF: + if (tcgetattr (fd, &t) == -1) + return -1; + if (tcgetattr (fd, &t) == -1) + return -1; +#ifdef _POSIX_VDISABLE + if (t.c_cc[VSTOP] == _POSIX_VDISABLE) { + errno = EINVAL; + return -1; + } +#endif + if (write (fd, &t.c_cc[VSTOP], 1) == 1) + return 0; + else + return -1; + case TCION: + if (tcgetattr (fd, &t) == -1) + return -1; + if (tcgetattr (fd, &t) == -1) + return -1; +#ifdef _POSIX_VDISABLE + if (t.c_cc[VSTART] == _POSIX_VDISABLE) { + errno = EINVAL; + return -1; + } +#endif + if (write (fd, &t.c_cc[VSTART], 1) == 1) + return 0; + else + return -1; + default: + errno = EINVAL; + return -1; + } +} diff --git a/newlib/libc/sys/sysvi386/tcsetattr.c b/newlib/libc/sys/sysvi386/tcsetattr.c new file mode 100644 index 000000000..1df92b281 --- /dev/null +++ b/newlib/libc/sys/sysvi386/tcsetattr.c @@ -0,0 +1,7 @@ +#include <sys/termios.h> + +int +tcsetattr (int fd, int opts, const struct termios *tp) { + return _ioctl (fd, opts, tp); +} + diff --git a/newlib/libc/sys/sysvi386/telldir.c b/newlib/libc/sys/sysvi386/telldir.c new file mode 100644 index 000000000..37d9de638 --- /dev/null +++ b/newlib/libc/sys/sysvi386/telldir.c @@ -0,0 +1,129 @@ +/* + * Copyright (c) 1983 Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)telldir.c 5.9 (Berkeley) 2/23/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/param.h> +#include <dirent.h> +#include <stdlib.h> +#include <unistd.h> + +/* + * The option SINGLEUSE may be defined to say that a telldir + * cookie may be used only once before it is freed. This option + * is used to avoid having memory usage grow without bound. + */ +#define SINGLEUSE + +/* + * One of these structures is malloced to describe the current directory + * position each time telldir is called. It records the current magic + * cookie returned by getdirentries and the offset within the buffer + * associated with that return value. + */ +struct ddloc { + struct ddloc *loc_next;/* next structure in list */ + long loc_index; /* key associated with structure */ + long loc_seek; /* magic cookie returned by getdirentries */ + long loc_loc; /* offset of entry in buffer */ +}; + +#define NDIRHASH 32 /* Num of hash lists, must be a power of 2 */ +#define LOCHASH(i) ((i)&(NDIRHASH-1)) + +static long dd_loccnt; /* Index of entry for sequential readdir's */ +static struct ddloc *dd_hash[NDIRHASH]; /* Hash list heads for ddlocs */ + +/* + * return a pointer into a directory + */ +long +telldir(dirp) + const DIR *dirp; +{ + register int index; + register struct ddloc *lp; + + if ((lp = (struct ddloc *)malloc(sizeof(struct ddloc))) == NULL) + return (-1); + index = dd_loccnt++; + lp->loc_index = index; + lp->loc_seek = dirp->dd_seek; + lp->loc_loc = dirp->dd_loc; + lp->loc_next = dd_hash[LOCHASH(index)]; + dd_hash[LOCHASH(index)] = lp; + return (index); +} + +/* + * seek to an entry in a directory. + * Only values returned by "telldir" should be passed to seekdir. + */ +void +_seekdir(dirp, loc) + register DIR *dirp; + long loc; +{ + register struct ddloc *lp; + register struct ddloc **prevlp; + struct dirent *dp; + extern long lseek(); + + prevlp = &dd_hash[LOCHASH(loc)]; + lp = *prevlp; + while (lp != NULL) { + if (lp->loc_index == loc) + break; + prevlp = &lp->loc_next; + lp = lp->loc_next; + } + if (lp == NULL) + return; + if (lp->loc_loc == dirp->dd_loc && lp->loc_seek == dirp->dd_seek) + goto found; + (void) lseek(dirp->dd_fd, lp->loc_seek, 0); + dirp->dd_seek = lp->loc_seek; + dirp->dd_loc = 0; + while (dirp->dd_loc < lp->loc_loc) { + dp = readdir(dirp); + if (dp == NULL) + break; + } +found: +#ifdef SINGLEUSE + *prevlp = lp->loc_next; + free((caddr_t)lp); +#endif +} diff --git a/newlib/libc/sys/sysvi386/time.s b/newlib/libc/sys/sysvi386/time.s new file mode 100644 index 000000000..c5617891c --- /dev/null +++ b/newlib/libc/sys/sysvi386/time.s @@ -0,0 +1,8 @@ + .globl _time + .globl time +_time: +time: + movl $0xd, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/times.s b/newlib/libc/sys/sysvi386/times.s new file mode 100644 index 000000000..007de1e1e --- /dev/null +++ b/newlib/libc/sys/sysvi386/times.s @@ -0,0 +1,8 @@ + .globl _times + .globl times +_times: +times: + movl $0x2b, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/unlink.s b/newlib/libc/sys/sysvi386/unlink.s new file mode 100644 index 000000000..b85e87c27 --- /dev/null +++ b/newlib/libc/sys/sysvi386/unlink.s @@ -0,0 +1,9 @@ + .globl _unlink + .globl unlink +_unlink: +unlink: + movl $0xa, %eax + lcall $7,$0 + jb _cerror + xor %eax, %eax + ret diff --git a/newlib/libc/sys/sysvi386/utime.s b/newlib/libc/sys/sysvi386/utime.s new file mode 100644 index 000000000..23fc50476 --- /dev/null +++ b/newlib/libc/sys/sysvi386/utime.s @@ -0,0 +1,8 @@ + .globl _utime + .globl utime +_utime: +utime: + movl $0x1e, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvi386/wait.s b/newlib/libc/sys/sysvi386/wait.s new file mode 100644 index 000000000..1ae8b0c6b --- /dev/null +++ b/newlib/libc/sys/sysvi386/wait.s @@ -0,0 +1,13 @@ + .globl _wait + .globl wait +_wait: +wait: + movl $0x7, %eax + lcall $7,$0 + jb _cerror + movl 4(%esp), %ecx + testl %ecx, %ecx + je bye + movl %edx, (%ecx) +bye: + ret diff --git a/newlib/libc/sys/sysvi386/waitpid.s b/newlib/libc/sys/sysvi386/waitpid.s new file mode 100644 index 000000000..598099f91 --- /dev/null +++ b/newlib/libc/sys/sysvi386/waitpid.s @@ -0,0 +1,18 @@ + .globl _waitpid + .globl waitpid +_waitpid: +waitpid: + pushfl + popl %eax + orl $0x8c4,%eax + pushl %eax + popfl + movl $0x7, %eax + lcall $7,$0 + jb _cerror + movl 8(%esp), %ecx + testl %ecx, %ecx + je bye + movl %edx, (%ecx) +bye: + ret diff --git a/newlib/libc/sys/sysvi386/write.s b/newlib/libc/sys/sysvi386/write.s new file mode 100644 index 000000000..05374652c --- /dev/null +++ b/newlib/libc/sys/sysvi386/write.s @@ -0,0 +1,8 @@ + .globl _write + .globl write +_write: +write: + movl $4, %eax + lcall $7,$0 + jb _cerror + ret diff --git a/newlib/libc/sys/sysvnecv70/Makefile.am b/newlib/libc/sys/sysvnecv70/Makefile.am new file mode 100644 index 000000000..cc0d79411 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/Makefile.am @@ -0,0 +1,15 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = ioctl.s isatty.s read.s lseek.s close.s sbrk.s fstat.s \ + cerror.s exit.s write.s sysv60.s fpx.c fps.s open.s + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/sysvnecv70/Makefile.in b/newlib/libc/sys/sysvnecv70/Makefile.in new file mode 100644 index 000000000..528c07b34 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/Makefile.in @@ -0,0 +1,301 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = ioctl.s isatty.s read.s lseek.s close.s sbrk.s fstat.s \ + cerror.s exit.s write.s sysv60.s fpx.c fps.s open.s + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = ioctl.o isatty.o read.o lseek.o close.o sbrk.o fstat.o \ +cerror.o exit.o write.o sysv60.o fpx.o fps.o open.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/sysvnecv70/aclocal.m4 b/newlib/libc/sys/sysvnecv70/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/sysvnecv70/cerror.s b/newlib/libc/sys/sysvnecv70/cerror.s new file mode 100644 index 000000000..9827c1087 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/cerror.s @@ -0,0 +1,9 @@ + .globl cerror +cerror: mov.w r0,_errno + neg.w #1,r0 + ret #0 + + .data + .globl _errno +_errno: .word 0 + diff --git a/newlib/libc/sys/sysvnecv70/close.s b/newlib/libc/sys/sysvnecv70/close.s new file mode 100644 index 000000000..5c80dcd30 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/close.s @@ -0,0 +1,10 @@ + + .globl __close + .globl _close +__close: +_close: chlvl #0,#6 + jnl ok + jmp cerror +ok: xor.w r0,r0 + ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/configure b/newlib/libc/sys/sysvnecv70/configure new file mode 100755 index 000000000..fc0a49963 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=sysv60.s + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/sysvnecv70/configure.in b/newlib/libc/sys/sysvnecv70/configure.in new file mode 100644 index 000000000..72710998f --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/sysvnecv70 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(sysv60.s) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/sysvnecv70/crt0.s b/newlib/libc/sys/sysvnecv70/crt0.s new file mode 100644 index 000000000..7c4bc77cf --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/crt0.s @@ -0,0 +1,28 @@ + .globl start +start: + sub.w #0x8,sp + mov.w 0x8[sp],[sp] + movea.w 0xc[sp],r0 + mov.w r0,0x4[sp] +tloop: test.w [r0+] + jne tloop + cmp.w r0,[0x4[sp]] + jge l1 + sub.w #0x4,r0 +l1: mov.w r0,0x8[sp] + mov.w r0,_environ + + + call _main,[sp] + add.w #0xc,sp + push r0 + call _exit,[sp] + add.w #0x4,sp + chlvl #0,#1 + + .data + + .globl _environ +_environ: + .word 0 + diff --git a/newlib/libc/sys/sysvnecv70/exit.s b/newlib/libc/sys/sysvnecv70/exit.s new file mode 100644 index 000000000..a37a17c21 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/exit.s @@ -0,0 +1,7 @@ + + .globl __exit +__exit: chlvl #0,#1 + jnl ok + jmp cerror +ok: ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/fps.s b/newlib/libc/sys/sysvnecv70/fps.s new file mode 100644 index 000000000..83214dff4 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/fps.s @@ -0,0 +1,18 @@ + .globl _fpgetsticky +_fpgetsticky: + getpsw r0 + and.w #0x1f00,r0 + shl.w #0xf8,r0 + ret #0x0 + + + .globl _fpsetsticky +_fpsetsticky: + getpsw r0 + mov.w [ap],r1 + shl.w #0x8,r1 + updpsw.h r1,#0x1f00 + trapfl + and.w #0x1f00,r0 + shl.w #0xf8,r0 + ret #0x0 diff --git a/newlib/libc/sys/sysvnecv70/fpx.c b/newlib/libc/sys/sysvnecv70/fpx.c new file mode 100644 index 000000000..d55a1e30f --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/fpx.c @@ -0,0 +1,73 @@ +#include <ieeefp.h> +#include <machine/registers.h> + + +fp_except _DEFUN(fpsetmask,(newmask), + fp_except newmask) + +{ + fp_except oldmask; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldmask = tkcw.fp_trap; + tkcw.fp_trap = newmask; + sysv60(0, 8, &tkcw); + return oldmask; + +} + +fp_except _DEFUN_VOID(fpgetmask) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.fp_trap; +} + + +fp_rnd _DEFUN_VOID(fpgetround) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.fp_rounding; +} + +fp_rnd _DEFUN(fpsetround,(rnd), + fp_rnd rnd) +{ + fp_rnd oldrnd; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldrnd = tkcw.fp_rounding; + tkcw.fp_rounding = rnd; + sysv60(0, 8, &tkcw); + return oldrnd; +} + + + + + +fp_rdi _DEFUN_VOID(fpgetroundtoi) +{ + v60_tkcw_type tkcw; + sysv60(0, 8, &tkcw); + return tkcw.integer_rounding; +} + +fp_rdi _DEFUN(fpsetroundtoi,(rnd), + fp_rdi rnd) +{ + fp_rdi oldrnd; + v60_tkcw_type tkcw; + + sysv60(0, 8, &tkcw); + oldrnd = tkcw.integer_rounding; + tkcw.integer_rounding = rnd; + sysv60(0, 8, &tkcw); + return oldrnd; +} + + + diff --git a/newlib/libc/sys/sysvnecv70/fstat.s b/newlib/libc/sys/sysvnecv70/fstat.s new file mode 100644 index 000000000..f646859c0 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/fstat.s @@ -0,0 +1,11 @@ + + .globl __fstat + .globl _fstat +__fstat: +_fstat: chlvl #0,#0x1c + jnl ok + jmp cerror +ok: xor.w r0,r0 + ret #0 + + diff --git a/newlib/libc/sys/sysvnecv70/ioctl.s b/newlib/libc/sys/sysvnecv70/ioctl.s new file mode 100644 index 000000000..de3aad548 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/ioctl.s @@ -0,0 +1,9 @@ + + .globl __ioctl + .globl _ioctl +__ioctl: +_ioctl: chlvl #0,#0x36 + jnl ok + jmp cerror +ok: ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/isatty.s b/newlib/libc/sys/sysvnecv70/isatty.s new file mode 100644 index 000000000..5f2c1d9c8 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/isatty.s @@ -0,0 +1,19 @@ + .globl _isatty + .globl __isatty + +_isatty: +__isatty: + prepare #0x14 + movea.w -0x12[fp],[-sp] + push #0x5401 + push [ap] + call _ioctl,[sp] + add.w #0xc,sp + test.w r0 + jge ret1 + mov.w #0x0,r0 + dispose + ret #0x0 +ret1: mov.w #0x1,r0 + dispose + ret #0 diff --git a/newlib/libc/sys/sysvnecv70/lseek.s b/newlib/libc/sys/sysvnecv70/lseek.s new file mode 100644 index 000000000..4b55e98e3 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/lseek.s @@ -0,0 +1,9 @@ + + .globl __lseek + .globl _lseek +__lseek: +_lseek: chlvl #0,#0x13 + jnl ok + jmp cerror +ok: ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/open.s b/newlib/libc/sys/sysvnecv70/open.s new file mode 100644 index 000000000..20c1ce338 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/open.s @@ -0,0 +1,10 @@ + + .globl __open + .globl _open +__open: +_open: chlvl #0,#5 + jnl ok + jmp cerror +ok: xor.w r0,r0 + ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/read.s b/newlib/libc/sys/sysvnecv70/read.s new file mode 100644 index 000000000..7d517ab8e --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/read.s @@ -0,0 +1,9 @@ + + .globl __read + .globl _read +__read: +_read: chlvl #0,#3 + jnl ok + jmp cerror +ok: ret #0 + diff --git a/newlib/libc/sys/sysvnecv70/sbrk.s b/newlib/libc/sys/sysvnecv70/sbrk.s new file mode 100644 index 000000000..1d5f9242a --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/sbrk.s @@ -0,0 +1,34 @@ + + .globl _sbrk + .globl __sbrk +_sbrk: +__sbrk: + mov.w tptr,r0 + test.w [ap] + je justreport + add.w r0,[ap] + push [ap] + mov.w ap,r3 + mov.w sp,ap + chlvl #0x0,#0x11 + jnl ok + add.w #0x4,sp + jmp cerror +ok: add.w #0x4,sp + mov.w tptr,r0 + mov.w [r3],tptr +justreport: + ret #0x0 + + .globl _brk + .globl __brk +__brk: +_brk: chlvl #0x0,#0x11 + jnl ok1 + jmp cerror +ok1: mov.w [ap],63 + xor.w r0,r0 + ret #0x0 + + .data +tptr: .word _end diff --git a/newlib/libc/sys/sysvnecv70/sysv60.s b/newlib/libc/sys/sysvnecv70/sysv60.s new file mode 100644 index 000000000..2ab7c7a05 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/sysv60.s @@ -0,0 +1,9 @@ + .globl _sysv60 +_sysv60: + chlvl #0,#0x32 + jnl ok + jmp cerror +ok: xor.w r0,r0 + ret #0 + + diff --git a/newlib/libc/sys/sysvnecv70/sysvnecv70.tex b/newlib/libc/sys/sysvnecv70/sysvnecv70.tex new file mode 100644 index 000000000..c2d038aec --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/sysvnecv70.tex @@ -0,0 +1,129 @@ +@node syscalls,machine,reentrancy,Top +@chapter NEC V70 system calls + +The library needs a certain amount of system-specific support in order +to operate. These routines have to be written for each unique +target environment. For testing purposes, +a set of system calls specific to an NEC V70 Unix PC running AT&T Unix +System V R2 are included. These files are in the @file{sys/sysvnecv70} +directory. + +All the calls have to be implemented in order to avoid link time +errors, but the implementation need not include all possible +functionality; in general, for any functionality that isn't +available, returning an error code is sufficient. + +@section Input/Output + +The V70 target may not have any character I/O devices. +In this case, the @code{fstat}, @code{ioctl}, @code{isatty}, +@code{lseek}, @code{read} and @code{write} routines may all return @code{-1}, +to signal failure (inspect @file{cerror.s} to see how to do this). + +Sometimes it is correct to implement the functions in a very +simple and machine specific way. For instance, the target board may +have one serial line. + +In this case, the @code{write} system call can be ``hard-wired'' to +always print to the serial device, no matter what the supplied file +handle says. Similarly, the other I/O system calls can be written to +take advantage of a known configuration. + +Note that the library starts up assuming that three files are already +open. File handles used are: +@table @code +@item 0 +Is used for all input from @code{stdin}. +@item 1 +Is used for all output to @code{stdout}. This includes functions like +@code{putc} and @code{printf}. +@item 2 +Is used for all output to @code{stderr}. The library will use this +file to print error messages from the math functions. Output can +also be sent to @code{stderr} by @code{fprintf(stderr,@dots{})} +@end table +@section Example @code{write} routine +On a board with a very simple I/O structure, this would be adequate: + +@example + +@group +char *duart_status = DUART_ADDR; + +void poll() +@{ + /* Dummy function to fool optimizer */ +@} + +int write(fd, string, len) +int fd; +char *string; +int len; +@{ + int i; + + for (i = 0; i < len; i++) + @{ + while (*duart_status & DUART_BUSY) + poll(); + *duart_port = string[i]; + @} + return len; +@} +@end group +@end example + +@section Memory allocation + +The library allocates memory from the heap either for its own use, or when +you explicitly call @code{malloc}. It asks the system for +memory by calling the @code{sbrk} function. + +On a Unix system, @code{sbrk} keeps track of the heap's extent by keeping a +pointer to the end of the @code{bss} section. Unix linkers +traditionaly mark the end of @code{bss} by creating a symbol +@code{_end}. When the library wants more memory, it calls +@code{sbrk} with the size of the request. @code{sbrk} must then +perform an operation specific to the target environment, and return a pointer +to the new area. For a simple application, the following fragment may +be sufficient: +@example + +@group +char *moving_end = &end; + +char *sbrk(request) +int request; +@{ + char *return_address; + + return_address = moving_end; + moving_end += request; + return return_address; +@} +@end group +@end example + +@section Initialization and termination + +The system dependent support routines are responsible for +initializing the library for use by an application, and cleaning up +when the application is complete. + +This functionality is traditionally provided in @code{crt0} and +@code{_exit}. + +The @code{crt0} function usually contains the instructions first run +by the operating system when an application starts. The +@code{crt0} function can take advantage of this and prepare the way +for the libary. + +Another task for @code{crt0} is to call the @code{main} function +provided by the application writer, and also to call @code{exit} if +the main function ever returns. + +@code{exit} tells the operating system that the application has +finished. + + + diff --git a/newlib/libc/sys/sysvnecv70/write.s b/newlib/libc/sys/sysvnecv70/write.s new file mode 100644 index 000000000..5b4dfb272 --- /dev/null +++ b/newlib/libc/sys/sysvnecv70/write.s @@ -0,0 +1,9 @@ + + .globl __write + .globl _write +__write: +_write: chlvl #0,#4 + jnl ok + jmp cerror +ok: ret #0 + diff --git a/newlib/libc/sys/tic80/Makefile.am b/newlib/libc/sys/tic80/Makefile.am new file mode 100644 index 000000000..f55a90adb --- /dev/null +++ b/newlib/libc/sys/tic80/Makefile.am @@ -0,0 +1,19 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +# This is a hack to force automake to include a definition for +# COMPILE. +EXTRA_LIBRARIES = libfoo.a +libfoo_a_SOURCES = crt0.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/tic80/Makefile.in b/newlib/libc/sys/tic80/Makefile.in new file mode 100644 index 000000000..21f4afa28 --- /dev/null +++ b/newlib/libc/sys/tic80/Makefile.in @@ -0,0 +1,311 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = + +# This is a hack to force automake to include a definition for +# COMPILE. +EXTRA_LIBRARIES = libfoo.a +libfoo_a_SOURCES = crt0.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libfoo_a_LIBADD = +libfoo_a_OBJECTS = crt0.o +lib_a_LIBADD = +lib_a_OBJECTS = +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(libfoo_a_SOURCES) $(lib_a_SOURCES) +OBJECTS = $(libfoo_a_OBJECTS) $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libfoo.a: $(libfoo_a_OBJECTS) $(libfoo_a_DEPENDENCIES) + -rm -f libfoo.a + $(AR) cru libfoo.a $(libfoo_a_OBJECTS) $(libfoo_a_LIBADD) + $(RANLIB) libfoo.a + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/tic80/aclocal.m4 b/newlib/libc/sys/tic80/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/tic80/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/tic80/configure b/newlib/libc/sys/tic80/configure new file mode 100755 index 000000000..1690b2708 --- /dev/null +++ b/newlib/libc/sys/tic80/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=crt0.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/tic80/configure.in b/newlib/libc/sys/tic80/configure.in new file mode 100644 index 000000000..154bd527c --- /dev/null +++ b/newlib/libc/sys/tic80/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/tic80 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(crt0.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/tic80/crt0.c b/newlib/libc/sys/tic80/crt0.c new file mode 100644 index 000000000..ff25e4a1c --- /dev/null +++ b/newlib/libc/sys/tic80/crt0.c @@ -0,0 +1,22 @@ +/* This is mostly just a placeholder (copied from m88kbug) until we + figure out what it really should be... -fnf */ + +extern int main(int argc, char **argv); + +extern char _edata; +extern char _end; +extern char stack; + +_start() +{ + char *p; + + p = &_edata + 1; + while (p < &_end) + { + *p++ = 0; + } + + main(0, 0); + _exit(); +} diff --git a/newlib/libc/sys/w65/Makefile.am b/newlib/libc/sys/w65/Makefile.am new file mode 100644 index 000000000..db6b81665 --- /dev/null +++ b/newlib/libc/sys/w65/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/w65/Makefile.in b/newlib/libc/sys/w65/Makefile.in new file mode 100644 index 000000000..59f5a1d80 --- /dev/null +++ b/newlib/libc/sys/w65/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = syscalls.c trap.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = syscalls.o trap.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/w65/aclocal.m4 b/newlib/libc/sys/w65/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/w65/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/w65/configure b/newlib/libc/sys/w65/configure new file mode 100755 index 000000000..7db0af061 --- /dev/null +++ b/newlib/libc/sys/w65/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=trap.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/w65/configure.in b/newlib/libc/sys/w65/configure.in new file mode 100644 index 000000000..1c62fcb84 --- /dev/null +++ b/newlib/libc/sys/w65/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/w65 configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(trap.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/w65/crt0.c b/newlib/libc/sys/w65/crt0.c new file mode 100644 index 000000000..b7598973b --- /dev/null +++ b/newlib/libc/sys/w65/crt0.c @@ -0,0 +1,16 @@ + + +int p; +extern int edata; +extern int end; +start() +{ +int *s; + asm ("lda #stack"); + asm ("tcs"); + for (s = &edata; s != &end; s++) + *s = 0; + + main(); + exit(0); +} diff --git a/newlib/libc/sys/w65/sys/syscall.h b/newlib/libc/sys/w65/sys/syscall.h new file mode 100644 index 000000000..f141df764 --- /dev/null +++ b/newlib/libc/sys/w65/sys/syscall.h @@ -0,0 +1,31 @@ +#define SYS_exit 1 +#define SYS_fork 2 + +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 +#define SYS_stat 38 + +#define SYS_pipe 42 +#define SYS_execve 59 + +#define SYS_utime 201 /* not really a system call */ +#define SYS_wait 202 /* nor is this */ diff --git a/newlib/libc/sys/w65/syscalls.c b/newlib/libc/sys/w65/syscalls.c new file mode 100644 index 000000000..4f5b108b1 --- /dev/null +++ b/newlib/libc/sys/w65/syscalls.c @@ -0,0 +1,191 @@ +#include <_ansi.h> +#include <sys/types.h> +#include <sys/stat.h> +#include "sys/syscall.h" +int errno; + + + +int +_read (int file, + char *ptr, + int len) +{ + return __trap3 (SYS_read, file, ptr, len); +} + + +int +_lseek (int file, + int ptr, + int dir) +{ + return __trap3 (SYS_lseek, file, ptr, dir); +} + +static +writechar (char c) +{ + asm ("lda %0" : : "r" (c)); + asm ("wdm"); +} + + + +int +_write ( + int file, + char *ptr, + int len) +{ + return __trap3 (SYS_write, file, ptr, len); +} + + + +int +_close (int file) +{ + return __trap3 (SYS_close, file, 0, 0); +} + + + +caddr_t +_sbrk (int incr) +{ + extern char end; /* Defined by the linker */ + static char *heap_end; + char *prev_heap_end; + + if (heap_end == 0) + { + heap_end = &end; + } + prev_heap_end = heap_end; + if (heap_end + incr > stack_ptr) + { + _write (1, "Heap and stack collision\n", 25); + abort (); + } + + heap_end += incr; + return (caddr_t) prev_heap_end; +} + + + + +int +_fstat (int file, + struct stat *st) +{ + st->st_mode = S_IFCHR; + return 0; +} + + +int +_open ( + char *path, + int flags) +{ + return __trap3 (SYS_open, path, flags, 0); +} + +int +_unlink () +{ + return -1; +} + +isatty (fd) + int fd; +{ + return 1; +} + + + +_exit (n) +{ + return __trap3 (SYS_exit, n, 0, 0); +} + + +_kill (n, m) +{ + return __trap3 (SYS_exit, 0xdead, 0, 0); +} + + +_getpid (n) +{ + return 1; +} + + + + +_raise () +{ + +} + +int +_stat (const char *path, struct stat *st) + +{ + return _trap3 (SYS_stat, path, st, 0); +} + +int +_chmod (const char *path, short mode) +{ + return _trap3 (SYS_chmod, path, mode); +} + +int +_chown (const char *path, short owner, short group) +{ + return _trap3 (SYS_chown, path, owner, group); +} + +int +_utime (path, times) + const char *path; + char *times; +{ + return _trap3 (SYS_utime, path, times); +} + +int +_fork () +{ + return _trap3 (SYS_fork); +} + +int +_wait (statusp) + int *statusp; +{ + return _trap3 (SYS_wait); +} + +int +_execve (const char *path, char *const argv[], char *const envp[]) +{ + return _trap3 (SYS_execve, path, argv, envp); +} + +int +_execv (const char *path, char *const argv[]) +{ + return _trap3 (SYS_execv, path, argv); +} + +int +_pipe (int *fd) +{ + return _trap3 (SYS_pipe, fd); +} diff --git a/newlib/libc/sys/w65/trap.c b/newlib/libc/sys/w65/trap.c new file mode 100644 index 000000000..1f49999bb --- /dev/null +++ b/newlib/libc/sys/w65/trap.c @@ -0,0 +1,15 @@ + + + +_trap3() +{ + +} + + +__trap3(a1,a2,a3,a4,a5,a6) +{ + asm ("ldx #r0"); + asm ("wdm"); +} + diff --git a/newlib/libc/sys/z8ksim/Makefile.am b/newlib/libc/sys/z8ksim/Makefile.am new file mode 100644 index 000000000..184707d97 --- /dev/null +++ b/newlib/libc/sys/z8ksim/Makefile.am @@ -0,0 +1,14 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = glue.c + +all: crt0.o + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libc/sys/z8ksim/Makefile.in b/newlib/libc/sys/z8ksim/Makefile.in new file mode 100644 index 000000000..bc30a0693 --- /dev/null +++ b/newlib/libc/sys/z8ksim/Makefile.in @@ -0,0 +1,299 @@ +# Makefile.in generated automatically by automake 1.3 from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DISTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = glue.c + +ACLOCAL_AMFLAGS = -I ../../.. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = glue.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) +LINK = $(CC) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINT@ configure.in ../../../acinclude.m4 \ + ../../../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINT@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: + $(MAKE) $(AM_MAKEFLAGS) +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(DISTCLEANFILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +all: crt0.o + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/sys/z8ksim/aclocal.m4 b/newlib/libc/sys/z8ksim/aclocal.m4 new file mode 100644 index 000000000..70d481020 --- /dev/null +++ b/newlib/libc/sys/z8ksim/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + diff --git a/newlib/libc/sys/z8ksim/configure b/newlib/libc/sys/z8ksim/configure new file mode 100755 index 000000000..20672001f --- /dev/null +++ b/newlib/libc/sys/z8ksim/configure @@ -0,0 +1,1687 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=glue.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +ac_aux_dir= +for ac_dir in ../../../.. $srcdir/../../../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../../../.. $srcdir/../../../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:578: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:631: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:688: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:721: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 726 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:737: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:754: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 759 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../../../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}../../.." + fi +else + newlib_basedir="${srcdir}/../../.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:840: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:881: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:894: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:907: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:920: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:933: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:958: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:988: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1037: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1046: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1061: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1094: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1115: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1147: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1179: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1211: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1256: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1310: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1344: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../../../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libc/sys/z8ksim/configure.in b/newlib/libc/sys/z8ksim/configure.in new file mode 100644 index 000000000..ce23fd612 --- /dev/null +++ b/newlib/libc/sys/z8ksim/configure.in @@ -0,0 +1,12 @@ +dnl This is the newlib/libc/sys/z8ksim configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(glue.c) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../../../..) + +NEWLIB_CONFIGURE(../../..) + +AC_OUTPUT(Makefile) diff --git a/newlib/libc/sys/z8ksim/crt0.c b/newlib/libc/sys/z8ksim/crt0.c new file mode 100644 index 000000000..f9aad6d95 --- /dev/null +++ b/newlib/libc/sys/z8ksim/crt0.c @@ -0,0 +1,58 @@ +extern char _start_bss; +extern char _end_bss; +extern int main(int argc, char **argv, char **environ); +void __main(); + +static void +enter() +{ +#if defined(__Z8002__) + __main(); +#endif + exit(main(0,0,0)); +} +start() +{ + char *p; +#if defined(__Z8002__) + asm("ld r15,#__stack_top"); + asm("ld r10,r15"); +#endif +#if defined(__Z8001__) + asm("ldl rr14,#__stack_top"); + asm("ldl rr10,rr14"); +#endif + + + /* zero bss */ + p = &_start_bss; + while (p < & _end_bss) + { + *p++ = 0; + } + enter(); +} + +#if defined(__Z8002__) +void __do_global_ctors () +{ + typedef void (*pfunc)(); + extern pfunc __ctors[]; + extern pfunc __ctors_end[]; + pfunc *p; + for (p = __ctors_end; p > __ctors; ) + { + (*--p)(); + } +} + +void __main() +{ + static int initialized; + if (! initialized) + { + initialized = 1; + __do_global_ctors (); + } +} +#endif diff --git a/newlib/libc/sys/z8ksim/glue.c b/newlib/libc/sys/z8ksim/glue.c new file mode 100644 index 000000000..b3b0bab07 --- /dev/null +++ b/newlib/libc/sys/z8ksim/glue.c @@ -0,0 +1,156 @@ +#include "sys/syscall.h" +#include <sys/types.h> +#include <sys/stat.h> +#include <_ansi.h> +#include <errno.h> + +extern char _start_heap; +extern char _end_heap; +extern char _start_bss; +extern char _end_bss; + + +static int argl(long value) +{ + asm("ld r0,%H0" : : "r" (value)); + asm("ld r1,%I0" : : "r" (value)); + asm("sc %0" : : "i" (SYS_ARG)); +} + + +static int argw(value) +{ + asm("ld r1,%H0" : : "r" ( value)); + asm("ld r0,#0"); + asm("sc %0" : : "i" (SYS_ARG)); +} + +static int argp(void *value) +{ +#ifdef __Z8001__ + asm("ld r0,%H0" : : "r" (value)); + asm("ld r1,%I0" : : "r" (value)); +#else + asm("ld r1,%H0" : : "r" ( value)); + asm("ld r0,#0"); +#endif + asm("sc %0" : : "i" (SYS_ARG)); + +} + + + +#define ARGL(n, value) argl(value) +#define ARGW(n, value) argw(value) +#define ARGP(n, value) argp(value) + +#define MACRO(n) asm("sc %0" : : "i" (n)); + +int _read (int fd, char *buf,size_t nbytes) +{ + ARGW(0,fd); + ARGP(1,buf); + ARGP(2,(void *)(nbytes)); + MACRO(SYS_read); +} + +int _write (int fd, char *buf, size_t nbytes) +{ + ARGW(0,fd); + ARGP(1,buf); + ARGP(2,(void *)(nbytes)); + MACRO(SYS_write); +} + +int _open (const char *buf, int flags, int mode) +{ + ARGP(0, buf); + ARGW(1, flags); + ARGW(2, mode); + MACRO(SYS_open); +} + +int _close (int fd) +{ + ARGW(0,fd); + MACRO(SYS_close ); +} + +/* + * sbrk -- changes heap size size. Get nbytes more + * RAM. We just increment a pointer in what's + * left of memory on the board. + */ +caddr_t _sbrk (size_t nbytes) +{ + static char* heap_ptr = NULL; + caddr_t base; + + if (heap_ptr == NULL) { + heap_ptr = (caddr_t)&_start_heap; + } + + if (heap_ptr + nbytes < &_end_heap) { + base = heap_ptr; + heap_ptr += nbytes; + return (heap_ptr); + } else { + errno = ENOMEM; + return ((caddr_t)-1); + } +} + +int isatty (int fd) +{ + ARGW(0,fd); + MACRO(SYS_isatty); +} + +off_t _lseek (int fd, off_t offset, int whence) +{ + ARGW(0,fd); + ARGL(1,offset); + ARGW(2, whence); + MACRO(SYS_lseek); +} + +int _fstat (int fd, struct stat *buf) +{ + ARGW(0,fd); + ARGP(1,buf); + MACRO(SYS_fstat); +} + + + + +int +_exit(int val) +{ + ARGW(0,val); + MACRO(SYS_exit); +} + +time_t _time(time_t *timer) +{ + ARGP(0,timer); + MACRO(SYS_time); +} + +int +_creat (const char *path, int mode) +{ + ARGP(0, path); + ARGW(1, mode); + MACRO(SYS_creat); +} + +_kill(int pid, int val) +{ + _exit(val); +} + +_getpid() +{ + return 1; +} diff --git a/newlib/libc/sys/z8ksim/sys/syscall.h b/newlib/libc/sys/z8ksim/sys/syscall.h new file mode 100644 index 000000000..9631a73bd --- /dev/null +++ b/newlib/libc/sys/z8ksim/sys/syscall.h @@ -0,0 +1,23 @@ +#define SYS_exit 1 +#define SYS_fork 2 +#define SYS_read 3 +#define SYS_write 4 +#define SYS_open 5 +#define SYS_close 6 +#define SYS_wait4 7 +#define SYS_creat 8 +#define SYS_link 9 +#define SYS_unlink 10 +#define SYS_execv 11 +#define SYS_chdir 12 +#define SYS_mknod 14 +#define SYS_chmod 15 +#define SYS_chown 16 +#define SYS_lseek 19 +#define SYS_getpid 20 +#define SYS_isatty 21 +#define SYS_fstat 22 +#define SYS_time 23 + + +#define SYS_ARG 24 diff --git a/newlib/libc/syscalls/Makefile.am b/newlib/libc/syscalls/Makefile.am new file mode 100644 index 000000000..0a781e9fd --- /dev/null +++ b/newlib/libc/syscalls/Makefile.am @@ -0,0 +1,44 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + sysclose.c \ + sysexecve.c \ + sysfcntl.c \ + sysfork.c \ + sysfstat.c \ + sysgetpid.c \ + sysgettod.c \ + syskill.c \ + syslink.c \ + syslseek.c \ + sysopen.c \ + sysread.c \ + syssbrk.c \ + sysstat.c \ + systimes.c \ + sysunlink.c \ + syswait.c \ + syswrite.c + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +# No doc for syscalls. +doc: + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/syscalls/Makefile.in b/newlib/libc/syscalls/Makefile.in new file mode 100644 index 000000000..160f61e4c --- /dev/null +++ b/newlib/libc/syscalls/Makefile.in @@ -0,0 +1,319 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + sysclose.c \ + sysexecve.c \ + sysfcntl.c \ + sysfork.c \ + sysfstat.c \ + sysgetpid.c \ + sysgettod.c \ + syskill.c \ + syslink.c \ + syslseek.c \ + sysopen.c \ + sysread.c \ + syssbrk.c \ + sysstat.c \ + systimes.c \ + sysunlink.c \ + syswait.c \ + syswrite.c + + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = sysclose.o sysexecve.o sysfcntl.o sysfork.o sysfstat.o \ +sysgetpid.o sysgettod.o syskill.o syslink.o syslseek.o sysopen.o \ +sysread.o syssbrk.o sysstat.o systimes.o sysunlink.o syswait.o \ +syswrite.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus syscalls/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = syscalls + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +# No doc for syscalls. +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/syscalls/sysclose.c b/newlib/libc/syscalls/sysclose.c new file mode 100644 index 000000000..632364ac1 --- /dev/null +++ b/newlib/libc/syscalls/sysclose.c @@ -0,0 +1,14 @@ +/* connector for close */ + +#include <reent.h> + +int +close (fd) + int fd; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _close_r (_REENT, fd); +#else + return _close (fd); +#endif +} diff --git a/newlib/libc/syscalls/sysexecve.c b/newlib/libc/syscalls/sysexecve.c new file mode 100644 index 000000000..c5050472c --- /dev/null +++ b/newlib/libc/syscalls/sysexecve.c @@ -0,0 +1,16 @@ +/* connector for execve */ + +#include <reent.h> + +int +execve (name, argv, env) + char *name; + char **argv; + char **env; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _execve_r (_REENT, name, argv, env); +#else + return _execve (name, argv, env); +#endif +} diff --git a/newlib/libc/syscalls/sysfcntl.c b/newlib/libc/syscalls/sysfcntl.c new file mode 100644 index 000000000..23e1d837a --- /dev/null +++ b/newlib/libc/syscalls/sysfcntl.c @@ -0,0 +1,17 @@ +/* connector for fcntl */ +/* only called from stdio/fdopen.c, so arg can be int. */ + +#include <reent.h> + +int +fcntl (fd, flag, arg) + int fd; + int flag; + int arg; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _fcntl_r (_REENT, fd, flag, arg); +#else + return _fcntl (fd, flag, arg); +#endif +} diff --git a/newlib/libc/syscalls/sysfork.c b/newlib/libc/syscalls/sysfork.c new file mode 100644 index 000000000..9fe319ff0 --- /dev/null +++ b/newlib/libc/syscalls/sysfork.c @@ -0,0 +1,19 @@ +/* connector for fork */ + +/* Don't define this if NO_FORK. See for example libc/sys/win32/spawn.c. */ + +#ifndef NO_FORK + +#include <reent.h> + +int +fork () +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _fork_r (_REENT); +#else + return _fork (); +#endif +} + +#endif diff --git a/newlib/libc/syscalls/sysfstat.c b/newlib/libc/syscalls/sysfstat.c new file mode 100644 index 000000000..f167b3cd8 --- /dev/null +++ b/newlib/libc/syscalls/sysfstat.c @@ -0,0 +1,16 @@ +/* connector for fstat */ + +#include <reent.h> +#include <unistd.h> + +int +fstat (fd, pstat) + int fd; + struct stat *pstat; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _fstat_r (_REENT, fd, pstat); +#else + return _fstat (fd, pstat); +#endif +} diff --git a/newlib/libc/syscalls/sysgetpid.c b/newlib/libc/syscalls/sysgetpid.c new file mode 100644 index 000000000..d7f75064d --- /dev/null +++ b/newlib/libc/syscalls/sysgetpid.c @@ -0,0 +1,13 @@ +/* connector for getpid */ + +#include <reent.h> + +int +getpid () +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _getpid_r (_REENT); +#else + return _getpid (); +#endif +} diff --git a/newlib/libc/syscalls/sysgettod.c b/newlib/libc/syscalls/sysgettod.c new file mode 100644 index 000000000..24849d5ce --- /dev/null +++ b/newlib/libc/syscalls/sysgettod.c @@ -0,0 +1,20 @@ +/* connector for gettimeofday */ + +#include <reent.h> +#include <sys/types.h> +#include <sys/times.h> + +struct timeval; +struct timezone; + +int +gettimeofday (ptimeval, ptimezone) + struct timeval *ptimeval; + struct timezone *ptimezone; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _gettimeofday_r (_REENT, ptimeval, ptimezone); +#else + return _gettimeofday (ptimeval, ptimezone); +#endif +} diff --git a/newlib/libc/syscalls/syskill.c b/newlib/libc/syscalls/syskill.c new file mode 100644 index 000000000..4ee2f64df --- /dev/null +++ b/newlib/libc/syscalls/syskill.c @@ -0,0 +1,15 @@ +/* connector for kill */ + +#include <reent.h> + +int +kill (pid, sig) + int pid; + int sig; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _kill_r (_REENT, pid, sig); +#else + return _kill (pid, sig); +#endif +} diff --git a/newlib/libc/syscalls/syslink.c b/newlib/libc/syscalls/syslink.c new file mode 100644 index 000000000..6abe184ea --- /dev/null +++ b/newlib/libc/syscalls/syslink.c @@ -0,0 +1,15 @@ +/* connector for link */ + +#include <reent.h> + +int +link (old, new) + char *old; + char *new; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _link_r (_REENT, old, new); +#else + return _link (old, new); +#endif +} diff --git a/newlib/libc/syscalls/syslseek.c b/newlib/libc/syscalls/syslseek.c new file mode 100644 index 000000000..57d6423e9 --- /dev/null +++ b/newlib/libc/syscalls/syslseek.c @@ -0,0 +1,17 @@ +/* connector for lseek */ + +#include <reent.h> +#include <unistd.h> + +off_t +lseek (fd, pos, whence) + int fd; + off_t pos; + int whence; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _lseek_r (_REENT, fd, pos, whence); +#else + return _lseek (fd, pos, whence); +#endif +} diff --git a/newlib/libc/syscalls/sysopen.c b/newlib/libc/syscalls/sysopen.c new file mode 100644 index 000000000..6b3836f24 --- /dev/null +++ b/newlib/libc/syscalls/sysopen.c @@ -0,0 +1,43 @@ +/* connector for open */ + +#include <reent.h> +#include <fcntl.h> + +#ifdef _HAVE_STDC + +/* The prototype in <fcntl.h> uses ..., so we must correspond. */ + +#include <stdarg.h> + +int +open (const char *file, int flags, ...) +{ + va_list ap; + int ret; + + va_start (ap, flags); +#ifdef REENTRANT_SYSCALLS_PROVIDED + ret = _open_r (_REENT, file, flags, va_arg (ap, int)); +#else + ret = _open (file, flags, va_arg (ap, int)); +#endif + va_end (ap); + return ret; +} + +#else /* ! _HAVE_STDC */ + +int +open (file, flags, mode) + const char *file; + int flags; + int mode; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _open_r (_REENT, file, flags, mode); +#else + return _open (file, flags, mode); +#endif +} + +#endif /* ! _HAVE_STDC */ diff --git a/newlib/libc/syscalls/sysread.c b/newlib/libc/syscalls/sysread.c new file mode 100644 index 000000000..821a91a07 --- /dev/null +++ b/newlib/libc/syscalls/sysread.c @@ -0,0 +1,17 @@ +/* connector for read */ + +#include <reent.h> +#include <unistd.h> + +int +read (fd, buf, cnt) + int fd; + void *buf; + size_t cnt; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _read_r (_REENT, fd, buf, cnt); +#else + return _read (fd, buf, cnt); +#endif +} diff --git a/newlib/libc/syscalls/syssbrk.c b/newlib/libc/syscalls/syssbrk.c new file mode 100644 index 000000000..cee7ee13e --- /dev/null +++ b/newlib/libc/syscalls/syssbrk.c @@ -0,0 +1,18 @@ +/* connector for sbrk */ + +#include <reent.h> +#include <unistd.h> + +extern void *_sbrk_r (struct _reent *, size_t); +extern void *_sbrk (size_t); + +void * +sbrk (incr) + size_t incr; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _sbrk_r (_REENT, incr); +#else + return _sbrk (incr); +#endif +} diff --git a/newlib/libc/syscalls/sysstat.c b/newlib/libc/syscalls/sysstat.c new file mode 100644 index 000000000..39a506169 --- /dev/null +++ b/newlib/libc/syscalls/sysstat.c @@ -0,0 +1,16 @@ +/* connector for stat */ + +#include <reent.h> +#include <unistd.h> + +int +stat (file, pstat) + char *file; + struct stat *pstat; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _stat_r (_REENT, file, pstat); +#else + return _stat (file, pstat); +#endif +} diff --git a/newlib/libc/syscalls/systimes.c b/newlib/libc/syscalls/systimes.c new file mode 100644 index 000000000..f74d6fa15 --- /dev/null +++ b/newlib/libc/syscalls/systimes.c @@ -0,0 +1,15 @@ +/* connector for times */ + +#include <reent.h> +#include <sys/times.h> + +clock_t +times (buf) + struct tms *buf; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _times_r (_REENT, buf); +#else + return _times (buf); +#endif +} diff --git a/newlib/libc/syscalls/sysunlink.c b/newlib/libc/syscalls/sysunlink.c new file mode 100644 index 000000000..a910f96c2 --- /dev/null +++ b/newlib/libc/syscalls/sysunlink.c @@ -0,0 +1,14 @@ +/* connector for unlink */ + +#include <reent.h> + +int +unlink (file) + char *file; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _unlink_r (_REENT, file); +#else + return _unlink (file); +#endif +} diff --git a/newlib/libc/syscalls/syswait.c b/newlib/libc/syscalls/syswait.c new file mode 100644 index 000000000..86544fa0b --- /dev/null +++ b/newlib/libc/syscalls/syswait.c @@ -0,0 +1,14 @@ +/* connector for wait */ + +#include <reent.h> + +int +wait (status) + int *status; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _wait_r (_REENT, status); +#else + return _wait (status); +#endif +} diff --git a/newlib/libc/syscalls/syswrite.c b/newlib/libc/syscalls/syswrite.c new file mode 100644 index 000000000..e73028ea7 --- /dev/null +++ b/newlib/libc/syscalls/syswrite.c @@ -0,0 +1,17 @@ +/* connector for write */ + +#include <reent.h> +#include <unistd.h> + +int +write (fd, buf, cnt) + int fd; + const void *buf; + size_t cnt; +{ +#ifdef REENTRANT_SYSCALLS_PROVIDED + return _write_r (_REENT, fd, buf, cnt); +#else + return _write (fd, buf, cnt); +#endif +} diff --git a/newlib/libc/time/Makefile.am b/newlib/libc/time/Makefile.am new file mode 100644 index 000000000..6909bf9cd --- /dev/null +++ b/newlib/libc/time/Makefile.am @@ -0,0 +1,48 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + asctime.c \ + asctime_r.c \ + clock.c \ + ctime.c \ + ctime_r.c \ + difftime.c \ + gmtime.c \ + gmtime_r.c \ + lcltime.c \ + lcltime_r.c \ + mktime.c \ + strftime.c \ + time.c + +CHEWOUT_FILES = \ + asctime.def \ + clock.def \ + ctime.def \ + difftime.def \ + gmtime.def \ + lcltime.def \ + mktime.def \ + strftime.def \ + time.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/time.tex >> $(TARGETDOC) + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/time/Makefile.in b/newlib/libc/time/Makefile.in new file mode 100644 index 000000000..6c553b1a3 --- /dev/null +++ b/newlib/libc/time/Makefile.in @@ -0,0 +1,323 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + asctime.c \ + asctime_r.c \ + clock.c \ + ctime.c \ + ctime_r.c \ + difftime.c \ + gmtime.c \ + gmtime_r.c \ + lcltime.c \ + lcltime_r.c \ + mktime.c \ + strftime.c \ + time.c + + +CHEWOUT_FILES = \ + asctime.def \ + clock.def \ + ctime.def \ + difftime.def \ + gmtime.def \ + lcltime.def \ + mktime.def \ + strftime.def \ + time.def + + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = asctime.o asctime_r.o clock.o ctime.o ctime_r.o \ +difftime.o gmtime.o gmtime_r.o lcltime.o lcltime_r.o mktime.o \ +strftime.o time.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus time/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = time + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(CHEWOUT_FILES) + cat $(srcdir)/time.tex >> $(TARGETDOC) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/time/asctime.c b/newlib/libc/time/asctime.c new file mode 100644 index 000000000..4ad35e806 --- /dev/null +++ b/newlib/libc/time/asctime.c @@ -0,0 +1,64 @@ +/* + * asctime.c + * Original Author: G. Haley + * + * Converts the broken down time in the structure pointed to by tim_p into a + * string of the form + * + * Wed Jun 15 11:38:07 1988\n\0 + * + * Returns a pointer to the string. + */ + +/* +FUNCTION +<<asctime>>---format time as string + +INDEX + asctime +INDEX + _asctime_r + +ANSI_SYNOPSIS + #include <time.h> + char *asctime(const struct tm *<[clock]>); + char *asctime_r(const struct tm *<[clock]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <time.h> + char *asctime(<[clock]>) + struct tm *<[clock]>; + char *asctime_r(<[clock]>) + struct tm *<[clock]>; + char *<[buf]>; + +DESCRIPTION +Format the time value at <[clock]> into a string of the form +. Wed Jun 15 11:38:07 1988\n\0 +The string is generated in a static buffer; each call to <<asctime>> +overwrites the string generated by previous calls. + +RETURNS +A pointer to the string containing a formatted timestamp. + +PORTABILITY +ANSI C requires <<asctime>>. + +<<asctime>> requires no supporting OS subroutines. +*/ + +#include <time.h> +#include <_ansi.h> +#include <reent.h> + +#ifndef _REENT_ONLY + +char * +_DEFUN (asctime, (tim_p), + _CONST struct tm *tim_p) +{ + char *buf = _REENT->_new._reent._asctime_buf; + return asctime_r (tim_p, buf); +} + +#endif diff --git a/newlib/libc/time/asctime_r.c b/newlib/libc/time/asctime_r.c new file mode 100644 index 000000000..ff70ea415 --- /dev/null +++ b/newlib/libc/time/asctime_r.c @@ -0,0 +1,27 @@ +/* + * asctime_r.c + */ + +#include <stdio.h> +#include <time.h> + +char * +_DEFUN (asctime_r, (tim_p, result), + _CONST struct tm *tim_p _AND + char *result) +{ + static _CONST char day_name[7][3] = { + "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" + }; + static _CONST char mon_name[12][3] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" + }; + + sprintf (result, "%.3s %.3s %.2d %.2d:%.2d:%.2d %d\n", + day_name[tim_p->tm_wday], + mon_name[tim_p->tm_mon], + tim_p->tm_mday, tim_p->tm_hour, tim_p->tm_min, + tim_p->tm_sec, 1900 + tim_p->tm_year); + return result; +} diff --git a/newlib/libc/time/clock.c b/newlib/libc/time/clock.c new file mode 100644 index 000000000..b15915d6a --- /dev/null +++ b/newlib/libc/time/clock.c @@ -0,0 +1,69 @@ +/* NetWare can not use this implementation of clock, since it does not + have times or any similar function. It provides its own version of + clock in clib.nlm. If we can not use clib.nlm, then we must write + clock in sys/netware. */ + +#ifdef CLOCK_PROVIDED + +int _dummy_clock = 1; + +#else + +/* + * clock.c + * Original Author: G. Haley + * + * Determines the processor time used by the program since invocation. The time + * in seconds is the value returned divided by the value of the macro CLK_TCK. + * If the processor time used is not available, (clock_t) -1 is returned. + */ + +/* +FUNCTION +<<clock>>---cumulative processor time + +INDEX + clock + +ANSI_SYNOPSIS + #include <time.h> + clock_t clock(void); + +TRAD_SYNOPSIS + #include <time.h> + clock_t clock(); + +DESCRIPTION +Calculates the best available approximation of the cumulative amount +of time used by your program since it started. To convert the result +into seconds, divide by the macro <<CLOCKS_PER_SEC>>. + +RETURNS +The amount of processor time used so far by your program, in units +defined by the machine-dependent macro <<CLOCKS_PER_SEC>>. If no +measurement is available, the result is <<-1>>. + +PORTABILITY +ANSI C requires <<clock>> and <<CLOCKS_PER_SEC>>. + +Supporting OS subroutine required: <<times>>. +*/ + +#include <time.h> +#include <sys/times.h> +#include <reent.h> + +clock_t +clock () +{ + struct tms tim_s; + clock_t res; + + if ((res = (clock_t) _times_r (_REENT, &tim_s)) != -1) + res = (clock_t) (tim_s.tms_utime + tim_s.tms_stime + + tim_s.tms_cutime + tim_s.tms_cstime); + + return res; +} + +#endif /* CLOCK_PROVIDED */ diff --git a/newlib/libc/time/ctime.c b/newlib/libc/time/ctime.c new file mode 100644 index 000000000..e8ccc144a --- /dev/null +++ b/newlib/libc/time/ctime.c @@ -0,0 +1,52 @@ +/* + * ctime.c + * Original Author: G. Haley + */ + +/* +FUNCTION +<<ctime>>---convert time to local and format as string + +INDEX + ctime + +ANSI_SYNOPSIS + #include <time.h> + char *ctime(time_t <[clock]>); + char *ctime_r(time_t <[clock]>, char *<[buf]>); + +TRAD_SYNOPSIS + #include <time.h> + char *ctime(<[clock]>) + time_t <[clock]>; + char *ctime_r(<[clock]>, <[buf]>) + time_t <[clock]>; + char *<[buf]>; + +DESCRIPTION +Convert the time value at <[clock]> to local time (like <<localtime>>) +and format it into a string of the form +. Wed Jun 15 11:38:07 1988\n\0 +(like <<asctime>>). + +RETURNS +A pointer to the string containing a formatted timestamp. + +PORTABILITY +ANSI C requires <<ctime>>. + +<<ctime>> requires no supporting OS subroutines. +*/ + +#include <time.h> + +#ifndef _REENT_ONLY + +char * +_DEFUN (ctime, (tim_p), + _CONST time_t * tim_p) +{ + return asctime (localtime (tim_p)); +} + +#endif diff --git a/newlib/libc/time/ctime_r.c b/newlib/libc/time/ctime_r.c new file mode 100644 index 000000000..fda8cac1e --- /dev/null +++ b/newlib/libc/time/ctime_r.c @@ -0,0 +1,15 @@ +/* + * ctime_r.c + */ + +#include <time.h> + +char * +_DEFUN (ctime_r, (tim_p, result), + _CONST time_t * tim_p _AND + char * result) + +{ + struct tm tm; + return asctime_r (localtime_r (tim_p, &tm), result); +} diff --git a/newlib/libc/time/difftime.c b/newlib/libc/time/difftime.c new file mode 100644 index 000000000..93a4f0004 --- /dev/null +++ b/newlib/libc/time/difftime.c @@ -0,0 +1,44 @@ +/* + * difftime.c + * Original Author: G. Haley + */ + +/* +FUNCTION +<<difftime>>---subtract two times + +INDEX + difftime + +ANSI_SYNOPSIS + #include <time.h> + double difftime(time_t <[tim1]>, time_t <[tim2]>); + +TRAD_SYNOPSIS + #include <time.h> + double difftime(<[tim1]>, <[tim2]>) + time_t <[tim1]>; + time_t <[tim2]>; + +DESCRIPTION +Subtracts the two times in the arguments: `<<<[tim1]> - <[tim2]>>>'. + +RETURNS +The difference (in seconds) between <[tim2]> and <[tim1]>, as a <<double>>. + +PORTABILITY +ANSI C requires <<difftime>>, and defines its result to be in seconds +in all implementations. + +<<difftime>> requires no supporting OS subroutines. +*/ + +#include <time.h> + +double +_DEFUN (difftime, (tim1, tim2), + time_t tim1 _AND + time_t tim2) +{ + return ((double) tim1 - tim2); +} diff --git a/newlib/libc/time/gmtime.c b/newlib/libc/time/gmtime.c new file mode 100644 index 000000000..4f5bbe403 --- /dev/null +++ b/newlib/libc/time/gmtime.c @@ -0,0 +1,67 @@ +/* + * gmtime.c + * Original Author: G. Haley + * + * Converts the calendar time pointed to by tim_p into a broken-down time + * expressed as Greenwich Mean Time (GMT). Returns a pointer to a structure + * containing the broken-down time, or a null pointer if GMT is not + * available. + */ + +/* +FUNCTION +<<gmtime>>---convert time to UTC traditional form + +INDEX + gmtime + +ANSI_SYNOPSIS + #include <time.h> + struct tm *gmtime(const time_t *<[clock]>); + struct tm *gmtime_r(const time_t *<[clock]>, struct tm *<[res]>); + +TRAD_SYNOPSIS + #include <time.h> + struct tm *gmtime(<[clock]>) + const time_t *<[clock]>; + struct tm *gmtime_r(<[clock]>, <[res]>) + const time_t *<[clock]>; + struct tm *<[res]>; + +DESCRIPTION +<<gmtime>> assumes the time at <[clock]> represents a local time. +<<gmtime>> converts it to UTC (Universal Coordinated Time, also known in some +countries as GMT, Greenwich Mean time), then converts the +representation from the arithmetic representation to +the traditional representation defined by <<struct tm>>. + +<<gmtime>> constructs the traditional time representation in static +storage; each call to <<gmtime>> or <<localtime>> will overwrite the +information generated by previous calls to either function. + +RETURNS +A pointer to the traditional time representation (<<struct tm>>). + +PORTABILITY +ANSI C requires <<gmtime>>. + +<<gmtime>> requires no supporting OS subroutines. +*/ + +#include <stdlib.h> +#include <time.h> + +#define _GMT_OFFSET 0 + +#ifndef _REENT_ONLY + +struct tm * +_DEFUN (gmtime, (tim_p), + _CONST time_t * tim_p) +{ + time_t tim = *tim_p + _GMT_OFFSET; + + return (localtime (&tim)); +} + +#endif diff --git a/newlib/libc/time/gmtime_r.c b/newlib/libc/time/gmtime_r.c new file mode 100644 index 000000000..7afa021c5 --- /dev/null +++ b/newlib/libc/time/gmtime_r.c @@ -0,0 +1,17 @@ +/* + * gmtime_r.c + */ + +#include <time.h> + +#define _GMT_OFFSET 0 + +struct tm * +_DEFUN (gmtime_r, (tim_p, res), + _CONST time_t * tim_p _AND + struct tm *res) +{ + time_t tim = *tim_p + _GMT_OFFSET; + + return (localtime_r (&tim, res)); +} diff --git a/newlib/libc/time/lcltime.c b/newlib/libc/time/lcltime.c new file mode 100644 index 000000000..d4c7d7d61 --- /dev/null +++ b/newlib/libc/time/lcltime.c @@ -0,0 +1,57 @@ +/* + * localtime.c + */ + +/* +FUNCTION +<<localtime>>---convert time to local representation + +INDEX + localtime + +ANSI_SYNOPSIS + #include <time.h> + struct tm *localtime(time_t *<[clock]>); + struct tm *localtime_r(time_t *<[clock]>, struct tm *<[res]>); + +TRAD_SYNOPSIS + #include <time.h> + struct tm *localtime(<[clock]>) + time_t *<[clock]>; + struct tm *localtime(<[clock]>, <[res]>) + time_t *<[clock]>; + struct tm *<[res]>; + +DESCRIPTION +<<localtime>> converts the time at <[clock]> into local time, then +converts its representation from the arithmetic representation to the +traditional representation defined by <<struct tm>>. + +<<localtime>> constructs the traditional time representation in static +storage; each call to <<gmtime>> or <<localtime>> will overwrite the +information generated by previous calls to either function. + +<<mktime>> is the inverse of <<localtime>>. + +RETURNS +A pointer to the traditional time representation (<<struct tm>>). + +PORTABILITY +ANSI C requires <<localtime>>. + +<<localtime>> requires no supporting OS subroutines. +*/ + +#include <time.h> +#include <reent.h> + +#ifndef _REENT_ONLY + +struct tm * +_DEFUN (localtime, (tim_p), + _CONST time_t * tim_p) +{ + return localtime_r (tim_p, &(_REENT->_new._reent._localtime_buf)); +} + +#endif diff --git a/newlib/libc/time/lcltime_r.c b/newlib/libc/time/lcltime_r.c new file mode 100644 index 000000000..1b4269ee1 --- /dev/null +++ b/newlib/libc/time/lcltime_r.c @@ -0,0 +1,104 @@ +/* + * localtime_r.c + * Original Author: Adapted from tzcode maintained by Arthur David Olson. + * + * Converts the calendar time pointed to by tim_p into a broken-down time + * expressed as local time. Returns a pointer to a structure containing the + * broken-down time. + */ + +#include <stdlib.h> +#include <time.h> + +#define SECSPERMIN 60L +#define MINSPERHOUR 60L +#define HOURSPERDAY 24L +#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR) +#define SECSPERDAY (SECSPERHOUR * HOURSPERDAY) +#define DAYSPERWEEK 7 +#define MONSPERYEAR 12 + +#define YEAR_BASE 1900 +#define EPOCH_YEAR 1970 +#define EPOCH_WDAY 4 + +#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) + +static _CONST int mon_lengths[2][MONSPERYEAR] = { + {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, + {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} +} ; + +static _CONST int year_lengths[2] = { + 365, + 366 +} ; + +struct tm * +_DEFUN (localtime_r, (tim_p, res), + _CONST time_t * tim_p _AND + struct tm *res) +{ + long days, rem; + int y; + int yleap; + _CONST int *ip; + + days = ((long) *tim_p) / SECSPERDAY; + rem = ((long) *tim_p) % SECSPERDAY; + while (rem < 0) + { + rem += SECSPERDAY; + --days; + } + while (rem >= SECSPERDAY) + { + rem -= SECSPERDAY; + ++days; + } + + /* compute hour, min, and sec */ + res->tm_hour = (int) (rem / SECSPERHOUR); + rem %= SECSPERHOUR; + res->tm_min = (int) (rem / SECSPERMIN); + res->tm_sec = (int) (rem % SECSPERMIN); + + /* compute day of week */ + if ((res->tm_wday = ((EPOCH_WDAY + days) % DAYSPERWEEK)) < 0) + res->tm_wday += DAYSPERWEEK; + + /* compute year & day of year */ + y = EPOCH_YEAR; + if (days >= 0) + { + for (;;) + { + yleap = isleap(y); + if (days < year_lengths[yleap]) + break; + y++; + days -= year_lengths[yleap]; + } + } + else + { + do + { + --y; + yleap = isleap(y); + days += year_lengths[yleap]; + } while (days < 0); + } + + res->tm_year = y - YEAR_BASE; + res->tm_yday = days; + ip = mon_lengths[yleap]; + for (res->tm_mon = 0; days >= ip[res->tm_mon]; ++res->tm_mon) + days -= ip[res->tm_mon]; + res->tm_mday = days + 1; + + /* set daylight saving time flag */ + res->tm_isdst = -1; + + return (res); +} diff --git a/newlib/libc/time/mktime.c b/newlib/libc/time/mktime.c new file mode 100644 index 000000000..431eca568 --- /dev/null +++ b/newlib/libc/time/mktime.c @@ -0,0 +1,204 @@ +/* + * mktime.c + * Original Author: G. Haley + * + * Converts the broken-down time, expressed as local time, in the structure + * pointed to by tim_p into a calendar time value. The original values of the + * tm_wday and tm_yday fields of the structure are ignored, and the original + * values of the other fields have no restrictions. On successful completion + * the fields of the structure are set to represent the specified calendar + * time. Returns the specified calendar time. If the calendar time can not be + * represented, returns the value (time_t) -1. + */ + +/* +FUNCTION +<<mktime>>---convert time to arithmetic representation + +INDEX + mktime + +ANSI_SYNOPSIS + #include <time.h> + time_t mktime(struct tm *<[timp]>); + +TRAD_SYNOPSIS + #include <time.h> + time_t mktime(<[timp]>) + struct tm *<[timp]>; + +DESCRIPTION +<<mktime>> assumes the time at <[timp]> is a local time, and converts +its representation from the traditional representation defined by +<<struct tm>> into a representation suitable for arithmetic. + +<<localtime>> is the inverse of <<mktime>>. + +RETURNS +If the contents of the structure at <[timp]> do not form a valid +calendar time representation, the result is <<-1>>. Otherwise, the +result is the time, converted to a <<time_t>> value. + +PORTABILITY +ANSI C requires <<mktime>>. + +<<mktime>> requires no supporting OS subroutines. +*/ + +#include <stdlib.h> +#include <time.h> + +#define _SEC_IN_MINUTE 60 +#define _SEC_IN_HOUR 3600 +#define _SEC_IN_DAY 86400 + +static _CONST int DAYS_IN_MONTH[12] = +{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + +#define _DAYS_IN_MONTH(x) ((x == 1) ? days_in_feb : DAYS_IN_MONTH[x]) + +static _CONST int _DAYS_BEFORE_MONTH[12] = +{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}; + +#define _ISLEAP(y) (((y) % 4) == 0 && (((y) % 100) != 0 || (((y)+1900) % 400) == 0)) +#define _DAYS_IN_YEAR(year) (_ISLEAP(year) ? 366 : 365) + +static void +validate_structure (tim_p) + struct tm *tim_p; +{ + div_t res; + int days_in_feb = 28; + + /* calculate time & date to account for out of range values */ + if (tim_p->tm_sec < 0 || tim_p->tm_sec > 59) + { + res = div (tim_p->tm_sec, 60); + tim_p->tm_min += res.quot; + if ((tim_p->tm_sec = res.rem) < 0) + { + tim_p->tm_sec += 60; + --tim_p->tm_min; + } + } + + if (tim_p->tm_min < 0 || tim_p->tm_min > 59) + { + res = div (tim_p->tm_min, 60); + tim_p->tm_hour += res.quot; + if ((tim_p->tm_min = res.rem) < 0) + { + tim_p->tm_min += 60; + --tim_p->tm_hour; + } + } + + if (tim_p->tm_hour < 0 || tim_p->tm_hour > 23) + { + res = div (tim_p->tm_hour, 24); + tim_p->tm_mday += res.quot; + if ((tim_p->tm_hour = res.rem) < 0) + { + tim_p->tm_hour += 24; + --tim_p->tm_mday; + } + } + + if (tim_p->tm_mon > 11) + { + res = div (tim_p->tm_mon, 12); + tim_p->tm_year += res.quot; + if ((tim_p->tm_mon = res.rem) < 0) + { + tim_p->tm_mon += 12; + --tim_p->tm_year; + } + } + + if (_DAYS_IN_YEAR (tim_p->tm_year) == 366) + days_in_feb = 29; + + if (tim_p->tm_mday <= 0) + { + while (tim_p->tm_mday <= 0) + { + if (--tim_p->tm_mon == -1) + { + tim_p->tm_year--; + tim_p->tm_mon = 11; + days_in_feb = + ((_DAYS_IN_YEAR (tim_p->tm_year) == 366) ? + 29 : 28); + } + tim_p->tm_mday += _DAYS_IN_MONTH (tim_p->tm_mon); + } + } + else + { + while (tim_p->tm_mday > _DAYS_IN_MONTH (tim_p->tm_mon)) + { + tim_p->tm_mday -= _DAYS_IN_MONTH (tim_p->tm_mon); + if (++tim_p->tm_mon == 12) + { + tim_p->tm_year++; + tim_p->tm_mon = 0; + days_in_feb = + ((_DAYS_IN_YEAR (tim_p->tm_year) == 366) ? + 29 : 28); + } + } + } +} + +time_t +mktime (tim_p) + struct tm *tim_p; +{ + time_t tim = 0; + long days = 0; + int year; + + /* validate structure */ + validate_structure (tim_p); + + /* compute hours, minutes, seconds */ + tim += tim_p->tm_sec + (tim_p->tm_min * _SEC_IN_MINUTE) + + (tim_p->tm_hour * _SEC_IN_HOUR); + + /* compute days in year */ + days += tim_p->tm_mday - 1; + days += _DAYS_BEFORE_MONTH[tim_p->tm_mon]; + if (tim_p->tm_mon > 1 && _DAYS_IN_YEAR (tim_p->tm_year) == 366) + days++; + + /* compute day of the year */ + tim_p->tm_yday = days; + + if (tim_p->tm_year > 10000 + || tim_p->tm_year < -10000) + { + return (time_t) -1; + } + + /* compute days in other years */ + if (tim_p->tm_year > 70) + { + for (year = 70; year < tim_p->tm_year; year++) + days += _DAYS_IN_YEAR (year); + } + else if (tim_p->tm_year < 70) + { + for (year = 69; year > tim_p->tm_year; year--) + days -= _DAYS_IN_YEAR (year); + days -= _DAYS_IN_YEAR (year); + } + + /* compute day of the week */ + if ((tim_p->tm_wday = (days + 4) % 7) < 0) + tim_p->tm_wday += 7; + + /* compute total seconds */ + tim += (days * _SEC_IN_DAY); + + return tim; +} diff --git a/newlib/libc/time/strftime.c b/newlib/libc/time/strftime.c new file mode 100644 index 000000000..1e6154f12 --- /dev/null +++ b/newlib/libc/time/strftime.c @@ -0,0 +1,444 @@ +/* + * strftime.c + * Original Author: G. Haley + * + * Places characters into the array pointed to by s as controlled by the string + * pointed to by format. If the total number of resulting characters including + * the terminating null character is not more than maxsize, returns the number + * of characters placed into the array pointed to by s (not including the + * terminating null character); otherwise zero is returned and the contents of + * the array indeterminate. + */ + +/* +FUNCTION +<<strftime>>---flexible calendar time formatter + +INDEX + strftime + +ANSI_SYNOPSIS + #include <time.h> + size_t strftime(char *<[s]>, size_t <[maxsize]>, + const char *<[format]>, const struct tm *<[timp]>); + +TRAD_SYNOPSIS + #include <time.h> + size_t strftime(<[s]>, <[maxsize]>, <[format]>, <[timp]>) + char *<[s]>; + size_t <[maxsize]>; + char *<[format]>; + struct tm *<[timp]>; + +DESCRIPTION +<<strftime>> converts a <<struct tm>> representation of the time (at +<[timp]>) into a string, starting at <[s]> and occupying no more than +<[maxsize]> characters. + +You control the format of the output using the string at <[format]>. +<<*<[format]>>> can contain two kinds of specifications: text to be +copied literally into the formatted string, and time conversion +specifications. Time conversion specifications are two-character +sequences beginning with `<<%>>' (use `<<%%>>' to include a percent +sign in the output). Each defined conversion specification selects a +field of calendar time data from <<*<[timp]>>>, and converts it to a +string in one of the following ways: + +o+ +o %a +An abbreviation for the day of the week. + +o %A +The full name for the day of the week. + +o %b +An abbreviation for the month name. + +o %B +The full name of the month. + +o %c +A string representing the complete date and time, in the form +. Mon Apr 01 13:13:13 1992 + +o %d +The day of the month, formatted with two digits. + +o %H +The hour (on a 24-hour clock), formatted with two digits. + +o %I +The hour (on a 12-hour clock), formatted with two digits. + +o %j +The count of days in the year, formatted with three digits +(from `<<001>>' to `<<366>>'). + +o %m +The month number, formatted with two digits. + +o %M +The minute, formatted with two digits. + +o %p +Either `<<AM>>' or `<<PM>>' as appropriate. + +o %S +The second, formatted with two digits. + +o %U +The week number, formatted with two digits (from `<<00>>' to `<<53>>'; +week number 1 is taken as beginning with the first Sunday in a year). +See also <<%W>>. + +o %w +A single digit representing the day of the week: Sunday is day <<0>>. + +o %W +Another version of the week number: like `<<%U>>', but counting week 1 +as beginning with the first Monday in a year. + +o +o %x +A string representing the complete date, in a format like +. Mon Apr 01 1992 + +o %X +A string representing the full time of day (hours, minutes, and +seconds), in a format like +. 13:13:13 + +o %y +The last two digits of the year. + +o %Y +The full year, formatted with four digits to include the century. + +o %Z +Defined by ANSI C as eliciting the time zone if available; it is not +available in this implementation (which accepts `<<%Z>>' but generates +no output for it). + +o %% +A single character, `<<%>>'. +o- + +RETURNS +When the formatted time takes up no more than <[maxsize]> characters, +the result is the length of the formatted string. Otherwise, if the +formatting operation was abandoned due to lack of room, the result is +<<0>>, and the string starting at <[s]> corresponds to just those +parts of <<*<[format]>>> that could be completely filled in within the +<[maxsize]> limit. + +PORTABILITY +ANSI C requires <<strftime>>, but does not specify the contents of +<<*<[s]>>> when the formatted string would require more than +<[maxsize]> characters. + +<<strftime>> requires no supporting OS subroutines. +*/ + +#include <stddef.h> +#include <stdio.h> +#include <time.h> + +static _CONST int dname_len[7] = +{6, 6, 7, 9, 8, 6, 8}; + +static _CONST char *_CONST dname[7] = +{"Sunday", "Monday", "Tuesday", "Wednesday", + "Thursday", "Friday", "Saturday"}; + +static _CONST int mname_len[12] = +{7, 8, 5, 5, 3, 4, 4, 6, 9, 7, 8, 8}; + +static _CONST char *_CONST mname[12] = +{"January", "February", "March", "April", + "May", "June", "July", "August", "September", "October", "November", + "December"}; + +size_t +_DEFUN (strftime, (s, maxsize, format, tim_p), + char *s _AND + size_t maxsize _AND + _CONST char *format _AND + _CONST struct tm *tim_p) +{ + size_t count = 0; + int i; + + for (;;) + { + while (*format && *format != '%') + { + if (count < maxsize - 1) + s[count++] = *format++; + else + return 0; + } + + if (*format == '\0') + break; + + format++; + switch (*format) + { + case 'a': + for (i = 0; i < 3; i++) + { + if (count < maxsize - 1) + s[count++] = + dname[tim_p->tm_wday][i]; + else + return 0; + } + break; + case 'A': + for (i = 0; i < dname_len[tim_p->tm_wday]; i++) + { + if (count < maxsize - 1) + s[count++] = + dname[tim_p->tm_wday][i]; + else + return 0; + } + break; + case 'b': + for (i = 0; i < 3; i++) + { + if (count < maxsize - 1) + s[count++] = + mname[tim_p->tm_mon][i]; + else + return 0; + } + break; + case 'B': + for (i = 0; i < mname_len[tim_p->tm_mon]; i++) + { + if (count < maxsize - 1) + s[count++] = + mname[tim_p->tm_mon][i]; + else + return 0; + } + break; + case 'c': + if (count < maxsize - 24) + { + for (i = 0; i < 3; i++) + s[count++] = + dname[tim_p->tm_wday][i]; + s[count++] = ' '; + for (i = 0; i < 3; i++) + s[count++] = + mname[tim_p->tm_mon][i]; + + sprintf (&s[count], + " %.2d %2.2d:%2.2d:%2.2d %.4d", + tim_p->tm_mday, tim_p->tm_hour, + tim_p->tm_min, + tim_p->tm_sec, 1900 + + tim_p->tm_year); + count += 17; + } + else + return 0; + break; + case 'd': + if (count < maxsize - 2) + { + sprintf (&s[count], "%.2d", + tim_p->tm_mday); + count += 2; + } + else + return 0; + break; + case 'H': + if (count < maxsize - 2) + { + sprintf (&s[count], "%2.2d", + tim_p->tm_hour); + count += 2; + } + else + return 0; + break; + case 'I': + if (count < maxsize - 2) + { + if (tim_p->tm_hour == 0 || + tim_p->tm_hour == 12) + { + s[count++] = '1'; + s[count++] = '2'; + } + else + { + sprintf (&s[count], "%.2d", + tim_p->tm_hour % 12); + count += 2; + } + } + else + return 0; + break; + case 'j': + if (count < maxsize - 3) + { + sprintf (&s[count], "%.3d", + tim_p->tm_yday + 1); + count += 3; + } + else + return 0; + break; + case 'm': + if (count < maxsize - 2) + { + sprintf (&s[count], "%.2d", + tim_p->tm_mon + 1); + count += 2; + } + else + return 0; + break; + case 'M': + if (count < maxsize - 2) + { + sprintf (&s[count], "%2.2d", + tim_p->tm_min); + count += 2; + } + else + return 0; + break; + case 'p': + if (count < maxsize - 2) + { + if (tim_p->tm_hour < 12) + s[count++] = 'A'; + else + s[count++] = 'P'; + + s[count++] = 'M'; + } + else + return 0; + break; + case 'S': + if (count < maxsize - 2) + { + sprintf (&s[count], "%2.2d", + tim_p->tm_sec); + count += 2; + } + else + return 0; + break; + case 'U': + if (count < maxsize - 2) + { + sprintf (&s[count], "%2.2d", + (tim_p->tm_yday + 7 - + tim_p->tm_wday) / 7); + count += 2; + } + else + return 0; + break; + case 'w': + if (count < maxsize - 1) + { + sprintf (&s[count], "%1.1d", + tim_p->tm_wday); + count++; + } + else + return 0; + break; + case 'W': + if (count < maxsize - 2) + { + sprintf (&s[count], "%2.2d", + (tim_p->tm_yday + ((8 - + tim_p->tm_wday) % 7)) / 7); + count += 2; + } + else + return 0; + break; + case 'x': + if (count < maxsize - 15) + { + for (i = 0; i < 3; i++) + s[count++] = + dname[tim_p->tm_wday][i]; + s[count++] = ' '; + for (i = 0; i < 3; i++) + s[count++] = + mname[tim_p->tm_mon][i]; + + sprintf (&s[count], + " %.2d %.4d", tim_p->tm_mday, + 1900 + tim_p->tm_year); + count += 8; + } + else + return 0; + break; + case 'X': + if (count < maxsize - 8) + { + sprintf (&s[count], + "%2.2d:%2.2d:%2.2d", + tim_p->tm_hour, tim_p->tm_min, + tim_p->tm_sec); + count += 8; + } + else + return 0; + break; + case 'y': + if (count < maxsize - 2) + { + /* The year could be greater than 100, so we need the value + modulo 100. The year could be negative, so we need to + correct for a possible negative remainder. */ + sprintf (&s[count], "%2.2d", + (tim_p->tm_year % 100 + 100) % 100); + count += 2; + } + else + return 0; + break; + case 'Y': + if (count < maxsize - 4) + { + sprintf (&s[count], "%.4d", + 1900 + tim_p->tm_year); + count += 4; + } + else + return 0; + break; + case 'Z': + break; + case '%': + if (count < maxsize - 1) + s[count++] = '%'; + else + return 0; + break; + } + if (*format) + format++; + else + break; + } + s[count] = '\0'; + + return count; +} diff --git a/newlib/libc/time/time.c b/newlib/libc/time/time.c new file mode 100644 index 000000000..38cce50f9 --- /dev/null +++ b/newlib/libc/time/time.c @@ -0,0 +1,59 @@ +/* FIXME: doc says "not avail" due to #if 0. + DELETE that line if inappropriate! */ +/* +FUNCTION +<<time>>---get current calendar time (as single number) + +INDEX + time + +ANSI_SYNOPSIS + #include <time.h> + time_t time(time_t *<[t]>); + +TRAD_SYNOPSIS + #include <time.h> + time_t time(<[t]>) + time_t *<[t]>; + +DESCRIPTION +<<time>> looks up the best available representation of the current +time and returns it, encoded as a <<time_t>>. It stores the same +value at <[t]> unless the argument is <<NULL>>. + +RETURNS +A <<-1>> result means the current time is not available; otherwise the +result represents the current time. + +PORTABILITY +ANSI C requires <<time>>. + +Supporting OS subroutine required: Some implementations require +<<gettimeofday>>. +*/ + +#ifdef HAVE_GETTIMEOFDAY + +/* Most times we have a system call in newlib/libc/sys/.. to do this job */ + +#include <_ansi.h> +#include <reent.h> +#include <sys/types.h> +#include <sys/time.h> + +time_t +_DEFUN (time, (t), + time_t * t) +{ + struct timeval now; + + if (_gettimeofday_r (_REENT, &now, (struct timezone *) 0) >= 0) + { + if (t) + *t = now.tv_sec; + return now.tv_sec; + } + return -1; +} + +#endif diff --git a/newlib/libc/time/time.tex b/newlib/libc/time/time.tex new file mode 100644 index 000000000..3d6dabb59 --- /dev/null +++ b/newlib/libc/time/time.tex @@ -0,0 +1,86 @@ +@node Timefns +@chapter Time Functions (@file{time.h}) + +This chapter groups functions used either for reporting on time +(elapsed, current, or compute time) or to perform calculations based +on time. + +The header file @file{time.h} defines three types. @code{clock_t} and +@code{time_t} are both used for representations of time particularly +suitable for arithmetic. (In this implementation, quantities of type +@code{clock_t} have the highest resolution possible on your machine, +and quantities of type @code{time_t} resolve to seconds.) @code{size_t} +is also defined if necessary for quantities representing sizes. + +@file{time.h} also defines the structure @code{tm} for the traditional +representation of Gregorian calendar time as a series of numbers, with +the following fields: + +@table @code +@item tm_sec +Seconds. + +@item tm_min +Minutes. + +@item tm_hour +Hours. + +@item tm_mday +Day. + +@item tm_mon +Month. + +@item tm_year +Year (since 1900). + +@item tm_wday +Day of week: the number of days since Sunday. + +@item tm_yday +Number of days elapsed since last January 1. + +@item tm_isdst +Daylight Savings Time flag: positive means DST in effect, zero means DST +not in effect, negative means no information about DST is available. +@end table + +@menu +* asctime:: Format time as string +* clock:: Cumulative processor time +* ctime:: Convert time to local and format as string +* difftime:: Subtract two times +* gmtime:: Convert time to UTC (GMT) traditional representation +* localtime:: Convert time to local representation +* mktime:: Convert time to arithmetic representation +* strftime:: Flexible calendar time formatter +* time:: Get current calendar time (as single number) +@end menu + +@page +@include time/asctime.def + +@page +@include time/clock.def + +@page +@include time/ctime.def + +@page +@include time/difftime.def + +@page +@include time/gmtime.def + +@page +@include time/lcltime.def + +@page +@include time/mktime.def + +@page +@include time/strftime.def + +@page +@include time/time.def diff --git a/newlib/libc/unix/Makefile.am b/newlib/libc/unix/Makefile.am new file mode 100644 index 000000000..ae8e92f95 --- /dev/null +++ b/newlib/libc/unix/Makefile.am @@ -0,0 +1,27 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + getpass.c sigset.c getpwent.c ttyname.c getut.c getlogin.c getcwd.c + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +# No doc for unix. +doc: + +CLEANFILES = $(CHEWOUT_FILES) *.ref diff --git a/newlib/libc/unix/Makefile.in b/newlib/libc/unix/Makefile.in new file mode 100644 index 000000000..90a226360 --- /dev/null +++ b/newlib/libc/unix/Makefile.in @@ -0,0 +1,300 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +CRT0 = @CRT0@ +EXEEXT = @EXEEXT@ +LIBC_MACHINE_LIB = @LIBC_MACHINE_LIB@ +LIBC_POSIX_LIB = @LIBC_POSIX_LIB@ +LIBC_SIGNAL_DEF = @LIBC_SIGNAL_DEF@ +LIBC_SIGNAL_LIB = @LIBC_SIGNAL_LIB@ +LIBC_SYSCALL_LIB = @LIBC_SYSCALL_LIB@ +LIBC_SYS_LIB = @LIBC_SYS_LIB@ +LIBC_UNIX_LIB = @LIBC_UNIX_LIB@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +lib_a_SOURCES = \ + getpass.c sigset.c getpwent.c ttyname.c getut.c getlogin.c getcwd.c + + +CHEWOUT_FILES = + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(CHEWOUT_FILES) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = getpass.o sigset.o getpwent.o ttyname.o getut.o \ +getlogin.o getcwd.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus unix/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = unix + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done +info-am: +info: info-am +dvi-am: +dvi: dvi-am +check-am: +check: check-am +installcheck-am: +installcheck: installcheck-am +install-info-am: +install-info: install-info-am +install-exec-am: +install-exec: install-exec-am + +install-data-am: +install-data: install-data-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-am +uninstall-am: +uninstall: uninstall-am +all-am: Makefile $(LIBRARIES) +all-redirect: all-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-am + +clean-am: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean-am + +clean: clean-am + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-tags distclean-generic clean-am + +distclean: distclean-am + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-am + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \ +check-am installcheck-am installcheck install-info-am install-info \ +install-exec-am install-exec install-data-am install-data install-am \ +install uninstall-am uninstall all-redirect all-am all installdirs \ +mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +# No doc for unix. +doc: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libc/unix/getcwd.c b/newlib/libc/unix/getcwd.c new file mode 100644 index 000000000..ee53536ed --- /dev/null +++ b/newlib/libc/unix/getcwd.c @@ -0,0 +1,265 @@ +/* + * Copyright (c) 1989, 1991 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)getcwd.c 5.11 (Berkeley) 2/24/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/stat.h> +#include <errno.h> +#include <dirent.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <reent.h> +#include <_syslist.h> + +#define bcopy(a,b,c) memmove (b,a,c) + +#define ISDOT(dp) \ + (dp->d_name[0] == '.' && (dp->d_name[1] == '\0' || \ + dp->d_name[1] == '.' && dp->d_name[2] == '\0')) + +#ifndef _REENT_ONLY + +char * +getcwd (pt, size) + char *pt; + size_t size; +{ + register struct dirent *dp; + register DIR *dir; + register dev_t dev; + register ino_t ino; + register int first; + register char *bpt, *bup; + struct stat s; + dev_t root_dev; + ino_t root_ino; + size_t ptsize, upsize; + int save_errno; + char *ept, *eup, *up; + + /* + * If no buffer specified by the user, allocate one as necessary. + * If a buffer is specified, the size has to be non-zero. The path + * is built from the end of the buffer backwards. + */ + + if (pt) + { + ptsize = 0; + if (!size) + { + errno = EINVAL; + return (char *) NULL; + } + ept = pt + size; + } + else + { + if (!(pt = (char *) malloc (ptsize = 1024 - 4))) + { + return (char *) NULL; + } + ept = pt + ptsize; + } + bpt = ept - 1; + *bpt = '\0'; + + /* + * Allocate bytes (1024 - malloc space) for the string of "../"'s. + * Should always be enough (it's 340 levels). If it's not, allocate + * as necessary. Special * case the first stat, it's ".", not "..". + */ + + if (!(up = (char *) malloc (upsize = 1024 - 4))) + { + goto err; + } + eup = up + MAXPATHLEN; + bup = up; + up[0] = '.'; + up[1] = '\0'; + + /* Save root values, so know when to stop. */ + if (stat ("/", &s)) + goto err; + root_dev = s.st_dev; + root_ino = s.st_ino; + + errno = 0; /* XXX readdir has no error return. */ + + for (first = 1;; first = 0) + { + /* Stat the current level. */ + if (_stat (up, &s)) + goto err; + + /* Save current node values. */ + ino = s.st_ino; + dev = s.st_dev; + + /* Check for reaching root. */ + if (root_dev == dev && root_ino == ino) + { + *--bpt = '/'; + /* + * It's unclear that it's a requirement to copy the + * path to the beginning of the buffer, but it's always + * been that way and stuff would probably break. + */ + (void) bcopy (bpt, pt, ept - bpt); + free (up); + return pt; + } + + /* + * Build pointer to the parent directory, allocating memory + * as necessary. Max length is 3 for "../", the largest + * possible component name, plus a trailing NULL. + */ + + if (bup + 3 + MAXNAMLEN + 1 >= eup) + { + if (!(up = (char *) realloc (up, upsize *= 2))) + { + goto err; + } + bup = up; + eup = up + upsize; + } + *bup++ = '.'; + *bup++ = '.'; + *bup = '\0'; + + /* Open and stat parent directory. */ + if (!(dir = _opendir (up)) || _fstat (__dirfd (dir), &s)) + goto err; + + /* Add trailing slash for next directory. */ + *bup++ = '/'; + + /* + * If it's a mount point, have to stat each element because + * the inode number in the directory is for the entry in the + * parent directory, not the inode number of the mounted file. + */ + + save_errno = 0; + if (s.st_dev == dev) + { + for (;;) + { + if (!(dp = _readdir (dir))) + goto notfound; + if (dp->d_ino == ino) + break; + } + } + else + for (;;) + { + if (!(dp = _readdir (dir))) + goto notfound; + if (ISDOT (dp)) + continue; + bcopy (dp->d_name, bup, strlen (dp->d_name) + 1); + + /* Save the first error for later. */ + if (stat (up, &s)) + { + if (!save_errno) + save_errno = errno; + errno = 0; + continue; + } + if (s.st_dev == dev && s.st_ino == ino) + break; + } + + /* + * Check for length of the current name, preceding slash, + * leading slash. + */ + + if (bpt - pt <= strlen (dp->d_name) + (first ? 1 : 2)) + { + size_t len, off; + + if (!ptsize) + { + errno = ERANGE; + goto err; + } + off = bpt - pt; + len = ept - bpt; + if (!(pt = (char *) realloc (pt, ptsize *= 2))) + { + goto err; + } + bpt = pt + off; + ept = pt + ptsize; + (void) bcopy (bpt, ept - len, len); + bpt = ept - len; + } + if (!first) + *--bpt = '/'; + bpt -= strlen (dp->d_name); + bcopy (dp->d_name, bpt, strlen (dp->d_name)); + (void) _closedir (dir); + + /* Truncate any file name. */ + *bup = '\0'; + } + +notfound: + /* + * If readdir set errno, use it, not any saved error; otherwise, + * didn't find the current directory in its parent directory, set + * errno to ENOENT. + */ + + if (!errno) + errno = save_errno ? save_errno : ENOENT; + /* FALLTHROUGH */ + +err: + if (ptsize) + free (pt); + free (up); + return (char *) NULL; +} + +#endif /* _REENT_ONLY */ diff --git a/newlib/libc/unix/getlogin.c b/newlib/libc/unix/getlogin.c new file mode 100644 index 000000000..7c1f3104e --- /dev/null +++ b/newlib/libc/unix/getlogin.c @@ -0,0 +1,40 @@ +#include <sys/types.h> +#include <utmp.h> +#include <fcntl.h> +#include <_syslist.h> + +char * +getlogin () +{ + int utmp_fd; + struct utmp utmp_buf; + static char buf[10]; + extern char *ttyname (); + char *tty; + + if (((tty = ttyname (0)) == 0) + || ((tty = ttyname (1)) == 0) + || ((tty = ttyname (2)) == 0)) + return 0; + + if ((utmp_fd = _open (UTMP_FILE, O_RDONLY)) == -1) + return 0; + + if (!strncmp (tty, "/dev/", 5)) + tty += 5; + + while (_read (utmp_fd, &utmp_buf, sizeof (utmp_buf)) == sizeof (utmp_buf)) + { + if (!strncmp (tty, utmp_buf.ut_line, sizeof (utmp_buf.ut_line)) + && utmp_buf.ut_type == USER_PROCESS) + { + _close (utmp_fd); + memset (buf, 0, sizeof (buf)); + strncpy (buf, utmp_buf.ut_user, sizeof (utmp_buf.ut_user)); + return buf; + } + } + + _close (utmp_fd); + return 0; +} diff --git a/newlib/libc/unix/getpass.c b/newlib/libc/unix/getpass.c new file mode 100644 index 000000000..ff9e7e67d --- /dev/null +++ b/newlib/libc/unix/getpass.c @@ -0,0 +1,94 @@ +/* + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)getpass.c 5.9 (Berkeley) 5/6/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <stdio.h> +#include <unistd.h> +#include <pwd.h> +#include <sys/termios.h> +#include <sys/signal.h> +#include <_syslist.h> + +char * +getpass (prompt) + const char *prompt; +{ + struct termios term; + register int ch; + register char *p; + FILE *fp, *outfp; + long omask; + int echo; + static char buf[_PASSWORD_LEN + 1]; + + /* + * read and write to /dev/tty if possible; else read from + * stdin and write to stderr. + */ + + if ((outfp = fp = fopen ("/dev/tty", "w+")) == NULL) + { + outfp = stderr; + fp = stdin; + } + /* + * note - blocking signals isn't necessarily the + * right thing, but we leave it for now. + */ + omask = sigblock (sigmask (SIGINT) | sigmask (SIGTSTP)); + (void) tcgetattr (fileno (fp), &term); + if (echo = (term.c_lflag & ECHO)) + { + term.c_lflag &= ~ECHO; + (void) tcsetattr (fileno (fp), TCSAFLUSH, &term); + } + (void) fputs (prompt, outfp); + rewind (outfp); /* implied flush */ + for (p = buf; (ch = getc (fp)) != EOF && ch != '\n';) + if (p < buf + _PASSWORD_LEN) + *p++ = ch; + *p = '\0'; + (void) _write (fileno (outfp), "\n", 1); + if (echo) + { + term.c_lflag |= ECHO; + tcsetattr (fileno (fp), TCSAFLUSH, &term); + } + (void) sigsetmask (omask); + if (fp != stdin) + (void) fclose (fp); + return buf; +} diff --git a/newlib/libc/unix/getpwent.c b/newlib/libc/unix/getpwent.c new file mode 100644 index 000000000..23a35f49b --- /dev/null +++ b/newlib/libc/unix/getpwent.c @@ -0,0 +1,129 @@ +#include <stdio.h> +#include <sys/types.h> +#include <pwd.h> +#include <errno.h> +#include <unistd.h> +#include <stdlib.h> +#include <string.h> +#include <limits.h> + +static struct passwd pw_passwd; /* password structure */ +static FILE *passwd_fp; + +static char logname[8]; +static char password[1024]; +static char comment[1024]; +static char gecos[1024]; +static char dir[1024]; +static char shell[1024]; + +struct passwd * +getpwnam (name) + const char *name; +{ + FILE *fp; + int uid, gid; + char buf[1024]; + + if ((fp = fopen ("/etc/passwd", "r")) == NULL) + { + return NULL; + } + + while (fgets (buf, sizeof (buf), fp)) + { + sscanf (buf, "%[^:]:%[^:]:%d:%d:%[^:]:%[^:]:%s\n", + logname, password, &pw_passwd.pw_uid, + &pw_passwd.pw_gid, comment, gecos, + dir, shell); + pw_passwd.pw_name = logname; + pw_passwd.pw_passwd = password; + pw_passwd.pw_comment = comment; + pw_passwd.pw_gecos = gecos; + pw_passwd.pw_dir = dir; + pw_passwd.pw_shell = shell; + + if (!strcmp (logname, name)) + { + fclose (fp); + return &pw_passwd; + } + } + fclose (fp); + return NULL; +} + +struct passwd * +getpwuid (uid_t uid) +{ + FILE *fp; + char buf[1024]; + + if ((fp = fopen ("/etc/passwd", "r")) == NULL) + { + return NULL; + } + + while (fgets (buf, sizeof (buf), fp)) + { + sscanf (buf, "%[^:]:%[^:]:%d:%d:%[^:]:%[^:]:%s\n", + logname, password, &pw_passwd.pw_uid, + &pw_passwd.pw_gid, comment, gecos, + dir, shell); + pw_passwd.pw_name = logname; + pw_passwd.pw_passwd = password; + pw_passwd.pw_comment = comment; + pw_passwd.pw_gecos = gecos; + pw_passwd.pw_dir = dir; + pw_passwd.pw_shell = shell; + + if (uid == pw_passwd.pw_uid) + { + fclose (fp); + return &pw_passwd; + } + } + fclose (fp); + return NULL; +} + +struct passwd * +getpwent () +{ + char buf[1024]; + + if (passwd_fp == NULL) + return NULL; + + if (fgets (buf, sizeof (buf), passwd_fp) == NULL) + return NULL; + + sscanf (buf, "%[^:]:%[^:]:%d:%d:%[^:]:%[^:]:%s\n", + logname, password, &pw_passwd.pw_uid, + &pw_passwd.pw_gid, comment, gecos, + dir, shell); + pw_passwd.pw_name = logname; + pw_passwd.pw_passwd = password; + pw_passwd.pw_comment = comment; + pw_passwd.pw_gecos = gecos; + pw_passwd.pw_dir = dir; + pw_passwd.pw_shell = shell; + + return &pw_passwd; +} + +void +setpwent () +{ + if (passwd_fp != NULL) + fclose (passwd_fp); + + passwd_fp = fopen ("/etc/passwd", "r"); +} + +void +endpwent () +{ + if (passwd_fp != NULL) + fclose (passwd_fp); +} diff --git a/newlib/libc/unix/getut.c b/newlib/libc/unix/getut.c new file mode 100644 index 000000000..d716b324c --- /dev/null +++ b/newlib/libc/unix/getut.c @@ -0,0 +1,85 @@ +#include <fcntl.h> +#include <unistd.h> +#include <utmp.h> +#include <_syslist.h> + +static int utmp_fd = -2; +static char *utmp_file = UTMP_FILE; + +static struct utmp utmp_data; + +void +setutent () +{ + if (utmp_fd == -2) + { + utmp_fd = _open (utmp_file, O_RDONLY); + } + _lseek (utmp_fd, 0, SEEK_SET); +} + +void +endutent () +{ + _close (utmp_fd); + utmp_fd = -2; +} + +void +utmpname (char *file) +{ + extern char *strdup (char *); + + utmp_file = strdup (file); +} + +struct utmp * +getutent () +{ + if (utmp_fd == -2) + setutent (); + if (_read (utmp_fd, &utmp_data, sizeof (utmp_data)) < sizeof (utmp_data)) + return 0; + return &utmp_data; +} + +struct utmp * +getutid (struct utmp *id) +{ + while (_read (utmp_fd, &utmp_data, sizeof (utmp_data)) == sizeof (utmp_data)) + { + switch (id->ut_type) + { + case RUN_LVL: + case BOOT_TIME: + case OLD_TIME: + case NEW_TIME: + if (id->ut_type == utmp_data.ut_type) + return &utmp_data; + case INIT_PROCESS: + case LOGIN_PROCESS: + case USER_PROCESS: + case DEAD_PROCESS: + if (id->ut_id == utmp_data.ut_id) + return &utmp_data; + default: + abort (); + } + } + return 0; +} + +struct utmp * +getutline (struct utmp *line) +{ + while (_read (utmp_fd, &utmp_data, sizeof (utmp_data)) == sizeof (utmp_data)) + { + if ((utmp_data.ut_type == LOGIN_PROCESS || + utmp_data.ut_type == USER_PROCESS) && + !strncmp (utmp_data.ut_line, line->ut_line, + sizeof (utmp_data.ut_line))) + return &utmp_data; + } + + return 0; +} diff --git a/newlib/libc/unix/sigset.c b/newlib/libc/unix/sigset.c new file mode 100644 index 000000000..ecb3d0800 --- /dev/null +++ b/newlib/libc/unix/sigset.c @@ -0,0 +1,61 @@ +#include <signal.h> +#include <errno.h> + +#ifdef SIG_SETMASK /* easier than trying to remove from Makefile */ + +#undef sigemptyset +int +sigemptyset (sigset_t * set) +{ + *set = (sigset_t) 0; + return 0; +} + +int +sigfillset (sigset_t * set) +{ + *set = ~((sigset_t) 0); + return 0; +} + +#undef sigaddset +int +sigaddset (sigset_t * set, int signo) +{ + if (signo >= NSIG || signo <= 0) + { + errno = EINVAL; + return -1; + } + *set |= 1 << (signo - 1); + return 0; +} + +int +sigdelset (sigset_t * set, int signo) +{ + if (signo >= NSIG || signo <= 0) + { + errno = EINVAL; + return -1; + } + *set &= ~(1 << (signo - 1)); + return 0; +} + +int +sigismember (const sigset_t * set, int signo) +{ + if (signo >= NSIG || signo <= 0) + { + errno = EINVAL; + return -1; + } + + if (*set & (1 << (signo - 1))) + return 1; + else + return 0; +} + +#endif /* SIG_SETMASK */ diff --git a/newlib/libc/unix/ttyname.c b/newlib/libc/unix/ttyname.c new file mode 100644 index 000000000..582a7903f --- /dev/null +++ b/newlib/libc/unix/ttyname.c @@ -0,0 +1,85 @@ +/* + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)ttyname.c 5.10 (Berkeley) 5/6/91"; +#endif /* LIBC_SCCS and not lint */ + +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <dirent.h> +#include <termios.h> +#include <unistd.h> +#include <paths.h> +#include <_syslist.h> + +static char buf[sizeof (_PATH_DEV) + MAXNAMLEN] = _PATH_DEV; + +char * +ttyname (fd) + int fd; +{ + struct stat sb; + struct termios tty; + struct dirent *dirp; + DIR *dp; + struct stat dsb; + char *rval; + + /* Must be a terminal. */ + if (tcgetattr (fd, &tty) < 0) + return NULL; + + /* Must be a character device. */ + if (_fstat (fd, &sb) || !S_ISCHR (sb.st_mode)) + return NULL; + + if ((dp = _opendir (_PATH_DEV)) == NULL) + return NULL; + + for (rval = NULL; dirp = _readdir (dp);) + { + if (dirp->d_ino != sb.st_ino) + continue; + strcpy (buf + sizeof (_PATH_DEV) - 1, dirp->d_name); + if (stat (buf, &dsb) || sb.st_dev != dsb.st_dev || + sb.st_ino != dsb.st_ino) + continue; + (void) _closedir (dp); + rval = buf; + break; + } + (void) _closedir (dp); + return rval; +} diff --git a/newlib/libm/Makefile.am b/newlib/libm/Makefile.am new file mode 100644 index 000000000..fc0c10b76 --- /dev/null +++ b/newlib/libm/Makefile.am @@ -0,0 +1,54 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +if NEWLIB_HW_FP +SUBDIRS = mathfp common . +SUBLIBS = mathfp/lib.a common/lib.a +else +SUBDIRS = math common . +SUBLIBS = math/lib.a common/lib.a +endif + +noinst_LIBRARIES = libm.a + +libm.a: $(SUBLIBS) + rm -f $@ + rm -rf tmp + mkdir tmp + cd tmp; \ + for i in $(SUBLIBS); do \ + $(AR) x ../$$i; \ + done; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) $@ + rm -rf tmp + +$(SUBLIBS): + +info_TEXINFOS = libm.texinfo + +libm.info: targetdep.tex math/stmp-def + +stmp-targetdep: force + rm -f tmp.texi + targetdoc=`pwd`/tmp.texi; \ + for d in $(SUBDIRS); do \ + if test "$$d" != "."; then \ + (cd $$d && $(MAKE) doc) || exit 1; \ + fi; \ + done + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi targetdep.tex + touch $@ + +targetdep.tex: stmp-targetdep ; @true + +math/stmp-def: stmp-targetdep ; @true + +.PHONY: force +force: + +CLEANFILES = tmp.texi targetdep.tex stmp-targetdep + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host diff --git a/newlib/libm/Makefile.in b/newlib/libm/Makefile.in new file mode 100644 index 000000000..748d0b733 --- /dev/null +++ b/newlib/libm/Makefile.in @@ -0,0 +1,556 @@ +# Makefile.in generated automatically by automake 1.4 from Makefile.am + +# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = . + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS) +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus +@NEWLIB_HW_FP_TRUE@SUBDIRS = \ +@NEWLIB_HW_FP_TRUE@mathfp common . +@NEWLIB_HW_FP_FALSE@SUBDIRS = \ +@NEWLIB_HW_FP_FALSE@math common . +@NEWLIB_HW_FP_TRUE@SUBLIBS = \ +@NEWLIB_HW_FP_TRUE@mathfp/lib.a common/lib.a +@NEWLIB_HW_FP_FALSE@SUBLIBS = \ +@NEWLIB_HW_FP_FALSE@math/lib.a common/lib.a + +noinst_LIBRARIES = libm.a + +info_TEXINFOS = libm.texinfo + +CLEANFILES = tmp.texi targetdep.tex stmp-targetdep + +ACLOCAL_AMFLAGS = -I .. +CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +libm_a_LIBADD = +libm_a_SOURCES = libm.a.c +libm_a_OBJECTS = libm.a.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi` +TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex +INFO_DEPS = libm.info +DVIS = libm.dvi +TEXINFOS = libm.texinfo +DIST_COMMON = Makefile.am Makefile.in aclocal.m4 configure configure.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP_ENV = --best +DIST_SUBDIRS = mathfp common . math common . +SOURCES = libm.a.c +OBJECTS = libm.a.o + +all: all-redirect +.SUFFIXES: +.SUFFIXES: .S .c .dvi .info .o .ps .s .texi .texinfo .txi +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status + +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in ../acinclude.m4 \ + ../aclocal.m4 + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) + +config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck +$(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) + cd $(srcdir) && $(AUTOCONF) + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +libm.info: libm.texinfo +libm.dvi: libm.texinfo + + +DVIPS = dvips + +.texi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texi.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.texi: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.texinfo.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi.info: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< + +.txi.dvi: + TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \ + MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $< + +.txi: + @rm -f $@ $@-[0-9] $@-[0-9][0-9] + $(MAKEINFO) -I $(srcdir) $< +.dvi.ps: + $(DVIPS) $< -o $@ + +install-info-am: $(INFO_DEPS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(infodir) + @list='$(INFO_DEPS)'; \ + for file in $$list; do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \ + if test -f $$d/$$ifile; then \ + echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \ + $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \ + else : ; fi; \ + done; \ + done + @$(POST_INSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ + install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ + done; \ + else : ; fi + +uninstall-info: + $(PRE_UNINSTALL) + @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \ + ii=yes; \ + else ii=; fi; \ + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + test -z "$ii" \ + || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \ + done + @$(NORMAL_UNINSTALL) + list='$(INFO_DEPS)'; \ + for file in $$list; do \ + (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \ + done + +dist-info: $(INFO_DEPS) + list='$(INFO_DEPS)'; \ + for base in $$list; do \ + if test -f $$base; then d=.; else d=$(srcdir); fi; \ + for file in `cd $$d && eval echo $$base*`; do \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done; \ + done + +mostlyclean-aminfo: + -rm -f libm.aux libm.cp libm.cps libm.dvi libm.fn libm.fns libm.ky \ + libm.kys libm.ps libm.log libm.pg libm.toc libm.tp libm.tps \ + libm.vr libm.vrs libm.op libm.tr libm.cv libm.cn + +clean-aminfo: + +distclean-aminfo: + +maintainer-clean-aminfo: + for i in $(INFO_DEPS); do \ + rm -f $$i; \ + if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ + rm -f $$i-[0-9]*; \ + fi; \ + done +clean-info: mostlyclean-aminfo + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. + +@SET_MAKE@ + +all-recursive install-data-recursive install-exec-recursive \ +installdirs-recursive install-recursive uninstall-recursive install-info-recursive \ +check-recursive installcheck-recursive info-recursive dvi-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $(MAKEFLAGS); amf=$$2; \ + dot_seen=no; \ + rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ + rev="$$subdir $$rev"; \ + test "$$subdir" = "." && dot_seen=yes; \ + done; \ + test "$$dot_seen" = "no" && rev=". $$rev"; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $$unique $(LISP) + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + -rm -rf $(distdir) + GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz + mkdir $(distdir)/=build + mkdir $(distdir)/=inst + dc_install_base=`cd $(distdir)/=inst && pwd`; \ + cd $(distdir)/=build \ + && ../configure --srcdir=.. --prefix=$$dc_install_base \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) dist + -rm -rf $(distdir) + @banner="$(distdir).tar.gz is ready for distribution"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes" +dist: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +dist-all: distdir + -chmod -R a+r $(distdir) + GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir) + -rm -rf $(distdir) +distdir: $(DISTFILES) + -rm -rf $(distdir) + mkdir $(distdir) + -chmod 777 $(distdir) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + cp -pr $$/$$file $(distdir)/$$file; \ + else \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file || :; \ + fi; \ + done + for subdir in $(DIST_SUBDIRS); do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + chmod 777 $(distdir)/$$subdir; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info +info-am: $(INFO_DEPS) +info: info-recursive +dvi-am: $(DVIS) +dvi: dvi-recursive +check-am: +check: check-recursive +installcheck-am: +installcheck: installcheck-recursive +install-info-am: +install-info: install-info-recursive +install-exec-am: +install-exec: install-exec-recursive + +install-data-am: +install-data: install-data-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am +install: install-recursive +uninstall-am: +uninstall: uninstall-recursive +all-am: Makefile $(LIBRARIES) +all-redirect: all-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install +installdirs: installdirs-recursive +installdirs-am: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-aminfo mostlyclean-tags mostlyclean-generic + +mostlyclean: mostlyclean-recursive + +clean-am: clean-noinstLIBRARIES clean-compile clean-aminfo clean-tags \ + clean-generic mostlyclean-am + +clean: clean-recursive + +distclean-am: distclean-noinstLIBRARIES distclean-compile \ + distclean-aminfo distclean-tags distclean-generic \ + clean-am + +distclean: distclean-recursive + -rm -f config.status + +maintainer-clean-am: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-aminfo \ + maintainer-clean-tags maintainer-clean-generic \ + distclean-am + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +maintainer-clean: maintainer-clean-recursive + -rm -f config.status + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile install-info-am uninstall-info \ +mostlyclean-aminfo distclean-aminfo clean-aminfo \ +maintainer-clean-aminfo install-data-recursive uninstall-data-recursive \ +install-exec-recursive uninstall-exec-recursive installdirs-recursive \ +uninstalldirs-recursive all-recursive check-recursive \ +installcheck-recursive info-recursive dvi-recursive \ +mostlyclean-recursive distclean-recursive clean-recursive \ +maintainer-clean-recursive tags tags-recursive mostlyclean-tags \ +distclean-tags clean-tags maintainer-clean-tags distdir info-am info \ +dvi-am dvi check check-am installcheck-am installcheck install-info-am \ +install-info install-exec-am install-exec install-data-am install-data \ +install-am install uninstall-am uninstall all-redirect all-am all \ +installdirs-am installdirs mostlyclean-generic distclean-generic \ +clean-generic maintainer-clean-generic clean mostlyclean distclean \ +maintainer-clean + + +libm.a: $(SUBLIBS) + rm -f $@ + rm -rf tmp + mkdir tmp + cd tmp; \ + for i in $(SUBLIBS); do \ + $(AR) x ../$$i; \ + done; \ + $(AR) $(AR_FLAGS) ../$@ *.o + $(RANLIB) $@ + rm -rf tmp + +$(SUBLIBS): + +libm.info: targetdep.tex math/stmp-def + +stmp-targetdep: force + rm -f tmp.texi + targetdoc=`pwd`/tmp.texi; \ + for d in $(SUBDIRS); do \ + if test "$$d" != "."; then \ + (cd $$d && $(MAKE) doc) || exit 1; \ + fi; \ + done + $(SHELL) $(newlib_basedir)/../move-if-change tmp.texi targetdep.tex + touch $@ + +targetdep.tex: stmp-targetdep ; @true + +math/stmp-def: stmp-targetdep ; @true + +.PHONY: force +force: + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libm/aclocal.m4 b/newlib/libm/aclocal.m4 new file mode 100644 index 000000000..0b8029c63 --- /dev/null +++ b/newlib/libm/aclocal.m4 @@ -0,0 +1,282 @@ +dnl aclocal.m4 generated automatically by aclocal 1.4 + +dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl This program is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without +dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A +dnl PARTICULAR PURPOSE. + +# Define a conditional. + +AC_DEFUN(AM_CONDITIONAL, +[AC_SUBST($1_TRUE) +AC_SUBST($1_FALSE) +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi]) + +dnl This provides configure definitions used by all the newlib +dnl configure.in files. + +dnl Basic newlib configury. This calls basic introductory stuff, +dnl including AM_INIT_AUTOMAKE and AC_CANONICAL_HOST. It also runs +dnl configure.host. The only argument is the relative path to the top +dnl newlib directory. + +AC_DEFUN(NEWLIB_CONFIGURE, +[ +dnl Default to --enable-multilib +AC_ARG_ENABLE(multilib, +[ --enable-multilib build many library versions (default)], +[case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], [multilib=yes])dnl + +dnl Support --enable-target-optspace +AC_ARG_ENABLE(target-optspace, +[ --enable-target-optspace optimize for space], +[case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for target-optspace option) ;; + esac], [target_optspace=])dnl + +dnl Support --enable-newlib-mb +AC_ARG_ENABLE(newlib-mb, +[ --enable-newlib-mb enable multibyte support], +[case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for newlib-mb option) ;; + esac], [newlib_mb=no])dnl + +dnl We may get other options which we don't document: +dnl --with-target-subdir, --with-multisrctop, --with-multisubdir + +test -z "[$]{with_target_subdir}" && with_target_subdir=. + +if test "[$]{srcdir}" = "."; then + if test "[$]{with_target_subdir}" != "."; then + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}../$1" + else + newlib_basedir="[$]{srcdir}/[$]{with_multisrctop}$1" + fi +else + newlib_basedir="[$]{srcdir}/$1" +fi +AC_SUBST(newlib_basedir) + +AC_CANONICAL_HOST + +AM_INIT_AUTOMAKE(newlib, 1.8.1) + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + +AC_DEFUN(LIB_AC_PROG_CC, +[AC_BEFORE([$0], [AC_PROG_CPP])dnl +AC_CHECK_PROG(CC, gcc, gcc) +if test -z "$CC"; then + AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc) + test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH]) +fi + +AC_PROG_CC_GNU + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +dnl Check whether -g works, even if CFLAGS is set, in case the package +dnl plays around with CFLAGS (such as to build both debugging and +dnl normal versions of a library), tasteless as that idea is. + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + AC_PROG_CC_G + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi +]) + +LIB_AC_PROG_CC + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +AC_CANONICAL_BUILD + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) + +AC_PROG_INSTALL + +AM_MAINTAINER_MODE + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + AC_EXEEXT +fi + +. [$]{newlib_basedir}/configure.host + +case [$]{newlib_basedir} in +/* | [A-Za-z]:[/\\]*) newlib_flagbasedir=[$]{newlib_basedir} ;; +*) newlib_flagbasedir='[$](top_builddir)/'[$]{newlib_basedir} ;; +esac + +newlib_cflags="[$]{newlib_cflags} -I"'[$](top_builddir)'"/$1/targ-include -I[$]{newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="[$]{newlib_cflags} -I[$]{newlib_flagbasedir}/../winsup/cygwin/include -I[$]{newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="[$]{newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} +AC_SUBST(NEWLIB_CFLAGS) + +AC_SUBST(machine_dir) +AC_SUBST(sys_dir) +]) + +# Do all the work for Automake. This macro actually does too much -- +# some checks are only needed if your package does certain things. +# But this isn't really a big deal. + +# serial 1 + +dnl Usage: +dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + +AC_DEFUN(AM_INIT_AUTOMAKE, +[AC_REQUIRE([AC_PROG_INSTALL]) +PACKAGE=[$1] +AC_SUBST(PACKAGE) +VERSION=[$2] +AC_SUBST(VERSION) +dnl test to see if srcdir already configured +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) +fi +ifelse([$3],, +AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) +AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])) +AC_REQUIRE([AM_SANITY_CHECK]) +AC_REQUIRE([AC_ARG_PROGRAM]) +dnl FIXME This is truly gross. +missing_dir=`cd $ac_aux_dir && pwd` +AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) +AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) +AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) +AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) +AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) +AC_REQUIRE([AC_PROG_MAKE_SET])]) + +# +# Check to make sure that the build environment is sane. +# + +AC_DEFUN(AM_SANITY_CHECK, +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "[$]*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "[$]*" != "X $srcdir/configure conftestfile" \ + && test "[$]*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "[$]2" = conftestfile + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +rm -f conftest* +AC_MSG_RESULT(yes)]) + +dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) +dnl The program must properly implement --version. +AC_DEFUN(AM_MISSING_PROG, +[AC_MSG_CHECKING(for working $2) +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if ($2 --version) < /dev/null > /dev/null 2>&1; then + $1=$2 + AC_MSG_RESULT(found) +else + $1="$3/missing $2" + AC_MSG_RESULT(missing) +fi +AC_SUBST($1)]) + +# Add --enable-maintainer-mode option to configure. +# From Jim Meyering + +# serial 1 + +AC_DEFUN(AM_MAINTAINER_MODE, +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT($USE_MAINTAINER_MODE) + AM_CONDITIONAL(MAINTAINER_MODE, test $USE_MAINTAINER_MODE = yes) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + diff --git a/newlib/libm/common/Makefile.am b/newlib/libm/common/Makefile.am new file mode 100644 index 000000000..57b3ff64d --- /dev/null +++ b/newlib/libm/common/Makefile.am @@ -0,0 +1,97 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \ + s_cbrt.c s_expm1.c s_ilogb.c \ + s_infinity.c s_log1p.c s_nan.c s_nextafter.c \ + s_rint.c s_logb.c s_matherr.c s_lib_ver.c + +fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \ + sf_cbrt.c sf_expm1.c sf_ilogb.c \ + sf_infinity.c sf_log1p.c sf_nan.c sf_nextafter.c \ + sf_rint.c sf_logb.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = scbrt.def scopysign.def sexpm1.def silogb.def \ + sinfinity.def slog1p.def smatherr.def smodf.def \ + snan.def snextafter.def sscalbn.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(chobj) + cat $(srcdir)/common.tex >> $(TARGETDOC) + +CLEANFILES = $(chobj) *.ref + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +smodf.def: s_modf.c + $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null + touch stmp-def + +scopysign.def: s_copysign.c + $(CHEW) < $(srcdir)/s_copysign.c >$@ 2>/dev/null + touch stmp-def + +sscalbn.def: s_scalbn.c + $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null + touch stmp-def + +scbrt.def: s_cbrt.c + $(CHEW) < $(srcdir)/s_cbrt.c >$@ 2>/dev/null + touch stmp-def + +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_serf.c >$@ 2>/dev/null + touch stmp-def + +sexpn.def: s_expm.c + $(CHEW) < $(srcdir)/s_expn.c >$@ 2>/dev/null + touch stmp-def + +sexpm1.def: s_expm1.c + $(CHEW) < $(srcdir)/s_expm1.c >$@ 2>/dev/null + touch stmp-def + +silogb.def: s_ilogb.c + $(CHEW) < $(srcdir)/s_ilogb.c >$@ 2>/dev/null + touch stmp-def + +sinfinity.def: s_infinity.c + $(CHEW) < $(srcdir)/s_infinity.c >$@ 2>/dev/null + touch stmp-def + +slog1p.def: s_log1p.c + $(CHEW) < $(srcdir)/s_log1p.c >$@ 2>/dev/null + touch stmp-def + +smatherr.def: s_matherr.c + $(CHEW) < $(srcdir)/s_matherr.c >$@ 2>/dev/null + touch stmp-def + +snan.def: s_nan.c + $(CHEW) < $(srcdir)/s_nan.c >$@ 2>/dev/null + touch stmp-def + +snextafter.def: s_nextafter.c + $(CHEW) < $(srcdir)/s_nextafter.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h diff --git a/newlib/libm/common/Makefile.in b/newlib/libm/common/Makefile.in new file mode 100644 index 000000000..3ba380d8f --- /dev/null +++ b/newlib/libm/common/Makefile.in @@ -0,0 +1,341 @@ +# Makefile.in generated automatically by automake 1.3b from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +mach_add_objs = @mach_add_objs@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +src = s_finite.c s_copysign.c s_modf.c s_scalbn.c \ + s_cbrt.c s_expm1.c s_ilogb.c \ + s_infinity.c s_log1p.c s_nan.c s_nextafter.c \ + s_rint.c s_logb.c s_matherr.c s_lib_ver.c + +fsrc = sf_finite.c sf_copysign.c sf_modf.c sf_scalbn.c \ + sf_cbrt.c sf_expm1.c sf_ilogb.c \ + sf_infinity.c sf_log1p.c sf_nan.c sf_nextafter.c \ + sf_rint.c sf_logb.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = scbrt.def scopysign.def sexpm1.def silogb.def \ + sinfinity.def slog1p.def smatherr.def smodf.def \ + snan.def snextafter.def sscalbn.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(chobj) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = s_finite.o s_copysign.o s_modf.o s_scalbn.o s_cbrt.o \ +s_expm1.o s_ilogb.o s_infinity.o s_log1p.o s_nan.o s_nextafter.o \ +s_rint.o s_logb.o s_matherr.o s_lib_ver.o sf_finite.o sf_copysign.o \ +sf_modf.o sf_scalbn.o sf_cbrt.o sf_expm1.o sf_ilogb.o sf_infinity.o \ +sf_log1p.o sf_nan.o sf_nextafter.o sf_rint.o sf_logb.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus common/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = common + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(chobj) + cat $(srcdir)/common.tex >> $(TARGETDOC) + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +smodf.def: s_modf.c + $(CHEW) < $(srcdir)/s_modf.c >$@ 2>/dev/null + touch stmp-def + +scopysign.def: s_copysign.c + $(CHEW) < $(srcdir)/s_copysign.c >$@ 2>/dev/null + touch stmp-def + +sscalbn.def: s_scalbn.c + $(CHEW) < $(srcdir)/s_scalbn.c >$@ 2>/dev/null + touch stmp-def + +scbrt.def: s_cbrt.c + $(CHEW) < $(srcdir)/s_cbrt.c >$@ 2>/dev/null + touch stmp-def + +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_serf.c >$@ 2>/dev/null + touch stmp-def + +sexpn.def: s_expm.c + $(CHEW) < $(srcdir)/s_expn.c >$@ 2>/dev/null + touch stmp-def + +sexpm1.def: s_expm1.c + $(CHEW) < $(srcdir)/s_expm1.c >$@ 2>/dev/null + touch stmp-def + +silogb.def: s_ilogb.c + $(CHEW) < $(srcdir)/s_ilogb.c >$@ 2>/dev/null + touch stmp-def + +sinfinity.def: s_infinity.c + $(CHEW) < $(srcdir)/s_infinity.c >$@ 2>/dev/null + touch stmp-def + +slog1p.def: s_log1p.c + $(CHEW) < $(srcdir)/s_log1p.c >$@ 2>/dev/null + touch stmp-def + +smatherr.def: s_matherr.c + $(CHEW) < $(srcdir)/s_matherr.c >$@ 2>/dev/null + touch stmp-def + +snan.def: s_nan.c + $(CHEW) < $(srcdir)/s_nan.c >$@ 2>/dev/null + touch stmp-def + +snextafter.def: s_nextafter.c + $(CHEW) < $(srcdir)/s_nextafter.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h fdlibm.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libm/common/common.tex b/newlib/libm/common/common.tex new file mode 100644 index 000000000..0e8a9863f --- /dev/null +++ b/newlib/libm/common/common.tex @@ -0,0 +1,12 @@ +@page +@include common/scbrt.def +@include common/scopysign.def +@include common/sexpm1.def +@include common/silogb.def +@include common/sinfinity.def +@include common/slog1p.def +@include common/smatherr.def +@include common/smodf.def +@include common/snan.def +@include common/snextafter.def +@include common/sscalbn.def diff --git a/newlib/libm/common/fdlibm.h b/newlib/libm/common/fdlibm.h new file mode 100644 index 000000000..752d24246 --- /dev/null +++ b/newlib/libm/common/fdlibm.h @@ -0,0 +1,261 @@ + +/* @(#)fdlibm.h 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* CYGNUS LOCAL: Include files. */ +#include <math.h> +#include <machine/ieeefp.h> + +/* CYGNUS LOCAL: Default to XOPEN_MODE. */ +#define _XOPEN_MODE + +#ifdef __STDC__ +#define __P(p) p +#else +#define __P(p) () +#endif + +#define HUGE ((float)3.40282346638528860e+38) + +/* + * set X_TLOSS = pi*2**52, which is possibly defined in <values.h> + * (one may replace the following line by "#include <values.h>") + */ + +#define X_TLOSS 1.41484755040568800000e+16 + +/* Functions that are not documented, and are not in <math.h>. */ + +extern double logb __P((double)); +#ifdef _SCALB_INT +extern double scalb __P((double, int)); +#else +extern double scalb __P((double, double)); +#endif +extern double significand __P((double)); + +/* ieee style elementary functions */ +extern double __ieee754_sqrt __P((double)); +extern double __ieee754_acos __P((double)); +extern double __ieee754_acosh __P((double)); +extern double __ieee754_log __P((double)); +extern double __ieee754_atanh __P((double)); +extern double __ieee754_asin __P((double)); +extern double __ieee754_atan2 __P((double,double)); +extern double __ieee754_exp __P((double)); +extern double __ieee754_cosh __P((double)); +extern double __ieee754_fmod __P((double,double)); +extern double __ieee754_pow __P((double,double)); +extern double __ieee754_lgamma_r __P((double,int *)); +extern double __ieee754_gamma_r __P((double,int *)); +extern double __ieee754_log10 __P((double)); +extern double __ieee754_sinh __P((double)); +extern double __ieee754_hypot __P((double,double)); +extern double __ieee754_j0 __P((double)); +extern double __ieee754_j1 __P((double)); +extern double __ieee754_y0 __P((double)); +extern double __ieee754_y1 __P((double)); +extern double __ieee754_jn __P((int,double)); +extern double __ieee754_yn __P((int,double)); +extern double __ieee754_remainder __P((double,double)); +extern __int32_t __ieee754_rem_pio2 __P((double,double*)); +#ifdef _SCALB_INT +extern double __ieee754_scalb __P((double,int)); +#else +extern double __ieee754_scalb __P((double,double)); +#endif + +/* fdlibm kernel function */ +extern double __kernel_standard __P((double,double,int)); +extern double __kernel_sin __P((double,double,int)); +extern double __kernel_cos __P((double,double)); +extern double __kernel_tan __P((double,double,int)); +extern int __kernel_rem_pio2 __P((double*,double*,int,int,int,const __int32_t*)); + +/* Undocumented float functions. */ +extern float logbf __P((float)); +#ifdef _SCALB_INT +extern float scalbf __P((float, int)); +#else +extern float scalbf __P((float, float)); +#endif +extern float significandf __P((float)); + +/* ieee style elementary float functions */ +extern float __ieee754_sqrtf __P((float)); +extern float __ieee754_acosf __P((float)); +extern float __ieee754_acoshf __P((float)); +extern float __ieee754_logf __P((float)); +extern float __ieee754_atanhf __P((float)); +extern float __ieee754_asinf __P((float)); +extern float __ieee754_atan2f __P((float,float)); +extern float __ieee754_expf __P((float)); +extern float __ieee754_coshf __P((float)); +extern float __ieee754_fmodf __P((float,float)); +extern float __ieee754_powf __P((float,float)); +extern float __ieee754_lgammaf_r __P((float,int *)); +extern float __ieee754_gammaf_r __P((float,int *)); +extern float __ieee754_log10f __P((float)); +extern float __ieee754_sinhf __P((float)); +extern float __ieee754_hypotf __P((float,float)); +extern float __ieee754_j0f __P((float)); +extern float __ieee754_j1f __P((float)); +extern float __ieee754_y0f __P((float)); +extern float __ieee754_y1f __P((float)); +extern float __ieee754_jnf __P((int,float)); +extern float __ieee754_ynf __P((int,float)); +extern float __ieee754_remainderf __P((float,float)); +extern __int32_t __ieee754_rem_pio2f __P((float,float*)); +#ifdef _SCALB_INT +extern float __ieee754_scalbf __P((float,int)); +#else +extern float __ieee754_scalbf __P((float,float)); +#endif + +/* float versions of fdlibm kernel functions */ +extern float __kernel_sinf __P((float,float,int)); +extern float __kernel_cosf __P((float,float)); +extern float __kernel_tanf __P((float,float,int)); +extern int __kernel_rem_pio2f __P((float*,float*,int,int,int,const __int32_t*)); + +/* The original code used statements like + n0 = ((*(int*)&one)>>29)^1; * index of high word * + ix0 = *(n0+(int*)&x); * high word of x * + ix1 = *((1-n0)+(int*)&x); * low word of x * + to dig two 32 bit words out of the 64 bit IEEE floating point + value. That is non-ANSI, and, moreover, the gcc instruction + scheduler gets it wrong. We instead use the following macros. + Unlike the original code, we determine the endianness at compile + time, not at run time; I don't see much benefit to selecting + endianness at run time. */ + +#ifndef __IEEE_BIG_ENDIAN +#ifndef __IEEE_LITTLE_ENDIAN + #error Must define endianness +#endif +#endif + +/* A union which permits us to convert between a double and two 32 bit + ints. */ + +#ifdef __IEEE_BIG_ENDIAN + +typedef union +{ + double value; + struct + { + __uint32_t msw; + __uint32_t lsw; + } parts; +} ieee_double_shape_type; + +#endif + +#ifdef __IEEE_LITTLE_ENDIAN + +typedef union +{ + double value; + struct + { + __uint32_t lsw; + __uint32_t msw; + } parts; +} ieee_double_shape_type; + +#endif + +/* Get two 32 bit ints from a double. */ + +#define EXTRACT_WORDS(ix0,ix1,d) \ +do { \ + ieee_double_shape_type ew_u; \ + ew_u.value = (d); \ + (ix0) = ew_u.parts.msw; \ + (ix1) = ew_u.parts.lsw; \ +} while (0) + +/* Get the more significant 32 bit int from a double. */ + +#define GET_HIGH_WORD(i,d) \ +do { \ + ieee_double_shape_type gh_u; \ + gh_u.value = (d); \ + (i) = gh_u.parts.msw; \ +} while (0) + +/* Get the less significant 32 bit int from a double. */ + +#define GET_LOW_WORD(i,d) \ +do { \ + ieee_double_shape_type gl_u; \ + gl_u.value = (d); \ + (i) = gl_u.parts.lsw; \ +} while (0) + +/* Set a double from two 32 bit ints. */ + +#define INSERT_WORDS(d,ix0,ix1) \ +do { \ + ieee_double_shape_type iw_u; \ + iw_u.parts.msw = (ix0); \ + iw_u.parts.lsw = (ix1); \ + (d) = iw_u.value; \ +} while (0) + +/* Set the more significant 32 bits of a double from an int. */ + +#define SET_HIGH_WORD(d,v) \ +do { \ + ieee_double_shape_type sh_u; \ + sh_u.value = (d); \ + sh_u.parts.msw = (v); \ + (d) = sh_u.value; \ +} while (0) + +/* Set the less significant 32 bits of a double from an int. */ + +#define SET_LOW_WORD(d,v) \ +do { \ + ieee_double_shape_type sl_u; \ + sl_u.value = (d); \ + sl_u.parts.lsw = (v); \ + (d) = sl_u.value; \ +} while (0) + +/* A union which permits us to convert between a float and a 32 bit + int. */ + +typedef union +{ + float value; + __uint32_t word; +} ieee_float_shape_type; + +/* Get a 32 bit int from a float. */ + +#define GET_FLOAT_WORD(i,d) \ +do { \ + ieee_float_shape_type gf_u; \ + gf_u.value = (d); \ + (i) = gf_u.word; \ +} while (0) + +/* Set a float from a 32 bit int. */ + +#define SET_FLOAT_WORD(d,i) \ +do { \ + ieee_float_shape_type sf_u; \ + sf_u.word = (i); \ + (d) = sf_u.value; \ +} while (0) diff --git a/newlib/libm/common/s_cbrt.c b/newlib/libm/common/s_cbrt.c new file mode 100644 index 000000000..95185d0fa --- /dev/null +++ b/newlib/libm/common/s_cbrt.c @@ -0,0 +1,123 @@ + +/* @(#)s_cbrt.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<cbrt>>, <<cbrtf>>---cube root + +INDEX + cbrt +INDEX + cbrtf + +ANSI_SYNOPSIS + #include <math.h> + double cbrt(double <[x]>); + float cbrtf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double cbrt(<[x]>); + float cbrtf(<[x]>); + +DESCRIPTION + <<cbrt>> computes the cube root of the argument. + +RETURNS + The cube root is returned. + +PORTABILITY + <<cbrt>> is in System V release 4. <<cbrtf>> is an extension. +*/ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +/* cbrt(x) + * Return cube root of x + */ +#ifdef __STDC__ +static const __uint32_t +#else +static __uint32_t +#endif + B1 = 715094163, /* B1 = (682-0.03306235651)*2**20 */ + B2 = 696219795; /* B2 = (664-0.03306235651)*2**20 */ + +#ifdef __STDC__ +static const double +#else +static double +#endif +C = 5.42857142857142815906e-01, /* 19/35 = 0x3FE15F15, 0xF15F15F1 */ +D = -7.05306122448979611050e-01, /* -864/1225 = 0xBFE691DE, 0x2532C834 */ +E = 1.41428571428571436819e+00, /* 99/70 = 0x3FF6A0EA, 0x0EA0EA0F */ +F = 1.60714285714285720630e+00, /* 45/28 = 0x3FF9B6DB, 0x6DB6DB6E */ +G = 3.57142857142857150787e-01; /* 5/14 = 0x3FD6DB6D, 0xB6DB6DB7 */ + +#ifdef __STDC__ + double cbrt(double x) +#else + double cbrt(x) + double x; +#endif +{ + __int32_t hx; + double r,s,t=0.0,w; + __uint32_t sign; + __uint32_t high,low; + + GET_HIGH_WORD(hx,x); + sign=hx&0x80000000; /* sign= sign(x) */ + hx ^=sign; + if(hx>=0x7ff00000) return(x+x); /* cbrt(NaN,INF) is itself */ + GET_LOW_WORD(low,x); + if((hx|low)==0) + return(x); /* cbrt(0) is itself */ + + SET_HIGH_WORD(x,hx); /* x <- |x| */ + /* rough cbrt to 5 bits */ + if(hx<0x00100000) /* subnormal number */ + {SET_HIGH_WORD(t,0x43500000); /* set t= 2**54 */ + t*=x; GET_HIGH_WORD(high,t); SET_HIGH_WORD(t,high/3+B2); + } + else + SET_HIGH_WORD(t,hx/3+B1); + + + /* new cbrt to 23 bits, may be implemented in single precision */ + r=t*t/x; + s=C+r*t; + t*=G+F/(s+E+D/s); + + /* chopped to 20 bits and make it larger than cbrt(x) */ + GET_HIGH_WORD(high,t); + INSERT_WORDS(t,high+0x00000001,0); + + + /* one step newton iteration to 53 bits with error less than 0.667 ulps */ + s=t*t; /* t*t is exact */ + r=x/s; + w=t+t; + r=(r-t)/(w+r); /* r-s is exact */ + t=t+t*r; + + /* retore the sign bit */ + GET_HIGH_WORD(high,t); + SET_HIGH_WORD(t,high|sign); + return(t); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_copysign.c b/newlib/libm/common/s_copysign.c new file mode 100644 index 000000000..bfc546db5 --- /dev/null +++ b/newlib/libm/common/s_copysign.c @@ -0,0 +1,82 @@ + +/* @(#)s_copysign.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<copysign>>, <<copysignf>>---sign of <[y]>, magnitude of <[x]> + +INDEX + copysign +INDEX + copysignf + +ANSI_SYNOPSIS + #include <math.h> + double copysign (double <[x]>, double <[y]>); + float copysignf (float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double copysign (<[x]>, <[y]>) + double <[x]>; + double <[y]>; + + float copysignf (<[x]>, <[y]>) + float <[x]>; + float <[y]>; + +DESCRIPTION +<<copysign>> constructs a number with the magnitude (absolute value) +of its first argument, <[x]>, and the sign of its second argument, +<[y]>. + +<<copysignf>> does the same thing; the two functions differ only in +the type of their arguments and result. + +RETURNS +<<copysign>> returns a <<double>> with the magnitude of +<[x]> and the sign of <[y]>. +<<copysignf>> returns a <<float>> with the magnitude of +<[x]> and the sign of <[y]>. + +PORTABILITY +<<copysign>> is not required by either ANSI C or the System V Interface +Definition (Issue 2). + +*/ + +/* + * copysign(double x, double y) + * copysign(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double copysign(double x, double y) +#else + double copysign(x,y) + double x,y; +#endif +{ + __uint32_t hx,hy; + GET_HIGH_WORD(hx,x); + GET_HIGH_WORD(hy,y); + SET_HIGH_WORD(x,(hx&0x7fffffff)|(hy&0x80000000)); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_expm1.c b/newlib/libm/common/s_expm1.c new file mode 100644 index 000000000..bc0e2f23e --- /dev/null +++ b/newlib/libm/common/s_expm1.c @@ -0,0 +1,271 @@ + +/* @(#)s_expm1.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<expm1>>, <<expm1f>>---exponential minus 1 +INDEX + expm1 +INDEX + expm1f + +ANSI_SYNOPSIS + #include <math.h> + double expm1(double <[x]>); + float expm1f(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double expm1(<[x]>); + double <[x]>; + + float expm1f(<[x]>); + float <[x]>; + +DESCRIPTION + <<expm1>> and <<expm1f>> calculate the exponential of <[x]> + and subtract 1, that is, + @ifinfo + e raised to the power <[x]> minus 1 (where e + @end ifinfo + @tex + $e^x - 1$ (where $e$ + @end tex + is the base of the natural system of logarithms, approximately + 2.71828). The result is accurate even for small values of + <[x]>, where using <<exp(<[x]>)-1>> would lose many + significant digits. + +RETURNS + e raised to the power <[x]>, minus 1. + +PORTABILITY + Neither <<expm1>> nor <<expm1f>> is required by ANSI C or by + the System V Interface Definition (Issue 2). +*/ + +/* expm1(x) + * Returns exp(x)-1, the exponential of x minus 1. + * + * Method + * 1. Argument reduction: + * Given x, find r and integer k such that + * + * x = k*ln2 + r, |r| <= 0.5*ln2 ~ 0.34658 + * + * Here a correction term c will be computed to compensate + * the error in r when rounded to a floating-point number. + * + * 2. Approximating expm1(r) by a special rational function on + * the interval [0,0.34658]: + * Since + * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ... + * we define R1(r*r) by + * r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r) + * That is, + * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r) + * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r)) + * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ... + * We use a special Reme algorithm on [0,0.347] to generate + * a polynomial of degree 5 in r*r to approximate R1. The + * maximum error of this polynomial approximation is bounded + * by 2**-61. In other words, + * R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5 + * where Q1 = -1.6666666666666567384E-2, + * Q2 = 3.9682539681370365873E-4, + * Q3 = -9.9206344733435987357E-6, + * Q4 = 2.5051361420808517002E-7, + * Q5 = -6.2843505682382617102E-9; + * (where z=r*r, and the values of Q1 to Q5 are listed below) + * with error bounded by + * | 5 | -61 + * | 1.0+Q1*z+...+Q5*z - R1(z) | <= 2 + * | | + * + * expm1(r) = exp(r)-1 is then computed by the following + * specific way which minimize the accumulation rounding error: + * 2 3 + * r r [ 3 - (R1 + R1*r/2) ] + * expm1(r) = r + --- + --- * [--------------------] + * 2 2 [ 6 - r*(3 - R1*r/2) ] + * + * To compensate the error in the argument reduction, we use + * expm1(r+c) = expm1(r) + c + expm1(r)*c + * ~ expm1(r) + c + r*c + * Thus c+r*c will be added in as the correction terms for + * expm1(r+c). Now rearrange the term to avoid optimization + * screw up: + * ( 2 2 ) + * ({ ( r [ R1 - (3 - R1*r/2) ] ) } r ) + * expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- ) + * ({ ( 2 [ 6 - r*(3 - R1*r/2) ] ) } 2 ) + * ( ) + * + * = r - E + * 3. Scale back to obtain expm1(x): + * From step 1, we have + * expm1(x) = either 2^k*[expm1(r)+1] - 1 + * = or 2^k*[expm1(r) + (1-2^-k)] + * 4. Implementation notes: + * (A). To save one multiplication, we scale the coefficient Qi + * to Qi*2^i, and replace z by (x^2)/2. + * (B). To achieve maximum accuracy, we compute expm1(x) by + * (i) if x < -56*ln2, return -1.0, (raise inexact if x!=inf) + * (ii) if k=0, return r-E + * (iii) if k=-1, return 0.5*(r-E)-0.5 + * (iv) if k=1 if r < -0.25, return 2*((r+0.5)- E) + * else return 1.0+2.0*(r-E); + * (v) if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1) + * (vi) if k <= 20, return 2^k((1-2^-k)-(E-r)), else + * (vii) return 2^k(1-((E+2^-k)-r)) + * + * Special cases: + * expm1(INF) is INF, expm1(NaN) is NaN; + * expm1(-INF) is -1, and + * for finite argument, only expm1(0)=0 is exact. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Misc. info. + * For IEEE double + * if x > 7.09782712893383973096e+02 then expm1(x) overflow + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.0, +huge = 1.0e+300, +tiny = 1.0e-300, +o_threshold = 7.09782712893383973096e+02,/* 0x40862E42, 0xFEFA39EF */ +ln2_hi = 6.93147180369123816490e-01,/* 0x3fe62e42, 0xfee00000 */ +ln2_lo = 1.90821492927058770002e-10,/* 0x3dea39ef, 0x35793c76 */ +invln2 = 1.44269504088896338700e+00,/* 0x3ff71547, 0x652b82fe */ + /* scaled coefficients related to expm1 */ +Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */ +Q2 = 1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */ +Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */ +Q4 = 4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */ +Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */ + +#ifdef __STDC__ + double expm1(double x) +#else + double expm1(x) + double x; +#endif +{ + double y,hi,lo,c,t,e,hxs,hfx,r1; + __int32_t k,xsb; + __uint32_t hx; + + GET_HIGH_WORD(hx,x); + xsb = hx&0x80000000; /* sign bit of x */ + if(xsb==0) y=x; else y= -x; /* y = |x| */ + hx &= 0x7fffffff; /* high word of |x| */ + + /* filter out huge and non-finite argument */ + if(hx >= 0x4043687A) { /* if |x|>=56*ln2 */ + if(hx >= 0x40862E42) { /* if |x|>=709.78... */ + if(hx>=0x7ff00000) { + __uint32_t low; + GET_LOW_WORD(low,x); + if(((hx&0xfffff)|low)!=0) + return x+x; /* NaN */ + else return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */ + } + if(x > o_threshold) return huge*huge; /* overflow */ + } + if(xsb!=0) { /* x < -56*ln2, return -1.0 with inexact */ + if(x+tiny<0.0) /* raise inexact */ + return tiny-one; /* return -1 */ + } + } + + /* argument reduction */ + if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */ + if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ + if(xsb==0) + {hi = x - ln2_hi; lo = ln2_lo; k = 1;} + else + {hi = x + ln2_hi; lo = -ln2_lo; k = -1;} + } else { + k = invln2*x+((xsb==0)?0.5:-0.5); + t = k; + hi = x - t*ln2_hi; /* t*ln2_hi is exact here */ + lo = t*ln2_lo; + } + x = hi - lo; + c = (hi-x)-lo; + } + else if(hx < 0x3c900000) { /* when |x|<2**-54, return x */ + t = huge+x; /* return x with inexact flags when x!=0 */ + return x - (t-(huge+x)); + } + else k = 0; + + /* x is now in primary range */ + hfx = 0.5*x; + hxs = x*hfx; + r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5)))); + t = 3.0-r1*hfx; + e = hxs*((r1-t)/(6.0 - x*t)); + if(k==0) return x - (x*e-hxs); /* c is 0 */ + else { + e = (x*(e-c)-c); + e -= hxs; + if(k== -1) return 0.5*(x-e)-0.5; + if(k==1) + if(x < -0.25) return -2.0*(e-(x+0.5)); + else return one+2.0*(x-e); + if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */ + __uint32_t high; + y = one-(e-x); + GET_HIGH_WORD(high,y); + SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */ + return y-one; + } + t = one; + if(k<20) { + __uint32_t high; + SET_HIGH_WORD(t,0x3ff00000 - (0x200000>>k)); /* t=1-2^-k */ + y = t-(e-x); + GET_HIGH_WORD(high,y); + SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */ + } else { + __uint32_t high; + SET_HIGH_WORD(t,((0x3ff-k)<<20)); /* 2^-k */ + y = x-(e+t); + y += one; + GET_HIGH_WORD(high,y); + SET_HIGH_WORD(y,high+(k<<20)); /* add k to y's exponent */ + } + } + return y; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_finite.c b/newlib/libm/common/s_finite.c new file mode 100644 index 000000000..17f4e849b --- /dev/null +++ b/newlib/libm/common/s_finite.c @@ -0,0 +1,35 @@ + +/* @(#)s_finite.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * finite(x) returns 1 is x is finite, else 0; + * no branching! + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int finite(double x) +#else + int finite(x) + double x; +#endif +{ + __int32_t hx; + GET_HIGH_WORD(hx,x); + return (int)((__uint32_t)((hx&0x7fffffff)-0x7ff00000)>>31); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_ilogb.c b/newlib/libm/common/s_ilogb.c new file mode 100644 index 000000000..4e3e69f12 --- /dev/null +++ b/newlib/libm/common/s_ilogb.c @@ -0,0 +1,92 @@ + +/* @(#)s_ilogb.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<ilogb>>, <<ilogbf>>---get exponent of floating point number +INDEX + ilogb +INDEX + ilogbf + +ANSI_SYNOPSIS + #include <math.h> + int ilogb(double <[val]>); + int ilogbf(float <[val]>); + +TRAD_SYNOPSIS + #include <math.h> + int ilogb(<[val]>) + double <[val]>; + + int ilogbf(<[val]>) + float <[val]>; + + +DESCRIPTION + + All non zero, normal numbers can be described as <[m]> * + 2**<[p]>. <<ilogb>> and <<ilogbf>> examine the argument + <[val]>, and return <[p]>. The functions <<frexp>> and + <<frexpf>> are similar to <<ilogb>> and <<ilogbf>>, but also + return <[m]>. + +RETURNS + +<<ilogb>> and <<ilogbf>> return the power of two used to form the +floating point argument. If <[val]> is <<0>>, they return <<- +INT_MAX>> (<<INT_MAX>> is defined in limits.h). If <[val]> is +infinite, or NaN, they return <<INT_MAX>>. + +PORTABILITY + Neither <<ilogb>> nor <<ilogbf>> is required by ANSI C or by + the System V Interface Definition (Issue 2). */ + +/* ilogb(double x) + * return the binary exponent of non-zero x + * ilogb(0) = 0x80000001 + * ilogb(inf/NaN) = 0x7fffffff (no signal is raised) + */ + +#include "fdlibm.h" +#include <limits.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int ilogb(double x) +#else + int ilogb(x) + double x; +#endif +{ + __int32_t hx,lx,ix; + + EXTRACT_WORDS(hx,lx,x); + hx &= 0x7fffffff; + if(hx<0x00100000) { + if((hx|lx)==0) + return - INT_MAX; /* ilogb(0) = 0x80000001 */ + else /* subnormal x */ + if(hx==0) { + for (ix = -1043; lx>0; lx<<=1) ix -=1; + } else { + for (ix = -1022,hx<<=11; hx>0; hx<<=1) ix -=1; + } + return ix; + } + else if (hx<0x7ff00000) return (hx>>20)-1023; + else return INT_MAX; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_infinity.c b/newlib/libm/common/s_infinity.c new file mode 100644 index 000000000..6508216bd --- /dev/null +++ b/newlib/libm/common/s_infinity.c @@ -0,0 +1,48 @@ +/* + * infinity () returns the representation of infinity. + * Added by Cygnus Support. + */ + +/* +FUNCTION + <<infinity>>, <<infinityf>>---representation of infinity + +INDEX + infinity +INDEX + infinityf + +ANSI_SYNOPSIS + #include <math.h> + double infinity(void); + float infinityf(void); + +TRAD_SYNOPSIS + #include <math.h> + double infinity(); + float infinityf(); + + +DESCRIPTION + <<infinity>> and <<infinityf>> return the special number IEEE + infinity in double and single precision arithmetic + respectivly. + +QUICKREF + infinity - pure + +*/ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + + double infinity() +{ + double x; + + INSERT_WORDS(x,0x7ff00000,0); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_lib_ver.c b/newlib/libm/common/s_lib_ver.c new file mode 100644 index 000000000..d42f62404 --- /dev/null +++ b/newlib/libm/common/s_lib_ver.c @@ -0,0 +1,35 @@ + +/* @(#)s_lib_ver.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * MACRO for standards + */ + +#include "fdlibm.h" + +/* + * define and initialize _LIB_VERSION + */ +#ifdef _POSIX_MODE +_CONST _LIB_VERSION_TYPE _LIB_VERSION = _POSIX_; +#else +#ifdef _XOPEN_MODE +_CONST _LIB_VERSION_TYPE _LIB_VERSION = _XOPEN_; +#else +#ifdef _SVID3_MODE +_CONST _LIB_VERSION_TYPE _LIB_VERSION = _SVID_; +#else /* default _IEEE_MODE */ +_CONST _LIB_VERSION_TYPE _LIB_VERSION = _IEEE_; +#endif +#endif +#endif diff --git a/newlib/libm/common/s_log1p.c b/newlib/libm/common/s_log1p.c new file mode 100644 index 000000000..3c3d49733 --- /dev/null +++ b/newlib/libm/common/s_log1p.c @@ -0,0 +1,217 @@ + +/* @(#)s_log1p.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<log1p>>, <<log1pf>>---log of <<1 + <[x]>>> + +INDEX + log1p +INDEX + log1pf + +ANSI_SYNOPSIS + #include <math.h> + double log1p(double <[x]>); + float log1pf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double log1p(<[x]>) + double <[x]>; + + float log1pf(<[x]>) + float <[x]>; + +DESCRIPTION +<<log1p>> calculates +@tex +$ln(1+x)$, +@end tex +the natural logarithm of <<1+<[x]>>>. You can use <<log1p>> rather +than `<<log(1+<[x]>)>>' for greater precision when <[x]> is very +small. + +<<log1pf>> calculates the same thing, but accepts and returns +<<float>> values rather than <<double>>. + +RETURNS +<<log1p>> returns a <<double>>, the natural log of <<1+<[x]>>>. +<<log1pf>> returns a <<float>>, the natural log of <<1+<[x]>>>. + +PORTABILITY +Neither <<log1p>> nor <<log1pf>> is required by ANSI C or by the System V +Interface Definition (Issue 2). + +*/ + +/* double log1p(double x) + * + * Method : + * 1. Argument Reduction: find k and f such that + * 1+x = 2^k * (1+f), + * where sqrt(2)/2 < 1+f < sqrt(2) . + * + * Note. If k=0, then f=x is exact. However, if k!=0, then f + * may not be representable exactly. In that case, a correction + * term is need. Let u=1+x rounded. Let c = (1+x)-u, then + * log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u), + * and add back the correction term c/u. + * (Note: when x > 2**53, one can simply return log(x)) + * + * 2. Approximation of log1p(f). + * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) + * = 2s + 2/3 s**3 + 2/5 s**5 + ....., + * = 2s + s*R + * We use a special Reme algorithm on [0,0.1716] to generate + * a polynomial of degree 14 to approximate R The maximum error + * of this polynomial approximation is bounded by 2**-58.45. In + * other words, + * 2 4 6 8 10 12 14 + * R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s +Lp6*s +Lp7*s + * (the values of Lp1 to Lp7 are listed in the program) + * and + * | 2 14 | -58.45 + * | Lp1*s +...+Lp7*s - R(z) | <= 2 + * | | + * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. + * In order to guarantee error in log below 1ulp, we compute log + * by + * log1p(f) = f - (hfsq - s*(hfsq+R)). + * + * 3. Finally, log1p(x) = k*ln2 + log1p(f). + * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) + * Here ln2 is split into two floating point number: + * ln2_hi + ln2_lo, + * where n*ln2_hi is always exact for |n| < 2000. + * + * Special cases: + * log1p(x) is NaN with signal if x < -1 (including -INF) ; + * log1p(+INF) is +INF; log1p(-1) is -INF with signal; + * log1p(NaN) is that NaN with no signal. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + * + * Note: Assuming log() return accurate answer, the following + * algorithm can be used to compute log1p(x) to within a few ULP: + * + * u = 1+x; + * if(u==1.0) return x ; else + * return log(u)*(x/(u-1.0)); + * + * See HP-15C Advanced Functions Handbook, p.193. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ +ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ +two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ +Lp1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ +Lp2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ +Lp3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ +Lp4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ +Lp5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ +Lp6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ +Lp7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double log1p(double x) +#else + double log1p(x) + double x; +#endif +{ + double hfsq,f,c,s,z,R,u; + __int32_t k,hx,hu,ax; + + GET_HIGH_WORD(hx,x); + ax = hx&0x7fffffff; + + k = 1; + if (hx < 0x3FDA827A) { /* x < 0.41422 */ + if(ax>=0x3ff00000) { /* x <= -1.0 */ + if(x==-1.0) return -two54/zero; /* log1p(-1)=+inf */ + else return (x-x)/(x-x); /* log1p(x<-1)=NaN */ + } + if(ax<0x3e200000) { /* |x| < 2**-29 */ + if(two54+x>zero /* raise inexact */ + &&ax<0x3c900000) /* |x| < 2**-54 */ + return x; + else + return x - x*x*0.5; + } + if(hx>0||hx<=((__int32_t)0xbfd2bec3)) { + k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */ + } + if (hx >= 0x7ff00000) return x+x; + if(k!=0) { + if(hx<0x43400000) { + u = 1.0+x; + GET_HIGH_WORD(hu,u); + k = (hu>>20)-1023; + c = (k>0)? 1.0-(u-x):x-(u-1.0);/* correction term */ + c /= u; + } else { + u = x; + GET_HIGH_WORD(hu,u); + k = (hu>>20)-1023; + c = 0; + } + hu &= 0x000fffff; + if(hu<0x6a09e) { + SET_HIGH_WORD(u,hu|0x3ff00000); /* normalize u */ + } else { + k += 1; + SET_HIGH_WORD(u,hu|0x3fe00000); /* normalize u/2 */ + hu = (0x00100000-hu)>>2; + } + f = u-1.0; + } + hfsq=0.5*f*f; + if(hu==0) { /* |f| < 2**-20 */ + if(f==zero) if(k==0) return zero; + else {c += k*ln2_lo; return k*ln2_hi+c;} + R = hfsq*(1.0-0.66666666666666666*f); + if(k==0) return f-R; else + return k*ln2_hi-((R-(k*ln2_lo+c))-f); + } + s = f/(2.0+f); + z = s*s; + R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7)))))); + if(k==0) return f-(hfsq-s*(hfsq+R)); else + return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_logb.c b/newlib/libm/common/s_logb.c new file mode 100644 index 000000000..dbddd1994 --- /dev/null +++ b/newlib/libm/common/s_logb.c @@ -0,0 +1,42 @@ + +/* @(#)s_logb.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * double logb(x) + * IEEE 754 logb. Included to pass IEEE test suite. Not recommend. + * Use ilogb instead. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double logb(double x) +#else + double logb(x) + double x; +#endif +{ + __int32_t lx,ix; + EXTRACT_WORDS(ix,lx,x); + ix &= 0x7fffffff; /* high |x| */ + if((ix|lx)==0) return -1.0/fabs(x); + if(ix>=0x7ff00000) return x*x; + if((ix>>=20)==0) /* IEEE 754 logb */ + return -1022.0; + else + return (double) (ix-1023); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_matherr.c b/newlib/libm/common/s_matherr.c new file mode 100644 index 000000000..58e242834 --- /dev/null +++ b/newlib/libm/common/s_matherr.c @@ -0,0 +1,123 @@ + +/* @(#)s_matherr.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + +FUNCTION + <<matherr>>---modifiable math error handler + +INDEX + matherr + +ANSI_SYNOPSIS + #include <math.h> + int matherr(struct exception *<[e]>); + +TRAD_SYNOPSIS + #include <math.h> + int matherr(*<[e]>) + struct exception *<[e]>; + +DESCRIPTION +<<matherr>> is called whenever a math library function generates an error. +You can replace <<matherr>> by your own subroutine to customize +error treatment. The customized <<matherr>> must return 0 if +it fails to resolve the error, and non-zero if the error is resolved. + +When <<matherr>> returns a nonzero value, no error message is printed +and the value of <<errno>> is not modified. You can accomplish either +or both of these things in your own <<matherr>> using the information +passed in the structure <<*<[e]>>>. + +This is the <<exception>> structure (defined in `<<math.h>>'): +. struct exception { +. int type; +. char *name; +. double arg1, arg2, retval; +. int err; +. }; + +The members of the exception structure have the following meanings: +o+ +o type +The type of mathematical error that occured; macros encoding error +types are also defined in `<<math.h>>'. + +o name +a pointer to a null-terminated string holding the +name of the math library function where the error occurred. + +o arg1, arg2 +The arguments which caused the error. + +o retval +The error return value (what the calling function will return). + +o err +If set to be non-zero, this is the new value assigned to <<errno>>. +o- + +The error types defined in `<<math.h>>' represent possible mathematical +errors as follows: + +o+ +o DOMAIN +An argument was not in the domain of the function; e.g. <<log(-1.0)>>. + +o SING +The requested calculation would result in a singularity; e.g. <<pow(0.0,-2.0)>> + +o OVERFLOW +A calculation would produce a result too large to represent; e.g. +<<exp(1000.0)>>. + +o UNDERFLOW +A calculation would produce a result too small to represent; e.g. +<<exp(-1000.0)>>. + +o TLOSS +Total loss of precision. The result would have no significant digits; +e.g. <<sin(10e70)>>. + +o PLOSS +Partial loss of precision. +o- + + +RETURNS +The library definition for <<matherr>> returns <<0>> in all cases. + +You can change the calling function's result from a customized <<matherr>> +by modifying <<e->retval>>, which propagates backs to the caller. + +If <<matherr>> returns <<0>> (indicating that it was not able to resolve +the error) the caller sets <<errno>> to an appropriate value, and prints +an error message. + +PORTABILITY +<<matherr>> is not ANSI C. +*/ + +#include "fdlibm.h" + +#ifdef __STDC__ + int matherr(struct exception *x) +#else + int matherr(x) + struct exception *x; +#endif +{ + int n=0; + if(x->arg1!=x->arg1) return 0; + return n; +} diff --git a/newlib/libm/common/s_modf.c b/newlib/libm/common/s_modf.c new file mode 100644 index 000000000..01151397d --- /dev/null +++ b/newlib/libm/common/s_modf.c @@ -0,0 +1,131 @@ + +/* @(#)s_modf.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<modf>>, <<modff>>---split fractional and integer parts + +INDEX + modf +INDEX + modff + +ANSI_SYNOPSIS + #include <math.h> + double modf(double <[val]>, double *<[ipart]>); + float modff(float <[val]>, float *<[ipart]>); + +TRAD_SYNOPSIS + #include <math.h> + double modf(<[val]>, <[ipart]>) + double <[val]>; + double *<[ipart]>; + + float modff(<[val]>, <[ipart]>) + float <[val]>; + float *<[ipart]>; + +DESCRIPTION + <<modf>> splits the double <[val]> apart into an integer part + and a fractional part, returning the fractional part and + storing the integer part in <<*<[ipart]>>>. No rounding + whatsoever is done; the sum of the integer and fractional + parts is guaranteed to be exactly equal to <[val]>. That + is, if . <[realpart]> = modf(<[val]>, &<[intpart]>); then + `<<<[realpart]>+<[intpart]>>>' is the same as <[val]>. + <<modff>> is identical, save that it takes and returns + <<float>> rather than <<double>> values. + +RETURNS + The fractional part is returned. Each result has the same + sign as the supplied argument <[val]>. + +PORTABILITY + <<modf>> is ANSI C. <<modff>> is an extension. + +QUICKREF + modf ansi pure + modff - pure + +*/ + +/* + * modf(double x, double *iptr) + * return fraction part of x, and return x's integral part in *iptr. + * Method: + * Bit twiddling. + * + * Exception: + * No exception. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0; +#else +static double one = 1.0; +#endif + +#ifdef __STDC__ + double modf(double x, double *iptr) +#else + double modf(x, iptr) + double x,*iptr; +#endif +{ + __int32_t i0,i1,j0; + __uint32_t i; + EXTRACT_WORDS(i0,i1,x); + j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */ + if(j0<20) { /* integer part in high x */ + if(j0<0) { /* |x|<1 */ + INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */ + return x; + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) { /* x is integral */ + __uint32_t high; + *iptr = x; + GET_HIGH_WORD(high,x); + INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */ + return x; + } else { + INSERT_WORDS(*iptr,i0&(~i),0); + return x - *iptr; + } + } + } else if (j0>51) { /* no fraction part */ + __uint32_t high; + *iptr = x*one; + GET_HIGH_WORD(high,x); + INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */ + return x; + } else { /* fraction part in low x */ + i = ((__uint32_t)(0xffffffff))>>(j0-20); + if((i1&i)==0) { /* x is integral */ + __uint32_t high; + *iptr = x; + GET_HIGH_WORD(high,x); + INSERT_WORDS(x,high&0x80000000,0); /* return +-0 */ + return x; + } else { + INSERT_WORDS(*iptr,i0,i1&(~i)); + return x - *iptr; + } + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_nan.c b/newlib/libm/common/s_nan.c new file mode 100644 index 000000000..f06242647 --- /dev/null +++ b/newlib/libm/common/s_nan.c @@ -0,0 +1,47 @@ +/* + * nan () returns a nan. + * Added by Cygnus Support. + */ + +/* +FUNCTION + <<nan>>, <<nanf>>---representation of infinity + +INDEX + nan +INDEX + nanf + +ANSI_SYNOPSIS + #include <math.h> + double nan(void); + float nanf(void); + +TRAD_SYNOPSIS + #include <math.h> + double nan(); + float nanf(); + + +DESCRIPTION + <<nan>> and <<nanf>> return an IEEE NaN (Not a Number) in + double and single precision arithmetic respectivly. + +QUICKREF + nan - pure + +*/ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + + double nan() +{ + double x; + + INSERT_WORDS(x,0x7ff80000,0); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_nextafter.c b/newlib/libm/common/s_nextafter.c new file mode 100644 index 000000000..82eb8e3ed --- /dev/null +++ b/newlib/libm/common/s_nextafter.c @@ -0,0 +1,121 @@ + +/* @(#)s_nextafter.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<nextafter>>, <<nextafterf>>---get next number + +INDEX + nextafter +INDEX + nextafterf + +ANSI_SYNOPSIS + #include <math.h> + double nextafter(double <[val]>, double <[dir]>); + float nextafterf(float <[val]>, float <[dir]>); + +TRAD_SYNOPSIS + #include <math.h> + + double nextafter(<[val]>, <[dir]>) + double <[val]>; + double <[exp]>; + + float nextafter(<[val]>, <[dir]>) + float <[val]>; + float <[dir]>; + + +DESCRIPTION +<<nextafter>> returns the double) precision floating point number +closest to <[val]> in the direction toward <[dir]>. <<nextafterf>> +performs the same operation in single precision. For example, +<<nextafter(0.0,1.0)>> returns the smallest positive number which is +representable in double precision. + +RETURNS +Returns the next closest number to <[val]> in the direction toward +<[dir]>. + +PORTABILITY + Neither <<nextafter>> nor <<nextafterf>> is required by ANSI C + or by the System V Interface Definition (Issue 2). +*/ + +/* IEEE functions + * nextafter(x,y) + * return the next machine floating-point number of x in the + * direction toward y. + * Special cases: + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double nextafter(double x, double y) +#else + double nextafter(x,y) + double x,y; +#endif +{ + __int32_t hx,hy,ix,iy; + __uint32_t lx,ly; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hy,ly,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffff; /* |y| */ + + if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) || /* x is nan */ + ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0)) /* y is nan */ + return x+y; + if(x==y) return x; /* x=y, return x */ + if((ix|lx)==0) { /* x == 0 */ + INSERT_WORDS(x,hy&0x80000000,1); /* return +-minsubnormal */ + y = x*x; + if(y==x) return y; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hx>hy||((hx==hy)&&(lx>ly))) { /* x > y, x -= ulp */ + if(lx==0) hx -= 1; + lx -= 1; + } else { /* x < y, x += ulp */ + lx += 1; + if(lx==0) hx += 1; + } + } else { /* x < 0 */ + if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */ + if(lx==0) hx -= 1; + lx -= 1; + } else { /* x > y, x += ulp */ + lx += 1; + if(lx==0) hx += 1; + } + } + hy = hx&0x7ff00000; + if(hy>=0x7ff00000) return x+x; /* overflow */ + if(hy<0x00100000) { /* underflow */ + y = x*x; + if(y!=x) { /* raise underflow flag */ + INSERT_WORDS(y,hx,lx); + return y; + } + } + INSERT_WORDS(x,hx,lx); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/s_rint.c b/newlib/libm/common/s_rint.c new file mode 100644 index 000000000..ba33e4786 --- /dev/null +++ b/newlib/libm/common/s_rint.c @@ -0,0 +1,90 @@ + +/* @(#)s_rint.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * rint(x) + * Return x rounded to integral value according to the prevailing + * rounding mode. + * Method: + * Using floating addition. + * Exception: + * Inexact flag raised if x not equal to rint(x). + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +TWO52[2]={ + 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */ + -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */ +}; + +#ifdef __STDC__ + double rint(double x) +#else + double rint(x) + double x; +#endif +{ + __int32_t i0,j0,sx; + __uint32_t i,i1; + double t; + volatile double w; + EXTRACT_WORDS(i0,i1,x); + sx = (i0>>31)&1; + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { + if(((i0&0x7fffffff)|i1)==0) return x; + i1 |= (i0&0x0fffff); + i0 &= 0xfffe0000; + i0 |= ((i1|-i1)>>12)&0x80000; + SET_HIGH_WORD(x,i0); + w = TWO52[sx]+x; + t = w-TWO52[sx]; + GET_HIGH_WORD(i0,t); + SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + i>>=1; + if(((i0&i)|i1)!=0) { + if(j0==19) i1 = 0x40000000; else + i0 = (i0&(~i))|((0x20000)>>j0); + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((__uint32_t)(0xffffffff))>>(j0-20); + if((i1&i)==0) return x; /* x is integral */ + i>>=1; + if((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20)); + } + INSERT_WORDS(x,i0,i1); + w = TWO52[sx]+x; + return w-TWO52[sx]; +} + +#endif /* _DOUBLE_IS_32BITS */ + + + diff --git a/newlib/libm/common/s_scalbn.c b/newlib/libm/common/s_scalbn.c new file mode 100644 index 000000000..245888fc8 --- /dev/null +++ b/newlib/libm/common/s_scalbn.c @@ -0,0 +1,103 @@ + +/* @(#)s_scalbn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<scalbn>>, <<scalbnf>>---scale by integer +INDEX + scalbn +INDEX + scalbnf + +ANSI_SYNOPSIS + #include <math.h> + double scalbn(double <[x]>, int <[y]>); + float scalbnf(float <[x]>, int <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double scalbn(<[x]>,<[y]>) + double <[x]>; + int <[y]>; + float scalbnf(<[x]>,<[y]>) + float <[x]>; + int <[y]>; + +DESCRIPTION +<<scalbn>> and <<scalbnf>> scale <[x]> by <[n]>, returning <[x]> times +2 to the power <[n]>. The result is computed by manipulating the +exponent, rather than by actually performing an exponentiation or +multiplication. + +RETURNS +<[x]> times 2 to the power <[n]>. + +PORTABILITY +Neither <<scalbn>> nor <<scalbnf>> is required by ANSI C or by the System V +Interface Definition (Issue 2). + +*/ + +/* + * scalbn (double x, int n) + * scalbn(x,n) returns x* 2**n computed by exponent + * manipulation rather than by actually performing an + * exponentiation or a multiplication. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ +twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */ +huge = 1.0e+300, +tiny = 1.0e-300; + +#ifdef __STDC__ + double scalbn (double x, int n) +#else + double scalbn (x,n) + double x; int n; +#endif +{ + __int32_t k,hx,lx; + EXTRACT_WORDS(hx,lx,x); + k = (hx&0x7ff00000)>>20; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */ + x *= two54; + GET_HIGH_WORD(hx,x); + k = ((hx&0x7ff00000)>>20) - 54; + if (n< -50000) return tiny*x; /*underflow*/ + } + if (k==0x7ff) return x+x; /* NaN or Inf */ + k = k+n; + if (k > 0x7fe) return huge*copysign(huge,x); /* overflow */ + if (k > 0) /* normal result */ + {SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); return x;} + if (k <= -54) + if (n > 50000) /* in case integer overflow in n+k */ + return huge*copysign(huge,x); /*overflow*/ + else return tiny*copysign(tiny,x); /*underflow*/ + k += 54; /* subnormal result */ + SET_HIGH_WORD(x,(hx&0x800fffff)|(k<<20)); + return x*twom54; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/common/sf_cbrt.c b/newlib/libm/common/sf_cbrt.c new file mode 100644 index 000000000..c053d9548 --- /dev/null +++ b/newlib/libm/common/sf_cbrt.c @@ -0,0 +1,93 @@ +/* sf_cbrt.c -- float version of s_cbrt.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +/* cbrtf(x) + * Return cube root of x + */ +#ifdef __STDC__ +static const __uint32_t +#else +static __uint32_t +#endif + B1 = 709958130, /* B1 = (84+2/3-0.03306235651)*2**23 */ + B2 = 642849266; /* B2 = (76+2/3-0.03306235651)*2**23 */ + +#ifdef __STDC__ +static const float +#else +static float +#endif +C = 5.4285717010e-01, /* 19/35 = 0x3f0af8b0 */ +D = -7.0530611277e-01, /* -864/1225 = 0xbf348ef1 */ +E = 1.4142856598e+00, /* 99/70 = 0x3fb50750 */ +F = 1.6071428061e+00, /* 45/28 = 0x3fcdb6db */ +G = 3.5714286566e-01; /* 5/14 = 0x3eb6db6e */ + +#ifdef __STDC__ + float cbrtf(float x) +#else + float cbrtf(x) + float x; +#endif +{ + __int32_t hx; + float r,s,t; + __uint32_t sign; + __uint32_t high; + + GET_FLOAT_WORD(hx,x); + sign=hx&0x80000000; /* sign= sign(x) */ + hx ^=sign; + if(hx>=0x7f800000) return(x+x); /* cbrt(NaN,INF) is itself */ + if(hx==0) + return(x); /* cbrt(0) is itself */ + + SET_FLOAT_WORD(x,hx); /* x <- |x| */ + /* rough cbrt to 5 bits */ + if(hx<0x00800000) /* subnormal number */ + {SET_FLOAT_WORD(t,0x4b800000); /* set t= 2**24 */ + t*=x; GET_FLOAT_WORD(high,t); SET_FLOAT_WORD(t,high/3+B2); + } + else + SET_FLOAT_WORD(t,hx/3+B1); + + + /* new cbrt to 23 bits */ + r=t*t/x; + s=C+r*t; + t*=G+F/(s+E+D/s); + + /* retore the sign bit */ + GET_FLOAT_WORD(high,t); + SET_FLOAT_WORD(t,high|sign); + return(t); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double cbrt(double x) +#else + double cbrt(x) + double x; +#endif +{ + return (double) cbrtf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_copysign.c b/newlib/libm/common/sf_copysign.c new file mode 100644 index 000000000..f547c82ed --- /dev/null +++ b/newlib/libm/common/sf_copysign.c @@ -0,0 +1,50 @@ +/* sf_copysign.c -- float version of s_copysign.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * copysignf(float x, float y) + * copysignf(x,y) returns a value with the magnitude of x and + * with the sign bit of y. + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float copysignf(float x, float y) +#else + float copysignf(x,y) + float x,y; +#endif +{ + __uint32_t ix,iy; + GET_FLOAT_WORD(ix,x); + GET_FLOAT_WORD(iy,y); + SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000)); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double copysign(double x, double y) +#else + double copysign(x,y) + double x,y; +#endif +{ + return (double) copysignf((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_expm1.c b/newlib/libm/common/sf_expm1.c new file mode 100644 index 000000000..1df6f80d2 --- /dev/null +++ b/newlib/libm/common/sf_expm1.c @@ -0,0 +1,146 @@ +/* sf_expm1.c -- float version of s_expm1.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0, +huge = 1.0e+30, +tiny = 1.0e-30, +o_threshold = 8.8721679688e+01,/* 0x42b17180 */ +ln2_hi = 6.9313812256e-01,/* 0x3f317180 */ +ln2_lo = 9.0580006145e-06,/* 0x3717f7d1 */ +invln2 = 1.4426950216e+00,/* 0x3fb8aa3b */ + /* scaled coefficients related to expm1 */ +Q1 = -3.3333335072e-02, /* 0xbd088889 */ +Q2 = 1.5873016091e-03, /* 0x3ad00d01 */ +Q3 = -7.9365076090e-05, /* 0xb8a670cd */ +Q4 = 4.0082177293e-06, /* 0x36867e54 */ +Q5 = -2.0109921195e-07; /* 0xb457edbb */ + +#ifdef __STDC__ + float expm1f(float x) +#else + float expm1f(x) + float x; +#endif +{ + float y,hi,lo,c,t,e,hxs,hfx,r1; + __int32_t k,xsb; + __uint32_t hx; + + GET_FLOAT_WORD(hx,x); + xsb = hx&0x80000000; /* sign bit of x */ + if(xsb==0) y=x; else y= -x; /* y = |x| */ + hx &= 0x7fffffff; /* high word of |x| */ + + /* filter out huge and non-finite argument */ + if(hx >= 0x4195b844) { /* if |x|>=27*ln2 */ + if(hx >= 0x42b17218) { /* if |x|>=88.721... */ + if(hx>0x7f800000) + return x+x; /* NaN */ + if(hx==0x7f800000) + return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */ + if(x > o_threshold) return huge*huge; /* overflow */ + } + if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */ + if(x+tiny<(float)0.0) /* raise inexact */ + return tiny-one; /* return -1 */ + } + } + + /* argument reduction */ + if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */ + if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */ + if(xsb==0) + {hi = x - ln2_hi; lo = ln2_lo; k = 1;} + else + {hi = x + ln2_hi; lo = -ln2_lo; k = -1;} + } else { + k = invln2*x+((xsb==0)?(float)0.5:(float)-0.5); + t = k; + hi = x - t*ln2_hi; /* t*ln2_hi is exact here */ + lo = t*ln2_lo; + } + x = hi - lo; + c = (hi-x)-lo; + } + else if(hx < 0x33000000) { /* when |x|<2**-25, return x */ + t = huge+x; /* return x with inexact flags when x!=0 */ + return x - (t-(huge+x)); + } + else k = 0; + + /* x is now in primary range */ + hfx = (float)0.5*x; + hxs = x*hfx; + r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5)))); + t = (float)3.0-r1*hfx; + e = hxs*((r1-t)/((float)6.0 - x*t)); + if(k==0) return x - (x*e-hxs); /* c is 0 */ + else { + e = (x*(e-c)-c); + e -= hxs; + if(k== -1) return (float)0.5*(x-e)-(float)0.5; + if(k==1) + if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5)); + else return one+(float)2.0*(x-e); + if (k <= -2 || k>56) { /* suffice to return exp(x)-1 */ + __int32_t i; + y = one-(e-x); + GET_FLOAT_WORD(i,y); + SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */ + return y-one; + } + t = one; + if(k<23) { + __int32_t i; + SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */ + y = t-(e-x); + GET_FLOAT_WORD(i,y); + SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */ + } else { + __int32_t i; + SET_FLOAT_WORD(t,((0x7f-k)<<23)); /* 2^-k */ + y = x-(e+t); + y += one; + GET_FLOAT_WORD(i,y); + SET_FLOAT_WORD(y,i+(k<<23)); /* add k to y's exponent */ + } + } + return y; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double expm1(double x) +#else + double expm1(x) + double x; +#endif +{ + return (double) expm1f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_finite.c b/newlib/libm/common/sf_finite.c new file mode 100644 index 000000000..4c48f400f --- /dev/null +++ b/newlib/libm/common/sf_finite.c @@ -0,0 +1,47 @@ +/* sf_finite.c -- float version of s_finite.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * finitef(x) returns 1 is x is finite, else 0; + * no branching! + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + int finitef(float x) +#else + int finitef(x) + float x; +#endif +{ + __int32_t ix; + GET_FLOAT_WORD(ix,x); + return (int)((__uint32_t)((ix&0x7fffffff)-0x7f800000)>>31); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int finite(double x) +#else + int finite(x) + double x; +#endif +{ + return finitef((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_ilogb.c b/newlib/libm/common/sf_ilogb.c new file mode 100644 index 000000000..ee65594b1 --- /dev/null +++ b/newlib/libm/common/sf_ilogb.c @@ -0,0 +1,53 @@ +/* sf_ilogb.c -- float version of s_ilogb.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <limits.h> + +#ifdef __STDC__ + int ilogbf(float x) +#else + int ilogbf(x) + float x; +#endif +{ + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + hx &= 0x7fffffff; + if(hx<0x00800000) { + if(hx==0) + return - INT_MAX; /* ilogb(0) = 0x80000001 */ + else /* subnormal x */ + for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1; + return ix; + } + else if (hx<0x7f800000) return (hx>>23)-127; + else return INT_MAX; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int ilogb(double x) +#else + int ilogb(x) + double x; +#endif +{ + return ilogbf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_infinity.c b/newlib/libm/common/sf_infinity.c new file mode 100644 index 000000000..8722596c9 --- /dev/null +++ b/newlib/libm/common/sf_infinity.c @@ -0,0 +1,23 @@ +/* + * infinityf () returns the representation of infinity. + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + + float infinityf() +{ + float x; + + SET_FLOAT_WORD(x,0x7f800000); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + + double infinity() +{ + return (double) infinityf(); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_log1p.c b/newlib/libm/common/sf_log1p.c new file mode 100644 index 000000000..31c426fe7 --- /dev/null +++ b/newlib/libm/common/sf_log1p.c @@ -0,0 +1,121 @@ +/* sf_log1p.c -- float version of s_log1p.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +ln2_hi = 6.9313812256e-01, /* 0x3f317180 */ +ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */ +two25 = 3.355443200e+07, /* 0x4c000000 */ +Lp1 = 6.6666668653e-01, /* 3F2AAAAB */ +Lp2 = 4.0000000596e-01, /* 3ECCCCCD */ +Lp3 = 2.8571429849e-01, /* 3E924925 */ +Lp4 = 2.2222198546e-01, /* 3E638E29 */ +Lp5 = 1.8183572590e-01, /* 3E3A3325 */ +Lp6 = 1.5313838422e-01, /* 3E1CD04F */ +Lp7 = 1.4798198640e-01; /* 3E178897 */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float log1pf(float x) +#else + float log1pf(x) + float x; +#endif +{ + float hfsq,f,c,s,z,R,u; + __int32_t k,hx,hu,ax; + + GET_FLOAT_WORD(hx,x); + ax = hx&0x7fffffff; + + k = 1; + if (hx < 0x3ed413d7) { /* x < 0.41422 */ + if(ax>=0x3f800000) { /* x <= -1.0 */ + if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=+inf */ + else return (x-x)/(x-x); /* log1p(x<-1)=NaN */ + } + if(ax<0x31000000) { /* |x| < 2**-29 */ + if(two25+x>zero /* raise inexact */ + &&ax<0x24800000) /* |x| < 2**-54 */ + return x; + else + return x - x*x*(float)0.5; + } + if(hx>0||hx<=((__int32_t)0xbe95f61f)) { + k=0;f=x;hu=1;} /* -0.2929<x<0.41422 */ + } + if (hx >= 0x7f800000) return x+x; + if(k!=0) { + if(hx<0x5a000000) { + u = (float)1.0+x; + GET_FLOAT_WORD(hu,u); + k = (hu>>23)-127; + /* correction term */ + c = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0); + c /= u; + } else { + u = x; + GET_FLOAT_WORD(hu,u); + k = (hu>>23)-127; + c = 0; + } + hu &= 0x007fffff; + if(hu<0x3504f7) { + SET_FLOAT_WORD(u,hu|0x3f800000);/* normalize u */ + } else { + k += 1; + SET_FLOAT_WORD(u,hu|0x3f000000); /* normalize u/2 */ + hu = (0x00800000-hu)>>2; + } + f = u-(float)1.0; + } + hfsq=(float)0.5*f*f; + if(hu==0) { /* |f| < 2**-20 */ + if(f==zero) if(k==0) return zero; + else {c += k*ln2_lo; return k*ln2_hi+c;} + R = hfsq*((float)1.0-(float)0.66666666666666666*f); + if(k==0) return f-R; else + return k*ln2_hi-((R-(k*ln2_lo+c))-f); + } + s = f/((float)2.0+f); + z = s*s; + R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7)))))); + if(k==0) return f-(hfsq-s*(hfsq+R)); else + return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double log1p(double x) +#else + double log1p(x) + double x; +#endif +{ + return (double) log1pf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_logb.c b/newlib/libm/common/sf_logb.c new file mode 100644 index 000000000..6e67637fe --- /dev/null +++ b/newlib/libm/common/sf_logb.c @@ -0,0 +1,48 @@ +/* sf_logb.c -- float version of s_logb.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float logbf(float x) +#else + float logbf(x) + float x; +#endif +{ + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; /* high |x| */ + if(ix==0) return (float)-1.0/fabsf(x); + if(ix>=0x7f800000) return x*x; + if((ix>>=23)==0) /* IEEE 754 logb */ + return -126.0; + else + return (float) (ix-127); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double logb(double x) +#else + double logb(x) + double x; +#endif +{ + return (double) logbf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_modf.c b/newlib/libm/common/sf_modf.c new file mode 100644 index 000000000..6c64e3fa0 --- /dev/null +++ b/newlib/libm/common/sf_modf.c @@ -0,0 +1,73 @@ +/* sf_modf.c -- float version of s_modf.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0; +#else +static float one = 1.0; +#endif + +#ifdef __STDC__ + float modff(float x, float *iptr) +#else + float modff(x, iptr) + float x,*iptr; +#endif +{ + __int32_t i0,j0; + __uint32_t i; + GET_FLOAT_WORD(i0,x); + j0 = ((i0>>23)&0xff)-0x7f; /* exponent of x */ + if(j0<23) { /* integer part in x */ + if(j0<0) { /* |x|<1 */ + SET_FLOAT_WORD(*iptr,i0&0x80000000); /* *iptr = +-0 */ + return x; + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) { /* x is integral */ + __uint32_t ix; + *iptr = x; + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */ + return x; + } else { + SET_FLOAT_WORD(*iptr,i0&(~i)); + return x - *iptr; + } + } + } else { /* no fraction part */ + __uint32_t ix; + *iptr = x*one; + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(x,ix&0x80000000); /* return +-0 */ + return x; + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double modf(double x, double *iptr) +#else + double modf(x, iptr) + double x,*iptr; +#endif +{ + return (double) modff((float) x, (float *) iptr); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_nan.c b/newlib/libm/common/sf_nan.c new file mode 100644 index 000000000..cb3e1cd03 --- /dev/null +++ b/newlib/libm/common/sf_nan.c @@ -0,0 +1,23 @@ +/* + * nanf () returns a nan. + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + + float nanf() +{ + float x; + + SET_FLOAT_WORD(x,0x7fc00000); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + + double nan() +{ + return (double) nanf(); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_nextafter.c b/newlib/libm/common/sf_nextafter.c new file mode 100644 index 000000000..cd938d339 --- /dev/null +++ b/newlib/libm/common/sf_nextafter.c @@ -0,0 +1,79 @@ +/* sf_nextafter.c -- float version of s_nextafter.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float nextafterf(float x, float y) +#else + float nextafterf(x,y) + float x,y; +#endif +{ + __int32_t hx,hy,ix,iy; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hy,y); + ix = hx&0x7fffffff; /* |x| */ + iy = hy&0x7fffffff; /* |y| */ + + if((ix>0x7f800000) || /* x is nan */ + (iy>0x7f800000)) /* y is nan */ + return x+y; + if(x==y) return x; /* x=y, return x */ + if(ix==0) { /* x == 0 */ + SET_FLOAT_WORD(x,(hy&0x80000000)|1);/* return +-minsubnormal */ + y = x*x; + if(y==x) return y; else return x; /* raise underflow flag */ + } + if(hx>=0) { /* x > 0 */ + if(hx>hy) { /* x > y, x -= ulp */ + hx -= 1; + } else { /* x < y, x += ulp */ + hx += 1; + } + } else { /* x < 0 */ + if(hy>=0||hx>hy){ /* x < y, x -= ulp */ + hx -= 1; + } else { /* x > y, x += ulp */ + hx += 1; + } + } + hy = hx&0x7f800000; + if(hy>=0x7f800000) return x+x; /* overflow */ + if(hy<0x00800000) { /* underflow */ + y = x*x; + if(y!=x) { /* raise underflow flag */ + SET_FLOAT_WORD(y,hx); + return y; + } + } + SET_FLOAT_WORD(x,hx); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double nextafter(double x, double y) +#else + double nextafter(x,y) + double x,y; +#endif +{ + return (double) nextafterf((float) x, (float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_rint.c b/newlib/libm/common/sf_rint.c new file mode 100644 index 000000000..d38080a5d --- /dev/null +++ b/newlib/libm/common/sf_rint.c @@ -0,0 +1,81 @@ +/* sf_rint.c -- float version of s_rint.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +TWO23[2]={ + 8.3886080000e+06, /* 0x4b000000 */ + -8.3886080000e+06, /* 0xcb000000 */ +}; + +#ifdef __STDC__ + float rintf(float x) +#else + float rintf(x) + float x; +#endif +{ + __int32_t i0,j0,sx; + __uint32_t i,i1; + float t; + volatile float w; + GET_FLOAT_WORD(i0,x); + sx = (i0>>31)&1; + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { + if((i0&0x7fffffff)==0) return x; + i1 = (i0&0x07fffff); + i0 &= 0xfff00000; + i0 |= ((i1|-i1)>>9)&0x400000; + SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + t = w-TWO23[sx]; + GET_FLOAT_WORD(i0,t); + SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31)); + return t; + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ + i>>=1; + if((i0&i)!=0) i0 = (i0&(~i))|((0x100000)>>j0); + } + } else { + if(j0==0x80) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } + SET_FLOAT_WORD(x,i0); + w = TWO23[sx]+x; + return w-TWO23[sx]; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double rint(double x) +#else + double rint(x) + double x; +#endif +{ + return (double) rintf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/common/sf_scalbn.c b/newlib/libm/common/sf_scalbn.c new file mode 100644 index 000000000..ee65f40ad --- /dev/null +++ b/newlib/libm/common/sf_scalbn.c @@ -0,0 +1,79 @@ +/* sf_scalbn.c -- float version of s_scalbn.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <limits.h> + +#if INT_MAX > 50000 +#define OVERFLOW_INT 50000 +#else +#define OVERFLOW_INT 30000 +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +two25 = 3.355443200e+07, /* 0x4c000000 */ +twom25 = 2.9802322388e-08, /* 0x33000000 */ +huge = 1.0e+30, +tiny = 1.0e-30; + +#ifdef __STDC__ + float scalbnf (float x, int n) +#else + float scalbnf (x,n) + float x; int n; +#endif +{ + __int32_t k,ix; + GET_FLOAT_WORD(ix,x); + k = (ix&0x7f800000)>>23; /* extract exponent */ + if (k==0) { /* 0 or subnormal x */ + if ((ix&0x7fffffff)==0) return x; /* +-0 */ + x *= two25; + GET_FLOAT_WORD(ix,x); + k = ((ix&0x7f800000)>>23) - 25; + if (n< -50000) return tiny*x; /*underflow*/ + } + if (k==0xff) return x+x; /* NaN or Inf */ + k = k+n; + if (k > 0xfe) return huge*copysignf(huge,x); /* overflow */ + if (k > 0) /* normal result */ + {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;} + if (k <= -25) + if (n > OVERFLOW_INT) /* in case integer overflow in n+k */ + return huge*copysignf(huge,x); /*overflow*/ + else return tiny*copysignf(tiny,x); /*underflow*/ + k += 25; /* subnormal result */ + SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); + return x*twom25; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double scalbn(double x, int n) +#else + double scalbn(x,n) + double x; + int n; +#endif +{ + return (double) scalbnf((float) x, n); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/config.h.in b/newlib/libm/config.h.in new file mode 100644 index 000000000..61025bcef --- /dev/null +++ b/newlib/libm/config.h.in @@ -0,0 +1 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ diff --git a/newlib/libm/configure b/newlib/libm/configure new file mode 100755 index 000000000..93461c10e --- /dev/null +++ b/newlib/libm/configure @@ -0,0 +1,1713 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --enable-newlib-hw-fp Turn on hardware floating point math" +ac_help="$ac_help + --enable-multilib build many library versions (default)" +ac_help="$ac_help + --enable-target-optspace optimize for space" +ac_help="$ac_help + --enable-newlib-mb enable multibyte support" +ac_help="$ac_help + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +sitefile= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --site-file=FILE use FILE as the site file + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -site-file | --site-file | --site-fil | --site-fi | --site-f) + ac_prev=sitefile ;; + -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) + sitefile="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=libm.texinfo + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$sitefile"; then + if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi + fi +else + CONFIG_SITE="$sitefile" +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + +# Check whether --enable-newlib_hw_fp or --disable-newlib_hw_fp was given. +if test "${enable_newlib_hw_fp+set}" = set; then + enableval="$enable_newlib_hw_fp" + case "${enableval}" in + yes) newlib_hw_fp=true ;; + no) newlib_hw_fp=false ;; + *) { echo "configure: error: bad value ${enableval} for --enable-newlib-hw-fp" 1>&2; exit 1; } ;; + esac +else + newlib_hw_fp=false +fi + + + +if test x$newlib_hw_fp = xtrue; then + NEWLIB_HW_FP_TRUE= + NEWLIB_HW_FP_FALSE='#' +else + NEWLIB_HW_FP_TRUE='#' + NEWLIB_HW_FP_FALSE= +fi + +ac_aux_dir= +for ac_dir in ../.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in ../.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:602: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 +echo "configure:655: checking whether build environment is sane" >&5 +# Just in case +sleep 1 +echo timestamp > conftestfile +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftestfile` + fi + if test "$*" != "X $srcdir/configure conftestfile" \ + && test "$*" != "X conftestfile $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { echo "configure: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" 1>&2; exit 1; } + fi + + test "$2" = conftestfile + ) +then + # Ok. + : +else + { echo "configure: error: newly created file is older than distributed files! +Check your system clock" 1>&2; exit 1; } +fi +rm -f conftest* +echo "$ac_t""yes" 1>&6 +if test "$program_transform_name" = s,x,x,; then + program_transform_name= +else + # Double any \ or $. echo might interpret backslashes. + cat <<\EOF_SED > conftestsed +s,\\,\\\\,g; s,\$,$$,g +EOF_SED + program_transform_name="`echo $program_transform_name|sed -f conftestsed`" + rm -f conftestsed +fi +test "$program_prefix" != NONE && + program_transform_name="s,^,${program_prefix},; $program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s,\$\$,${program_suffix},; $program_transform_name" + +# sed with no file args requires a program. +test "$program_transform_name" = "" && program_transform_name="s,x,x," + +echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 +echo "configure:712: checking whether ${MAKE-make} sets \${MAKE}" >&5 +set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftestmake <<\EOF +all: + @echo 'ac_maketemp="${MAKE}"' +EOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=` +if test -n "$ac_maketemp"; then + eval ac_cv_prog_make_${ac_make}_set=yes +else + eval ac_cv_prog_make_${ac_make}_set=no +fi +rm -f conftestmake +fi +if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then + echo "$ac_t""yes" 1>&6 + SET_MAKE= +else + echo "$ac_t""no" 1>&6 + SET_MAKE="MAKE=${MAKE-make}" +fi + +if test $host != $build; then + ac_tool_prefix=${host_alias}- +else + ac_tool_prefix= +fi + +echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 +echo "configure:745: checking for Cygwin environment" >&5 +if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 750 "configure" +#include "confdefs.h" + +int main() { + +#ifndef __CYGWIN__ +#define __CYGWIN__ __CYGWIN32__ +#endif +return __CYGWIN__; +; return 0; } +EOF +if { (eval echo configure:761: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_cygwin=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_cygwin=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_cygwin" 1>&6 +CYGWIN= +test "$ac_cv_cygwin" = yes && CYGWIN=yes +echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 +echo "configure:778: checking for mingw32 environment" >&5 +if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 783 "configure" +#include "confdefs.h" + +int main() { +return __MINGW32__; +; return 0; } +EOF +if { (eval echo configure:790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_mingw32=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_mingw32=no +fi +rm -f conftest* +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_mingw32" 1>&6 +MINGW32= +test "$ac_cv_mingw32" = yes && MINGW32=yes + +# Check whether --enable-multilib or --disable-multilib was given. +if test "${enable_multilib+set}" = set; then + enableval="$enable_multilib" + case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) { echo "configure: error: bad value ${enableval} for multilib option" 1>&2; exit 1; } ;; + esac +else + multilib=yes +fi + +# Check whether --enable-target-optspace or --disable-target-optspace was given. +if test "${enable_target_optspace+set}" = set; then + enableval="$enable_target_optspace" + case "${enableval}" in + yes) target_optspace=yes ;; + no) target_optspace=no ;; + *) { echo "configure: error: bad value ${enableval} for target-optspace option" 1>&2; exit 1; } ;; + esac +else + target_optspace= +fi + +# Check whether --enable-newlib-mb or --disable-newlib-mb was given. +if test "${enable_newlib_mb+set}" = set; then + enableval="$enable_newlib_mb" + case "${enableval}" in + yes) newlib_mb=yes ;; + no) newlib_mb=no ;; + *) { echo "configure: error: bad value ${enableval} for newlib-mb option" 1>&2; exit 1; } ;; + esac +else + newlib_mb=no +fi + + +test -z "${with_target_subdir}" && with_target_subdir=. + +if test "${srcdir}" = "."; then + if test "${with_target_subdir}" != "."; then + newlib_basedir="${srcdir}/${with_multisrctop}../.." + else + newlib_basedir="${srcdir}/${with_multisrctop}.." + fi +else + newlib_basedir="${srcdir}/.." +fi + + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:864: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + +PACKAGE=newlib + +VERSION=1.8.1 + +if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then + { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } +fi +cat >> confdefs.h <<EOF +#define PACKAGE "$PACKAGE" +EOF + +cat >> confdefs.h <<EOF +#define VERSION "$VERSION" +EOF + + + +missing_dir=`cd $ac_aux_dir && pwd` +echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 +echo "configure:905: checking for working aclocal" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (aclocal --version) < /dev/null > /dev/null 2>&1; then + ACLOCAL=aclocal + echo "$ac_t""found" 1>&6 +else + ACLOCAL="$missing_dir/missing aclocal" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 +echo "configure:918: checking for working autoconf" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoconf --version) < /dev/null > /dev/null 2>&1; then + AUTOCONF=autoconf + echo "$ac_t""found" 1>&6 +else + AUTOCONF="$missing_dir/missing autoconf" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working automake""... $ac_c" 1>&6 +echo "configure:931: checking for working automake" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (automake --version) < /dev/null > /dev/null 2>&1; then + AUTOMAKE=automake + echo "$ac_t""found" 1>&6 +else + AUTOMAKE="$missing_dir/missing automake" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 +echo "configure:944: checking for working autoheader" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (autoheader --version) < /dev/null > /dev/null 2>&1; then + AUTOHEADER=autoheader + echo "$ac_t""found" 1>&6 +else + AUTOHEADER="$missing_dir/missing autoheader" + echo "$ac_t""missing" 1>&6 +fi + +echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 +echo "configure:957: checking for working makeinfo" >&5 +# Run test in a subshell; some versions of sh will print an error if +# an executable is not found, even if stderr is redirected. +# Redirect stdin to placate older versions of autoconf. Sigh. +if (makeinfo --version) < /dev/null > /dev/null 2>&1; then + MAKEINFO=makeinfo + echo "$ac_t""found" 1>&6 +else + MAKEINFO="$missing_dir/missing makeinfo" + echo "$ac_t""missing" 1>&6 +fi + + + +# FIXME: We temporarily define our own version of AC_PROG_CC. This is +# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We +# are probably using a cross compiler, which will not be able to fully +# link an executable. This should really be fixed in autoconf +# itself. + + + +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:982: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1012: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:1061: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <<EOF +#ifdef __GNUC__ + yes; +#endif +EOF +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes + ac_test_CFLAGS="${CFLAGS+set}" + ac_save_CFLAGS="$CFLAGS" + CFLAGS= + echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:1085: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 + if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" + elif test $ac_cv_prog_cc_g = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-O2" + fi +else + GCC= + test "${CFLAGS+set}" = set || CFLAGS="-g" +fi + + +# AC_CHECK_TOOL does AC_REQUIRE (AC_CANONICAL_BUILD). If we don't +# run it explicitly here, it will be run implicitly before +# NEWLIB_CONFIGURE, which doesn't work because that means that it will +# be run before AC_CANONICAL_HOST. +echo $ac_n "checking build system type""... $ac_c" 1>&6 +echo "configure:1118: checking build system type" >&5 + +build_alias=$build +case "$build_alias" in +NONE) + case $nonopt in + NONE) build_alias=$host_alias ;; + *) build_alias=$nonopt ;; + esac ;; +esac + +build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias` +build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$build" 1>&6 + + +# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1139: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AS="${ac_tool_prefix}as" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="as" +fi +fi +AS="$ac_cv_prog_AS" +if test -n "$AS"; then + echo "$ac_t""$AS" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1171: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar" +fi +fi +AR="$ac_cv_prog_AR" +if test -n "$AR"; then + echo "$ac_t""$AR" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + + +# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1203: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +if test -z "$ac_cv_prog_RANLIB"; then +if test -n "$ac_tool_prefix"; then + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1235: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RANLIB="ranlib" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":" +fi +fi +RANLIB="$ac_cv_prog_RANLIB" +if test -n "$RANLIB"; then + echo "$ac_t""$RANLIB" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +else + RANLIB=":" +fi +fi + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:1280: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + +echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 +echo "configure:1334: checking whether to enable maintainer-specific portions of Makefiles" >&5 + # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval="$enable_maintainer_mode" + USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + echo "$ac_t""$USE_MAINTAINER_MODE" 1>&6 + + +if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + MAINT=$MAINTAINER_MODE_TRUE + + + +# We need AC_EXEEXT to keep automake happy in cygnus mode. However, +# at least currently, we never actually build a program, so we never +# need to use $(EXEEXT). Moreover, the test for EXEEXT normally +# fails, because we are probably configuring with a cross compiler +# which can't create executables. So we include AC_EXEEXT to keep +# automake happy, but we don't execute it, since we don't care about +# the result. +if false; then + + +echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 +echo "configure:1368: checking for executable suffix" >&5 +if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test "$CYGWIN" = yes || test "$MINGW32" = yes; then + ac_cv_exeext=.exe +else + rm -f conftest* + echo 'int main () { return 0; }' > conftest.$ac_ext + ac_cv_exeext= + if { (eval echo configure:1378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + for file in conftest.*; do + case $file in + *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; + esac + done + else + { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; } + fi + rm -f conftest* + test x"${ac_cv_exeext}" = x && ac_cv_exeext=no +fi +fi + +EXEEXT="" +test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} +echo "$ac_t""${ac_cv_exeext}" 1>&6 +ac_exeext=$EXEEXT + +fi + +. ${newlib_basedir}/configure.host + +case ${newlib_basedir} in +/* | A-Za-z:/\\*) newlib_flagbasedir=${newlib_basedir} ;; +*) newlib_flagbasedir='$(top_builddir)/'${newlib_basedir} ;; +esac + +newlib_cflags="${newlib_cflags} -I"'$(top_builddir)'"/../targ-include -I${newlib_flagbasedir}/libc/include" +case "${host}" in + *-*-cygwin*) + newlib_cflags="${newlib_cflags} -I${newlib_flagbasedir}/../winsup/cygwin/include -I${newlib_flagbasedir}/../winsup/w32api/include" + ;; +esac + +newlib_cflags="${newlib_cflags} -fno-builtin" + +NEWLIB_CFLAGS=${newlib_cflags} + + + + + + +trap '' 1 2 15 +cat > confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +cat > conftest.defs <<\EOF +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g +s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g +s%\[%\\&%g +s%\]%\\&%g +s%\$%$$%g +EOF +DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '` +rm -f conftest.defs + + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS <<EOF +#! /bin/sh +# Generated automatically by configure. +# Run this file to recreate the current configuration. +# This directory was configured as follows, +# on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile math/Makefile mathfp/Makefile common/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS <<EOF + +# Protect against being on the right side of a sed subst in config.status. +sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g; + s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@NEWLIB_HW_FP_TRUE@%$NEWLIB_HW_FP_TRUE%g +s%@NEWLIB_HW_FP_FALSE@%$NEWLIB_HW_FP_FALSE%g +s%@newlib_basedir@%$newlib_basedir%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@PACKAGE@%$PACKAGE%g +s%@VERSION@%$VERSION%g +s%@ACLOCAL@%$ACLOCAL%g +s%@AUTOCONF@%$AUTOCONF%g +s%@AUTOMAKE@%$AUTOMAKE%g +s%@AUTOHEADER@%$AUTOHEADER%g +s%@MAKEINFO@%$MAKEINFO%g +s%@SET_MAKE@%$SET_MAKE%g +s%@CC@%$CC%g +s%@build@%$build%g +s%@build_alias@%$build_alias%g +s%@build_cpu@%$build_cpu%g +s%@build_vendor@%$build_vendor%g +s%@build_os@%$build_os%g +s%@AS@%$AS%g +s%@AR@%$AR%g +s%@RANLIB@%$RANLIB%g +s%@MAINTAINER_MODE_TRUE@%$MAINTAINER_MODE_TRUE%g +s%@MAINTAINER_MODE_FALSE@%$MAINTAINER_MODE_FALSE%g +s%@MAINT@%$MAINT%g +s%@EXEEXT@%$EXEEXT%g +s%@NEWLIB_CFLAGS@%$NEWLIB_CFLAGS%g +s%@machine_dir@%$machine_dir%g +s%@sys_dir@%$sys_dir%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <<EOF + +CONFIG_FILES=\${CONFIG_FILES-"Makefile math/Makefile mathfp/Makefile common/Makefile"} +EOF +cat >> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +EOF +cat >> $CONFIG_STATUS <<EOF + +EOF +cat >> $CONFIG_STATUS <<\EOF + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/newlib/libm/configure.in b/newlib/libm/configure.in new file mode 100644 index 000000000..66ebb4f67 --- /dev/null +++ b/newlib/libm/configure.in @@ -0,0 +1,21 @@ +dnl This is the newlib/libm configure.in file. +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.5) +AC_INIT(libm.texinfo) + +AC_ARG_ENABLE(newlib_hw_fp, +[ --enable-newlib-hw-fp Turn on hardware floating point math], +[case "${enableval}" in + yes) newlib_hw_fp=true ;; + no) newlib_hw_fp=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-newlib-hw-fp) ;; + esac],[newlib_hw_fp=false]) +AM_CONDITIONAL(NEWLIB_HW_FP, test x$newlib_hw_fp = xtrue) + +dnl Can't be done in NEWLIB_CONFIGURE because that confuses automake. +AC_CONFIG_AUX_DIR(../..) + +NEWLIB_CONFIGURE(..) + +AC_OUTPUT(Makefile math/Makefile mathfp/Makefile common/Makefile) diff --git a/newlib/libm/libm.texinfo b/newlib/libm/libm.texinfo new file mode 100644 index 000000000..ab527a244 --- /dev/null +++ b/newlib/libm/libm.texinfo @@ -0,0 +1,161 @@ +\input texinfo.tex +@setfilename libm.info +@tex +% NOTE LOCAL KLUGE TO AVOID TOO MUCH WHITESPACE FROM "makedoc" +\global\long\def\example{% +\begingroup +\let\aboveenvbreak=\par +\let\afterenvbreak=\par +\parskip=0pt +\lisp} +\global\long\def\Eexample{% +\Elisp +\endgroup +\vskip -\parskip% to cancel out effect of following \par +} +% END LOCAL WHITESPACE KLUGE +@end tex +@syncodeindex fn cp + +@ifinfo +@format +START-INFO-DIR-ENTRY +* libm:: An ANSI-C conforming mathematical library. +END-INFO-DIR-ENTRY +@end format +@end ifinfo + +@ifinfo +This file documents an ANSI-C conforming mathematical subroutine library. + +Copyright (C) 1992, 1993, 1995 Cygnus Support + +@file{libm} includes software developed at SunPro, a Sun Microsystems, +Inc. business. Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice is preserved. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, subject to the terms +of the GNU General Public License, which includes the provision that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end ifinfo +@iftex +@finalout +@setchapternewpage odd +@settitle Cygnus C Math Library +@titlepage +@title The Cygnus C Math Library +@sp 1 +@subtitle @code{libm} 1.4 +@subtitle December 1995 +@author {Steve Chamberlain} +@author {Roland Pesch} +@author {Cygnus Support} +@page + +@tex +{\parskip=0pt +\hfill Cygnus Support\par +\hfill sac@@cygnus.com\par +\hfill pesch@@cygnus.com\par +} +\global\parindent=0pt % Steve likes it this way +@end tex + +@vskip 0pt plus 1filll +Copyright @copyright{} 1992, 1993 Cygnus Support + +@file{libm} includes software developed at SunPro, a Sun Microsystems, +Inc. business. Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice is preserved. + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, subject to the terms +of the GNU General Public License, which includes the provision that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions. +@end titlepage +@end iftex + +@ifinfo +@node Top +@top LIBM +@end ifinfo + +@menu +* Math:: The mathematical functions (`math.h'). +* Reentrancy:: The functions in libm are not reentrant by default. +* Index:: +@end menu + +@include targetdep.tex + +@node Reentrancy +@chapter Reentrancy Properties of @code{libm} + +@cindex reentrancy +@cindex @code{matherr} and reentrancy +When a libm function detects an exceptional case, @code{errno} may be +set, the @code{matherr} function may be called, and a error message +may be written to the standard error stream. This behavior may not +be reentrant. + +@c The exact behavior depends on the currently selected error handling +@c mode (IEEE, POSIX, X/Open, or SVID). + +With reentrant C libraries like the Cygnus C library, @code{errno} is +a macro which expands to the per-thread error value. This makes it thread +safe. + +When the user provides his own @code{matherr} function it must be +reentrant for the math library as a whole to be reentrant. + +In normal debugged programs, there are usually no math subroutine +errors---and therefore no assignments to @code{errno} and no @code{matherr} +calls; in that situation, the math functions behave reentrantly. + +@node Index +@unnumbered Index +@printindex cp + +@tex +% I think something like @colophon should be in texinfo. In the +% meantime: +\long\def\colophon{\hbox to0pt{}\vfill +\centerline{The body of this manual is set in} +\centerline{\fontname\tenrm,} +\centerline{with headings in {\bf\fontname\tenbf}} +\centerline{and examples in {\tt\fontname\tentt}.} +\centerline{{\it\fontname\tenit\/} and} +\centerline{{\sl\fontname\tensl\/}} +\centerline{are used for emphasis.}\vfill} +\page\colophon +% Blame: pesch@cygnus.com, 28mar91. +@end tex + +@contents +@bye + + diff --git a/newlib/libm/math/Makefile.am b/newlib/libm/math/Makefile.am new file mode 100644 index 000000000..9e16155bf --- /dev/null +++ b/newlib/libm/math/Makefile.am @@ -0,0 +1,173 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I$(srcdir)/../common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +src = k_standard.c k_rem_pio2.c \ + k_cos.c k_sin.c k_tan.c \ + e_acos.c e_acosh.c e_asin.c e_atan2.c \ + e_atanh.c e_cosh.c e_exp.c e_fmod.c \ + er_gamma.c e_hypot.c e_j0.c \ + e_j1.c e_jn.c er_lgamma.c \ + e_log.c e_log10.c e_pow.c e_rem_pio2.c e_remainder.c \ + e_scalb.c e_sinh.c e_sqrt.c \ + w_acos.c w_acosh.c w_asin.c w_atan2.c \ + w_atanh.c w_cosh.c w_exp.c w_fmod.c \ + w_gamma.c wr_gamma.c w_hypot.c w_j0.c \ + w_j1.c w_jn.c w_lgamma.c wr_lgamma.c \ + w_log.c w_log10.c w_pow.c w_remainder.c \ + w_scalb.c w_sinh.c w_sqrt.c \ + w_cabs.c w_drem.c \ + s_asinh.c s_atan.c s_ceil.c \ + s_cos.c s_erf.c s_fabs.c s_floor.c \ + s_frexp.c s_isnan.c s_ldexp.c \ + s_signif.c s_sin.c \ + s_tan.c s_tanh.c \ + s_isinf.c s_infconst.c + +fsrc = kf_rem_pio2.c \ + kf_cos.c kf_sin.c kf_tan.c \ + ef_acos.c ef_acosh.c ef_asin.c ef_atan2.c \ + ef_atanh.c ef_cosh.c ef_exp.c ef_fmod.c \ + erf_gamma.c ef_hypot.c ef_j0.c \ + ef_j1.c ef_jn.c erf_lgamma.c \ + ef_log.c ef_log10.c ef_pow.c ef_rem_pio2.c ef_remainder.c \ + ef_scalb.c ef_sinh.c ef_sqrt.c \ + wf_acos.c wf_acosh.c wf_asin.c wf_atan2.c \ + wf_atanh.c wf_cosh.c wf_exp.c wf_fmod.c \ + wf_gamma.c wrf_gamma.c wf_hypot.c wf_j0.c \ + wf_j1.c wf_jn.c wf_lgamma.c wrf_lgamma.c \ + wf_log.c wf_log10.c wf_pow.c wf_remainder.c \ + wf_scalb.c wf_sinh.c wf_sqrt.c \ + wf_cabs.c wf_drem.c \ + sf_asinh.c sf_atan.c sf_ceil.c \ + sf_cos.c sf_erf.c sf_fabs.c sf_floor.c \ + sf_frexp.c sf_isnan.c sf_ldexp.c \ + sf_signif.c sf_sin.c \ + sf_tan.c sf_tanh.c \ + sf_isinf.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = wacos.def wacosh.def wasin.def sasinh.def \ + satan.def watan2.def watanh.def wj0.def \ + wcosh.def serf.def wexp.def \ + sfabs.def sfloor.def wfmod.def sfrexp.def \ + wgamma.def whypot.def sldexp.def wlog.def \ + wlog10.def \ + wpow.def wremainder.def ssin.def wsinh.def \ + wsqrt.def stan.def stanh.def \ + sisnan.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(chobj) + cat $(srcdir)/math.tex >> $(TARGETDOC) + +CLEANFILES = $(chobj) *.ref + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +wacos.def: w_acos.c + $(CHEW) < $(srcdir)/w_acos.c >$@ 2>/dev/null + touch stmp-def +wacosh.def: w_acosh.c + $(CHEW) < $(srcdir)/w_acosh.c >$@ 2>/dev/null + touch stmp-def +wasin.def: w_asin.c + $(CHEW) < $(srcdir)/w_asin.c >$@ 2>/dev/null + touch stmp-def +sasinh.def: s_asinh.c + $(CHEW) < $(srcdir)/s_asinh.c >$@ 2>/dev/null + touch stmp-def +satan.def: s_atan.c + $(CHEW) < $(srcdir)/s_atan.c >$@ 2>/dev/null + touch stmp-def +watan2.def: w_atan2.c + $(CHEW) < $(srcdir)/w_atan2.c >$@ 2>/dev/null + touch stmp-def +watanh.def: w_atanh.c + $(CHEW) < $(srcdir)/w_atanh.c >$@ 2>/dev/null + touch stmp-def +wj0.def: w_j0.c + $(CHEW) < $(srcdir)/w_j0.c >$@ 2>/dev/null + touch stmp-def +scopysign.def: s_copysign.c + $(CHEW) < $(srcdir)/../common/s_copysign.c >$@ 2>/dev/null + touch stmp-def +wcosh.def: w_cosh.c + $(CHEW) < $(srcdir)/w_cosh.c >$@ 2>/dev/null + touch stmp-def +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_erf.c >$@ 2>/dev/null + touch stmp-def +wexp.def: w_exp.c + $(CHEW) < $(srcdir)/w_exp.c >$@ 2>/dev/null + touch stmp-def +sfabs.def: s_fabs.c + $(CHEW) < $(srcdir)/s_fabs.c >$@ 2>/dev/null + touch stmp-def +sfloor.def: s_floor.c + $(CHEW) < $(srcdir)/s_floor.c >$@ 2>/dev/null + touch stmp-def +wfmod.def: w_fmod.c + $(CHEW) < $(srcdir)/w_fmod.c >$@ 2>/dev/null + touch stmp-def +sfrexp.def: s_frexp.c + $(CHEW) < $(srcdir)/s_frexp.c >$@ 2>/dev/null + touch stmp-def +wgamma.def: w_gamma.c + $(CHEW) < $(srcdir)/w_gamma.c >$@ 2>/dev/null + touch stmp-def +whypot.def: w_hypot.c + $(CHEW) < $(srcdir)/w_hypot.c >$@ 2>/dev/null + touch stmp-def +sldexp.def: s_ldexp.c + $(CHEW) < $(srcdir)/s_ldexp.c >$@ 2>/dev/null + touch stmp-def +wlog.def: w_log.c + $(CHEW) < $(srcdir)/w_log.c >$@ 2>/dev/null + touch stmp-def +wlog10.def: w_log10.c + $(CHEW) < $(srcdir)/w_log10.c >$@ 2>/dev/null + touch stmp-def +wpow.def: w_pow.c + $(CHEW) < $(srcdir)/w_pow.c >$@ 2>/dev/null + touch stmp-def +wremainder.def: w_remainder.c + $(CHEW) < $(srcdir)/w_remainder.c >$@ 2>/dev/null + touch stmp-def +ssin.def: s_sin.c + $(CHEW) < $(srcdir)/s_sin.c >$@ 2>/dev/null + touch stmp-def +wsinh.def: w_sinh.c + $(CHEW) < $(srcdir)/w_sinh.c >$@ 2>/dev/null + touch stmp-def +wsqrt.def: w_sqrt.c + $(CHEW) < $(srcdir)/w_sqrt.c >$@ 2>/dev/null + touch stmp-def +stan.def: s_tan.c + $(CHEW) < $(srcdir)/s_tan.c >$@ 2>/dev/null + touch stmp-def +stanh.def: s_tanh.c + $(CHEW) < $(srcdir)/s_tanh.c >$@ 2>/dev/null + touch stmp-def +sisnan.def: s_isnan.c + $(CHEW) < $(srcdir)/s_isnan.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h $(srcdir)/../common/fdlibm.h diff --git a/newlib/libm/math/Makefile.in b/newlib/libm/math/Makefile.in new file mode 100644 index 000000000..b80f8fb55 --- /dev/null +++ b/newlib/libm/math/Makefile.in @@ -0,0 +1,431 @@ +# Makefile.in generated automatically by automake 1.3b from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I$(srcdir)/../common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a + +src = k_standard.c k_rem_pio2.c \ + k_cos.c k_sin.c k_tan.c \ + e_acos.c e_acosh.c e_asin.c e_atan2.c \ + e_atanh.c e_cosh.c e_exp.c e_fmod.c \ + er_gamma.c e_hypot.c e_j0.c \ + e_j1.c e_jn.c er_lgamma.c \ + e_log.c e_log10.c e_pow.c e_rem_pio2.c e_remainder.c \ + e_scalb.c e_sinh.c e_sqrt.c \ + w_acos.c w_acosh.c w_asin.c w_atan2.c \ + w_atanh.c w_cosh.c w_exp.c w_fmod.c \ + w_gamma.c wr_gamma.c w_hypot.c w_j0.c \ + w_j1.c w_jn.c w_lgamma.c wr_lgamma.c \ + w_log.c w_log10.c w_pow.c w_remainder.c \ + w_scalb.c w_sinh.c w_sqrt.c \ + w_cabs.c w_drem.c \ + s_asinh.c s_atan.c s_ceil.c \ + s_cos.c s_erf.c s_fabs.c s_floor.c \ + s_frexp.c s_isnan.c s_ldexp.c \ + s_signif.c s_sin.c \ + s_tan.c s_tanh.c \ + s_isinf.c s_infconst.c + +fsrc = kf_rem_pio2.c \ + kf_cos.c kf_sin.c kf_tan.c \ + ef_acos.c ef_acosh.c ef_asin.c ef_atan2.c \ + ef_atanh.c ef_cosh.c ef_exp.c ef_fmod.c \ + erf_gamma.c ef_hypot.c ef_j0.c \ + ef_j1.c ef_jn.c erf_lgamma.c \ + ef_log.c ef_log10.c ef_pow.c ef_rem_pio2.c ef_remainder.c \ + ef_scalb.c ef_sinh.c ef_sqrt.c \ + wf_acos.c wf_acosh.c wf_asin.c wf_atan2.c \ + wf_atanh.c wf_cosh.c wf_exp.c wf_fmod.c \ + wf_gamma.c wrf_gamma.c wf_hypot.c wf_j0.c \ + wf_j1.c wf_jn.c wf_lgamma.c wrf_lgamma.c \ + wf_log.c wf_log10.c wf_pow.c wf_remainder.c \ + wf_scalb.c wf_sinh.c wf_sqrt.c \ + wf_cabs.c wf_drem.c \ + sf_asinh.c sf_atan.c sf_ceil.c \ + sf_cos.c sf_erf.c sf_fabs.c sf_floor.c \ + sf_frexp.c sf_isnan.c sf_ldexp.c \ + sf_signif.c sf_sin.c \ + sf_tan.c sf_tanh.c \ + sf_isinf.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = wacos.def wacosh.def wasin.def sasinh.def \ + satan.def watan2.def watanh.def wj0.def \ + wcosh.def serf.def wexp.def \ + sfabs.def sfloor.def wfmod.def sfrexp.def \ + wgamma.def whypot.def sldexp.def wlog.def \ + wlog10.def \ + wpow.def wremainder.def ssin.def wsinh.def \ + wsqrt.def stan.def stanh.def \ + sisnan.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(chobj) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = k_standard.o k_rem_pio2.o k_cos.o k_sin.o k_tan.o \ +e_acos.o e_acosh.o e_asin.o e_atan2.o e_atanh.o e_cosh.o e_exp.o \ +e_fmod.o er_gamma.o e_hypot.o e_j0.o e_j1.o e_jn.o er_lgamma.o e_log.o \ +e_log10.o e_pow.o e_rem_pio2.o e_remainder.o e_scalb.o e_sinh.o \ +e_sqrt.o w_acos.o w_acosh.o w_asin.o w_atan2.o w_atanh.o w_cosh.o \ +w_exp.o w_fmod.o w_gamma.o wr_gamma.o w_hypot.o w_j0.o w_j1.o w_jn.o \ +w_lgamma.o wr_lgamma.o w_log.o w_log10.o w_pow.o w_remainder.o \ +w_scalb.o w_sinh.o w_sqrt.o w_cabs.o w_drem.o s_asinh.o s_atan.o \ +s_ceil.o s_cos.o s_erf.o s_fabs.o s_floor.o s_frexp.o s_isnan.o \ +s_ldexp.o s_signif.o s_sin.o s_tan.o s_tanh.o s_isinf.o s_infconst.o \ +kf_rem_pio2.o kf_cos.o kf_sin.o kf_tan.o ef_acos.o ef_acosh.o ef_asin.o \ +ef_atan2.o ef_atanh.o ef_cosh.o ef_exp.o ef_fmod.o erf_gamma.o \ +ef_hypot.o ef_j0.o ef_j1.o ef_jn.o erf_lgamma.o ef_log.o ef_log10.o \ +ef_pow.o ef_rem_pio2.o ef_remainder.o ef_scalb.o ef_sinh.o ef_sqrt.o \ +wf_acos.o wf_acosh.o wf_asin.o wf_atan2.o wf_atanh.o wf_cosh.o wf_exp.o \ +wf_fmod.o wf_gamma.o wrf_gamma.o wf_hypot.o wf_j0.o wf_j1.o wf_jn.o \ +wf_lgamma.o wrf_lgamma.o wf_log.o wf_log10.o wf_pow.o wf_remainder.o \ +wf_scalb.o wf_sinh.o wf_sqrt.o wf_cabs.o wf_drem.o sf_asinh.o sf_atan.o \ +sf_ceil.o sf_cos.o sf_erf.o sf_fabs.o sf_floor.o sf_frexp.o sf_isnan.o \ +sf_ldexp.o sf_signif.o sf_sin.o sf_tan.o sf_tanh.o sf_isinf.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus math/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = math + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(chobj) + cat $(srcdir)/math.tex >> $(TARGETDOC) + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +wacos.def: w_acos.c + $(CHEW) < $(srcdir)/w_acos.c >$@ 2>/dev/null + touch stmp-def +wacosh.def: w_acosh.c + $(CHEW) < $(srcdir)/w_acosh.c >$@ 2>/dev/null + touch stmp-def +wasin.def: w_asin.c + $(CHEW) < $(srcdir)/w_asin.c >$@ 2>/dev/null + touch stmp-def +sasinh.def: s_asinh.c + $(CHEW) < $(srcdir)/s_asinh.c >$@ 2>/dev/null + touch stmp-def +satan.def: s_atan.c + $(CHEW) < $(srcdir)/s_atan.c >$@ 2>/dev/null + touch stmp-def +watan2.def: w_atan2.c + $(CHEW) < $(srcdir)/w_atan2.c >$@ 2>/dev/null + touch stmp-def +watanh.def: w_atanh.c + $(CHEW) < $(srcdir)/w_atanh.c >$@ 2>/dev/null + touch stmp-def +wj0.def: w_j0.c + $(CHEW) < $(srcdir)/w_j0.c >$@ 2>/dev/null + touch stmp-def +scopysign.def: s_copysign.c + $(CHEW) < $(srcdir)/../common/s_copysign.c >$@ 2>/dev/null + touch stmp-def +wcosh.def: w_cosh.c + $(CHEW) < $(srcdir)/w_cosh.c >$@ 2>/dev/null + touch stmp-def +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_erf.c >$@ 2>/dev/null + touch stmp-def +wexp.def: w_exp.c + $(CHEW) < $(srcdir)/w_exp.c >$@ 2>/dev/null + touch stmp-def +sfabs.def: s_fabs.c + $(CHEW) < $(srcdir)/s_fabs.c >$@ 2>/dev/null + touch stmp-def +sfloor.def: s_floor.c + $(CHEW) < $(srcdir)/s_floor.c >$@ 2>/dev/null + touch stmp-def +wfmod.def: w_fmod.c + $(CHEW) < $(srcdir)/w_fmod.c >$@ 2>/dev/null + touch stmp-def +sfrexp.def: s_frexp.c + $(CHEW) < $(srcdir)/s_frexp.c >$@ 2>/dev/null + touch stmp-def +wgamma.def: w_gamma.c + $(CHEW) < $(srcdir)/w_gamma.c >$@ 2>/dev/null + touch stmp-def +whypot.def: w_hypot.c + $(CHEW) < $(srcdir)/w_hypot.c >$@ 2>/dev/null + touch stmp-def +sldexp.def: s_ldexp.c + $(CHEW) < $(srcdir)/s_ldexp.c >$@ 2>/dev/null + touch stmp-def +wlog.def: w_log.c + $(CHEW) < $(srcdir)/w_log.c >$@ 2>/dev/null + touch stmp-def +wlog10.def: w_log10.c + $(CHEW) < $(srcdir)/w_log10.c >$@ 2>/dev/null + touch stmp-def +wpow.def: w_pow.c + $(CHEW) < $(srcdir)/w_pow.c >$@ 2>/dev/null + touch stmp-def +wremainder.def: w_remainder.c + $(CHEW) < $(srcdir)/w_remainder.c >$@ 2>/dev/null + touch stmp-def +ssin.def: s_sin.c + $(CHEW) < $(srcdir)/s_sin.c >$@ 2>/dev/null + touch stmp-def +wsinh.def: w_sinh.c + $(CHEW) < $(srcdir)/w_sinh.c >$@ 2>/dev/null + touch stmp-def +wsqrt.def: w_sqrt.c + $(CHEW) < $(srcdir)/w_sqrt.c >$@ 2>/dev/null + touch stmp-def +stan.def: s_tan.c + $(CHEW) < $(srcdir)/s_tan.c >$@ 2>/dev/null + touch stmp-def +stanh.def: s_tanh.c + $(CHEW) < $(srcdir)/s_tanh.c >$@ 2>/dev/null + touch stmp-def +sisnan.def: s_isnan.c + $(CHEW) < $(srcdir)/s_isnan.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h $(srcdir)/../common/fdlibm.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libm/math/e_acos.c b/newlib/libm/math/e_acos.c new file mode 100644 index 000000000..319b1d56f --- /dev/null +++ b/newlib/libm/math/e_acos.c @@ -0,0 +1,111 @@ + +/* @(#)e_acos.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_acos(x) + * Method : + * acos(x) = pi/2 - asin(x) + * acos(-x) = pi/2 + asin(x) + * For |x|<=0.5 + * acos(x) = pi/2 - (x + x*x^2*R(x^2)) (see asin.c) + * For x>0.5 + * acos(x) = pi/2 - (pi/2 - 2asin(sqrt((1-x)/2))) + * = 2asin(sqrt((1-x)/2)) + * = 2s + 2s*z*R(z) ...z=(1-x)/2, s=sqrt(z) + * = 2f + (2c + 2s*z*R(z)) + * where f=hi part of s, and c = (z-f*f)/(s+f) is the correction term + * for f so that f+c ~ sqrt(z). + * For x<-0.5 + * acos(x) = pi - 2asin(sqrt((1-|x|)/2)) + * = pi - 0.5*(s+s*z*R(z)), where z=(1-|x|)/2,s=sqrt(z) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + * Function needed: sqrt + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one= 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_acos(double x) +#else + double __ieee754_acos(x) + double x; +#endif +{ + double z,p,q,r,w,s,c,df; + __int32_t hx,ix; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x3ff00000) { /* |x| >= 1 */ + __uint32_t lx; + GET_LOW_WORD(lx,x); + if(((ix-0x3ff00000)|lx)==0) { /* |x|==1 */ + if(hx>0) return 0.0; /* acos(1) = 0 */ + else return pi+2.0*pio2_lo; /* acos(-1)= pi */ + } + return (x-x)/(x-x); /* acos(|x|>1) is NaN */ + } + if(ix<0x3fe00000) { /* |x| < 0.5 */ + if(ix<=0x3c600000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/ + z = x*x; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + return pio2_hi - (x - (pio2_lo-x*r)); + } else if (hx<0) { /* x < -0.5 */ + z = (one+x)*0.5; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + s = __ieee754_sqrt(z); + r = p/q; + w = r*s-pio2_lo; + return pi - 2.0*(s+w); + } else { /* x > 0.5 */ + z = (one-x)*0.5; + s = __ieee754_sqrt(z); + df = s; + SET_LOW_WORD(df,0); + c = (z-df*df)/(s+df); + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + w = r*s+c; + return 2.0*(df+w); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_acosh.c b/newlib/libm/math/e_acosh.c new file mode 100644 index 000000000..27984eb23 --- /dev/null +++ b/newlib/libm/math/e_acosh.c @@ -0,0 +1,70 @@ + +/* @(#)e_acosh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_acosh(x) + * Method : + * Based on + * acosh(x) = log [ x + sqrt(x*x-1) ] + * we have + * acosh(x) := log(x)+ln2, if x is large; else + * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else + * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. + * + * Special cases: + * acosh(x) is NaN with signal if x<1. + * acosh(NaN) is NaN without signal. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.0, +ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ + +#ifdef __STDC__ + double __ieee754_acosh(double x) +#else + double __ieee754_acosh(x) + double x; +#endif +{ + double t; + __int32_t hx; + __uint32_t lx; + EXTRACT_WORDS(hx,lx,x); + if(hx<0x3ff00000) { /* x < 1 */ + return (x-x)/(x-x); + } else if(hx >=0x41b00000) { /* x > 2**28 */ + if(hx >=0x7ff00000) { /* x is inf of NaN */ + return x+x; + } else + return __ieee754_log(x)+ln2; /* acosh(huge)=log(2x) */ + } else if(((hx-0x3ff00000)|lx)==0) { + return 0.0; /* acosh(1) = 0 */ + } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ + t=x*x; + return __ieee754_log(2.0*x-one/(x+__ieee754_sqrt(t-one))); + } else { /* 1<x<2 */ + t = x-one; + return log1p(t+__ieee754_sqrt(2.0*t+t*t)); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_asin.c b/newlib/libm/math/e_asin.c new file mode 100644 index 000000000..559f2884a --- /dev/null +++ b/newlib/libm/math/e_asin.c @@ -0,0 +1,120 @@ + +/* @(#)e_asin.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_asin(x) + * Method : + * Since asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ... + * we approximate asin(x) on [0,0.5] by + * asin(x) = x + x*x^2*R(x^2) + * where + * R(x^2) is a rational approximation of (asin(x)-x)/x^3 + * and its remez error is bounded by + * |(asin(x)-x)/x^3 - R(x^2)| < 2^(-58.75) + * + * For x in [0.5,1] + * asin(x) = pi/2-2*asin(sqrt((1-x)/2)) + * Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2; + * then for x>0.98 + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio2_hi - (2*(s+s*z*R(z)) - pio2_lo) + * For x<=0.98, let pio4_hi = pio2_hi/2, then + * f = hi part of s; + * c = sqrt(z) - f = (z-f*f)/(s+f) ...f+c=sqrt(z) + * and + * asin(x) = pi/2 - 2*(s+s*z*R(z)) + * = pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo) + * = pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c)) + * + * Special cases: + * if x is NaN, return x itself; + * if |x|>1, return NaN with invalid signal. + * + */ + + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +huge = 1.000e+300, +pio2_hi = 1.57079632679489655800e+00, /* 0x3FF921FB, 0x54442D18 */ +pio2_lo = 6.12323399573676603587e-17, /* 0x3C91A626, 0x33145C07 */ +pio4_hi = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ + /* coefficient for R(x^2) */ +pS0 = 1.66666666666666657415e-01, /* 0x3FC55555, 0x55555555 */ +pS1 = -3.25565818622400915405e-01, /* 0xBFD4D612, 0x03EB6F7D */ +pS2 = 2.01212532134862925881e-01, /* 0x3FC9C155, 0x0E884455 */ +pS3 = -4.00555345006794114027e-02, /* 0xBFA48228, 0xB5688F3B */ +pS4 = 7.91534994289814532176e-04, /* 0x3F49EFE0, 0x7501B288 */ +pS5 = 3.47933107596021167570e-05, /* 0x3F023DE1, 0x0DFDF709 */ +qS1 = -2.40339491173441421878e+00, /* 0xC0033A27, 0x1C8A2D4B */ +qS2 = 2.02094576023350569471e+00, /* 0x40002AE5, 0x9C598AC8 */ +qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */ +qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */ + +#ifdef __STDC__ + double __ieee754_asin(double x) +#else + double __ieee754_asin(x) + double x; +#endif +{ + double t,w,p,q,c,r,s; + __int32_t hx,ix; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>= 0x3ff00000) { /* |x|>= 1 */ + __uint32_t lx; + GET_LOW_WORD(lx,x); + if(((ix-0x3ff00000)|lx)==0) + /* asin(1)=+-pi/2 with inexact */ + return x*pio2_hi+x*pio2_lo; + return (x-x)/(x-x); /* asin(|x|>1) is NaN */ + } else if (ix<0x3fe00000) { /* |x|<0.5 */ + if(ix<0x3e400000) { /* if |x| < 2**-27 */ + if(huge+x>one) return x;/* return x with inexact if x!=0*/ + } else + t = x*x; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; + } + /* 1> |x|>= 0.5 */ + w = one-fabs(x); + t = w*0.5; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + s = __ieee754_sqrt(t); + if(ix>=0x3FEF3333) { /* if |x| > 0.975 */ + w = p/q; + t = pio2_hi-(2.0*(s+s*w)-pio2_lo); + } else { + w = s; + SET_LOW_WORD(w,0); + c = (t-w*w)/(s+w); + r = p/q; + p = 2.0*s*r-(pio2_lo-2.0*c); + q = pio4_hi-2.0*w; + t = pio4_hi-(p-q); + } + if(hx>0) return t; else return -t; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_atan2.c b/newlib/libm/math/e_atan2.c new file mode 100644 index 000000000..268be64a9 --- /dev/null +++ b/newlib/libm/math/e_atan2.c @@ -0,0 +1,131 @@ + +/* @(#)e_atan2.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_atan2(y,x) + * Method : + * 1. Reduce y to positive by atan2(y,x)=-atan2(-y,x). + * 2. Reduce x to positive by (if x and y are unexceptional): + * ARG (x+iy) = arctan(y/x) ... if x > 0, + * ARG (x+iy) = pi - arctan[y/(-x)] ... if x < 0, + * + * Special cases: + * + * ATAN2((anything), NaN ) is NaN; + * ATAN2(NAN , (anything) ) is NaN; + * ATAN2(+-0, +(anything but NaN)) is +-0 ; + * ATAN2(+-0, -(anything but NaN)) is +-pi ; + * ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2; + * ATAN2(+-(anything but INF and NaN), +INF) is +-0 ; + * ATAN2(+-(anything but INF and NaN), -INF) is +-pi; + * ATAN2(+-INF,+INF ) is +-pi/4 ; + * ATAN2(+-INF,-INF ) is +-3pi/4; + * ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2; + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +tiny = 1.0e-300, +zero = 0.0, +pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */ +pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */ +pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */ +pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */ + +#ifdef __STDC__ + double __ieee754_atan2(double y, double x) +#else + double __ieee754_atan2(y,x) + double y,x; +#endif +{ + double z; + __int32_t k,m,hx,hy,ix,iy; + __uint32_t lx,ly; + + EXTRACT_WORDS(hx,lx,x); + ix = hx&0x7fffffff; + EXTRACT_WORDS(hy,ly,y); + iy = hy&0x7fffffff; + 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 */ + m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */ + + /* when y = 0 */ + if((iy|ly)==0) { + switch(m) { + case 0: + case 1: return y; /* atan(+-0,+anything)=+-0 */ + case 2: return pi+tiny;/* atan(+0,-anything) = pi */ + case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if((ix|lx)==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* when x is INF */ + if(ix==0x7ff00000) { + if(iy==0x7ff00000) { + switch(m) { + case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */ + case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */ + case 2: return 3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/ + case 3: return -3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/ + } + } else { + switch(m) { + case 0: return zero ; /* atan(+...,+INF) */ + case 1: return -zero ; /* atan(-...,+INF) */ + case 2: return pi+tiny ; /* atan(+...,-INF) */ + case 3: return -pi-tiny ; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if(iy==0x7ff00000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* compute y/x */ + k = (iy-ix)>>20; + if(k > 60) z=pi_o_2+0.5*pi_lo; /* |y/x| > 2**60 */ + else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */ + else z=atan(fabs(y/x)); /* safe to do y/x */ + switch (m) { + case 0: return z ; /* atan(+,+) */ + case 1: { + __uint32_t zh; + GET_HIGH_WORD(zh,z); + SET_HIGH_WORD(z,zh ^ 0x80000000); + } + return z ; /* atan(-,+) */ + case 2: return pi-(z-pi_lo);/* atan(+,-) */ + default: /* case 3 */ + return (z-pi_lo)-pi;/* atan(-,-) */ + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_atanh.c b/newlib/libm/math/e_atanh.c new file mode 100644 index 000000000..58ad325f9 --- /dev/null +++ b/newlib/libm/math/e_atanh.c @@ -0,0 +1,75 @@ + +/* @(#)e_atanh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_atanh(x) + * Method : + * 1.Reduced x to positive by atanh(-x) = -atanh(x) + * 2.For x>=0.5 + * 1 2x x + * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) + * 2 1 - x 1 - x + * + * For x<0.5 + * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) + * + * Special cases: + * atanh(x) is NaN if |x| > 1 with signal; + * atanh(NaN) is that NaN with no signal; + * atanh(+-1) is +-INF with signal. + * + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, huge = 1e300; +#else +static double one = 1.0, huge = 1e300; +#endif + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double __ieee754_atanh(double x) +#else + double __ieee754_atanh(x) + double x; +#endif +{ + double t; + __int32_t hx,ix; + __uint32_t lx; + EXTRACT_WORDS(hx,lx,x); + ix = hx&0x7fffffff; + if ((ix|((lx|(-lx))>>31))>0x3ff00000) /* |x|>1 */ + return (x-x)/(x-x); + if(ix==0x3ff00000) + return x/zero; + if(ix<0x3e300000&&(huge+x)>zero) return x; /* x<2**-28 */ + SET_HIGH_WORD(x,ix); + if(ix<0x3fe00000) { /* x < 0.5 */ + t = x+x; + t = 0.5*log1p(t+t*x/(one-x)); + } else + t = 0.5*log1p((x+x)/(one-x)); + if(hx>=0) return t; else return -t; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_cosh.c b/newlib/libm/math/e_cosh.c new file mode 100644 index 000000000..54ca1fb95 --- /dev/null +++ b/newlib/libm/math/e_cosh.c @@ -0,0 +1,93 @@ + +/* @(#)e_cosh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_cosh(x) + * Method : + * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2 + * 1. Replace x by |x| (cosh(x) = cosh(-x)). + * 2. + * [ exp(x) - 1 ]^2 + * 0 <= x <= ln2/2 : cosh(x) := 1 + ------------------- + * 2*exp(x) + * + * exp(x) + 1/exp(x) + * ln2/2 <= x <= 22 : cosh(x) := ------------------- + * 2 + * 22 <= x <= lnovft : cosh(x) := exp(x)/2 + * lnovft <= x <= ln2ovft: cosh(x) := exp(x/2)/2 * exp(x/2) + * ln2ovft < x : cosh(x) := huge*huge (overflow) + * + * Special cases: + * cosh(x) is |x| if x is +INF, -INF, or NaN. + * only cosh(0)=1 is exact for finite x. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, half=0.5, huge = 1.0e300; +#else +static double one = 1.0, half=0.5, huge = 1.0e300; +#endif + +#ifdef __STDC__ + double __ieee754_cosh(double x) +#else + double __ieee754_cosh(x) + double x; +#endif +{ + double t,w; + __int32_t ix; + __uint32_t lx; + + /* High word of |x|. */ + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7ff00000) return x*x; + + /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */ + if(ix<0x3fd62e43) { + t = expm1(fabs(x)); + w = one+t; + if (ix<0x3c800000) return w; /* cosh(tiny) = 1 */ + return one+(t*t)/(w+w); + } + + /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */ + if (ix < 0x40360000) { + t = __ieee754_exp(fabs(x)); + return half*t+half/t; + } + + /* |x| in [22, log(maxdouble)] return half*exp(|x|) */ + if (ix < 0x40862E42) return half*__ieee754_exp(fabs(x)); + + /* |x| in [log(maxdouble), overflowthresold] */ + GET_LOW_WORD(lx,x); + if (ix<0x408633CE || + (ix==0x408633ce)&&(lx<=(__uint32_t)0x8fb9f87d)) { + w = __ieee754_exp(half*fabs(x)); + t = half*w; + return t*w; + } + + /* |x| > overflowthresold, cosh(x) overflow */ + return huge*huge; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_exp.c b/newlib/libm/math/e_exp.c new file mode 100644 index 000000000..ce093c610 --- /dev/null +++ b/newlib/libm/math/e_exp.c @@ -0,0 +1,167 @@ + +/* @(#)e_exp.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_exp(x) + * Returns the exponential of x. + * + * Method + * 1. Argument reduction: + * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. + * Given x, find r and integer k such that + * + * x = k*ln2 + r, |r| <= 0.5*ln2. + * + * Here r will be represented as r = hi-lo for better + * accuracy. + * + * 2. Approximation of exp(r) by a special rational function on + * the interval [0,0.34658]: + * Write + * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... + * We use a special Reme algorithm on [0,0.34658] to generate + * a polynomial of degree 5 to approximate R. The maximum error + * of this polynomial approximation is bounded by 2**-59. In + * other words, + * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 + * (where z=r*r, and the values of P1 to P5 are listed below) + * and + * | 5 | -59 + * | 2.0+P1*z+...+P5*z - R(z) | <= 2 + * | | + * The computation of exp(r) thus becomes + * 2*r + * exp(r) = 1 + ------- + * R - r + * r*R1(r) + * = 1 + r + ----------- (for better accuracy) + * 2 - R1(r) + * where + * 2 4 10 + * R1(r) = r - (P1*r + P2*r + ... + P5*r ). + * + * 3. Scale back to obtain exp(x): + * From step 1, we have + * exp(x) = 2^k * exp(r) + * + * Special cases: + * exp(INF) is INF, exp(NaN) is NaN; + * exp(-INF) is 0, and + * for finite argument, only exp(0)=1 is exact. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Misc. info. + * For IEEE double + * if x > 7.09782712893383973096e+02 then exp(x) overflow + * if x < -7.45133219101941108420e+02 then exp(x) underflow + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.0, +halF[2] = {0.5,-0.5,}, +huge = 1.0e+300, +twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ +o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ +u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */ +ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ + -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */ +ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ + -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */ +invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */ + + +#ifdef __STDC__ + double __ieee754_exp(double x) /* default IEEE double exp */ +#else + double __ieee754_exp(x) /* default IEEE double exp */ + double x; +#endif +{ + double y,hi,lo,c,t; + __int32_t k,xsb; + __uint32_t hx; + + GET_HIGH_WORD(hx,x); + xsb = (hx>>31)&1; /* sign bit of x */ + hx &= 0x7fffffff; /* high word of |x| */ + + /* filter out non-finite argument */ + if(hx >= 0x40862E42) { /* if |x|>=709.78... */ + if(hx>=0x7ff00000) { + __uint32_t lx; + GET_LOW_WORD(lx,x); + if(((hx&0xfffff)|lx)!=0) + return x+x; /* NaN */ + else return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */ + } + if(x > o_threshold) return huge*huge; /* overflow */ + if(x < u_threshold) return twom1000*twom1000; /* underflow */ + } + + /* argument reduction */ + if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */ + if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ + hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb; + } else { + k = invln2*x+halF[xsb]; + t = k; + hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */ + lo = t*ln2LO[0]; + } + x = hi - lo; + } + else if(hx < 0x3e300000) { /* when |x|<2**-28 */ + if(huge+x>one) return one+x;/* trigger inexact */ + } + else k = 0; + + /* x is now in primary range */ + t = x*x; + c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + if(k==0) return one-((x*c)/(c-2.0)-x); + else y = one-((lo-(x*c)/(2.0-c))-hi); + if(k >= -1021) { + __uint32_t hy; + GET_HIGH_WORD(hy,y); + SET_HIGH_WORD(y,hy+(k<<20)); /* add k to y's exponent */ + return y; + } else { + __uint32_t hy; + GET_HIGH_WORD(hy,y); + SET_HIGH_WORD(y,hy+((k+1000)<<20)); /* add k to y's exponent */ + return y*twom1000; + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_fmod.c b/newlib/libm/math/e_fmod.c new file mode 100644 index 000000000..f9739eec2 --- /dev/null +++ b/newlib/libm/math/e_fmod.c @@ -0,0 +1,140 @@ + +/* @(#)e_fmod.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_fmod(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static double one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + double __ieee754_fmod(double x, double y) +#else + double __ieee754_fmod(x,y) + double x,y ; +#endif +{ + __int32_t n,hx,hy,hz,ix,iy,sx,i; + __uint32_t lx,ly,lz; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hy,ly,y); + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */ + ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<=hy) { + if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */ + if(lx==ly) + return Zero[(__uint32_t)sx>>31]; /* |x|=|y| return x*0*/ + } + + /* determine ix = ilogb(x) */ + if(hx<0x00100000) { /* subnormal x */ + if(hx==0) { + for (ix = -1043, i=lx; i>0; i<<=1) ix -=1; + } else { + for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1; + } + } else ix = (hx>>20)-1023; + + /* determine iy = ilogb(y) */ + if(hy<0x00100000) { /* subnormal y */ + if(hy==0) { + for (iy = -1043, i=ly; i>0; i<<=1) iy -=1; + } else { + for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1; + } + } else iy = (hy>>20)-1023; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -1022) + hx = 0x00100000|(0x000fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -1022-ix; + if(n<=31) { + hx = (hx<<n)|(lx>>(32-n)); + lx <<= n; + } else { + hx = lx<<(n-32); + lx = 0; + } + } + if(iy >= -1022) + hy = 0x00100000|(0x000fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -1022-iy; + if(n<=31) { + hy = (hy<<n)|(ly>>(32-n)); + ly <<= n; + } else { + hy = ly<<(n-32); + ly = 0; + } + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz<0){hx = hx+hx+(lx>>31); lx = lx+lx;} + else { + if((hz|lz)==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + hx = hz+hz+(lz>>31); lx = lz+lz; + } + } + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz>=0) {hx=hz;lx=lz;} + + /* convert back to floating value and restore the sign */ + if((hx|lx)==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + while(hx<0x00100000) { /* normalize x */ + hx = hx+hx+(lx>>31); lx = lx+lx; + iy -= 1; + } + if(iy>= -1022) { /* normalize output */ + hx = ((hx-0x00100000)|((iy+1023)<<20)); + INSERT_WORDS(x,hx|sx,lx); + } else { /* subnormal output */ + n = -1022 - iy; + if(n<=20) { + lx = (lx>>n)|((__uint32_t)hx<<(32-n)); + hx >>= n; + } else if (n<=31) { + lx = (hx<<(32-n))|(lx>>n); hx = sx; + } else { + lx = hx>>(n-32); hx = sx; + } + INSERT_WORDS(x,hx|sx,lx); + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_hypot.c b/newlib/libm/math/e_hypot.c new file mode 100644 index 000000000..03f7f51e5 --- /dev/null +++ b/newlib/libm/math/e_hypot.c @@ -0,0 +1,128 @@ + +/* @(#)e_hypot.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_hypot(x,y) + * + * Method : + * If (assume round-to-nearest) z=x*x+y*y + * has error less than sqrt(2)/2 ulp, than + * sqrt(z) has error less than 1 ulp (exercise). + * + * So, compute sqrt(x*x+y*y) with some care as + * follows to get the error below 1 ulp: + * + * Assume x>y>0; + * (if possible, set rounding to round-to-nearest) + * 1. if x > 2y use + * x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y + * where x1 = x with lower 32 bits cleared, x2 = x-x1; else + * 2. if x <= 2y use + * t1*y1+((x-y)*(x-y)+(t1*y2+t2*y)) + * where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1, + * y1= y with lower 32 bits chopped, y2 = y-y1. + * + * NOTE: scaling may be necessary if some argument is too + * large or too tiny + * + * Special cases: + * hypot(x,y) is INF if x or y is +INF or -INF; else + * hypot(x,y) is NAN if x or y is NAN. + * + * Accuracy: + * hypot(x,y) returns sqrt(x^2+y^2) with error less + * than 1 ulps (units in the last place) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double __ieee754_hypot(double x, double y) +#else + double __ieee754_hypot(x,y) + double x, y; +#endif +{ + double a=x,b=y,t1,t2,y1,y2,w; + __int32_t j,k,ha,hb; + + GET_HIGH_WORD(ha,x); + ha &= 0x7fffffff; + GET_HIGH_WORD(hb,y); + hb &= 0x7fffffff; + if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;} + SET_HIGH_WORD(a,ha); /* a <- |a| */ + SET_HIGH_WORD(b,hb); /* b <- |b| */ + if((ha-hb)>0x3c00000) {return a+b;} /* x/y > 2**60 */ + k=0; + if(ha > 0x5f300000) { /* a>2**500 */ + if(ha >= 0x7ff00000) { /* Inf or NaN */ + __uint32_t low; + w = a+b; /* for sNaN */ + GET_LOW_WORD(low,a); + if(((ha&0xfffff)|low)==0) w = a; + GET_LOW_WORD(low,b); + if(((hb^0x7ff00000)|low)==0) w = b; + return w; + } + /* scale a and b by 2**-600 */ + ha -= 0x25800000; hb -= 0x25800000; k += 600; + SET_HIGH_WORD(a,ha); + SET_HIGH_WORD(b,hb); + } + if(hb < 0x20b00000) { /* b < 2**-500 */ + if(hb <= 0x000fffff) { /* subnormal b or 0 */ + __uint32_t low; + GET_LOW_WORD(low,b); + if((hb|low)==0) return a; + t1=0; + SET_HIGH_WORD(t1,0x7fd00000); /* t1=2^1022 */ + b *= t1; + a *= t1; + k -= 1022; + } else { /* scale a and b by 2^600 */ + ha += 0x25800000; /* a *= 2^600 */ + hb += 0x25800000; /* b *= 2^600 */ + k -= 600; + SET_HIGH_WORD(a,ha); + SET_HIGH_WORD(b,hb); + } + } + /* medium size a and b */ + w = a-b; + if (w>b) { + t1 = 0; + SET_HIGH_WORD(t1,ha); + t2 = a-t1; + w = __ieee754_sqrt(t1*t1-(b*(-b)-t2*(a+t1))); + } else { + a = a+a; + y1 = 0; + SET_HIGH_WORD(y1,hb); + y2 = b - y1; + t1 = 0; + SET_HIGH_WORD(t1,ha+0x00100000); + t2 = a - t1; + w = __ieee754_sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b))); + } + if(k!=0) { + __uint32_t high; + t1 = 1.0; + GET_HIGH_WORD(high,t1); + SET_HIGH_WORD(t1,high+(k<<20)); + return t1*w; + } else return w; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_j0.c b/newlib/libm/math/e_j0.c new file mode 100644 index 000000000..43ea38982 --- /dev/null +++ b/newlib/libm/math/e_j0.c @@ -0,0 +1,487 @@ + +/* @(#)e_j0.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_j0(x), __ieee754_y0(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j0(x): + * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ... + * 2. Reduce x to |x| since j0(x)=j0(-x), and + * for x in (0,2) + * j0(x) = 1-z/4+ z^2*R0/S0, where z = x*x; + * (precision: |j0-1+z/4-z^2R0/S0 |<2**-63.67 ) + * for x in (2,inf) + * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * as follow: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (cos(x) + sin(x)) + * sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j0(nan)= nan + * j0(0) = 1 + * j0(inf) = 0 + * + * Method -- y0(x): + * 1. For x<2. + * Since + * y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...) + * therefore y0(x)-2/pi*j0(x)*ln(x) is an even function. + * We use the following function to approximate y0, + * y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2 + * where + * U(z) = u00 + u01*z + ... + u06*z^6 + * V(z) = 1 + v01*z + ... + v04*z^4 + * with absolute approximation error bounded by 2**-72. + * Note: For tiny x, U/V = u0 and j0(x)~1, hence + * y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27) + * 2. For x>=2. + * y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * by the method mentioned above. + * 3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static double pzero(double), qzero(double); +#else +static double pzero(), qzero(); +#endif + +#ifdef __STDC__ +static const double +#else +static double +#endif +huge = 1e300, +one = 1.0, +invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ +tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ + /* R0/S0 on [0, 2.00] */ +R02 = 1.56249999999999947958e-02, /* 0x3F8FFFFF, 0xFFFFFFFD */ +R03 = -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */ +R04 = 1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */ +R05 = -4.61832688532103189199e-09, /* 0xBE33D5E7, 0x73D63FCE */ +S01 = 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */ +S02 = 1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */ +S03 = 5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */ +S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double __ieee754_j0(double x) +#else + double __ieee754_j0(x) + double x; +#endif +{ + double z, s,c,ss,cc,r,u,v; + __int32_t hx,ix; + + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return one/(x*x); + x = fabs(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(x); + c = cos(x); + ss = s-c; + cc = s+c; + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = -cos(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrt(x); + else { + u = pzero(x); v = qzero(x); + z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrt(x); + } + return z; + } + if(ix<0x3f200000) { /* |x| < 2**-13 */ + if(huge+x>one) { /* raise inexact if x != 0 */ + if(ix<0x3e400000) return one; /* |x|<2**-27 */ + else return one - 0.25*x*x; + } + } + z = x*x; + r = z*(R02+z*(R03+z*(R04+z*R05))); + s = one+z*(S01+z*(S02+z*(S03+z*S04))); + if(ix < 0x3FF00000) { /* |x| < 1.00 */ + return one + z*(-0.25+(r/s)); + } else { + u = 0.5*x; + return((one+u)*(one-u)+z*(r/s)); + } +} + +#ifdef __STDC__ +static const double +#else +static double +#endif +u00 = -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */ +u01 = 1.76666452509181115538e-01, /* 0x3FC69D01, 0x9DE9E3FC */ +u02 = -1.38185671945596898896e-02, /* 0xBF8C4CE8, 0xB16CFA97 */ +u03 = 3.47453432093683650238e-04, /* 0x3F36C54D, 0x20B29B6B */ +u04 = -3.81407053724364161125e-06, /* 0xBECFFEA7, 0x73D25CAD */ +u05 = 1.95590137035022920206e-08, /* 0x3E550057, 0x3B4EABD4 */ +u06 = -3.98205194132103398453e-11, /* 0xBDC5E43D, 0x693FB3C8 */ +v01 = 1.27304834834123699328e-02, /* 0x3F8A1270, 0x91C9C71A */ +v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */ +v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ +v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ + +#ifdef __STDC__ + double __ieee754_y0(double x) +#else + double __ieee754_y0(x) + double x; +#endif +{ + double z, s,c,ss,cc,u,v; + __int32_t hx,ix,lx; + + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ + if(ix>=0x7ff00000) return one/(x+x*x); + if((ix|lx)==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0)) + * where x0 = x-pi/4 + * Better formula: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) + cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + s = sin(x); + c = cos(x); + ss = s-c; + cc = s+c; + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = -cos(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrt(x); + else { + u = pzero(x); v = qzero(x); + z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrt(x); + } + return z; + } + if(ix<=0x3e400000) { /* x < 2**-27 */ + return(u00 + tpi*__ieee754_log(x)); + } + z = x*x; + u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); + v = one+z*(v01+z*(v02+z*(v03+z*v04))); + return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x))); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +#ifdef __STDC__ +static const double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -7.03124999999900357484e-02, /* 0xBFB1FFFF, 0xFFFFFD32 */ + -8.08167041275349795626e+00, /* 0xC02029D0, 0xB44FA779 */ + -2.57063105679704847262e+02, /* 0xC0701102, 0x7B19E863 */ + -2.48521641009428822144e+03, /* 0xC0A36A6E, 0xCD4DCAFC */ + -5.25304380490729545272e+03, /* 0xC0B4850B, 0x36CC643D */ +}; +#ifdef __STDC__ +static const double pS8[5] = { +#else +static double pS8[5] = { +#endif + 1.16534364619668181717e+02, /* 0x405D2233, 0x07A96751 */ + 3.83374475364121826715e+03, /* 0x40ADF37D, 0x50596938 */ + 4.05978572648472545552e+04, /* 0x40E3D2BB, 0x6EB6B05F */ + 1.16752972564375915681e+05, /* 0x40FC810F, 0x8F9FA9BD */ + 4.76277284146730962675e+04, /* 0x40E74177, 0x4F2C49DC */ +}; + +#ifdef __STDC__ +static const double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -1.14125464691894502584e-11, /* 0xBDA918B1, 0x47E495CC */ + -7.03124940873599280078e-02, /* 0xBFB1FFFF, 0xE69AFBC6 */ + -4.15961064470587782438e+00, /* 0xC010A370, 0xF90C6BBF */ + -6.76747652265167261021e+01, /* 0xC050EB2F, 0x5A7D1783 */ + -3.31231299649172967747e+02, /* 0xC074B3B3, 0x6742CC63 */ + -3.46433388365604912451e+02, /* 0xC075A6EF, 0x28A38BD7 */ +}; +#ifdef __STDC__ +static const double pS5[5] = { +#else +static double pS5[5] = { +#endif + 6.07539382692300335975e+01, /* 0x404E6081, 0x0C98C5DE */ + 1.05125230595704579173e+03, /* 0x40906D02, 0x5C7E2864 */ + 5.97897094333855784498e+03, /* 0x40B75AF8, 0x8FBE1D60 */ + 9.62544514357774460223e+03, /* 0x40C2CCB8, 0xFA76FA38 */ + 2.40605815922939109441e+03, /* 0x40A2CC1D, 0xC70BE864 */ +}; + +#ifdef __STDC__ +static const double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -2.54704601771951915620e-09, /* 0xBE25E103, 0x6FE1AA86 */ + -7.03119616381481654654e-02, /* 0xBFB1FFF6, 0xF7C0E24B */ + -2.40903221549529611423e+00, /* 0xC00345B2, 0xAEA48074 */ + -2.19659774734883086467e+01, /* 0xC035F74A, 0x4CB94E14 */ + -5.80791704701737572236e+01, /* 0xC04D0A22, 0x420A1A45 */ + -3.14479470594888503854e+01, /* 0xC03F72AC, 0xA892D80F */ +}; +#ifdef __STDC__ +static const double pS3[5] = { +#else +static double pS3[5] = { +#endif + 3.58560338055209726349e+01, /* 0x4041ED92, 0x84077DD3 */ + 3.61513983050303863820e+02, /* 0x40769839, 0x464A7C0E */ + 1.19360783792111533330e+03, /* 0x4092A66E, 0x6D1061D6 */ + 1.12799679856907414432e+03, /* 0x40919FFC, 0xB8C39B7E */ + 1.73580930813335754692e+02, /* 0x4065B296, 0xFC379081 */ +}; + +#ifdef __STDC__ +static const double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -8.87534333032526411254e-08, /* 0xBE77D316, 0xE927026D */ + -7.03030995483624743247e-02, /* 0xBFB1FF62, 0x495E1E42 */ + -1.45073846780952986357e+00, /* 0xBFF73639, 0x8A24A843 */ + -7.63569613823527770791e+00, /* 0xC01E8AF3, 0xEDAFA7F3 */ + -1.11931668860356747786e+01, /* 0xC02662E6, 0xC5246303 */ + -3.23364579351335335033e+00, /* 0xC009DE81, 0xAF8FE70F */ +}; +#ifdef __STDC__ +static const double pS2[5] = { +#else +static double pS2[5] = { +#endif + 2.22202997532088808441e+01, /* 0x40363865, 0x908B5959 */ + 1.36206794218215208048e+02, /* 0x4061069E, 0x0EE8878F */ + 2.70470278658083486789e+02, /* 0x4070E786, 0x42EA079B */ + 1.53875394208320329881e+02, /* 0x40633C03, 0x3AB6FAFF */ + 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */ +}; + +#ifdef __STDC__ + static double pzero(double x) +#else + static double pzero(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double z,r,s; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = pR8; q= pS8;} + else if(ix>=0x40122E8B){p = pR5; q= pS5;} + else if(ix>=0x4006DB6D){p = pR3; q= pS3;} + else if(ix>=0x40000000){p = pR2; q= pS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +#ifdef __STDC__ +static const double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 7.32421874999935051953e-02, /* 0x3FB2BFFF, 0xFFFFFE2C */ + 1.17682064682252693899e+01, /* 0x40278952, 0x5BB334D6 */ + 5.57673380256401856059e+02, /* 0x40816D63, 0x15301825 */ + 8.85919720756468632317e+03, /* 0x40C14D99, 0x3E18F46D */ + 3.70146267776887834771e+04, /* 0x40E212D4, 0x0E901566 */ +}; +#ifdef __STDC__ +static const double qS8[6] = { +#else +static double qS8[6] = { +#endif + 1.63776026895689824414e+02, /* 0x406478D5, 0x365B39BC */ + 8.09834494656449805916e+03, /* 0x40BFA258, 0x4E6B0563 */ + 1.42538291419120476348e+05, /* 0x41016652, 0x54D38C3F */ + 8.03309257119514397345e+05, /* 0x412883DA, 0x83A52B43 */ + 8.40501579819060512818e+05, /* 0x4129A66B, 0x28DE0B3D */ + -3.43899293537866615225e+05, /* 0xC114FD6D, 0x2C9530C5 */ +}; + +#ifdef __STDC__ +static const double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.84085963594515531381e-11, /* 0x3DB43D8F, 0x29CC8CD9 */ + 7.32421766612684765896e-02, /* 0x3FB2BFFF, 0xD172B04C */ + 5.83563508962056953777e+00, /* 0x401757B0, 0xB9953DD3 */ + 1.35111577286449829671e+02, /* 0x4060E392, 0x0A8788E9 */ + 1.02724376596164097464e+03, /* 0x40900CF9, 0x9DC8C481 */ + 1.98997785864605384631e+03, /* 0x409F17E9, 0x53C6E3A6 */ +}; +#ifdef __STDC__ +static const double qS5[6] = { +#else +static double qS5[6] = { +#endif + 8.27766102236537761883e+01, /* 0x4054B1B3, 0xFB5E1543 */ + 2.07781416421392987104e+03, /* 0x40A03BA0, 0xDA21C0CE */ + 1.88472887785718085070e+04, /* 0x40D267D2, 0x7B591E6D */ + 5.67511122894947329769e+04, /* 0x40EBB5E3, 0x97E02372 */ + 3.59767538425114471465e+04, /* 0x40E19118, 0x1F7A54A0 */ + -5.35434275601944773371e+03, /* 0xC0B4EA57, 0xBEDBC609 */ +}; + +#ifdef __STDC__ +static const double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 4.37741014089738620906e-09, /* 0x3E32CD03, 0x6ADECB82 */ + 7.32411180042911447163e-02, /* 0x3FB2BFEE, 0x0E8D0842 */ + 3.34423137516170720929e+00, /* 0x400AC0FC, 0x61149CF5 */ + 4.26218440745412650017e+01, /* 0x40454F98, 0x962DAEDD */ + 1.70808091340565596283e+02, /* 0x406559DB, 0xE25EFD1F */ + 1.66733948696651168575e+02, /* 0x4064D77C, 0x81FA21E0 */ +}; +#ifdef __STDC__ +static const double qS3[6] = { +#else +static double qS3[6] = { +#endif + 4.87588729724587182091e+01, /* 0x40486122, 0xBFE343A6 */ + 7.09689221056606015736e+02, /* 0x40862D83, 0x86544EB3 */ + 3.70414822620111362994e+03, /* 0x40ACF04B, 0xE44DFC63 */ + 6.46042516752568917582e+03, /* 0x40B93C6C, 0xD7C76A28 */ + 2.51633368920368957333e+03, /* 0x40A3A8AA, 0xD94FB1C0 */ + -1.49247451836156386662e+02, /* 0xC062A7EB, 0x201CF40F */ +}; + +#ifdef __STDC__ +static const double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.50444444886983272379e-07, /* 0x3E84313B, 0x54F76BDB */ + 7.32234265963079278272e-02, /* 0x3FB2BEC5, 0x3E883E34 */ + 1.99819174093815998816e+00, /* 0x3FFFF897, 0xE727779C */ + 1.44956029347885735348e+01, /* 0x402CFDBF, 0xAAF96FE5 */ + 3.16662317504781540833e+01, /* 0x403FAA8E, 0x29FBDC4A */ + 1.62527075710929267416e+01, /* 0x403040B1, 0x71814BB4 */ +}; +#ifdef __STDC__ +static const double qS2[6] = { +#else +static double qS2[6] = { +#endif + 3.03655848355219184498e+01, /* 0x403E5D96, 0xF7C07AED */ + 2.69348118608049844624e+02, /* 0x4070D591, 0xE4D14B40 */ + 8.44783757595320139444e+02, /* 0x408A6645, 0x22B3BF22 */ + 8.82935845112488550512e+02, /* 0x408B977C, 0x9C5CC214 */ + 2.12666388511798828631e+02, /* 0x406A9553, 0x0E001365 */ + -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */ +}; + +#ifdef __STDC__ + static double qzero(double x) +#else + static double qzero(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double s,r,z; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qR8; q= qS8;} + else if(ix>=0x40122E8B){p = qR5; q= qS5;} + else if(ix>=0x4006DB6D){p = qR3; q= qS3;} + else if(ix>=0x40000000){p = qR2; q= qS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (-.125 + r/s)/x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_j1.c b/newlib/libm/math/e_j1.c new file mode 100644 index 000000000..feaa732de --- /dev/null +++ b/newlib/libm/math/e_j1.c @@ -0,0 +1,486 @@ + +/* @(#)e_j1.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_j1(x), __ieee754_y1(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j1(x): + * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ... + * 2. Reduce x to |x| since j1(x)=-j1(-x), and + * for x in (0,2) + * j1(x) = x/2 + x*z*R0/S0, where z = x*x; + * (precision: |j1/x - 1/2 - R0/S0 |<2**-61.51 ) + * for x in (2,inf) + * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1)) + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * as follow: + * cos(x1) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x1) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (sin(x) + cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j1(nan)= nan + * j1(0) = 0 + * j1(inf) = 0 + * + * Method -- y1(x): + * 1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN + * 2. For x<2. + * Since + * y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...) + * therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function. + * We use the following function to approximate y1, + * y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2 + * where for x in [0,2] (abs err less than 2**-65.89) + * U(z) = U0[0] + U0[1]*z + ... + U0[4]*z^4 + * V(z) = 1 + v0[0]*z + ... + v0[4]*z^5 + * Note: For tiny x, 1/x dominate y1 and hence + * y1(tiny) = -2/pi/tiny, (choose tiny<2**-54) + * 3. For x>=2. + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * by method mentioned above. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static double pone(double), qone(double); +#else +static double pone(), qone(); +#endif + +#ifdef __STDC__ +static const double +#else +static double +#endif +huge = 1e300, +one = 1.0, +invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ +tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ + /* R0/S0 on [0,2] */ +r00 = -6.25000000000000000000e-02, /* 0xBFB00000, 0x00000000 */ +r01 = 1.40705666955189706048e-03, /* 0x3F570D9F, 0x98472C61 */ +r02 = -1.59955631084035597520e-05, /* 0xBEF0C5C6, 0xBA169668 */ +r03 = 4.96727999609584448412e-08, /* 0x3E6AAAFA, 0x46CA0BD9 */ +s01 = 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */ +s02 = 1.85946785588630915560e-04, /* 0x3F285F56, 0xB9CDF664 */ +s03 = 1.17718464042623683263e-06, /* 0x3EB3BFF8, 0x333F8498 */ +s04 = 5.04636257076217042715e-09, /* 0x3E35AC88, 0xC97DFF2C */ +s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double __ieee754_j1(double x) +#else + double __ieee754_j1(x) + double x; +#endif +{ + double z, s,c,ss,cc,r,u,v,y; + __int32_t hx,ix; + + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return one/x; + y = fabs(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(y); + c = cos(y); + ss = -s-c; + cc = s-c; + if(ix<0x7fe00000) { /* make sure y+y not overflow */ + z = cos(y+y); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* + * j1(x) = 1/__ieee754_sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / __ieee754_sqrt(x) + * y1(x) = 1/__ieee754_sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / __ieee754_sqrt(x) + */ + if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrt(y); + else { + u = pone(y); v = qone(y); + z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrt(y); + } + if(hx<0) return -z; + else return z; + } + if(ix<0x3e400000) { /* |x|<2**-27 */ + if(huge+x>one) return 0.5*x;/* inexact if x!=0 necessary */ + } + z = x*x; + r = z*(r00+z*(r01+z*(r02+z*r03))); + s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05)))); + r *= x; + return(x*0.5+r/s); +} + +#ifdef __STDC__ +static const double U0[5] = { +#else +static double U0[5] = { +#endif + -1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */ + 5.04438716639811282616e-02, /* 0x3FA9D3C7, 0x76292CD1 */ + -1.91256895875763547298e-03, /* 0xBF5F55E5, 0x4844F50F */ + 2.35252600561610495928e-05, /* 0x3EF8AB03, 0x8FA6B88E */ + -9.19099158039878874504e-08, /* 0xBE78AC00, 0x569105B8 */ +}; +#ifdef __STDC__ +static const double V0[5] = { +#else +static double V0[5] = { +#endif + 1.99167318236649903973e-02, /* 0x3F94650D, 0x3F4DA9F0 */ + 2.02552581025135171496e-04, /* 0x3F2A8C89, 0x6C257764 */ + 1.35608801097516229404e-06, /* 0x3EB6C05A, 0x894E8CA6 */ + 6.22741452364621501295e-09, /* 0x3E3ABF1D, 0x5BA69A86 */ + 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */ +}; + +#ifdef __STDC__ + double __ieee754_y1(double x) +#else + double __ieee754_y1(x) + double x; +#endif +{ + double z, s,c,ss,cc,u,v; + __int32_t hx,ix,lx; + + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ + if(ix>=0x7ff00000) return one/(x+x*x); + if((ix|lx)==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(x); + c = cos(x); + ss = -s-c; + cc = s-c; + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = cos(x+x); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0)) + * where x0 = x-3pi/4 + * Better formula: + * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (cos(x) + sin(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrt(x); + else { + u = pone(x); v = qone(x); + z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrt(x); + } + return z; + } + if(ix<=0x3c900000) { /* x < 2**-54 */ + return(-tpi/x); + } + z = x*x; + u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); + v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); + return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x)); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +#ifdef __STDC__ +static const double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 1.17187499999988647970e-01, /* 0x3FBDFFFF, 0xFFFFFCCE */ + 1.32394806593073575129e+01, /* 0x402A7A9D, 0x357F7FCE */ + 4.12051854307378562225e+02, /* 0x4079C0D4, 0x652EA590 */ + 3.87474538913960532227e+03, /* 0x40AE457D, 0xA3A532CC */ + 7.91447954031891731574e+03, /* 0x40BEEA7A, 0xC32782DD */ +}; +#ifdef __STDC__ +static const double ps8[5] = { +#else +static double ps8[5] = { +#endif + 1.14207370375678408436e+02, /* 0x405C8D45, 0x8E656CAC */ + 3.65093083420853463394e+03, /* 0x40AC85DC, 0x964D274F */ + 3.69562060269033463555e+04, /* 0x40E20B86, 0x97C5BB7F */ + 9.76027935934950801311e+04, /* 0x40F7D42C, 0xB28F17BB */ + 3.08042720627888811578e+04, /* 0x40DE1511, 0x697A0B2D */ +}; + +#ifdef __STDC__ +static const double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.31990519556243522749e-11, /* 0x3DAD0667, 0xDAE1CA7D */ + 1.17187493190614097638e-01, /* 0x3FBDFFFF, 0xE2C10043 */ + 6.80275127868432871736e+00, /* 0x401B3604, 0x6E6315E3 */ + 1.08308182990189109773e+02, /* 0x405B13B9, 0x452602ED */ + 5.17636139533199752805e+02, /* 0x40802D16, 0xD052D649 */ + 5.28715201363337541807e+02, /* 0x408085B8, 0xBB7E0CB7 */ +}; +#ifdef __STDC__ +static const double ps5[5] = { +#else +static double ps5[5] = { +#endif + 5.92805987221131331921e+01, /* 0x404DA3EA, 0xA8AF633D */ + 9.91401418733614377743e+02, /* 0x408EFB36, 0x1B066701 */ + 5.35326695291487976647e+03, /* 0x40B4E944, 0x5706B6FB */ + 7.84469031749551231769e+03, /* 0x40BEA4B0, 0xB8A5BB15 */ + 1.50404688810361062679e+03, /* 0x40978030, 0x036F5E51 */ +}; + +#ifdef __STDC__ +static const double pr3[6] = { +#else +static double pr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 3.02503916137373618024e-09, /* 0x3E29FC21, 0xA7AD9EDD */ + 1.17186865567253592491e-01, /* 0x3FBDFFF5, 0x5B21D17B */ + 3.93297750033315640650e+00, /* 0x400F76BC, 0xE85EAD8A */ + 3.51194035591636932736e+01, /* 0x40418F48, 0x9DA6D129 */ + 9.10550110750781271918e+01, /* 0x4056C385, 0x4D2C1837 */ + 4.85590685197364919645e+01, /* 0x4048478F, 0x8EA83EE5 */ +}; +#ifdef __STDC__ +static const double ps3[5] = { +#else +static double ps3[5] = { +#endif + 3.47913095001251519989e+01, /* 0x40416549, 0xA134069C */ + 3.36762458747825746741e+02, /* 0x40750C33, 0x07F1A75F */ + 1.04687139975775130551e+03, /* 0x40905B7C, 0x5037D523 */ + 8.90811346398256432622e+02, /* 0x408BD67D, 0xA32E31E9 */ + 1.03787932439639277504e+02, /* 0x4059F26D, 0x7C2EED53 */ +}; + +#ifdef __STDC__ +static const double pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.07710830106873743082e-07, /* 0x3E7CE9D4, 0xF65544F4 */ + 1.17176219462683348094e-01, /* 0x3FBDFF42, 0xBE760D83 */ + 2.36851496667608785174e+00, /* 0x4002F2B7, 0xF98FAEC0 */ + 1.22426109148261232917e+01, /* 0x40287C37, 0x7F71A964 */ + 1.76939711271687727390e+01, /* 0x4031B1A8, 0x177F8EE2 */ + 5.07352312588818499250e+00, /* 0x40144B49, 0xA574C1FE */ +}; +#ifdef __STDC__ +static const double ps2[5] = { +#else +static double ps2[5] = { +#endif + 2.14364859363821409488e+01, /* 0x40356FBD, 0x8AD5ECDC */ + 1.25290227168402751090e+02, /* 0x405F5293, 0x14F92CD5 */ + 2.32276469057162813669e+02, /* 0x406D08D8, 0xD5A2DBD9 */ + 1.17679373287147100768e+02, /* 0x405D6B7A, 0xDA1884A9 */ + 8.36463893371618283368e+00, /* 0x4020BAB1, 0xF44E5192 */ +}; + +#ifdef __STDC__ + static double pone(double x) +#else + static double pone(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double z,r,s; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = pr8; q= ps8;} + else if(ix>=0x40122E8B){p = pr5; q= ps5;} + else if(ix>=0x4006DB6D){p = pr3; q= ps3;} + else if(ix>=0x40000000){p = pr2; q= ps2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +#ifdef __STDC__ +static const double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -1.02539062499992714161e-01, /* 0xBFBA3FFF, 0xFFFFFDF3 */ + -1.62717534544589987888e+01, /* 0xC0304591, 0xA26779F7 */ + -7.59601722513950107896e+02, /* 0xC087BCD0, 0x53E4B576 */ + -1.18498066702429587167e+04, /* 0xC0C724E7, 0x40F87415 */ + -4.84385124285750353010e+04, /* 0xC0E7A6D0, 0x65D09C6A */ +}; +#ifdef __STDC__ +static const double qs8[6] = { +#else +static double qs8[6] = { +#endif + 1.61395369700722909556e+02, /* 0x40642CA6, 0xDE5BCDE5 */ + 7.82538599923348465381e+03, /* 0x40BE9162, 0xD0D88419 */ + 1.33875336287249578163e+05, /* 0x4100579A, 0xB0B75E98 */ + 7.19657723683240939863e+05, /* 0x4125F653, 0x72869C19 */ + 6.66601232617776375264e+05, /* 0x412457D2, 0x7719AD5C */ + -2.94490264303834643215e+05, /* 0xC111F969, 0x0EA5AA18 */ +}; + +#ifdef __STDC__ +static const double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -2.08979931141764104297e-11, /* 0xBDB6FA43, 0x1AA1A098 */ + -1.02539050241375426231e-01, /* 0xBFBA3FFF, 0xCB597FEF */ + -8.05644828123936029840e+00, /* 0xC0201CE6, 0xCA03AD4B */ + -1.83669607474888380239e+02, /* 0xC066F56D, 0x6CA7B9B0 */ + -1.37319376065508163265e+03, /* 0xC09574C6, 0x6931734F */ + -2.61244440453215656817e+03, /* 0xC0A468E3, 0x88FDA79D */ +}; +#ifdef __STDC__ +static const double qs5[6] = { +#else +static double qs5[6] = { +#endif + 8.12765501384335777857e+01, /* 0x405451B2, 0xFF5A11B2 */ + 1.99179873460485964642e+03, /* 0x409F1F31, 0xE77BF839 */ + 1.74684851924908907677e+04, /* 0x40D10F1F, 0x0D64CE29 */ + 4.98514270910352279316e+04, /* 0x40E8576D, 0xAABAD197 */ + 2.79480751638918118260e+04, /* 0x40DB4B04, 0xCF7C364B */ + -4.71918354795128470869e+03, /* 0xC0B26F2E, 0xFCFFA004 */ +}; + +#ifdef __STDC__ +static const double qr3[6] = { +#else +static double qr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -5.07831226461766561369e-09, /* 0xBE35CFA9, 0xD38FC84F */ + -1.02537829820837089745e-01, /* 0xBFBA3FEB, 0x51AEED54 */ + -4.61011581139473403113e+00, /* 0xC01270C2, 0x3302D9FF */ + -5.78472216562783643212e+01, /* 0xC04CEC71, 0xC25D16DA */ + -2.28244540737631695038e+02, /* 0xC06C87D3, 0x4718D55F */ + -2.19210128478909325622e+02, /* 0xC06B66B9, 0x5F5C1BF6 */ +}; +#ifdef __STDC__ +static const double qs3[6] = { +#else +static double qs3[6] = { +#endif + 4.76651550323729509273e+01, /* 0x4047D523, 0xCCD367E4 */ + 6.73865112676699709482e+02, /* 0x40850EEB, 0xC031EE3E */ + 3.38015286679526343505e+03, /* 0x40AA684E, 0x448E7C9A */ + 5.54772909720722782367e+03, /* 0x40B5ABBA, 0xA61D54A6 */ + 1.90311919338810798763e+03, /* 0x409DBC7A, 0x0DD4DF4B */ + -1.35201191444307340817e+02, /* 0xC060E670, 0x290A311F */ +}; + +#ifdef __STDC__ +static const double qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -1.78381727510958865572e-07, /* 0xBE87F126, 0x44C626D2 */ + -1.02517042607985553460e-01, /* 0xBFBA3E8E, 0x9148B010 */ + -2.75220568278187460720e+00, /* 0xC0060484, 0x69BB4EDA */ + -1.96636162643703720221e+01, /* 0xC033A9E2, 0xC168907F */ + -4.23253133372830490089e+01, /* 0xC04529A3, 0xDE104AAA */ + -2.13719211703704061733e+01, /* 0xC0355F36, 0x39CF6E52 */ +}; +#ifdef __STDC__ +static const double qs2[6] = { +#else +static double qs2[6] = { +#endif + 2.95333629060523854548e+01, /* 0x403D888A, 0x78AE64FF */ + 2.52981549982190529136e+02, /* 0x406F9F68, 0xDB821CBA */ + 7.57502834868645436472e+02, /* 0x4087AC05, 0xCE49A0F7 */ + 7.39393205320467245656e+02, /* 0x40871B25, 0x48D4C029 */ + 1.55949003336666123687e+02, /* 0x40637E5E, 0x3C3ED8D4 */ + -4.95949898822628210127e+00, /* 0xC013D686, 0xE71BE86B */ +}; + +#ifdef __STDC__ + static double qone(double x) +#else + static double qone(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double s,r,z; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qr8; q= qs8;} + else if(ix>=0x40122E8B){p = qr5; q= qs5;} + else if(ix>=0x4006DB6D){p = qr3; q= qs3;} + else if(ix>=0x40000000){p = qr2; q= qs2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (.375 + r/s)/x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_jn.c b/newlib/libm/math/e_jn.c new file mode 100644 index 000000000..1eea27be0 --- /dev/null +++ b/newlib/libm/math/e_jn.c @@ -0,0 +1,281 @@ + +/* @(#)e_jn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_jn(n, x), __ieee754_yn(n, x) + * floating point Bessel's function of the 1st and 2nd kind + * of order n + * + * Special cases: + * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; + * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. + * Note 2. About jn(n,x), yn(n,x) + * For n=0, j0(x) is called, + * for n=1, j1(x) is called, + * for n<x, forward recursion us used starting + * from values of j0(x) and j1(x). + * for n>x, a continued fraction approximation to + * j(n,x)/j(n-1,x) is evaluated and then backward + * recursion is used starting from a supposed value + * for j(n,x). The resulting value of j(0,x) is + * compared with the actual value to correct the + * supposed value of j(n,x). + * + * yn(n,x) is similar in all respects, except + * that forward recursion is used for all + * values of n>1. + * + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ +two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */ +one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */ + +#ifdef __STDC__ +static const double zero = 0.00000000000000000000e+00; +#else +static double zero = 0.00000000000000000000e+00; +#endif + +#ifdef __STDC__ + double __ieee754_jn(int n, double x) +#else + double __ieee754_jn(n,x) + int n; double x; +#endif +{ + __int32_t i,hx,ix,lx, sgn; + double a, b, temp, di; + double z, w; + + /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x) + * Thus, J(-n,x) = J(n,-x) + */ + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* if J(n,NaN) is NaN */ + if((ix|((__uint32_t)(lx|-lx))>>31)>0x7ff00000) return x+x; + if(n<0){ + n = -n; + x = -x; + hx ^= 0x80000000; + } + if(n==0) return(__ieee754_j0(x)); + if(n==1) return(__ieee754_j1(x)); + sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ + x = fabs(x); + if((ix|lx)==0||ix>=0x7ff00000) /* if x is 0 or inf */ + b = zero; + else if((double)n<=x) { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + if(ix>=0x52D00000) { /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + switch(n&3) { + case 0: temp = cos(x)+sin(x); break; + case 1: temp = -cos(x)+sin(x); break; + case 2: temp = -cos(x)-sin(x); break; + case 3: temp = cos(x)-sin(x); break; + } + b = invsqrtpi*temp/__ieee754_sqrt(x); + } else { + a = __ieee754_j0(x); + b = __ieee754_j1(x); + for(i=1;i<n;i++){ + temp = b; + b = b*((double)(i+i)/x) - a; /* avoid underflow */ + a = temp; + } + } + } else { + if(ix<0x3e100000) { /* x < 2**-29 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if(n>33) /* underflow */ + b = zero; + else { + temp = x*0.5; b = temp; + for (a=one,i=2;i<=n;i++) { + a *= (double)i; /* a = n! */ + b *= temp; /* b = (x/2)^n */ + } + b = b/a; + } + } else { + /* use backward recurrence */ + /* x x^2 x^2 + * J(n,x)/J(n-1,x) = ---- ------ ------ ..... + * 2n - 2(n+1) - 2(n+2) + * + * 1 1 1 + * (for large x) = ---- ------ ------ ..... + * 2n 2(n+1) 2(n+2) + * -- - ------ - ------ - + * x x x + * + * Let w = 2n/x and h=2/x, then the above quotient + * is equal to the continued fraction: + * 1 + * = ----------------------- + * 1 + * w - ----------------- + * 1 + * w+h - --------- + * w+2h - ... + * + * To determine how many terms needed, let + * Q(0) = w, Q(1) = w(w+h) - 1, + * Q(k) = (w+k*h)*Q(k-1) - Q(k-2), + * When Q(k) > 1e4 good for single + * When Q(k) > 1e9 good for double + * When Q(k) > 1e17 good for quadruple + */ + /* determine k */ + double t,v; + double q0,q1,h,tmp; __int32_t k,m; + w = (n+n)/(double)x; h = 2.0/(double)x; + q0 = w; z = w+h; q1 = w*z - 1.0; k=1; + while(q1<1.0e9) { + k += 1; z += h; + tmp = z*q1 - q0; + q0 = q1; + q1 = tmp; + } + m = n+n; + for(t=zero, i = 2*(n+k); i>=m; i -= 2) t = one/(i/x-t); + a = t; + b = one; + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = n; + v = two/x; + tmp = tmp*__ieee754_log(fabs(v*tmp)); + if(tmp<7.09782712893383973096e+02) { + for(i=n-1,di=(double)(i+i);i>0;i--){ + temp = b; + b *= di; + b = b/x - a; + a = temp; + di -= two; + } + } else { + for(i=n-1,di=(double)(i+i);i>0;i--){ + temp = b; + b *= di; + b = b/x - a; + a = temp; + di -= two; + /* scale b to avoid spurious overflow */ + if(b>1e100) { + a /= b; + t /= b; + b = one; + } + } + } + b = (t*__ieee754_j0(x)/b); + } + } + if(sgn==1) return -b; else return b; +} + +#ifdef __STDC__ + double __ieee754_yn(int n, double x) +#else + double __ieee754_yn(n,x) + int n; double x; +#endif +{ + __int32_t i,hx,ix,lx; + __int32_t sign; + double a, b, temp; + + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* if Y(n,NaN) is NaN */ + if((ix|((__uint32_t)(lx|-lx))>>31)>0x7ff00000) return x+x; + if((ix|lx)==0) return -one/zero; + if(hx<0) return zero/zero; + sign = 1; + if(n<0){ + n = -n; + sign = 1 - ((n&1)<<1); + } + if(n==0) return(__ieee754_y0(x)); + if(n==1) return(sign*__ieee754_y1(x)); + if(ix==0x7ff00000) return zero; + if(ix>=0x52D00000) { /* x > 2**302 */ + /* (x >> n**2) + * Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi) + * Let s=sin(x), c=cos(x), + * xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then + * + * n sin(xn)*sqt2 cos(xn)*sqt2 + * ---------------------------------- + * 0 s-c c+s + * 1 -s-c -c+s + * 2 -s+c -c-s + * 3 s+c c-s + */ + switch(n&3) { + case 0: temp = sin(x)-cos(x); break; + case 1: temp = -sin(x)-cos(x); break; + case 2: temp = -sin(x)+cos(x); break; + case 3: temp = sin(x)+cos(x); break; + } + b = invsqrtpi*temp/__ieee754_sqrt(x); + } else { + __uint32_t high; + a = __ieee754_y0(x); + b = __ieee754_y1(x); + /* quit if b is -inf */ + GET_HIGH_WORD(high,b); + for(i=1;i<n&&high!=0xfff00000;i++){ + temp = b; + b = ((double)(i+i)/x)*b - a; + GET_HIGH_WORD(high,b); + a = temp; + } + } + if(sign>0) return b; else return -b; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_log.c b/newlib/libm/math/e_log.c new file mode 100644 index 000000000..774ca389f --- /dev/null +++ b/newlib/libm/math/e_log.c @@ -0,0 +1,146 @@ + +/* @(#)e_log.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_log(x) + * Return the logrithm of x + * + * Method : + * 1. Argument Reduction: find k and f such that + * x = 2^k * (1+f), + * where sqrt(2)/2 < 1+f < sqrt(2) . + * + * 2. Approximation of log(1+f). + * Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s) + * = 2s + 2/3 s**3 + 2/5 s**5 + ....., + * = 2s + s*R + * We use a special Reme algorithm on [0,0.1716] to generate + * a polynomial of degree 14 to approximate R The maximum error + * of this polynomial approximation is bounded by 2**-58.45. In + * other words, + * 2 4 6 8 10 12 14 + * R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s +Lg6*s +Lg7*s + * (the values of Lg1 to Lg7 are listed in the program) + * and + * | 2 14 | -58.45 + * | Lg1*s +...+Lg7*s - R(z) | <= 2 + * | | + * Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2. + * In order to guarantee error in log below 1ulp, we compute log + * by + * log(1+f) = f - s*(f - R) (if f is not too large) + * log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy) + * + * 3. Finally, log(x) = k*ln2 + log(1+f). + * = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo))) + * Here ln2 is split into two floating point number: + * ln2_hi + ln2_lo, + * where n*ln2_hi is always exact for |n| < 2000. + * + * Special cases: + * log(x) is NaN with signal if x < 0 (including -INF) ; + * log(+INF) is +INF; log(0) is -INF with signal; + * log(NaN) is that NaN with no signal. + * + * Accuracy: + * according to an error analysis, the error is always less than + * 1 ulp (unit in the last place). + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ +ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ +two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ +Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ +Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ +Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ +Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ +Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ +Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ +Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double __ieee754_log(double x) +#else + double __ieee754_log(x) + double x; +#endif +{ + double hfsq,f,s,z,R,w,t1,t2,dk; + __int32_t k,hx,i,j; + __uint32_t lx; + + EXTRACT_WORDS(hx,lx,x); + + k=0; + if (hx < 0x00100000) { /* x < 2**-1022 */ + if (((hx&0x7fffffff)|lx)==0) + return -two54/zero; /* log(+-0)=-inf */ + if (hx<0) return (x-x)/zero; /* log(-#) = NaN */ + k -= 54; x *= two54; /* subnormal number, scale up x */ + GET_HIGH_WORD(hx,x); + } + if (hx >= 0x7ff00000) return x+x; + k += (hx>>20)-1023; + hx &= 0x000fffff; + i = (hx+0x95f64)&0x100000; + SET_HIGH_WORD(x,hx|(i^0x3ff00000)); /* normalize x or x/2 */ + k += (i>>20); + f = x-1.0; + if((0x000fffff&(2+hx))<3) { /* |f| < 2**-20 */ + if(f==zero) if(k==0) return zero; else {dk=(double)k; + return dk*ln2_hi+dk*ln2_lo;} + R = f*f*(0.5-0.33333333333333333*f); + if(k==0) return f-R; else {dk=(double)k; + return dk*ln2_hi-((R-dk*ln2_lo)-f);} + } + s = f/(2.0+f); + dk = (double)k; + z = s*s; + i = hx-0x6147a; + w = z*z; + j = 0x6b851-hx; + t1= w*(Lg2+w*(Lg4+w*Lg6)); + t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7))); + i |= j; + R = t2+t1; + if(i>0) { + hfsq=0.5*f*f; + if(k==0) return f-(hfsq-s*(hfsq+R)); else + return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f); + } else { + if(k==0) return f-s*(f-R); else + return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_log10.c b/newlib/libm/math/e_log10.c new file mode 100644 index 000000000..f7daaa1b2 --- /dev/null +++ b/newlib/libm/math/e_log10.c @@ -0,0 +1,98 @@ + +/* @(#)e_log10.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_log10(x) + * Return the base 10 logarithm of x + * + * Method : + * Let log10_2hi = leading 40 bits of log10(2) and + * log10_2lo = log10(2) - log10_2hi, + * ivln10 = 1/log(10) rounded. + * Then + * n = ilogb(x), + * if(n<0) n = n+1; + * x = scalbn(x,-n); + * log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x)) + * + * Note 1: + * To guarantee log10(10**n)=n, where 10**n is normal, the rounding + * mode must set to Round-to-Nearest. + * Note 2: + * [1/log(10)] rounded to 53 bits has error .198 ulps; + * log10 is monotonic at all binary break points. + * + * Special cases: + * log10(x) is NaN with signal if x < 0; + * log10(+INF) is +INF with no signal; log10(0) is -INF with signal; + * log10(NaN) is that NaN with no signal; + * log10(10**N) = N for N=0,1,...,22. + * + * Constants: + * The hexadecimal values are the intended ones for the following constants. + * The decimal values may be used, provided that the compiler will convert + * from decimal to binary accurately enough to produce the hexadecimal values + * shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */ +ivln10 = 4.34294481903251816668e-01, /* 0x3FDBCB7B, 0x1526E50E */ +log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */ +log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double __ieee754_log10(double x) +#else + double __ieee754_log10(x) + double x; +#endif +{ + double y,z; + __int32_t i,k,hx; + __uint32_t lx; + + EXTRACT_WORDS(hx,lx,x); + + k=0; + if (hx < 0x00100000) { /* x < 2**-1022 */ + if (((hx&0x7fffffff)|lx)==0) + return -two54/zero; /* log(+-0)=-inf */ + if (hx<0) return (x-x)/zero; /* log(-#) = NaN */ + k -= 54; x *= two54; /* subnormal number, scale up x */ + GET_HIGH_WORD(hx,x); + } + if (hx >= 0x7ff00000) return x+x; + k += (hx>>20)-1023; + i = ((__uint32_t)k&0x80000000)>>31; + hx = (hx&0x000fffff)|((0x3ff-i)<<20); + y = (double)(k+i); + SET_HIGH_WORD(x,hx); + z = y*log10_2lo + ivln10*__ieee754_log(x); + return z+y*log10_2hi; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_pow.c b/newlib/libm/math/e_pow.c new file mode 100644 index 000000000..9312085d4 --- /dev/null +++ b/newlib/libm/math/e_pow.c @@ -0,0 +1,312 @@ + +/* @(#)e_pow.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_pow(x,y) return x**y + * + * n + * Method: Let x = 2 * (1+f) + * 1. Compute and return log2(x) in two pieces: + * log2(x) = w1 + w2, + * where w1 has 53-24 = 29 bit trailing zeros. + * 2. Perform y*log2(x) = n+y' by simulating muti-precision + * arithmetic, where |y'|<=0.5. + * 3. Return x**y = 2**n*exp(y'*log2) + * + * Special cases: + * 1. (anything) ** 0 is 1 + * 2. (anything) ** 1 is itself + * 3. (anything) ** NAN is NAN + * 4. NAN ** (anything except 0) is NAN + * 5. +-(|x| > 1) ** +INF is +INF + * 6. +-(|x| > 1) ** -INF is +0 + * 7. +-(|x| < 1) ** +INF is +0 + * 8. +-(|x| < 1) ** -INF is +INF + * 9. +-1 ** +-INF is NAN + * 10. +0 ** (+anything except 0, NAN) is +0 + * 11. -0 ** (+anything except 0, NAN, odd integer) is +0 + * 12. +0 ** (-anything except 0, NAN) is +INF + * 13. -0 ** (-anything except 0, NAN, odd integer) is +INF + * 14. -0 ** (odd integer) = -( +0 ** (odd integer) ) + * 15. +INF ** (+anything except 0,NAN) is +INF + * 16. +INF ** (-anything except 0,NAN) is +0 + * 17. -INF ** (anything) = -0 ** (-anything) + * 18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer) + * 19. (-anything except 0 and inf) ** (non-integer) is NAN + * + * Accuracy: + * pow(x,y) returns x**y nearly rounded. In particular + * pow(integer,integer) + * always returns the correct integer provided it is + * representable. + * + * Constants : + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +bp[] = {1.0, 1.5,}, +dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */ +dp_l[] = { 0.0, 1.35003920212974897128e-08,}, /* 0x3E4CFDEB, 0x43CFD006 */ +zero = 0.0, +one = 1.0, +two = 2.0, +two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */ +huge = 1.0e300, +tiny = 1.0e-300, + /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ +L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ +L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ +L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ +L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ +L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ +L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ +lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ +lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */ +ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */ +cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ +cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ +cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/ +ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ +ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ +ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ + +#ifdef __STDC__ + double __ieee754_pow(double x, double y) +#else + double __ieee754_pow(x,y) + double x, y; +#endif +{ + double z,ax,z_h,z_l,p_h,p_l; + double y1,t1,t2,r,s,t,u,v,w; + __int32_t i,j,k,yisint,n; + __int32_t hx,hy,ix,iy; + __uint32_t lx,ly; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hy,ly,y); + ix = hx&0x7fffffff; iy = hy&0x7fffffff; + + /* y==zero: x**0 = 1 */ + if((iy|ly)==0) return one; + + /* +-NaN return x+y */ + if(ix > 0x7ff00000 || ((ix==0x7ff00000)&&(lx!=0)) || + iy > 0x7ff00000 || ((iy==0x7ff00000)&&(ly!=0))) + return x+y; + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if(hx<0) { + if(iy>=0x43400000) yisint = 2; /* even integer y */ + else if(iy>=0x3ff00000) { + k = (iy>>20)-0x3ff; /* exponent */ + if(k>20) { + j = ly>>(52-k); + if((j<<(52-k))==ly) yisint = 2-(j&1); + } else if(ly==0) { + j = iy>>(20-k); + if((j<<(20-k))==iy) yisint = 2-(j&1); + } + } + } + + /* special value of y */ + if(ly==0) { + if (iy==0x7ff00000) { /* y is +-inf */ + if(((ix-0x3ff00000)|lx)==0) + return y - y; /* inf**+-1 is NaN */ + else if (ix >= 0x3ff00000)/* (|x|>1)**+-inf = inf,0 */ + return (hy>=0)? y: zero; + else /* (|x|<1)**-,+inf = inf,0 */ + return (hy<0)?-y: zero; + } + if(iy==0x3ff00000) { /* y is +-1 */ + if(hy<0) return one/x; else return x; + } + if(hy==0x40000000) return x*x; /* y is 2 */ + if(hy==0x3fe00000) { /* y is 0.5 */ + if(hx>=0) /* x >= +0 */ + return __ieee754_sqrt(x); + } + } + + ax = fabs(x); + /* special value of x */ + if(lx==0) { + if(ix==0x7ff00000||ix==0||ix==0x3ff00000){ + z = ax; /*x is +-0,+-inf,+-1*/ + if(hy<0) z = one/z; /* z = (1/|x|) */ + if(hx<0) { + if(((ix-0x3ff00000)|yisint)==0) { + z = (z-z)/(z-z); /* (-1)**non-int is NaN */ + } else if(yisint==1) + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + return z; + } + } + + /* (x<0)**(non-int) is NaN */ + /* CYGNUS LOCAL: This used to be + if((((hx>>31)+1)|yisint)==0) return (x-x)/(x-x); + but ANSI C says a right shift of a signed negative quantity is + implementation defined. */ + if(((((__uint32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x); + + /* |y| is huge */ + if(iy>0x41e00000) { /* if |y| > 2**31 */ + if(iy>0x43f00000){ /* if |y| > 2**64, must o/uflow */ + if(ix<=0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>=0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + } + /* over/underflow if x is not close to one */ + if(ix<0x3fefffff) return (hy<0)? huge*huge:tiny*tiny; + if(ix>0x3ff00000) return (hy>0)? huge*huge:tiny*tiny; + /* now |1-x| is tiny <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = x-1; /* t has 20 trailing zeros */ + w = (t*t)*(0.5-t*(0.3333333333333333333333-t*0.25)); + u = ivln2_h*t; /* ivln2_h has 21 sig. bits */ + v = t*ivln2_l-w*ivln2; + t1 = u+v; + SET_LOW_WORD(t1,0); + t2 = v-(t1-u); + } else { + double s2,s_h,s_l,t_h,t_l; + n = 0; + /* take care subnormal number */ + if(ix<0x00100000) + {ax *= two53; n -= 53; GET_HIGH_WORD(ix,ax); } + n += ((ix)>>20)-0x3ff; + j = ix&0x000fffff; + /* determine interval */ + ix = j|0x3ff00000; /* normalize ix */ + if(j<=0x3988E) k=0; /* |x|<sqrt(3/2) */ + else if(j<0xBB67A) k=1; /* |x|<sqrt(3) */ + else {k=0;n+=1;ix -= 0x00100000;} + SET_HIGH_WORD(ax,ix); + + /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */ + u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */ + v = one/(ax+bp[k]); + s = u*v; + s_h = s; + SET_LOW_WORD(s_h,0); + /* t_h=ax+bp[k] High */ + t_h = zero; + SET_HIGH_WORD(t_h,((ix>>1)|0x20000000)+0x00080000+(k<<18)); + t_l = ax - (t_h-bp[k]); + s_l = v*((u-s_h*t_h)-s_h*t_l); + /* compute log(ax) */ + s2 = s*s; + r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6))))); + r += s_l*(s_h+s); + s2 = s_h*s_h; + t_h = 3.0+s2+r; + SET_LOW_WORD(t_h,0); + t_l = r-((t_h-3.0)-s2); + /* u+v = s*(1+...) */ + u = s_h*t_h; + v = s_l*t_h+t_l*s; + /* 2/(3log2)*(s+...) */ + p_h = u+v; + SET_LOW_WORD(p_h,0); + p_l = v-(p_h-u); + z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = cp_l*p_h+p_l*cp+dp_l[k]; + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = (double)n; + t1 = (((z_h+z_l)+dp_h[k])+t); + SET_LOW_WORD(t1,0); + t2 = z_l-(((t1-t)-dp_h[k])-z_h); + } + + s = one; /* s (sign of result -ve**odd) = -1 else = 1 */ + if(((((__uint32_t)hx>>31)-1)|(yisint-1))==0) + s = -one;/* (-ve)**(odd int) */ + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + y1 = y; + SET_LOW_WORD(y1,0); + p_l = (y-y1)*t1+y*t2; + p_h = y1*t1; + z = p_l+p_h; + EXTRACT_WORDS(j,i,z); + if (j>=0x40900000) { /* z >= 1024 */ + if(((j-0x40900000)|i)!=0) /* if z > 1024 */ + return s*huge*huge; /* overflow */ + else { + if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */ + } + } else if((j&0x7fffffff)>=0x4090cc00 ) { /* z <= -1075 */ + if(((j-0xc090cc00)|i)!=0) /* z < -1075 */ + return s*tiny*tiny; /* underflow */ + else { + if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */ + } + } + /* + * compute 2**(p_h+p_l) + */ + i = j&0x7fffffff; + k = (i>>20)-0x3ff; + n = 0; + if(i>0x3fe00000) { /* if |z| > 0.5, set n = [z+0.5] */ + n = j+(0x00100000>>(k+1)); + k = ((n&0x7fffffff)>>20)-0x3ff; /* new k for n */ + t = zero; + SET_HIGH_WORD(t,n&~(0x000fffff>>k)); + n = ((n&0x000fffff)|0x00100000)>>(20-k); + if(j<0) n = -n; + p_h -= t; + } + t = p_l+p_h; + SET_LOW_WORD(t,0); + u = t*lg2_h; + v = (p_l-(t-p_h))*lg2+t*lg2_l; + z = u+v; + w = v-(z-u); + t = z*z; + t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + r = (z*t1)/(t1-two)-(w+z*w); + z = one-(r-z); + GET_HIGH_WORD(j,z); + j += (n<<20); + if((j>>20)<=0) z = scalbn(z,(int)n); /* subnormal output */ + else SET_HIGH_WORD(z,j); + return s*z; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_rem_pio2.c b/newlib/libm/math/e_rem_pio2.c new file mode 100644 index 000000000..3e5d0f7a2 --- /dev/null +++ b/newlib/libm/math/e_rem_pio2.c @@ -0,0 +1,185 @@ + +/* @(#)e_rem_pio2.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_rem_pio2(x,y) + * + * return the remainder of x rem pi/2 in y[0]+y[1] + * use __kernel_rem_pio2() + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +/* + * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi + */ +#ifdef __STDC__ +static const __int32_t two_over_pi[] = { +#else +static __int32_t two_over_pi[] = { +#endif +0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, +0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, +0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, +0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41, +0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8, +0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF, +0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5, +0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, +0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, +0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880, +0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B, +}; + +#ifdef __STDC__ +static const __int32_t npio2_hw[] = { +#else +static __int32_t npio2_hw[] = { +#endif +0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C, +0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C, +0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A, +0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C, +0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB, +0x404858EB, 0x404921FB, +}; + +/* + * invpio2: 53 bits of 2/pi + * pio2_1: first 33 bit of pi/2 + * pio2_1t: pi/2 - pio2_1 + * pio2_2: second 33 bit of pi/2 + * pio2_2t: pi/2 - (pio2_1+pio2_2) + * pio2_3: third 33 bit of pi/2 + * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) + */ + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ +pio2_1 = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */ +pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */ +pio2_2 = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */ +pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */ +pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */ +pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */ + +#ifdef __STDC__ + __int32_t __ieee754_rem_pio2(double x, double *y) +#else + __int32_t __ieee754_rem_pio2(x,y) + double x,y[]; +#endif +{ + double z,w,t,r,fn; + double tx[3]; + __int32_t i,j,n,ix,hx; + int e0,nx; + __uint32_t low; + + GET_HIGH_WORD(hx,x); /* high word of x */ + ix = hx&0x7fffffff; + if(ix<=0x3fe921fb) /* |x| ~<= pi/4 , no need for reduction */ + {y[0] = x; y[1] = 0; return 0;} + if(ix<0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */ + if(hx>0) { + z = x - pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z - pio2_1t; + y[1] = (z-y[0])-pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z -= pio2_2; + y[0] = z - pio2_2t; + y[1] = (z-y[0])-pio2_2t; + } + return 1; + } else { /* negative x */ + z = x + pio2_1; + if(ix!=0x3ff921fb) { /* 33+53 bit pi is good enough */ + y[0] = z + pio2_1t; + y[1] = (z-y[0])+pio2_1t; + } else { /* near pi/2, use 33+33+53 bit pi */ + z += pio2_2; + y[0] = z + pio2_2t; + y[1] = (z-y[0])+pio2_2t; + } + return -1; + } + } + if(ix<=0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */ + t = fabs(x); + n = (__int32_t) (t*invpio2+half); + fn = (double)n; + r = t-fn*pio2_1; + w = fn*pio2_1t; /* 1st round good to 85 bit */ + if(n<32&&ix!=npio2_hw[n-1]) { + y[0] = r-w; /* quick check no cancellation */ + } else { + __uint32_t high; + j = ix>>20; + y[0] = r-w; + GET_HIGH_WORD(high,y[0]); + i = j-((high>>20)&0x7ff); + if(i>16) { /* 2nd iteration needed, good to 118 */ + t = r; + w = fn*pio2_2; + r = t-w; + w = fn*pio2_2t-((t-r)-w); + y[0] = r-w; + GET_HIGH_WORD(high,y[0]); + i = j-((high>>20)&0x7ff); + if(i>49) { /* 3rd iteration need, 151 bits acc */ + t = r; /* will cover all possible cases */ + w = fn*pio2_3; + r = t-w; + w = fn*pio2_3t-((t-r)-w); + y[0] = r-w; + } + } + } + y[1] = (r-y[0])-w; + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + else return n; + } + /* + * all other (large) arguments + */ + if(ix>=0x7ff00000) { /* x is inf or NaN */ + y[0]=y[1]=x-x; return 0; + } + /* set z = scalbn(|x|,ilogb(x)-23) */ + GET_LOW_WORD(low,x); + SET_LOW_WORD(z,low); + e0 = (int)((ix>>20)-1046); /* e0 = ilogb(z)-23; */ + SET_HIGH_WORD(z, ix - ((__int32_t)e0<<20)); + for(i=0;i<2;i++) { + tx[i] = (double)((__int32_t)(z)); + z = (z-tx[i])*two24; + } + tx[2] = z; + nx = 3; + while(tx[nx-1]==zero) nx--; /* skip zero term */ + n = __kernel_rem_pio2(tx,y,e0,nx,2,two_over_pi); + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + return n; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_remainder.c b/newlib/libm/math/e_remainder.c new file mode 100644 index 000000000..ae7ce649a --- /dev/null +++ b/newlib/libm/math/e_remainder.c @@ -0,0 +1,80 @@ + +/* @(#)e_remainder.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_remainder(x,p) + * Return : + * returns x REM p = x - [x/p]*p as if in infinite + * precise arithmetic, where [x/p] is the (infinite bit) + * integer nearest x/p (in half way case choose the even one). + * Method : + * Based on fmod() return x-[x/p]chopped*p exactlp. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + + +#ifdef __STDC__ + double __ieee754_remainder(double x, double p) +#else + double __ieee754_remainder(x,p) + double x,p; +#endif +{ + __int32_t hx,hp; + __uint32_t sx,lx,lp; + double p_half; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hp,lp,p); + sx = hx&0x80000000; + hp &= 0x7fffffff; + hx &= 0x7fffffff; + + /* purge off exception values */ + if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */ + if((hx>=0x7ff00000)|| /* x not finite */ + ((hp>=0x7ff00000)&& /* p is NaN */ + (((hp-0x7ff00000)|lp)!=0))) + return (x*p)/(x*p); + + + if (hp<=0x7fdfffff) x = __ieee754_fmod(x,p+p); /* now x < 2p */ + if (((hx-hp)|(lx-lp))==0) return zero*x; + x = fabs(x); + p = fabs(p); + if (hp<0x00200000) { + if(x+x>p) { + x-=p; + if(x+x>=p) x -= p; + } + } else { + p_half = 0.5*p; + if(x>p_half) { + x-=p; + if(x>=p_half) x -= p; + } + } + GET_HIGH_WORD(hx,x); + SET_HIGH_WORD(x,hx^sx); + return x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_scalb.c b/newlib/libm/math/e_scalb.c new file mode 100644 index 000000000..0bb924b43 --- /dev/null +++ b/newlib/libm/math/e_scalb.c @@ -0,0 +1,55 @@ + +/* @(#)e_scalb.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_scalb(x, fn) is provide for + * passing various standard test suite. One + * should use scalbn() instead. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef _SCALB_INT +#ifdef __STDC__ + double __ieee754_scalb(double x, int fn) +#else + double __ieee754_scalb(x,fn) + double x; int fn; +#endif +#else +#ifdef __STDC__ + double __ieee754_scalb(double x, double fn) +#else + double __ieee754_scalb(x,fn) + double x, fn; +#endif +#endif +{ +#ifdef _SCALB_INT + return scalbn(x,fn); +#else + if (isnan(x)||isnan(fn)) return x*fn; + if (!finite(fn)) { + if(fn>0.0) return x*fn; + else return x/(-fn); + } + if (rint(fn)!=fn) return (fn-fn)/(fn-fn); + if ( fn > 65000.0) return scalbn(x, 65000); + if (-fn > 65000.0) return scalbn(x,-65000); + return scalbn(x,(int)fn); +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_sinh.c b/newlib/libm/math/e_sinh.c new file mode 100644 index 000000000..fd953ddaa --- /dev/null +++ b/newlib/libm/math/e_sinh.c @@ -0,0 +1,86 @@ + +/* @(#)e_sinh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_sinh(x) + * Method : + * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2 + * 1. Replace x by |x| (sinh(-x) = -sinh(x)). + * 2. + * E + E/(E+1) + * 0 <= x <= 22 : sinh(x) := --------------, E=expm1(x) + * 2 + * + * 22 <= x <= lnovft : sinh(x) := exp(x)/2 + * lnovft <= x <= ln2ovft: sinh(x) := exp(x/2)/2 * exp(x/2) + * ln2ovft < x : sinh(x) := x*shuge (overflow) + * + * Special cases: + * sinh(x) is |x| if x is +INF, -INF, or NaN. + * only sinh(0)=0 is exact for finite x. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, shuge = 1.0e307; +#else +static double one = 1.0, shuge = 1.0e307; +#endif + +#ifdef __STDC__ + double __ieee754_sinh(double x) +#else + double __ieee754_sinh(x) + double x; +#endif +{ + double t,w,h; + __int32_t ix,jx; + __uint32_t lx; + + /* High word of |x|. */ + GET_HIGH_WORD(jx,x); + ix = jx&0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7ff00000) return x+x; + + h = 0.5; + if (jx<0) h = -h; + /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */ + if (ix < 0x40360000) { /* |x|<22 */ + if (ix<0x3e300000) /* |x|<2**-28 */ + if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */ + t = expm1(fabs(x)); + if(ix<0x3ff00000) return h*(2.0*t-t*t/(t+one)); + return h*(t+t/(t+one)); + } + + /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */ + if (ix < 0x40862E42) return h*__ieee754_exp(fabs(x)); + + /* |x| in [log(maxdouble), overflowthresold] */ + GET_LOW_WORD(lx,x); + if (ix<0x408633CE || (ix==0x408633ce)&&(lx<=(__uint32_t)0x8fb9f87d)) { + w = __ieee754_exp(0.5*fabs(x)); + t = h*w; + return t*w; + } + + /* |x| > overflowthresold, sinh(x) overflow */ + return x*shuge; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/e_sqrt.c b/newlib/libm/math/e_sqrt.c new file mode 100644 index 000000000..460125a8f --- /dev/null +++ b/newlib/libm/math/e_sqrt.c @@ -0,0 +1,452 @@ + +/* @(#)e_sqrt.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __ieee754_sqrt(x) + * Return correctly rounded sqrt. + * ------------------------------------------ + * | Use the hardware sqrt if you have one | + * ------------------------------------------ + * Method: + * Bit by bit method using integer arithmetic. (Slow, but portable) + * 1. Normalization + * Scale x to y in [1,4) with even powers of 2: + * find an integer k such that 1 <= (y=x*2^(2k)) < 4, then + * sqrt(x) = 2^k * sqrt(y) + * 2. Bit by bit computation + * Let q = sqrt(y) truncated to i bit after binary point (q = 1), + * i 0 + * i+1 2 + * s = 2*q , and y = 2 * ( y - q ). (1) + * i i i i + * + * To compute q from q , one checks whether + * i+1 i + * + * -(i+1) 2 + * (q + 2 ) <= y. (2) + * i + * -(i+1) + * If (2) is false, then q = q ; otherwise q = q + 2 . + * i+1 i i+1 i + * + * With some algebric manipulation, it is not difficult to see + * that (2) is equivalent to + * -(i+1) + * s + 2 <= y (3) + * i i + * + * The advantage of (3) is that s and y can be computed by + * i i + * the following recurrence formula: + * if (3) is false + * + * s = s , y = y ; (4) + * i+1 i i+1 i + * + * otherwise, + * -i -(i+1) + * s = s + 2 , y = y - s - 2 (5) + * i+1 i i+1 i i + * + * One may easily use induction to prove (4) and (5). + * Note. Since the left hand side of (3) contain only i+2 bits, + * it does not necessary to do a full (53-bit) comparison + * in (3). + * 3. Final rounding + * After generating the 53 bits result, we compute one more bit. + * Together with the remainder, we can decide whether the + * result is exact, bigger than 1/2ulp, or less than 1/2ulp + * (it will never equal to 1/2ulp). + * The rounding mode can be detected by checking whether + * huge + tiny is equal to huge, and whether huge - tiny is + * equal to huge for some floating point number "huge" and "tiny". + * + * Special cases: + * sqrt(+-0) = +-0 ... exact + * sqrt(inf) = inf + * sqrt(-ve) = NaN ... with invalid signal + * sqrt(NaN) = NaN ... with invalid signal for signaling NaN + * + * Other methods : see the appended file at the end of the program below. + *--------------- + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, tiny=1.0e-300; +#else +static double one = 1.0, tiny=1.0e-300; +#endif + +#ifdef __STDC__ + double __ieee754_sqrt(double x) +#else + double __ieee754_sqrt(x) + double x; +#endif +{ + double z; + __int32_t sign = (int)0x80000000; + __uint32_t r,t1,s1,ix1,q1; + __int32_t ix0,s0,q,m,t,i; + + EXTRACT_WORDS(ix0,ix1,x); + + /* take care of Inf and NaN */ + if((ix0&0x7ff00000)==0x7ff00000) { + return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf + sqrt(-inf)=sNaN */ + } + /* take care of zero */ + if(ix0<=0) { + if(((ix0&(~sign))|ix1)==0) return x;/* sqrt(+-0) = +-0 */ + else if(ix0<0) + return (x-x)/(x-x); /* sqrt(-ve) = sNaN */ + } + /* normalize x */ + m = (ix0>>20); + if(m==0) { /* subnormal x */ + while(ix0==0) { + m -= 21; + ix0 |= (ix1>>11); ix1 <<= 21; + } + for(i=0;(ix0&0x00100000)==0;i++) ix0<<=1; + m -= i-1; + ix0 |= (ix1>>(32-i)); + ix1 <<= i; + } + m -= 1023; /* unbias exponent */ + ix0 = (ix0&0x000fffff)|0x00100000; + if(m&1){ /* odd m, double x to make it even */ + ix0 += ix0 + ((ix1&sign)>>31); + ix1 += ix1; + } + m >>= 1; /* m = [m/2] */ + + /* generate sqrt(x) bit by bit */ + ix0 += ix0 + ((ix1&sign)>>31); + ix1 += ix1; + q = q1 = s0 = s1 = 0; /* [q,q1] = sqrt(x) */ + r = 0x00200000; /* r = moving bit from right to left */ + + while(r!=0) { + t = s0+r; + if(t<=ix0) { + s0 = t+r; + ix0 -= t; + q += r; + } + ix0 += ix0 + ((ix1&sign)>>31); + ix1 += ix1; + r>>=1; + } + + r = sign; + while(r!=0) { + t1 = s1+r; + t = s0; + if((t<ix0)||((t==ix0)&&(t1<=ix1))) { + s1 = t1+r; + if(((t1&sign)==sign)&&(s1&sign)==0) s0 += 1; + ix0 -= t; + if (ix1 < t1) ix0 -= 1; + ix1 -= t1; + q1 += r; + } + ix0 += ix0 + ((ix1&sign)>>31); + ix1 += ix1; + r>>=1; + } + + /* use floating add to find out rounding direction */ + if((ix0|ix1)!=0) { + z = one-tiny; /* trigger inexact flag */ + if (z>=one) { + z = one+tiny; + if (q1==(__uint32_t)0xffffffff) { q1=0; q += 1;} + else if (z>one) { + if (q1==(__uint32_t)0xfffffffe) q+=1; + q1+=2; + } else + q1 += (q1&1); + } + } + ix0 = (q>>1)+0x3fe00000; + ix1 = q1>>1; + if ((q&1)==1) ix1 |= sign; + ix0 += (m <<20); + INSERT_WORDS(z,ix0,ix1); + return z; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + +/* +Other methods (use floating-point arithmetic) +------------- +(This is a copy of a drafted paper by Prof W. Kahan +and K.C. Ng, written in May, 1986) + + Two algorithms are given here to implement sqrt(x) + (IEEE double precision arithmetic) in software. + Both supply sqrt(x) correctly rounded. The first algorithm (in + Section A) uses newton iterations and involves four divisions. + The second one uses reciproot iterations to avoid division, but + requires more multiplications. Both algorithms need the ability + to chop results of arithmetic operations instead of round them, + and the INEXACT flag to indicate when an arithmetic operation + is executed exactly with no roundoff error, all part of the + standard (IEEE 754-1985). The ability to perform shift, add, + subtract and logical AND operations upon 32-bit words is needed + too, though not part of the standard. + +A. sqrt(x) by Newton Iteration + + (1) Initial approximation + + Let x0 and x1 be the leading and the trailing 32-bit words of + a floating point number x (in IEEE double format) respectively + + 1 11 52 ...widths + ------------------------------------------------------ + x: |s| e | f | + ------------------------------------------------------ + msb lsb msb lsb ...order + + + ------------------------ ------------------------ + x0: |s| e | f1 | x1: | f2 | + ------------------------ ------------------------ + + By performing shifts and subtracts on x0 and x1 (both regarded + as integers), we obtain an 8-bit approximation of sqrt(x) as + follows. + + k := (x0>>1) + 0x1ff80000; + y0 := k - T1[31&(k>>15)]. ... y ~ sqrt(x) to 8 bits + Here k is a 32-bit integer and T1[] is an integer array containing + correction terms. Now magically the floating value of y (y's + leading 32-bit word is y0, the value of its trailing word is 0) + approximates sqrt(x) to almost 8-bit. + + Value of T1: + static int T1[32]= { + 0, 1024, 3062, 5746, 9193, 13348, 18162, 23592, + 29598, 36145, 43202, 50740, 58733, 67158, 75992, 85215, + 83599, 71378, 60428, 50647, 41945, 34246, 27478, 21581, + 16499, 12183, 8588, 5674, 3403, 1742, 661, 130,}; + + (2) Iterative refinement + + Apply Heron's rule three times to y, we have y approximates + sqrt(x) to within 1 ulp (Unit in the Last Place): + + y := (y+x/y)/2 ... almost 17 sig. bits + y := (y+x/y)/2 ... almost 35 sig. bits + y := y-(y-x/y)/2 ... within 1 ulp + + + Remark 1. + Another way to improve y to within 1 ulp is: + + y := (y+x/y) ... almost 17 sig. bits to 2*sqrt(x) + y := y - 0x00100006 ... almost 18 sig. bits to sqrt(x) + + 2 + (x-y )*y + y := y + 2* ---------- ...within 1 ulp + 2 + 3y + x + + + This formula has one division fewer than the one above; however, + it requires more multiplications and additions. Also x must be + scaled in advance to avoid spurious overflow in evaluating the + expression 3y*y+x. Hence it is not recommended uless division + is slow. If division is very slow, then one should use the + reciproot algorithm given in section B. + + (3) Final adjustment + + By twiddling y's last bit it is possible to force y to be + correctly rounded according to the prevailing rounding mode + as follows. Let r and i be copies of the rounding mode and + inexact flag before entering the square root program. Also we + use the expression y+-ulp for the next representable floating + numbers (up and down) of y. Note that y+-ulp = either fixed + point y+-1, or multiply y by nextafter(1,+-inf) in chopped + mode. + + I := FALSE; ... reset INEXACT flag I + R := RZ; ... set rounding mode to round-toward-zero + z := x/y; ... chopped quotient, possibly inexact + If(not I) then { ... if the quotient is exact + if(z=y) { + I := i; ... restore inexact flag + R := r; ... restore rounded mode + return sqrt(x):=y. + } else { + z := z - ulp; ... special rounding + } + } + i := TRUE; ... sqrt(x) is inexact + If (r=RN) then z=z+ulp ... rounded-to-nearest + If (r=RP) then { ... round-toward-+inf + y = y+ulp; z=z+ulp; + } + y := y+z; ... chopped sum + y0:=y0-0x00100000; ... y := y/2 is correctly rounded. + I := i; ... restore inexact flag + R := r; ... restore rounded mode + return sqrt(x):=y. + + (4) Special cases + + Square root of +inf, +-0, or NaN is itself; + Square root of a negative number is NaN with invalid signal. + + +B. sqrt(x) by Reciproot Iteration + + (1) Initial approximation + + Let x0 and x1 be the leading and the trailing 32-bit words of + a floating point number x (in IEEE double format) respectively + (see section A). By performing shifs and subtracts on x0 and y0, + we obtain a 7.8-bit approximation of 1/sqrt(x) as follows. + + k := 0x5fe80000 - (x0>>1); + y0:= k - T2[63&(k>>14)]. ... y ~ 1/sqrt(x) to 7.8 bits + + Here k is a 32-bit integer and T2[] is an integer array + containing correction terms. Now magically the floating + value of y (y's leading 32-bit word is y0, the value of + its trailing word y1 is set to zero) approximates 1/sqrt(x) + to almost 7.8-bit. + + Value of T2: + static int T2[64]= { + 0x1500, 0x2ef8, 0x4d67, 0x6b02, 0x87be, 0xa395, 0xbe7a, 0xd866, + 0xf14a, 0x1091b,0x11fcd,0x13552,0x14999,0x15c98,0x16e34,0x17e5f, + 0x18d03,0x19a01,0x1a545,0x1ae8a,0x1b5c4,0x1bb01,0x1bfde,0x1c28d, + 0x1c2de,0x1c0db,0x1ba73,0x1b11c,0x1a4b5,0x1953d,0x18266,0x16be0, + 0x1683e,0x179d8,0x18a4d,0x19992,0x1a789,0x1b445,0x1bf61,0x1c989, + 0x1d16d,0x1d77b,0x1dddf,0x1e2ad,0x1e5bf,0x1e6e8,0x1e654,0x1e3cd, + 0x1df2a,0x1d635,0x1cb16,0x1be2c,0x1ae4e,0x19bde,0x1868e,0x16e2e, + 0x1527f,0x1334a,0x11051,0xe951, 0xbe01, 0x8e0d, 0x5924, 0x1edd,}; + + (2) Iterative refinement + + Apply Reciproot iteration three times to y and multiply the + result by x to get an approximation z that matches sqrt(x) + to about 1 ulp. To be exact, we will have + -1ulp < sqrt(x)-z<1.0625ulp. + + ... set rounding mode to Round-to-nearest + y := y*(1.5-0.5*x*y*y) ... almost 15 sig. bits to 1/sqrt(x) + y := y*((1.5-2^-30)+0.5*x*y*y)... about 29 sig. bits to 1/sqrt(x) + ... special arrangement for better accuracy + z := x*y ... 29 bits to sqrt(x), with z*y<1 + z := z + 0.5*z*(1-z*y) ... about 1 ulp to sqrt(x) + + Remark 2. The constant 1.5-2^-30 is chosen to bias the error so that + (a) the term z*y in the final iteration is always less than 1; + (b) the error in the final result is biased upward so that + -1 ulp < sqrt(x) - z < 1.0625 ulp + instead of |sqrt(x)-z|<1.03125ulp. + + (3) Final adjustment + + By twiddling y's last bit it is possible to force y to be + correctly rounded according to the prevailing rounding mode + as follows. Let r and i be copies of the rounding mode and + inexact flag before entering the square root program. Also we + use the expression y+-ulp for the next representable floating + numbers (up and down) of y. Note that y+-ulp = either fixed + point y+-1, or multiply y by nextafter(1,+-inf) in chopped + mode. + + R := RZ; ... set rounding mode to round-toward-zero + switch(r) { + case RN: ... round-to-nearest + if(x<= z*(z-ulp)...chopped) z = z - ulp; else + if(x<= z*(z+ulp)...chopped) z = z; else z = z+ulp; + break; + case RZ:case RM: ... round-to-zero or round-to--inf + R:=RP; ... reset rounding mod to round-to-+inf + if(x<z*z ... rounded up) z = z - ulp; else + if(x>=(z+ulp)*(z+ulp) ...rounded up) z = z+ulp; + break; + case RP: ... round-to-+inf + if(x>(z+ulp)*(z+ulp)...chopped) z = z+2*ulp; else + if(x>z*z ...chopped) z = z+ulp; + break; + } + + Remark 3. The above comparisons can be done in fixed point. For + example, to compare x and w=z*z chopped, it suffices to compare + x1 and w1 (the trailing parts of x and w), regarding them as + two's complement integers. + + ...Is z an exact square root? + To determine whether z is an exact square root of x, let z1 be the + trailing part of z, and also let x0 and x1 be the leading and + trailing parts of x. + + If ((z1&0x03ffffff)!=0) ... not exact if trailing 26 bits of z!=0 + I := 1; ... Raise Inexact flag: z is not exact + else { + j := 1 - [(x0>>20)&1] ... j = logb(x) mod 2 + k := z1 >> 26; ... get z's 25-th and 26-th + fraction bits + I := i or (k&j) or ((k&(j+j+1))!=(x1&3)); + } + R:= r ... restore rounded mode + return sqrt(x):=z. + + If multiplication is cheaper then the foregoing red tape, the + Inexact flag can be evaluated by + + I := i; + I := (z*z!=x) or I. + + Note that z*z can overwrite I; this value must be sensed if it is + True. + + Remark 4. If z*z = x exactly, then bit 25 to bit 0 of z1 must be + zero. + + -------------------- + z1: | f2 | + -------------------- + bit 31 bit 0 + + Further more, bit 27 and 26 of z1, bit 0 and 1 of x1, and the odd + or even of logb(x) have the following relations: + + ------------------------------------------------- + bit 27,26 of z1 bit 1,0 of x1 logb(x) + ------------------------------------------------- + 00 00 odd and even + 01 01 even + 10 10 odd + 10 00 even + 11 01 even + ------------------------------------------------- + + (4) Special cases (see (4) of Section A). + + */ diff --git a/newlib/libm/math/ef_acos.c b/newlib/libm/math/ef_acos.c new file mode 100644 index 000000000..f73f97de7 --- /dev/null +++ b/newlib/libm/math/ef_acos.c @@ -0,0 +1,84 @@ +/* ef_acos.c -- float version of e_acos.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3F800000 */ +pi = 3.1415925026e+00, /* 0x40490fda */ +pio2_hi = 1.5707962513e+00, /* 0x3fc90fda */ +pio2_lo = 7.5497894159e-08, /* 0x33a22168 */ +pS0 = 1.6666667163e-01, /* 0x3e2aaaab */ +pS1 = -3.2556581497e-01, /* 0xbea6b090 */ +pS2 = 2.0121252537e-01, /* 0x3e4e0aa8 */ +pS3 = -4.0055535734e-02, /* 0xbd241146 */ +pS4 = 7.9153501429e-04, /* 0x3a4f7f04 */ +pS5 = 3.4793309169e-05, /* 0x3811ef08 */ +qS1 = -2.4033949375e+00, /* 0xc019d139 */ +qS2 = 2.0209457874e+00, /* 0x4001572d */ +qS3 = -6.8828397989e-01, /* 0xbf303361 */ +qS4 = 7.7038154006e-02; /* 0x3d9dc62e */ + +#ifdef __STDC__ + float __ieee754_acosf(float x) +#else + float __ieee754_acosf(x) + float x; +#endif +{ + float z,p,q,r,w,s,c,df; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix==0x3f800000) { /* |x|==1 */ + if(hx>0) return 0.0; /* acos(1) = 0 */ + else return pi+(float)2.0*pio2_lo; /* acos(-1)= pi */ + } else if(ix>0x3f800000) { /* |x| >= 1 */ + return (x-x)/(x-x); /* acos(|x|>1) is NaN */ + } + if(ix<0x3f000000) { /* |x| < 0.5 */ + if(ix<=0x23000000) return pio2_hi+pio2_lo;/*if|x|<2**-57*/ + z = x*x; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + return pio2_hi - (x - (pio2_lo-x*r)); + } else if (hx<0) { /* x < -0.5 */ + z = (one+x)*(float)0.5; + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + s = __ieee754_sqrtf(z); + r = p/q; + w = r*s-pio2_lo; + return pi - (float)2.0*(s+w); + } else { /* x > 0.5 */ + __int32_t idf; + z = (one-x)*(float)0.5; + s = __ieee754_sqrtf(z); + df = s; + GET_FLOAT_WORD(idf,df); + SET_FLOAT_WORD(df,idf&0xfffff000); + c = (z-df*df)/(s+df); + p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5))))); + q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4))); + r = p/q; + w = r*s+c; + return (float)2.0*(df+w); + } +} diff --git a/newlib/libm/math/ef_acosh.c b/newlib/libm/math/ef_acosh.c new file mode 100644 index 000000000..37c788576 --- /dev/null +++ b/newlib/libm/math/ef_acosh.c @@ -0,0 +1,53 @@ +/* ef_acosh.c -- float version of e_acosh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0, +ln2 = 6.9314718246e-01; /* 0x3f317218 */ + +#ifdef __STDC__ + float __ieee754_acoshf(float x) +#else + float __ieee754_acoshf(x) + float x; +#endif +{ + float t; + __int32_t hx; + GET_FLOAT_WORD(hx,x); + if(hx<0x3f800000) { /* x < 1 */ + return (x-x)/(x-x); + } else if(hx >=0x4d800000) { /* x > 2**28 */ + if(hx >=0x7f800000) { /* x is inf of NaN */ + return x+x; + } else + return __ieee754_logf(x)+ln2; /* acosh(huge)=log(2x) */ + } else if (hx==0x3f800000) { + return 0.0; /* acosh(1) = 0 */ + } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ + t=x*x; + return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one))); + } else { /* 1<x<2 */ + t = x-one; + return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t)); + } +} diff --git a/newlib/libm/math/ef_asin.c b/newlib/libm/math/ef_asin.c new file mode 100644 index 000000000..bbe210b7c --- /dev/null +++ b/newlib/libm/math/ef_asin.c @@ -0,0 +1,87 @@ +/* ef_asin.c -- float version of e_asin.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3F800000 */ +huge = 1.000e+30, +pio2_hi = 1.5707962513e+00, /* 0x3fc90fda */ +pio2_lo = 7.5497894159e-08, /* 0x33a22168 */ +pio4_hi = 7.8539818525e-01, /* 0x3f490fdb */ + /* coefficient for R(x^2) */ +pS0 = 1.6666667163e-01, /* 0x3e2aaaab */ +pS1 = -3.2556581497e-01, /* 0xbea6b090 */ +pS2 = 2.0121252537e-01, /* 0x3e4e0aa8 */ +pS3 = -4.0055535734e-02, /* 0xbd241146 */ +pS4 = 7.9153501429e-04, /* 0x3a4f7f04 */ +pS5 = 3.4793309169e-05, /* 0x3811ef08 */ +qS1 = -2.4033949375e+00, /* 0xc019d139 */ +qS2 = 2.0209457874e+00, /* 0x4001572d */ +qS3 = -6.8828397989e-01, /* 0xbf303361 */ +qS4 = 7.7038154006e-02; /* 0x3d9dc62e */ + +#ifdef __STDC__ + float __ieee754_asinf(float x) +#else + float __ieee754_asinf(x) + float x; +#endif +{ + float t,w,p,q,c,r,s; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix==0x3f800000) { + /* asin(1)=+-pi/2 with inexact */ + return x*pio2_hi+x*pio2_lo; + } else if(ix> 0x3f800000) { /* |x|>= 1 */ + return (x-x)/(x-x); /* asin(|x|>1) is NaN */ + } else if (ix<0x3f000000) { /* |x|<0.5 */ + if(ix<0x32000000) { /* if |x| < 2**-27 */ + if(huge+x>one) return x;/* return x with inexact if x!=0*/ + } else + t = x*x; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + w = p/q; + return x+x*w; + } + /* 1> |x|>= 0.5 */ + w = one-fabsf(x); + t = w*(float)0.5; + p = t*(pS0+t*(pS1+t*(pS2+t*(pS3+t*(pS4+t*pS5))))); + q = one+t*(qS1+t*(qS2+t*(qS3+t*qS4))); + s = __ieee754_sqrtf(t); + if(ix>=0x3F79999A) { /* if |x| > 0.975 */ + w = p/q; + t = pio2_hi-((float)2.0*(s+s*w)-pio2_lo); + } else { + __int32_t iw; + w = s; + GET_FLOAT_WORD(iw,w); + SET_FLOAT_WORD(w,iw&0xfffff000); + c = (t-w*w)/(s+w); + r = p/q; + p = (float)2.0*s*r-(pio2_lo-(float)2.0*c); + q = pio4_hi-(float)2.0*w; + t = pio4_hi-(p-q); + } + if(hx>0) return t; else return -t; +} diff --git a/newlib/libm/math/ef_atan2.c b/newlib/libm/math/ef_atan2.c new file mode 100644 index 000000000..25e86b374 --- /dev/null +++ b/newlib/libm/math/ef_atan2.c @@ -0,0 +1,101 @@ +/* ef_atan2.c -- float version of e_atan2.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +tiny = 1.0e-30, +zero = 0.0, +pi_o_4 = 7.8539818525e-01, /* 0x3f490fdb */ +pi_o_2 = 1.5707963705e+00, /* 0x3fc90fdb */ +pi = 3.1415925026e+00, /* 0x40490fda */ +pi_lo = 1.5099578832e-07; /* 0x34222168 */ + +#ifdef __STDC__ + float __ieee754_atan2f(float y, float x) +#else + float __ieee754_atan2f(y,x) + float y,x; +#endif +{ + float z; + __int32_t k,m,hx,hy,ix,iy; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + GET_FLOAT_WORD(hy,y); + iy = hy&0x7fffffff; + if((ix>0x7f800000)|| + (iy>0x7f800000)) /* x or y is NaN */ + return x+y; + if(hx==0x3f800000) return atanf(y); /* x=1.0 */ + m = ((hy>>31)&1)|((hx>>30)&2); /* 2*sign(x)+sign(y) */ + + /* when y = 0 */ + if(iy==0) { + switch(m) { + case 0: + case 1: return y; /* atan(+-0,+anything)=+-0 */ + case 2: return pi+tiny;/* atan(+0,-anything) = pi */ + case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */ + } + } + /* when x = 0 */ + if(ix==0) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* when x is INF */ + if(ix==0x7f800000) { + if(iy==0x7f800000) { + switch(m) { + case 0: return pi_o_4+tiny;/* atan(+INF,+INF) */ + case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */ + case 2: return (float)3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/ + case 3: return (float)-3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/ + } + } else { + switch(m) { + case 0: return zero ; /* atan(+...,+INF) */ + case 1: return -zero ; /* atan(-...,+INF) */ + case 2: return pi+tiny ; /* atan(+...,-INF) */ + case 3: return -pi-tiny ; /* atan(-...,-INF) */ + } + } + } + /* when y is INF */ + if(iy==0x7f800000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny; + + /* compute y/x */ + k = (iy-ix)>>23; + if(k > 60) z=pi_o_2+(float)0.5*pi_lo; /* |y/x| > 2**60 */ + else if(hx<0&&k<-60) z=0.0; /* |y|/x < -2**60 */ + else z=atanf(fabsf(y/x)); /* safe to do y/x */ + switch (m) { + case 0: return z ; /* atan(+,+) */ + case 1: { + __uint32_t zh; + GET_FLOAT_WORD(zh,z); + SET_FLOAT_WORD(z,zh ^ 0x80000000); + } + return z ; /* atan(-,+) */ + case 2: return pi-(z-pi_lo);/* atan(+,-) */ + default: /* case 3 */ + return (z-pi_lo)-pi;/* atan(-,-) */ + } +} diff --git a/newlib/libm/math/ef_atanh.c b/newlib/libm/math/ef_atanh.c new file mode 100644 index 000000000..74b3d3d6a --- /dev/null +++ b/newlib/libm/math/ef_atanh.c @@ -0,0 +1,54 @@ +/* ef_atanh.c -- float version of e_atanh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0, huge = 1e30; +#else +static float one = 1.0, huge = 1e30; +#endif + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float __ieee754_atanhf(float x) +#else + float __ieee754_atanhf(x) + float x; +#endif +{ + float t; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if (ix>0x3f800000) /* |x|>1 */ + return (x-x)/(x-x); + if(ix==0x3f800000) + return x/zero; + if(ix<0x31800000&&(huge+x)>zero) return x; /* x<2**-28 */ + SET_FLOAT_WORD(x,ix); + if(ix<0x3f000000) { /* x < 0.5 */ + t = x+x; + t = (float)0.5*log1pf(t+t*x/(one-x)); + } else + t = (float)0.5*log1pf((x+x)/(one-x)); + if(hx>=0) return t; else return -t; +} diff --git a/newlib/libm/math/ef_cosh.c b/newlib/libm/math/ef_cosh.c new file mode 100644 index 000000000..68e59f886 --- /dev/null +++ b/newlib/libm/math/ef_cosh.c @@ -0,0 +1,70 @@ +/* ef_cosh.c -- float version of e_cosh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float one = 1.0, half=0.5, huge = 1.0e30; +#else +static float one = 1.0, half=0.5, huge = 1.0e30; +#endif + +#ifdef __STDC__ + float __ieee754_coshf(float x) +#else + float __ieee754_coshf(x) + float x; +#endif +{ + float t,w; + __int32_t ix; + + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7f800000) return x*x; + + /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */ + if(ix<0x3eb17218) { + t = expm1f(fabsf(x)); + w = one+t; + if (ix<0x24000000) return w; /* cosh(tiny) = 1 */ + return one+(t*t)/(w+w); + } + + /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */ + if (ix < 0x41b00000) { + t = __ieee754_expf(fabsf(x)); + return half*t+half/t; + } + + /* |x| in [22, log(maxdouble)] return half*exp(|x|) */ + if (ix < 0x42b17180) return half*__ieee754_expf(fabsf(x)); + + /* |x| in [log(maxdouble), overflowthresold] */ + if (ix<=0x42b2d4fc) { + w = __ieee754_expf(half*fabsf(x)); + t = half*w; + return t*w; + } + + /* |x| > overflowthresold, cosh(x) overflow */ + return huge*huge; +} diff --git a/newlib/libm/math/ef_exp.c b/newlib/libm/math/ef_exp.c new file mode 100644 index 000000000..04331a52a --- /dev/null +++ b/newlib/libm/math/ef_exp.c @@ -0,0 +1,102 @@ +/* ef_exp.c -- float version of e_exp.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0, +halF[2] = {0.5,-0.5,}, +huge = 1.0e+30, +twom100 = 7.8886090522e-31, /* 2**-100=0x0d800000 */ +o_threshold= 8.8721679688e+01, /* 0x42b17180 */ +u_threshold= -1.0397208405e+02, /* 0xc2cff1b5 */ +ln2HI[2] ={ 6.9313812256e-01, /* 0x3f317180 */ + -6.9313812256e-01,}, /* 0xbf317180 */ +ln2LO[2] ={ 9.0580006145e-06, /* 0x3717f7d1 */ + -9.0580006145e-06,}, /* 0xb717f7d1 */ +invln2 = 1.4426950216e+00, /* 0x3fb8aa3b */ +P1 = 1.6666667163e-01, /* 0x3e2aaaab */ +P2 = -2.7777778450e-03, /* 0xbb360b61 */ +P3 = 6.6137559770e-05, /* 0x388ab355 */ +P4 = -1.6533901999e-06, /* 0xb5ddea0e */ +P5 = 4.1381369442e-08; /* 0x3331bb4c */ + +#ifdef __STDC__ + float __ieee754_expf(float x) /* default IEEE double exp */ +#else + float __ieee754_expf(x) /* default IEEE double exp */ + float x; +#endif +{ + float y,hi,lo,c,t; + __int32_t k,xsb; + __uint32_t hx; + + GET_FLOAT_WORD(hx,x); + xsb = (hx>>31)&1; /* sign bit of x */ + hx &= 0x7fffffff; /* high word of |x| */ + + /* filter out non-finite argument */ + if(hx >= 0x42b17218) { /* if |x|>=88.721... */ + if(hx>0x7f800000) + return x+x; /* NaN */ + if(hx==0x7f800000) + return (xsb==0)? x:0.0; /* exp(+-inf)={inf,0} */ + if(x > o_threshold) return huge*huge; /* overflow */ + if(x < u_threshold) return twom100*twom100; /* underflow */ + } + + /* argument reduction */ + if(hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */ + if(hx < 0x3F851592) { /* and |x| < 1.5 ln2 */ + hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb; + } else { + k = invln2*x+halF[xsb]; + t = k; + hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */ + lo = t*ln2LO[0]; + } + x = hi - lo; + } + else if(hx < 0x31800000) { /* when |x|<2**-28 */ + if(huge+x>one) return one+x;/* trigger inexact */ + } + else k = 0; + + /* x is now in primary range */ + t = x*x; + c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + if(k==0) return one-((x*c)/(c-(float)2.0)-x); + else y = one-((lo-(x*c)/((float)2.0-c))-hi); + if(k >= -125) { + __uint32_t hy; + GET_FLOAT_WORD(hy,y); + SET_FLOAT_WORD(y,hy+(k<<23)); /* add k to y's exponent */ + return y; + } else { + __uint32_t hy; + GET_FLOAT_WORD(hy,y); + SET_FLOAT_WORD(y,hy+((k+100)<<23)); /* add k to y's exponent */ + return y*twom100; + } +} diff --git a/newlib/libm/math/ef_fmod.c b/newlib/libm/math/ef_fmod.c new file mode 100644 index 000000000..d5d28e08e --- /dev/null +++ b/newlib/libm/math/ef_fmod.c @@ -0,0 +1,108 @@ +/* ef_fmod.c -- float version of e_fmod.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_fmodf(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static float one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + float __ieee754_fmodf(float x, float y) +#else + float __ieee754_fmodf(x,y) + float x,y ; +#endif +{ + __int32_t n,hx,hy,hz,ix,iy,sx,i; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hy,y); + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if(hy==0||(hx>=0x7f800000)|| /* y=0,or x not finite */ + (hy>0x7f800000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<hy) return x; /* |x|<|y| return x */ + if(hx==hy) + return Zero[(__uint32_t)sx>>31]; /* |x|=|y| return x*0*/ + + /* determine ix = ilogb(x) */ + if(hx<0x00800000) { /* subnormal x */ + for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1; + } else ix = (hx>>23)-127; + + /* determine iy = ilogb(y) */ + if(hy<0x00800000) { /* subnormal y */ + for (iy = -126,i=(hy<<8); i>=0; i<<=1) iy -=1; + } else iy = (hy>>23)-127; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -126) + hx = 0x00800000|(0x007fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -126-ix; + hx = hx<<n; + } + if(iy >= -126) + hy = 0x00800000|(0x007fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -126-iy; + hy = hy<<n; + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy; + if(hz<0){hx = hx+hx;} + else { + if(hz==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + hx = hz+hz; + } + } + hz=hx-hy; + if(hz>=0) {hx=hz;} + + /* convert back to floating value and restore the sign */ + if(hx==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + while(hx<0x00800000) { /* normalize x */ + hx = hx+hx; + iy -= 1; + } + if(iy>= -126) { /* normalize output */ + hx = ((hx-0x00800000)|((iy+127)<<23)); + SET_FLOAT_WORD(x,hx|sx); + } else { /* subnormal output */ + n = -126 - iy; + hx >>= n; + SET_FLOAT_WORD(x,hx|sx); + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} diff --git a/newlib/libm/math/ef_hypot.c b/newlib/libm/math/ef_hypot.c new file mode 100644 index 000000000..a87fa489e --- /dev/null +++ b/newlib/libm/math/ef_hypot.c @@ -0,0 +1,82 @@ +/* ef_hypot.c -- float version of e_hypot.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float __ieee754_hypotf(float x, float y) +#else + float __ieee754_hypotf(x,y) + float x, y; +#endif +{ + float a=x,b=y,t1,t2,y1,y2,w; + __int32_t j,k,ha,hb; + + GET_FLOAT_WORD(ha,x); + ha &= 0x7fffffffL; + GET_FLOAT_WORD(hb,y); + hb &= 0x7fffffffL; + if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;} + SET_FLOAT_WORD(a,ha); /* a <- |a| */ + SET_FLOAT_WORD(b,hb); /* b <- |b| */ + if((ha-hb)>0xf000000L) {return a+b;} /* x/y > 2**30 */ + k=0; + if(ha > 0x58800000L) { /* a>2**50 */ + if(ha >= 0x7f800000L) { /* Inf or NaN */ + w = a+b; /* for sNaN */ + if(ha == 0x7f800000L) w = a; + if(hb == 0x7f800000L) w = b; + return w; + } + /* scale a and b by 2**-60 */ + ha -= 0x5d800000L; hb -= 0x5d800000L; k += 60; + SET_FLOAT_WORD(a,ha); + SET_FLOAT_WORD(b,hb); + } + if(hb < 0x26800000L) { /* b < 2**-50 */ + if(hb <= 0x007fffffL) { /* subnormal b or 0 */ + if(hb==0) return a; + SET_FLOAT_WORD(t1,0x3f000000L); /* t1=2^126 */ + b *= t1; + a *= t1; + k -= 126; + } else { /* scale a and b by 2^60 */ + ha += 0x5d800000; /* a *= 2^60 */ + hb += 0x5d800000; /* b *= 2^60 */ + k -= 60; + SET_FLOAT_WORD(a,ha); + SET_FLOAT_WORD(b,hb); + } + } + /* medium size a and b */ + w = a-b; + if (w>b) { + SET_FLOAT_WORD(t1,ha&0xfffff000L); + t2 = a-t1; + w = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); + } else { + a = a+a; + SET_FLOAT_WORD(y1,hb&0xfffff000L); + y2 = b - y1; + SET_FLOAT_WORD(t1,ha+0x00800000L); + t2 = a - t1; + w = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); + } + if(k!=0) { + SET_FLOAT_WORD(t1,0x3f800000L+(k<<23)); + return t1*w; + } else return w; +} diff --git a/newlib/libm/math/ef_j0.c b/newlib/libm/math/ef_j0.c new file mode 100644 index 000000000..5ae6f308f --- /dev/null +++ b/newlib/libm/math/ef_j0.c @@ -0,0 +1,439 @@ +/* ef_j0.c -- float version of e_j0.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static float pzerof(float), qzerof(float); +#else +static float pzerof(), qzerof(); +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +huge = 1e30, +one = 1.0, +invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ +tpi = 6.3661974669e-01, /* 0x3f22f983 */ + /* R0/S0 on [0, 2.00] */ +R02 = 1.5625000000e-02, /* 0x3c800000 */ +R03 = -1.8997929874e-04, /* 0xb947352e */ +R04 = 1.8295404516e-06, /* 0x35f58e88 */ +R05 = -4.6183270541e-09, /* 0xb19eaf3c */ +S01 = 1.5619102865e-02, /* 0x3c7fe744 */ +S02 = 1.1692678527e-04, /* 0x38f53697 */ +S03 = 5.1354652442e-07, /* 0x3509daa6 */ +S04 = 1.1661400734e-09; /* 0x30a045e8 */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float __ieee754_j0f(float x) +#else + float __ieee754_j0f(x) + float x; +#endif +{ + float z, s,c,ss,cc,r,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return one/(x*x); + x = fabsf(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(x); + c = cosf(x); + ss = s-c; + cc = s+c; + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = -cosf(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix>0x80000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(x); + else { + u = pzerof(x); v = qzerof(x); + z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(x); + } + return z; + } + if(ix<0x39000000) { /* |x| < 2**-13 */ + if(huge+x>one) { /* raise inexact if x != 0 */ + if(ix<0x32000000) return one; /* |x|<2**-27 */ + else return one - (float)0.25*x*x; + } + } + z = x*x; + r = z*(R02+z*(R03+z*(R04+z*R05))); + s = one+z*(S01+z*(S02+z*(S03+z*S04))); + if(ix < 0x3F800000) { /* |x| < 1.00 */ + return one + z*((float)-0.25+(r/s)); + } else { + u = (float)0.5*x; + return((one+u)*(one-u)+z*(r/s)); + } +} + +#ifdef __STDC__ +static const float +#else +static float +#endif +u00 = -7.3804296553e-02, /* 0xbd9726b5 */ +u01 = 1.7666645348e-01, /* 0x3e34e80d */ +u02 = -1.3818567619e-02, /* 0xbc626746 */ +u03 = 3.4745343146e-04, /* 0x39b62a69 */ +u04 = -3.8140706238e-06, /* 0xb67ff53c */ +u05 = 1.9559013964e-08, /* 0x32a802ba */ +u06 = -3.9820518410e-11, /* 0xae2f21eb */ +v01 = 1.2730483897e-02, /* 0x3c509385 */ +v02 = 7.6006865129e-05, /* 0x389f65e0 */ +v03 = 2.5915085189e-07, /* 0x348b216c */ +v04 = 4.4111031494e-10; /* 0x2ff280c2 */ + +#ifdef __STDC__ + float __ieee754_y0f(float x) +#else + float __ieee754_y0f(x) + float x; +#endif +{ + float z, s,c,ss,cc,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ + if(ix>=0x7f800000) return one/(x+x*x); + if(ix==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0)) + * where x0 = x-pi/4 + * Better formula: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) + cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + s = sinf(x); + c = cosf(x); + ss = s-c; + cc = s+c; + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = -cosf(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + if(ix>0x80000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x); + else { + u = pzerof(x); v = qzerof(x); + z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x); + } + return z; + } + if(ix<=0x32000000) { /* x < 2**-27 */ + return(u00 + tpi*__ieee754_logf(x)); + } + z = x*x; + u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); + v = one+z*(v01+z*(v02+z*(v03+z*v04))); + return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x))); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +#ifdef __STDC__ +static const float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + -7.0312500000e-02, /* 0xbd900000 */ + -8.0816707611e+00, /* 0xc1014e86 */ + -2.5706311035e+02, /* 0xc3808814 */ + -2.4852163086e+03, /* 0xc51b5376 */ + -5.2530439453e+03, /* 0xc5a4285a */ +}; +#ifdef __STDC__ +static const float pS8[5] = { +#else +static float pS8[5] = { +#endif + 1.1653436279e+02, /* 0x42e91198 */ + 3.8337448730e+03, /* 0x456f9beb */ + 4.0597855469e+04, /* 0x471e95db */ + 1.1675296875e+05, /* 0x47e4087c */ + 4.7627726562e+04, /* 0x473a0bba */ +}; +#ifdef __STDC__ +static const float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -1.1412546255e-11, /* 0xad48c58a */ + -7.0312492549e-02, /* 0xbd8fffff */ + -4.1596107483e+00, /* 0xc0851b88 */ + -6.7674766541e+01, /* 0xc287597b */ + -3.3123129272e+02, /* 0xc3a59d9b */ + -3.4643338013e+02, /* 0xc3ad3779 */ +}; +#ifdef __STDC__ +static const float pS5[5] = { +#else +static float pS5[5] = { +#endif + 6.0753936768e+01, /* 0x42730408 */ + 1.0512523193e+03, /* 0x44836813 */ + 5.9789707031e+03, /* 0x45bad7c4 */ + 9.6254453125e+03, /* 0x461665c8 */ + 2.4060581055e+03, /* 0x451660ee */ +}; + +#ifdef __STDC__ +static const float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -2.5470459075e-09, /* 0xb12f081b */ + -7.0311963558e-02, /* 0xbd8fffb8 */ + -2.4090321064e+00, /* 0xc01a2d95 */ + -2.1965976715e+01, /* 0xc1afba52 */ + -5.8079170227e+01, /* 0xc2685112 */ + -3.1447946548e+01, /* 0xc1fb9565 */ +}; +#ifdef __STDC__ +static const float pS3[5] = { +#else +static float pS3[5] = { +#endif + 3.5856033325e+01, /* 0x420f6c94 */ + 3.6151397705e+02, /* 0x43b4c1ca */ + 1.1936077881e+03, /* 0x44953373 */ + 1.1279968262e+03, /* 0x448cffe6 */ + 1.7358093262e+02, /* 0x432d94b8 */ +}; + +#ifdef __STDC__ +static const float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -8.8753431271e-08, /* 0xb3be98b7 */ + -7.0303097367e-02, /* 0xbd8ffb12 */ + -1.4507384300e+00, /* 0xbfb9b1cc */ + -7.6356959343e+00, /* 0xc0f4579f */ + -1.1193166733e+01, /* 0xc1331736 */ + -3.2336456776e+00, /* 0xc04ef40d */ +}; +#ifdef __STDC__ +static const float pS2[5] = { +#else +static float pS2[5] = { +#endif + 2.2220300674e+01, /* 0x41b1c32d */ + 1.3620678711e+02, /* 0x430834f0 */ + 2.7047027588e+02, /* 0x43873c32 */ + 1.5387539673e+02, /* 0x4319e01a */ + 1.4657617569e+01, /* 0x416a859a */ +}; + +#ifdef __STDC__ + static float pzerof(float x) +#else + static float pzerof(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float z,r,s; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = pR8; q= pS8;} + else if(ix>=0x40f71c58){p = pR5; q= pS5;} + else if(ix>=0x4036db68){p = pR3; q= pS3;} + else if(ix>=0x40000000){p = pR2; q= pS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +#ifdef __STDC__ +static const float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + 7.3242187500e-02, /* 0x3d960000 */ + 1.1768206596e+01, /* 0x413c4a93 */ + 5.5767340088e+02, /* 0x440b6b19 */ + 8.8591972656e+03, /* 0x460a6cca */ + 3.7014625000e+04, /* 0x471096a0 */ +}; +#ifdef __STDC__ +static const float qS8[6] = { +#else +static float qS8[6] = { +#endif + 1.6377603149e+02, /* 0x4323c6aa */ + 8.0983447266e+03, /* 0x45fd12c2 */ + 1.4253829688e+05, /* 0x480b3293 */ + 8.0330925000e+05, /* 0x49441ed4 */ + 8.4050156250e+05, /* 0x494d3359 */ + -3.4389928125e+05, /* 0xc8a7eb69 */ +}; + +#ifdef __STDC__ +static const float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.8408595828e-11, /* 0x2da1ec79 */ + 7.3242180049e-02, /* 0x3d95ffff */ + 5.8356351852e+00, /* 0x40babd86 */ + 1.3511157227e+02, /* 0x43071c90 */ + 1.0272437744e+03, /* 0x448067cd */ + 1.9899779053e+03, /* 0x44f8bf4b */ +}; +#ifdef __STDC__ +static const float qS5[6] = { +#else +static float qS5[6] = { +#endif + 8.2776611328e+01, /* 0x42a58da0 */ + 2.0778142090e+03, /* 0x4501dd07 */ + 1.8847289062e+04, /* 0x46933e94 */ + 5.6751113281e+04, /* 0x475daf1d */ + 3.5976753906e+04, /* 0x470c88c1 */ + -5.3543427734e+03, /* 0xc5a752be */ +}; + +#ifdef __STDC__ +static const float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 4.3774099900e-09, /* 0x3196681b */ + 7.3241114616e-02, /* 0x3d95ff70 */ + 3.3442313671e+00, /* 0x405607e3 */ + 4.2621845245e+01, /* 0x422a7cc5 */ + 1.7080809021e+02, /* 0x432acedf */ + 1.6673394775e+02, /* 0x4326bbe4 */ +}; +#ifdef __STDC__ +static const float qS3[6] = { +#else +static float qS3[6] = { +#endif + 4.8758872986e+01, /* 0x42430916 */ + 7.0968920898e+02, /* 0x44316c1c */ + 3.7041481934e+03, /* 0x4567825f */ + 6.4604252930e+03, /* 0x45c9e367 */ + 2.5163337402e+03, /* 0x451d4557 */ + -1.4924745178e+02, /* 0xc3153f59 */ +}; + +#ifdef __STDC__ +static const float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.5044444979e-07, /* 0x342189db */ + 7.3223426938e-02, /* 0x3d95f62a */ + 1.9981917143e+00, /* 0x3fffc4bf */ + 1.4495602608e+01, /* 0x4167edfd */ + 3.1666231155e+01, /* 0x41fd5471 */ + 1.6252708435e+01, /* 0x4182058c */ +}; +#ifdef __STDC__ +static const float qS2[6] = { +#else +static float qS2[6] = { +#endif + 3.0365585327e+01, /* 0x41f2ecb8 */ + 2.6934811401e+02, /* 0x4386ac8f */ + 8.4478375244e+02, /* 0x44533229 */ + 8.8293585205e+02, /* 0x445cbbe5 */ + 2.1266638184e+02, /* 0x4354aa98 */ + -5.3109550476e+00, /* 0xc0a9f358 */ +}; + +#ifdef __STDC__ + static float qzerof(float x) +#else + static float qzerof(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float s,r,z; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = qR8; q= qS8;} + else if(ix>=0x40f71c58){p = qR5; q= qS5;} + else if(ix>=0x4036db68){p = qR3; q= qS3;} + else if(ix>=0x40000000){p = qR2; q= qS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (-(float).125 + r/s)/x; +} diff --git a/newlib/libm/math/ef_j1.c b/newlib/libm/math/ef_j1.c new file mode 100644 index 000000000..a3e75f651 --- /dev/null +++ b/newlib/libm/math/ef_j1.c @@ -0,0 +1,439 @@ +/* ef_j1.c -- float version of e_j1.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static float ponef(float), qonef(float); +#else +static float ponef(), qonef(); +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +huge = 1e30, +one = 1.0, +invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ +tpi = 6.3661974669e-01, /* 0x3f22f983 */ + /* R0/S0 on [0,2] */ +r00 = -6.2500000000e-02, /* 0xbd800000 */ +r01 = 1.4070566976e-03, /* 0x3ab86cfd */ +r02 = -1.5995563444e-05, /* 0xb7862e36 */ +r03 = 4.9672799207e-08, /* 0x335557d2 */ +s01 = 1.9153760746e-02, /* 0x3c9ce859 */ +s02 = 1.8594678841e-04, /* 0x3942fab6 */ +s03 = 1.1771846857e-06, /* 0x359dffc2 */ +s04 = 5.0463624390e-09, /* 0x31ad6446 */ +s05 = 1.2354227016e-11; /* 0x2d59567e */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float __ieee754_j1f(float x) +#else + float __ieee754_j1f(x) + float x; +#endif +{ + float z, s,c,ss,cc,r,u,v,y; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return one/x; + y = fabsf(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(y); + c = cosf(y); + ss = -s-c; + cc = s-c; + if(ix<0x7f000000) { /* make sure y+y not overflow */ + z = cosf(y+y); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* + * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x) + * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x) + */ + if(ix>0x80000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(y); + else { + u = ponef(y); v = qonef(y); + z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(y); + } + if(hx<0) return -z; + else return z; + } + if(ix<0x32000000) { /* |x|<2**-27 */ + if(huge+x>one) return (float)0.5*x;/* inexact if x!=0 necessary */ + } + z = x*x; + r = z*(r00+z*(r01+z*(r02+z*r03))); + s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05)))); + r *= x; + return(x*(float)0.5+r/s); +} + +#ifdef __STDC__ +static const float U0[5] = { +#else +static float U0[5] = { +#endif + -1.9605709612e-01, /* 0xbe48c331 */ + 5.0443872809e-02, /* 0x3d4e9e3c */ + -1.9125689287e-03, /* 0xbafaaf2a */ + 2.3525259166e-05, /* 0x37c5581c */ + -9.1909917899e-08, /* 0xb3c56003 */ +}; +#ifdef __STDC__ +static const float V0[5] = { +#else +static float V0[5] = { +#endif + 1.9916731864e-02, /* 0x3ca3286a */ + 2.0255257550e-04, /* 0x3954644b */ + 1.3560879779e-06, /* 0x35b602d4 */ + 6.2274145840e-09, /* 0x31d5f8eb */ + 1.6655924903e-11, /* 0x2d9281cf */ +}; + +#ifdef __STDC__ + float __ieee754_y1f(float x) +#else + float __ieee754_y1f(x) + float x; +#endif +{ + float z, s,c,ss,cc,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ + if(ix>=0x7f800000) return one/(x+x*x); + if(ix==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(x); + c = cosf(x); + ss = -s-c; + cc = s-c; + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = cosf(x+x); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0)) + * where x0 = x-3pi/4 + * Better formula: + * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (cos(x) + sin(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x); + else { + u = ponef(x); v = qonef(x); + z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x); + } + return z; + } + if(ix<=0x24800000) { /* x < 2**-54 */ + return(-tpi/x); + } + z = x*x; + u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); + v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); + return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x)); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +#ifdef __STDC__ +static const float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + 1.1718750000e-01, /* 0x3df00000 */ + 1.3239480972e+01, /* 0x4153d4ea */ + 4.1205184937e+02, /* 0x43ce06a3 */ + 3.8747453613e+03, /* 0x45722bed */ + 7.9144794922e+03, /* 0x45f753d6 */ +}; +#ifdef __STDC__ +static const float ps8[5] = { +#else +static float ps8[5] = { +#endif + 1.1420736694e+02, /* 0x42e46a2c */ + 3.6509309082e+03, /* 0x45642ee5 */ + 3.6956207031e+04, /* 0x47105c35 */ + 9.7602796875e+04, /* 0x47bea166 */ + 3.0804271484e+04, /* 0x46f0a88b */ +}; + +#ifdef __STDC__ +static const float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.3199052094e-11, /* 0x2d68333f */ + 1.1718749255e-01, /* 0x3defffff */ + 6.8027510643e+00, /* 0x40d9b023 */ + 1.0830818176e+02, /* 0x42d89dca */ + 5.1763616943e+02, /* 0x440168b7 */ + 5.2871520996e+02, /* 0x44042dc6 */ +}; +#ifdef __STDC__ +static const float ps5[5] = { +#else +static float ps5[5] = { +#endif + 5.9280597687e+01, /* 0x426d1f55 */ + 9.9140142822e+02, /* 0x4477d9b1 */ + 5.3532670898e+03, /* 0x45a74a23 */ + 7.8446904297e+03, /* 0x45f52586 */ + 1.5040468750e+03, /* 0x44bc0180 */ +}; + +#ifdef __STDC__ +static const float pr3[6] = { +#else +static float pr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 3.0250391081e-09, /* 0x314fe10d */ + 1.1718686670e-01, /* 0x3defffab */ + 3.9329774380e+00, /* 0x407bb5e7 */ + 3.5119403839e+01, /* 0x420c7a45 */ + 9.1055007935e+01, /* 0x42b61c2a */ + 4.8559066772e+01, /* 0x42423c7c */ +}; +#ifdef __STDC__ +static const float ps3[5] = { +#else +static float ps3[5] = { +#endif + 3.4791309357e+01, /* 0x420b2a4d */ + 3.3676245117e+02, /* 0x43a86198 */ + 1.0468714600e+03, /* 0x4482dbe3 */ + 8.9081134033e+02, /* 0x445eb3ed */ + 1.0378793335e+02, /* 0x42cf936c */ +}; + +#ifdef __STDC__ +static const float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.0771083225e-07, /* 0x33e74ea8 */ + 1.1717621982e-01, /* 0x3deffa16 */ + 2.3685150146e+00, /* 0x401795c0 */ + 1.2242610931e+01, /* 0x4143e1bc */ + 1.7693971634e+01, /* 0x418d8d41 */ + 5.0735230446e+00, /* 0x40a25a4d */ +}; +#ifdef __STDC__ +static const float ps2[5] = { +#else +static float ps2[5] = { +#endif + 2.1436485291e+01, /* 0x41ab7dec */ + 1.2529022980e+02, /* 0x42fa9499 */ + 2.3227647400e+02, /* 0x436846c7 */ + 1.1767937469e+02, /* 0x42eb5bd7 */ + 8.3646392822e+00, /* 0x4105d590 */ +}; + +#ifdef __STDC__ + static float ponef(float x) +#else + static float ponef(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float z,r,s; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = pr8; q= ps8;} + else if(ix>=0x40f71c58){p = pr5; q= ps5;} + else if(ix>=0x4036db68){p = pr3; q= ps3;} + else if(ix>=0x40000000){p = pr2; q= ps2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +#ifdef __STDC__ +static const float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + -1.0253906250e-01, /* 0xbdd20000 */ + -1.6271753311e+01, /* 0xc1822c8d */ + -7.5960174561e+02, /* 0xc43de683 */ + -1.1849806641e+04, /* 0xc639273a */ + -4.8438511719e+04, /* 0xc73d3683 */ +}; +#ifdef __STDC__ +static const float qs8[6] = { +#else +static float qs8[6] = { +#endif + 1.6139537048e+02, /* 0x43216537 */ + 7.8253862305e+03, /* 0x45f48b17 */ + 1.3387534375e+05, /* 0x4802bcd6 */ + 7.1965775000e+05, /* 0x492fb29c */ + 6.6660125000e+05, /* 0x4922be94 */ + -2.9449025000e+05, /* 0xc88fcb48 */ +}; + +#ifdef __STDC__ +static const float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -2.0897993405e-11, /* 0xadb7d219 */ + -1.0253904760e-01, /* 0xbdd1fffe */ + -8.0564479828e+00, /* 0xc100e736 */ + -1.8366960144e+02, /* 0xc337ab6b */ + -1.3731937256e+03, /* 0xc4aba633 */ + -2.6124443359e+03, /* 0xc523471c */ +}; +#ifdef __STDC__ +static const float qs5[6] = { +#else +static float qs5[6] = { +#endif + 8.1276550293e+01, /* 0x42a28d98 */ + 1.9917987061e+03, /* 0x44f8f98f */ + 1.7468484375e+04, /* 0x468878f8 */ + 4.9851425781e+04, /* 0x4742bb6d */ + 2.7948074219e+04, /* 0x46da5826 */ + -4.7191835938e+03, /* 0xc5937978 */ +}; + +#ifdef __STDC__ +static const float qr3[6] = { +#else +static float qr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -5.0783124372e-09, /* 0xb1ae7d4f */ + -1.0253783315e-01, /* 0xbdd1ff5b */ + -4.6101160049e+00, /* 0xc0938612 */ + -5.7847221375e+01, /* 0xc267638e */ + -2.2824453735e+02, /* 0xc3643e9a */ + -2.1921012878e+02, /* 0xc35b35cb */ +}; +#ifdef __STDC__ +static const float qs3[6] = { +#else +static float qs3[6] = { +#endif + 4.7665153503e+01, /* 0x423ea91e */ + 6.7386511230e+02, /* 0x4428775e */ + 3.3801528320e+03, /* 0x45534272 */ + 5.5477290039e+03, /* 0x45ad5dd5 */ + 1.9031191406e+03, /* 0x44ede3d0 */ + -1.3520118713e+02, /* 0xc3073381 */ +}; + +#ifdef __STDC__ +static const float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -1.7838172539e-07, /* 0xb43f8932 */ + -1.0251704603e-01, /* 0xbdd1f475 */ + -2.7522056103e+00, /* 0xc0302423 */ + -1.9663616180e+01, /* 0xc19d4f16 */ + -4.2325313568e+01, /* 0xc2294d1f */ + -2.1371921539e+01, /* 0xc1aaf9b2 */ +}; +#ifdef __STDC__ +static const float qs2[6] = { +#else +static float qs2[6] = { +#endif + 2.9533363342e+01, /* 0x41ec4454 */ + 2.5298155212e+02, /* 0x437cfb47 */ + 7.5750280762e+02, /* 0x443d602e */ + 7.3939318848e+02, /* 0x4438d92a */ + 1.5594900513e+02, /* 0x431bf2f2 */ + -4.9594988823e+00, /* 0xc09eb437 */ +}; + +#ifdef __STDC__ + static float qonef(float x) +#else + static float qonef(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float s,r,z; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qr8; q= qs8;} + else if(ix>=0x40f71c58){p = qr5; q= qs5;} + else if(ix>=0x4036db68){p = qr3; q= qs3;} + else if(ix>=0x40000000){p = qr2; q= qs2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return ((float).375 + r/s)/x; +} diff --git a/newlib/libm/math/ef_jn.c b/newlib/libm/math/ef_jn.c new file mode 100644 index 000000000..04a93b685 --- /dev/null +++ b/newlib/libm/math/ef_jn.c @@ -0,0 +1,207 @@ +/* ef_jn.c -- float version of e_jn.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ +two = 2.0000000000e+00, /* 0x40000000 */ +one = 1.0000000000e+00; /* 0x3F800000 */ + +#ifdef __STDC__ +static const float zero = 0.0000000000e+00; +#else +static float zero = 0.0000000000e+00; +#endif + +#ifdef __STDC__ + float __ieee754_jnf(int n, float x) +#else + float __ieee754_jnf(n,x) + int n; float x; +#endif +{ + __int32_t i,hx,ix, sgn; + float a, b, temp, di; + float z, w; + + /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x) + * Thus, J(-n,x) = J(n,-x) + */ + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* if J(n,NaN) is NaN */ + if(ix>0x7f800000) return x+x; + if(n<0){ + n = -n; + x = -x; + hx ^= 0x80000000; + } + if(n==0) return(__ieee754_j0f(x)); + if(n==1) return(__ieee754_j1f(x)); + sgn = (n&1)&(hx>>31); /* even n -- 0, odd n -- sign(x) */ + x = fabsf(x); + if(ix==0||ix>=0x7f800000) /* if x is 0 or inf */ + b = zero; + else if((float)n<=x) { + /* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */ + a = __ieee754_j0f(x); + b = __ieee754_j1f(x); + for(i=1;i<n;i++){ + temp = b; + b = b*((float)(i+i)/x) - a; /* avoid underflow */ + a = temp; + } + } else { + if(ix<0x30800000) { /* x < 2**-29 */ + /* x is tiny, return the first Taylor expansion of J(n,x) + * J(n,x) = 1/n!*(x/2)^n - ... + */ + if(n>33) /* underflow */ + b = zero; + else { + temp = x*(float)0.5; b = temp; + for (a=one,i=2;i<=n;i++) { + a *= (float)i; /* a = n! */ + b *= temp; /* b = (x/2)^n */ + } + b = b/a; + } + } else { + /* use backward recurrence */ + /* x x^2 x^2 + * J(n,x)/J(n-1,x) = ---- ------ ------ ..... + * 2n - 2(n+1) - 2(n+2) + * + * 1 1 1 + * (for large x) = ---- ------ ------ ..... + * 2n 2(n+1) 2(n+2) + * -- - ------ - ------ - + * x x x + * + * Let w = 2n/x and h=2/x, then the above quotient + * is equal to the continued fraction: + * 1 + * = ----------------------- + * 1 + * w - ----------------- + * 1 + * w+h - --------- + * w+2h - ... + * + * To determine how many terms needed, let + * Q(0) = w, Q(1) = w(w+h) - 1, + * Q(k) = (w+k*h)*Q(k-1) - Q(k-2), + * When Q(k) > 1e4 good for single + * When Q(k) > 1e9 good for double + * When Q(k) > 1e17 good for quadruple + */ + /* determine k */ + float t,v; + float q0,q1,h,tmp; __int32_t k,m; + w = (n+n)/(float)x; h = (float)2.0/(float)x; + q0 = w; z = w+h; q1 = w*z - (float)1.0; k=1; + while(q1<(float)1.0e9) { + k += 1; z += h; + tmp = z*q1 - q0; + q0 = q1; + q1 = tmp; + } + m = n+n; + for(t=zero, i = 2*(n+k); i>=m; i -= 2) t = one/(i/x-t); + a = t; + b = one; + /* estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n) + * Hence, if n*(log(2n/x)) > ... + * single 8.8722839355e+01 + * double 7.09782712893383973096e+02 + * long double 1.1356523406294143949491931077970765006170e+04 + * then recurrent value may overflow and the result is + * likely underflow to zero + */ + tmp = n; + v = two/x; + tmp = tmp*__ieee754_logf(fabsf(v*tmp)); + if(tmp<(float)8.8721679688e+01) { + for(i=n-1,di=(float)(i+i);i>0;i--){ + temp = b; + b *= di; + b = b/x - a; + a = temp; + di -= two; + } + } else { + for(i=n-1,di=(float)(i+i);i>0;i--){ + temp = b; + b *= di; + b = b/x - a; + a = temp; + di -= two; + /* scale b to avoid spurious overflow */ + if(b>(float)1e10) { + a /= b; + t /= b; + b = one; + } + } + } + b = (t*__ieee754_j0f(x)/b); + } + } + if(sgn==1) return -b; else return b; +} + +#ifdef __STDC__ + float __ieee754_ynf(int n, float x) +#else + float __ieee754_ynf(n,x) + int n; float x; +#endif +{ + __int32_t i,hx,ix,ib; + __int32_t sign; + float a, b, temp; + + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* if Y(n,NaN) is NaN */ + if(ix>0x7f800000) return x+x; + if(ix==0) return -one/zero; + if(hx<0) return zero/zero; + sign = 1; + if(n<0){ + n = -n; + sign = 1 - ((n&1)<<1); + } + if(n==0) return(__ieee754_y0f(x)); + if(n==1) return(sign*__ieee754_y1f(x)); + if(ix==0x7f800000) return zero; + + a = __ieee754_y0f(x); + b = __ieee754_y1f(x); + /* quit if b is -inf */ + GET_FLOAT_WORD(ib,b); + for(i=1;i<n&&ib!=0xff800000;i++){ + temp = b; + b = ((float)(i+i)/x)*b - a; + GET_FLOAT_WORD(ib,b); + a = temp; + } + if(sign>0) return b; else return -b; +} diff --git a/newlib/libm/math/ef_log.c b/newlib/libm/math/ef_log.c new file mode 100644 index 000000000..93f072c56 --- /dev/null +++ b/newlib/libm/math/ef_log.c @@ -0,0 +1,92 @@ +/* ef_log.c -- float version of e_log.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +ln2_hi = 6.9313812256e-01, /* 0x3f317180 */ +ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */ +two25 = 3.355443200e+07, /* 0x4c000000 */ +Lg1 = 6.6666668653e-01, /* 3F2AAAAB */ +Lg2 = 4.0000000596e-01, /* 3ECCCCCD */ +Lg3 = 2.8571429849e-01, /* 3E924925 */ +Lg4 = 2.2222198546e-01, /* 3E638E29 */ +Lg5 = 1.8183572590e-01, /* 3E3A3325 */ +Lg6 = 1.5313838422e-01, /* 3E1CD04F */ +Lg7 = 1.4798198640e-01; /* 3E178897 */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float __ieee754_logf(float x) +#else + float __ieee754_logf(x) + float x; +#endif +{ + float hfsq,f,s,z,R,w,t1,t2,dk; + __int32_t k,ix,i,j; + + GET_FLOAT_WORD(ix,x); + + k=0; + if (ix < 0x00800000) { /* x < 2**-126 */ + if ((ix&0x7fffffff)==0) + return -two25/zero; /* log(+-0)=-inf */ + if (ix<0) return (x-x)/zero; /* log(-#) = NaN */ + k -= 25; x *= two25; /* subnormal number, scale up x */ + GET_FLOAT_WORD(ix,x); + } + if (ix >= 0x7f800000) return x+x; + k += (ix>>23)-127; + ix &= 0x007fffff; + i = (ix+(0x95f64<<3))&0x800000; + SET_FLOAT_WORD(x,ix|(i^0x3f800000)); /* normalize x or x/2 */ + k += (i>>23); + f = x-(float)1.0; + if((0x007fffff&(15+ix))<16) { /* |f| < 2**-20 */ + if(f==zero) if(k==0) return zero; else {dk=(float)k; + return dk*ln2_hi+dk*ln2_lo;} + R = f*f*((float)0.5-(float)0.33333333333333333*f); + if(k==0) return f-R; else {dk=(float)k; + return dk*ln2_hi-((R-dk*ln2_lo)-f);} + } + s = f/((float)2.0+f); + dk = (float)k; + z = s*s; + i = ix-(0x6147a<<3); + w = z*z; + j = (0x6b851<<3)-ix; + t1= w*(Lg2+w*(Lg4+w*Lg6)); + t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7))); + i |= j; + R = t2+t1; + if(i>0) { + hfsq=(float)0.5*f*f; + if(k==0) return f-(hfsq-s*(hfsq+R)); else + return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f); + } else { + if(k==0) return f-s*(f-R); else + return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f); + } +} diff --git a/newlib/libm/math/ef_log10.c b/newlib/libm/math/ef_log10.c new file mode 100644 index 000000000..63fee9b9d --- /dev/null +++ b/newlib/libm/math/ef_log10.c @@ -0,0 +1,62 @@ +/* ef_log10.c -- float version of e_log10.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +two25 = 3.3554432000e+07, /* 0x4c000000 */ +ivln10 = 4.3429449201e-01, /* 0x3ede5bd9 */ +log10_2hi = 3.0102920532e-01, /* 0x3e9a2080 */ +log10_2lo = 7.9034151668e-07; /* 0x355427db */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float __ieee754_log10f(float x) +#else + float __ieee754_log10f(x) + float x; +#endif +{ + float y,z; + __int32_t i,k,hx; + + GET_FLOAT_WORD(hx,x); + + k=0; + if (hx < 0x00800000) { /* x < 2**-126 */ + if ((hx&0x7fffffff)==0) + return -two25/zero; /* log(+-0)=-inf */ + if (hx<0) return (x-x)/zero; /* log(-#) = NaN */ + k -= 25; x *= two25; /* subnormal number, scale up x */ + GET_FLOAT_WORD(hx,x); + } + if (hx >= 0x7f800000) return x+x; + k += (hx>>23)-127; + i = ((__uint32_t)k&0x80000000)>>31; + hx = (hx&0x007fffff)|((0x7f-i)<<23); + y = (float)(k+i); + SET_FLOAT_WORD(x,hx); + z = y*log10_2lo + ivln10*__ieee754_logf(x); + return z+y*log10_2hi; +} diff --git a/newlib/libm/math/ef_pow.c b/newlib/libm/math/ef_pow.c new file mode 100644 index 000000000..40b679d6e --- /dev/null +++ b/newlib/libm/math/ef_pow.c @@ -0,0 +1,252 @@ +/* ef_pow.c -- float version of e_pow.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +bp[] = {1.0, 1.5,}, +dp_h[] = { 0.0, 5.84960938e-01,}, /* 0x3f15c000 */ +dp_l[] = { 0.0, 1.56322085e-06,}, /* 0x35d1cfdc */ +zero = 0.0, +one = 1.0, +two = 2.0, +two24 = 16777216.0, /* 0x4b800000 */ +huge = 1.0e30, +tiny = 1.0e-30, + /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ +L1 = 6.0000002384e-01, /* 0x3f19999a */ +L2 = 4.2857143283e-01, /* 0x3edb6db7 */ +L3 = 3.3333334327e-01, /* 0x3eaaaaab */ +L4 = 2.7272811532e-01, /* 0x3e8ba305 */ +L5 = 2.3066075146e-01, /* 0x3e6c3255 */ +L6 = 2.0697501302e-01, /* 0x3e53f142 */ +P1 = 1.6666667163e-01, /* 0x3e2aaaab */ +P2 = -2.7777778450e-03, /* 0xbb360b61 */ +P3 = 6.6137559770e-05, /* 0x388ab355 */ +P4 = -1.6533901999e-06, /* 0xb5ddea0e */ +P5 = 4.1381369442e-08, /* 0x3331bb4c */ +lg2 = 6.9314718246e-01, /* 0x3f317218 */ +lg2_h = 6.93145752e-01, /* 0x3f317200 */ +lg2_l = 1.42860654e-06, /* 0x35bfbe8c */ +ovt = 4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */ +cp = 9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */ +cp_h = 9.6179199219e-01, /* 0x3f763800 =head of cp */ +cp_l = 4.7017383622e-06, /* 0x369dc3a0 =tail of cp_h */ +ivln2 = 1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */ +ivln2_h = 1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/ +ivln2_l = 7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/ + +#ifdef __STDC__ + float __ieee754_powf(float x, float y) +#else + float __ieee754_powf(x,y) + float x, y; +#endif +{ + float z,ax,z_h,z_l,p_h,p_l; + float y1,t1,t2,r,s,t,u,v,w; + __int32_t i,j,k,yisint,n; + __int32_t hx,hy,ix,iy,is; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hy,y); + ix = hx&0x7fffffff; iy = hy&0x7fffffff; + + /* y==zero: x**0 = 1 */ + if(iy==0) return one; + + /* +-NaN return x+y */ + if(ix > 0x7f800000 || + iy > 0x7f800000) + return x+y; + + /* determine if y is an odd int when x < 0 + * yisint = 0 ... y is not an integer + * yisint = 1 ... y is an odd int + * yisint = 2 ... y is an even int + */ + yisint = 0; + if(hx<0) { + if(iy>=0x4b800000) yisint = 2; /* even integer y */ + else if(iy>=0x3f800000) { + k = (iy>>23)-0x7f; /* exponent */ + j = iy>>(23-k); + if((j<<(23-k))==iy) yisint = 2-(j&1); + } + } + + /* special value of y */ + if (iy==0x7f800000) { /* y is +-inf */ + if (ix==0x3f800000) + return y - y; /* inf**+-1 is NaN */ + else if (ix > 0x3f800000)/* (|x|>1)**+-inf = inf,0 */ + return (hy>=0)? y: zero; + else /* (|x|<1)**-,+inf = inf,0 */ + return (hy<0)?-y: zero; + } + if(iy==0x3f800000) { /* y is +-1 */ + if(hy<0) return one/x; else return x; + } + if(hy==0x40000000) return x*x; /* y is 2 */ + if(hy==0x3f000000) { /* y is 0.5 */ + if(hx>=0) /* x >= +0 */ + return __ieee754_sqrtf(x); + } + + ax = fabsf(x); + /* special value of x */ + if(ix==0x7f800000||ix==0||ix==0x3f800000){ + z = ax; /*x is +-0,+-inf,+-1*/ + if(hy<0) z = one/z; /* z = (1/|x|) */ + if(hx<0) { + if(((ix-0x3f800000)|yisint)==0) { + z = (z-z)/(z-z); /* (-1)**non-int is NaN */ + } else if(yisint==1) + z = -z; /* (x<0)**odd = -(|x|**odd) */ + } + return z; + } + + /* (x<0)**(non-int) is NaN */ + if(((((__uint32_t)hx>>31)-1)|yisint)==0) return (x-x)/(x-x); + + /* |y| is huge */ + if(iy>0x4d000000) { /* if |y| > 2**27 */ + /* over/underflow if x is not close to one */ + if(ix<0x3f7ffff8) return (hy<0)? huge*huge:tiny*tiny; + if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny; + /* now |1-x| is tiny <= 2**-20, suffice to compute + log(x) by x-x^2/2+x^3/3-x^4/4 */ + t = x-1; /* t has 20 trailing zeros */ + w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25)); + u = ivln2_h*t; /* ivln2_h has 16 sig. bits */ + v = t*ivln2_l-w*ivln2; + t1 = u+v; + GET_FLOAT_WORD(is,t1); + SET_FLOAT_WORD(t1,is&0xfffff000); + t2 = v-(t1-u); + } else { + float s2,s_h,s_l,t_h,t_l; + n = 0; + /* take care subnormal number */ + if(ix<0x00800000) + {ax *= two24; n -= 24; GET_FLOAT_WORD(ix,ax); } + n += ((ix)>>23)-0x7f; + j = ix&0x007fffff; + /* determine interval */ + ix = j|0x3f800000; /* normalize ix */ + if(j<=0x1cc471) k=0; /* |x|<sqrt(3/2) */ + else if(j<0x5db3d7) k=1; /* |x|<sqrt(3) */ + else {k=0;n+=1;ix -= 0x00800000;} + SET_FLOAT_WORD(ax,ix); + + /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */ + u = ax-bp[k]; /* bp[0]=1.0, bp[1]=1.5 */ + v = one/(ax+bp[k]); + s = u*v; + s_h = s; + GET_FLOAT_WORD(is,s_h); + SET_FLOAT_WORD(s_h,is&0xfffff000); + /* t_h=ax+bp[k] High */ + SET_FLOAT_WORD(t_h,((ix>>1)|0x20000000)+0x0040000+(k<<21)); + t_l = ax - (t_h-bp[k]); + s_l = v*((u-s_h*t_h)-s_h*t_l); + /* compute log(ax) */ + s2 = s*s; + r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6))))); + r += s_l*(s_h+s); + s2 = s_h*s_h; + t_h = (float)3.0+s2+r; + GET_FLOAT_WORD(is,t_h); + SET_FLOAT_WORD(t_h,is&0xfffff000); + t_l = r-((t_h-(float)3.0)-s2); + /* u+v = s*(1+...) */ + u = s_h*t_h; + v = s_l*t_h+t_l*s; + /* 2/(3log2)*(s+...) */ + p_h = u+v; + GET_FLOAT_WORD(is,p_h); + SET_FLOAT_WORD(p_h,is&0xfffff000); + p_l = v-(p_h-u); + z_h = cp_h*p_h; /* cp_h+cp_l = 2/(3*log2) */ + z_l = cp_l*p_h+p_l*cp+dp_l[k]; + /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */ + t = (float)n; + t1 = (((z_h+z_l)+dp_h[k])+t); + GET_FLOAT_WORD(is,t1); + SET_FLOAT_WORD(t1,is&0xfffff000); + t2 = z_l-(((t1-t)-dp_h[k])-z_h); + } + + s = one; /* s (sign of result -ve**odd) = -1 else = 1 */ + if(((((__uint32_t)hx>>31)-1)|(yisint-1))==0) + s = -one; /* (-ve)**(odd int) */ + + /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */ + GET_FLOAT_WORD(is,y); + SET_FLOAT_WORD(y1,is&0xfffff000); + p_l = (y-y1)*t1+y*t2; + p_h = y1*t1; + z = p_l+p_h; + GET_FLOAT_WORD(j,z); + if (j>0x43000000) /* if z > 128 */ + return s*huge*huge; /* overflow */ + else if (j==0x43000000) { /* if z == 128 */ + if(p_l+ovt>z-p_h) return s*huge*huge; /* overflow */ + } + else if ((j&0x7fffffff)>0x43160000) /* z <= -150 */ + return s*tiny*tiny; /* underflow */ + else if (j==0xc3160000){ /* z == -150 */ + if(p_l<=z-p_h) return s*tiny*tiny; /* underflow */ + } + /* + * compute 2**(p_h+p_l) + */ + i = j&0x7fffffff; + k = (i>>23)-0x7f; + n = 0; + if(i>0x3f000000) { /* if |z| > 0.5, set n = [z+0.5] */ + n = j+(0x00800000>>(k+1)); + k = ((n&0x7fffffff)>>23)-0x7f; /* new k for n */ + SET_FLOAT_WORD(t,n&~(0x007fffff>>k)); + n = ((n&0x007fffff)|0x00800000)>>(23-k); + if(j<0) n = -n; + p_h -= t; + } + t = p_l+p_h; + GET_FLOAT_WORD(is,t); + SET_FLOAT_WORD(t,is&0xfffff000); + u = t*lg2_h; + v = (p_l-(t-p_h))*lg2+t*lg2_l; + z = u+v; + w = v-(z-u); + t = z*z; + t1 = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + r = (z*t1)/(t1-two)-(w+z*w); + z = one-(r-z); + GET_FLOAT_WORD(j,z); + j += (n<<23); + if((j>>23)<=0) z = scalbnf(z,(int)n); /* subnormal output */ + else SET_FLOAT_WORD(z,j); + return s*z; +} diff --git a/newlib/libm/math/ef_rem_pio2.c b/newlib/libm/math/ef_rem_pio2.c new file mode 100644 index 000000000..e91aa47f3 --- /dev/null +++ b/newlib/libm/math/ef_rem_pio2.c @@ -0,0 +1,193 @@ +/* ef_rem_pio2.c -- float version of e_rem_pio2.c + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_rem_pio2f(x,y) + * + * return the remainder of x rem pi/2 in y[0]+y[1] + * use __kernel_rem_pio2f() + */ + +#include "fdlibm.h" + +/* + * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi + */ +#ifdef __STDC__ +static const __int32_t two_over_pi[] = { +#else +static __int32_t two_over_pi[] = { +#endif +0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC, +0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62, +0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63, +0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A, +0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09, +0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29, +0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44, +0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41, +0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C, +0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8, +0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11, +0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF, +0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E, +0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5, +0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92, +0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08, +0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0, +0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3, +0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85, +0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80, +0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA, +0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B, +}; + +/* This array is like the one in e_rem_pio2.c, but the numbers are + single precision and the last 8 bits are forced to 0. */ +#ifdef __STDC__ +static const __int32_t npio2_hw[] = { +#else +static __int32_t npio2_hw[] = { +#endif +0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00, +0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00, +0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100, +0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00, +0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00, +0x4242c700, 0x42490f00 +}; + +/* + * invpio2: 24 bits of 2/pi + * pio2_1: first 17 bit of pi/2 + * pio2_1t: pi/2 - pio2_1 + * pio2_2: second 17 bit of pi/2 + * pio2_2t: pi/2 - (pio2_1+pio2_2) + * pio2_3: third 17 bit of pi/2 + * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3) + */ + +#ifdef __STDC__ +static const float +#else +static float +#endif +zero = 0.0000000000e+00, /* 0x00000000 */ +half = 5.0000000000e-01, /* 0x3f000000 */ +two8 = 2.5600000000e+02, /* 0x43800000 */ +invpio2 = 6.3661980629e-01, /* 0x3f22f984 */ +pio2_1 = 1.5707855225e+00, /* 0x3fc90f80 */ +pio2_1t = 1.0804334124e-05, /* 0x37354443 */ +pio2_2 = 1.0804273188e-05, /* 0x37354400 */ +pio2_2t = 6.0770999344e-11, /* 0x2e85a308 */ +pio2_3 = 6.0770943833e-11, /* 0x2e85a300 */ +pio2_3t = 6.1232342629e-17; /* 0x248d3132 */ + +#ifdef __STDC__ + __int32_t __ieee754_rem_pio2f(float x, float *y) +#else + __int32_t __ieee754_rem_pio2f(x,y) + float x,y[]; +#endif +{ + float z,w,t,r,fn; + float tx[3]; + __int32_t i,j,n,ix,hx; + int e0,nx; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix<=0x3f490fd8) /* |x| ~<= pi/4 , no need for reduction */ + {y[0] = x; y[1] = 0; return 0;} + if(ix<0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */ + if(hx>0) { + z = x - pio2_1; + if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ + y[0] = z - pio2_1t; + y[1] = (z-y[0])-pio2_1t; + } else { /* near pi/2, use 24+24+24 bit pi */ + z -= pio2_2; + y[0] = z - pio2_2t; + y[1] = (z-y[0])-pio2_2t; + } + return 1; + } else { /* negative x */ + z = x + pio2_1; + if((ix&0xfffffff0)!=0x3fc90fd0) { /* 24+24 bit pi OK */ + y[0] = z + pio2_1t; + y[1] = (z-y[0])+pio2_1t; + } else { /* near pi/2, use 24+24+24 bit pi */ + z += pio2_2; + y[0] = z + pio2_2t; + y[1] = (z-y[0])+pio2_2t; + } + return -1; + } + } + if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */ + t = fabsf(x); + n = (__int32_t) (t*invpio2+half); + fn = (float)n; + r = t-fn*pio2_1; + w = fn*pio2_1t; /* 1st round good to 40 bit */ + if(n<32&&(ix&0xffffff00)!=npio2_hw[n-1]) { + y[0] = r-w; /* quick check no cancellation */ + } else { + __uint32_t high; + j = ix>>23; + y[0] = r-w; + GET_FLOAT_WORD(high,y[0]); + i = j-((high>>23)&0xff); + if(i>8) { /* 2nd iteration needed, good to 57 */ + t = r; + w = fn*pio2_2; + r = t-w; + w = fn*pio2_2t-((t-r)-w); + y[0] = r-w; + GET_FLOAT_WORD(high,y[0]); + i = j-((high>>23)&0xff); + if(i>25) { /* 3rd iteration need, 74 bits acc */ + t = r; /* will cover all possible cases */ + w = fn*pio2_3; + r = t-w; + w = fn*pio2_3t-((t-r)-w); + y[0] = r-w; + } + } + } + y[1] = (r-y[0])-w; + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + else return n; + } + /* + * all other (large) arguments + */ + if(ix>=0x7f800000) { /* x is inf or NaN */ + y[0]=y[1]=x-x; return 0; + } + /* set z = scalbn(|x|,ilogb(x)-7) */ + e0 = (int)((ix>>23)-134); /* e0 = ilogb(z)-7; */ + SET_FLOAT_WORD(z, ix - ((__int32_t)e0<<23)); + for(i=0;i<2;i++) { + tx[i] = (float)((__int32_t)(z)); + z = (z-tx[i])*two8; + } + tx[2] = z; + nx = 3; + while(tx[nx-1]==zero) nx--; /* skip zero term */ + n = __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi); + if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;} + return n; +} diff --git a/newlib/libm/math/ef_remainder.c b/newlib/libm/math/ef_remainder.c new file mode 100644 index 000000000..8ce7fac99 --- /dev/null +++ b/newlib/libm/math/ef_remainder.c @@ -0,0 +1,68 @@ +/* ef_remainder.c -- float version of e_remainder.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + + +#ifdef __STDC__ + float __ieee754_remainderf(float x, float p) +#else + float __ieee754_remainderf(x,p) + float x,p; +#endif +{ + __int32_t hx,hp; + __uint32_t sx; + float p_half; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hp,p); + sx = hx&0x80000000; + hp &= 0x7fffffff; + hx &= 0x7fffffff; + + /* purge off exception values */ + if(hp==0) return (x*p)/(x*p); /* p = 0 */ + if((hx>=0x7f800000)|| /* x not finite */ + ((hp>0x7f800000))) /* p is NaN */ + return (x*p)/(x*p); + + + if (hp<=0x7effffff) x = __ieee754_fmodf(x,p+p); /* now x < 2p */ + if ((hx-hp)==0) return zero*x; + x = fabsf(x); + p = fabsf(p); + if (hp<0x01000000) { + if(x+x>p) { + x-=p; + if(x+x>=p) x -= p; + } + } else { + p_half = (float)0.5*p; + if(x>p_half) { + x-=p; + if(x>=p_half) x -= p; + } + } + GET_FLOAT_WORD(hx,x); + SET_FLOAT_WORD(x,hx^sx); + return x; +} diff --git a/newlib/libm/math/ef_scalb.c b/newlib/libm/math/ef_scalb.c new file mode 100644 index 000000000..3677a3b1f --- /dev/null +++ b/newlib/libm/math/ef_scalb.c @@ -0,0 +1,53 @@ +/* ef_scalb.c -- float version of e_scalb.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <limits.h> + +#ifdef _SCALB_INT +#ifdef __STDC__ + float __ieee754_scalbf(float x, int fn) +#else + float __ieee754_scalbf(x,fn) + float x; int fn; +#endif +#else +#ifdef __STDC__ + float __ieee754_scalbf(float x, float fn) +#else + float __ieee754_scalbf(x,fn) + float x, fn; +#endif +#endif +{ +#ifdef _SCALB_INT + return scalbnf(x,fn); +#else + if (isnanf(x)||isnanf(fn)) return x*fn; + if (!finitef(fn)) { + if(fn>(float)0.0) return x*fn; + else return x/(-fn); + } + if (rintf(fn)!=fn) return (fn-fn)/(fn-fn); +#if INT_MAX > 65000 + if ( fn > (float)65000.0) return scalbnf(x, 65000); + if (-fn > (float)65000.0) return scalbnf(x,-65000); +#else + if ( fn > (float)32000.0) return scalbnf(x, 32000); + if (-fn > (float)32000.0) return scalbnf(x,-32000); +#endif + return scalbnf(x,(int)fn); +#endif +} diff --git a/newlib/libm/math/ef_sinh.c b/newlib/libm/math/ef_sinh.c new file mode 100644 index 000000000..375198344 --- /dev/null +++ b/newlib/libm/math/ef_sinh.c @@ -0,0 +1,63 @@ +/* ef_sinh.c -- float version of e_sinh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0, shuge = 1.0e37; +#else +static float one = 1.0, shuge = 1.0e37; +#endif + +#ifdef __STDC__ + float __ieee754_sinhf(float x) +#else + float __ieee754_sinhf(x) + float x; +#endif +{ + float t,w,h; + __int32_t ix,jx; + + GET_FLOAT_WORD(jx,x); + ix = jx&0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7f800000) return x+x; + + h = 0.5; + if (jx<0) h = -h; + /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */ + if (ix < 0x41b00000) { /* |x|<22 */ + if (ix<0x31800000) /* |x|<2**-28 */ + if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */ + t = expm1f(fabsf(x)); + if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one)); + return h*(t+t/(t+one)); + } + + /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */ + if (ix < 0x42b17180) return h*__ieee754_expf(fabsf(x)); + + /* |x| in [log(maxdouble), overflowthresold] */ + if (ix<=0x42b2d4fc) { + w = __ieee754_expf((float)0.5*fabsf(x)); + t = h*w; + return t*w; + } + + /* |x| > overflowthresold, sinh(x) overflow */ + return x*shuge; +} diff --git a/newlib/libm/math/ef_sqrt.c b/newlib/libm/math/ef_sqrt.c new file mode 100644 index 000000000..aabbc51ce --- /dev/null +++ b/newlib/libm/math/ef_sqrt.c @@ -0,0 +1,92 @@ +/* ef_sqrtf.c -- float version of e_sqrt.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0, tiny=1.0e-30; +#else +static float one = 1.0, tiny=1.0e-30; +#endif + +#ifdef __STDC__ + float __ieee754_sqrtf(float x) +#else + float __ieee754_sqrtf(x) + float x; +#endif +{ + float z; + __int32_t sign = (__int32_t)0x80000000; + __uint32_t r; + __int32_t ix,s,q,m,t,i; + + GET_FLOAT_WORD(ix,x); + + /* take care of Inf and NaN */ + if((ix&0x7f800000L)==0x7f800000L) { + return x*x+x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf + sqrt(-inf)=sNaN */ + } + /* take care of zero */ + if(ix<=0) { + if((ix&(~sign))==0) return x;/* sqrt(+-0) = +-0 */ + else if(ix<0) + return (x-x)/(x-x); /* sqrt(-ve) = sNaN */ + } + /* normalize x */ + m = (ix>>23); + if(m==0) { /* subnormal x */ + for(i=0;(ix&0x00800000L)==0;i++) ix<<=1; + m -= i-1; + } + m -= 127; /* unbias exponent */ + ix = (ix&0x007fffffL)|0x00800000L; + if(m&1) /* odd m, double x to make it even */ + ix += ix; + m >>= 1; /* m = [m/2] */ + + /* generate sqrt(x) bit by bit */ + ix += ix; + q = s = 0; /* q = sqrt(x) */ + r = 0x01000000L; /* r = moving bit from right to left */ + + while(r!=0) { + t = s+r; + if(t<=ix) { + s = t+r; + ix -= t; + q += r; + } + ix += ix; + r>>=1; + } + + /* use floating add to find out rounding direction */ + if(ix!=0) { + z = one-tiny; /* trigger inexact flag */ + if (z>=one) { + z = one+tiny; + if (z>one) + q += 2; + else + q += (q&1); + } + } + ix = (q>>1)+0x3f000000L; + ix += (m <<23); + SET_FLOAT_WORD(z,ix); + return z; +} diff --git a/newlib/libm/math/er_gamma.c b/newlib/libm/math/er_gamma.c new file mode 100644 index 000000000..a7183c50f --- /dev/null +++ b/newlib/libm/math/er_gamma.c @@ -0,0 +1,32 @@ + +/* @(#)er_gamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_gamma_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: See __ieee754_lgamma_r + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + double __ieee754_gamma_r(double x, int *signgamp) +#else + double __ieee754_gamma_r(x,signgamp) + double x; int *signgamp; +#endif +{ + return __ieee754_lgamma_r(x,signgamp); +} diff --git a/newlib/libm/math/er_lgamma.c b/newlib/libm/math/er_lgamma.c new file mode 100644 index 000000000..7c9a153ed --- /dev/null +++ b/newlib/libm/math/er_lgamma.c @@ -0,0 +1,309 @@ + +/* @(#)er_lgamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_lgamma_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: + * 1. Argument Reduction for 0 < x <= 8 + * Since gamma(1+s)=s*gamma(s), for x in [0,8], we may + * reduce x to a number in [1.5,2.5] by + * lgamma(1+s) = log(s) + lgamma(s) + * for example, + * lgamma(7.3) = log(6.3) + lgamma(6.3) + * = log(6.3*5.3) + lgamma(5.3) + * = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3) + * 2. Polynomial approximation of lgamma around its + * minimun ymin=1.461632144968362245 to maintain monotonicity. + * On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use + * Let z = x-ymin; + * lgamma(x) = -1.214862905358496078218 + z^2*poly(z) + * where + * poly(z) is a 14 degree polynomial. + * 2. Rational approximation in the primary interval [2,3] + * We use the following approximation: + * s = x-2.0; + * lgamma(x) = 0.5*s + s*P(s)/Q(s) + * with accuracy + * |P/Q - (lgamma(x)-0.5s)| < 2**-61.71 + * Our algorithms are based on the following observation + * + * zeta(2)-1 2 zeta(3)-1 3 + * lgamma(2+s) = s*(1-Euler) + --------- * s - --------- * s + ... + * 2 3 + * + * where Euler = 0.5771... is the Euler constant, which is very + * close to 0.5. + * + * 3. For x>=8, we have + * lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+.... + * (better formula: + * lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...) + * Let z = 1/x, then we approximation + * f(z) = lgamma(x) - (x-0.5)(log(x)-1) + * by + * 3 5 11 + * w = w0 + w1*z + w2*z + w3*z + ... + w6*z + * where + * |w - f(z)| < 2**-58.74 + * + * 4. For negative x, since (G is gamma function) + * -x*G(-x)*G(x) = pi/sin(pi*x), + * we have + * G(x) = pi/(sin(pi*x)*(-x)*G(-x)) + * since G(-x) is positive, sign(G(x)) = sign(sin(pi*x)) for x<0 + * Hence, for x<0, signgam = sign(sin(pi*x)) and + * lgamma(x) = log(|Gamma(x)|) + * = log(pi/(|x*sin(pi*x)|)) - lgamma(-x); + * Note: one should avoid compute pi*(-x) directly in the + * computation of sin(pi*(-x)). + * + * 5. Special Cases + * lgamma(2+s) ~ s*(1-Euler) for tiny s + * lgamma(1)=lgamma(2)=0 + * lgamma(x) ~ -log(x) for tiny x + * lgamma(0) = lgamma(inf) = inf + * lgamma(-integer) = +-inf + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +two52= 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */ +half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */ +a1 = 3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */ +a2 = 6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */ +a3 = 2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */ +a4 = 7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */ +a5 = 2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */ +a6 = 1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */ +a7 = 5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */ +a8 = 2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */ +a9 = 1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */ +a10 = 2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */ +a11 = 4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */ +tc = 1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */ +tf = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */ +/* tt = -(tail of tf) */ +tt = -3.63867699703950536541e-18, /* 0xBC50C7CA, 0xA48A971F */ +t0 = 4.83836122723810047042e-01, /* 0x3FDEF72B, 0xC8EE38A2 */ +t1 = -1.47587722994593911752e-01, /* 0xBFC2E427, 0x8DC6C509 */ +t2 = 6.46249402391333854778e-02, /* 0x3FB08B42, 0x94D5419B */ +t3 = -3.27885410759859649565e-02, /* 0xBFA0C9A8, 0xDF35B713 */ +t4 = 1.79706750811820387126e-02, /* 0x3F9266E7, 0x970AF9EC */ +t5 = -1.03142241298341437450e-02, /* 0xBF851F9F, 0xBA91EC6A */ +t6 = 6.10053870246291332635e-03, /* 0x3F78FCE0, 0xE370E344 */ +t7 = -3.68452016781138256760e-03, /* 0xBF6E2EFF, 0xB3E914D7 */ +t8 = 2.25964780900612472250e-03, /* 0x3F6282D3, 0x2E15C915 */ +t9 = -1.40346469989232843813e-03, /* 0xBF56FE8E, 0xBF2D1AF1 */ +t10 = 8.81081882437654011382e-04, /* 0x3F4CDF0C, 0xEF61A8E9 */ +t11 = -5.38595305356740546715e-04, /* 0xBF41A610, 0x9C73E0EC */ +t12 = 3.15632070903625950361e-04, /* 0x3F34AF6D, 0x6C0EBBF7 */ +t13 = -3.12754168375120860518e-04, /* 0xBF347F24, 0xECC38C38 */ +t14 = 3.35529192635519073543e-04, /* 0x3F35FD3E, 0xE8C2D3F4 */ +u0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */ +u1 = 6.32827064025093366517e-01, /* 0x3FE4401E, 0x8B005DFF */ +u2 = 1.45492250137234768737e+00, /* 0x3FF7475C, 0xD119BD6F */ +u3 = 9.77717527963372745603e-01, /* 0x3FEF4976, 0x44EA8450 */ +u4 = 2.28963728064692451092e-01, /* 0x3FCD4EAE, 0xF6010924 */ +u5 = 1.33810918536787660377e-02, /* 0x3F8B678B, 0xBF2BAB09 */ +v1 = 2.45597793713041134822e+00, /* 0x4003A5D7, 0xC2BD619C */ +v2 = 2.12848976379893395361e+00, /* 0x40010725, 0xA42B18F5 */ +v3 = 7.69285150456672783825e-01, /* 0x3FE89DFB, 0xE45050AF */ +v4 = 1.04222645593369134254e-01, /* 0x3FBAAE55, 0xD6537C88 */ +v5 = 3.21709242282423911810e-03, /* 0x3F6A5ABB, 0x57D0CF61 */ +s0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */ +s1 = 2.14982415960608852501e-01, /* 0x3FCB848B, 0x36E20878 */ +s2 = 3.25778796408930981787e-01, /* 0x3FD4D98F, 0x4F139F59 */ +s3 = 1.46350472652464452805e-01, /* 0x3FC2BB9C, 0xBEE5F2F7 */ +s4 = 2.66422703033638609560e-02, /* 0x3F9B481C, 0x7E939961 */ +s5 = 1.84028451407337715652e-03, /* 0x3F5E26B6, 0x7368F239 */ +s6 = 3.19475326584100867617e-05, /* 0x3F00BFEC, 0xDD17E945 */ +r1 = 1.39200533467621045958e+00, /* 0x3FF645A7, 0x62C4AB74 */ +r2 = 7.21935547567138069525e-01, /* 0x3FE71A18, 0x93D3DCDC */ +r3 = 1.71933865632803078993e-01, /* 0x3FC601ED, 0xCCFBDF27 */ +r4 = 1.86459191715652901344e-02, /* 0x3F9317EA, 0x742ED475 */ +r5 = 7.77942496381893596434e-04, /* 0x3F497DDA, 0xCA41A95B */ +r6 = 7.32668430744625636189e-06, /* 0x3EDEBAF7, 0xA5B38140 */ +w0 = 4.18938533204672725052e-01, /* 0x3FDACFE3, 0x90C97D69 */ +w1 = 8.33333333333329678849e-02, /* 0x3FB55555, 0x5555553B */ +w2 = -2.77777777728775536470e-03, /* 0xBF66C16C, 0x16B02E5C */ +w3 = 7.93650558643019558500e-04, /* 0x3F4A019F, 0x98CF38B6 */ +w4 = -5.95187557450339963135e-04, /* 0xBF4380CB, 0x8C0FE741 */ +w5 = 8.36339918996282139126e-04, /* 0x3F4B67BA, 0x4CDAD5D1 */ +w6 = -1.63092934096575273989e-03; /* 0xBF5AB89D, 0x0B9E43E4 */ + +#ifdef __STDC__ +static const double zero= 0.00000000000000000000e+00; +#else +static double zero= 0.00000000000000000000e+00; +#endif + +#ifdef __STDC__ + static double sin_pi(double x) +#else + static double sin_pi(x) + double x; +#endif +{ + double y,z; + __int32_t n,ix; + + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + + if(ix<0x3fd00000) return __kernel_sin(pi*x,zero,0); + y = -x; /* x is assume negative */ + + /* + * argument reduction, make sure inexact flag not raised if input + * is an integer + */ + z = floor(y); + if(z!=y) { /* inexact anyway */ + y *= 0.5; + y = 2.0*(y - floor(y)); /* y = |x| mod 2.0 */ + n = (__int32_t) (y*4.0); + } else { + if(ix>=0x43400000) { + y = zero; n = 0; /* y must be even */ + } else { + if(ix<0x43300000) z = y+two52; /* exact */ + GET_LOW_WORD(n,z); + n &= 1; + y = n; + n<<= 2; + } + } + switch (n) { + case 0: y = __kernel_sin(pi*y,zero,0); break; + case 1: + case 2: y = __kernel_cos(pi*(0.5-y),zero); break; + case 3: + case 4: y = __kernel_sin(pi*(one-y),zero,0); break; + case 5: + case 6: y = -__kernel_cos(pi*(y-1.5),zero); break; + default: y = __kernel_sin(pi*(y-2.0),zero,0); break; + } + return -y; +} + + +#ifdef __STDC__ + double __ieee754_lgamma_r(double x, int *signgamp) +#else + double __ieee754_lgamma_r(x,signgamp) + double x; int *signgamp; +#endif +{ + double t,y,z,nadj,p,p1,p2,p3,q,r,w; + __int32_t i,hx,lx,ix; + + EXTRACT_WORDS(hx,lx,x); + + /* purge off +-inf, NaN, +-0, and negative arguments */ + *signgamp = 1; + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return x*x; + if((ix|lx)==0) return one/zero; + if(ix<0x3b900000) { /* |x|<2**-70, return -log(|x|) */ + if(hx<0) { + *signgamp = -1; + return -__ieee754_log(-x); + } else return -__ieee754_log(x); + } + if(hx<0) { + if(ix>=0x43300000) /* |x|>=2**52, must be -integer */ + return one/zero; + t = sin_pi(x); + if(t==zero) return one/zero; /* -integer */ + nadj = __ieee754_log(pi/fabs(t*x)); + if(t<zero) *signgamp = -1; + x = -x; + } + + /* purge off 1 and 2 */ + if((((ix-0x3ff00000)|lx)==0)||(((ix-0x40000000)|lx)==0)) r = 0; + /* for x < 2.0 */ + else if(ix<0x40000000) { + if(ix<=0x3feccccc) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -__ieee754_log(x); + if(ix>=0x3FE76944) {y = one-x; i= 0;} + else if(ix>=0x3FCDA661) {y= x-(tc-one); i=1;} + else {y = x; i=2;} + } else { + r = zero; + if(ix>=0x3FFBB4C3) {y=2.0-x;i=0;} /* [1.7316,2] */ + else if(ix>=0x3FF3B4C4) {y=x-tc;i=1;} /* [1.23,1.73] */ + else {y=x-one;i=2;} + } + switch(i) { + case 0: + z = y*y; + p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10)))); + p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11))))); + p = y*p1+p2; + r += (p-0.5*y); break; + case 1: + z = y*y; + w = z*y; + p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */ + p2 = t1+w*(t4+w*(t7+w*(t10+w*t13))); + p3 = t2+w*(t5+w*(t8+w*(t11+w*t14))); + p = z*p1-(tt-w*(p2+y*p3)); + r += (tf + p); break; + case 2: + p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5))))); + p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5)))); + r += (-0.5*y + p1/p2); + } + } + else if(ix<0x40200000) { /* x < 8.0 */ + i = (__int32_t)x; + t = zero; + y = x-(double)i; + p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6)))))); + q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))); + r = half*y+p/q; + z = one; /* lgamma(1+s) = log(s) + lgamma(s) */ + switch(i) { + case 7: z *= (y+6.0); /* FALLTHRU */ + case 6: z *= (y+5.0); /* FALLTHRU */ + case 5: z *= (y+4.0); /* FALLTHRU */ + case 4: z *= (y+3.0); /* FALLTHRU */ + case 3: z *= (y+2.0); /* FALLTHRU */ + r += __ieee754_log(z); break; + } + /* 8.0 <= x < 2**58 */ + } else if (ix < 0x43900000) { + t = __ieee754_log(x); + z = one/x; + y = z*z; + w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6))))); + r = (x-half)*(t-one)+w; + } else + /* 2**58 <= x <= inf */ + r = x*(__ieee754_log(x)-one); + if(hx<0) r = nadj - r; + return r; +} diff --git a/newlib/libm/math/erf_gamma.c b/newlib/libm/math/erf_gamma.c new file mode 100644 index 000000000..c619dfb2c --- /dev/null +++ b/newlib/libm/math/erf_gamma.c @@ -0,0 +1,34 @@ +/* erf_gamma.c -- float version of er_gamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* __ieee754_gammaf_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: See __ieee754_lgammaf_r + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float __ieee754_gammaf_r(float x, int *signgamp) +#else + float __ieee754_gammaf_r(x,signgamp) + float x; int *signgamp; +#endif +{ + return __ieee754_lgammaf_r(x,signgamp); +} diff --git a/newlib/libm/math/erf_lgamma.c b/newlib/libm/math/erf_lgamma.c new file mode 100644 index 000000000..90cc5425d --- /dev/null +++ b/newlib/libm/math/erf_lgamma.c @@ -0,0 +1,244 @@ +/* erf_lgamma.c -- float version of er_lgamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +two23= 8.3886080000e+06, /* 0x4b000000 */ +half= 5.0000000000e-01, /* 0x3f000000 */ +one = 1.0000000000e+00, /* 0x3f800000 */ +pi = 3.1415927410e+00, /* 0x40490fdb */ +a0 = 7.7215664089e-02, /* 0x3d9e233f */ +a1 = 3.2246702909e-01, /* 0x3ea51a66 */ +a2 = 6.7352302372e-02, /* 0x3d89f001 */ +a3 = 2.0580807701e-02, /* 0x3ca89915 */ +a4 = 7.3855509982e-03, /* 0x3bf2027e */ +a5 = 2.8905137442e-03, /* 0x3b3d6ec6 */ +a6 = 1.1927076848e-03, /* 0x3a9c54a1 */ +a7 = 5.1006977446e-04, /* 0x3a05b634 */ +a8 = 2.2086278477e-04, /* 0x39679767 */ +a9 = 1.0801156895e-04, /* 0x38e28445 */ +a10 = 2.5214456400e-05, /* 0x37d383a2 */ +a11 = 4.4864096708e-05, /* 0x383c2c75 */ +tc = 1.4616321325e+00, /* 0x3fbb16c3 */ +tf = -1.2148628384e-01, /* 0xbdf8cdcd */ +/* tt = -(tail of tf) */ +tt = 6.6971006518e-09, /* 0x31e61c52 */ +t0 = 4.8383611441e-01, /* 0x3ef7b95e */ +t1 = -1.4758771658e-01, /* 0xbe17213c */ +t2 = 6.4624942839e-02, /* 0x3d845a15 */ +t3 = -3.2788541168e-02, /* 0xbd064d47 */ +t4 = 1.7970675603e-02, /* 0x3c93373d */ +t5 = -1.0314224288e-02, /* 0xbc28fcfe */ +t6 = 6.1005386524e-03, /* 0x3bc7e707 */ +t7 = -3.6845202558e-03, /* 0xbb7177fe */ +t8 = 2.2596477065e-03, /* 0x3b141699 */ +t9 = -1.4034647029e-03, /* 0xbab7f476 */ +t10 = 8.8108185446e-04, /* 0x3a66f867 */ +t11 = -5.3859531181e-04, /* 0xba0d3085 */ +t12 = 3.1563205994e-04, /* 0x39a57b6b */ +t13 = -3.1275415677e-04, /* 0xb9a3f927 */ +t14 = 3.3552918467e-04, /* 0x39afe9f7 */ +u0 = -7.7215664089e-02, /* 0xbd9e233f */ +u1 = 6.3282704353e-01, /* 0x3f2200f4 */ +u2 = 1.4549225569e+00, /* 0x3fba3ae7 */ +u3 = 9.7771751881e-01, /* 0x3f7a4bb2 */ +u4 = 2.2896373272e-01, /* 0x3e6a7578 */ +u5 = 1.3381091878e-02, /* 0x3c5b3c5e */ +v1 = 2.4559779167e+00, /* 0x401d2ebe */ +v2 = 2.1284897327e+00, /* 0x4008392d */ +v3 = 7.6928514242e-01, /* 0x3f44efdf */ +v4 = 1.0422264785e-01, /* 0x3dd572af */ +v5 = 3.2170924824e-03, /* 0x3b52d5db */ +s0 = -7.7215664089e-02, /* 0xbd9e233f */ +s1 = 2.1498242021e-01, /* 0x3e5c245a */ +s2 = 3.2577878237e-01, /* 0x3ea6cc7a */ +s3 = 1.4635047317e-01, /* 0x3e15dce6 */ +s4 = 2.6642270386e-02, /* 0x3cda40e4 */ +s5 = 1.8402845599e-03, /* 0x3af135b4 */ +s6 = 3.1947532989e-05, /* 0x3805ff67 */ +r1 = 1.3920053244e+00, /* 0x3fb22d3b */ +r2 = 7.2193557024e-01, /* 0x3f38d0c5 */ +r3 = 1.7193385959e-01, /* 0x3e300f6e */ +r4 = 1.8645919859e-02, /* 0x3c98bf54 */ +r5 = 7.7794247773e-04, /* 0x3a4beed6 */ +r6 = 7.3266842264e-06, /* 0x36f5d7bd */ +w0 = 4.1893854737e-01, /* 0x3ed67f1d */ +w1 = 8.3333335817e-02, /* 0x3daaaaab */ +w2 = -2.7777778450e-03, /* 0xbb360b61 */ +w3 = 7.9365057172e-04, /* 0x3a500cfd */ +w4 = -5.9518753551e-04, /* 0xba1c065c */ +w5 = 8.3633989561e-04, /* 0x3a5b3dd2 */ +w6 = -1.6309292987e-03; /* 0xbad5c4e8 */ + +#ifdef __STDC__ +static const float zero= 0.0000000000e+00; +#else +static float zero= 0.0000000000e+00; +#endif + +#ifdef __STDC__ + static float sin_pif(float x) +#else + static float sin_pif(x) + float x; +#endif +{ + float y,z; + __int32_t n,ix; + + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + + if(ix<0x3e800000) return __kernel_sinf(pi*x,zero,0); + y = -x; /* x is assume negative */ + + /* + * argument reduction, make sure inexact flag not raised if input + * is an integer + */ + z = floorf(y); + if(z!=y) { /* inexact anyway */ + y *= (float)0.5; + y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */ + n = (__int32_t) (y*(float)4.0); + } else { + if(ix>=0x4b800000) { + y = zero; n = 0; /* y must be even */ + } else { + if(ix<0x4b000000) z = y+two23; /* exact */ + GET_FLOAT_WORD(n,z); + n &= 1; + y = n; + n<<= 2; + } + } + switch (n) { + case 0: y = __kernel_sinf(pi*y,zero,0); break; + case 1: + case 2: y = __kernel_cosf(pi*((float)0.5-y),zero); break; + case 3: + case 4: y = __kernel_sinf(pi*(one-y),zero,0); break; + case 5: + case 6: y = -__kernel_cosf(pi*(y-(float)1.5),zero); break; + default: y = __kernel_sinf(pi*(y-(float)2.0),zero,0); break; + } + return -y; +} + + +#ifdef __STDC__ + float __ieee754_lgammaf_r(float x, int *signgamp) +#else + float __ieee754_lgammaf_r(x,signgamp) + float x; int *signgamp; +#endif +{ + float t,y,z,nadj,p,p1,p2,p3,q,r,w; + __int32_t i,hx,ix; + + GET_FLOAT_WORD(hx,x); + + /* purge off +-inf, NaN, +-0, and negative arguments */ + *signgamp = 1; + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return x*x; + if(ix==0) return one/zero; + if(ix<0x1c800000) { /* |x|<2**-70, return -log(|x|) */ + if(hx<0) { + *signgamp = -1; + return -__ieee754_logf(-x); + } else return -__ieee754_logf(x); + } + if(hx<0) { + if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */ + return one/zero; + t = sin_pif(x); + if(t==zero) return one/zero; /* -integer */ + nadj = __ieee754_logf(pi/fabsf(t*x)); + if(t<zero) *signgamp = -1; + x = -x; + } + + /* purge off 1 and 2 */ + if (ix==0x3f800000||ix==0x40000000) r = 0; + /* for x < 2.0 */ + else if(ix<0x40000000) { + if(ix<=0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -__ieee754_logf(x); + if(ix>=0x3f3b4a20) {y = one-x; i= 0;} + else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;} + else {y = x; i=2;} + } else { + r = zero; + if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */ + else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */ + else {y=x-one;i=2;} + } + switch(i) { + case 0: + z = y*y; + p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10)))); + p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11))))); + p = y*p1+p2; + r += (p-(float)0.5*y); break; + case 1: + z = y*y; + w = z*y; + p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */ + p2 = t1+w*(t4+w*(t7+w*(t10+w*t13))); + p3 = t2+w*(t5+w*(t8+w*(t11+w*t14))); + p = z*p1-(tt-w*(p2+y*p3)); + r += (tf + p); break; + case 2: + p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5))))); + p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5)))); + r += (-(float)0.5*y + p1/p2); + } + } + else if(ix<0x41000000) { /* x < 8.0 */ + i = (__int32_t)x; + t = zero; + y = x-(float)i; + p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6)))))); + q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))); + r = half*y+p/q; + z = one; /* lgamma(1+s) = log(s) + lgamma(s) */ + switch(i) { + case 7: z *= (y+(float)6.0); /* FALLTHRU */ + case 6: z *= (y+(float)5.0); /* FALLTHRU */ + case 5: z *= (y+(float)4.0); /* FALLTHRU */ + case 4: z *= (y+(float)3.0); /* FALLTHRU */ + case 3: z *= (y+(float)2.0); /* FALLTHRU */ + r += __ieee754_logf(z); break; + } + /* 8.0 <= x < 2**58 */ + } else if (ix < 0x5c800000) { + t = __ieee754_logf(x); + z = one/x; + y = z*z; + w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6))))); + r = (x-half)*(t-one)+w; + } else + /* 2**58 <= x <= inf */ + r = x*(__ieee754_logf(x)-one); + if(hx<0) r = nadj - r; + return r; +} diff --git a/newlib/libm/math/k_cos.c b/newlib/libm/math/k_cos.c new file mode 100644 index 000000000..6c60c2438 --- /dev/null +++ b/newlib/libm/math/k_cos.c @@ -0,0 +1,96 @@ + +/* @(#)k_cos.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_cos( x, y ) + * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * + * Algorithm + * 1. Since cos(-x) = cos(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0. + * 3. cos(x) is approximated by a polynomial of degree 14 on + * [0,pi/4] + * 4 14 + * cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x + * where the remez error is + * + * | 2 4 6 8 10 12 14 | -58 + * |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x +C6*x )| <= 2 + * | | + * + * 4 6 8 10 12 14 + * 4. let r = C1*x +C2*x +C3*x +C4*x +C5*x +C6*x , then + * cos(x) = 1 - x*x/2 + r + * since cos(x+y) ~ cos(x) - sin(x)*y + * ~ cos(x) - x*y, + * a correction term is necessary in cos(x) and hence + * cos(x+y) = 1 - (x*x/2 - (r - x*y)) + * For better accuracy when x > 0.3, let qx = |x|/4 with + * the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125. + * Then + * cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)). + * Note that 1-qx and (x*x/2-qx) is EXACT here, and the + * magnitude of the latter is at least a quarter of x*x/2, + * thus, reducing the rounding error in the subtraction. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +C1 = 4.16666666666666019037e-02, /* 0x3FA55555, 0x5555554C */ +C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */ +C3 = 2.48015872894767294178e-05, /* 0x3EFA01A0, 0x19CB1590 */ +C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */ +C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */ +C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */ + +#ifdef __STDC__ + double __kernel_cos(double x, double y) +#else + double __kernel_cos(x, y) + double x,y; +#endif +{ + double a,hz,z,r,qx; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; /* ix = |x|'s high word*/ + if(ix<0x3e400000) { /* if x < 2**27 */ + if(((int)x)==0) return one; /* generate inexact */ + } + z = x*x; + r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6))))); + if(ix < 0x3FD33333) /* if |x| < 0.3 */ + return one - (0.5*z - (z*r - x*y)); + else { + if(ix > 0x3fe90000) { /* x > 0.78125 */ + qx = 0.28125; + } else { + INSERT_WORDS(qx,ix-0x00200000,0); /* x/4 */ + } + hz = 0.5*z-qx; + a = one-qx; + return a - (hz - (z*r-x*y)); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/k_rem_pio2.c b/newlib/libm/math/k_rem_pio2.c new file mode 100644 index 000000000..856925668 --- /dev/null +++ b/newlib/libm/math/k_rem_pio2.c @@ -0,0 +1,320 @@ + +/* @(#)k_rem_pio2.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + * double x[],y[]; int e0,nx,prec; int ipio2[]; + * + * __kernel_rem_pio2 return the last three digits of N with + * y = x - N*pi/2 + * so that |y| < pi/2. + * + * The method is to compute the integer (mod 8) and fraction parts of + * (2/pi)*x without doing the full multiplication. In general we + * skip the part of the product that are known to be a huge integer ( + * more accurately, = 0 mod 8 ). Thus the number of operations are + * independent of the exponent of the input. + * + * (2/pi) is represented by an array of 24-bit integers in ipio2[]. + * + * Input parameters: + * x[] The input value (must be positive) is broken into nx + * pieces of 24-bit integers in double precision format. + * x[i] will be the i-th 24 bit of x. The scaled exponent + * of x[0] is given in input parameter e0 (i.e., x[0]*2^e0 + * match x's up to 24 bits. + * + * Example of breaking a double positive z into x[0]+x[1]+x[2]: + * e0 = ilogb(z)-23 + * z = scalbn(z,-e0) + * for i = 0,1,2 + * x[i] = floor(z) + * z = (z-x[i])*2**24 + * + * + * y[] ouput result in an array of double precision numbers. + * The dimension of y[] is: + * 24-bit precision 1 + * 53-bit precision 2 + * 64-bit precision 2 + * 113-bit precision 3 + * The actual value is the sum of them. Thus for 113-bit + * precison, one may have to do something like: + * + * long double t,w,r_head, r_tail; + * t = (long double)y[2] + (long double)y[1]; + * w = (long double)y[0]; + * r_head = t+w; + * r_tail = w - (r_head - t); + * + * e0 The exponent of x[0] + * + * nx dimension of x[] + * + * prec an integer indicating the precision: + * 0 24 bits (single) + * 1 53 bits (double) + * 2 64 bits (extended) + * 3 113 bits (quad) + * + * ipio2[] + * integer array, contains the (24*i)-th to (24*i+23)-th + * bit of 2/pi after binary point. The corresponding + * floating value is + * + * ipio2[i] * 2^(-24(i+1)). + * + * External function: + * double scalbn(), floor(); + * + * + * Here is the description of some local variables: + * + * jk jk+1 is the initial number of terms of ipio2[] needed + * in the computation. The recommended value is 2,3,4, + * 6 for single, double, extended,and quad. + * + * jz local integer variable indicating the number of + * terms of ipio2[] used. + * + * jx nx - 1 + * + * jv index for pointing to the suitable ipio2[] for the + * computation. In general, we want + * ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8 + * is an integer. Thus + * e0-3-24*jv >= 0 or (e0-3)/24 >= jv + * Hence jv = max(0,(e0-3)/24). + * + * jp jp+1 is the number of terms in PIo2[] needed, jp = jk. + * + * q[] double array with integral value, representing the + * 24-bits chunk of the product of x and 2/pi. + * + * q0 the corresponding exponent of q[0]. Note that the + * exponent for q[i] would be q0-24*i. + * + * PIo2[] double precision array, obtained by cutting pi/2 + * into 24 bits chunks. + * + * f[] ipio2[] in floating point + * + * iq[] integer array by breaking up q[] in 24-bits chunk. + * + * fq[] final product of x*(2/pi) in fq[0],..,fq[jk] + * + * ih integer. If >0 it indicates q[] is >= 0.5, hence + * it also indicates the *sign* of the result. + * + */ + + +/* + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const int init_jk[] = {2,3,4,6}; /* initial value for jk */ +#else +static int init_jk[] = {2,3,4,6}; +#endif + +#ifdef __STDC__ +static const double PIo2[] = { +#else +static double PIo2[] = { +#endif + 1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */ + 7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */ + 5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */ + 3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */ + 1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */ + 1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */ + 2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */ + 2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */ +}; + +#ifdef __STDC__ +static const double +#else +static double +#endif +zero = 0.0, +one = 1.0, +two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */ +twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */ + +#ifdef __STDC__ + int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const __int32_t *ipio2) +#else + int __kernel_rem_pio2(x,y,e0,nx,prec,ipio2) + double x[], y[]; int e0,nx,prec; __int32_t ipio2[]; +#endif +{ + __int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih; + double z,fw,f[20],fq[20],q[20]; + + /* initialize jk*/ + jk = init_jk[prec]; + jp = jk; + + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx-1; + jv = (e0-3)/24; if(jv<0) jv=0; + q0 = e0-24*(jv+1); + + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv-jx; m = jx+jk; + for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (double) ipio2[j]; + + /* compute q[0],q[1],...q[jk] */ + for (i=0;i<=jk;i++) { + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + } + + jz = jk; +recompute: + /* distill q[] into iq[] reversingly */ + for(i=0,j=jz,z=q[jz];j>0;i++,j--) { + fw = (double)((__int32_t)(twon24* z)); + iq[i] = (__int32_t)(z-two24*fw); + z = q[j-1]+fw; + } + + /* compute n */ + z = scalbn(z,(int)q0); /* actual value of z */ + z -= 8.0*floor(z*0.125); /* trim off integer >= 8 */ + n = (__int32_t) z; + z -= (double)n; + ih = 0; + if(q0>0) { /* need iq[jz-1] to determine n */ + i = (iq[jz-1]>>(24-q0)); n += i; + iq[jz-1] -= i<<(24-q0); + ih = iq[jz-1]>>(23-q0); + } + else if(q0==0) ih = iq[jz-1]>>23; + else if(z>=0.5) ih=2; + + if(ih>0) { /* q > 0.5 */ + n += 1; carry = 0; + for(i=0;i<jz ;i++) { /* compute 1-q */ + j = iq[i]; + if(carry==0) { + if(j!=0) { + carry = 1; iq[i] = 0x1000000- j; + } + } else iq[i] = 0xffffff - j; + } + if(q0>0) { /* rare case: chance is 1 in 12 */ + switch(q0) { + case 1: + iq[jz-1] &= 0x7fffff; break; + case 2: + iq[jz-1] &= 0x3fffff; break; + } + } + if(ih==2) { + z = one - z; + if(carry!=0) z -= scalbn(one,(int)q0); + } + } + + /* check if recomputation is needed */ + if(z==zero) { + j = 0; + for (i=jz-1;i>=jk;i--) j |= iq[i]; + if(j==0) { /* need recomputation */ + for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */ + + for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */ + f[jx+i] = (double) ipio2[jv+i]; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; + } + jz += k; + goto recompute; + } + } + + /* chop off zero terms */ + if(z==0.0) { + jz -= 1; q0 -= 24; + while(iq[jz]==0) { jz--; q0-=24;} + } else { /* break z into 24-bit if necessary */ + z = scalbn(z,-(int)q0); + if(z>=two24) { + fw = (double)((__int32_t)(twon24*z)); + iq[jz] = (__int32_t)(z-two24*fw); + jz += 1; q0 += 24; + iq[jz] = (__int32_t) fw; + } else iq[jz] = (__int32_t) z ; + } + + /* convert integer "bit" chunk to floating-point value */ + fw = scalbn(one,(int)q0); + for(i=jz;i>=0;i--) { + q[i] = fw*(double)iq[i]; fw*=twon24; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for(i=jz;i>=0;i--) { + for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k]; + fq[jz-i] = fw; + } + + /* compress fq[] into y[] */ + switch(prec) { + case 0: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + break; + case 1: + case 2: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + fw = fq[0]-fw; + for (i=1;i<=jz;i++) fw += fq[i]; + y[1] = (ih==0)? fw: -fw; + break; + case 3: /* painful */ + for (i=jz;i>0;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (i=jz;i>1;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; + if(ih==0) { + y[0] = fq[0]; y[1] = fq[1]; y[2] = fw; + } else { + y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw; + } + } + return n&7; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/k_sin.c b/newlib/libm/math/k_sin.c new file mode 100644 index 000000000..f119916df --- /dev/null +++ b/newlib/libm/math/k_sin.c @@ -0,0 +1,79 @@ + +/* @(#)k_sin.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __kernel_sin( x, y, iy) + * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input iy indicates whether y is 0. (if iy=0, y assume to be 0). + * + * Algorithm + * 1. Since sin(-x) = -sin(x), we need only to consider positive x. + * 2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0. + * 3. sin(x) is approximated by a polynomial of degree 13 on + * [0,pi/4] + * 3 13 + * sin(x) ~ x + S1*x + ... + S6*x + * where + * + * |sin(x) 2 4 6 8 10 12 | -58 + * |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x +S6*x )| <= 2 + * | x | + * + * 4. sin(x+y) = sin(x) + sin'(x')*y + * ~ sin(x) + (1-x*x/2)*y + * For better accuracy, let + * 3 2 2 2 2 + * r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6)))) + * then 3 2 + * sin(x) = x + (S1*x + (x *(r-y/2)+y)) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +S1 = -1.66666666666666324348e-01, /* 0xBFC55555, 0x55555549 */ +S2 = 8.33333333332248946124e-03, /* 0x3F811111, 0x1110F8A6 */ +S3 = -1.98412698298579493134e-04, /* 0xBF2A01A0, 0x19C161D5 */ +S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */ +S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */ +S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */ + +#ifdef __STDC__ + double __kernel_sin(double x, double y, int iy) +#else + double __kernel_sin(x, y, iy) + double x,y; int iy; /* iy=0 if y is zero */ +#endif +{ + double z,r,v; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; /* high word of x */ + if(ix<0x3e400000) /* |x| < 2**-27 */ + {if((int)x==0) return x;} /* generate inexact */ + z = x*x; + v = z*x; + r = S2+z*(S3+z*(S4+z*(S5+z*S6))); + if(iy==0) return x+v*(S1+z*r); + else return x-((z*(half*y-v*r)-y)-v*S1); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/k_standard.c b/newlib/libm/math/k_standard.c new file mode 100644 index 000000000..0d72f1a53 --- /dev/null +++ b/newlib/libm/math/k_standard.c @@ -0,0 +1,784 @@ + +/* @(#)k_standard.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _USE_WRITE +#include <stdio.h> /* fputs(), stderr */ +#define WRITE2(u,v) fputs(u, stderr) +#else /* !defined(_USE_WRITE) */ +#include <unistd.h> /* write */ +#define WRITE2(u,v) write(2, u, v) +#undef fflush +#endif /* !defined(_USE_WRITE) */ + +#ifdef __STDC__ +static const double zero = 0.0; /* used as const */ +#else +static double zero = 0.0; /* used as const */ +#endif + +/* + * Standard conformance (non-IEEE) on exception cases. + * Mapping: + * 1 -- acos(|x|>1) + * 2 -- asin(|x|>1) + * 3 -- atan2(+-0,+-0) + * 4 -- hypot overflow + * 5 -- cosh overflow + * 6 -- exp overflow + * 7 -- exp underflow + * 8 -- y0(0) + * 9 -- y0(-ve) + * 10-- y1(0) + * 11-- y1(-ve) + * 12-- yn(0) + * 13-- yn(-ve) + * 14-- lgamma(finite) overflow + * 15-- lgamma(-integer) + * 16-- log(0) + * 17-- log(x<0) + * 18-- log10(0) + * 19-- log10(x<0) + * 20-- pow(0.0,0.0) + * 21-- pow(x,y) overflow + * 22-- pow(x,y) underflow + * 23-- pow(0,negative) + * 24-- pow(neg,non-integral) + * 25-- sinh(finite) overflow + * 26-- sqrt(negative) + * 27-- fmod(x,0) + * 28-- remainder(x,0) + * 29-- acosh(x<1) + * 30-- atanh(|x|>1) + * 31-- atanh(|x|=1) + * 32-- scalb overflow + * 33-- scalb underflow + * 34-- j0(|x|>X_TLOSS) + * 35-- y0(x>X_TLOSS) + * 36-- j1(|x|>X_TLOSS) + * 37-- y1(x>X_TLOSS) + * 38-- jn(|x|>X_TLOSS, n) + * 39-- yn(x>X_TLOSS, n) + * 40-- gamma(finite) overflow + * 41-- gamma(-integer) + * 42-- pow(NaN,0.0) + */ + + +#ifdef __STDC__ + double __kernel_standard(double x, double y, int type) +#else + double __kernel_standard(x,y,type) + double x,y; int type; +#endif +{ + struct exception exc; +#ifndef HUGE_VAL /* this is the only routine that uses HUGE_VAL */ +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + +#ifdef _USE_WRITE + /* (void) fflush(_stdout_r(p)); */ +#endif + exc.arg1 = x; + exc.arg2 = y; + exc.err = 0; + switch(type) { + case 1: + case 101: + /* acos(|x|>1) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "acos" : "acosf"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if(_LIB_VERSION == _SVID_) { + (void) WRITE2("acos: DOMAIN error\n", 19); + } */ + errno = EDOM; + } + break; + case 2: + case 102: + /* asin(|x|>1) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "asin" : "asinf"; + exc.retval = zero; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if(_LIB_VERSION == _SVID_) { + (void) WRITE2("asin: DOMAIN error\n", 19); + } */ + errno = EDOM; + } + break; + case 3: + case 103: + /* atan2(+-0,+-0) */ + exc.arg1 = y; + exc.arg2 = x; + exc.type = DOMAIN; + exc.name = type < 100 ? "atan2" : "atan2f"; + exc.retval = zero; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if(_LIB_VERSION == _SVID_) { + (void) WRITE2("atan2: DOMAIN error\n", 20); + } */ + errno = EDOM; + } + break; + case 4: + case 104: + /* hypot(finite,finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "hypot" : "hypotf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 5: + case 105: + /* cosh(finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "cosh" : "coshf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 6: + case 106: + /* exp(finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "exp" : "expf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 7: + case 107: + /* exp(finite) underflow */ + exc.type = UNDERFLOW; + exc.name = type < 100 ? "exp" : "expf"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 8: + case 108: + /* y0(0) = -inf */ + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = type < 100 ? "y0" : "y0f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("y0: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 9: + case 109: + /* y0(x<0) = NaN */ + exc.type = DOMAIN; + exc.name = type < 100 ? "y0" : "y0f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /*if (_LIB_VERSION == _SVID_) { + (void) WRITE2("y0: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 10: + case 110: + /* y1(0) = -inf */ + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = type < 100 ? "y1" : "y1f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("y1: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 11: + case 111: + /* y1(x<0) = NaN */ + exc.type = DOMAIN; + exc.name = type < 100 ? "y1" : "y1f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("y1: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 12: + case 112: + /* yn(n,0) = -inf */ + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = type < 100 ? "yn" : "ynf"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("yn: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 13: + case 113: + /* yn(x<0) = NaN */ + exc.type = DOMAIN; + exc.name = type < 100 ? "yn" : "ynf"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("yn: DOMAIN error\n", 17); + } */ + errno = EDOM; + } + break; + case 14: + case 114: + /* lgamma(finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "lgamma" : "lgammaf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 15: + case 115: + /* lgamma(-integer) or lgamma(0) */ + exc.type = SING; + exc.name = type < 100 ? "lgamma" : "lgammaf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("lgamma: SING error\n", 19); + } */ + errno = EDOM; + } + break; + case 16: + case 116: + /* log(0) */ + exc.type = SING; + exc.name = type < 100 ? "log" : "logf"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("log: SING error\n", 16); + } */ + errno = EDOM; + } + break; + case 17: + case 117: + /* log(x<0) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "log" : "logf"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("log: DOMAIN error\n", 18); + } */ + errno = EDOM; + } + break; + case 18: + case 118: + /* log10(0) */ + exc.type = SING; + exc.name = type < 100 ? "log10" : "log10f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("log10: SING error\n", 18); + } */ + errno = EDOM; + } + break; + case 19: + case 119: + /* log10(x<0) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "log10" : "log10f"; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("log10: DOMAIN error\n", 20); + } */ + errno = EDOM; + } + break; + case 20: + case 120: + /* pow(0.0,0.0) */ + /* error only if _LIB_VERSION == _SVID_ */ + exc.type = DOMAIN; + exc.name = type < 100 ? "pow" : "powf"; + exc.retval = zero; + if (_LIB_VERSION != _SVID_) exc.retval = 1.0; + else if (!matherr(&exc)) { + /* (void) WRITE2("pow(0,0): DOMAIN error\n", 23); */ + errno = EDOM; + } + break; + case 21: + case 121: + /* pow(x,y) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "pow" : "powf"; + if (_LIB_VERSION == _SVID_) { + exc.retval = HUGE; + y *= 0.5; + if(x<zero&&rint(y)!=y) exc.retval = -HUGE; + } else { + exc.retval = HUGE_VAL; + y *= 0.5; + if(x<zero&&rint(y)!=y) exc.retval = -HUGE_VAL; + } + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 22: + case 122: + /* pow(x,y) underflow */ + exc.type = UNDERFLOW; + exc.name = type < 100 ? "pow" : "powf"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 23: + case 123: + /* 0**neg */ + exc.type = DOMAIN; + exc.name = type < 100 ? "pow" : "powf"; + if (_LIB_VERSION == _SVID_) + exc.retval = zero; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("pow(0,neg): DOMAIN error\n", 25); + } */ + errno = EDOM; + } + break; + case 24: + case 124: + /* neg**non-integral */ + exc.type = DOMAIN; + exc.name = type < 100 ? "pow" : "powf"; + if (_LIB_VERSION == _SVID_) + exc.retval = zero; + else + exc.retval = zero/zero; /* X/Open allow NaN */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("neg**non-integral: DOMAIN error\n", 32); + } */ + errno = EDOM; + } + break; + case 25: + case 125: + /* sinh(finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "sinh" : "sinhf"; + if (_LIB_VERSION == _SVID_) + exc.retval = ( (x>zero) ? HUGE : -HUGE); + else + exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 26: + case 126: + /* sqrt(x<0) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "sqrt" : "sqrtf"; + if (_LIB_VERSION == _SVID_) + exc.retval = zero; + else + exc.retval = zero/zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("sqrt: DOMAIN error\n", 19); + } */ + errno = EDOM; + } + break; + case 27: + case 127: + /* fmod(x,0) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "fmod" : "fmodf"; + if (_LIB_VERSION == _SVID_) + exc.retval = x; + else + exc.retval = zero/zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("fmod: DOMAIN error\n", 20); + } */ + errno = EDOM; + } + break; + case 28: + case 128: + /* remainder(x,0) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "remainder" : "remainderf"; + exc.retval = zero/zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("remainder: DOMAIN error\n", 24); + } */ + errno = EDOM; + } + break; + case 29: + case 129: + /* acosh(x<1) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "acosh" : "acoshf"; + exc.retval = zero/zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("acosh: DOMAIN error\n", 20); + } */ + errno = EDOM; + } + break; + case 30: + case 130: + /* atanh(|x|>1) */ + exc.type = DOMAIN; + exc.name = type < 100 ? "atanh" : "atanhf"; + exc.retval = zero/zero; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("atanh: DOMAIN error\n", 20); + } */ + errno = EDOM; + } + break; + case 31: + case 131: + /* atanh(|x|=1) */ + exc.type = SING; + exc.name = type < 100 ? "atanh" : "atanhf"; + exc.retval = x/zero; /* sign(x)*inf */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("atanh: SING error\n", 18); + } */ + errno = EDOM; + } + break; + case 32: + case 132: + /* scalb overflow; SVID also returns +-HUGE_VAL */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "scalb" : "scalbf"; + exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 33: + case 133: + /* scalb underflow */ + exc.type = UNDERFLOW; + exc.name = type < 100 ? "scalb" : "scalbf"; + exc.retval = copysign(zero,x); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 34: + case 134: + /* j0(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "j0" : "j0f"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 35: + case 135: + /* y0(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "y0" : "y0f"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 36: + case 136: + /* j1(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "j1" : "j1f"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 37: + case 137: + /* y1(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "y1" : "y1f"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 38: + case 138: + /* jn(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "jn" : "jnf"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 39: + case 139: + /* yn(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = type < 100 ? "yn" : "ynf"; + exc.retval = zero; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2(exc.name, 2); + (void) WRITE2(": TLOSS error\n", 14); + } */ + errno = ERANGE; + } + break; + case 40: + case 140: + /* gamma(finite) overflow */ + exc.type = OVERFLOW; + exc.name = type < 100 ? "gamma" : "gammaf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + break; + case 41: + case 141: + /* gamma(-integer) or gamma(0) */ + exc.type = SING; + exc.name = type < 100 ? "gamma" : "gammaf"; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + /* if (_LIB_VERSION == _SVID_) { + (void) WRITE2("gamma: SING error\n", 18); + } */ + errno = EDOM; + } + break; + case 42: + case 142: + /* pow(NaN,0.0) */ + /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */ + exc.type = DOMAIN; + exc.name = type < 100 ? "pow" : "powf"; + exc.retval = x; + if (_LIB_VERSION == _IEEE_ || + _LIB_VERSION == _POSIX_) exc.retval = 1.0; + else if (!matherr(&exc)) { + errno = EDOM; + } + break; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; +} + + diff --git a/newlib/libm/math/k_tan.c b/newlib/libm/math/k_tan.c new file mode 100644 index 000000000..9f5b30760 --- /dev/null +++ b/newlib/libm/math/k_tan.c @@ -0,0 +1,132 @@ + +/* @(#)k_tan.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* __kernel_tan( x, y, k ) + * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854 + * Input x is assumed to be bounded by ~pi/4 in magnitude. + * Input y is the tail of x. + * Input k indicates whether tan (if k=1) or + * -1/tan (if k= -1) is returned. + * + * Algorithm + * 1. Since tan(-x) = -tan(x), we need only to consider positive x. + * 2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0. + * 3. tan(x) is approximated by a odd polynomial of degree 27 on + * [0,0.67434] + * 3 27 + * tan(x) ~ x + T1*x + ... + T13*x + * where + * + * |tan(x) 2 4 26 | -59.2 + * |----- - (1+T1*x +T2*x +.... +T13*x )| <= 2 + * | x | + * + * Note: tan(x+y) = tan(x) + tan'(x)*y + * ~ tan(x) + (1+x*x)*y + * Therefore, for better accuracy in computing tan(x+y), let + * 3 2 2 2 2 + * r = x *(T2+x *(T3+x *(...+x *(T12+x *T13)))) + * then + * 3 2 + * tan(x+y) = x + (T1*x + (x *(r+y)+y)) + * + * 4. For x in [0.67434,pi/4], let y = pi/4 - x, then + * tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y)) + * = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y))) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pio4 = 7.85398163397448278999e-01, /* 0x3FE921FB, 0x54442D18 */ +pio4lo= 3.06161699786838301793e-17, /* 0x3C81A626, 0x33145C07 */ +T[] = { + 3.33333333333334091986e-01, /* 0x3FD55555, 0x55555563 */ + 1.33333333333201242699e-01, /* 0x3FC11111, 0x1110FE7A */ + 5.39682539762260521377e-02, /* 0x3FABA1BA, 0x1BB341FE */ + 2.18694882948595424599e-02, /* 0x3F9664F4, 0x8406D637 */ + 8.86323982359930005737e-03, /* 0x3F8226E3, 0xE96E8493 */ + 3.59207910759131235356e-03, /* 0x3F6D6D22, 0xC9560328 */ + 1.45620945432529025516e-03, /* 0x3F57DBC8, 0xFEE08315 */ + 5.88041240820264096874e-04, /* 0x3F4344D8, 0xF2F26501 */ + 2.46463134818469906812e-04, /* 0x3F3026F7, 0x1A8D1068 */ + 7.81794442939557092300e-05, /* 0x3F147E88, 0xA03792A6 */ + 7.14072491382608190305e-05, /* 0x3F12B80F, 0x32F0A7E9 */ + -1.85586374855275456654e-05, /* 0xBEF375CB, 0xDB605373 */ + 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */ +}; + +#ifdef __STDC__ + double __kernel_tan(double x, double y, int iy) +#else + double __kernel_tan(x, y, iy) + double x,y; int iy; +#endif +{ + double z,r,v,w,s; + __int32_t ix,hx; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; /* high word of |x| */ + if(ix<0x3e300000) /* x < 2**-28 */ + {if((int)x==0) { /* generate inexact */ + __uint32_t low; + GET_LOW_WORD(low,x); + if(((ix|low)|(iy+1))==0) return one/fabs(x); + else return (iy==1)? x: -one/x; + } + } + if(ix>=0x3FE59428) { /* |x|>=0.6744 */ + if(hx<0) {x = -x; y = -y;} + z = pio4-x; + w = pio4lo-y; + x = z+w; y = 0.0; + } + z = x*x; + w = z*z; + /* Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11])))); + v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12]))))); + s = z*x; + r = y + z*(s*(r+v)+y); + r += T[0]*s; + w = x+r; + if(ix>=0x3FE59428) { + v = (double)iy; + return (double)(1-((hx>>30)&2))*(v-2.0*(x-(w*w/(w+v)-r))); + } + if(iy==1) return w; + else { /* if allow error up to 2 ulp, + simply return -1.0/(x+r) here */ + /* compute -1.0/(x+r) accurately */ + double a,t; + z = w; + SET_LOW_WORD(z,0); + v = r-(z - x); /* z+v = r+x */ + t = a = -1.0/w; /* a = -1.0/w */ + SET_LOW_WORD(t,0); + s = 1.0+t*z; + return t+a*(s+t*v); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/kf_cos.c b/newlib/libm/math/kf_cos.c new file mode 100644 index 000000000..4f71af237 --- /dev/null +++ b/newlib/libm/math/kf_cos.c @@ -0,0 +1,59 @@ +/* kf_cos.c -- float version of k_cos.c + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3f800000 */ +C1 = 4.1666667908e-02, /* 0x3d2aaaab */ +C2 = -1.3888889225e-03, /* 0xbab60b61 */ +C3 = 2.4801587642e-05, /* 0x37d00d01 */ +C4 = -2.7557314297e-07, /* 0xb493f27c */ +C5 = 2.0875723372e-09, /* 0x310f74f6 */ +C6 = -1.1359647598e-11; /* 0xad47d74e */ + +#ifdef __STDC__ + float __kernel_cosf(float x, float y) +#else + float __kernel_cosf(x, y) + float x,y; +#endif +{ + float a,hz,z,r,qx; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; /* ix = |x|'s high word*/ + if(ix<0x32000000) { /* if x < 2**27 */ + if(((int)x)==0) return one; /* generate inexact */ + } + z = x*x; + r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6))))); + if(ix < 0x3e99999a) /* if |x| < 0.3 */ + return one - ((float)0.5*z - (z*r - x*y)); + else { + if(ix > 0x3f480000) { /* x > 0.78125 */ + qx = (float)0.28125; + } else { + SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */ + } + hz = (float)0.5*z-qx; + a = one-qx; + return a - (hz - (z*r-x*y)); + } +} diff --git a/newlib/libm/math/kf_rem_pio2.c b/newlib/libm/math/kf_rem_pio2.c new file mode 100644 index 000000000..261c48129 --- /dev/null +++ b/newlib/libm/math/kf_rem_pio2.c @@ -0,0 +1,208 @@ +/* kf_rem_pio2.c -- float version of k_rem_pio2.c + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +/* In the float version, the input parameter x contains 8 bit + integers, not 24 bit integers. 113 bit precision is not supported. */ + +#ifdef __STDC__ +static const int init_jk[] = {4,7,9}; /* initial value for jk */ +#else +static int init_jk[] = {4,7,9}; +#endif + +#ifdef __STDC__ +static const float PIo2[] = { +#else +static float PIo2[] = { +#endif + 1.5703125000e+00, /* 0x3fc90000 */ + 4.5776367188e-04, /* 0x39f00000 */ + 2.5987625122e-05, /* 0x37da0000 */ + 7.5437128544e-08, /* 0x33a20000 */ + 6.0026650317e-11, /* 0x2e840000 */ + 7.3896444519e-13, /* 0x2b500000 */ + 5.3845816694e-15, /* 0x27c20000 */ + 5.6378512969e-18, /* 0x22d00000 */ + 8.3009228831e-20, /* 0x1fc40000 */ + 3.2756352257e-22, /* 0x1bc60000 */ + 6.3331015649e-25, /* 0x17440000 */ +}; + +#ifdef __STDC__ +static const float +#else +static float +#endif +zero = 0.0, +one = 1.0, +two8 = 2.5600000000e+02, /* 0x43800000 */ +twon8 = 3.9062500000e-03; /* 0x3b800000 */ + +#ifdef __STDC__ + int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const __int32_t *ipio2) +#else + int __kernel_rem_pio2f(x,y,e0,nx,prec,ipio2) + float x[], y[]; int e0,nx,prec; __int32_t ipio2[]; +#endif +{ + __int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih; + float z,fw,f[20],fq[20],q[20]; + + /* initialize jk*/ + jk = init_jk[prec]; + jp = jk; + + /* determine jx,jv,q0, note that 3>q0 */ + jx = nx-1; + jv = (e0-3)/8; if(jv<0) jv=0; + q0 = e0-8*(jv+1); + + /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */ + j = jv-jx; m = jx+jk; + for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (float) ipio2[j]; + + /* compute q[0],q[1],...q[jk] */ + for (i=0;i<=jk;i++) { + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; q[i] = fw; + } + + jz = jk; +recompute: + /* distill q[] into iq[] reversingly */ + for(i=0,j=jz,z=q[jz];j>0;i++,j--) { + fw = (float)((__int32_t)(twon8* z)); + iq[i] = (__int32_t)(z-two8*fw); + z = q[j-1]+fw; + } + + /* compute n */ + z = scalbnf(z,(int)q0); /* actual value of z */ + z -= (float)8.0*floorf(z*(float)0.125); /* trim off integer >= 8 */ + n = (__int32_t) z; + z -= (float)n; + ih = 0; + if(q0>0) { /* need iq[jz-1] to determine n */ + i = (iq[jz-1]>>(8-q0)); n += i; + iq[jz-1] -= i<<(8-q0); + ih = iq[jz-1]>>(7-q0); + } + else if(q0==0) ih = iq[jz-1]>>8; + else if(z>=(float)0.5) ih=2; + + if(ih>0) { /* q > 0.5 */ + n += 1; carry = 0; + for(i=0;i<jz ;i++) { /* compute 1-q */ + j = iq[i]; + if(carry==0) { + if(j!=0) { + carry = 1; iq[i] = 0x100- j; + } + } else iq[i] = 0xff - j; + } + if(q0>0) { /* rare case: chance is 1 in 12 */ + switch(q0) { + case 1: + iq[jz-1] &= 0x7f; break; + case 2: + iq[jz-1] &= 0x3f; break; + } + } + if(ih==2) { + z = one - z; + if(carry!=0) z -= scalbnf(one,(int)q0); + } + } + + /* check if recomputation is needed */ + if(z==zero) { + j = 0; + for (i=jz-1;i>=jk;i--) j |= iq[i]; + if(j==0) { /* need recomputation */ + for(k=1;iq[jk-k]==0;k++); /* k = no. of terms needed */ + + for(i=jz+1;i<=jz+k;i++) { /* add q[jz+1] to q[jz+k] */ + f[jx+i] = (float) ipio2[jv+i]; + for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j]; + q[i] = fw; + } + jz += k; + goto recompute; + } + } + + /* chop off zero terms */ + if(z==(float)0.0) { + jz -= 1; q0 -= 8; + while(iq[jz]==0) { jz--; q0-=8;} + } else { /* break z into 8-bit if necessary */ + z = scalbnf(z,-(int)q0); + if(z>=two8) { + fw = (float)((__int32_t)(twon8*z)); + iq[jz] = (__int32_t)(z-two8*fw); + jz += 1; q0 += 8; + iq[jz] = (__int32_t) fw; + } else iq[jz] = (__int32_t) z ; + } + + /* convert integer "bit" chunk to floating-point value */ + fw = scalbnf(one,(int)q0); + for(i=jz;i>=0;i--) { + q[i] = fw*(float)iq[i]; fw*=twon8; + } + + /* compute PIo2[0,...,jp]*q[jz,...,0] */ + for(i=jz;i>=0;i--) { + for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k]; + fq[jz-i] = fw; + } + + /* compress fq[] into y[] */ + switch(prec) { + case 0: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + break; + case 1: + case 2: + fw = 0.0; + for (i=jz;i>=0;i--) fw += fq[i]; + y[0] = (ih==0)? fw: -fw; + fw = fq[0]-fw; + for (i=1;i<=jz;i++) fw += fq[i]; + y[1] = (ih==0)? fw: -fw; + break; + case 3: /* painful */ + for (i=jz;i>0;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (i=jz;i>1;i--) { + fw = fq[i-1]+fq[i]; + fq[i] += fq[i-1]-fw; + fq[i-1] = fw; + } + for (fw=0.0,i=jz;i>=2;i--) fw += fq[i]; + if(ih==0) { + y[0] = fq[0]; y[1] = fq[1]; y[2] = fw; + } else { + y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw; + } + } + return n&7; +} diff --git a/newlib/libm/math/kf_sin.c b/newlib/libm/math/kf_sin.c new file mode 100644 index 000000000..e81fa0bd8 --- /dev/null +++ b/newlib/libm/math/kf_sin.c @@ -0,0 +1,49 @@ +/* kf_sin.c -- float version of k_sin.c + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +half = 5.0000000000e-01,/* 0x3f000000 */ +S1 = -1.6666667163e-01, /* 0xbe2aaaab */ +S2 = 8.3333337680e-03, /* 0x3c088889 */ +S3 = -1.9841270114e-04, /* 0xb9500d01 */ +S4 = 2.7557314297e-06, /* 0x3638ef1b */ +S5 = -2.5050759689e-08, /* 0xb2d72f34 */ +S6 = 1.5896910177e-10; /* 0x2f2ec9d3 */ + +#ifdef __STDC__ + float __kernel_sinf(float x, float y, int iy) +#else + float __kernel_sinf(x, y, iy) + float x,y; int iy; /* iy=0 if y is zero */ +#endif +{ + float z,r,v; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; /* high word of x */ + if(ix<0x32000000) /* |x| < 2**-27 */ + {if((int)x==0) return x;} /* generate inexact */ + z = x*x; + v = z*x; + r = S2+z*(S3+z*(S4+z*(S5+z*S6))); + if(iy==0) return x+v*(S1+z*r); + else return x-((z*(half*y-v*r)-y)-v*S1); +} diff --git a/newlib/libm/math/kf_tan.c b/newlib/libm/math/kf_tan.c new file mode 100644 index 000000000..285d7f647 --- /dev/null +++ b/newlib/libm/math/kf_tan.c @@ -0,0 +1,96 @@ +/* kf_tan.c -- float version of k_tan.c + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3f800000 */ +pio4 = 7.8539812565e-01, /* 0x3f490fda */ +pio4lo= 3.7748947079e-08, /* 0x33222168 */ +T[] = { + 3.3333334327e-01, /* 0x3eaaaaab */ + 1.3333334029e-01, /* 0x3e088889 */ + 5.3968254477e-02, /* 0x3d5d0dd1 */ + 2.1869488060e-02, /* 0x3cb327a4 */ + 8.8632395491e-03, /* 0x3c11371f */ + 3.5920790397e-03, /* 0x3b6b6916 */ + 1.4562094584e-03, /* 0x3abede48 */ + 5.8804126456e-04, /* 0x3a1a26c8 */ + 2.4646313977e-04, /* 0x398137b9 */ + 7.8179444245e-05, /* 0x38a3f445 */ + 7.1407252108e-05, /* 0x3895c07a */ + -1.8558637748e-05, /* 0xb79bae5f */ + 2.5907305826e-05, /* 0x37d95384 */ +}; + +#ifdef __STDC__ + float __kernel_tanf(float x, float y, int iy) +#else + float __kernel_tanf(x, y, iy) + float x,y; int iy; +#endif +{ + float z,r,v,w,s; + __int32_t ix,hx; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; /* high word of |x| */ + if(ix<0x31800000) /* x < 2**-28 */ + {if((int)x==0) { /* generate inexact */ + if((ix|(iy+1))==0) return one/fabsf(x); + else return (iy==1)? x: -one/x; + } + } + if(ix>=0x3f2ca140) { /* |x|>=0.6744 */ + if(hx<0) {x = -x; y = -y;} + z = pio4-x; + w = pio4lo-y; + x = z+w; y = 0.0; + } + z = x*x; + w = z*z; + /* Break x^5*(T[1]+x^2*T[2]+...) into + * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) + + * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12])) + */ + r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11])))); + v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12]))))); + s = z*x; + r = y + z*(s*(r+v)+y); + r += T[0]*s; + w = x+r; + if(ix>=0x3f2ca140) { + v = (float)iy; + return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r))); + } + if(iy==1) return w; + else { /* if allow error up to 2 ulp, + simply return -1.0/(x+r) here */ + /* compute -1.0/(x+r) accurately */ + float a,t; + __int32_t i; + z = w; + GET_FLOAT_WORD(i,z); + SET_FLOAT_WORD(z,i&0xfffff000); + v = r-(z - x); /* z+v = r+x */ + t = a = -(float)1.0/w; /* a = -1.0/w */ + GET_FLOAT_WORD(i,t); + SET_FLOAT_WORD(t,i&0xfffff000); + s = (float)1.0+t*z; + return t+a*(s+t*v); + } +} diff --git a/newlib/libm/math/math.tex b/newlib/libm/math/math.tex new file mode 100644 index 000000000..c6035deae --- /dev/null +++ b/newlib/libm/math/math.tex @@ -0,0 +1,199 @@ +@node Math +@chapter Mathematical Functions (@file{math.h}) + +This chapter groups a wide variety of mathematical functions. The +corresponding definitions and declarations are in @file{math.h}. +Two definitions from @file{math.h} are of particular interest. + +@enumerate +@item +The representation of infinity as a @code{double} is defined as +@code{HUGE_VAL}; this number is returned on overflow by many functions. + +@item +The structure @code{exception} is used when you write customized error +handlers for the mathematical functions. You can customize error +handling for most of these functions by defining your own version of +@code{matherr}; see the section on @code{matherr} for details. +@end enumerate + +@cindex system calls +@cindex support subroutines +@cindex stubs +@cindex OS stubs +Since the error handling code calls @code{fputs}, the mathematical +subroutines require stubs or minimal implementations for the same list +of OS subroutines as @code{fputs}: @code{close}, @code{fstat}, +@code{isatty}, @code{lseek}, @code{read}, @code{sbrk}, @code{write}. +@xref{syscalls,,System Calls, libc.info, The Cygnus C Support Library}, +for a discussion and for sample minimal implementations of these support +subroutines. + +Alternative declarations of the mathematical functions, which exploit +specific machine capabilities to operate faster---but generally have +less error checking and may reflect additional limitations on some +machines---are available when you include @file{fastmath.h} instead of +@file{math.h}. + +@menu +* version:: Version of library +* acos:: Arccosine +* acosh:: Inverse hyperbolic cosine +* asin:: Arcsine +* asinh:: Inverse hyperbolic sine +* atan:: Arctangent +* atan2:: Arctangent of y/x +* atanh:: Inverse hyperbolic tangent +* jN:: Bessel functions (jN, yN) +* cbrt:: Cube root +* copysign:: Sign of Y, magnitude of X +* cosh:: Hyperbolic cosine +* erf:: Error function (erf, erfc) +* exp:: Exponential +* expm1:: Exponential of x, - 1 +* fabs:: Absolute value (magnitude) +* floor:: Floor and ceiling (floor, ceil) +* fmod:: Floating-point remainder (modulo) +* frexp:: Split floating-point number +* gamma:: Logarithmic gamma function +* hypot:: Distance from origin +* ilogb:: Get exponent +* infinity:: Floating infinity +* isnan:: Check type of number +* ldexp:: Load exponent +* log:: Natural logarithms +* log10:: Base 10 logarithms +* log1p:: Log of 1 + X +* matherr:: Modifiable math error handler +* modf:: Split fractional and integer parts +* nan:: Floating Not a Number +* nextafter:: Get next representable number +* pow:: X to the power Y +* remainder:: remainder of X divided by Y +* scalbn:: scalbn +* sin:: Sine or cosine (sin, cos) +* sinh:: Hyperbolic sine +* sqrt:: Positive square root +* tan:: Tangent +* tanh:: Hyperbolic tangent +@end menu + +@page +@node version +@section Version of library + +There are four different versions of the math library routines: IEEE, +POSIX, X/Open, or SVID. The version may be selected at runtime by +setting the global variable @code{_LIB_VERSION}, defined in +@file{math.h}. It may be set to one of the following constants defined +in @file{math.h}: @code{_IEEE_}, @code{_POSIX_}, @code{_XOPEN_}, or +@code{_SVID_}. The @code{_LIB_VERSION} variable is not specific to any +thread, and changing it will affect all threads. + +The versions of the library differ only in how errors are handled. + +In IEEE mode, the @code{matherr} function is never called, no warning +messages are printed, and @code{errno} is never set. + +In POSIX mode, @code{errno} is set correctly, but the @code{matherr} +function is never called and no warning messages are printed. + +In X/Open mode, @code{errno} is set correctly, and @code{matherr} is +called, but warning message are not printed. + +In SVID mode, functions which overflow return 3.40282346638528860e+38, +the maximum single precision floating point value, rather than infinity. +Also, @code{errno} is set correctly, @code{matherr} is called, and, if +@code{matherr} returns 0, warning messages are printed for some errors. +For example, by default @samp{log(-1.0)} writes this message on standard +error output: + +@example +log: DOMAIN error +@end example + +The library is set to X/Open mode by default. + +@page +@include math/wacos.def + +@page +@include math/wacosh.def + +@page +@include math/wasin.def + +@page +@include math/sasinh.def + +@page +@include math/satan.def + +@page +@include math/watan2.def + +@page +@include math/watanh.def + +@page +@include math/wj0.def + +@page +@include math/wcosh.def + +@page +@include math/serf.def + +@page +@include math/wexp.def + +@page +@include math/sfabs.def + +@page +@include math/sfloor.def + +@page +@include math/wfmod.def + +@page +@include math/sfrexp.def + +@page +@include math/wgamma.def + +@page +@include math/whypot.def + +@page +@include math/sisnan.def + +@page +@include math/sldexp.def + +@page +@include math/wlog.def + +@page +@include math/wlog10.def + +@page +@include math/wpow.def + +@page +@include math/wremainder.def + +@page +@include math/wsqrt.def + +@page +@include math/ssin.def + +@page +@include math/wsinh.def + +@page +@include math/stan.def + +@page +@include math/stanh.def diff --git a/newlib/libm/math/s_asinh.c b/newlib/libm/math/s_asinh.c new file mode 100644 index 000000000..958b71f82 --- /dev/null +++ b/newlib/libm/math/s_asinh.c @@ -0,0 +1,107 @@ + +/* @(#)s_asinh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<asinh>>, <<asinhf>>---inverse hyperbolic sine + +INDEX + asinh +INDEX + asinhf + +ANSI_SYNOPSIS + #include <math.h> + double asinh(double <[x]>); + float asinhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double asinh(<[x]>) + double <[x]>; + + float asinhf(<[x]>) + float <[x]>; + +DESCRIPTION +<<asinh>> calculates the inverse hyperbolic sine of <[x]>. +<<asinh>> is defined as +@ifinfo +. sgn(<[x]>) * log(abs(<[x]>) + sqrt(1+<[x]>*<[x]>)) +@end ifinfo +@tex +$$sign(x) \times ln\Bigl(|x| + \sqrt{1+x^2}\Bigr)$$ +@end tex + +<<asinhf>> is identical, other than taking and returning floats. + +RETURNS +<<asinh>> and <<asinhf>> return the calculated value. + +PORTABILITY +Neither <<asinh>> nor <<asinhf>> are ANSI C. + +*/ + +/* asinh(x) + * Method : + * Based on + * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] + * we have + * asinh(x) := x if 1+x*x=1, + * := sign(x)*(log(x)+ln2)) for large |x|, else + * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else + * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +huge= 1.00000000000000000000e+300; + +#ifdef __STDC__ + double asinh(double x) +#else + double asinh(x) + double x; +#endif +{ + double t,w; + __int32_t hx,ix; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return x+x; /* x is inf or NaN */ + if(ix< 0x3e300000) { /* |x|<2**-28 */ + if(huge+x>one) return x; /* return x inexact except 0 */ + } + if(ix>0x41b00000) { /* |x| > 2**28 */ + w = __ieee754_log(fabs(x))+ln2; + } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */ + t = fabs(x); + w = __ieee754_log(2.0*t+one/(__ieee754_sqrt(x*x+one)+t)); + } else { /* 2.0 > |x| > 2**-28 */ + t = x*x; + w =log1p(fabs(x)+t/(one+__ieee754_sqrt(one+t))); + } + if(hx>0) return w; else return -w; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_atan.c b/newlib/libm/math/s_atan.c new file mode 100644 index 000000000..b1410ecca --- /dev/null +++ b/newlib/libm/math/s_atan.c @@ -0,0 +1,181 @@ + +/* @(#)s_atan.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<atan>>, <<atanf>>---arc tangent + +INDEX + atan +INDEX + atanf + +ANSI_SYNOPSIS + #include <math.h> + double atan(double <[x]>); + float atanf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atan(<[x]>); + double <[x]>; + + float atanf(<[x]>); + float <[x]>; + +DESCRIPTION + +<<atan>> computes the inverse tangent (arc tangent) of the input value. + +<<atanf>> is identical to <<atan>>, save that it operates on <<floats>>. + +RETURNS +@ifinfo +<<atan>> returns a value in radians, in the range of -pi/2 to pi/2. +@end ifinfo +@tex +<<atan>> returns a value in radians, in the range of $-\pi/2$ to $\pi/2$. +@end tex + +PORTABILITY +<<atan>> is ANSI C. <<atanf>> is an extension. + +*/ + +/* atan(x) + * Method + * 1. Reduce x to positive by atan(x) = -atan(-x). + * 2. According to the integer k=4t+0.25 chopped, t=x, the argument + * is further reduced to one of the following intervals and the + * arctangent of t is evaluated by the corresponding formula: + * + * [0,7/16] atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...) + * [7/16,11/16] atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) ) + * [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) ) + * [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) ) + * [39/16,INF] atan(x) = atan(INF) + atan( -1/t ) + * + * Constants: + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the + * compiler will convert from decimal to binary accurately enough + * to produce the hexadecimal values shown. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double atanhi[] = { +#else +static double atanhi[] = { +#endif + 4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */ + 7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */ + 9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */ + 1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */ +}; + +#ifdef __STDC__ +static const double atanlo[] = { +#else +static double atanlo[] = { +#endif + 2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */ + 3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */ + 1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */ + 6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */ +}; + +#ifdef __STDC__ +static const double aT[] = { +#else +static double aT[] = { +#endif + 3.33333333333329318027e-01, /* 0x3FD55555, 0x5555550D */ + -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */ + 1.42857142725034663711e-01, /* 0x3FC24924, 0x920083FF */ + -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */ + 9.09088713343650656196e-02, /* 0x3FB745CD, 0xC54C206E */ + -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */ + 6.66107313738753120669e-02, /* 0x3FB10D66, 0xA0D03D51 */ + -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */ + 4.97687799461593236017e-02, /* 0x3FA97B4B, 0x24760DEB */ + -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */ + 1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */ +}; + +#ifdef __STDC__ + static const double +#else + static double +#endif +one = 1.0, +huge = 1.0e300; + +#ifdef __STDC__ + double atan(double x) +#else + double atan(x) + double x; +#endif +{ + double w,s1,s2,z; + __int32_t ix,hx,id; + + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x44100000) { /* if |x| >= 2^66 */ + __uint32_t low; + GET_LOW_WORD(low,x); + if(ix>0x7ff00000|| + (ix==0x7ff00000&&(low!=0))) + return x+x; /* NaN */ + if(hx>0) return atanhi[3]+atanlo[3]; + else return -atanhi[3]-atanlo[3]; + } if (ix < 0x3fdc0000) { /* |x| < 0.4375 */ + if (ix < 0x3e200000) { /* |x| < 2^-29 */ + if(huge+x>one) return x; /* raise inexact */ + } + id = -1; + } else { + x = fabs(x); + if (ix < 0x3ff30000) { /* |x| < 1.1875 */ + if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */ + id = 0; x = (2.0*x-one)/(2.0+x); + } else { /* 11/16<=|x|< 19/16 */ + id = 1; x = (x-one)/(x+one); + } + } else { + if (ix < 0x40038000) { /* |x| < 2.4375 */ + id = 2; x = (x-1.5)/(one+1.5*x); + } else { /* 2.4375 <= |x| < 2^66 */ + id = 3; x = -1.0/x; + } + }} + /* end of argument reduction */ + z = x*x; + w = z*z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10]))))); + s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9])))); + if (id<0) return x - x*(s1+s2); + else { + z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x); + return (hx<0)? -z:z; + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_ceil.c b/newlib/libm/math/s_ceil.c new file mode 100644 index 000000000..24d69169c --- /dev/null +++ b/newlib/libm/math/s_ceil.c @@ -0,0 +1,80 @@ + +/* @(#)s_ceil.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * ceil(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to ceil(x). + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double huge = 1.0e300; +#else +static double huge = 1.0e300; +#endif + +#ifdef __STDC__ + double ceil(double x) +#else + double ceil(x) + double x; +#endif +{ + __int32_t i0,i1,j0; + __uint32_t i,j; + EXTRACT_WORDS(i0,i1,x); + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0<0) {i0=0x80000000;i1=0;} + else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;} + } + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0>0) i0 += (0x00100000)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((__uint32_t)(0xffffffff))>>(j0-20); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0>0) { + if(j0==20) i0+=1; + else { + j = i1 + (1<<(52-j0)); + if(j<i1) i0+=1; /* got a carry */ + i1 = j; + } + } + i1 &= (~i); + } + } + INSERT_WORDS(x,i0,i1); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_cos.c b/newlib/libm/math/s_cos.c new file mode 100644 index 000000000..c47123301 --- /dev/null +++ b/newlib/libm/math/s_cos.c @@ -0,0 +1,82 @@ + +/* @(#)s_cos.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* cos(x) + * Return cosine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cosine function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double cos(double x) +#else + double cos(x) + double x; +#endif +{ + double y[2],z=0.0; + __int32_t n,ix; + + /* High word of x. */ + GET_HIGH_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_cos(x,z); + + /* cos(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_cos(y[0],y[1]); + case 1: return -__kernel_sin(y[0],y[1],1); + case 2: return -__kernel_cos(y[0],y[1]); + default: + return __kernel_sin(y[0],y[1],1); + } + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_erf.c b/newlib/libm/math/s_erf.c new file mode 100644 index 000000000..825309dee --- /dev/null +++ b/newlib/libm/math/s_erf.c @@ -0,0 +1,373 @@ + +/* @(#)s_erf.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<erf>>, <<erff>>, <<erfc>>, <<erfcf>>---error function +INDEX + erf +INDEX + erff +INDEX + erfc +INDEX + erfcf + +ANSI_SYNOPSIS + #include <math.h> + double erf(double <[x]>); + float erff(float <[x]>); + double erfc(double <[x]>); + float erfcf(float <[x]>); +TRAD_SYNOPSIS + #include <math.h> + + double erf(<[x]>) + double <[x]>; + + float erff(<[x]>) + float <[x]>; + + double erfc(<[x]>) + double <[x]>; + + float erfcf(<[x]>) + float <[x]>; + +DESCRIPTION + <<erf>> calculates an approximation to the ``error function'', + which estimates the probability that an observation will fall within + <[x]> standard deviations of the mean (assuming a normal + distribution). + @tex + The error function is defined as + $${2\over\sqrt\pi}\times\int_0^x e^{-t^2}dt$$ + @end tex + + <<erfc>> calculates the complementary probability; that is, + <<erfc(<[x]>)>> is <<1 - erf(<[x]>)>>. <<erfc>> is computed directly, + so that you can use it to avoid the loss of precision that would + result from subtracting large probabilities (on large <[x]>) from 1. + + <<erff>> and <<erfcf>> differ from <<erf>> and <<erfc>> only in the + argument and result types. + +RETURNS + For positive arguments, <<erf>> and all its variants return a + probability---a number between 0 and 1. + +PORTABILITY + None of the variants of <<erf>> are ANSI C. +*/ + +/* double erf(double x) + * double erfc(double x) + * x + * 2 |\ + * erf(x) = --------- | exp(-t*t)dt + * sqrt(pi) \| + * 0 + * + * erfc(x) = 1-erf(x) + * Note that + * erf(-x) = -erf(x) + * erfc(-x) = 2 - erfc(x) + * + * Method: + * 1. For |x| in [0, 0.84375] + * erf(x) = x + x*R(x^2) + * erfc(x) = 1 - erf(x) if x in [-.84375,0.25] + * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375] + * where R = P/Q where P is an odd poly of degree 8 and + * Q is an odd poly of degree 10. + * -57.90 + * | R - (erf(x)-x)/x | <= 2 + * + * + * Remark. The formula is derived by noting + * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....) + * and that + * 2/sqrt(pi) = 1.128379167095512573896158903121545171688 + * is close to one. The interval is chosen because the fix + * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is + * near 0.6174), and by some experiment, 0.84375 is chosen to + * guarantee the error is less than one ulp for erf. + * + * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and + * c = 0.84506291151 rounded to single (24 bits) + * erf(x) = sign(x) * (c + P1(s)/Q1(s)) + * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0 + * 1+(c+P1(s)/Q1(s)) if x < 0 + * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06 + * Remark: here we use the taylor series expansion at x=1. + * erf(1+s) = erf(1) + s*Poly(s) + * = 0.845.. + P1(s)/Q1(s) + * That is, we use rational approximation to approximate + * erf(1+s) - (c = (single)0.84506291151) + * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25] + * where + * P1(s) = degree 6 poly in s + * Q1(s) = degree 6 poly in s + * + * 3. For x in [1.25,1/0.35(~2.857143)], + * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1) + * erf(x) = 1 - erfc(x) + * where + * R1(z) = degree 7 poly in z, (z=1/x^2) + * S1(z) = degree 8 poly in z + * + * 4. For x in [1/0.35,28] + * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0 + * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0 + * = 2.0 - tiny (if x <= -6) + * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else + * erf(x) = sign(x)*(1.0 - tiny) + * where + * R2(z) = degree 6 poly in z, (z=1/x^2) + * S2(z) = degree 7 poly in z + * + * Note1: + * To compute exp(-x*x-0.5625+R/S), let s be a single + * precision number and s := x; then + * -x*x = -s*s + (s-x)*(s+x) + * exp(-x*x-0.5626+R/S) = + * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S); + * Note2: + * Here 4 and 5 make use of the asymptotic series + * exp(-x*x) + * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) ) + * x*sqrt(pi) + * We use rational approximation to approximate + * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625 + * Here is the error bound for R1/S1 and R2/S2 + * |R1/S1 - f(x)| < 2**(-62.57) + * |R2/S2 - f(x)| < 2**(-61.52) + * + * 5. For inf > x >= 28 + * erf(x) = sign(x) *(1 - tiny) (raise inexact) + * erfc(x) = tiny*tiny (raise underflow) if x > 0 + * = 2 - tiny if x<0 + * + * 7. Special case: + * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1, + * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, + * erfc/erf(NaN) is NaN + */ + + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +tiny = 1e-300, +half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */ + /* c = (float)0.84506291151 */ +erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */ +efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */ +pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */ +pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */ +pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */ +pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */ +pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */ +qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */ +qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */ +qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */ +qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */ +qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */ +pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */ +pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */ +pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */ +pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */ +pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */ +pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */ +qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */ +qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */ +qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */ +qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */ +qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */ +qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */ +ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */ +ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */ +ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */ +ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */ +ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */ +ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */ +ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */ +sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */ +sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */ +sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */ +sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */ +sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */ +sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */ +sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */ +sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */ +rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */ +rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */ +rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */ +rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */ +rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */ +rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */ +sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */ +sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */ +sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */ +sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */ +sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */ +sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */ +sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */ + +#ifdef __STDC__ + double erf(double x) +#else + double erf(x) + double x; +#endif +{ + __int32_t hx,ix,i; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erf(nan)=nan */ + i = ((__uint32_t)hx>>31)<<1; + return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */ + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3e300000) { /* |x|<2**-28 */ + if (ix < 0x00800000) + return 0.125*(8.0*x+efx8*x); /*avoid underflow */ + return x + efx*x; + } + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + return x + x*y; + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) return erx + P/Q; else return -erx - P/Q; + } + if (ix >= 0x40180000) { /* inf>|x|>=6 */ + if(hx>=0) return one-tiny; else return tiny-one; + } + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/0.35 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S); + if(hx>=0) return one-r/x; else return r/x-one; +} + +#ifdef __STDC__ + double erfc(double x) +#else + double erfc(x) + double x; +#endif +{ + __int32_t hx,ix; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erfc(nan)=nan */ + /* erfc(+-inf)=0,2 */ + return (double)(((__uint32_t)hx>>31)<<1)+one/x; + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3c700000) /* |x|<2**-56 */ + return one-x; + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + if(hx < 0x3fd00000) { /* x<1/4 */ + return one-(x+x*y); + } else { + r = x*y; + r += (x-half); + return half - r ; + } + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) { + z = one-erx; return z - P/Q; + } else { + z = erx+P/Q; return one+z; + } + } + if (ix < 0x403c0000) { /* |x|<28 */ + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/.35 ~ 2.857143 */ + if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = __ieee754_exp(-z*z-0.5625)* + __ieee754_exp((z-x)*(z+x)+R/S); + if(hx>0) return r/x; else return two-r/x; + } else { + if(hx>0) return tiny*tiny; else return two-tiny; + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_fabs.c b/newlib/libm/math/s_fabs.c new file mode 100644 index 000000000..95b871ca5 --- /dev/null +++ b/newlib/libm/math/s_fabs.c @@ -0,0 +1,73 @@ + +/* @(#)s_fabs.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<fabs>>, <<fabsf>>---absolute value (magnitude) +INDEX + fabs +INDEX + fabsf + +ANSI_SYNOPSIS + #include <math.h> + double fabs(double <[x]>); + float fabsf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double fabs(<[x]>) + double <[x]>; + + float fabsf(<[x]>) + float <[x]>; + +DESCRIPTION +<<fabs>> and <<fabsf>> calculate +@tex +$|x|$, +@end tex +the absolute value (magnitude) of the argument <[x]>, by direct +manipulation of the bit representation of <[x]>. + +RETURNS +The calculated value is returned. No errors are detected. + +PORTABILITY +<<fabs>> is ANSI. +<<fabsf>> is an extension. + +*/ + +/* + * fabs(x) returns the absolute value of x. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double fabs(double x) +#else + double fabs(x) + double x; +#endif +{ + __uint32_t high; + GET_HIGH_WORD(high,x); + SET_HIGH_WORD(x,high&0x7fffffff); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_floor.c b/newlib/libm/math/s_floor.c new file mode 100644 index 000000000..65e234ed2 --- /dev/null +++ b/newlib/libm/math/s_floor.c @@ -0,0 +1,134 @@ + +/* @(#)s_floor.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<floor>>, <<floorf>>, <<ceil>>, <<ceilf>>---floor and ceiling +INDEX + floor +INDEX + floorf +INDEX + ceil +INDEX + ceilf + +ANSI_SYNOPSIS + #include <math.h> + double floor(double <[x]>); + float floorf(float <[x]>); + double ceil(double <[x]>); + float ceilf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double floor(<[x]>) + double <[x]>; + float floorf(<[x]>) + float <[x]>; + double ceil(<[x]>) + double <[x]>; + float ceilf(<[x]>) + float <[x]>; + +DESCRIPTION +<<floor>> and <<floorf>> find +@tex +$\lfloor x \rfloor$, +@end tex +the nearest integer less than or equal to <[x]>. +<<ceil>> and <<ceilf>> find +@tex +$\lceil x\rceil$, +@end tex +the nearest integer greater than or equal to <[x]>. + +RETURNS +<<floor>> and <<ceil>> return the integer result as a double. +<<floorf>> and <<ceilf>> return the integer result as a float. + +PORTABILITY +<<floor>> and <<ceil>> are ANSI. +<<floorf>> and <<ceilf>> are extensions. + + +*/ + +/* + * floor(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to floor(x). + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double huge = 1.0e300; +#else +static double huge = 1.0e300; +#endif + +#ifdef __STDC__ + double floor(double x) +#else + double floor(x) + double x; +#endif +{ + __int32_t i0,i1,j0; + __uint32_t i,j; + EXTRACT_WORDS(i0,i1,x); + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0>=0) {i0=i1=0;} + else if(((i0&0x7fffffff)|i1)!=0) + { i0=0xbff00000;i1=0;} + } + } else { + i = (0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) i0 += (0x00100000)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((__uint32_t)(0xffffffff))>>(j0-20); + if((i1&i)==0) return x; /* x is integral */ + if(huge+x>0.0) { /* raise inexact flag */ + if(i0<0) { + if(j0==20) i0+=1; + else { + j = i1+(1<<(52-j0)); + if(j<i1) i0 +=1 ; /* got a carry */ + i1=j; + } + } + i1 &= (~i); + } + } + INSERT_WORDS(x,i0,i1); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_frexp.c b/newlib/libm/math/s_frexp.c new file mode 100644 index 000000000..aaa36068a --- /dev/null +++ b/newlib/libm/math/s_frexp.c @@ -0,0 +1,114 @@ + +/* @(#)s_frexp.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<frexp>>, <<frexpf>>---split floating-point number +INDEX + frexp +INDEX + frexpf + +ANSI_SYNOPSIS + #include <math.h> + double frexp(double <[val]>, int *<[exp]>); + float frexpf(float <[val]>, int *<[exp]>); + +TRAD_SYNOPSIS + #include <math.h> + double frexp(<[val]>, <[exp]>) + double <[val]>; + int *<[exp]>; + + float frexpf(<[val]>, <[exp]>) + float <[val]>; + int *<[exp]>; + + +DESCRIPTION + All non zero, normal numbers can be described as <[m]> * 2**<[p]>. + <<frexp>> represents the double <[val]> as a mantissa <[m]> + and a power of two <[p]>. The resulting mantissa will always + be greater than or equal to <<0.5>>, and less than <<1.0>> (as + long as <[val]> is nonzero). The power of two will be stored + in <<*>><[exp]>. + +@ifinfo +<[m]> and <[p]> are calculated so that +<[val]> is <[m]> times <<2>> to the power <[p]>. +@end ifinfo +@tex +<[m]> and <[p]> are calculated so that +$ val = m \times 2^p $. +@end tex + +<<frexpf>> is identical, other than taking and returning +floats rather than doubles. + +RETURNS +<<frexp>> returns the mantissa <[m]>. If <[val]> is <<0>>, infinity, +or Nan, <<frexp>> will set <<*>><[exp]> to <<0>> and return <[val]>. + +PORTABILITY +<<frexp>> is ANSI. +<<frexpf>> is an extension. + + +*/ + +/* + * for non-zero x + * x = frexp(arg,&exp); + * return a double fp quantity x such that 0.5 <= |x| <1.0 + * and the corresponding binary exponent "exp". That is + * arg = x*2^exp. + * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg + * with *exp=0. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */ + +#ifdef __STDC__ + double frexp(double x, int *eptr) +#else + double frexp(x, eptr) + double x; int *eptr; +#endif +{ + __int32_t hx, ix, lx; + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + *eptr = 0; + if(ix>=0x7ff00000||((ix|lx)==0)) return x; /* 0,inf,nan */ + if (ix<0x00100000) { /* subnormal */ + x *= two54; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + *eptr = -54; + } + *eptr += (ix>>20)-1022; + hx = (hx&0x800fffff)|0x3fe00000; + SET_HIGH_WORD(x,hx); + return x; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_infconst.c b/newlib/libm/math/s_infconst.c new file mode 100644 index 000000000..85b3b689c --- /dev/null +++ b/newlib/libm/math/s_infconst.c @@ -0,0 +1,15 @@ +/* Infinity as a constant value. This is used for HUGE_VAL. + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS +#ifdef __IEEE_BIG_ENDIAN +const union __dmath __infinity = { 0x7ff00000, 0 }; +#else +const union __dmath __infinity = { 0, 0x7ff00000 }; +#endif +#else /* defined (_DOUBLE_IS_32BITS) */ +const union __dmath __infinity = { 0x7f800000, 0 }; +#endif /* defined (_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/s_isinf.c b/newlib/libm/math/s_isinf.c new file mode 100644 index 000000000..87f099566 --- /dev/null +++ b/newlib/libm/math/s_isinf.c @@ -0,0 +1,26 @@ +/* + * isinf(x) returns 1 if x is infinity, else 0; + * no branching! + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int isinf(double x) +#else + int isinf(x) + double x; +#endif +{ + __int32_t hx,lx; + EXTRACT_WORDS(hx,lx,x); + hx &= 0x7fffffff; + hx |= (__uint32_t)(lx|(-lx))>>31; + hx = 0x7ff00000 - hx; + return 1 - (int)((__uint32_t)(hx|(-hx))>>31); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_isnan.c b/newlib/libm/math/s_isnan.c new file mode 100644 index 000000000..5d83fc043 --- /dev/null +++ b/newlib/libm/math/s_isnan.c @@ -0,0 +1,122 @@ + +/* @(#)s_isnan.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<isnan>>,<<isnanf>>,<<isinf>>,<<isinff>>,<<finite>>,<<finitef>>---test for exceptional numbers + +INDEX + isnan +INDEX + isinf +INDEX + finite + +INDEX + isnanf +INDEX + isinff +INDEX + finitef + +ANSI_SYNOPSIS + #include <ieeefp.h> + int isnan(double <[arg]>); + int isinf(double <[arg]>); + int finite(double <[arg]>); + int isnanf(float <[arg]>); + int isinff(float <[arg]>); + int finitef(float <[arg]>); + +TRAD_SYNOPSIS + #include <ieeefp.h> + int isnan(<[arg]>) + double <[arg]>; + int isinf(<[arg]>) + double <[arg]>; + int finite(<[arg]>); + double <[arg]>; + int isnanf(<[arg]>); + float <[arg]>; + int isinff(<[arg]>); + float <[arg]>; + int finitef(<[arg]>); + float <[arg]>; + + +DESCRIPTION + These functions provide information on the floating point + argument supplied. + + There are five major number formats - + o+ + o zero + a number which contains all zero bits. + o subnormal + Is used to represent number with a zero exponent, but a non zero fraction. + o normal + A number with an exponent, and a fraction + o infinity + A number with an all 1's exponent and a zero fraction. + o NAN + A number with an all 1's exponent and a non zero fraction. + + o- + + <<isnan>> returns 1 if the argument is a nan. <<isinf>> + returns 1 if the argument is infinity. <<finite>> returns 1 if the + argument is zero, subnormal or normal. + + The <<isnanf>>, <<isinff>> and <<finitef>> perform the same + operations as their <<isnan>>, <<isinf>> and <<finite>> + counterparts, but on single precision floating point numbers. + +QUICKREF + isnan - pure +QUICKREF + isinf - pure +QUICKREF + finite - pure +QUICKREF + isnan - pure +QUICKREF + isinf - pure +QUICKREF + finite - pure +*/ + +/* + * isnan(x) returns 1 is x is nan, else 0; + * no branching! + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int isnan(double x) +#else + int isnan(x) + double x; +#endif +{ + __int32_t hx,lx; + EXTRACT_WORDS(hx,lx,x); + hx &= 0x7fffffff; + hx |= (__uint32_t)(lx|(-lx))>>31; + hx = 0x7ff00000 - hx; + return (int)(((__uint32_t)(hx))>>31); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_ldexp.c b/newlib/libm/math/s_ldexp.c new file mode 100644 index 000000000..ccf7171b1 --- /dev/null +++ b/newlib/libm/math/s_ldexp.c @@ -0,0 +1,81 @@ + +/* @(#)s_ldexp.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<ldexp>>, <<ldexpf>>---load exponent + +INDEX + ldexp +INDEX + ldexpf + +ANSI_SYNOPSIS + #include <math.h> + double ldexp(double <[val]>, int <[exp]>); + float ldexpf(float <[val]>, int <[exp]>); + +TRAD_SYNOPSIS + #include <math.h> + + double ldexp(<[val]>, <[exp]>) + double <[val]>; + int <[exp]>; + + float ldexpf(<[val]>, <[exp]>) + float <[val]>; + int <[exp]>; + + +DESCRIPTION +<<ldexp>> calculates the value +@ifinfo +<[val]> times 2 to the power <[exp]>. +@end ifinfo +@tex +$val\times 2^{exp}$. +@end tex +<<ldexpf>> is identical, save that it takes and returns <<float>> +rather than <<double>> values. + +RETURNS +<<ldexp>> returns the calculated value. + +Underflow and overflow both set <<errno>> to <<ERANGE>>. +On underflow, <<ldexp>> and <<ldexpf>> return 0.0. +On overflow, <<ldexp>> returns plus or minus <<HUGE_VAL>>. + +PORTABILITY +<<ldexp>> is ANSI, <<ldexpf>> is an extension. + +*/ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double ldexp(double value, int exp) +#else + double ldexp(value, exp) + double value; int exp; +#endif +{ + if(!finite(value)||value==0.0) return value; + value = scalbn(value,exp); + if(!finite(value)||value==0.0) errno = ERANGE; + return value; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_signif.c b/newlib/libm/math/s_signif.c new file mode 100644 index 000000000..f68046bdc --- /dev/null +++ b/newlib/libm/math/s_signif.c @@ -0,0 +1,34 @@ + +/* @(#)s_signif.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * significand(x) computes just + * scalb(x, (double) -ilogb(x)), + * for exercising the fraction-part(F) IEEE 754-1985 test vector. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double significand(double x) +#else + double significand(x) + double x; +#endif +{ + return __ieee754_scalb(x,(double) -ilogb(x)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_sin.c b/newlib/libm/math/s_sin.c new file mode 100644 index 000000000..28259f378 --- /dev/null +++ b/newlib/libm/math/s_sin.c @@ -0,0 +1,132 @@ + +/* @(#)s_sin.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<sin>>, <<sinf>>, <<cos>>, <<cosf>>---sine or cosine +INDEX +sin +INDEX +sinf +INDEX +cos +INDEX +cosf +ANSI_SYNOPSIS + #include <math.h> + double sin(double <[x]>); + float sinf(float <[x]>); + double cos(double <[x]>); + float cosf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double sin(<[x]>) + double <[x]>; + float sinf(<[x]>) + float <[x]>; + + double cos(<[x]>) + double <[x]>; + float cosf(<[x]>) + float <[x]>; + +DESCRIPTION + <<sin>> and <<cos>> compute (respectively) the sine and cosine + of the argument <[x]>. Angles are specified in radians. + + <<sinf>> and <<cosf>> are identical, save that they take and + return <<float>> values. + + +RETURNS + The sine or cosine of <[x]> is returned. + +PORTABILITY + <<sin>> and <<cos>> are ANSI C. + <<sinf>> and <<cosf>> are extensions. + +QUICKREF + sin ansi pure + sinf - pure +*/ + +/* sin(x) + * Return sine function of x. + * + * kernel function: + * __kernel_sin ... sine function on [-pi/4,pi/4] + * __kernel_cos ... cose function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sin(double x) +#else + double sin(x) + double x; +#endif +{ + double y[2],z=0.0; + __int32_t n,ix; + + /* High word of x. */ + GET_HIGH_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_sin(x,z,0); + + /* sin(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + switch(n&3) { + case 0: return __kernel_sin(y[0],y[1],1); + case 1: return __kernel_cos(y[0],y[1]); + case 2: return -__kernel_sin(y[0],y[1],1); + default: + return -__kernel_cos(y[0],y[1]); + } + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_tan.c b/newlib/libm/math/s_tan.c new file mode 100644 index 000000000..2959f416e --- /dev/null +++ b/newlib/libm/math/s_tan.c @@ -0,0 +1,114 @@ + +/* @(#)s_tan.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + +/* + +FUNCTION + <<tan>>, <<tanf>>---tangent + +INDEX +tan +INDEX +tanf + +ANSI_SYNOPSIS + #include <math.h> + double tan(double <[x]>); + float tanf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double tan(<[x]>) + double <[x]>; + + float tanf(<[x]>) + float <[x]>; + + +DESCRIPTION +<<tan>> computes the tangent of the argument <[x]>. +Angles are specified in radians. + +<<tanf>> is identical, save that it takes and returns <<float>> values. + +RETURNS +The tangent of <[x]> is returned. + +PORTABILITY +<<tan>> is ANSI. <<tanf>> is an extension. +*/ + +/* tan(x) + * Return tangent function of x. + * + * kernel function: + * __kernel_tan ... tangent function on [-pi/4,pi/4] + * __ieee754_rem_pio2 ... argument reduction routine + * + * Method. + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * in [-pi/4 , +pi/4], and let n = k mod 4. + * We have + * + * n sin(x) cos(x) tan(x) + * ---------------------------------------------------------- + * 0 S C T + * 1 C -S -1/T + * 2 -S -C T + * 3 -C S -1/T + * ---------------------------------------------------------- + * + * Special cases: + * Let trig be any of sin, cos, or tan. + * trig(+-INF) is NaN, with signals; + * trig(NaN) is that NaN; + * + * Accuracy: + * TRIG(x) returns trig(x) nearly rounded + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double tan(double x) +#else + double tan(x) + double x; +#endif +{ + double y[2],z=0.0; + __int32_t n,ix; + + /* High word of x. */ + GET_HIGH_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1); + + /* tan(Inf or NaN) is NaN */ + else if (ix>=0x7ff00000) return x-x; /* NaN */ + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2(x,y); + return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even + -1 -- n odd */ + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/s_tanh.c b/newlib/libm/math/s_tanh.c new file mode 100644 index 000000000..b5541d028 --- /dev/null +++ b/newlib/libm/math/s_tanh.c @@ -0,0 +1,128 @@ + +/* @(#)s_tanh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + +FUNCTION + <<tanh>>, <<tanhf>>---hyperbolic tangent + +INDEX +tanh +INDEX +tanhf + +ANSI_SYNOPSIS + #include <math.h> + double tanh(double <[x]>); + float tanhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double tanh(<[x]>) + double <[x]>; + + float tanhf(<[x]>) + float <[x]>; + + +DESCRIPTION + +<<tanh>> computes the hyperbolic tangent of +the argument <[x]>. Angles are specified in radians. + +<<tanh(<[x]>)>> is defined as +. sinh(<[x]>)/cosh(<[x]>) + +<<tanhf>> is identical, save that it takes and returns <<float>> values. + +RETURNS +The hyperbolic tangent of <[x]> is returned. + +PORTABILITY +<<tanh>> is ANSI C. <<tanhf>> is an extension. + +*/ + +/* Tanh(x) + * Return the Hyperbolic Tangent of x + * + * Method : + * x -x + * e - e + * 0. tanh(x) is defined to be ----------- + * x -x + * e + e + * 1. reduce x to non-negative by tanh(-x) = -tanh(x). + * 2. 0 <= x <= 2**-55 : tanh(x) := x*(one+x) + * -t + * 2**-55 < x <= 1 : tanh(x) := -----; t = expm1(-2x) + * t + 2 + * 2 + * 1 <= x <= 22.0 : tanh(x) := 1- ----- ; t=expm1(2x) + * t + 2 + * 22.0 < x <= INF : tanh(x) := 1. + * + * Special cases: + * tanh(NaN) is NaN; + * only tanh(0)=0 is exact for finite argument. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one=1.0, two=2.0, tiny = 1.0e-300; +#else +static double one=1.0, two=2.0, tiny = 1.0e-300; +#endif + +#ifdef __STDC__ + double tanh(double x) +#else + double tanh(x) + double x; +#endif +{ + double t,z; + __int32_t jx,ix; + + /* High word of |x|. */ + GET_HIGH_WORD(jx,x); + ix = jx&0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7ff00000) { + if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */ + else return one/x-one; /* tanh(NaN) = NaN */ + } + + /* |x| < 22 */ + if (ix < 0x40360000) { /* |x|<22 */ + if (ix<0x3c800000) /* |x|<2**-55 */ + return x*(one+x); /* tanh(small) = small */ + if (ix>=0x3ff00000) { /* |x|>=1 */ + t = expm1(two*fabs(x)); + z = one - two/(t+two); + } else { + t = expm1(-two*fabs(x)); + z= -t/(t+two); + } + /* |x| > 22, return +-1 */ + } else { + z = one - tiny; /* raised inexact flag */ + } + return (jx>=0)? z: -z; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/math/sf_asinh.c b/newlib/libm/math/sf_asinh.c new file mode 100644 index 000000000..d5dfef811 --- /dev/null +++ b/newlib/libm/math/sf_asinh.c @@ -0,0 +1,66 @@ +/* sf_asinh.c -- float version of s_asinh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3F800000 */ +ln2 = 6.9314718246e-01, /* 0x3f317218 */ +huge= 1.0000000000e+30; + +#ifdef __STDC__ + float asinhf(float x) +#else + float asinhf(x) + float x; +#endif +{ + float t,w; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return x+x; /* x is inf or NaN */ + if(ix< 0x31800000) { /* |x|<2**-28 */ + if(huge+x>one) return x; /* return x inexact except 0 */ + } + if(ix>0x4d800000) { /* |x| > 2**28 */ + w = __ieee754_logf(fabsf(x))+ln2; + } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */ + t = fabsf(x); + w = __ieee754_logf((float)2.0*t+one/(__ieee754_sqrtf(x*x+one)+t)); + } else { /* 2.0 > |x| > 2**-28 */ + t = x*x; + w =log1pf(fabsf(x)+t/(one+__ieee754_sqrtf(one+t))); + } + if(hx>0) return w; else return -w; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double asinh(double x) +#else + double asinh(x) + double x; +#endif +{ + return (double) asinhf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_atan.c b/newlib/libm/math/sf_atan.c new file mode 100644 index 000000000..7ea664f23 --- /dev/null +++ b/newlib/libm/math/sf_atan.c @@ -0,0 +1,129 @@ +/* sf_atan.c -- float version of s_atan.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float atanhi[] = { +#else +static float atanhi[] = { +#endif + 4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */ + 7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */ + 9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */ + 1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */ +}; + +#ifdef __STDC__ +static const float atanlo[] = { +#else +static float atanlo[] = { +#endif + 5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */ + 3.7748947079e-08, /* atan(1.0)lo 0x33222168 */ + 3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */ + 7.5497894159e-08, /* atan(inf)lo 0x33a22168 */ +}; + +#ifdef __STDC__ +static const float aT[] = { +#else +static float aT[] = { +#endif + 3.3333334327e-01, /* 0x3eaaaaaa */ + -2.0000000298e-01, /* 0xbe4ccccd */ + 1.4285714924e-01, /* 0x3e124925 */ + -1.1111110449e-01, /* 0xbde38e38 */ + 9.0908870101e-02, /* 0x3dba2e6e */ + -7.6918758452e-02, /* 0xbd9d8795 */ + 6.6610731184e-02, /* 0x3d886b35 */ + -5.8335702866e-02, /* 0xbd6ef16b */ + 4.9768779427e-02, /* 0x3d4bda59 */ + -3.6531571299e-02, /* 0xbd15a221 */ + 1.6285819933e-02, /* 0x3c8569d7 */ +}; + +#ifdef __STDC__ + static const float +#else + static float +#endif +one = 1.0, +huge = 1.0e30; + +#ifdef __STDC__ + float atanf(float x) +#else + float atanf(x) + float x; +#endif +{ + float w,s1,s2,z; + __int32_t ix,hx,id; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x50800000) { /* if |x| >= 2^34 */ + if(ix>0x7f800000) + return x+x; /* NaN */ + if(hx>0) return atanhi[3]+atanlo[3]; + else return -atanhi[3]-atanlo[3]; + } if (ix < 0x3ee00000) { /* |x| < 0.4375 */ + if (ix < 0x31000000) { /* |x| < 2^-29 */ + if(huge+x>one) return x; /* raise inexact */ + } + id = -1; + } else { + x = fabsf(x); + if (ix < 0x3f980000) { /* |x| < 1.1875 */ + if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */ + id = 0; x = ((float)2.0*x-one)/((float)2.0+x); + } else { /* 11/16<=|x|< 19/16 */ + id = 1; x = (x-one)/(x+one); + } + } else { + if (ix < 0x401c0000) { /* |x| < 2.4375 */ + id = 2; x = (x-(float)1.5)/(one+(float)1.5*x); + } else { /* 2.4375 <= |x| < 2^66 */ + id = 3; x = -(float)1.0/x; + } + }} + /* end of argument reduction */ + z = x*x; + w = z*z; + /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */ + s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10]))))); + s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9])))); + if (id<0) return x - x*(s1+s2); + else { + z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x); + return (hx<0)? -z:z; + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double atan(double x) +#else + double atan(x) + double x; +#endif +{ + return (double) atanf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_ceil.c b/newlib/libm/math/sf_ceil.c new file mode 100644 index 000000000..85f0e9714 --- /dev/null +++ b/newlib/libm/math/sf_ceil.c @@ -0,0 +1,69 @@ +/* sf_ceil.c -- float version of s_ceil.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float huge = 1.0e30; +#else +static float huge = 1.0e30; +#endif + +#ifdef __STDC__ + float ceilf(float x) +#else + float ceilf(x) + float x; +#endif +{ + __int32_t i0,j0; + __uint32_t i; + GET_FLOAT_WORD(i0,x); + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>(float)0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0<0) {i0=0x80000000;} + else if(i0!=0) { i0=0x3f800000;} + } + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ + if(huge+x>(float)0.0) { /* raise inexact flag */ + if(i0>0) i0 += (0x00800000)>>j0; + i0 &= (~i); + } + } + } else { + if(j0==0x80) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } + SET_FLOAT_WORD(x,i0); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double ceil(double x) +#else + double ceil(x) + double x; +#endif +{ + return (double) ceilf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_cos.c b/newlib/libm/math/sf_cos.c new file mode 100644 index 000000000..8f3a8af01 --- /dev/null +++ b/newlib/libm/math/sf_cos.c @@ -0,0 +1,68 @@ +/* sf_cos.c -- float version of s_cos.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one=1.0; +#else +static float one=1.0; +#endif + +#ifdef __STDC__ + float cosf(float x) +#else + float cosf(x) + float x; +#endif +{ + float y[2],z=0.0; + __int32_t n,ix; + + GET_FLOAT_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3f490fd8) return __kernel_cosf(x,z); + + /* cos(Inf or NaN) is NaN */ + else if (ix>=0x7f800000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2f(x,y); + switch(n&3) { + case 0: return __kernel_cosf(y[0],y[1]); + case 1: return -__kernel_sinf(y[0],y[1],1); + case 2: return -__kernel_cosf(y[0],y[1]); + default: + return __kernel_sinf(y[0],y[1],1); + } + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double cos(double x) +#else + double cos(x) + double x; +#endif +{ + return (double) cosf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_erf.c b/newlib/libm/math/sf_erf.c new file mode 100644 index 000000000..1a9fa8d01 --- /dev/null +++ b/newlib/libm/math/sf_erf.c @@ -0,0 +1,246 @@ +/* sf_erf.c -- float version of s_erf.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +tiny = 1e-30, +half= 5.0000000000e-01, /* 0x3F000000 */ +one = 1.0000000000e+00, /* 0x3F800000 */ +two = 2.0000000000e+00, /* 0x40000000 */ + /* c = (subfloat)0.84506291151 */ +erx = 8.4506291151e-01, /* 0x3f58560b */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +efx = 1.2837916613e-01, /* 0x3e0375d4 */ +efx8= 1.0270333290e+00, /* 0x3f8375d4 */ +pp0 = 1.2837916613e-01, /* 0x3e0375d4 */ +pp1 = -3.2504209876e-01, /* 0xbea66beb */ +pp2 = -2.8481749818e-02, /* 0xbce9528f */ +pp3 = -5.7702702470e-03, /* 0xbbbd1489 */ +pp4 = -2.3763017452e-05, /* 0xb7c756b1 */ +qq1 = 3.9791721106e-01, /* 0x3ecbbbce */ +qq2 = 6.5022252500e-02, /* 0x3d852a63 */ +qq3 = 5.0813062117e-03, /* 0x3ba68116 */ +qq4 = 1.3249473704e-04, /* 0x390aee49 */ +qq5 = -3.9602282413e-06, /* 0xb684e21a */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */ +pa1 = 4.1485610604e-01, /* 0x3ed46805 */ +pa2 = -3.7220788002e-01, /* 0xbebe9208 */ +pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */ +pa4 = -1.1089469492e-01, /* 0xbde31cc2 */ +pa5 = 3.5478305072e-02, /* 0x3d1151b3 */ +pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */ +qa1 = 1.0642088205e-01, /* 0x3dd9f331 */ +qa2 = 5.4039794207e-01, /* 0x3f0a5785 */ +qa3 = 7.1828655899e-02, /* 0x3d931ae7 */ +qa4 = 1.2617121637e-01, /* 0x3e013307 */ +qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */ +qa6 = 1.1984500103e-02, /* 0x3c445aa3 */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +ra0 = -9.8649440333e-03, /* 0xbc21a093 */ +ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */ +ra2 = -1.0558626175e+01, /* 0xc128f022 */ +ra3 = -6.2375331879e+01, /* 0xc2798057 */ +ra4 = -1.6239666748e+02, /* 0xc322658c */ +ra5 = -1.8460508728e+02, /* 0xc3389ae7 */ +ra6 = -8.1287437439e+01, /* 0xc2a2932b */ +ra7 = -9.8143291473e+00, /* 0xc11d077e */ +sa1 = 1.9651271820e+01, /* 0x419d35ce */ +sa2 = 1.3765776062e+02, /* 0x4309a863 */ +sa3 = 4.3456588745e+02, /* 0x43d9486f */ +sa4 = 6.4538726807e+02, /* 0x442158c9 */ +sa5 = 4.2900814819e+02, /* 0x43d6810b */ +sa6 = 1.0863500214e+02, /* 0x42d9451f */ +sa7 = 6.5702495575e+00, /* 0x40d23f7c */ +sa8 = -6.0424413532e-02, /* 0xbd777f97 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +rb0 = -9.8649431020e-03, /* 0xbc21a092 */ +rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */ +rb2 = -1.7757955551e+01, /* 0xc18e104b */ +rb3 = -1.6063638306e+02, /* 0xc320a2ea */ +rb4 = -6.3756646729e+02, /* 0xc41f6441 */ +rb5 = -1.0250950928e+03, /* 0xc480230b */ +rb6 = -4.8351919556e+02, /* 0xc3f1c275 */ +sb1 = 3.0338060379e+01, /* 0x41f2b459 */ +sb2 = 3.2579251099e+02, /* 0x43a2e571 */ +sb3 = 1.5367296143e+03, /* 0x44c01759 */ +sb4 = 3.1998581543e+03, /* 0x4547fdbb */ +sb5 = 2.5530502930e+03, /* 0x451f90ce */ +sb6 = 4.7452853394e+02, /* 0x43ed43a7 */ +sb7 = -2.2440952301e+01; /* 0xc1b38712 */ + +#ifdef __STDC__ + float erff(float x) +#else + float erff(x) + float x; +#endif +{ + __int32_t hx,ix,i; + float R,S,P,Q,s,y,z,r; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) { /* erf(nan)=nan */ + i = ((__uint32_t)hx>>31)<<1; + return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */ + } + + if(ix < 0x3f580000) { /* |x|<0.84375 */ + if(ix < 0x31800000) { /* |x|<2**-28 */ + if (ix < 0x04000000) + /*avoid underflow */ + return (float)0.125*((float)8.0*x+efx8*x); + return x + efx*x; + } + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + return x + x*y; + } + if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ + s = fabsf(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) return erx + P/Q; else return -erx - P/Q; + } + if (ix >= 0x40c00000) { /* inf>|x|>=6 */ + if(hx>=0) return one-tiny; else return tiny-one; + } + x = fabsf(x); + s = one/(x*x); + if(ix< 0x4036DB6E) { /* |x| < 1/0.35 */ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/0.35 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(z,ix&0xfffff000); + r = __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S); + if(hx>=0) return one-r/x; else return r/x-one; +} + +#ifdef __STDC__ + float erfcf(float x) +#else + float erfcf(x) + float x; +#endif +{ + __int32_t hx,ix; + float R,S,P,Q,s,y,z,r; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) { /* erfc(nan)=nan */ + /* erfc(+-inf)=0,2 */ + return (float)(((__uint32_t)hx>>31)<<1)+one/x; + } + + if(ix < 0x3f580000) { /* |x|<0.84375 */ + if(ix < 0x23800000) /* |x|<2**-56 */ + return one-x; + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + if(hx < 0x3e800000) { /* x<1/4 */ + return one-(x+x*y); + } else { + r = x*y; + r += (x-half); + return half - r ; + } + } + if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ + s = fabsf(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) { + z = one-erx; return z - P/Q; + } else { + z = erx+P/Q; return one+z; + } + } + if (ix < 0x41e00000) { /* |x|<28 */ + x = fabsf(x); + s = one/(x*x); + if(ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/.35 ~ 2.857143 */ + if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(z,ix&0xfffff000); + r = __ieee754_expf(-z*z-(float)0.5625)* + __ieee754_expf((z-x)*(z+x)+R/S); + if(hx>0) return r/x; else return two-r/x; + } else { + if(hx>0) return tiny*tiny; else return two-tiny; + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double erf(double x) +#else + double erf(x) + double x; +#endif +{ + return (double) erff((float) x); +} + +#ifdef __STDC__ + double erfc(double x) +#else + double erfc(x) + double x; +#endif +{ + return (double) erfcf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_fabs.c b/newlib/libm/math/sf_fabs.c new file mode 100644 index 000000000..2aaed326a --- /dev/null +++ b/newlib/libm/math/sf_fabs.c @@ -0,0 +1,47 @@ +/* sf_fabs.c -- float version of s_fabs.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * fabsf(x) returns the absolute value of x. + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float fabsf(float x) +#else + float fabsf(x) + float x; +#endif +{ + __uint32_t ix; + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(x,ix&0x7fffffff); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double fabs(double x) +#else + double fabs(x) + double x; +#endif +{ + return (double) fabsf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_floor.c b/newlib/libm/math/sf_floor.c new file mode 100644 index 000000000..787f2fdf0 --- /dev/null +++ b/newlib/libm/math/sf_floor.c @@ -0,0 +1,79 @@ +/* sf_floor.c -- float version of s_floor.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * floorf(x) + * Return x rounded toward -inf to integral value + * Method: + * Bit twiddling. + * Exception: + * Inexact flag raised if x not equal to floorf(x). + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float huge = 1.0e30; +#else +static float huge = 1.0e30; +#endif + +#ifdef __STDC__ + float floorf(float x) +#else + float floorf(x) + float x; +#endif +{ + __int32_t i0,j0; + __uint32_t i; + GET_FLOAT_WORD(i0,x); + j0 = ((i0>>23)&0xff)-0x7f; + if(j0<23) { + if(j0<0) { /* raise inexact if x != 0 */ + if(huge+x>(float)0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0>=0) {i0=0;} + else if((i0&0x7fffffff)!=0) + { i0=0xbf800000;} + } + } else { + i = (0x007fffff)>>j0; + if((i0&i)==0) return x; /* x is integral */ + if(huge+x>(float)0.0) { /* raise inexact flag */ + if(i0<0) i0 += (0x00800000)>>j0; + i0 &= (~i); + } + } + } else { + if(j0==0x80) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } + SET_FLOAT_WORD(x,i0); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double floor(double x) +#else + double floor(x) + double x; +#endif +{ + return (double) floorf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_frexp.c b/newlib/libm/math/sf_frexp.c new file mode 100644 index 000000000..271fb9dca --- /dev/null +++ b/newlib/libm/math/sf_frexp.c @@ -0,0 +1,61 @@ +/* sf_frexp.c -- float version of s_frexp.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +two25 = 3.3554432000e+07; /* 0x4c000000 */ + +#ifdef __STDC__ + float frexpf(float x, int *eptr) +#else + float frexpf(x, eptr) + float x; int *eptr; +#endif +{ + __int32_t hx, ix; + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + *eptr = 0; + if(ix>=0x7f800000||(ix==0)) return x; /* 0,inf,nan */ + if (ix<0x00800000) { /* subnormal */ + x *= two25; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + *eptr = -25; + } + *eptr += (ix>>23)-126; + hx = (hx&0x807fffff)|0x3f000000; + SET_FLOAT_WORD(x,hx); + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double frexp(double x, int *eptr) +#else + double frexp(x, eptr) + double x; int *eptr; +#endif +{ + return (double) frexpf((float) x, eptr); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_isinf.c b/newlib/libm/math/sf_isinf.c new file mode 100644 index 000000000..1af4aab2a --- /dev/null +++ b/newlib/libm/math/sf_isinf.c @@ -0,0 +1,35 @@ +/* + * isinff(x) returns 1 if x is infinity, else 0; + * no branching! + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + int isinff(float x) +#else + int isinff(x) + float x; +#endif +{ + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + ix = 0x7f800000 - ix; + return 1 - (int)((__uint32_t)(ix|(-ix))>>31); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int isinf(double x) +#else + int isinf(x) + double x; +#endif +{ + return isinff((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_isnan.c b/newlib/libm/math/sf_isnan.c new file mode 100644 index 000000000..8fdb6adf2 --- /dev/null +++ b/newlib/libm/math/sf_isnan.c @@ -0,0 +1,49 @@ +/* sf_isnan.c -- float version of s_isnan.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * isnanf(x) returns 1 is x is nan, else 0; + * no branching! + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + int isnanf(float x) +#else + int isnanf(x) + float x; +#endif +{ + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + ix = 0x7f800000 - ix; + return (int)(((__uint32_t)(ix))>>31); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + int isnan(double x) +#else + int isnan(x) + double x; +#endif +{ + return isnanf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_ldexp.c b/newlib/libm/math/sf_ldexp.c new file mode 100644 index 000000000..278130482 --- /dev/null +++ b/newlib/libm/math/sf_ldexp.c @@ -0,0 +1,44 @@ +/* sf_ldexp.c -- float version of s_ldexp.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float ldexpf(float value, int exp) +#else + float ldexpf(value, exp) + float value; int exp; +#endif +{ + if(!finitef(value)||value==(float)0.0) return value; + value = scalbnf(value,exp); + if(!finitef(value)||value==(float)0.0) errno = ERANGE; + return value; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double ldexp(double value, int exp) +#else + double ldexp(value, exp) + double value; int exp; +#endif +{ + return (double) ldexpf((float) value, exp); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_signif.c b/newlib/libm/math/sf_signif.c new file mode 100644 index 000000000..fd4a07247 --- /dev/null +++ b/newlib/libm/math/sf_signif.c @@ -0,0 +1,40 @@ +/* sf_signif.c -- float version of s_signif.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float significandf(float x) +#else + float significandf(x) + float x; +#endif +{ + return __ieee754_scalbf(x,(float) -ilogbf(x)); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double significand(double x) +#else + double significand(x) + double x; +#endif +{ + return (double) significandf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_sin.c b/newlib/libm/math/sf_sin.c new file mode 100644 index 000000000..315d4b4ba --- /dev/null +++ b/newlib/libm/math/sf_sin.c @@ -0,0 +1,62 @@ +/* sf_sin.c -- float version of s_sin.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float sinf(float x) +#else + float sinf(x) + float x; +#endif +{ + float y[2],z=0.0; + __int32_t n,ix; + + GET_FLOAT_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0); + + /* sin(Inf or NaN) is NaN */ + else if (ix>=0x7f800000) return x-x; + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2f(x,y); + switch(n&3) { + case 0: return __kernel_sinf(y[0],y[1],1); + case 1: return __kernel_cosf(y[0],y[1]); + case 2: return -__kernel_sinf(y[0],y[1],1); + default: + return -__kernel_cosf(y[0],y[1]); + } + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sin(double x) +#else + double sin(x) + double x; +#endif +{ + return (double) sinf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_tan.c b/newlib/libm/math/sf_tan.c new file mode 100644 index 000000000..ade1cb216 --- /dev/null +++ b/newlib/libm/math/sf_tan.c @@ -0,0 +1,57 @@ +/* sf_tan.c -- float version of s_tan.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float tanf(float x) +#else + float tanf(x) + float x; +#endif +{ + float y[2],z=0.0; + __int32_t n,ix; + + GET_FLOAT_WORD(ix,x); + + /* |x| ~< pi/4 */ + ix &= 0x7fffffff; + if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1); + + /* tan(Inf or NaN) is NaN */ + else if (ix>=0x7f800000) return x-x; /* NaN */ + + /* argument reduction needed */ + else { + n = __ieee754_rem_pio2f(x,y); + return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even + -1 -- n odd */ + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double tan(double x) +#else + double tan(x) + double x; +#endif +{ + return (double) tanf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/sf_tanh.c b/newlib/libm/math/sf_tanh.c new file mode 100644 index 000000000..ba9edf5c0 --- /dev/null +++ b/newlib/libm/math/sf_tanh.c @@ -0,0 +1,73 @@ +/* sf_tanh.c -- float version of s_tanh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one=1.0, two=2.0, tiny = 1.0e-30; +#else +static float one=1.0, two=2.0, tiny = 1.0e-30; +#endif + +#ifdef __STDC__ + float tanhf(float x) +#else + float tanhf(x) + float x; +#endif +{ + float t,z; + __int32_t jx,ix; + + GET_FLOAT_WORD(jx,x); + ix = jx&0x7fffffff; + + /* x is INF or NaN */ + if(ix>=0x7f800000) { + if (jx>=0) return one/x+one; /* tanh(+-inf)=+-1 */ + else return one/x-one; /* tanh(NaN) = NaN */ + } + + /* |x| < 22 */ + if (ix < 0x41b00000) { /* |x|<22 */ + if (ix<0x24000000) /* |x|<2**-55 */ + return x*(one+x); /* tanh(small) = small */ + if (ix>=0x3f800000) { /* |x|>=1 */ + t = expm1f(two*fabsf(x)); + z = one - two/(t+two); + } else { + t = expm1f(-two*fabsf(x)); + z= -t/(t+two); + } + /* |x| > 22, return +-1 */ + } else { + z = one - tiny; /* raised inexact flag */ + } + return (jx>=0)? z: -z; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double tanh(double x) +#else + double tanh(x) + double x; +#endif +{ + return (double) tanhf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_acos.c b/newlib/libm/math/w_acos.c new file mode 100644 index 000000000..c9ca99c40 --- /dev/null +++ b/newlib/libm/math/w_acos.c @@ -0,0 +1,118 @@ + +/* @(#)w_acos.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<acos>>, <<acosf>>---arc cosine + +INDEX + acos +INDEX + acosf + +ANSI_SYNOPSIS + #include <math.h> + double acos(double <[x]>); + float acosf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double acos(<[x]>) + double <[x]>; + + float acosf(<[x]>) + float <[x]>; + + + +DESCRIPTION + + <<acos>> computes the inverse cosine (arc cosine) of the input value. + Arguments to <<acos>> must be in the range @minus{}1 to 1. + + <<acosf>> is identical to <<acos>>, except that it performs + its calculations on <<floats>>. + +RETURNS + @ifinfo + <<acos>> and <<acosf>> return values in radians, in the range of 0 to pi. + @end ifinfo + @tex + <<acos>> and <<acosf>> return values in radians, in the range of <<0>> to $\pi$. + @end tex + + If <[x]> is not between @minus{}1 and 1, the returned value is NaN + (not a number) the global variable <<errno>> is set to <<EDOM>>, and a + <<DOMAIN error>> message is sent as standard error output. + + You can modify error handling for these functions using <<matherr>>. + + +QUICKREF ANSI SVID POSIX RENTRANT + acos y,y,y,m + acosf n,n,n,m + +MATHREF + acos, [-1,1], acos(arg),,, + acos, NAN, arg,DOMAIN,EDOM + +MATHREF + acosf, [-1,1], acosf(arg),,, + acosf, NAN, argf,DOMAIN,EDOM + +*/ + +/* + * wrap_acos(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double acos(double x) /* wrapper acos */ +#else + double acos(x) /* wrapper acos */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acos(x); +#else + double z; + struct exception exc; + z = __ieee754_acos(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + /* acos(|x|>1) */ + exc.type = DOMAIN; + exc.name = "acos"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_acosh.c b/newlib/libm/math/w_acosh.c new file mode 100644 index 000000000..4120d7b12 --- /dev/null +++ b/newlib/libm/math/w_acosh.c @@ -0,0 +1,122 @@ + +/* @(#)w_acosh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION +<<acosh>>, <<acoshf>>---inverse hyperbolic cosine + +INDEX +acosh +INDEX +acoshf + +ANSI_SYNOPSIS + #include <math.h> + double acosh(double <[x]>); + float acoshf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double acosh(<[x]>) + double <[x]>; + + float acoshf(<[x]>) + float <[x]>; + +DESCRIPTION +<<acosh>> calculates the inverse hyperbolic cosine of <[x]>. +<<acosh>> is defined as +@ifinfo +. log(<[x]> + sqrt(<[x]>*<[x]>-1)) +@end ifinfo +@tex +$$ln\Bigl(x + \sqrt{x^2-1}\Bigr)$$ +@end tex + +<[x]> must be a number greater than or equal to 1. + +<<acoshf>> is identical, other than taking and returning floats. + +RETURNS +<<acosh>> and <<acoshf>> return the calculated value. If <[x]> +less than 1, the return value is NaN and <<errno>> is set to <<EDOM>>. + +You can change the error-handling behavior with the non-ANSI +<<matherr>> function. + +PORTABILITY +Neither <<acosh>> nor <<acoshf>> are ANSI C. They are not recommended +for portable programs. + + +QUICKREF ANSI SVID POSIX RENTRANT + acos n,n,n,m + acosf n,n,n,m + +MATHREF + acosh, NAN, arg,DOMAIN,EDOM + acosh, < 1.0, NAN,DOMAIN,EDOM + acosh, >=1.0, acosh(arg),,, + +MATHREF + acoshf, NAN, arg,DOMAIN,EDOM + acoshf, < 1.0, NAN,DOMAIN,EDOM + acoshf, >=1.0, acosh(arg),,, + +*/ + +/* + * wrapper acosh(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double acosh(double x) /* wrapper acosh */ +#else + double acosh(x) /* wrapper acosh */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acosh(x); +#else + double z; + struct exception exc; + z = __ieee754_acosh(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(x<1.0) { + /* acosh(x<1) */ + exc.type = DOMAIN; + exc.name = "acosh"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_asin.c b/newlib/libm/math/w_asin.c new file mode 100644 index 000000000..f6cb271d3 --- /dev/null +++ b/newlib/libm/math/w_asin.c @@ -0,0 +1,121 @@ + +/* @(#)w_asin.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<asin>>, <<asinf>>---arc sine + +INDEX + asin +INDEX + asinf + +ANSI_SYNOPSIS + #include <math.h> + double asin(double <[x]>); + float asinf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double asin(<[x]>) + double <[x]>; + + float asinf(<[x]>) + float <[x]>; + + +DESCRIPTION + +<<asin>> computes the inverse sine (arc sine) of the argument <[x]>. +Arguments to <<asin>> must be in the range @minus{}1 to 1. + +<<asinf>> is identical to <<asin>>, other than taking and +returning floats. + +You can modify error handling for these routines using <<matherr>>. + +RETURNS +@ifinfo +<<asin>> returns values in radians, in the range of -pi/2 to pi/2. +@end ifinfo +@tex +<<asin>> returns values in radians, in the range of $-\pi/2$ to $\pi/2$. +@end tex + +If <[x]> is not in the range @minus{}1 to 1, <<asin>> and <<asinf>> +return NaN (not a number), set the global variable <<errno>> to +<<EDOM>>, and issue a <<DOMAIN error>> message. + +You can change this error treatment using <<matherr>>. + +QUICKREF ANSI SVID POSIX RENTRANT + asin y,y,y,m + asinf n,n,n,m + +MATHREF + asin, -1<=arg<=1, asin(arg),,, + asin, NAN, arg,EDOM, DOMAIN + +MATHREF + asinf, -1<=arg<=1, asin(arg),,, + asinf, NAN, arg,EDOM, DOMAIN + + +*/ + +/* + * wrapper asin(x) + */ + + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double asin(double x) /* wrapper asin */ +#else + double asin(x) /* wrapper asin */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_asin(x); +#else + double z; + struct exception exc; + z = __ieee754_asin(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>1.0) { + /* asin(|x|>1) */ + exc.type = DOMAIN; + exc.name = "asin"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_atan2.c b/newlib/libm/math/w_atan2.c new file mode 100644 index 000000000..91742c72b --- /dev/null +++ b/newlib/libm/math/w_atan2.c @@ -0,0 +1,117 @@ + +/* @(#)w_atan2.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<atan2>>, <<atan2f>>---arc tangent of y/x + +INDEX + atan2 +INDEX + atan2f + +ANSI_SYNOPSIS + #include <math.h> + double atan2(double <[y]>,double <[x]>); + float atan2f(float <[y]>,float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atan2(<[y]>,<[x]>); + double <[y]>; + double <[x]>; + + float atan2f(<[y]>,<[x]>); + float <[y]>; + float <[x]>; + +DESCRIPTION + +<<atan2>> computes the inverse tangent (arc tangent) of <[y]>/<[x]>. +<<atan2>> produces the correct result even for angles near +@ifinfo +pi/2 or -pi/2 +@end ifinfo +@tex +$\pi/2$ or $-\pi/2$ +@end tex +(that is, when <[x]> is near 0). + +<<atan2f>> is identical to <<atan2>>, save that it takes and returns +<<float>>. + +RETURNS +<<atan2>> and <<atan2f>> return a value in radians, in the range of +@ifinfo +-pi to pi. +@end ifinfo +@tex +$-\pi$ to $\pi$. +@end tex + +If both <[x]> and <[y]> are 0.0, <<atan2>> causes a <<DOMAIN>> error. + +You can modify error handling for these functions using <<matherr>>. + +PORTABILITY +<<atan2>> is ANSI C. <<atan2f>> is an extension. + + +*/ + +/* + * wrapper atan2(y,x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double atan2(double y, double x) /* wrapper atan2 */ +#else + double atan2(y,x) /* wrapper atan2 */ + double y,x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atan2(y,x); +#else + double z; + struct exception exc; + z = __ieee754_atan2(y,x); + if(_LIB_VERSION == _IEEE_||isnan(x)||isnan(y)) return z; + if(x==0.0&&y==0.0) { + /* atan2(+-0,+-0) */ + exc.arg1 = y; + exc.arg2 = x; + exc.type = DOMAIN; + exc.name = "atan2"; + exc.err = 0; + exc.retval = 0.0; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_atanh.c b/newlib/libm/math/w_atanh.c new file mode 100644 index 000000000..b89d4f025 --- /dev/null +++ b/newlib/libm/math/w_atanh.c @@ -0,0 +1,140 @@ + +/* @(#)w_atanh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<atanh>>, <<atanhf>>---inverse hyperbolic tangent + +INDEX + atanh +INDEX + atanhf + +ANSI_SYNOPSIS + #include <math.h> + double atanh(double <[x]>); + float atanhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atanh(<[x]>) + double <[x]>; + + float atanhf(<[x]>) + float <[x]>; + +DESCRIPTION + <<atanh>> calculates the inverse hyperbolic tangent of <[x]>. + + <<atanhf>> is identical, other than taking and returning + <<float>> values. + +RETURNS + <<atanh>> and <<atanhf>> return the calculated value. + + If + @ifinfo + |<[x]>| + @end ifinfo + @tex + $|x|$ + @end tex + is greater than 1, the global <<errno>> is set to <<EDOM>> and + the result is a NaN. A <<DOMAIN error>> is reported. + + If + @ifinfo + |<[x]>| + @end ifinfo + @tex + $|x|$ + @end tex + is 1, the global <<errno>> is set to <<EDOM>>; and the result is + infinity with the same sign as <<x>>. A <<SING error>> is reported. + + You can modify the error handling for these routines using + <<matherr>>. + +PORTABILITY + Neither <<atanh>> nor <<atanhf>> are ANSI C. + +QUICKREF + atanh - pure + atanhf - pure + + +*/ + +/* + * wrapper atanh(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double atanh(double x) /* wrapper atanh */ +#else + double atanh(x) /* wrapper atanh */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atanh(x); +#else + double z,y; + struct exception exc; + z = __ieee754_atanh(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + y = fabs(x); + if(y>=1.0) { + if(y>1.0) { + /* atanh(|x|>1) */ + exc.type = DOMAIN; + exc.name = "atanh"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* atanh(|x|=1) */ + exc.type = SING; + exc.name = "atanh"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = x/0.0; /* sign(x)*inf */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + diff --git a/newlib/libm/math/w_cabs.c b/newlib/libm/math/w_cabs.c new file mode 100644 index 000000000..bef76680c --- /dev/null +++ b/newlib/libm/math/w_cabs.c @@ -0,0 +1,20 @@ +/* + * cabs() wrapper for hypot(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +struct complex { + double x; + double y; +}; + +double +cabs(z) + struct complex z; +{ + return hypot(z.x, z.y); +} diff --git a/newlib/libm/math/w_cosh.c b/newlib/libm/math/w_cosh.c new file mode 100644 index 000000000..7b38dcb08 --- /dev/null +++ b/newlib/libm/math/w_cosh.c @@ -0,0 +1,116 @@ + +/* @(#)w_cosh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + +FUNCTION + <<cosh>>, <<coshf>>---hyperbolic cosine + +ANSI_SYNOPSIS + #include <math.h> + double cosh(double <[x]>); + float coshf(float <[x]>) + +TRAD_SYNOPSIS + #include <math.h> + double cosh(<[x]>) + double <[x]>; + + float coshf(<[x]>) + float <[x]>; + +DESCRIPTION + + <<cosh>> computes the hyperbolic cosine of the argument <[x]>. + <<cosh(<[x]>)>> is defined as + @ifinfo + . (exp(x) + exp(-x))/2 + @end ifinfo + @tex + $${(e^x + e^{-x})} \over 2$$ + @end tex + + Angles are specified in radians. + + <<coshf>> is identical, save that it takes and returns <<float>>. + +RETURNS + The computed value is returned. When the correct value would create + an overflow, <<cosh>> returns the value <<HUGE_VAL>> with the + appropriate sign, and the global value <<errno>> is set to <<ERANGE>>. + + You can modify error handling for these functions using the + function <<matherr>>. + +PORTABILITY + <<cosh>> is ANSI. + <<coshf>> is an extension. + +QUICKREF + cosh ansi pure + coshf - pure +*/ + +/* + * wrapper cosh(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double cosh(double x) /* wrapper cosh */ +#else + double cosh(x) /* wrapper cosh */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_cosh(x); +#else + double z; + struct exception exc; + z = __ieee754_cosh(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>7.10475860073943863426e+02) { + /* cosh(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "cosh"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_drem.c b/newlib/libm/math/w_drem.c new file mode 100644 index 000000000..d289bdaac --- /dev/null +++ b/newlib/libm/math/w_drem.c @@ -0,0 +1,15 @@ +/* + * drem() wrapper for remainder(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +double +drem(x, y) + double x, y; +{ + return remainder(x, y); +} diff --git a/newlib/libm/math/w_exp.c b/newlib/libm/math/w_exp.c new file mode 100644 index 000000000..ae792a846 --- /dev/null +++ b/newlib/libm/math/w_exp.c @@ -0,0 +1,136 @@ + +/* @(#)w_exp.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<exp>>, <<expf>>---exponential +INDEX + exp +INDEX + expf + +ANSI_SYNOPSIS + #include <math.h> + double exp(double <[x]>); + float expf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double exp(<[x]>); + double <[x]>; + + float expf(<[x]>); + float <[x]>; + +DESCRIPTION + <<exp>> and <<expf>> calculate the exponential of <[x]>, that is, + @ifinfo + e raised to the power <[x]> (where e + @end ifinfo + @tex + $e^x$ (where $e$ + @end tex + is the base of the natural system of logarithms, approximately 2.71828). + + You can use the (non-ANSI) function <<matherr>> to specify + error handling for these functions. + +RETURNS + On success, <<exp>> and <<expf>> return the calculated value. + If the result underflows, the returned value is <<0>>. If the + result overflows, the returned value is <<HUGE_VAL>>. In + either case, <<errno>> is set to <<ERANGE>>. + +PORTABILITY + <<exp>> is ANSI C. <<expf>> is an extension. + +*/ + +/* + * wrapper exp(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ +u_threshold= -7.45133219101941108420e+02; /* 0xc0874910, 0xD52D3051 */ + +#ifdef __STDC__ + double exp(double x) /* wrapper exp */ +#else + double exp(x) /* wrapper exp */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_exp(x); +#else + double z; + struct exception exc; + z = __ieee754_exp(x); + if(_LIB_VERSION == _IEEE_) return z; + if(finite(x)) { + if(x>o_threshold) { + /* exp(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "exp"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else if(x<u_threshold) { + /* exp(finite) underflow */ + exc.type = UNDERFLOW; + exc.name = "exp"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + } + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_fmod.c b/newlib/libm/math/w_fmod.c new file mode 100644 index 000000000..b6b36cb76 --- /dev/null +++ b/newlib/libm/math/w_fmod.c @@ -0,0 +1,107 @@ + +/* @(#)w_fmod.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<fmod>>, <<fmodf>>---floating-point remainder (modulo) + +INDEX +fmod +INDEX +fmodf + +ANSI_SYNOPSIS +#include <math.h> +double fmod(double <[x]>, double <[y]>) +float fmodf(float <[x]>, float <[y]>) + +TRAD_SYNOPSIS +#include <math.h> +double fmod(<[x]>, <[y]>) +double (<[x]>, <[y]>); + +float fmodf(<[x]>, <[y]>) +float (<[x]>, <[y]>); + +DESCRIPTION +The <<fmod>> and <<fmodf>> functions compute the floating-point +remainder of <[x]>/<[y]> (<[x]> modulo <[y]>). + +RETURNS +The <<fmod>> function returns the value +@ifinfo +<[x]>-<[i]>*<[y]>, +@end ifinfo +@tex +$x-i\times y$, +@end tex +for the largest integer <[i]> such that, if <[y]> is nonzero, the +result has the same sign as <[x]> and magnitude less than the +magnitude of <[y]>. + +<<fmod(<[x]>,0)>> returns NaN, and sets <<errno>> to <<EDOM>>. + +You can modify error treatment for these functions using <<matherr>>. + +PORTABILITY +<<fmod>> is ANSI C. <<fmodf>> is an extension. +*/ + +/* + * wrapper fmod(x,y) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double fmod(double x, double y) /* wrapper fmod */ +#else + double fmod(x,y) /* wrapper fmod */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_fmod(x,y); +#else + double z; + struct exception exc; + z = __ieee754_fmod(x,y); + if(_LIB_VERSION == _IEEE_ ||isnan(y)||isnan(x)) return z; + if(y==0.0) { + /* fmod(x,0) */ + exc.type = DOMAIN; + exc.name = "fmod"; + exc.arg1 = x; + exc.arg2 = y; + exc.err = 0; + if (_LIB_VERSION == _SVID_) + exc.retval = x; + else + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_gamma.c b/newlib/libm/math/w_gamma.c new file mode 100644 index 000000000..da0211555 --- /dev/null +++ b/newlib/libm/math/w_gamma.c @@ -0,0 +1,193 @@ + +/* @(#)w_gamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<gamma>>, <<gammaf>>, <<lgamma>>, <<lgammaf>>, <<gamma_r>>, + <<gammaf_r>>, <<lgamma_r>>, <<lgammaf_r>>---logarithmic gamma + function +INDEX +gamma +INDEX +gammaf +INDEX +lgamma +INDEX +lgammaf +INDEX +gamma_r +INDEX +gammaf_r +INDEX +lgamma_r +INDEX +lgammaf_r + +ANSI_SYNOPSIS +#include <math.h> +double gamma(double <[x]>); +float gammaf(float <[x]>); +double lgamma(double <[x]>); +float lgammaf(float <[x]>); +double gamma_r(double <[x]>, int *<[signgamp]>); +float gammaf_r(float <[x]>, int *<[signgamp]>); +double lgamma_r(double <[x]>, int *<[signgamp]>); +float lgammaf_r(float <[x]>, int *<[signgamp]>); + +TRAD_SYNOPSIS +#include <math.h> +double gamma(<[x]>) +double <[x]>; +float gammaf(<[x]>) +float <[x]>; +double lgamma(<[x]>) +double <[x]>; +float lgammaf(<[x]>) +float <[x]>; +double gamma_r(<[x]>, <[signgamp]>) +double <[x]>; +int <[signgamp]>; +float gammaf_r(<[x]>, <[signgamp]>) +float <[x]>; +int <[signgamp]>; +double lgamma_r(<[x]>, <[signgamp]>) +double <[x]>; +int <[signgamp]>; +float lgammaf_r(<[x]>, <[signgamp]>) +float <[x]>; +int <[signgamp]>; + +DESCRIPTION +<<gamma>> calculates +@tex +$\mit ln\bigl(\Gamma(x)\bigr)$, +@end tex +the natural logarithm of the gamma function of <[x]>. The gamma function +(<<exp(gamma(<[x]>))>>) is a generalization of factorial, and retains +the property that +@ifinfo +<<exp(gamma(N))>> is equivalent to <<N*exp(gamma(N-1))>>. +@end ifinfo +@tex +$\mit \Gamma(N)\equiv N\times\Gamma(N-1)$. +@end tex +Accordingly, the results of the gamma function itself grow very +quickly. <<gamma>> is defined as +@tex +$\mit ln\bigl(\Gamma(x)\bigr)$ rather than simply $\mit \Gamma(x)$ +@end tex +@ifinfo +the natural log of the gamma function, rather than the gamma function +itself, +@end ifinfo +to extend the useful range of results representable. + +The sign of the result is returned in the global variable <<signgam>>, +which is declared in math.h. + +<<gammaf>> performs the same calculation as <<gamma>>, but uses and +returns <<float>> values. + +<<lgamma>> and <<lgammaf>> are alternate names for <<gamma>> and +<<gammaf>>. The use of <<lgamma>> instead of <<gamma>> is a reminder +that these functions compute the log of the gamma function, rather +than the gamma function itself. + +The functions <<gamma_r>>, <<gammaf_r>>, <<lgamma_r>>, and +<<lgammaf_r>> are just like <<gamma>>, <<gammaf>>, <<lgamma>>, and +<<lgammaf>>, respectively, but take an additional argument. This +additional argument is a pointer to an integer. This additional +argument is used to return the sign of the result, and the global +variable <<signgam>> is not used. These functions may be used for +reentrant calls (but they will still set the global variable <<errno>> +if an error occurs). + +RETURNS +Normally, the computed result is returned. + +When <[x]> is a nonpositive integer, <<gamma>> returns <<HUGE_VAL>> +and <<errno>> is set to <<EDOM>>. If the result overflows, <<gamma>> +returns <<HUGE_VAL>> and <<errno>> is set to <<ERANGE>>. + +You can modify this error treatment using <<matherr>>. + +PORTABILITY +Neither <<gamma>> nor <<gammaf>> is ANSI C. */ + +/* double gamma(double x) + * Return the logarithm of the Gamma function of x. + * + * Method: call gamma_r + */ + +#include "fdlibm.h" +#include <reent.h> +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double gamma(double x) +#else + double gamma(x) + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_gamma_r(x,&(_REENT->_new._reent._gamma_signgam)); +#else + double y; + struct exception exc; + y = __ieee754_gamma_r(x,&(_REENT->_new._reent._gamma_signgam)); + if(_LIB_VERSION == _IEEE_) return y; + if(!finite(y)&&finite(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "gamma"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floor(x)==x&&x<=0.0) { + /* gamma(-integer) or gamma(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* gamma(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return y; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_hypot.c b/newlib/libm/math/w_hypot.c new file mode 100644 index 000000000..318853d56 --- /dev/null +++ b/newlib/libm/math/w_hypot.c @@ -0,0 +1,109 @@ + +/* @(#)w_hypot.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<hypot>>, <<hypotf>>---distance from origin +INDEX + hypot +INDEX + hypotf + +ANSI_SYNOPSIS + #include <math.h> + double hypot(double <[x]>, double <[y]>); + float hypotf(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + double hypot(<[x]>, <[y]>) + double <[x]>, <[y]>; + + float hypotf(<[x]>, <[y]>) + float <[x]>, <[y]>; + +DESCRIPTION + <<hypot>> calculates the Euclidean distance + @tex + $\sqrt{x^2+y^2}$ + @end tex + @ifinfo + <<sqrt(<[x]>*<[x]> + <[y]>*<[y]>)>> + @end ifinfo + between the origin (0,0) and a point represented by the + Cartesian coordinates (<[x]>,<[y]>). <<hypotf>> differs only + in the type of its arguments and result. + +RETURNS + Normally, the distance value is returned. On overflow, + <<hypot>> returns <<HUGE_VAL>> and sets <<errno>> to + <<ERANGE>>. + + You can change the error treatment with <<matherr>>. + +PORTABILITY + <<hypot>> and <<hypotf>> are not ANSI C. */ + +/* + * wrapper hypot(x,y) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double hypot(double x, double y)/* wrapper hypot */ +#else + double hypot(x,y) /* wrapper hypot */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_hypot(x,y); +#else + double z; + struct exception exc; + z = __ieee754_hypot(x,y); + if(_LIB_VERSION == _IEEE_) return z; + if((!finite(z))&&finite(x)&&finite(y)) { + /* hypot(finite,finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "hypot"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_j0.c b/newlib/libm/math/w_j0.c new file mode 100644 index 000000000..4f0790842 --- /dev/null +++ b/newlib/libm/math/w_j0.c @@ -0,0 +1,229 @@ + +/* @(#)w_j0.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<jN>>,<<jNf>>,<<yN>>,<<yNf>>---Bessel functions + +INDEX +j0 +INDEX +j0f +INDEX +j1 +INDEX +j1f +INDEX +jn +INDEX +jnf +INDEX +y0 +INDEX +y0f +INDEX +y1 +INDEX +y1f +INDEX +yn +INDEX +ynf + +ANSI_SYNOPSIS +#include <math.h> +double j0(double <[x]>); +float j0f(float <[x]>); +double j1(double <[x]>); +float j1f(float <[x]>); +double jn(int <[n]>, double <[x]>); +float jnf(int <[n]>, float <[x]>); +double y0(double <[x]>); +float y0f(float <[x]>); +double y1(double <[x]>); +float y1f(float <[x]>); +double yn(int <[n]>, double <[x]>); +float ynf(int <[n]>, float <[x]>); + +TRAD_SYNOPSIS +#include <math.h> + +double j0(<[x]>) +double <[x]>; +float j0f(<[x]>) +float <[x]>; +double j1(<[x]>) +double <[x]>; +float j1f(<[x]>) +float <[x]>; +double jn(<[n]>, <[x]>) +int <[n]>; +double <[x]>; +float jnf(<[n]>, <[x]>) +int <[n]>; +float <[x]>; + +double y0(<[x]>) +double <[x]>; +float y0f(<[x]>) +float <[x]>; +double y1(<[x]>) +double <[x]>; +float y1f(<[x]>) +float <[x]>; +double yn(<[n]>, <[x]>) +int <[n]>; +double <[x]>; +float ynf(<[n]>, <[x]>) +int <[n]>; +float <[x]>; + +DESCRIPTION +The Bessel functions are a family of functions that solve the +differential equation +@ifinfo +. 2 2 2 +. x y'' + xy' + (x - p )y = 0 +@end ifinfo +@tex +$$x^2{d^2y\over dx^2} + x{dy\over dx} + (x^2-p^2)y = 0$$ +@end tex +These functions have many applications in engineering and physics. + +<<jn>> calculates the Bessel function of the first kind of order +<[n]>. <<j0>> and <<j1>> are special cases for order 0 and order +1 respectively. + +Similarly, <<yn>> calculates the Bessel function of the second kind of +order <[n]>, and <<y0>> and <<y1>> are special cases for order 0 and +1. + +<<jnf>>, <<j0f>>, <<j1f>>, <<ynf>>, <<y0f>>, and <<y1f>> perform the +same calculations, but on <<float>> rather than <<double>> values. + +RETURNS +The value of each Bessel function at <[x]> is returned. + +PORTABILITY +None of the Bessel functions are in ANSI C. +*/ + +/* + * wrapper j0(double x), y0(double x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double j0(double x) /* wrapper j0 */ +#else + double j0(x) /* wrapper j0 */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_j0(x); +#else + struct exception exc; + double z = __ieee754_j0(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(fabs(x)>X_TLOSS) { + /* j0(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "j0"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + double y0(double x) /* wrapper y0 */ +#else + double y0(x) /* wrapper y0 */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_y0(x); +#else + double z; + struct exception exc; + z = __ieee754_y0(x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(x <= 0.0){ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + /* y0(0) = -inf or y0(x<0) = NaN */ + exc.type = DOMAIN; /* should be SING for IEEE y0(0) */ + exc.name = "y0"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(x>X_TLOSS) { + /* y0(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "y0"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + + + + diff --git a/newlib/libm/math/w_j1.c b/newlib/libm/math/w_j1.c new file mode 100644 index 000000000..ba7df1566 --- /dev/null +++ b/newlib/libm/math/w_j1.c @@ -0,0 +1,121 @@ + +/* @(#)w_j1.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper of j1,y1 + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double j1(double x) /* wrapper j1 */ +#else + double j1(x) /* wrapper j1 */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_j1(x); +#else + double z; + struct exception exc; + z = __ieee754_j1(x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(fabs(x)>X_TLOSS) { + /* j1(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "j1"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + double y1(double x) /* wrapper y1 */ +#else + double y1(x) /* wrapper y1 */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_y1(x); +#else + double z; + struct exception exc; + z = __ieee754_y1(x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(x <= 0.0){ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + /* y1(0) = -inf or y1(x<0) = NaN */ + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "y1"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(x>X_TLOSS) { + /* y1(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "y1"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + + diff --git a/newlib/libm/math/w_jn.c b/newlib/libm/math/w_jn.c new file mode 100644 index 000000000..6cadc9a01 --- /dev/null +++ b/newlib/libm/math/w_jn.c @@ -0,0 +1,141 @@ + +/* @(#)w_jn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper jn(int n, double x), yn(int n, double x) + * floating point Bessel's function of the 1st and 2nd kind + * of order n + * + * Special cases: + * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; + * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. + * Note 2. About jn(n,x), yn(n,x) + * For n=0, j0(x) is called, + * for n=1, j1(x) is called, + * for n<x, forward recursion us used starting + * from values of j0(x) and j1(x). + * for n>x, a continued fraction approximation to + * j(n,x)/j(n-1,x) is evaluated and then backward + * recursion is used starting from a supposed value + * for j(n,x). The resulting value of j(0,x) is + * compared with the actual value to correct the + * supposed value of j(n,x). + * + * yn(n,x) is similar in all respects, except + * that forward recursion is used for all + * values of n>1. + * + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double jn(int n, double x) /* wrapper jn */ +#else + double jn(n,x) /* wrapper jn */ + double x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_jn(n,x); +#else + double z; + struct exception exc; + z = __ieee754_jn(n,x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(fabs(x)>X_TLOSS) { + /* jn(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "jn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + double yn(int n, double x) /* wrapper yn */ +#else + double yn(n,x) /* wrapper yn */ + double x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_yn(n,x); +#else + double z; + struct exception exc; + z = __ieee754_yn(n,x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(x <= 0.0){ + /* yn(n,0) = -inf or yn(x<0) = NaN */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "yn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(x>X_TLOSS) { + /* yn(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "yn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_lgamma.c b/newlib/libm/math/w_lgamma.c new file mode 100644 index 000000000..1dc63994f --- /dev/null +++ b/newlib/libm/math/w_lgamma.c @@ -0,0 +1,89 @@ + +/* @(#)w_lgamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* double lgamma(double x) + * Return the logarithm of the Gamma function of x. + * + * Method: call __ieee754_lgamma_r + */ + +#include "fdlibm.h" +#include <reent.h> +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double lgamma(double x) +#else + double lgamma(x) + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_lgamma_r(x,&(_REENT->_new._reent._gamma_signgam)); +#else + double y; + struct exception exc; + y = __ieee754_lgamma_r(x,&(_REENT->_new._reent._gamma_signgam)); + if(_LIB_VERSION == _IEEE_) return y; + if(!finite(y)&&finite(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "lgamma"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floor(x)==x&&x<=0.0) { + /* lgamma(-integer) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + + } else { + /* lgamma(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return y; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + + + + diff --git a/newlib/libm/math/w_log.c b/newlib/libm/math/w_log.c new file mode 100644 index 000000000..dcc8b9762 --- /dev/null +++ b/newlib/libm/math/w_log.c @@ -0,0 +1,115 @@ + +/* @(#)w_log.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<log>>, <<logf>>---natural logarithms + +INDEX + log +INDEX + logf + +ANSI_SYNOPSIS + #include <math.h> + double log(double <[x]>); + float logf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double log(<[x]>); + double <[x]>; + + float logf(<[x]>); + float <[x]>; + +DESCRIPTION +Return the natural logarithm of <[x]>, that is, its logarithm base e +(where e is the base of the natural system of logarithms, 2.71828@dots{}). +<<log>> and <<logf>> are identical save for the return and argument types. + +You can use the (non-ANSI) function <<matherr>> to specify error +handling for these functions. + +RETURNS +Normally, returns the calculated value. When <[x]> is zero, the +returned value is <<-HUGE_VAL>> and <<errno>> is set to <<ERANGE>>. +When <[x]> is negative, the returned value is <<-HUGE_VAL>> and +<<errno>> is set to <<EDOM>>. You can control the error behavior via +<<matherr>>. + +PORTABILITY +<<log>> is ANSI, <<logf>> is an extension. +*/ + +/* + * wrapper log(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double log(double x) /* wrapper log */ +#else + double log(x) /* wrapper log */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_log(x); +#else + double z; + struct exception exc; + z = __ieee754_log(x); + if(_LIB_VERSION == _IEEE_ || isnan(x) || x > 0.0) return z; +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "log"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if(x==0.0) { + /* log(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* log(x<0) */ + exc.type = DOMAIN; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_log10.c b/newlib/libm/math/w_log10.c new file mode 100644 index 000000000..f427b86cc --- /dev/null +++ b/newlib/libm/math/w_log10.c @@ -0,0 +1,115 @@ + +/* @(#)w_log10.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<log10>>, <<log10f>>---base 10 logarithms + +INDEX +log10 +INDEX +log10f + +ANSI_SYNOPSIS + #include <math.h> + double log10(double <[x]>); + float log10f(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double log10(<[x]>) + double <[x]>; + + float log10f(<[x]>) + float <[x]>; + +DESCRIPTION +<<log10>> returns the base 10 logarithm of <[x]>. +It is implemented as <<log(<[x]>) / log(10)>>. + +<<log10f>> is identical, save that it takes and returns <<float>> values. + +RETURNS +<<log10>> and <<log10f>> return the calculated value. + +See the description of <<log>> for information on errors. + +PORTABILITY +<<log10>> is ANSI C. <<log10f>> is an extension. + + */ + +/* + * wrapper log10(X) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double log10(double x) /* wrapper log10 */ +#else + double log10(x) /* wrapper log10 */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_log10(x); +#else + double z; + struct exception exc; + z = __ieee754_log10(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(x<=0.0) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "log10"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if(x==0.0) { + /* log10(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* log10(x<0) */ + exc.type = DOMAIN; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_pow.c b/newlib/libm/math/w_pow.c new file mode 100644 index 000000000..3df099a17 --- /dev/null +++ b/newlib/libm/math/w_pow.c @@ -0,0 +1,231 @@ + + +/* @(#)w_pow.c 5.2 93/10/01 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<pow>>, <<powf>>---x to the power y +INDEX + pow +INDEX + powf + + +ANSI_SYNOPSIS + #include <math.h> + double pow(double <[x]>, double <[y]>); + float pow(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double pow(<[x]>, <[y]>); + double <[x]>, <[y]>; + + float pow(<[x]>, <[y]>); + float <[x]>, <[y]>; + +DESCRIPTION + <<pow>> and <<powf>> calculate <[x]> raised to the exp1.0nt <[y]>. + @tex + (That is, $x^y$.) + @end tex + +RETURNS + On success, <<pow>> and <<powf>> return the value calculated. + + When the argument values would produce overflow, <<pow>> + returns <<HUGE_VAL>> and set <<errno>> to <<ERANGE>>. If the + argument <[x]> passed to <<pow>> or <<powf>> is a negative + noninteger, and <[y]> is also not an integer, then <<errno>> + is set to <<EDOM>>. If <[x]> and <[y]> are both 0, then + <<pow>> and <<powf>> return <<1>>. + + You can modify error handling for these functions using <<matherr>>. + +PORTABILITY + <<pow>> is ANSI C. <<powf>> is an extension. */ + +/* + * wrapper pow(x,y) return x**y + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double pow(double x, double y) /* wrapper pow */ +#else + double pow(x,y) /* wrapper pow */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_pow(x,y); +#else + double z; +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + struct exception exc; + z=__ieee754_pow(x,y); + if(_LIB_VERSION == _IEEE_|| isnan(y)) return z; + if(isnan(x)) { + if(y==0.0) { + /* pow(NaN,0.0) */ + /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */ + exc.type = DOMAIN; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + exc.retval = x; + if (_LIB_VERSION == _IEEE_ || + _LIB_VERSION == _POSIX_) exc.retval = 1.0; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; + } + if(x==0.0){ + if(y==0.0) { + /* pow(0.0,0.0) */ + /* error only if _LIB_VERSION == _SVID_ */ + exc.type = DOMAIN; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + exc.retval = 0.0; + if (_LIB_VERSION != _SVID_) exc.retval = 1.0; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(finite(y)&&y<0.0) { + /* 0**neg */ + exc.type = DOMAIN; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + return z; + } + if(!finite(z)) { + if(finite(x)&&finite(y)) { + if(isnan(z)) { + /* neg**non-integral */ + exc.type = DOMAIN; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = 0.0/0.0; /* X/Open allow NaN */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else { + /* pow(x,y) overflow */ + exc.type = OVERFLOW; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + if (_LIB_VERSION == _SVID_) { + exc.retval = HUGE; + y *= 0.5; + if(x<0.0&&rint(y)!=y) exc.retval = -HUGE; + } else { + exc.retval = HUGE_VAL; + y *= 0.5; + if(x<0.0&&rint(y)!=y) exc.retval = -HUGE_VAL; + } + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + } + } + if(z==0.0&&finite(x)&&finite(y)) { + /* pow(x,y) underflow */ + exc.type = UNDERFLOW; + exc.name = "pow"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + + + + + + + + + + + diff --git a/newlib/libm/math/w_remainder.c b/newlib/libm/math/w_remainder.c new file mode 100644 index 000000000..e4c196716 --- /dev/null +++ b/newlib/libm/math/w_remainder.c @@ -0,0 +1,108 @@ + +/* @(#)w_remainder.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<remainder>>, <<remainderf>>---round and remainder +INDEX + remainder +INDEX + remainderf + +ANSI_SYNOPSIS + #include <math.h> + double remainder(double <[x]>, double <[y]>); + float remainderf(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double remainder(<[x]>,<[y]>) + double <[x]>, <[y]>; + float remainderf(<[x]>,<[y]>) + float <[x]>, <[y]>; + +DESCRIPTION +<<remainder>> and <<remainderf>> find the remainder of +<[x]>/<[y]>; this value is in the range -<[y]>/2 .. +<[y]>/2. + +RETURNS +<<remainder>> returns the integer result as a double. + +PORTABILITY +<<remainder>> is a System V release 4. +<<remainderf>> is an extension. + +*/ + +/* + * wrapper remainder(x,p) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double remainder(double x, double y) /* wrapper remainder */ +#else + double remainder(x,y) /* wrapper remainder */ + double x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_remainder(x,y); +#else + double z; + struct exception exc; + z = __ieee754_remainder(x,y); + if(_LIB_VERSION == _IEEE_ || isnan(y)) return z; + if(y==0.0) { + /* remainder(x,0) */ + exc.type = DOMAIN; + exc.name = "remainder"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = y; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + + + + + + + + + + + + + + diff --git a/newlib/libm/math/w_scalb.c b/newlib/libm/math/w_scalb.c new file mode 100644 index 000000000..c32496892 --- /dev/null +++ b/newlib/libm/math/w_scalb.c @@ -0,0 +1,94 @@ + +/* @(#)w_scalb.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper scalb(double x, double fn) is provide for + * passing various standard test suite. One + * should use scalbn() instead. + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +#ifdef _SCALB_INT + double scalb(double x, int fn) /* wrapper scalb */ +#else + double scalb(double x, double fn) /* wrapper scalb */ +#endif +#else + double scalb(x,fn) /* wrapper scalb */ +#ifdef _SCALB_INT + double x; int fn; +#else + double x,fn; +#endif +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_scalb(x,fn); +#else + double z; +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + struct exception exc; + z = __ieee754_scalb(x,fn); + if(_LIB_VERSION == _IEEE_) return z; + if(!(finite(z)||isnan(z))&&finite(x)) { + /* scalb overflow; SVID also returns +-HUGE_VAL */ + exc.type = OVERFLOW; + exc.name = "scalb"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = fn; + exc.retval = x > 0.0 ? HUGE_VAL : -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(z==0.0&&z!=x) { + /* scalb underflow */ + exc.type = UNDERFLOW; + exc.name = "scalb"; + exc.err = 0; + exc.arg1 = x; + exc.arg2 = fn; + exc.retval = copysign(0.0,x); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } +#ifndef _SCALB_INT + if(!finite(fn)) errno = ERANGE; +#endif + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_sinh.c b/newlib/libm/math/w_sinh.c new file mode 100644 index 000000000..02a388862 --- /dev/null +++ b/newlib/libm/math/w_sinh.c @@ -0,0 +1,120 @@ + +/* @(#)w_sinh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + + +/* +FUNCTION + <<sinh>>, <<sinhf>>---hyperbolic sine + +INDEX + sinh +INDEX + sinhf + +ANSI_SYNOPSIS + #include <math.h> + double sinh(double <[x]>); + float sinhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double sinh(<[x]>) + double <[x]>; + + float sinhf(<[x]>) + float <[x]>; + +DESCRIPTION + <<sinh>> computes the hyperbolic sine of the argument <[x]>. + Angles are specified in radians. <<sinh>>(<[x]>) is defined as + @ifinfo + . (exp(<[x]>) - exp(-<[x]>))/2 + @end ifinfo + @tex + $${e^x - e^{-x}}\over 2$$ + @end tex + + <<sinhf>> is identical, save that it takes and returns <<float>> values. + +RETURNS + The hyperbolic sine of <[x]> is returned. + + When the correct result is too large to be representable (an + overflow), <<sinh>> returns <<HUGE_VAL>> with the + appropriate sign, and sets the global value <<errno>> to + <<ERANGE>>. + + You can modify error handling for these functions with <<matherr>>. + +PORTABILITY + <<sinh>> is ANSI C. + <<sinhf>> is an extension. + +QUICKREF + sinh ansi pure + sinhf - pure +*/ + +/* + * wrapper sinh(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sinh(double x) /* wrapper sinh */ +#else + double sinh(x) /* wrapper sinh */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_sinh(x); +#else + double z; + struct exception exc; + z = __ieee754_sinh(x); + if(_LIB_VERSION == _IEEE_) return z; + if(!finite(z)&&finite(x)) { + /* sinh(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "sinh"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = ( (x>0.0) ? HUGE : -HUGE); + else + exc.retval = ( (x>0.0) ? HUGE_VAL : -HUGE_VAL); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/w_sqrt.c b/newlib/libm/math/w_sqrt.c new file mode 100644 index 000000000..23a793ce7 --- /dev/null +++ b/newlib/libm/math/w_sqrt.c @@ -0,0 +1,93 @@ + +/* @(#)w_sqrt.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<sqrt>>, <<sqrtf>>---positive square root + +INDEX + sqrt +INDEX + sqrtf + +ANSI_SYNOPSIS + #include <math.h> + double sqrt(double <[x]>); + float sqrtf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double sqrt(<[x]>); + float sqrtf(<[x]>); + +DESCRIPTION + <<sqrt>> computes the positive square root of the argument. + You can modify error handling for this function with + <<matherr>>. + +RETURNS + On success, the square root is returned. If <[x]> is real and + positive, then the result is positive. If <[x]> is real and + negative, the global value <<errno>> is set to <<EDOM>> (domain error). + + +PORTABILITY + <<sqrt>> is ANSI C. <<sqrtf>> is an extension. +*/ + +/* + * wrapper sqrt(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sqrt(double x) /* wrapper sqrt */ +#else + double sqrt(x) /* wrapper sqrt */ + double x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_sqrt(x); +#else + struct exception exc; + double z; + z = __ieee754_sqrt(x); + if(_LIB_VERSION == _IEEE_ || isnan(x)) return z; + if(x<0.0) { + exc.type = DOMAIN; + exc.name = "sqrt"; + exc.err = 0; + exc.arg1 = exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_acos.c b/newlib/libm/math/wf_acos.c new file mode 100644 index 000000000..8a1037441 --- /dev/null +++ b/newlib/libm/math/wf_acos.c @@ -0,0 +1,69 @@ +/* wf_acos.c -- float version of w_acos.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrap_acosf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef _HAVE_STDC + float acosf(float x) /* wrapper acosf */ +#else + float acosf(x) /* wrapper acosf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acosf(x); +#else + float z; + struct exception exc; + z = __ieee754_acosf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(fabsf(x)>(float)1.0) { + /* acosf(|x|>1) */ + exc.type = DOMAIN; + exc.name = "acosf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double acos(double x) +#else + double acos(x) + double x; +#endif +{ + return (double) acosf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_acosh.c b/newlib/libm/math/wf_acosh.c new file mode 100644 index 000000000..19c2450e6 --- /dev/null +++ b/newlib/libm/math/wf_acosh.c @@ -0,0 +1,70 @@ +/* wf_acosh.c -- float version of w_acosh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper acoshf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float acoshf(float x) /* wrapper acoshf */ +#else + float acoshf(x) /* wrapper acoshf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_acoshf(x); +#else + float z; + struct exception exc; + z = __ieee754_acoshf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(x<(float)1.0) { + /* acoshf(x<1) */ + exc.type = DOMAIN; + exc.name = "acoshf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double acosh(double x) +#else + double acosh(x) + double x; +#endif +{ + return (double) acoshf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_asin.c b/newlib/libm/math/wf_asin.c new file mode 100644 index 000000000..a5225f2f4 --- /dev/null +++ b/newlib/libm/math/wf_asin.c @@ -0,0 +1,71 @@ +/* wf_asin.c -- float version of w_asin.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper asinf(x) + */ + + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float asinf(float x) /* wrapper asinf */ +#else + float asinf(x) /* wrapper asinf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_asinf(x); +#else + float z; + struct exception exc; + z = __ieee754_asinf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(fabsf(x)>(float)1.0) { + /* asinf(|x|>1) */ + exc.type = DOMAIN; + exc.name = "asinf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double asin(double x) +#else + double asin(x) + double x; +#endif +{ + return (double) asinf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_atan2.c b/newlib/libm/math/wf_atan2.c new file mode 100644 index 000000000..069a7ca13 --- /dev/null +++ b/newlib/libm/math/wf_atan2.c @@ -0,0 +1,71 @@ +/* wf_atan2.c -- float version of w_atan2.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* + * wrapper atan2f(y,x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float atan2f(float y, float x) /* wrapper atan2f */ +#else + float atan2f(y,x) /* wrapper atan2 */ + float y,x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atan2f(y,x); +#else + float z; + struct exception exc; + z = __ieee754_atan2f(y,x); + if(_LIB_VERSION == _IEEE_||isnanf(x)||isnanf(y)) return z; + if(x==(float)0.0&&y==(float)0.0) { + /* atan2f(+-0,+-0) */ + exc.arg1 = y; + exc.arg2 = x; + exc.err = 0; + exc.type = DOMAIN; + exc.name = "atan2f"; + exc.retval = 0.0; + if(_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double atan2(double y, double x) +#else + double atan2(y,x) + double y,x; +#endif +{ + return (double) atan2f((float) y, (float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_atanh.c b/newlib/libm/math/wf_atanh.c new file mode 100644 index 000000000..457cdc6e2 --- /dev/null +++ b/newlib/libm/math/wf_atanh.c @@ -0,0 +1,83 @@ +/* wf_atanh.c -- float version of w_atanh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +/* + * wrapper atanhf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float atanhf(float x) /* wrapper atanhf */ +#else + float atanhf(x) /* wrapper atanhf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_atanhf(x); +#else + float z,y; + struct exception exc; + z = __ieee754_atanhf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + y = fabsf(x); + if(y>=(float)1.0) { + if(y>(float)1.0) { + /* atanhf(|x|>1) */ + exc.type = DOMAIN; + exc.name = "atanhf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* atanhf(|x|=1) */ + exc.type = SING; + exc.name = "atanhf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = x/0.0; /* sign(x)*inf */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double atanh(double x) +#else + double atanh(x) + double x; +#endif +{ + return (double) atanhf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_cabs.c b/newlib/libm/math/wf_cabs.c new file mode 100644 index 000000000..c3ed0caa2 --- /dev/null +++ b/newlib/libm/math/wf_cabs.c @@ -0,0 +1,20 @@ +/* + * cabsf() wrapper for hypotf(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +struct complex { + float x; + float y; +}; + +float +cabsf(z) + struct complex z; +{ + return hypotf(z.x, z.y); +} diff --git a/newlib/libm/math/wf_cosh.c b/newlib/libm/math/wf_cosh.c new file mode 100644 index 000000000..82b76f3c4 --- /dev/null +++ b/newlib/libm/math/wf_cosh.c @@ -0,0 +1,78 @@ +/* wf_cosh.c -- float version of w_cosh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper coshf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float coshf(float x) /* wrapper coshf */ +#else + float coshf(x) /* wrapper coshf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_coshf(x); +#else + float z; + struct exception exc; + z = __ieee754_coshf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(fabsf(x)>(float)8.9415985107e+01) { + /* coshf(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "coshf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double cosh(double x) +#else + double cosh(x) + double x; +#endif +{ + return (double) coshf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_drem.c b/newlib/libm/math/wf_drem.c new file mode 100644 index 000000000..7c3f7c58e --- /dev/null +++ b/newlib/libm/math/wf_drem.c @@ -0,0 +1,19 @@ +/* + * dremf() wrapper for remainderf(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +float +#ifdef __STDC__ +dremf(float x, float y) +#else +dremf(x, y) + float x, y; +#endif +{ + return remainderf(x, y); +} diff --git a/newlib/libm/math/wf_exp.c b/newlib/libm/math/wf_exp.c new file mode 100644 index 000000000..70f4459b4 --- /dev/null +++ b/newlib/libm/math/wf_exp.c @@ -0,0 +1,103 @@ +/* wf_exp.c -- float version of w_exp.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper expf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ +static const float +#else +static float +#endif +o_threshold= 8.8721679688e+01, /* 0x42b17180 */ +u_threshold= -1.0397208405e+02; /* 0xc2cff1b5 */ + +#ifdef __STDC__ + float expf(float x) /* wrapper expf */ +#else + float expf(x) /* wrapper expf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_expf(x); +#else + float z; + struct exception exc; + z = __ieee754_expf(x); + if(_LIB_VERSION == _IEEE_) return z; + if(finitef(x)) { + if(x>o_threshold) { + /* expf(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "expf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else if(x<u_threshold) { + /* expf(finite) underflow */ + exc.type = UNDERFLOW; + exc.name = "expf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + } + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double exp(double x) +#else + double exp(x) + double x; +#endif +{ + return (double) expf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_fmod.c b/newlib/libm/math/wf_fmod.c new file mode 100644 index 000000000..320daabde --- /dev/null +++ b/newlib/libm/math/wf_fmod.c @@ -0,0 +1,73 @@ +/* wf_fmod.c -- float version of w_fmod.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper fmodf(x,y) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float fmodf(float x, float y) /* wrapper fmodf */ +#else + float fmodf(x,y) /* wrapper fmodf */ + float x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_fmodf(x,y); +#else + float z; + struct exception exc; + z = __ieee754_fmodf(x,y); + if(_LIB_VERSION == _IEEE_ ||isnanf(y)||isnanf(x)) return z; + if(y==(float)0.0) { + /* fmodf(x,0) */ + exc.type = DOMAIN; + exc.name = "fmodf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + if (_LIB_VERSION == _SVID_) + exc.retval = x; + else + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double fmod(double x, double y) +#else + double fmod(x,y) + double x,y; +#endif +{ + return (double) fmodf((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_gamma.c b/newlib/libm/math/wf_gamma.c new file mode 100644 index 000000000..fbeb38af1 --- /dev/null +++ b/newlib/libm/math/wf_gamma.c @@ -0,0 +1,93 @@ +/* wf_gamma.c -- float version of w_gamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" +#include <reent.h> +#include <errno.h> + +#ifdef __STDC__ + float gammaf(float x) +#else + float gammaf(x) + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_gammaf_r(x,&(_REENT->_new._reent._gamma_signgam)); +#else + float y; + struct exception exc; + y = __ieee754_gammaf_r(x,&(_REENT->_new._reent._gamma_signgam)); + if(_LIB_VERSION == _IEEE_) return y; + if(!finitef(y)&&finitef(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + if(floorf(x)==x&&x<=(float)0.0) { + /* gammaf(-integer) or gammaf(0) */ + exc.type = SING; + exc.name = "gammaf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* gammaf(finite) overflow */ + exc.type = OVERFLOW; + exc.name = "gammaf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return y; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double gamma(double x) +#else + double gamma(x) + double x; +#endif +{ + return (double) gammaf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_hypot.c b/newlib/libm/math/wf_hypot.c new file mode 100644 index 000000000..c04ace110 --- /dev/null +++ b/newlib/libm/math/wf_hypot.c @@ -0,0 +1,79 @@ +/* wf_hypot.c -- float version of w_hypot.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper hypotf(x,y) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float hypotf(float x, float y) /* wrapper hypotf */ +#else + float hypotf(x,y) /* wrapper hypotf */ + float x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_hypotf(x,y); +#else + float z; + struct exception exc; + z = __ieee754_hypotf(x,y); + if(_LIB_VERSION == _IEEE_) return z; + if((!finitef(z))&&finitef(x)&&finitef(y)) { + /* hypotf(finite,finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "hypotf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double hypot(double x, double y) +#else + double hypot(x,y) + double x,y; +#endif +{ + return (double) hypotf((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_j0.c b/newlib/libm/math/wf_j0.c new file mode 100644 index 000000000..0f3a7c1c6 --- /dev/null +++ b/newlib/libm/math/wf_j0.c @@ -0,0 +1,137 @@ +/* wf_j0.c -- float version of w_j0.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper j0f(float x), y0f(float x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float j0f(float x) /* wrapper j0f */ +#else + float j0f(x) /* wrapper j0f */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_j0f(x); +#else + struct exception exc; + float z = __ieee754_j0f(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(fabsf(x)>(float)X_TLOSS) { + /* j0f(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "j0f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + float y0f(float x) /* wrapper y0f */ +#else + float y0f(x) /* wrapper y0f */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_y0f(x); +#else + float z; + struct exception exc; + z = __ieee754_y0f(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(x <= (float)0.0){ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + /* y0f(0) = -inf or y0f(x<0) = NaN */ + exc.type = DOMAIN; /* should be SING for IEEE y0f(0) */ + exc.name = "y0f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + if(x>(float)X_TLOSS) { + /* y0f(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "y0f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double j0(double x) +#else + double j0(x) + double x; +#endif +{ + return (double) j0f((float) x); +} + +#ifdef __STDC__ + double y0(double x) +#else + double y0(x) + double x; +#endif +{ + return (double) y0f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_j1.c b/newlib/libm/math/wf_j1.c new file mode 100644 index 000000000..f9d3e0ed8 --- /dev/null +++ b/newlib/libm/math/wf_j1.c @@ -0,0 +1,139 @@ +/* wf_j1.c -- float version of w_j1.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper of j1f,y1f + */ + +#include "fdlibm.h" +#include <errno.h> + + +#ifdef __STDC__ + float j1f(float x) /* wrapper j1f */ +#else + float j1f(x) /* wrapper j1f */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_j1f(x); +#else + float z; + struct exception exc; + z = __ieee754_j1f(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(fabsf(x)>(float)X_TLOSS) { + /* j1f(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "j1f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + float y1f(float x) /* wrapper y1f */ +#else + float y1f(x) /* wrapper y1f */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_y1f(x); +#else + float z; + struct exception exc; + z = __ieee754_y1f(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(x <= (float)0.0){ + /* y1f(0) = -inf or y1f(x<0) = NaN */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "y1f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + if(x>(float)X_TLOSS) { + /* y1f(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "y1f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double j1(double x) +#else + double j1(x) + double x; +#endif +{ + return (double) j1f((float) x); +} + +#ifdef __STDC__ + double y1(double x) +#else + double y1(x) + double x; +#endif +{ + return (double) y1f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_jn.c b/newlib/libm/math/wf_jn.c new file mode 100644 index 000000000..c3a52630b --- /dev/null +++ b/newlib/libm/math/wf_jn.c @@ -0,0 +1,138 @@ +/* wf_jn.c -- float version of w_jn.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <errno.h> + + +#ifdef __STDC__ + float jnf(int n, float x) /* wrapper jnf */ +#else + float jnf(n,x) /* wrapper jnf */ + float x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_jnf(n,x); +#else + float z; + struct exception exc; + z = __ieee754_jnf(n,x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(fabsf(x)>(float)X_TLOSS) { + /* jnf(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "jnf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + float ynf(int n, float x) /* wrapper ynf */ +#else + float ynf(n,x) /* wrapper ynf */ + float x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_ynf(n,x); +#else + float z; + struct exception exc; + z = __ieee754_ynf(n,x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(x <= (float)0.0){ + /* ynf(n,0) = -inf or ynf(x<0) = NaN */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "ynf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + if(x>(float)X_TLOSS) { + /* ynf(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "ynf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double jn(int n, double x) +#else + double jn(n,x) + double x; int n; +#endif +{ + return (double) jnf(n, (float) x); +} + +#ifdef __STDC__ + double yn(int n, double x) +#else + double yn(n,x) + double x; int n; +#endif +{ + return (double) ynf(n, (float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_lgamma.c b/newlib/libm/math/wf_lgamma.c new file mode 100644 index 000000000..e1765c4a0 --- /dev/null +++ b/newlib/libm/math/wf_lgamma.c @@ -0,0 +1,87 @@ +/* wf_lgamma.c -- float version of w_lgamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" +#include <reent.h> +#include <errno.h> + +#ifdef __STDC__ + float lgammaf(float x) +#else + float lgammaf(x) + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_lgammaf_r(x,&(_REENT->_new._reent._gamma_signgam)); +#else + float y; + struct exception exc; + y = __ieee754_lgammaf_r(x,&(_REENT->_new._reent._gamma_signgam)); + if(_LIB_VERSION == _IEEE_) return y; + if(!finitef(y)&&finitef(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "lgammaf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floorf(x)==x&&x<=(float)0.0) { + /* lgammaf(-integer) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + + } else { + /* lgammaf(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return y; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double lgamma(double x) +#else + double lgamma(x) + double x; +#endif +{ + return (double) lgammaf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_log.c b/newlib/libm/math/wf_log.c new file mode 100644 index 000000000..cd373b402 --- /dev/null +++ b/newlib/libm/math/wf_log.c @@ -0,0 +1,85 @@ +/* wf_log.c -- float version of w_log.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper logf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float logf(float x) /* wrapper logf */ +#else + float logf(x) /* wrapper logf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_logf(x); +#else + float z; + struct exception exc; + z = __ieee754_logf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) || x > (float)0.0) return z; +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "logf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if(x==(float)0.0) { + /* logf(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* logf(x<0) */ + exc.type = DOMAIN; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double log(double x) +#else + double log(x) + double x; +#endif +{ + return (double) logf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_log10.c b/newlib/libm/math/wf_log10.c new file mode 100644 index 000000000..15fa5d939 --- /dev/null +++ b/newlib/libm/math/wf_log10.c @@ -0,0 +1,88 @@ +/* wf_log10.c -- float version of w_log10.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper log10f(X) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float log10f(float x) /* wrapper log10f */ +#else + float log10f(x) /* wrapper log10f */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_log10f(x); +#else + float z; + struct exception exc; + z = __ieee754_log10f(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(x<=(float)0.0) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "log10f"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if(x==(float)0.0) { + /* log10f(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* log10f(x<0) */ + exc.type = DOMAIN; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double log10(double x) +#else + double log10(x) + double x; +#endif +{ + return (double) log10f((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_pow.c b/newlib/libm/math/wf_pow.c new file mode 100644 index 000000000..42655da4a --- /dev/null +++ b/newlib/libm/math/wf_pow.c @@ -0,0 +1,179 @@ +/* wf_pow.c -- float version of w_pow.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper powf(x,y) return x**y + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float powf(float x, float y) /* wrapper powf */ +#else + float powf(x,y) /* wrapper powf */ + float x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_powf(x,y); +#else + float z; + struct exception exc; + z=__ieee754_powf(x,y); + if(_LIB_VERSION == _IEEE_|| isnanf(y)) return z; + if(isnanf(x)) { + if(y==(float)0.0) { + /* powf(NaN,0.0) */ + /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */ + exc.type = DOMAIN; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + exc.retval = x; + if (_LIB_VERSION == _IEEE_ || + _LIB_VERSION == _POSIX_) exc.retval = 1.0; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; + } + if(x==(float)0.0){ + if(y==(float)0.0) { + /* powf(0.0,0.0) */ + /* error only if _LIB_VERSION == _SVID_ */ + exc.type = DOMAIN; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + exc.retval = 0.0; + if (_LIB_VERSION != _SVID_) exc.retval = 1.0; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + if(finitef(y)&&y<(float)0.0) { + /* 0**neg */ + exc.type = DOMAIN; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + return z; + } + if(!finitef(z)) { + if(finitef(x)&&finitef(y)) { + if(isnanf(z)) { + /* neg**non-integral */ + exc.type = DOMAIN; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = 0.0/0.0; /* X/Open allow NaN */ + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else { + /* powf(x,y) overflow */ + exc.type = OVERFLOW; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + if (_LIB_VERSION == _SVID_) { + exc.retval = HUGE; + y *= 0.5; + if(x<0.0&&rint(y)!=y) exc.retval = -HUGE; + } else { + exc.retval = HUGE_VAL; + y *= 0.5; + if(x<0.0&&rint(y)!=y) exc.retval = -HUGE_VAL; + } + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + } + } + if(z==(float)0.0&&finitef(x)&&finitef(y)) { + /* powf(x,y) underflow */ + exc.type = UNDERFLOW; + exc.name = "powf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double pow(double x, double y) +#else + double pow(x,y) + double x,y; +#endif +{ + return (double) powf((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_remainder.c b/newlib/libm/math/wf_remainder.c new file mode 100644 index 000000000..0071a9772 --- /dev/null +++ b/newlib/libm/math/wf_remainder.c @@ -0,0 +1,74 @@ +/* wf_remainder.c -- float version of w_remainder.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper remainderf(x,p) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float remainderf(float x, float y) /* wrapper remainder */ +#else + float remainderf(x,y) /* wrapper remainder */ + float x,y; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_remainderf(x,y); +#else + float z; + struct exception exc; + z = __ieee754_remainderf(x,y); + if(_LIB_VERSION == _IEEE_ || isnanf(y)) return z; + if(y==(float)0.0) { + /* remainderf(x,0) */ + exc.type = DOMAIN; + exc.name = "remainderf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)y; + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double remainder(double x, double y) +#else + double remainder(x,y) + double x,y; +#endif +{ + return (double) remainderf((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ + + + + diff --git a/newlib/libm/math/wf_scalb.c b/newlib/libm/math/wf_scalb.c new file mode 100644 index 000000000..bd2d9f8b4 --- /dev/null +++ b/newlib/libm/math/wf_scalb.c @@ -0,0 +1,118 @@ +/* wf_scalb.c -- float version of w_scalb.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper scalbf(float x, float fn) is provide for + * passing various standard test suite. One + * should use scalbn() instead. + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ +#ifdef _SCALB_INT + float scalbf(float x, int fn) /* wrapper scalbf */ +#else + float scalbf(float x, float fn) /* wrapper scalbf */ +#endif +#else + float scalbf(x,fn) /* wrapper scalbf */ +#ifdef _SCALB_INT + float x; int fn; +#else + float x,fn; +#endif +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_scalbf(x,fn); +#else + float z; +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + struct exception exc; + z = __ieee754_scalbf(x,fn); + if(_LIB_VERSION == _IEEE_) return z; + if(!(finitef(z)||isnanf(z))&&finitef(x)) { + /* scalbf overflow; SVID also returns +-HUGE_VAL */ + exc.type = OVERFLOW; + exc.name = "scalbf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)fn; + exc.retval = x > 0.0 ? HUGE_VAL : -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(z==(float)0.0&&z!=x) { + /* scalbf underflow */ + exc.type = UNDERFLOW; + exc.name = "scalbf"; + exc.err = 0; + exc.arg1 = (double)x; + exc.arg2 = (double)fn; + exc.retval = copysign(0.0,x); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } +#ifndef _SCALB_INT + if(!finitef(fn)) errno = ERANGE; +#endif + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +#ifdef _SCALB_INT + double scalb(double x, int fn) +#else + double scalb(double x, double fn) +#endif +#else + double scalb(x, fn) +#ifdef _SCALB_INT + double x; int fn; +#else + double x,fn; +#endif +#endif +{ +#ifdef _SCALB_INT + return (double) scalbf((float) x, fn); +#else + return (double) scalbf((float) x, (float) fn); +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_sinh.c b/newlib/libm/math/wf_sinh.c new file mode 100644 index 000000000..80c7a8e6e --- /dev/null +++ b/newlib/libm/math/wf_sinh.c @@ -0,0 +1,78 @@ +/* wf_sinh.c -- float version of w_sinh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper sinhf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float sinhf(float x) /* wrapper sinhf */ +#else + float sinhf(x) /* wrapper sinhf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_sinhf(x); +#else + float z; + struct exception exc; + z = __ieee754_sinhf(x); + if(_LIB_VERSION == _IEEE_) return z; + if(!finitef(z)&&finitef(x)) { + /* sinhf(finite) overflow */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = OVERFLOW; + exc.name = "sinhf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = ( (x>0.0) ? HUGE : -HUGE); + else + exc.retval = ( (x>0.0) ? HUGE_VAL : -HUGE_VAL); + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sinh(double x) +#else + double sinh(x) + double x; +#endif +{ + return (double) sinhf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wf_sqrt.c b/newlib/libm/math/wf_sqrt.c new file mode 100644 index 000000000..6e792c923 --- /dev/null +++ b/newlib/libm/math/wf_sqrt.c @@ -0,0 +1,72 @@ +/* wf_sqrt.c -- float version of w_sqrt.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper sqrtf(x) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float sqrtf(float x) /* wrapper sqrtf */ +#else + float sqrtf(x) /* wrapper sqrtf */ + float x; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_sqrtf(x); +#else + float z; + struct exception exc; + z = __ieee754_sqrtf(x); + if(_LIB_VERSION == _IEEE_ || isnanf(x)) return z; + if(x<(float)0.0) { + /* sqrtf(negative) */ + exc.type = DOMAIN; + exc.name = "sqrtf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = 0.0; + else + exc.retval = 0.0/0.0; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double sqrt(double x) +#else + double sqrt(x) + double x; +#endif +{ + return (double) sqrtf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wr_gamma.c b/newlib/libm/math/wr_gamma.c new file mode 100644 index 000000000..0092ed02c --- /dev/null +++ b/newlib/libm/math/wr_gamma.c @@ -0,0 +1,76 @@ + +/* @(#)wr_gamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper double gamma_r(double x, int *signgamp) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double gamma_r(double x, int *signgamp) /* wrapper lgamma_r */ +#else + double gamma_r(x,signgamp) /* wrapper lgamma_r */ + double x; int *signgamp; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_gamma_r(x,signgamp); +#else + double y; + struct exception exc; + y = __ieee754_gamma_r(x,signgamp); + if(_LIB_VERSION == _IEEE_) return y; + if(!finite(y)&&finite(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "gamma"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floor(x)==x&&x<=0.0) { + /* gamma(-integer) or gamma(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* gamma(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return y; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wr_lgamma.c b/newlib/libm/math/wr_lgamma.c new file mode 100644 index 000000000..c59c1cce9 --- /dev/null +++ b/newlib/libm/math/wr_lgamma.c @@ -0,0 +1,77 @@ + +/* @(#)wr_lgamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper double lgamma_r(double x, int *signgamp) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double lgamma_r(double x, int *signgamp) /* wrapper lgamma_r */ +#else + double lgamma_r(x,signgamp) /* wrapper lgamma_r */ + double x; int *signgamp; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_lgamma_r(x,signgamp); +#else + double y; + struct exception exc; + y = __ieee754_lgamma_r(x,signgamp); + if(_LIB_VERSION == _IEEE_) return y; + if(!finite(y)&&finite(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "lgamma"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floor(x)==x&&x<=0.0) { + /* lgamma(-integer) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + + } else { + /* lgamma(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return y; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/math/wrf_gamma.c b/newlib/libm/math/wrf_gamma.c new file mode 100644 index 000000000..ae285f564 --- /dev/null +++ b/newlib/libm/math/wrf_gamma.c @@ -0,0 +1,74 @@ +/* wrf_gamma.c -- float version of wr_gamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper float gammaf_r(float x, int *signgamp) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float gammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */ +#else + float gammaf_r(x,signgamp) /* wrapper lgammaf_r */ + float x; int *signgamp; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_gammaf_r(x,signgamp); +#else + float y; + struct exception exc; + y = __ieee754_gammaf_r(x,signgamp); + if(_LIB_VERSION == _IEEE_) return y; + if(!finitef(y)&&finitef(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "gammaf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floorf(x)==x&&x<=(float)0.0) { + /* gammaf(-integer) or gamma(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + } else { + /* gammaf(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return y; +#endif +} diff --git a/newlib/libm/math/wrf_lgamma.c b/newlib/libm/math/wrf_lgamma.c new file mode 100644 index 000000000..73985e271 --- /dev/null +++ b/newlib/libm/math/wrf_lgamma.c @@ -0,0 +1,75 @@ +/* wrf_lgamma.c -- float version of wr_lgamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * wrapper float lgammaf_r(float x, int *signgamp) + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifdef __STDC__ + float lgammaf_r(float x, int *signgamp) /* wrapper lgammaf_r */ +#else + float lgammaf_r(x,signgamp) /* wrapper lgammaf_r */ + float x; int *signgamp; +#endif +{ +#ifdef _IEEE_LIBM + return __ieee754_lgammaf_r(x,signgamp); +#else + float y; + struct exception exc; + y = __ieee754_lgammaf_r(x,signgamp); + if(_LIB_VERSION == _IEEE_) return y; + if(!finitef(y)&&finitef(x)) { +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.name = "lgammaf"; + exc.err = 0; + exc.arg1 = exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = HUGE_VAL; + if(floorf(x)==x&&x<=(float)0.0) { + /* lgammaf(-integer) or lgamma(0) */ + exc.type = SING; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + + } else { + /* lgammaf(finite) overflow */ + exc.type = OVERFLOW; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return y; +#endif +} diff --git a/newlib/libm/mathfp/Makefile.am b/newlib/libm/mathfp/Makefile.am new file mode 100644 index 000000000..562653f58 --- /dev/null +++ b/newlib/libm/mathfp/Makefile.am @@ -0,0 +1,184 @@ +## Process this file with automake to generate Makefile.in + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I$(srcdir)/../common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a +src = s_acos.c s_frexp.c s_mathcnst.c \ + s_cos.c s_sinh.c \ + s_asin.c\ + s_asine.c s_cosh.c s_ispos.c s_numtest.c s_sqrt.c \ + s_exp.c s_ldexp.c s_pow.c s_tan.c \ + s_atan.c \ + s_atan2.c s_fabs.c s_log.c s_tanh.c \ + s_log10.c s_sin.c \ + s_floor.c s_sine.c \ + s_atangent.c s_logarithm.c \ + s_sineh.c \ + s_ceil.c s_isnan.c s_isinf.c \ + e_acosh.c e_atanh.c e_remainder.c \ + er_gamma.c er_lgamma.c \ + s_erf.c e_j0.c e_j1.c w_jn.c e_hypot.c \ + w_cabs.c w_drem.c s_asinh.c s_fmod.c \ + e_scalb.c s_infconst.c s_signif.c + +fsrc = sf_ceil.c \ + sf_acos.c sf_frexp.c \ + sf_cos.c sf_sinh.c \ + sf_asine.c sf_cosh.c sf_ispos.c sf_numtest.c sf_sqrt.c \ + sf_asin.c \ + sf_exp.c sf_ldexp.c sf_pow.c sf_tan.c \ + sf_atan2.c sf_fabs.c sf_tanh.c \ + sf_atan.c sf_log10.c sf_sin.c\ + sf_floor.c sf_sine.c \ + sf_atangent.c sf_logarithm.c sf_sineh.c \ + sf_log.c sf_sineh.c \ + sf_isnan.c sf_isinf.c \ + ef_acosh.c ef_atanh.c ef_remainder.c \ + erf_gamma.c erf_lgamma.c \ + sf_erf.c ef_j0.c ef_j1.c wf_jn.c ef_hypot.c \ + wf_cabs.c wf_drem.c sf_asinh.c sf_fmod.c \ + ef_scalb.c sf_signif.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = eacosh.def \ + eatanh.def \ + ehypot.def \ + eremainder.def \ + erlgamma.def \ + sacos.def \ + sasine.def \ + sasinh.def \ + satan.def \ + satan2.def \ + satangent.def \ + scosh.def \ + serf.def \ + sexp.def \ + sfabs.def \ + sfloor.def \ + sfmod.def \ + sfrexp.def \ + sisnan.def \ + sldexp.def \ + slog10.def \ + slogarithm.def \ + spow.def \ + ssine.def \ + ssineh.def \ + ssqrt.def \ + stan.def \ + stanh.def \ + wjn.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +TARGETDOC = ../tmp.texi + +doc: $(chobj) + cat $(srcdir)/mathfp.tex >> $(TARGETDOC) + +CLEANFILES = $(chobj) *.ref + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +eacosh.def: e_acosh.c + $(CHEW) < $(srcdir)/e_acosh.c >$@ 2>/dev/null + touch stmp-def +eatanh.def: e_atanh.c + $(CHEW) < $(srcdir)/e_atanh.c >$@ 2>/dev/null + touch stmp-def +ehypot.def: e_hypot.c + $(CHEW) < $(srcdir)/e_hypot.c >$@ 2>/dev/null + touch stmp-def +eremainder.def: e_remainder.c + $(CHEW) < $(srcdir)/e_remainder.c >$@ 2>/dev/null + touch stmp-def +erlgamma.def: er_lgamma.c + $(CHEW) < $(srcdir)/er_lgamma.c >$@ 2>/dev/null + touch stmp-def +sacos.def: s_acos.c + $(CHEW) < $(srcdir)/s_acos.c >$@ 2>/dev/null + touch stmp-def +sasine.def: s_asine.c + $(CHEW) < $(srcdir)/s_asine.c >$@ 2>/dev/null + touch stmp-def +sasinh.def: s_asinh.c + $(CHEW) < $(srcdir)/s_asinh.c >$@ 2>/dev/null + touch stmp-def +satan.def: s_atan.c + $(CHEW) < $(srcdir)/s_atan.c >$@ 2>/dev/null + touch stmp-def +satan2.def: s_atan2.c + $(CHEW) < $(srcdir)/s_atan2.c >$@ 2>/dev/null + touch stmp-def +satangent.def: s_atangent.c + $(CHEW) < $(srcdir)/s_atangent.c >$@ 2>/dev/null + touch stmp-def +scosh.def: s_cosh.c + $(CHEW) < $(srcdir)/s_cosh.c >$@ 2>/dev/null + touch stmp-def +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_erf.c >$@ 2>/dev/null + touch stmp-def +sexp.def: s_exp.c + $(CHEW) < $(srcdir)/s_exp.c >$@ 2>/dev/null + touch stmp-def +sfabs.def: s_fabs.c + $(CHEW) < $(srcdir)/s_fabs.c >$@ 2>/dev/null + touch stmp-def +sfloor.def: s_floor.c + $(CHEW) < $(srcdir)/s_floor.c >$@ 2>/dev/null + touch stmp-def +sfmod.def: s_fmod.c + $(CHEW) < $(srcdir)/s_fmod.c >$@ 2>/dev/null + touch stmp-def +sfrexp.def: s_frexp.c + $(CHEW) < $(srcdir)/s_frexp.c >$@ 2>/dev/null + touch stmp-def +sisnan.def: s_isnan.c + $(CHEW) < $(srcdir)/s_isnan.c >$@ 2>/dev/null + touch stmp-def +sldexp.def: s_ldexp.c + $(CHEW) < $(srcdir)/s_ldexp.c >$@ 2>/dev/null + touch stmp-def +slog10.def: s_log10.c + $(CHEW) < $(srcdir)/s_log10.c >$@ 2>/dev/null + touch stmp-def +slogarithm.def: s_logarithm.c + $(CHEW) < $(srcdir)/s_logarithm.c >$@ 2>/dev/null + touch stmp-def +spow.def: s_pow.c + $(CHEW) < $(srcdir)/s_pow.c >$@ 2>/dev/null + touch stmp-def +ssine.def: s_sine.c + $(CHEW) < $(srcdir)/s_sine.c >$@ 2>/dev/null + touch stmp-def +ssineh.def: s_sineh.c + $(CHEW) < $(srcdir)/s_sineh.c >$@ 2>/dev/null + touch stmp-def +ssqrt.def: s_sqrt.c + $(CHEW) < $(srcdir)/s_sqrt.c >$@ 2>/dev/null + touch stmp-def +stan.def: s_tan.c + $(CHEW) < $(srcdir)/s_tan.c >$@ 2>/dev/null + touch stmp-def +stanh.def: s_tanh.c + $(CHEW) < $(srcdir)/s_tanh.c >$@ 2>/dev/null + touch stmp-def +wjn.def: w_jn.c + $(CHEW) < $(srcdir)/w_jn.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h $(srcdir)/../common/fdlibm.h diff --git a/newlib/libm/mathfp/Makefile.in b/newlib/libm/mathfp/Makefile.in new file mode 100644 index 000000000..15575361d --- /dev/null +++ b/newlib/libm/mathfp/Makefile.in @@ -0,0 +1,410 @@ +# Makefile.in generated automatically by automake 1.3b from Makefile.am + +# Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + +SHELL = @SHELL@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ + +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +libdir = @libdir@ +infodir = @infodir@ +mandir = @mandir@ +includedir = @includedir@ +oldincludedir = /usr/include + +DESTDIR = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ + +top_builddir = .. + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOMAKE = @AUTOMAKE@ +AUTOHEADER = @AUTOHEADER@ + +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +transform = @program_transform_name@ + +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = @host_alias@ +host_triplet = @host@ +AR = @AR@ +AS = @AS@ +CC = @CC@ +CPP = @CPP@ +EXEEXT = @EXEEXT@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +NEWLIB_CFLAGS = @NEWLIB_CFLAGS@ +PACKAGE = @PACKAGE@ +RANLIB = @RANLIB@ +VERSION = @VERSION@ +mach_add_objs = @mach_add_objs@ +machine_dir = @machine_dir@ +newlib_basedir = @newlib_basedir@ +sys_dir = @sys_dir@ + +AUTOMAKE_OPTIONS = cygnus + +INCLUDES = -I$(srcdir)/../common $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) + +noinst_LIBRARIES = lib.a +src = s_acos.c s_frexp.c s_mathcnst.c \ + s_cos.c s_sinh.c \ + s_asin.c\ + s_asine.c s_cosh.c s_ispos.c s_numtest.c s_sqrt.c \ + s_exp.c s_ldexp.c s_pow.c s_tan.c \ + s_atan.c \ + s_atan2.c s_fabs.c s_log.c s_tanh.c \ + s_log10.c s_sin.c \ + s_floor.c s_sine.c \ + s_atangent.c s_logarithm.c \ + s_sineh.c \ + s_ceil.c s_isnan.c s_isinf.c \ + e_acosh.c e_atanh.c e_remainder.c \ + er_gamma.c er_lgamma.c \ + s_erf.c e_j0.c e_j1.c w_jn.c e_hypot.c \ + w_cabs.c w_drem.c s_asinh.c s_fmod.c \ + e_scalb.c s_infconst.c s_signif.c + +fsrc = sf_ceil.c \ + sf_acos.c sf_frexp.c \ + sf_cos.c sf_sinh.c \ + sf_asine.c sf_cosh.c sf_ispos.c sf_numtest.c sf_sqrt.c \ + sf_asin.c \ + sf_exp.c sf_ldexp.c sf_pow.c sf_tan.c \ + sf_atan2.c sf_fabs.c sf_tanh.c \ + sf_atan.c sf_log10.c sf_sin.c\ + sf_floor.c sf_sine.c \ + sf_atangent.c sf_logarithm.c sf_sineh.c \ + sf_log.c sf_sineh.c \ + sf_isnan.c sf_isinf.c \ + ef_acosh.c ef_atanh.c ef_remainder.c \ + erf_gamma.c erf_lgamma.c \ + sf_erf.c ef_j0.c ef_j1.c wf_jn.c ef_hypot.c \ + wf_cabs.c wf_drem.c sf_asinh.c sf_fmod.c \ + ef_scalb.c sf_signif.c + +lib_a_SOURCES = $(src) $(fsrc) + +chobj = eacosh.def eatanh.def ehypot.def eremainder.def erlgamma.def sacos.def sasine.def sasinh.def satan.def satan2.def satangent.def scosh.def serf.def sexp.def sfabs.def sfloor.def sfmod.def sfrexp.def sisnan.def sldexp.def slog10.def slogarithm.def spow.def ssine.def ssineh.def ssqrt.def stan.def stanh.def wjn.def + +SUFFIXES = .def + +CHEW = ../../doc/makedoc -f $(srcdir)/../../doc/doc.str + +TARGETDOC = ../tmp.texi + +CLEANFILES = $(chobj) *.ref +mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs +CONFIG_CLEAN_FILES = +LIBRARIES = $(noinst_LIBRARIES) + + +DEFS = @DEFS@ -I. -I$(srcdir) +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ +lib_a_LIBADD = +lib_a_OBJECTS = s_acos.o s_frexp.o s_mathcnst.o s_cos.o s_sinh.o \ +s_asin.o s_asine.o s_cosh.o s_ispos.o s_numtest.o s_sqrt.o s_exp.o \ +s_ldexp.o s_pow.o s_tan.o s_atan.o s_atan2.o s_fabs.o s_log.o s_tanh.o \ +s_log10.o s_sin.o s_floor.o s_sine.o s_atangent.o s_logarithm.o \ +s_sineh.o s_ceil.o s_isnan.o s_isinf.o e_acosh.o e_atanh.o \ +e_remainder.o er_gamma.o er_lgamma.o s_erf.o e_j0.o e_j1.o w_jn.o \ +e_hypot.o w_cabs.o w_drem.o s_asinh.o s_fmod.o e_scalb.o s_infconst.o \ +s_signif.o sf_ceil.o sf_acos.o sf_frexp.o sf_cos.o sf_sinh.o sf_asine.o \ +sf_cosh.o sf_ispos.o sf_numtest.o sf_sqrt.o sf_asin.o sf_exp.o \ +sf_ldexp.o sf_pow.o sf_tan.o sf_atan2.o sf_fabs.o sf_tanh.o sf_atan.o \ +sf_log10.o sf_sin.o sf_floor.o sf_sine.o sf_atangent.o sf_logarithm.o \ +sf_sineh.o sf_log.o sf_sineh.o sf_isnan.o sf_isinf.o ef_acosh.o \ +ef_atanh.o ef_remainder.o erf_gamma.o erf_lgamma.o sf_erf.o ef_j0.o \ +ef_j1.o wf_jn.o ef_hypot.o wf_cabs.o wf_drem.o sf_asinh.o sf_fmod.o \ +ef_scalb.o sf_signif.o +CFLAGS = @CFLAGS@ +COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LINK = $(CC) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ +DIST_COMMON = Makefile.am Makefile.in + + +DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) + +TAR = tar +GZIP = --best +SOURCES = $(lib_a_SOURCES) +OBJECTS = $(lib_a_OBJECTS) + +all: Makefile $(LIBRARIES) + +.SUFFIXES: +.SUFFIXES: .S .c .def .o .s +$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && $(AUTOMAKE) --cygnus mathfp/Makefile + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status + + +mostlyclean-noinstLIBRARIES: + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) + +distclean-noinstLIBRARIES: + +maintainer-clean-noinstLIBRARIES: + +.c.o: + $(COMPILE) -c $< + +.s.o: + $(COMPILE) -c $< + +.S.o: + $(COMPILE) -c $< + +mostlyclean-compile: + -rm -f *.o core *.core + +clean-compile: + +distclean-compile: + -rm -f *.tab.c + +maintainer-clean-compile: + +lib.a: $(lib_a_OBJECTS) $(lib_a_DEPENDENCIES) + -rm -f lib.a + $(AR) cru lib.a $(lib_a_OBJECTS) $(lib_a_LIBADD) + $(RANLIB) lib.a + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) + here=`pwd` && cd $(srcdir) \ + && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP) + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS)'; \ + unique=`for i in $$list; do echo $$i; done | \ + awk ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ + || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + +mostlyclean-tags: + +clean-tags: + +distclean-tags: + -rm -f TAGS ID + +maintainer-clean-tags: + +distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) + +subdir = mathfp + +distdir: $(DISTFILES) + @for file in $(DISTFILES); do \ + if test -f $$file; then d=.; else d=$(srcdir); fi; \ + test -f $(distdir)/$$file \ + || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ + || cp -p $$d/$$file $(distdir)/$$file; \ + done +info: +dvi: +check: +installcheck: +install-info: +install-exec: + @$(NORMAL_INSTALL) + +install-data: + @$(NORMAL_INSTALL) + +install: install-exec install-data all + @: + +uninstall: + +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install +installdirs: + + +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + -rm -f config.cache config.log stamp-h stamp-h[0-9]* + +maintainer-clean-generic: +mostlyclean: mostlyclean-noinstLIBRARIES mostlyclean-compile \ + mostlyclean-tags mostlyclean-generic + +clean: clean-noinstLIBRARIES clean-compile clean-tags clean-generic \ + mostlyclean + +distclean: distclean-noinstLIBRARIES distclean-compile distclean-tags \ + distclean-generic clean + -rm -f config.status + +maintainer-clean: maintainer-clean-noinstLIBRARIES \ + maintainer-clean-compile maintainer-clean-tags \ + maintainer-clean-generic distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + +.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \ +clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \ +mostlyclean-compile distclean-compile clean-compile \ +maintainer-clean-compile tags mostlyclean-tags distclean-tags \ +clean-tags maintainer-clean-tags distdir info dvi installcheck \ +install-info install-exec install-data install uninstall all \ +installdirs mostlyclean-generic distclean-generic clean-generic \ +maintainer-clean-generic clean mostlyclean distclean maintainer-clean + + +.c.def: + $(CHEW) < $< > $*.def 2> $*.ref + touch stmp-def + +doc: $(chobj) + cat $(srcdir)/mathfp.tex >> $(TARGETDOC) + +# Texinfo does not appear to support underscores in file names, so we +# name the .def files without underscores. + +eacosh.def: e_acosh.c + $(CHEW) < $(srcdir)/e_acosh.c >$@ 2>/dev/null + touch stmp-def +eatanh.def: e_atanh.c + $(CHEW) < $(srcdir)/e_atanh.c >$@ 2>/dev/null + touch stmp-def +ehypot.def: e_hypot.c + $(CHEW) < $(srcdir)/e_hypot.c >$@ 2>/dev/null + touch stmp-def +eremainder.def: e_remainder.c + $(CHEW) < $(srcdir)/e_remainder.c >$@ 2>/dev/null + touch stmp-def +erlgamma.def: er_lgamma.c + $(CHEW) < $(srcdir)/er_lgamma.c >$@ 2>/dev/null + touch stmp-def +sacos.def: s_acos.c + $(CHEW) < $(srcdir)/s_acos.c >$@ 2>/dev/null + touch stmp-def +sasine.def: s_asine.c + $(CHEW) < $(srcdir)/s_asine.c >$@ 2>/dev/null + touch stmp-def +sasinh.def: s_asinh.c + $(CHEW) < $(srcdir)/s_asinh.c >$@ 2>/dev/null + touch stmp-def +satan.def: s_atan.c + $(CHEW) < $(srcdir)/s_atan.c >$@ 2>/dev/null + touch stmp-def +satan2.def: s_atan2.c + $(CHEW) < $(srcdir)/s_atan2.c >$@ 2>/dev/null + touch stmp-def +satangent.def: s_atangent.c + $(CHEW) < $(srcdir)/s_atangent.c >$@ 2>/dev/null + touch stmp-def +scosh.def: s_cosh.c + $(CHEW) < $(srcdir)/s_cosh.c >$@ 2>/dev/null + touch stmp-def +serf.def: s_erf.c + $(CHEW) < $(srcdir)/s_erf.c >$@ 2>/dev/null + touch stmp-def +sexp.def: s_exp.c + $(CHEW) < $(srcdir)/s_exp.c >$@ 2>/dev/null + touch stmp-def +sfabs.def: s_fabs.c + $(CHEW) < $(srcdir)/s_fabs.c >$@ 2>/dev/null + touch stmp-def +sfloor.def: s_floor.c + $(CHEW) < $(srcdir)/s_floor.c >$@ 2>/dev/null + touch stmp-def +sfmod.def: s_fmod.c + $(CHEW) < $(srcdir)/s_fmod.c >$@ 2>/dev/null + touch stmp-def +sfrexp.def: s_frexp.c + $(CHEW) < $(srcdir)/s_frexp.c >$@ 2>/dev/null + touch stmp-def +sisnan.def: s_isnan.c + $(CHEW) < $(srcdir)/s_isnan.c >$@ 2>/dev/null + touch stmp-def +sldexp.def: s_ldexp.c + $(CHEW) < $(srcdir)/s_ldexp.c >$@ 2>/dev/null + touch stmp-def +slog10.def: s_log10.c + $(CHEW) < $(srcdir)/s_log10.c >$@ 2>/dev/null + touch stmp-def +slogarithm.def: s_logarithm.c + $(CHEW) < $(srcdir)/s_logarithm.c >$@ 2>/dev/null + touch stmp-def +spow.def: s_pow.c + $(CHEW) < $(srcdir)/s_pow.c >$@ 2>/dev/null + touch stmp-def +ssine.def: s_sine.c + $(CHEW) < $(srcdir)/s_sine.c >$@ 2>/dev/null + touch stmp-def +ssineh.def: s_sineh.c + $(CHEW) < $(srcdir)/s_sineh.c >$@ 2>/dev/null + touch stmp-def +ssqrt.def: s_sqrt.c + $(CHEW) < $(srcdir)/s_sqrt.c >$@ 2>/dev/null + touch stmp-def +stan.def: s_tan.c + $(CHEW) < $(srcdir)/s_tan.c >$@ 2>/dev/null + touch stmp-def +stanh.def: s_tanh.c + $(CHEW) < $(srcdir)/s_tanh.c >$@ 2>/dev/null + touch stmp-def +wjn.def: w_jn.c + $(CHEW) < $(srcdir)/w_jn.c >$@ 2>/dev/null + touch stmp-def + +# A partial dependency list. + +$(lib_a_OBJECTS): $(srcdir)/../../libc/include/math.h $(srcdir)/../common/fdlibm.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/newlib/libm/mathfp/e_acosh.c b/newlib/libm/mathfp/e_acosh.c new file mode 100644 index 000000000..a48420304 --- /dev/null +++ b/newlib/libm/mathfp/e_acosh.c @@ -0,0 +1,135 @@ + +/* @(#)e_acosh.c 5.1 93/09/24 */ + +/* +FUNCTION +<<acosh>>, <<acoshf>>---inverse hyperbolic cosine + +INDEX +acosh +INDEX +acoshf + +ANSI_SYNOPSIS + #include <math.h> + double acosh(double <[x]>); + float acoshf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double acosh(<[x]>) + double <[x]>; + + float acoshf(<[x]>) + float <[x]>; + +DESCRIPTION +<<acosh>> calculates the inverse hyperbolic cosine of <[x]>. +<<acosh>> is defined as +@ifinfo +. log(<[x]> + sqrt(<[x]>*<[x]>-1)) +@end ifinfo +@tex +$$ln\Bigl(x + \sqrt{x^2-1}\Bigr)$$ +@end tex + +<[x]> must be a number greater than or equal to 1. + +<<acoshf>> is identical, other than taking and returning floats. + +RETURNS +<<acosh>> and <<acoshf>> return the calculated value. If <[x]> +less than 1, the return value is NaN and <<errno>> is set to <<EDOM>>. + +You can change the error-handling behavior with the non-ANSI +<<matherr>> function. + +PORTABILITY +Neither <<acosh>> nor <<acoshf>> are ANSI C. They are not recommended +for portable programs. + + +QUICKREF ANSI SVID POSIX RENTRANT + acos n,n,n,m + acosf n,n,n,m + +MATHREF + acosh, NAN, arg,DOMAIN,EDOM + acosh, < 1.0, NAN,DOMAIN,EDOM + acosh, >=1.0, acosh(arg),,, + +MATHREF + acoshf, NAN, arg,DOMAIN,EDOM + acoshf, < 1.0, NAN,DOMAIN,EDOM + acoshf, >=1.0, acosh(arg),,, + +*/ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* acosh(x) + * Method : + * Based on + * acosh(x) = log [ x + sqrt(x*x-1) ] + * we have + * acosh(x) := log(x)+ln2, if x is large; else + * acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else + * acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1. + * + * Special cases: + * acosh(x) is NaN with signal if x<1. + * acosh(NaN) is NaN without signal. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.0, +ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */ + +#ifdef __STDC__ + double acosh(double x) +#else + double acosh(x) + double x; +#endif +{ + double t; + __int32_t hx; + __uint32_t lx; + EXTRACT_WORDS(hx,lx,x); + if(hx<0x3ff00000) { /* x < 1 */ + return (x-x)/(x-x); + } else if(hx >=0x41b00000) { /* x > 2**28 */ + if(hx >=0x7ff00000) { /* x is inf of NaN */ + return x+x; + } else + return log(x)+ln2; /* acosh(huge)=log(2x) */ + } else if(((hx-0x3ff00000)|lx)==0) { + return 0.0; /* acosh(1) = 0 */ + } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ + t=x*x; + return log(2.0*x-one/(x+sqrt(t-one))); + } else { /* 1<x<2 */ + t = x-one; + return log1p(t+sqrt(2.0*t+t*t)); + } +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_atanh.c b/newlib/libm/mathfp/e_atanh.c new file mode 100644 index 000000000..1ab311df4 --- /dev/null +++ b/newlib/libm/mathfp/e_atanh.c @@ -0,0 +1,139 @@ + +/* @(#)e_atanh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<atanh>>, <<atanhf>>---inverse hyperbolic tangent + +INDEX + atanh +INDEX + atanhf + +ANSI_SYNOPSIS + #include <math.h> + double atanh(double <[x]>); + float atanhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atanh(<[x]>) + double <[x]>; + + float atanhf(<[x]>) + float <[x]>; + +DESCRIPTION + <<atanh>> calculates the inverse hyperbolic tangent of <[x]>. + + <<atanhf>> is identical, other than taking and returning + <<float>> values. + +RETURNS + <<atanh>> and <<atanhf>> return the calculated value. + + If + @ifinfo + |<[x]>| + @end ifinfo + @tex + $|x|$ + @end tex + is greater than 1, the global <<errno>> is set to <<EDOM>> and + the result is a NaN. A <<DOMAIN error>> is reported. + + If + @ifinfo + |<[x]>| + @end ifinfo + @tex + $|x|$ + @end tex + is 1, the global <<errno>> is set to <<EDOM>>; and the result is + infinity with the same sign as <<x>>. A <<SING error>> is reported. + + You can modify the error handling for these routines using + <<matherr>>. + +PORTABILITY + Neither <<atanh>> nor <<atanhf>> are ANSI C. + +QUICKREF + atanh - pure + atanhf - pure + + +*/ + +/* atanh(x) + * Method : + * 1.Reduced x to positive by atanh(-x) = -atanh(x) + * 2.For x>=0.5 + * 1 2x x + * atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------) + * 2 1 - x 1 - x + * + * For x<0.5 + * atanh(x) = 0.5*log1p(2x+2x*x/(1-x)) + * + * Special cases: + * atanh(x) is NaN if |x| > 1 with signal; + * atanh(NaN) is that NaN with no signal; + * atanh(+-1) is +-INF with signal. + * + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, huge = 1e300; +#else +static double one = 1.0, huge = 1e300; +#endif + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double atanh(double x) +#else + double atanh(x) + double x; +#endif +{ + double t; + __int32_t hx,ix; + __uint32_t lx; + EXTRACT_WORDS(hx,lx,x); + ix = hx&0x7fffffff; + if ((ix|((lx|(-lx))>>31))>0x3ff00000) /* |x|>1 */ + return (x-x)/(x-x); + if(ix==0x3ff00000) + return x/zero; + if(ix<0x3e300000&&(huge+x)>zero) return x; /* x<2**-28 */ + SET_HIGH_WORD(x,ix); + if(ix<0x3fe00000) { /* x < 0.5 */ + t = x+x; + t = 0.5*log1p(t+t*x/(one-x)); + } else + t = 0.5*log1p((x+x)/(one-x)); + if(hx>=0) return t; else return -t; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_hypot.c b/newlib/libm/mathfp/e_hypot.c new file mode 100644 index 000000000..d93263ea4 --- /dev/null +++ b/newlib/libm/mathfp/e_hypot.c @@ -0,0 +1,170 @@ + +/* @(#)e_hypot.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<hypot>>, <<hypotf>>---distance from origin +INDEX + hypot +INDEX + hypotf + +ANSI_SYNOPSIS + #include <math.h> + double hypot(double <[x]>, double <[y]>); + float hypotf(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + double hypot(<[x]>, <[y]>) + double <[x]>, <[y]>; + + float hypotf(<[x]>, <[y]>) + float <[x]>, <[y]>; + +DESCRIPTION + <<hypot>> calculates the Euclidean distance + @tex + $\sqrt{x^2+y^2}$ + @end tex + @ifinfo + <<sqrt(<[x]>*<[x]> + <[y]>*<[y]>)>> + @end ifinfo + between the origin (0,0) and a point represented by the + Cartesian coordinates (<[x]>,<[y]>). <<hypotf>> differs only + in the type of its arguments and result. + +RETURNS + Normally, the distance value is returned. On overflow, + <<hypot>> returns <<HUGE_VAL>> and sets <<errno>> to + <<ERANGE>>. + + You can change the error treatment with <<matherr>>. + +PORTABILITY + <<hypot>> and <<hypotf>> are not ANSI C. */ + +/* hypot(x,y) + * + * Method : + * If (assume round-to-nearest) z=x*x+y*y + * has error less than sqrt(2)/2 ulp, than + * sqrt(z) has error less than 1 ulp (exercise). + * + * So, compute sqrt(x*x+y*y) with some care as + * follows to get the error below 1 ulp: + * + * Assume x>y>0; + * (if possible, set rounding to round-to-nearest) + * 1. if x > 2y use + * x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y + * where x1 = x with lower 32 bits cleared, x2 = x-x1; else + * 2. if x <= 2y use + * t1*y1+((x-y)*(x-y)+(t1*y2+t2*y)) + * where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1, + * y1= y with lower 32 bits chopped, y2 = y-y1. + * + * NOTE: scaling may be necessary if some argument is too + * large or too tiny + * + * Special cases: + * hypot(x,y) is INF if x or y is +INF or -INF; else + * hypot(x,y) is NAN if x or y is NAN. + * + * Accuracy: + * hypot(x,y) returns sqrt(x^2+y^2) with error less + * than 1 ulps (units in the last place) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double hypot(double x, double y) +#else + double hypot(x,y) + double x, y; +#endif +{ + double a=x,b=y,t1,t2,y1,y2,w; + __int32_t j,k,ha,hb; + + GET_HIGH_WORD(ha,x); + ha &= 0x7fffffff; + GET_HIGH_WORD(hb,y); + hb &= 0x7fffffff; + if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;} + SET_HIGH_WORD(a,ha); /* a <- |a| */ + SET_HIGH_WORD(b,hb); /* b <- |b| */ + if((ha-hb)>0x3c00000) {return a+b;} /* x/y > 2**60 */ + k=0; + if(ha > 0x5f300000) { /* a>2**500 */ + if(ha >= 0x7ff00000) { /* Inf or NaN */ + __uint32_t low; + w = a+b; /* for sNaN */ + GET_LOW_WORD(low,a); + if(((ha&0xfffff)|low)==0) w = a; + GET_LOW_WORD(low,b); + if(((hb^0x7ff00000)|low)==0) w = b; + return w; + } + /* scale a and b by 2**-600 */ + ha -= 0x25800000; hb -= 0x25800000; k += 600; + SET_HIGH_WORD(a,ha); + SET_HIGH_WORD(b,hb); + } + if(hb < 0x20b00000) { /* b < 2**-500 */ + if(hb <= 0x000fffff) { /* subnormal b or 0 */ + __uint32_t low; + GET_LOW_WORD(low,b); + if((hb|low)==0) return a; + t1=0; + SET_HIGH_WORD(t1,0x7fd00000); /* t1=2^1022 */ + b *= t1; + a *= t1; + k -= 1022; + } else { /* scale a and b by 2^600 */ + ha += 0x25800000; /* a *= 2^600 */ + hb += 0x25800000; /* b *= 2^600 */ + k -= 600; + SET_HIGH_WORD(a,ha); + SET_HIGH_WORD(b,hb); + } + } + /* medium size a and b */ + w = a-b; + if (w>b) { + t1 = 0; + SET_HIGH_WORD(t1,ha); + t2 = a-t1; + w = sqrt(t1*t1-(b*(-b)-t2*(a+t1))); + } else { + a = a+a; + y1 = 0; + SET_HIGH_WORD(y1,hb); + y2 = b - y1; + t1 = 0; + SET_HIGH_WORD(t1,ha+0x00100000); + t2 = a - t1; + w = sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b))); + } + if(k!=0) { + __uint32_t high; + t1 = 1.0; + GET_HIGH_WORD(high,t1); + SET_HIGH_WORD(t1,high+(k<<20)); + return t1*w; + } else return w; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_j0.c b/newlib/libm/mathfp/e_j0.c new file mode 100644 index 000000000..c53cc68f4 --- /dev/null +++ b/newlib/libm/mathfp/e_j0.c @@ -0,0 +1,487 @@ + +/* @(#)e_j0.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* j0(x), y0(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j0(x): + * 1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ... + * 2. Reduce x to |x| since j0(x)=j0(-x), and + * for x in (0,2) + * j0(x) = 1-z/4+ z^2*R0/S0, where z = x*x; + * (precision: |j0-1+z/4-z^2R0/S0 |<2**-63.67 ) + * for x in (2,inf) + * j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * as follow: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (cos(x) + sin(x)) + * sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j0(nan)= nan + * j0(0) = 1 + * j0(inf) = 0 + * + * Method -- y0(x): + * 1. For x<2. + * Since + * y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...) + * therefore y0(x)-2/pi*j0(x)*ln(x) is an even function. + * We use the following function to approximate y0, + * y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2 + * where + * U(z) = u00 + u01*z + ... + u06*z^6 + * V(z) = 1 + v01*z + ... + v04*z^4 + * with absolute approximation error bounded by 2**-72. + * Note: For tiny x, U/V = u0 and j0(x)~1, hence + * y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27) + * 2. For x>=2. + * y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0)) + * where x0 = x-pi/4. It is better to compute sin(x0),cos(x0) + * by the method mentioned above. + * 3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static double pzero(double), qzero(double); +#else +static double pzero(), qzero(); +#endif + +#ifdef __STDC__ +static const double +#else +static double +#endif +huge = 1e300, +one = 1.0, +invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ +tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ + /* R0/S0 on [0, 2.00] */ +R02 = 1.56249999999999947958e-02, /* 0x3F8FFFFF, 0xFFFFFFFD */ +R03 = -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */ +R04 = 1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */ +R05 = -4.61832688532103189199e-09, /* 0xBE33D5E7, 0x73D63FCE */ +S01 = 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */ +S02 = 1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */ +S03 = 5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */ +S04 = 1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double j0(double x) +#else + double j0(x) + double x; +#endif +{ + double z, s,c,ss,cc,r,u,v; + __int32_t hx,ix; + + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return one/(x*x); + x = fabs(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(x); + c = cos(x); + ss = s-c; + cc = s+c; + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = -cos(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix>0x48000000) z = (invsqrtpi*cc)/sqrt(x); + else { + u = pzero(x); v = qzero(x); + z = invsqrtpi*(u*cc-v*ss)/sqrt(x); + } + return z; + } + if(ix<0x3f200000) { /* |x| < 2**-13 */ + if(huge+x>one) { /* raise inexact if x != 0 */ + if(ix<0x3e400000) return one; /* |x|<2**-27 */ + else return one - 0.25*x*x; + } + } + z = x*x; + r = z*(R02+z*(R03+z*(R04+z*R05))); + s = one+z*(S01+z*(S02+z*(S03+z*S04))); + if(ix < 0x3FF00000) { /* |x| < 1.00 */ + return one + z*(-0.25+(r/s)); + } else { + u = 0.5*x; + return((one+u)*(one-u)+z*(r/s)); + } +} + +#ifdef __STDC__ +static const double +#else +static double +#endif +u00 = -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */ +u01 = 1.76666452509181115538e-01, /* 0x3FC69D01, 0x9DE9E3FC */ +u02 = -1.38185671945596898896e-02, /* 0xBF8C4CE8, 0xB16CFA97 */ +u03 = 3.47453432093683650238e-04, /* 0x3F36C54D, 0x20B29B6B */ +u04 = -3.81407053724364161125e-06, /* 0xBECFFEA7, 0x73D25CAD */ +u05 = 1.95590137035022920206e-08, /* 0x3E550057, 0x3B4EABD4 */ +u06 = -3.98205194132103398453e-11, /* 0xBDC5E43D, 0x693FB3C8 */ +v01 = 1.27304834834123699328e-02, /* 0x3F8A1270, 0x91C9C71A */ +v02 = 7.60068627350353253702e-05, /* 0x3F13ECBB, 0xF578C6C1 */ +v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */ +v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */ + +#ifdef __STDC__ + double y0(double x) +#else + double y0(x) + double x; +#endif +{ + double z, s,c,ss,cc,u,v; + __int32_t hx,ix,lx; + + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ + if(ix>=0x7ff00000) return one/(x+x*x); + if((ix|lx)==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0)) + * where x0 = x-pi/4 + * Better formula: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) + cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + s = sin(x); + c = cos(x); + ss = s-c; + cc = s+c; + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = -cos(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + if(ix>0x48000000) z = (invsqrtpi*ss)/sqrt(x); + else { + u = pzero(x); v = qzero(x); + z = invsqrtpi*(u*ss+v*cc)/sqrt(x); + } + return z; + } + if(ix<=0x3e400000) { /* x < 2**-27 */ + return(u00 + tpi*log(x)); + } + z = x*x; + u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); + v = one+z*(v01+z*(v02+z*(v03+z*v04))); + return(u/v + tpi*(j0(x)*log(x))); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +#ifdef __STDC__ +static const double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -7.03124999999900357484e-02, /* 0xBFB1FFFF, 0xFFFFFD32 */ + -8.08167041275349795626e+00, /* 0xC02029D0, 0xB44FA779 */ + -2.57063105679704847262e+02, /* 0xC0701102, 0x7B19E863 */ + -2.48521641009428822144e+03, /* 0xC0A36A6E, 0xCD4DCAFC */ + -5.25304380490729545272e+03, /* 0xC0B4850B, 0x36CC643D */ +}; +#ifdef __STDC__ +static const double pS8[5] = { +#else +static double pS8[5] = { +#endif + 1.16534364619668181717e+02, /* 0x405D2233, 0x07A96751 */ + 3.83374475364121826715e+03, /* 0x40ADF37D, 0x50596938 */ + 4.05978572648472545552e+04, /* 0x40E3D2BB, 0x6EB6B05F */ + 1.16752972564375915681e+05, /* 0x40FC810F, 0x8F9FA9BD */ + 4.76277284146730962675e+04, /* 0x40E74177, 0x4F2C49DC */ +}; + +#ifdef __STDC__ +static const double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -1.14125464691894502584e-11, /* 0xBDA918B1, 0x47E495CC */ + -7.03124940873599280078e-02, /* 0xBFB1FFFF, 0xE69AFBC6 */ + -4.15961064470587782438e+00, /* 0xC010A370, 0xF90C6BBF */ + -6.76747652265167261021e+01, /* 0xC050EB2F, 0x5A7D1783 */ + -3.31231299649172967747e+02, /* 0xC074B3B3, 0x6742CC63 */ + -3.46433388365604912451e+02, /* 0xC075A6EF, 0x28A38BD7 */ +}; +#ifdef __STDC__ +static const double pS5[5] = { +#else +static double pS5[5] = { +#endif + 6.07539382692300335975e+01, /* 0x404E6081, 0x0C98C5DE */ + 1.05125230595704579173e+03, /* 0x40906D02, 0x5C7E2864 */ + 5.97897094333855784498e+03, /* 0x40B75AF8, 0x8FBE1D60 */ + 9.62544514357774460223e+03, /* 0x40C2CCB8, 0xFA76FA38 */ + 2.40605815922939109441e+03, /* 0x40A2CC1D, 0xC70BE864 */ +}; + +#ifdef __STDC__ +static const double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -2.54704601771951915620e-09, /* 0xBE25E103, 0x6FE1AA86 */ + -7.03119616381481654654e-02, /* 0xBFB1FFF6, 0xF7C0E24B */ + -2.40903221549529611423e+00, /* 0xC00345B2, 0xAEA48074 */ + -2.19659774734883086467e+01, /* 0xC035F74A, 0x4CB94E14 */ + -5.80791704701737572236e+01, /* 0xC04D0A22, 0x420A1A45 */ + -3.14479470594888503854e+01, /* 0xC03F72AC, 0xA892D80F */ +}; +#ifdef __STDC__ +static const double pS3[5] = { +#else +static double pS3[5] = { +#endif + 3.58560338055209726349e+01, /* 0x4041ED92, 0x84077DD3 */ + 3.61513983050303863820e+02, /* 0x40769839, 0x464A7C0E */ + 1.19360783792111533330e+03, /* 0x4092A66E, 0x6D1061D6 */ + 1.12799679856907414432e+03, /* 0x40919FFC, 0xB8C39B7E */ + 1.73580930813335754692e+02, /* 0x4065B296, 0xFC379081 */ +}; + +#ifdef __STDC__ +static const double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -8.87534333032526411254e-08, /* 0xBE77D316, 0xE927026D */ + -7.03030995483624743247e-02, /* 0xBFB1FF62, 0x495E1E42 */ + -1.45073846780952986357e+00, /* 0xBFF73639, 0x8A24A843 */ + -7.63569613823527770791e+00, /* 0xC01E8AF3, 0xEDAFA7F3 */ + -1.11931668860356747786e+01, /* 0xC02662E6, 0xC5246303 */ + -3.23364579351335335033e+00, /* 0xC009DE81, 0xAF8FE70F */ +}; +#ifdef __STDC__ +static const double pS2[5] = { +#else +static double pS2[5] = { +#endif + 2.22202997532088808441e+01, /* 0x40363865, 0x908B5959 */ + 1.36206794218215208048e+02, /* 0x4061069E, 0x0EE8878F */ + 2.70470278658083486789e+02, /* 0x4070E786, 0x42EA079B */ + 1.53875394208320329881e+02, /* 0x40633C03, 0x3AB6FAFF */ + 1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */ +}; + +#ifdef __STDC__ + static double pzero(double x) +#else + static double pzero(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double z,r,s; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = pR8; q= pS8;} + else if(ix>=0x40122E8B){p = pR5; q= pS5;} + else if(ix>=0x4006DB6D){p = pR3; q= pS3;} + else if(ix>=0x40000000){p = pR2; q= pS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +#ifdef __STDC__ +static const double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 7.32421874999935051953e-02, /* 0x3FB2BFFF, 0xFFFFFE2C */ + 1.17682064682252693899e+01, /* 0x40278952, 0x5BB334D6 */ + 5.57673380256401856059e+02, /* 0x40816D63, 0x15301825 */ + 8.85919720756468632317e+03, /* 0x40C14D99, 0x3E18F46D */ + 3.70146267776887834771e+04, /* 0x40E212D4, 0x0E901566 */ +}; +#ifdef __STDC__ +static const double qS8[6] = { +#else +static double qS8[6] = { +#endif + 1.63776026895689824414e+02, /* 0x406478D5, 0x365B39BC */ + 8.09834494656449805916e+03, /* 0x40BFA258, 0x4E6B0563 */ + 1.42538291419120476348e+05, /* 0x41016652, 0x54D38C3F */ + 8.03309257119514397345e+05, /* 0x412883DA, 0x83A52B43 */ + 8.40501579819060512818e+05, /* 0x4129A66B, 0x28DE0B3D */ + -3.43899293537866615225e+05, /* 0xC114FD6D, 0x2C9530C5 */ +}; + +#ifdef __STDC__ +static const double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.84085963594515531381e-11, /* 0x3DB43D8F, 0x29CC8CD9 */ + 7.32421766612684765896e-02, /* 0x3FB2BFFF, 0xD172B04C */ + 5.83563508962056953777e+00, /* 0x401757B0, 0xB9953DD3 */ + 1.35111577286449829671e+02, /* 0x4060E392, 0x0A8788E9 */ + 1.02724376596164097464e+03, /* 0x40900CF9, 0x9DC8C481 */ + 1.98997785864605384631e+03, /* 0x409F17E9, 0x53C6E3A6 */ +}; +#ifdef __STDC__ +static const double qS5[6] = { +#else +static double qS5[6] = { +#endif + 8.27766102236537761883e+01, /* 0x4054B1B3, 0xFB5E1543 */ + 2.07781416421392987104e+03, /* 0x40A03BA0, 0xDA21C0CE */ + 1.88472887785718085070e+04, /* 0x40D267D2, 0x7B591E6D */ + 5.67511122894947329769e+04, /* 0x40EBB5E3, 0x97E02372 */ + 3.59767538425114471465e+04, /* 0x40E19118, 0x1F7A54A0 */ + -5.35434275601944773371e+03, /* 0xC0B4EA57, 0xBEDBC609 */ +}; + +#ifdef __STDC__ +static const double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 4.37741014089738620906e-09, /* 0x3E32CD03, 0x6ADECB82 */ + 7.32411180042911447163e-02, /* 0x3FB2BFEE, 0x0E8D0842 */ + 3.34423137516170720929e+00, /* 0x400AC0FC, 0x61149CF5 */ + 4.26218440745412650017e+01, /* 0x40454F98, 0x962DAEDD */ + 1.70808091340565596283e+02, /* 0x406559DB, 0xE25EFD1F */ + 1.66733948696651168575e+02, /* 0x4064D77C, 0x81FA21E0 */ +}; +#ifdef __STDC__ +static const double qS3[6] = { +#else +static double qS3[6] = { +#endif + 4.87588729724587182091e+01, /* 0x40486122, 0xBFE343A6 */ + 7.09689221056606015736e+02, /* 0x40862D83, 0x86544EB3 */ + 3.70414822620111362994e+03, /* 0x40ACF04B, 0xE44DFC63 */ + 6.46042516752568917582e+03, /* 0x40B93C6C, 0xD7C76A28 */ + 2.51633368920368957333e+03, /* 0x40A3A8AA, 0xD94FB1C0 */ + -1.49247451836156386662e+02, /* 0xC062A7EB, 0x201CF40F */ +}; + +#ifdef __STDC__ +static const double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.50444444886983272379e-07, /* 0x3E84313B, 0x54F76BDB */ + 7.32234265963079278272e-02, /* 0x3FB2BEC5, 0x3E883E34 */ + 1.99819174093815998816e+00, /* 0x3FFFF897, 0xE727779C */ + 1.44956029347885735348e+01, /* 0x402CFDBF, 0xAAF96FE5 */ + 3.16662317504781540833e+01, /* 0x403FAA8E, 0x29FBDC4A */ + 1.62527075710929267416e+01, /* 0x403040B1, 0x71814BB4 */ +}; +#ifdef __STDC__ +static const double qS2[6] = { +#else +static double qS2[6] = { +#endif + 3.03655848355219184498e+01, /* 0x403E5D96, 0xF7C07AED */ + 2.69348118608049844624e+02, /* 0x4070D591, 0xE4D14B40 */ + 8.44783757595320139444e+02, /* 0x408A6645, 0x22B3BF22 */ + 8.82935845112488550512e+02, /* 0x408B977C, 0x9C5CC214 */ + 2.12666388511798828631e+02, /* 0x406A9553, 0x0E001365 */ + -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */ +}; + +#ifdef __STDC__ + static double qzero(double x) +#else + static double qzero(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double s,r,z; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qR8; q= qS8;} + else if(ix>=0x40122E8B){p = qR5; q= qS5;} + else if(ix>=0x4006DB6D){p = qR3; q= qS3;} + else if(ix>=0x40000000){p = qR2; q= qS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (-.125 + r/s)/x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_j1.c b/newlib/libm/mathfp/e_j1.c new file mode 100644 index 000000000..f93c77e00 --- /dev/null +++ b/newlib/libm/mathfp/e_j1.c @@ -0,0 +1,486 @@ + +/* @(#)e_j1.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* j1(x), y1(x) + * Bessel function of the first and second kinds of order zero. + * Method -- j1(x): + * 1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ... + * 2. Reduce x to |x| since j1(x)=-j1(-x), and + * for x in (0,2) + * j1(x) = x/2 + x*z*R0/S0, where z = x*x; + * (precision: |j1/x - 1/2 - R0/S0 |<2**-61.51 ) + * for x in (2,inf) + * j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1)) + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * as follow: + * cos(x1) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x1) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (sin(x) + cos(x)) + * (To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one.) + * + * 3 Special cases + * j1(nan)= nan + * j1(0) = 0 + * j1(inf) = 0 + * + * Method -- y1(x): + * 1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN + * 2. For x<2. + * Since + * y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...) + * therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function. + * We use the following function to approximate y1, + * y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2 + * where for x in [0,2] (abs err less than 2**-65.89) + * U(z) = U0[0] + U0[1]*z + ... + U0[4]*z^4 + * V(z) = 1 + v0[0]*z + ... + v0[4]*z^5 + * Note: For tiny x, 1/x dominate y1 and hence + * y1(tiny) = -2/pi/tiny, (choose tiny<2**-54) + * 3. For x>=2. + * y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1)) + * where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1) + * by method mentioned above. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static double pone(double), qone(double); +#else +static double pone(), qone(); +#endif + +#ifdef __STDC__ +static const double +#else +static double +#endif +huge = 1e300, +one = 1.0, +invsqrtpi= 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */ +tpi = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */ + /* R0/S0 on [0,2] */ +r00 = -6.25000000000000000000e-02, /* 0xBFB00000, 0x00000000 */ +r01 = 1.40705666955189706048e-03, /* 0x3F570D9F, 0x98472C61 */ +r02 = -1.59955631084035597520e-05, /* 0xBEF0C5C6, 0xBA169668 */ +r03 = 4.96727999609584448412e-08, /* 0x3E6AAAFA, 0x46CA0BD9 */ +s01 = 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */ +s02 = 1.85946785588630915560e-04, /* 0x3F285F56, 0xB9CDF664 */ +s03 = 1.17718464042623683263e-06, /* 0x3EB3BFF8, 0x333F8498 */ +s04 = 5.04636257076217042715e-09, /* 0x3E35AC88, 0xC97DFF2C */ +s05 = 1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */ + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + +#ifdef __STDC__ + double j1(double x) +#else + double j1(x) + double x; +#endif +{ + double z, s,c,ss,cc,r,u,v,y; + __int32_t hx,ix; + + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return one/x; + y = fabs(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(y); + c = cos(y); + ss = -s-c; + cc = s-c; + if(ix<0x7fe00000) { /* make sure y+y not overflow */ + z = cos(y+y); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* + * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x) + * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x) + */ + if(ix>0x48000000) z = (invsqrtpi*cc)/sqrt(y); + else { + u = pone(y); v = qone(y); + z = invsqrtpi*(u*cc-v*ss)/sqrt(y); + } + if(hx<0) return -z; + else return z; + } + if(ix<0x3e400000) { /* |x|<2**-27 */ + if(huge+x>one) return 0.5*x;/* inexact if x!=0 necessary */ + } + z = x*x; + r = z*(r00+z*(r01+z*(r02+z*r03))); + s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05)))); + r *= x; + return(x*0.5+r/s); +} + +#ifdef __STDC__ +static const double U0[5] = { +#else +static double U0[5] = { +#endif + -1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */ + 5.04438716639811282616e-02, /* 0x3FA9D3C7, 0x76292CD1 */ + -1.91256895875763547298e-03, /* 0xBF5F55E5, 0x4844F50F */ + 2.35252600561610495928e-05, /* 0x3EF8AB03, 0x8FA6B88E */ + -9.19099158039878874504e-08, /* 0xBE78AC00, 0x569105B8 */ +}; +#ifdef __STDC__ +static const double V0[5] = { +#else +static double V0[5] = { +#endif + 1.99167318236649903973e-02, /* 0x3F94650D, 0x3F4DA9F0 */ + 2.02552581025135171496e-04, /* 0x3F2A8C89, 0x6C257764 */ + 1.35608801097516229404e-06, /* 0x3EB6C05A, 0x894E8CA6 */ + 6.22741452364621501295e-09, /* 0x3E3ABF1D, 0x5BA69A86 */ + 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */ +}; + +#ifdef __STDC__ + double y1(double x) +#else + double y1(x) + double x; +#endif +{ + double z, s,c,ss,cc,u,v; + __int32_t hx,ix,lx; + + EXTRACT_WORDS(hx,lx,x); + ix = 0x7fffffff&hx; + /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ + if(ix>=0x7ff00000) return one/(x+x*x); + if((ix|lx)==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sin(x); + c = cos(x); + ss = -s-c; + cc = s-c; + if(ix<0x7fe00000) { /* make sure x+x not overflow */ + z = cos(x+x); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0)) + * where x0 = x-3pi/4 + * Better formula: + * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (cos(x) + sin(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + if(ix>0x48000000) z = (invsqrtpi*ss)/sqrt(x); + else { + u = pone(x); v = qone(x); + z = invsqrtpi*(u*ss+v*cc)/sqrt(x); + } + return z; + } + if(ix<=0x3c900000) { /* x < 2**-54 */ + return(-tpi/x); + } + z = x*x; + u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); + v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); + return(x*(u/v) + tpi*(j1(x)*log(x)-one/x)); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +#ifdef __STDC__ +static const double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + 1.17187499999988647970e-01, /* 0x3FBDFFFF, 0xFFFFFCCE */ + 1.32394806593073575129e+01, /* 0x402A7A9D, 0x357F7FCE */ + 4.12051854307378562225e+02, /* 0x4079C0D4, 0x652EA590 */ + 3.87474538913960532227e+03, /* 0x40AE457D, 0xA3A532CC */ + 7.91447954031891731574e+03, /* 0x40BEEA7A, 0xC32782DD */ +}; +#ifdef __STDC__ +static const double ps8[5] = { +#else +static double ps8[5] = { +#endif + 1.14207370375678408436e+02, /* 0x405C8D45, 0x8E656CAC */ + 3.65093083420853463394e+03, /* 0x40AC85DC, 0x964D274F */ + 3.69562060269033463555e+04, /* 0x40E20B86, 0x97C5BB7F */ + 9.76027935934950801311e+04, /* 0x40F7D42C, 0xB28F17BB */ + 3.08042720627888811578e+04, /* 0x40DE1511, 0x697A0B2D */ +}; + +#ifdef __STDC__ +static const double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.31990519556243522749e-11, /* 0x3DAD0667, 0xDAE1CA7D */ + 1.17187493190614097638e-01, /* 0x3FBDFFFF, 0xE2C10043 */ + 6.80275127868432871736e+00, /* 0x401B3604, 0x6E6315E3 */ + 1.08308182990189109773e+02, /* 0x405B13B9, 0x452602ED */ + 5.17636139533199752805e+02, /* 0x40802D16, 0xD052D649 */ + 5.28715201363337541807e+02, /* 0x408085B8, 0xBB7E0CB7 */ +}; +#ifdef __STDC__ +static const double ps5[5] = { +#else +static double ps5[5] = { +#endif + 5.92805987221131331921e+01, /* 0x404DA3EA, 0xA8AF633D */ + 9.91401418733614377743e+02, /* 0x408EFB36, 0x1B066701 */ + 5.35326695291487976647e+03, /* 0x40B4E944, 0x5706B6FB */ + 7.84469031749551231769e+03, /* 0x40BEA4B0, 0xB8A5BB15 */ + 1.50404688810361062679e+03, /* 0x40978030, 0x036F5E51 */ +}; + +#ifdef __STDC__ +static const double pr3[6] = { +#else +static double pr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 3.02503916137373618024e-09, /* 0x3E29FC21, 0xA7AD9EDD */ + 1.17186865567253592491e-01, /* 0x3FBDFFF5, 0x5B21D17B */ + 3.93297750033315640650e+00, /* 0x400F76BC, 0xE85EAD8A */ + 3.51194035591636932736e+01, /* 0x40418F48, 0x9DA6D129 */ + 9.10550110750781271918e+01, /* 0x4056C385, 0x4D2C1837 */ + 4.85590685197364919645e+01, /* 0x4048478F, 0x8EA83EE5 */ +}; +#ifdef __STDC__ +static const double ps3[5] = { +#else +static double ps3[5] = { +#endif + 3.47913095001251519989e+01, /* 0x40416549, 0xA134069C */ + 3.36762458747825746741e+02, /* 0x40750C33, 0x07F1A75F */ + 1.04687139975775130551e+03, /* 0x40905B7C, 0x5037D523 */ + 8.90811346398256432622e+02, /* 0x408BD67D, 0xA32E31E9 */ + 1.03787932439639277504e+02, /* 0x4059F26D, 0x7C2EED53 */ +}; + +#ifdef __STDC__ +static const double pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.07710830106873743082e-07, /* 0x3E7CE9D4, 0xF65544F4 */ + 1.17176219462683348094e-01, /* 0x3FBDFF42, 0xBE760D83 */ + 2.36851496667608785174e+00, /* 0x4002F2B7, 0xF98FAEC0 */ + 1.22426109148261232917e+01, /* 0x40287C37, 0x7F71A964 */ + 1.76939711271687727390e+01, /* 0x4031B1A8, 0x177F8EE2 */ + 5.07352312588818499250e+00, /* 0x40144B49, 0xA574C1FE */ +}; +#ifdef __STDC__ +static const double ps2[5] = { +#else +static double ps2[5] = { +#endif + 2.14364859363821409488e+01, /* 0x40356FBD, 0x8AD5ECDC */ + 1.25290227168402751090e+02, /* 0x405F5293, 0x14F92CD5 */ + 2.32276469057162813669e+02, /* 0x406D08D8, 0xD5A2DBD9 */ + 1.17679373287147100768e+02, /* 0x405D6B7A, 0xDA1884A9 */ + 8.36463893371618283368e+00, /* 0x4020BAB1, 0xF44E5192 */ +}; + +#ifdef __STDC__ + static double pone(double x) +#else + static double pone(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double z,r,s; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = pr8; q= ps8;} + else if(ix>=0x40122E8B){p = pr5; q= ps5;} + else if(ix>=0x4006DB6D){p = pr3; q= ps3;} + else if(ix>=0x40000000){p = pr2; q= ps2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +#ifdef __STDC__ +static const double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */ + -1.02539062499992714161e-01, /* 0xBFBA3FFF, 0xFFFFFDF3 */ + -1.62717534544589987888e+01, /* 0xC0304591, 0xA26779F7 */ + -7.59601722513950107896e+02, /* 0xC087BCD0, 0x53E4B576 */ + -1.18498066702429587167e+04, /* 0xC0C724E7, 0x40F87415 */ + -4.84385124285750353010e+04, /* 0xC0E7A6D0, 0x65D09C6A */ +}; +#ifdef __STDC__ +static const double qs8[6] = { +#else +static double qs8[6] = { +#endif + 1.61395369700722909556e+02, /* 0x40642CA6, 0xDE5BCDE5 */ + 7.82538599923348465381e+03, /* 0x40BE9162, 0xD0D88419 */ + 1.33875336287249578163e+05, /* 0x4100579A, 0xB0B75E98 */ + 7.19657723683240939863e+05, /* 0x4125F653, 0x72869C19 */ + 6.66601232617776375264e+05, /* 0x412457D2, 0x7719AD5C */ + -2.94490264303834643215e+05, /* 0xC111F969, 0x0EA5AA18 */ +}; + +#ifdef __STDC__ +static const double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -2.08979931141764104297e-11, /* 0xBDB6FA43, 0x1AA1A098 */ + -1.02539050241375426231e-01, /* 0xBFBA3FFF, 0xCB597FEF */ + -8.05644828123936029840e+00, /* 0xC0201CE6, 0xCA03AD4B */ + -1.83669607474888380239e+02, /* 0xC066F56D, 0x6CA7B9B0 */ + -1.37319376065508163265e+03, /* 0xC09574C6, 0x6931734F */ + -2.61244440453215656817e+03, /* 0xC0A468E3, 0x88FDA79D */ +}; +#ifdef __STDC__ +static const double qs5[6] = { +#else +static double qs5[6] = { +#endif + 8.12765501384335777857e+01, /* 0x405451B2, 0xFF5A11B2 */ + 1.99179873460485964642e+03, /* 0x409F1F31, 0xE77BF839 */ + 1.74684851924908907677e+04, /* 0x40D10F1F, 0x0D64CE29 */ + 4.98514270910352279316e+04, /* 0x40E8576D, 0xAABAD197 */ + 2.79480751638918118260e+04, /* 0x40DB4B04, 0xCF7C364B */ + -4.71918354795128470869e+03, /* 0xC0B26F2E, 0xFCFFA004 */ +}; + +#ifdef __STDC__ +static const double qr3[6] = { +#else +static double qr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -5.07831226461766561369e-09, /* 0xBE35CFA9, 0xD38FC84F */ + -1.02537829820837089745e-01, /* 0xBFBA3FEB, 0x51AEED54 */ + -4.61011581139473403113e+00, /* 0xC01270C2, 0x3302D9FF */ + -5.78472216562783643212e+01, /* 0xC04CEC71, 0xC25D16DA */ + -2.28244540737631695038e+02, /* 0xC06C87D3, 0x4718D55F */ + -2.19210128478909325622e+02, /* 0xC06B66B9, 0x5F5C1BF6 */ +}; +#ifdef __STDC__ +static const double qs3[6] = { +#else +static double qs3[6] = { +#endif + 4.76651550323729509273e+01, /* 0x4047D523, 0xCCD367E4 */ + 6.73865112676699709482e+02, /* 0x40850EEB, 0xC031EE3E */ + 3.38015286679526343505e+03, /* 0x40AA684E, 0x448E7C9A */ + 5.54772909720722782367e+03, /* 0x40B5ABBA, 0xA61D54A6 */ + 1.90311919338810798763e+03, /* 0x409DBC7A, 0x0DD4DF4B */ + -1.35201191444307340817e+02, /* 0xC060E670, 0x290A311F */ +}; + +#ifdef __STDC__ +static const double qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static double qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -1.78381727510958865572e-07, /* 0xBE87F126, 0x44C626D2 */ + -1.02517042607985553460e-01, /* 0xBFBA3E8E, 0x9148B010 */ + -2.75220568278187460720e+00, /* 0xC0060484, 0x69BB4EDA */ + -1.96636162643703720221e+01, /* 0xC033A9E2, 0xC168907F */ + -4.23253133372830490089e+01, /* 0xC04529A3, 0xDE104AAA */ + -2.13719211703704061733e+01, /* 0xC0355F36, 0x39CF6E52 */ +}; +#ifdef __STDC__ +static const double qs2[6] = { +#else +static double qs2[6] = { +#endif + 2.95333629060523854548e+01, /* 0x403D888A, 0x78AE64FF */ + 2.52981549982190529136e+02, /* 0x406F9F68, 0xDB821CBA */ + 7.57502834868645436472e+02, /* 0x4087AC05, 0xCE49A0F7 */ + 7.39393205320467245656e+02, /* 0x40871B25, 0x48D4C029 */ + 1.55949003336666123687e+02, /* 0x40637E5E, 0x3C3ED8D4 */ + -4.95949898822628210127e+00, /* 0xC013D686, 0xE71BE86B */ +}; + +#ifdef __STDC__ + static double qone(double x) +#else + static double qone(x) + double x; +#endif +{ +#ifdef __STDC__ + const double *p,*q; +#else + double *p,*q; +#endif + double s,r,z; + __int32_t ix; + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qr8; q= qs8;} + else if(ix>=0x40122E8B){p = qr5; q= qs5;} + else if(ix>=0x4006DB6D){p = qr3; q= qs3;} + else if(ix>=0x40000000){p = qr2; q= qs2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (.375 + r/s)/x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_remainder.c b/newlib/libm/mathfp/e_remainder.c new file mode 100644 index 000000000..02a714d5b --- /dev/null +++ b/newlib/libm/mathfp/e_remainder.c @@ -0,0 +1,113 @@ + +/* @(#)e_remainder.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<remainder>>, <<remainderf>>---round and remainder +INDEX + remainder +INDEX + remainderf + +ANSI_SYNOPSIS + #include <math.h> + double remainder(double <[x]>, double <[y]>); + float remainderf(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double remainder(<[x]>,<[y]>) + double <[x]>, <[y]>; + float remainderf(<[x]>,<[y]>) + float <[x]>, <[y]>; + +DESCRIPTION +<<remainder>> and <<remainderf>> find the remainder of +<[x]>/<[y]>; this value is in the range -<[y]>/2 .. +<[y]>/2. + +RETURNS +<<remainder>> returns the integer result as a double. + +PORTABILITY +<<remainder>> is a System V release 4. +<<remainderf>> is an extension. + +*/ + +/* remainder(x,p) + * Return : + * returns x REM p = x - [x/p]*p as if in infinite + * precise arithmetic, where [x/p] is the (infinite bit) + * integer nearest x/p (in half way case choose the even one). + * Method : + * Based on fmod() return x-[x/p]chopped*p exactlp. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double zero = 0.0; +#else +static double zero = 0.0; +#endif + + +#ifdef __STDC__ + double remainder(double x, double p) +#else + double remainder(x,p) + double x,p; +#endif +{ + __int32_t hx,hp; + __uint32_t sx,lx,lp; + double p_half; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hp,lp,p); + sx = hx&0x80000000; + hp &= 0x7fffffff; + hx &= 0x7fffffff; + + /* purge off exception values */ + if((hp|lp)==0) return (x*p)/(x*p); /* p = 0 */ + if((hx>=0x7ff00000)|| /* x not finite */ + ((hp>=0x7ff00000)&& /* p is NaN */ + (((hp-0x7ff00000)|lp)!=0))) + return (x*p)/(x*p); + + + if (hp<=0x7fdfffff) x = fmod(x,p+p); /* now x < 2p */ + if (((hx-hp)|(lx-lp))==0) return zero*x; + x = fabs(x); + p = fabs(p); + if (hp<0x00200000) { + if(x+x>p) { + x-=p; + if(x+x>=p) x -= p; + } + } else { + p_half = 0.5*p; + if(x>p_half) { + x-=p; + if(x>=p_half) x -= p; + } + } + GET_HIGH_WORD(hx,x); + SET_HIGH_WORD(x,hx^sx); + return x; +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/e_scalb.c b/newlib/libm/mathfp/e_scalb.c new file mode 100644 index 000000000..c4056e03b --- /dev/null +++ b/newlib/libm/mathfp/e_scalb.c @@ -0,0 +1,55 @@ + +/* @(#)e_scalb.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * __ieee754_scalb(x, fn) is provide for + * passing various standard test suite. One + * should use scalbn() instead. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef _SCALB_INT +#ifdef __STDC__ + double scalb(double x, int fn) +#else + double scalb(x,fn) + double x; int fn; +#endif +#else +#ifdef __STDC__ + double scalb(double x, double fn) +#else + double scalb(x,fn) + double x, fn; +#endif +#endif +{ +#ifdef _SCALB_INT + return scalbn(x,fn); +#else + if (isnan(x)||isnan(fn)) return x*fn; + if (!finite(fn)) { + if(fn>0.0) return x*fn; + else return x/(-fn); + } + if (rint(fn)!=fn) return (fn-fn)/(fn-fn); + if ( fn > 65000.0) return scalbn(x, 65000); + if (-fn > 65000.0) return scalbn(x,-65000); + return scalbn(x,(int)fn); +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/ef_acosh.c b/newlib/libm/mathfp/ef_acosh.c new file mode 100644 index 000000000..705be4986 --- /dev/null +++ b/newlib/libm/mathfp/ef_acosh.c @@ -0,0 +1,53 @@ +/* ef_acosh.c -- float version of e_acosh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0, +ln2 = 6.9314718246e-01; /* 0x3f317218 */ + +#ifdef __STDC__ + float acoshf(float x) +#else + float acoshf(x) + float x; +#endif +{ + float t; + __int32_t hx; + GET_FLOAT_WORD(hx,x); + if(hx<0x3f800000) { /* x < 1 */ + return (x-x)/(x-x); + } else if(hx >=0x4d800000) { /* x > 2**28 */ + if(hx >=0x7f800000) { /* x is inf of NaN */ + return x+x; + } else + return logf(x)+ln2; /* acosh(huge)=log(2x) */ + } else if (hx==0x3f800000) { + return 0.0; /* acosh(1) = 0 */ + } else if (hx > 0x40000000) { /* 2**28 > x > 2 */ + t=x*x; + return logf((float)2.0*x-one/(x+sqrtf(t-one))); + } else { /* 1<x<2 */ + t = x-one; + return log1pf(t+sqrtf((float)2.0*t+t*t)); + } +} diff --git a/newlib/libm/mathfp/ef_atanh.c b/newlib/libm/mathfp/ef_atanh.c new file mode 100644 index 000000000..bfc40dec1 --- /dev/null +++ b/newlib/libm/mathfp/ef_atanh.c @@ -0,0 +1,54 @@ +/* ef_atanh.c -- float version of e_atanh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float one = 1.0, huge = 1e30; +#else +static float one = 1.0, huge = 1e30; +#endif + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float atanhf(float x) +#else + float atanhf(x) + float x; +#endif +{ + float t; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if (ix>0x3f800000) /* |x|>1 */ + return (x-x)/(x-x); + if(ix==0x3f800000) + return x/zero; + if(ix<0x31800000&&(huge+x)>zero) return x; /* x<2**-28 */ + SET_FLOAT_WORD(x,ix); + if(ix<0x3f000000) { /* x < 0.5 */ + t = x+x; + t = (float)0.5*log1pf(t+t*x/(one-x)); + } else + t = (float)0.5*log1pf((x+x)/(one-x)); + if(hx>=0) return t; else return -t; +} diff --git a/newlib/libm/mathfp/ef_hypot.c b/newlib/libm/mathfp/ef_hypot.c new file mode 100644 index 000000000..8e5f4ccef --- /dev/null +++ b/newlib/libm/mathfp/ef_hypot.c @@ -0,0 +1,82 @@ +/* ef_hypot.c -- float version of e_hypot.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float hypotf(float x, float y) +#else + float hypotf(x,y) + float x, y; +#endif +{ + float a=x,b=y,t1,t2,y1,y2,w; + __int32_t j,k,ha,hb; + + GET_FLOAT_WORD(ha,x); + ha &= 0x7fffffffL; + GET_FLOAT_WORD(hb,y); + hb &= 0x7fffffffL; + if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;} + SET_FLOAT_WORD(a,ha); /* a <- |a| */ + SET_FLOAT_WORD(b,hb); /* b <- |b| */ + if((ha-hb)>0xf000000L) {return a+b;} /* x/y > 2**30 */ + k=0; + if(ha > 0x58800000L) { /* a>2**50 */ + if(ha >= 0x7f800000L) { /* Inf or NaN */ + w = a+b; /* for sNaN */ + if(ha == 0x7f800000L) w = a; + if(hb == 0x7f800000L) w = b; + return w; + } + /* scale a and b by 2**-60 */ + ha -= 0x5d800000L; hb -= 0x5d800000L; k += 60; + SET_FLOAT_WORD(a,ha); + SET_FLOAT_WORD(b,hb); + } + if(hb < 0x26800000L) { /* b < 2**-50 */ + if(hb <= 0x007fffffL) { /* subnormal b or 0 */ + if(hb==0) return a; + SET_FLOAT_WORD(t1,0x3f000000L); /* t1=2^126 */ + b *= t1; + a *= t1; + k -= 126; + } else { /* scale a and b by 2^60 */ + ha += 0x5d800000; /* a *= 2^60 */ + hb += 0x5d800000; /* b *= 2^60 */ + k -= 60; + SET_FLOAT_WORD(a,ha); + SET_FLOAT_WORD(b,hb); + } + } + /* medium size a and b */ + w = a-b; + if (w>b) { + SET_FLOAT_WORD(t1,ha&0xfffff000L); + t2 = a-t1; + w = sqrtf(t1*t1-(b*(-b)-t2*(a+t1))); + } else { + a = a+a; + SET_FLOAT_WORD(y1,hb&0xfffff000L); + y2 = b - y1; + SET_FLOAT_WORD(t1,ha+0x00800000L); + t2 = a - t1; + w = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b))); + } + if(k!=0) { + SET_FLOAT_WORD(t1,0x3f800000L+(k<<23)); + return t1*w; + } else return w; +} diff --git a/newlib/libm/mathfp/ef_j0.c b/newlib/libm/mathfp/ef_j0.c new file mode 100644 index 000000000..65975f4a5 --- /dev/null +++ b/newlib/libm/mathfp/ef_j0.c @@ -0,0 +1,439 @@ +/* ef_j0.c -- float version of e_j0.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static float pzerof(float), qzerof(float); +#else +static float pzerof(), qzerof(); +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +huge = 1e30, +one = 1.0, +invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ +tpi = 6.3661974669e-01, /* 0x3f22f983 */ + /* R0/S0 on [0, 2.00] */ +R02 = 1.5625000000e-02, /* 0x3c800000 */ +R03 = -1.8997929874e-04, /* 0xb947352e */ +R04 = 1.8295404516e-06, /* 0x35f58e88 */ +R05 = -4.6183270541e-09, /* 0xb19eaf3c */ +S01 = 1.5619102865e-02, /* 0x3c7fe744 */ +S02 = 1.1692678527e-04, /* 0x38f53697 */ +S03 = 5.1354652442e-07, /* 0x3509daa6 */ +S04 = 1.1661400734e-09; /* 0x30a045e8 */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float j0f(float x) +#else + float j0f(x) + float x; +#endif +{ + float z, s,c,ss,cc,r,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return one/(x*x); + x = fabsf(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(x); + c = cosf(x); + ss = s-c; + cc = s+c; + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = -cosf(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix>0x80000000) z = (invsqrtpi*cc)/sqrtf(x); + else { + u = pzerof(x); v = qzerof(x); + z = invsqrtpi*(u*cc-v*ss)/sqrtf(x); + } + return z; + } + if(ix<0x39000000) { /* |x| < 2**-13 */ + if(huge+x>one) { /* raise inexact if x != 0 */ + if(ix<0x32000000) return one; /* |x|<2**-27 */ + else return one - (float)0.25*x*x; + } + } + z = x*x; + r = z*(R02+z*(R03+z*(R04+z*R05))); + s = one+z*(S01+z*(S02+z*(S03+z*S04))); + if(ix < 0x3F800000) { /* |x| < 1.00 */ + return one + z*((float)-0.25+(r/s)); + } else { + u = (float)0.5*x; + return((one+u)*(one-u)+z*(r/s)); + } +} + +#ifdef __STDC__ +static const float +#else +static float +#endif +u00 = -7.3804296553e-02, /* 0xbd9726b5 */ +u01 = 1.7666645348e-01, /* 0x3e34e80d */ +u02 = -1.3818567619e-02, /* 0xbc626746 */ +u03 = 3.4745343146e-04, /* 0x39b62a69 */ +u04 = -3.8140706238e-06, /* 0xb67ff53c */ +u05 = 1.9559013964e-08, /* 0x32a802ba */ +u06 = -3.9820518410e-11, /* 0xae2f21eb */ +v01 = 1.2730483897e-02, /* 0x3c509385 */ +v02 = 7.6006865129e-05, /* 0x389f65e0 */ +v03 = 2.5915085189e-07, /* 0x348b216c */ +v04 = 4.4111031494e-10; /* 0x2ff280c2 */ + +#ifdef __STDC__ + float y0f(float x) +#else + float y0f(x) + float x; +#endif +{ + float z, s,c,ss,cc,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ + if(ix>=0x7f800000) return one/(x+x*x); + if(ix==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0)) + * where x0 = x-pi/4 + * Better formula: + * cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4) + * = 1/sqrt(2) * (sin(x) + cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + s = sinf(x); + c = cosf(x); + ss = s-c; + cc = s+c; + /* + * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x) + * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x) + */ + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = -cosf(x+x); + if ((s*c)<zero) cc = z/ss; + else ss = z/cc; + } + if(ix>0x80000000) z = (invsqrtpi*ss)/sqrtf(x); + else { + u = pzerof(x); v = qzerof(x); + z = invsqrtpi*(u*ss+v*cc)/sqrtf(x); + } + return z; + } + if(ix<=0x32000000) { /* x < 2**-27 */ + return(u00 + tpi*logf(x)); + } + z = x*x; + u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06))))); + v = one+z*(v01+z*(v02+z*(v03+z*v04))); + return(u/v + tpi*(j0f(x)*logf(x))); +} + +/* The asymptotic expansions of pzero is + * 1 - 9/128 s^2 + 11025/98304 s^4 - ..., where s = 1/x. + * For x >= 2, We approximate pzero by + * pzero(x) = 1 + (R/S) + * where R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10 + * S = 1 + pS0*s^2 + ... + pS4*s^10 + * and + * | pzero(x)-1-R/S | <= 2 ** ( -60.26) + */ +#ifdef __STDC__ +static const float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + -7.0312500000e-02, /* 0xbd900000 */ + -8.0816707611e+00, /* 0xc1014e86 */ + -2.5706311035e+02, /* 0xc3808814 */ + -2.4852163086e+03, /* 0xc51b5376 */ + -5.2530439453e+03, /* 0xc5a4285a */ +}; +#ifdef __STDC__ +static const float pS8[5] = { +#else +static float pS8[5] = { +#endif + 1.1653436279e+02, /* 0x42e91198 */ + 3.8337448730e+03, /* 0x456f9beb */ + 4.0597855469e+04, /* 0x471e95db */ + 1.1675296875e+05, /* 0x47e4087c */ + 4.7627726562e+04, /* 0x473a0bba */ +}; +#ifdef __STDC__ +static const float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -1.1412546255e-11, /* 0xad48c58a */ + -7.0312492549e-02, /* 0xbd8fffff */ + -4.1596107483e+00, /* 0xc0851b88 */ + -6.7674766541e+01, /* 0xc287597b */ + -3.3123129272e+02, /* 0xc3a59d9b */ + -3.4643338013e+02, /* 0xc3ad3779 */ +}; +#ifdef __STDC__ +static const float pS5[5] = { +#else +static float pS5[5] = { +#endif + 6.0753936768e+01, /* 0x42730408 */ + 1.0512523193e+03, /* 0x44836813 */ + 5.9789707031e+03, /* 0x45bad7c4 */ + 9.6254453125e+03, /* 0x461665c8 */ + 2.4060581055e+03, /* 0x451660ee */ +}; + +#ifdef __STDC__ +static const float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -2.5470459075e-09, /* 0xb12f081b */ + -7.0311963558e-02, /* 0xbd8fffb8 */ + -2.4090321064e+00, /* 0xc01a2d95 */ + -2.1965976715e+01, /* 0xc1afba52 */ + -5.8079170227e+01, /* 0xc2685112 */ + -3.1447946548e+01, /* 0xc1fb9565 */ +}; +#ifdef __STDC__ +static const float pS3[5] = { +#else +static float pS3[5] = { +#endif + 3.5856033325e+01, /* 0x420f6c94 */ + 3.6151397705e+02, /* 0x43b4c1ca */ + 1.1936077881e+03, /* 0x44953373 */ + 1.1279968262e+03, /* 0x448cffe6 */ + 1.7358093262e+02, /* 0x432d94b8 */ +}; + +#ifdef __STDC__ +static const float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -8.8753431271e-08, /* 0xb3be98b7 */ + -7.0303097367e-02, /* 0xbd8ffb12 */ + -1.4507384300e+00, /* 0xbfb9b1cc */ + -7.6356959343e+00, /* 0xc0f4579f */ + -1.1193166733e+01, /* 0xc1331736 */ + -3.2336456776e+00, /* 0xc04ef40d */ +}; +#ifdef __STDC__ +static const float pS2[5] = { +#else +static float pS2[5] = { +#endif + 2.2220300674e+01, /* 0x41b1c32d */ + 1.3620678711e+02, /* 0x430834f0 */ + 2.7047027588e+02, /* 0x43873c32 */ + 1.5387539673e+02, /* 0x4319e01a */ + 1.4657617569e+01, /* 0x416a859a */ +}; + +#ifdef __STDC__ + static float pzerof(float x) +#else + static float pzerof(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float z,r,s; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = pR8; q= pS8;} + else if(ix>=0x40f71c58){p = pR5; q= pS5;} + else if(ix>=0x4036db68){p = pR3; q= pS3;} + else if(ix>=0x40000000){p = pR2; q= pS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qzero is + * -1/8 s + 75/1024 s^3 - ..., where s = 1/x. + * We approximate pzero by + * qzero(x) = s*(-1.25 + (R/S)) + * where R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10 + * S = 1 + qS0*s^2 + ... + qS5*s^12 + * and + * | qzero(x)/s +1.25-R/S | <= 2 ** ( -61.22) + */ +#ifdef __STDC__ +static const float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + 7.3242187500e-02, /* 0x3d960000 */ + 1.1768206596e+01, /* 0x413c4a93 */ + 5.5767340088e+02, /* 0x440b6b19 */ + 8.8591972656e+03, /* 0x460a6cca */ + 3.7014625000e+04, /* 0x471096a0 */ +}; +#ifdef __STDC__ +static const float qS8[6] = { +#else +static float qS8[6] = { +#endif + 1.6377603149e+02, /* 0x4323c6aa */ + 8.0983447266e+03, /* 0x45fd12c2 */ + 1.4253829688e+05, /* 0x480b3293 */ + 8.0330925000e+05, /* 0x49441ed4 */ + 8.4050156250e+05, /* 0x494d3359 */ + -3.4389928125e+05, /* 0xc8a7eb69 */ +}; + +#ifdef __STDC__ +static const float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.8408595828e-11, /* 0x2da1ec79 */ + 7.3242180049e-02, /* 0x3d95ffff */ + 5.8356351852e+00, /* 0x40babd86 */ + 1.3511157227e+02, /* 0x43071c90 */ + 1.0272437744e+03, /* 0x448067cd */ + 1.9899779053e+03, /* 0x44f8bf4b */ +}; +#ifdef __STDC__ +static const float qS5[6] = { +#else +static float qS5[6] = { +#endif + 8.2776611328e+01, /* 0x42a58da0 */ + 2.0778142090e+03, /* 0x4501dd07 */ + 1.8847289062e+04, /* 0x46933e94 */ + 5.6751113281e+04, /* 0x475daf1d */ + 3.5976753906e+04, /* 0x470c88c1 */ + -5.3543427734e+03, /* 0xc5a752be */ +}; + +#ifdef __STDC__ +static const float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#else +static float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 4.3774099900e-09, /* 0x3196681b */ + 7.3241114616e-02, /* 0x3d95ff70 */ + 3.3442313671e+00, /* 0x405607e3 */ + 4.2621845245e+01, /* 0x422a7cc5 */ + 1.7080809021e+02, /* 0x432acedf */ + 1.6673394775e+02, /* 0x4326bbe4 */ +}; +#ifdef __STDC__ +static const float qS3[6] = { +#else +static float qS3[6] = { +#endif + 4.8758872986e+01, /* 0x42430916 */ + 7.0968920898e+02, /* 0x44316c1c */ + 3.7041481934e+03, /* 0x4567825f */ + 6.4604252930e+03, /* 0x45c9e367 */ + 2.5163337402e+03, /* 0x451d4557 */ + -1.4924745178e+02, /* 0xc3153f59 */ +}; + +#ifdef __STDC__ +static const float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.5044444979e-07, /* 0x342189db */ + 7.3223426938e-02, /* 0x3d95f62a */ + 1.9981917143e+00, /* 0x3fffc4bf */ + 1.4495602608e+01, /* 0x4167edfd */ + 3.1666231155e+01, /* 0x41fd5471 */ + 1.6252708435e+01, /* 0x4182058c */ +}; +#ifdef __STDC__ +static const float qS2[6] = { +#else +static float qS2[6] = { +#endif + 3.0365585327e+01, /* 0x41f2ecb8 */ + 2.6934811401e+02, /* 0x4386ac8f */ + 8.4478375244e+02, /* 0x44533229 */ + 8.8293585205e+02, /* 0x445cbbe5 */ + 2.1266638184e+02, /* 0x4354aa98 */ + -5.3109550476e+00, /* 0xc0a9f358 */ +}; + +#ifdef __STDC__ + static float qzerof(float x) +#else + static float qzerof(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float s,r,z; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = qR8; q= qS8;} + else if(ix>=0x40f71c58){p = qR5; q= qS5;} + else if(ix>=0x4036db68){p = qR3; q= qS3;} + else if(ix>=0x40000000){p = qR2; q= qS2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return (-(float).125 + r/s)/x; +} diff --git a/newlib/libm/mathfp/ef_j1.c b/newlib/libm/mathfp/ef_j1.c new file mode 100644 index 000000000..04c12cff2 --- /dev/null +++ b/newlib/libm/mathfp/ef_j1.c @@ -0,0 +1,439 @@ +/* ef_j1.c -- float version of e_j1.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static float ponef(float), qonef(float); +#else +static float ponef(), qonef(); +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +huge = 1e30, +one = 1.0, +invsqrtpi= 5.6418961287e-01, /* 0x3f106ebb */ +tpi = 6.3661974669e-01, /* 0x3f22f983 */ + /* R0/S0 on [0,2] */ +r00 = -6.2500000000e-02, /* 0xbd800000 */ +r01 = 1.4070566976e-03, /* 0x3ab86cfd */ +r02 = -1.5995563444e-05, /* 0xb7862e36 */ +r03 = 4.9672799207e-08, /* 0x335557d2 */ +s01 = 1.9153760746e-02, /* 0x3c9ce859 */ +s02 = 1.8594678841e-04, /* 0x3942fab6 */ +s03 = 1.1771846857e-06, /* 0x359dffc2 */ +s04 = 5.0463624390e-09, /* 0x31ad6446 */ +s05 = 1.2354227016e-11; /* 0x2d59567e */ + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + +#ifdef __STDC__ + float j1f(float x) +#else + float j1f(x) + float x; +#endif +{ + float z, s,c,ss,cc,r,u,v,y; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return one/x; + y = fabsf(x); + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(y); + c = cosf(y); + ss = -s-c; + cc = s-c; + if(ix<0x7f000000) { /* make sure y+y not overflow */ + z = cosf(y+y); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* + * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x) + * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x) + */ + if(ix>0x80000000) z = (invsqrtpi*cc)/sqrtf(y); + else { + u = ponef(y); v = qonef(y); + z = invsqrtpi*(u*cc-v*ss)/sqrtf(y); + } + if(hx<0) return -z; + else return z; + } + if(ix<0x32000000) { /* |x|<2**-27 */ + if(huge+x>one) return (float)0.5*x;/* inexact if x!=0 necessary */ + } + z = x*x; + r = z*(r00+z*(r01+z*(r02+z*r03))); + s = one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05)))); + r *= x; + return(x*(float)0.5+r/s); +} + +#ifdef __STDC__ +static const float U0[5] = { +#else +static float U0[5] = { +#endif + -1.9605709612e-01, /* 0xbe48c331 */ + 5.0443872809e-02, /* 0x3d4e9e3c */ + -1.9125689287e-03, /* 0xbafaaf2a */ + 2.3525259166e-05, /* 0x37c5581c */ + -9.1909917899e-08, /* 0xb3c56003 */ +}; +#ifdef __STDC__ +static const float V0[5] = { +#else +static float V0[5] = { +#endif + 1.9916731864e-02, /* 0x3ca3286a */ + 2.0255257550e-04, /* 0x3954644b */ + 1.3560879779e-06, /* 0x35b602d4 */ + 6.2274145840e-09, /* 0x31d5f8eb */ + 1.6655924903e-11, /* 0x2d9281cf */ +}; + +#ifdef __STDC__ + float y1f(float x) +#else + float y1f(x) + float x; +#endif +{ + float z, s,c,ss,cc,u,v; + __int32_t hx,ix; + + GET_FLOAT_WORD(hx,x); + ix = 0x7fffffff&hx; + /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ + if(ix>=0x7f800000) return one/(x+x*x); + if(ix==0) return -one/zero; + if(hx<0) return zero/zero; + if(ix >= 0x40000000) { /* |x| >= 2.0 */ + s = sinf(x); + c = cosf(x); + ss = -s-c; + cc = s-c; + if(ix<0x7f000000) { /* make sure x+x not overflow */ + z = cosf(x+x); + if ((s*c)>zero) cc = z/ss; + else ss = z/cc; + } + /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0)) + * where x0 = x-3pi/4 + * Better formula: + * cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4) + * = 1/sqrt(2) * (sin(x) - cos(x)) + * sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4) + * = -1/sqrt(2) * (cos(x) + sin(x)) + * To avoid cancellation, use + * sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x)) + * to compute the worse one. + */ + if(ix>0x48000000) z = (invsqrtpi*ss)/sqrtf(x); + else { + u = ponef(x); v = qonef(x); + z = invsqrtpi*(u*ss+v*cc)/sqrtf(x); + } + return z; + } + if(ix<=0x24800000) { /* x < 2**-54 */ + return(-tpi/x); + } + z = x*x; + u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4]))); + v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4])))); + return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x)); +} + +/* For x >= 8, the asymptotic expansions of pone is + * 1 + 15/128 s^2 - 4725/2^15 s^4 - ..., where s = 1/x. + * We approximate pone by + * pone(x) = 1 + (R/S) + * where R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10 + * S = 1 + ps0*s^2 + ... + ps4*s^10 + * and + * | pone(x)-1-R/S | <= 2 ** ( -60.06) + */ + +#ifdef __STDC__ +static const float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + 1.1718750000e-01, /* 0x3df00000 */ + 1.3239480972e+01, /* 0x4153d4ea */ + 4.1205184937e+02, /* 0x43ce06a3 */ + 3.8747453613e+03, /* 0x45722bed */ + 7.9144794922e+03, /* 0x45f753d6 */ +}; +#ifdef __STDC__ +static const float ps8[5] = { +#else +static float ps8[5] = { +#endif + 1.1420736694e+02, /* 0x42e46a2c */ + 3.6509309082e+03, /* 0x45642ee5 */ + 3.6956207031e+04, /* 0x47105c35 */ + 9.7602796875e+04, /* 0x47bea166 */ + 3.0804271484e+04, /* 0x46f0a88b */ +}; + +#ifdef __STDC__ +static const float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + 1.3199052094e-11, /* 0x2d68333f */ + 1.1718749255e-01, /* 0x3defffff */ + 6.8027510643e+00, /* 0x40d9b023 */ + 1.0830818176e+02, /* 0x42d89dca */ + 5.1763616943e+02, /* 0x440168b7 */ + 5.2871520996e+02, /* 0x44042dc6 */ +}; +#ifdef __STDC__ +static const float ps5[5] = { +#else +static float ps5[5] = { +#endif + 5.9280597687e+01, /* 0x426d1f55 */ + 9.9140142822e+02, /* 0x4477d9b1 */ + 5.3532670898e+03, /* 0x45a74a23 */ + 7.8446904297e+03, /* 0x45f52586 */ + 1.5040468750e+03, /* 0x44bc0180 */ +}; + +#ifdef __STDC__ +static const float pr3[6] = { +#else +static float pr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + 3.0250391081e-09, /* 0x314fe10d */ + 1.1718686670e-01, /* 0x3defffab */ + 3.9329774380e+00, /* 0x407bb5e7 */ + 3.5119403839e+01, /* 0x420c7a45 */ + 9.1055007935e+01, /* 0x42b61c2a */ + 4.8559066772e+01, /* 0x42423c7c */ +}; +#ifdef __STDC__ +static const float ps3[5] = { +#else +static float ps3[5] = { +#endif + 3.4791309357e+01, /* 0x420b2a4d */ + 3.3676245117e+02, /* 0x43a86198 */ + 1.0468714600e+03, /* 0x4482dbe3 */ + 8.9081134033e+02, /* 0x445eb3ed */ + 1.0378793335e+02, /* 0x42cf936c */ +}; + +#ifdef __STDC__ +static const float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + 1.0771083225e-07, /* 0x33e74ea8 */ + 1.1717621982e-01, /* 0x3deffa16 */ + 2.3685150146e+00, /* 0x401795c0 */ + 1.2242610931e+01, /* 0x4143e1bc */ + 1.7693971634e+01, /* 0x418d8d41 */ + 5.0735230446e+00, /* 0x40a25a4d */ +}; +#ifdef __STDC__ +static const float ps2[5] = { +#else +static float ps2[5] = { +#endif + 2.1436485291e+01, /* 0x41ab7dec */ + 1.2529022980e+02, /* 0x42fa9499 */ + 2.3227647400e+02, /* 0x436846c7 */ + 1.1767937469e+02, /* 0x42eb5bd7 */ + 8.3646392822e+00, /* 0x4105d590 */ +}; + +#ifdef __STDC__ + static float ponef(float x) +#else + static float ponef(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float z,r,s; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x41000000) {p = pr8; q= ps8;} + else if(ix>=0x40f71c58){p = pr5; q= ps5;} + else if(ix>=0x4036db68){p = pr3; q= ps3;} + else if(ix>=0x40000000){p = pr2; q= ps2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4])))); + return one+ r/s; +} + + +/* For x >= 8, the asymptotic expansions of qone is + * 3/8 s - 105/1024 s^3 - ..., where s = 1/x. + * We approximate pone by + * qone(x) = s*(0.375 + (R/S)) + * where R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10 + * S = 1 + qs1*s^2 + ... + qs6*s^12 + * and + * | qone(x)/s -0.375-R/S | <= 2 ** ( -61.13) + */ + +#ifdef __STDC__ +static const float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#else +static float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */ +#endif + 0.0000000000e+00, /* 0x00000000 */ + -1.0253906250e-01, /* 0xbdd20000 */ + -1.6271753311e+01, /* 0xc1822c8d */ + -7.5960174561e+02, /* 0xc43de683 */ + -1.1849806641e+04, /* 0xc639273a */ + -4.8438511719e+04, /* 0xc73d3683 */ +}; +#ifdef __STDC__ +static const float qs8[6] = { +#else +static float qs8[6] = { +#endif + 1.6139537048e+02, /* 0x43216537 */ + 7.8253862305e+03, /* 0x45f48b17 */ + 1.3387534375e+05, /* 0x4802bcd6 */ + 7.1965775000e+05, /* 0x492fb29c */ + 6.6660125000e+05, /* 0x4922be94 */ + -2.9449025000e+05, /* 0xc88fcb48 */ +}; + +#ifdef __STDC__ +static const float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#else +static float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */ +#endif + -2.0897993405e-11, /* 0xadb7d219 */ + -1.0253904760e-01, /* 0xbdd1fffe */ + -8.0564479828e+00, /* 0xc100e736 */ + -1.8366960144e+02, /* 0xc337ab6b */ + -1.3731937256e+03, /* 0xc4aba633 */ + -2.6124443359e+03, /* 0xc523471c */ +}; +#ifdef __STDC__ +static const float qs5[6] = { +#else +static float qs5[6] = { +#endif + 8.1276550293e+01, /* 0x42a28d98 */ + 1.9917987061e+03, /* 0x44f8f98f */ + 1.7468484375e+04, /* 0x468878f8 */ + 4.9851425781e+04, /* 0x4742bb6d */ + 2.7948074219e+04, /* 0x46da5826 */ + -4.7191835938e+03, /* 0xc5937978 */ +}; + +#ifdef __STDC__ +static const float qr3[6] = { +#else +static float qr3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */ +#endif + -5.0783124372e-09, /* 0xb1ae7d4f */ + -1.0253783315e-01, /* 0xbdd1ff5b */ + -4.6101160049e+00, /* 0xc0938612 */ + -5.7847221375e+01, /* 0xc267638e */ + -2.2824453735e+02, /* 0xc3643e9a */ + -2.1921012878e+02, /* 0xc35b35cb */ +}; +#ifdef __STDC__ +static const float qs3[6] = { +#else +static float qs3[6] = { +#endif + 4.7665153503e+01, /* 0x423ea91e */ + 6.7386511230e+02, /* 0x4428775e */ + 3.3801528320e+03, /* 0x45534272 */ + 5.5477290039e+03, /* 0x45ad5dd5 */ + 1.9031191406e+03, /* 0x44ede3d0 */ + -1.3520118713e+02, /* 0xc3073381 */ +}; + +#ifdef __STDC__ +static const float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#else +static float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */ +#endif + -1.7838172539e-07, /* 0xb43f8932 */ + -1.0251704603e-01, /* 0xbdd1f475 */ + -2.7522056103e+00, /* 0xc0302423 */ + -1.9663616180e+01, /* 0xc19d4f16 */ + -4.2325313568e+01, /* 0xc2294d1f */ + -2.1371921539e+01, /* 0xc1aaf9b2 */ +}; +#ifdef __STDC__ +static const float qs2[6] = { +#else +static float qs2[6] = { +#endif + 2.9533363342e+01, /* 0x41ec4454 */ + 2.5298155212e+02, /* 0x437cfb47 */ + 7.5750280762e+02, /* 0x443d602e */ + 7.3939318848e+02, /* 0x4438d92a */ + 1.5594900513e+02, /* 0x431bf2f2 */ + -4.9594988823e+00, /* 0xc09eb437 */ +}; + +#ifdef __STDC__ + static float qonef(float x) +#else + static float qonef(x) + float x; +#endif +{ +#ifdef __STDC__ + const float *p,*q; +#else + float *p,*q; +#endif + float s,r,z; + __int32_t ix; + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + if(ix>=0x40200000) {p = qr8; q= qs8;} + else if(ix>=0x40f71c58){p = qr5; q= qs5;} + else if(ix>=0x4036db68){p = qr3; q= qs3;} + else if(ix>=0x40000000){p = qr2; q= qs2;} + z = one/(x*x); + r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5])))); + s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5]))))); + return ((float).375 + r/s)/x; +} diff --git a/newlib/libm/mathfp/ef_remainder.c b/newlib/libm/mathfp/ef_remainder.c new file mode 100644 index 000000000..92958efc4 --- /dev/null +++ b/newlib/libm/mathfp/ef_remainder.c @@ -0,0 +1,68 @@ +/* ef_remainder.c -- float version of e_remainder.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float zero = 0.0; +#else +static float zero = 0.0; +#endif + + +#ifdef __STDC__ + float remainderf(float x, float p) +#else + float remainderf(x,p) + float x,p; +#endif +{ + __int32_t hx,hp; + __uint32_t sx; + float p_half; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hp,p); + sx = hx&0x80000000; + hp &= 0x7fffffff; + hx &= 0x7fffffff; + + /* purge off exception values */ + if(hp==0) return (x*p)/(x*p); /* p = 0 */ + if((hx>=0x7f800000)|| /* x not finite */ + ((hp>0x7f800000))) /* p is NaN */ + return (x*p)/(x*p); + + + if (hp<=0x7effffff) x = fmodf(x,p+p); /* now x < 2p */ + if ((hx-hp)==0) return zero*x; + x = fabsf(x); + p = fabsf(p); + if (hp<0x01000000) { + if(x+x>p) { + x-=p; + if(x+x>=p) x -= p; + } + } else { + p_half = (float)0.5*p; + if(x>p_half) { + x-=p; + if(x>=p_half) x -= p; + } + } + GET_FLOAT_WORD(hx,x); + SET_FLOAT_WORD(x,hx^sx); + return x; +} diff --git a/newlib/libm/mathfp/ef_scalb.c b/newlib/libm/mathfp/ef_scalb.c new file mode 100644 index 000000000..901f17707 --- /dev/null +++ b/newlib/libm/mathfp/ef_scalb.c @@ -0,0 +1,53 @@ +/* ef_scalb.c -- float version of e_scalb.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <limits.h> + +#ifdef _SCALB_INT +#ifdef __STDC__ + float scalbf(float x, int fn) +#else + float scalbf(x,fn) + float x; int fn; +#endif +#else +#ifdef __STDC__ + float scalbf(float x, float fn) +#else + float scalbf(x,fn) + float x, fn; +#endif +#endif +{ +#ifdef _SCALB_INT + return scalbnf(x,fn); +#else + if (isnanf(x)||isnanf(fn)) return x*fn; + if (!finitef(fn)) { + if(fn>(float)0.0) return x*fn; + else return x/(-fn); + } + if (rintf(fn)!=fn) return (fn-fn)/(fn-fn); +#if INT_MAX > 65000 + if ( fn > (float)65000.0) return scalbnf(x, 65000); + if (-fn > (float)65000.0) return scalbnf(x,-65000); +#else + if ( fn > (float)32000.0) return scalbnf(x, 32000); + if (-fn > (float)32000.0) return scalbnf(x,-32000); +#endif + return scalbnf(x,(int)fn); +#endif +} diff --git a/newlib/libm/mathfp/er_gamma.c b/newlib/libm/mathfp/er_gamma.c new file mode 100644 index 000000000..6246c880b --- /dev/null +++ b/newlib/libm/mathfp/er_gamma.c @@ -0,0 +1,32 @@ + +/* @(#)er_gamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* gamma_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: See lgamma_r + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + double gamma_r(double x, int *signgamp) +#else + double gamma_r(x,signgamp) + double x; int *signgamp; +#endif +{ + return lgamma_r(x,signgamp); +} diff --git a/newlib/libm/mathfp/er_lgamma.c b/newlib/libm/mathfp/er_lgamma.c new file mode 100644 index 000000000..9d8e370fa --- /dev/null +++ b/newlib/libm/mathfp/er_lgamma.c @@ -0,0 +1,422 @@ + +/* @(#)er_lgamma.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* +FUNCTION + <<gamma>>, <<gammaf>>, <<lgamma>>, <<lgammaf>>, <<gamma_r>>, + <<gammaf_r>>, <<lgamma_r>>, <<lgammaf_r>>---logarithmic gamma + function +INDEX +gamma +INDEX +gammaf +INDEX +lgamma +INDEX +lgammaf +INDEX +gamma_r +INDEX +gammaf_r +INDEX +lgamma_r +INDEX +lgammaf_r + +ANSI_SYNOPSIS +#include <math.h> +double gamma(double <[x]>); +float gammaf(float <[x]>); +double lgamma(double <[x]>); +float lgammaf(float <[x]>); +double gamma_r(double <[x]>, int *<[signgamp]>); +float gammaf_r(float <[x]>, int *<[signgamp]>); +double lgamma_r(double <[x]>, int *<[signgamp]>); +float lgammaf_r(float <[x]>, int *<[signgamp]>); + +TRAD_SYNOPSIS +#include <math.h> +double gamma(<[x]>) +double <[x]>; +float gammaf(<[x]>) +float <[x]>; +double lgamma(<[x]>) +double <[x]>; +float lgammaf(<[x]>) +float <[x]>; +double gamma_r(<[x]>, <[signgamp]>) +double <[x]>; +int <[signgamp]>; +float gammaf_r(<[x]>, <[signgamp]>) +float <[x]>; +int <[signgamp]>; +double lgamma_r(<[x]>, <[signgamp]>) +double <[x]>; +int <[signgamp]>; +float lgammaf_r(<[x]>, <[signgamp]>) +float <[x]>; +int <[signgamp]>; + +DESCRIPTION +<<gamma>> calculates +@tex +$\mit ln\bigl(\Gamma(x)\bigr)$, +@end tex +the natural logarithm of the gamma function of <[x]>. The gamma function +(<<exp(gamma(<[x]>))>>) is a generalization of factorial, and retains +the property that +@ifinfo +<<exp(gamma(N))>> is equivalent to <<N*exp(gamma(N-1))>>. +@end ifinfo +@tex +$\mit \Gamma(N)\equiv N\times\Gamma(N-1)$. +@end tex +Accordingly, the results of the gamma function itself grow very +quickly. <<gamma>> is defined as +@tex +$\mit ln\bigl(\Gamma(x)\bigr)$ rather than simply $\mit \Gamma(x)$ +@end tex +@ifinfo +the natural log of the gamma function, rather than the gamma function +itself, +@end ifinfo +to extend the useful range of results representable. + +The sign of the result is returned in the global variable <<signgam>>, +which is declared in math.h. + +<<gammaf>> performs the same calculation as <<gamma>>, but uses and +returns <<float>> values. + +<<lgamma>> and <<lgammaf>> are alternate names for <<gamma>> and +<<gammaf>>. The use of <<lgamma>> instead of <<gamma>> is a reminder +that these functions compute the log of the gamma function, rather +than the gamma function itself. + +The functions <<gamma_r>>, <<gammaf_r>>, <<lgamma_r>>, and +<<lgammaf_r>> are just like <<gamma>>, <<gammaf>>, <<lgamma>>, and +<<lgammaf>>, respectively, but take an additional argument. This +additional argument is a pointer to an integer. This additional +argument is used to return the sign of the result, and the global +variable <<signgam>> is not used. These functions may be used for +reentrant calls (but they will still set the global variable <<errno>> +if an error occurs). + +RETURNS +Normally, the computed result is returned. + +When <[x]> is a nonpositive integer, <<gamma>> returns <<HUGE_VAL>> +and <<errno>> is set to <<EDOM>>. If the result overflows, <<gamma>> +returns <<HUGE_VAL>> and <<errno>> is set to <<ERANGE>>. + +You can modify this error treatment using <<matherr>>. + +PORTABILITY +Neither <<gamma>> nor <<gammaf>> is ANSI C. */ + +/* lgamma_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: + * 1. Argument Reduction for 0 < x <= 8 + * Since gamma(1+s)=s*gamma(s), for x in [0,8], we may + * reduce x to a number in [1.5,2.5] by + * lgamma(1+s) = log(s) + lgamma(s) + * for example, + * lgamma(7.3) = log(6.3) + lgamma(6.3) + * = log(6.3*5.3) + lgamma(5.3) + * = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3) + * 2. Polynomial approximation of lgamma around its + * minimun ymin=1.461632144968362245 to maintain monotonicity. + * On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use + * Let z = x-ymin; + * lgamma(x) = -1.214862905358496078218 + z^2*poly(z) + * where + * poly(z) is a 14 degree polynomial. + * 2. Rational approximation in the primary interval [2,3] + * We use the following approximation: + * s = x-2.0; + * lgamma(x) = 0.5*s + s*P(s)/Q(s) + * with accuracy + * |P/Q - (lgamma(x)-0.5s)| < 2**-61.71 + * Our algorithms are based on the following observation + * + * zeta(2)-1 2 zeta(3)-1 3 + * lgamma(2+s) = s*(1-Euler) + --------- * s - --------- * s + ... + * 2 3 + * + * where Euler = 0.5771... is the Euler constant, which is very + * close to 0.5. + * + * 3. For x>=8, we have + * lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+.... + * (better formula: + * lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...) + * Let z = 1/x, then we approximation + * f(z) = lgamma(x) - (x-0.5)(log(x)-1) + * by + * 3 5 11 + * w = w0 + w1*z + w2*z + w3*z + ... + w6*z + * where + * |w - f(z)| < 2**-58.74 + * + * 4. For negative x, since (G is gamma function) + * -x*G(-x)*G(x) = pi/sin(pi*x), + * we have + * G(x) = pi/(sin(pi*x)*(-x)*G(-x)) + * since G(-x) is positive, sign(G(x)) = sign(sin(pi*x)) for x<0 + * Hence, for x<0, signgam = sign(sin(pi*x)) and + * lgamma(x) = log(|Gamma(x)|) + * = log(pi/(|x*sin(pi*x)|)) - lgamma(-x); + * Note: one should avoid compute pi*(-x) directly in the + * computation of sin(pi*(-x)). + * + * 5. Special Cases + * lgamma(2+s) ~ s*(1-Euler) for tiny s + * lgamma(1)=lgamma(2)=0 + * lgamma(x) ~ -log(x) for tiny x + * lgamma(0) = lgamma(inf) = inf + * lgamma(-integer) = +-inf + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const double +#else +static double +#endif +two52= 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */ +half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +pi = 3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */ +a0 = 7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */ +a1 = 3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */ +a2 = 6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */ +a3 = 2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */ +a4 = 7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */ +a5 = 2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */ +a6 = 1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */ +a7 = 5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */ +a8 = 2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */ +a9 = 1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */ +a10 = 2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */ +a11 = 4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */ +tc = 1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */ +tf = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */ +/* tt = -(tail of tf) */ +tt = -3.63867699703950536541e-18, /* 0xBC50C7CA, 0xA48A971F */ +t0 = 4.83836122723810047042e-01, /* 0x3FDEF72B, 0xC8EE38A2 */ +t1 = -1.47587722994593911752e-01, /* 0xBFC2E427, 0x8DC6C509 */ +t2 = 6.46249402391333854778e-02, /* 0x3FB08B42, 0x94D5419B */ +t3 = -3.27885410759859649565e-02, /* 0xBFA0C9A8, 0xDF35B713 */ +t4 = 1.79706750811820387126e-02, /* 0x3F9266E7, 0x970AF9EC */ +t5 = -1.03142241298341437450e-02, /* 0xBF851F9F, 0xBA91EC6A */ +t6 = 6.10053870246291332635e-03, /* 0x3F78FCE0, 0xE370E344 */ +t7 = -3.68452016781138256760e-03, /* 0xBF6E2EFF, 0xB3E914D7 */ +t8 = 2.25964780900612472250e-03, /* 0x3F6282D3, 0x2E15C915 */ +t9 = -1.40346469989232843813e-03, /* 0xBF56FE8E, 0xBF2D1AF1 */ +t10 = 8.81081882437654011382e-04, /* 0x3F4CDF0C, 0xEF61A8E9 */ +t11 = -5.38595305356740546715e-04, /* 0xBF41A610, 0x9C73E0EC */ +t12 = 3.15632070903625950361e-04, /* 0x3F34AF6D, 0x6C0EBBF7 */ +t13 = -3.12754168375120860518e-04, /* 0xBF347F24, 0xECC38C38 */ +t14 = 3.35529192635519073543e-04, /* 0x3F35FD3E, 0xE8C2D3F4 */ +u0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */ +u1 = 6.32827064025093366517e-01, /* 0x3FE4401E, 0x8B005DFF */ +u2 = 1.45492250137234768737e+00, /* 0x3FF7475C, 0xD119BD6F */ +u3 = 9.77717527963372745603e-01, /* 0x3FEF4976, 0x44EA8450 */ +u4 = 2.28963728064692451092e-01, /* 0x3FCD4EAE, 0xF6010924 */ +u5 = 1.33810918536787660377e-02, /* 0x3F8B678B, 0xBF2BAB09 */ +v1 = 2.45597793713041134822e+00, /* 0x4003A5D7, 0xC2BD619C */ +v2 = 2.12848976379893395361e+00, /* 0x40010725, 0xA42B18F5 */ +v3 = 7.69285150456672783825e-01, /* 0x3FE89DFB, 0xE45050AF */ +v4 = 1.04222645593369134254e-01, /* 0x3FBAAE55, 0xD6537C88 */ +v5 = 3.21709242282423911810e-03, /* 0x3F6A5ABB, 0x57D0CF61 */ +s0 = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */ +s1 = 2.14982415960608852501e-01, /* 0x3FCB848B, 0x36E20878 */ +s2 = 3.25778796408930981787e-01, /* 0x3FD4D98F, 0x4F139F59 */ +s3 = 1.46350472652464452805e-01, /* 0x3FC2BB9C, 0xBEE5F2F7 */ +s4 = 2.66422703033638609560e-02, /* 0x3F9B481C, 0x7E939961 */ +s5 = 1.84028451407337715652e-03, /* 0x3F5E26B6, 0x7368F239 */ +s6 = 3.19475326584100867617e-05, /* 0x3F00BFEC, 0xDD17E945 */ +r1 = 1.39200533467621045958e+00, /* 0x3FF645A7, 0x62C4AB74 */ +r2 = 7.21935547567138069525e-01, /* 0x3FE71A18, 0x93D3DCDC */ +r3 = 1.71933865632803078993e-01, /* 0x3FC601ED, 0xCCFBDF27 */ +r4 = 1.86459191715652901344e-02, /* 0x3F9317EA, 0x742ED475 */ +r5 = 7.77942496381893596434e-04, /* 0x3F497DDA, 0xCA41A95B */ +r6 = 7.32668430744625636189e-06, /* 0x3EDEBAF7, 0xA5B38140 */ +w0 = 4.18938533204672725052e-01, /* 0x3FDACFE3, 0x90C97D69 */ +w1 = 8.33333333333329678849e-02, /* 0x3FB55555, 0x5555553B */ +w2 = -2.77777777728775536470e-03, /* 0xBF66C16C, 0x16B02E5C */ +w3 = 7.93650558643019558500e-04, /* 0x3F4A019F, 0x98CF38B6 */ +w4 = -5.95187557450339963135e-04, /* 0xBF4380CB, 0x8C0FE741 */ +w5 = 8.36339918996282139126e-04, /* 0x3F4B67BA, 0x4CDAD5D1 */ +w6 = -1.63092934096575273989e-03; /* 0xBF5AB89D, 0x0B9E43E4 */ + +#ifdef __STDC__ +static const double zero= 0.00000000000000000000e+00; +#else +static double zero= 0.00000000000000000000e+00; +#endif + +#ifdef __STDC__ + static double sin_pi(double x) +#else + static double sin_pi(x) + double x; +#endif +{ + double y,z; + __int32_t n,ix; + + GET_HIGH_WORD(ix,x); + ix &= 0x7fffffff; + + if(ix<0x3fd00000) return __kernel_sin(pi*x,zero,0); + y = -x; /* x is assume negative */ + + /* + * argument reduction, make sure inexact flag not raised if input + * is an integer + */ + z = floor(y); + if(z!=y) { /* inexact anyway */ + y *= 0.5; + y = 2.0*(y - floor(y)); /* y = |x| mod 2.0 */ + n = (__int32_t) (y*4.0); + } else { + if(ix>=0x43400000) { + y = zero; n = 0; /* y must be even */ + } else { + if(ix<0x43300000) z = y+two52; /* exact */ + GET_LOW_WORD(n,z); + n &= 1; + y = n; + n<<= 2; + } + } + switch (n) { + case 0: y = __kernel_sin(pi*y,zero,0); break; + case 1: + case 2: y = __kernel_cos(pi*(0.5-y),zero); break; + case 3: + case 4: y = __kernel_sin(pi*(one-y),zero,0); break; + case 5: + case 6: y = -__kernel_cos(pi*(y-1.5),zero); break; + default: y = __kernel_sin(pi*(y-2.0),zero,0); break; + } + return -y; +} + + +#ifdef __STDC__ + double lgamma_r(double x, int *signgamp) +#else + double lgamma_r(x,signgamp) + double x; int *signgamp; +#endif +{ + double t,y,z,nadj,p,p1,p2,p3,q,r,w; + __int32_t i,hx,lx,ix; + + EXTRACT_WORDS(hx,lx,x); + + /* purge off +-inf, NaN, +-0, and negative arguments */ + *signgamp = 1; + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return x*x; + if((ix|lx)==0) return one/zero; + if(ix<0x3b900000) { /* |x|<2**-70, return -log(|x|) */ + if(hx<0) { + *signgamp = -1; + return -log(-x); + } else return -log(x); + } + if(hx<0) { + if(ix>=0x43300000) /* |x|>=2**52, must be -integer */ + return one/zero; + t = sin_pi(x); + if(t==zero) return one/zero; /* -integer */ + nadj = log(pi/fabs(t*x)); + if(t<zero) *signgamp = -1; + x = -x; + } + + /* purge off 1 and 2 */ + if((((ix-0x3ff00000)|lx)==0)||(((ix-0x40000000)|lx)==0)) r = 0; + /* for x < 2.0 */ + else if(ix<0x40000000) { + if(ix<=0x3feccccc) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -log(x); + if(ix>=0x3FE76944) {y = one-x; i= 0;} + else if(ix>=0x3FCDA661) {y= x-(tc-one); i=1;} + else {y = x; i=2;} + } else { + r = zero; + if(ix>=0x3FFBB4C3) {y=2.0-x;i=0;} /* [1.7316,2] */ + else if(ix>=0x3FF3B4C4) {y=x-tc;i=1;} /* [1.23,1.73] */ + else {y=x-one;i=2;} + } + switch(i) { + case 0: + z = y*y; + p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10)))); + p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11))))); + p = y*p1+p2; + r += (p-0.5*y); break; + case 1: + z = y*y; + w = z*y; + p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */ + p2 = t1+w*(t4+w*(t7+w*(t10+w*t13))); + p3 = t2+w*(t5+w*(t8+w*(t11+w*t14))); + p = z*p1-(tt-w*(p2+y*p3)); + r += (tf + p); break; + case 2: + p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5))))); + p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5)))); + r += (-0.5*y + p1/p2); + } + } + else if(ix<0x40200000) { /* x < 8.0 */ + i = (__int32_t)x; + t = zero; + y = x-(double)i; + p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6)))))); + q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))); + r = half*y+p/q; + z = one; /* lgamma(1+s) = log(s) + lgamma(s) */ + switch(i) { + case 7: z *= (y+6.0); /* FALLTHRU */ + case 6: z *= (y+5.0); /* FALLTHRU */ + case 5: z *= (y+4.0); /* FALLTHRU */ + case 4: z *= (y+3.0); /* FALLTHRU */ + case 3: z *= (y+2.0); /* FALLTHRU */ + r += log(z); break; + } + /* 8.0 <= x < 2**58 */ + } else if (ix < 0x43900000) { + t = log(x); + z = one/x; + y = z*z; + w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6))))); + r = (x-half)*(t-one)+w; + } else + /* 2**58 <= x <= inf */ + r = x*(log(x)-one); + if(hx<0) r = nadj - r; + return r; +} diff --git a/newlib/libm/mathfp/erf_gamma.c b/newlib/libm/mathfp/erf_gamma.c new file mode 100644 index 000000000..96e8c46ab --- /dev/null +++ b/newlib/libm/mathfp/erf_gamma.c @@ -0,0 +1,34 @@ +/* erf_gamma.c -- float version of er_gamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +/* gammaf_r(x, signgamp) + * Reentrant version of the logarithm of the Gamma function + * with user provide pointer for the sign of Gamma(x). + * + * Method: See lgammaf_r + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float gammaf_r(float x, int *signgamp) +#else + float gammaf_r(x,signgamp) + float x; int *signgamp; +#endif +{ + return lgammaf_r(x,signgamp); +} diff --git a/newlib/libm/mathfp/erf_lgamma.c b/newlib/libm/mathfp/erf_lgamma.c new file mode 100644 index 000000000..664812d81 --- /dev/null +++ b/newlib/libm/mathfp/erf_lgamma.c @@ -0,0 +1,244 @@ +/* erf_lgamma.c -- float version of er_lgamma.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + * + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +two23= 8.3886080000e+06, /* 0x4b000000 */ +half= 5.0000000000e-01, /* 0x3f000000 */ +one = 1.0000000000e+00, /* 0x3f800000 */ +pi = 3.1415927410e+00, /* 0x40490fdb */ +a0 = 7.7215664089e-02, /* 0x3d9e233f */ +a1 = 3.2246702909e-01, /* 0x3ea51a66 */ +a2 = 6.7352302372e-02, /* 0x3d89f001 */ +a3 = 2.0580807701e-02, /* 0x3ca89915 */ +a4 = 7.3855509982e-03, /* 0x3bf2027e */ +a5 = 2.8905137442e-03, /* 0x3b3d6ec6 */ +a6 = 1.1927076848e-03, /* 0x3a9c54a1 */ +a7 = 5.1006977446e-04, /* 0x3a05b634 */ +a8 = 2.2086278477e-04, /* 0x39679767 */ +a9 = 1.0801156895e-04, /* 0x38e28445 */ +a10 = 2.5214456400e-05, /* 0x37d383a2 */ +a11 = 4.4864096708e-05, /* 0x383c2c75 */ +tc = 1.4616321325e+00, /* 0x3fbb16c3 */ +tf = -1.2148628384e-01, /* 0xbdf8cdcd */ +/* tt = -(tail of tf) */ +tt = 6.6971006518e-09, /* 0x31e61c52 */ +t0 = 4.8383611441e-01, /* 0x3ef7b95e */ +t1 = -1.4758771658e-01, /* 0xbe17213c */ +t2 = 6.4624942839e-02, /* 0x3d845a15 */ +t3 = -3.2788541168e-02, /* 0xbd064d47 */ +t4 = 1.7970675603e-02, /* 0x3c93373d */ +t5 = -1.0314224288e-02, /* 0xbc28fcfe */ +t6 = 6.1005386524e-03, /* 0x3bc7e707 */ +t7 = -3.6845202558e-03, /* 0xbb7177fe */ +t8 = 2.2596477065e-03, /* 0x3b141699 */ +t9 = -1.4034647029e-03, /* 0xbab7f476 */ +t10 = 8.8108185446e-04, /* 0x3a66f867 */ +t11 = -5.3859531181e-04, /* 0xba0d3085 */ +t12 = 3.1563205994e-04, /* 0x39a57b6b */ +t13 = -3.1275415677e-04, /* 0xb9a3f927 */ +t14 = 3.3552918467e-04, /* 0x39afe9f7 */ +u0 = -7.7215664089e-02, /* 0xbd9e233f */ +u1 = 6.3282704353e-01, /* 0x3f2200f4 */ +u2 = 1.4549225569e+00, /* 0x3fba3ae7 */ +u3 = 9.7771751881e-01, /* 0x3f7a4bb2 */ +u4 = 2.2896373272e-01, /* 0x3e6a7578 */ +u5 = 1.3381091878e-02, /* 0x3c5b3c5e */ +v1 = 2.4559779167e+00, /* 0x401d2ebe */ +v2 = 2.1284897327e+00, /* 0x4008392d */ +v3 = 7.6928514242e-01, /* 0x3f44efdf */ +v4 = 1.0422264785e-01, /* 0x3dd572af */ +v5 = 3.2170924824e-03, /* 0x3b52d5db */ +s0 = -7.7215664089e-02, /* 0xbd9e233f */ +s1 = 2.1498242021e-01, /* 0x3e5c245a */ +s2 = 3.2577878237e-01, /* 0x3ea6cc7a */ +s3 = 1.4635047317e-01, /* 0x3e15dce6 */ +s4 = 2.6642270386e-02, /* 0x3cda40e4 */ +s5 = 1.8402845599e-03, /* 0x3af135b4 */ +s6 = 3.1947532989e-05, /* 0x3805ff67 */ +r1 = 1.3920053244e+00, /* 0x3fb22d3b */ +r2 = 7.2193557024e-01, /* 0x3f38d0c5 */ +r3 = 1.7193385959e-01, /* 0x3e300f6e */ +r4 = 1.8645919859e-02, /* 0x3c98bf54 */ +r5 = 7.7794247773e-04, /* 0x3a4beed6 */ +r6 = 7.3266842264e-06, /* 0x36f5d7bd */ +w0 = 4.1893854737e-01, /* 0x3ed67f1d */ +w1 = 8.3333335817e-02, /* 0x3daaaaab */ +w2 = -2.7777778450e-03, /* 0xbb360b61 */ +w3 = 7.9365057172e-04, /* 0x3a500cfd */ +w4 = -5.9518753551e-04, /* 0xba1c065c */ +w5 = 8.3633989561e-04, /* 0x3a5b3dd2 */ +w6 = -1.6309292987e-03; /* 0xbad5c4e8 */ + +#ifdef __STDC__ +static const float zero= 0.0000000000e+00; +#else +static float zero= 0.0000000000e+00; +#endif + +#ifdef __STDC__ + static float sin_pif(float x) +#else + static float sin_pif(x) + float x; +#endif +{ + float y,z; + __int32_t n,ix; + + GET_FLOAT_WORD(ix,x); + ix &= 0x7fffffff; + + if(ix<0x3e800000) return __kernel_sinf(pi*x,zero,0); + y = -x; /* x is assume negative */ + + /* + * argument reduction, make sure inexact flag not raised if input + * is an integer + */ + z = floorf(y); + if(z!=y) { /* inexact anyway */ + y *= (float)0.5; + y = (float)2.0*(y - floorf(y)); /* y = |x| mod 2.0 */ + n = (__int32_t) (y*(float)4.0); + } else { + if(ix>=0x4b800000) { + y = zero; n = 0; /* y must be even */ + } else { + if(ix<0x4b000000) z = y+two23; /* exact */ + GET_FLOAT_WORD(n,z); + n &= 1; + y = n; + n<<= 2; + } + } + switch (n) { + case 0: y = __kernel_sinf(pi*y,zero,0); break; + case 1: + case 2: y = __kernel_cosf(pi*((float)0.5-y),zero); break; + case 3: + case 4: y = __kernel_sinf(pi*(one-y),zero,0); break; + case 5: + case 6: y = -__kernel_cosf(pi*(y-(float)1.5),zero); break; + default: y = __kernel_sinf(pi*(y-(float)2.0),zero,0); break; + } + return -y; +} + + +#ifdef __STDC__ + float lgammaf_r(float x, int *signgamp) +#else + float lgammaf_r(x,signgamp) + float x; int *signgamp; +#endif +{ + float t,y,z,nadj,p,p1,p2,p3,q,r,w; + __int32_t i,hx,ix; + + GET_FLOAT_WORD(hx,x); + + /* purge off +-inf, NaN, +-0, and negative arguments */ + *signgamp = 1; + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return x*x; + if(ix==0) return one/zero; + if(ix<0x1c800000) { /* |x|<2**-70, return -log(|x|) */ + if(hx<0) { + *signgamp = -1; + return -logf(-x); + } else return -logf(x); + } + if(hx<0) { + if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */ + return one/zero; + t = sin_pif(x); + if(t==zero) return one/zero; /* -integer */ + nadj = logf(pi/fabsf(t*x)); + if(t<zero) *signgamp = -1; + x = -x; + } + + /* purge off 1 and 2 */ + if (ix==0x3f800000||ix==0x40000000) r = 0; + /* for x < 2.0 */ + else if(ix<0x40000000) { + if(ix<=0x3f666666) { /* lgamma(x) = lgamma(x+1)-log(x) */ + r = -logf(x); + if(ix>=0x3f3b4a20) {y = one-x; i= 0;} + else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;} + else {y = x; i=2;} + } else { + r = zero; + if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */ + else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */ + else {y=x-one;i=2;} + } + switch(i) { + case 0: + z = y*y; + p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10)))); + p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11))))); + p = y*p1+p2; + r += (p-(float)0.5*y); break; + case 1: + z = y*y; + w = z*y; + p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12))); /* parallel comp */ + p2 = t1+w*(t4+w*(t7+w*(t10+w*t13))); + p3 = t2+w*(t5+w*(t8+w*(t11+w*t14))); + p = z*p1-(tt-w*(p2+y*p3)); + r += (tf + p); break; + case 2: + p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5))))); + p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5)))); + r += (-(float)0.5*y + p1/p2); + } + } + else if(ix<0x41000000) { /* x < 8.0 */ + i = (__int32_t)x; + t = zero; + y = x-(float)i; + p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6)))))); + q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6))))); + r = half*y+p/q; + z = one; /* lgamma(1+s) = log(s) + lgamma(s) */ + switch(i) { + case 7: z *= (y+(float)6.0); /* FALLTHRU */ + case 6: z *= (y+(float)5.0); /* FALLTHRU */ + case 5: z *= (y+(float)4.0); /* FALLTHRU */ + case 4: z *= (y+(float)3.0); /* FALLTHRU */ + case 3: z *= (y+(float)2.0); /* FALLTHRU */ + r += logf(z); break; + } + /* 8.0 <= x < 2**58 */ + } else if (ix < 0x5c800000) { + t = logf(x); + z = one/x; + y = z*z; + w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6))))); + r = (x-half)*(t-one)+w; + } else + /* 2**58 <= x <= inf */ + r = x*(logf(x)-one); + if(hx<0) r = nadj - r; + return r; +} diff --git a/newlib/libm/mathfp/mathfp.tex b/newlib/libm/mathfp/mathfp.tex new file mode 100644 index 000000000..e7f897a97 --- /dev/null +++ b/newlib/libm/mathfp/mathfp.tex @@ -0,0 +1,199 @@ +@node Math +@chapter Mathematical Functions (@file{math.h}) + +This chapter groups a wide variety of mathematical functions. The +corresponding definitions and declarations are in @file{math.h}. +Two definitions from @file{math.h} are of particular interest. + +@enumerate +@item +The representation of infinity as a @code{double} is defined as +@code{HUGE_VAL}; this number is returned on overflow by many functions. + +@item +The structure @code{exception} is used when you write customized error +handlers for the mathematical functions. You can customize error +handling for most of these functions by defining your own version of +@code{matherr}; see the section on @code{matherr} for details. +@end enumerate + +@cindex system calls +@cindex support subroutines +@cindex stubs +@cindex OS stubs +Since the error handling code calls @code{fputs}, the mathematical +subroutines require stubs or minimal implementations for the same list +of OS subroutines as @code{fputs}: @code{close}, @code{fstat}, +@code{isatty}, @code{lseek}, @code{read}, @code{sbrk}, @code{write}. +@xref{syscalls,,System Calls, libc.info, The Cygnus C Support Library}, +for a discussion and for sample minimal implementations of these support +subroutines. + +Alternative declarations of the mathematical functions, which exploit +specific machine capabilities to operate faster---but generally have +less error checking and may reflect additional limitations on some +machines---are available when you include @file{fastmath.h} instead of +@file{math.h}. + +@menu +* version:: Version of library +* acos:: Arccosine +* acosh:: Inverse hyperbolic cosine +* asin:: Arcsine +* asinh:: Inverse hyperbolic sine +* atan:: Arctangent +* atan2:: Arctangent of y/x +* atanh:: Inverse hyperbolic tangent +* jN:: Bessel functions (jN, yN) +* cbrt:: Cube root +* copysign:: Sign of Y, magnitude of X +* cosh:: Hyperbolic cosine +* erf:: Error function (erf, erfc) +* exp:: Exponential +* expm1:: Exponential of x, - 1 +* fabs:: Absolute value (magnitude) +* floor:: Floor and ceiling (floor, ceil) +* fmod:: Floating-point remainder (modulo) +* frexp:: Split floating-point number +* gamma:: Logarithmic gamma function +* hypot:: Distance from origin +* ilogb:: Get exponent +* infinity:: Floating infinity +* isnan:: Check type of number +* ldexp:: Load exponent +* log:: Natural logarithms +* log10:: Base 10 logarithms +* log1p:: Log of 1 + X +* matherr:: Modifiable math error handler +* modf:: Split fractional and integer parts +* nan:: Floating Not a Number +* nextafter:: Get next representable number +* pow:: X to the power Y +* remainder:: remainder of X divided by Y +* scalbn:: scalbn +* sin:: Sine or cosine (sin, cos) +* sinh:: Hyperbolic sine +* sqrt:: Positive square root +* tan:: Tangent +* tanh:: Hyperbolic tangent +@end menu + +@page +@node version +@section Version of library + +There are four different versions of the math library routines: IEEE, +POSIX, X/Open, or SVID. The version may be selected at runtime by +setting the global variable @code{_LIB_VERSION}, defined in +@file{math.h}. It may be set to one of the following constants defined +in @file{math.h}: @code{_IEEE_}, @code{_POSIX_}, @code{_XOPEN_}, or +@code{_SVID_}. The @code{_LIB_VERSION} variable is not specific to any +thread, and changing it will affect all threads. + +The versions of the library differ only in how errors are handled. + +In IEEE mode, the @code{matherr} function is never called, no warning +messages are printed, and @code{errno} is never set. + +In POSIX mode, @code{errno} is set correctly, but the @code{matherr} +function is never called and no warning messages are printed. + +In X/Open mode, @code{errno} is set correctly, and @code{matherr} is +called, but warning message are not printed. + +In SVID mode, functions which overflow return 3.40282346638528860e+38, +the maximum single precision floating point value, rather than infinity. +Also, @code{errno} is set correctly, @code{matherr} is called, and, if +@code{matherr} returns 0, warning messages are printed for some errors. +For example, by default @samp{log(-1.0)} writes this message on standard +error output: + +@example +log: DOMAIN error +@end example + +The library is set to X/Open mode by default. + +@page +@include mathfp/sacos.def + +@page +@include mathfp/eacosh.def + +@page +@include mathfp/sasine.def + +@page +@include mathfp/sasinh.def + +@page +@include mathfp/satan.def + +@page +@include mathfp/satan2.def + +@page +@include mathfp/eatanh.def + +@page +@include mathfp/wjn.def + +@page +@include mathfp/scosh.def + +@page +@include mathfp/serf.def + +@page +@include mathfp/sexp.def + +@page +@include mathfp/sfabs.def + +@page +@include mathfp/sfloor.def + +@page +@include mathfp/sfmod.def + +@page +@include mathfp/sfrexp.def + +@page +@include mathfp/erlgamma.def + +@page +@include mathfp/ehypot.def + +@page +@include mathfp/sisnan.def + +@page +@include mathfp/sldexp.def + +@page +@include mathfp/slogarithm.def + +@page +@include mathfp/slog10.def + +@page +@include mathfp/spow.def + +@page +@include mathfp/eremainder.def + +@page +@include mathfp/ssqrt.def + +@page +@include mathfp/ssine.def + +@page +@include mathfp/ssineh.def + +@page +@include mathfp/stan.def + +@page +@include mathfp/stanh.def diff --git a/newlib/libm/mathfp/s_acos.c b/newlib/libm/mathfp/s_acos.c new file mode 100644 index 000000000..e03344e7d --- /dev/null +++ b/newlib/libm/mathfp/s_acos.c @@ -0,0 +1,93 @@ + +/* @(#)z_acos.c 1.0 98/08/13 */ + +/* +FUNCTION + <<acos>>, <<acosf>>---arc cosine + +INDEX + acos +INDEX + acosf + +ANSI_SYNOPSIS + #include <math.h> + double acos(double <[x]>); + float acosf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double acos(<[x]>) + double <[x]>; + + float acosf(<[x]>) + float <[x]>; + + + +DESCRIPTION + + <<acos>> computes the inverse cosine (arc cosine) of the input value. + Arguments to <<acos>> must be in the range @minus{}1 to 1. + + <<acosf>> is identical to <<acos>>, except that it performs + its calculations on <<floats>>. + +RETURNS + @ifinfo + <<acos>> and <<acosf>> return values in radians, in the range of 0 to pi +. + @end ifinfo + @tex + <<acos>> and <<acosf>> return values in radians, in the range of <<0>> t +o $\pi$. + @end tex + + If <[x]> is not between @minus{}1 and 1, the returned value is NaN + (not a number) the global variable <<errno>> is set to <<EDOM>>, and a + <<DOMAIN error>> message is sent as standard error output. + + You can modify error handling for these functions using <<matherr>>. + + +QUICKREF ANSI SVID POSIX RENTRANT + acos y,y,y,m + acosf n,n,n,m + +MATHREF + acos, [-1,1], acos(arg),,, + acos, NAN, arg,DOMAIN,EDOM + +MATHREF + acosf, [-1,1], acosf(arg),,, + acosf, NAN, argf,DOMAIN,EDOM + +*/ + +/***************************************************************** + * Arccosine + * + * Input: + * x - floating point value + * + * Output: + * arccosine of x + * + * Description: + * This routine returns the arccosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (acos, (double), + double x) +{ + return (asine (x, 1)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_asin.c b/newlib/libm/mathfp/s_asin.c new file mode 100644 index 000000000..477bbf5cb --- /dev/null +++ b/newlib/libm/mathfp/s_asin.c @@ -0,0 +1,29 @@ + +/* @(#)z_asin.c 1.0 98/08/13 */ +/****************************************************************** + * Arcsine + * + * Input: + * x - floating point value + * + * Output: + * arcsine of x + * + * Description: + * This routine returns the arcsine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (asin, (double), + double x) +{ + return (asine (x, 0)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_asine.c b/newlib/libm/mathfp/s_asine.c new file mode 100644 index 000000000..efc0a8130 --- /dev/null +++ b/newlib/libm/mathfp/s_asine.c @@ -0,0 +1,186 @@ + +/* @(#)z_asine.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<asin>>, <<asinf>>, <<acos>>, <<acosf>>, <<asine>>, <<asinef>>---arc sine or cosine + +INDEX + asin +INDEX + asinf +INDEX + acos +INDEX + acosf +INDEX + asine +INDEX + asinef + +ANSI_SYNOPSIS + #include <math.h> + double asine(double <[x]>); + float asinef(float <[x]>); + double asin(double <[x]>); + float asinf(float <[x]>); + double acos(double <[x]>); + float acosf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double asine(<[x]>); + double <[x]>; + + float asinef(<[x]>); + float <[x]>; + + double asin(<[x]>) + double <[x]>; + + float asinf(<[x]>) + float <[x]>; + + double acos(<[x]>) + double <[x]>; + + float acosf(<[x]>) + float <[x]>; + +DESCRIPTION + +<<asin>> computes the inverse sine or cosine of the argument <[x]>. +Arguments to <<asin>> and <<acos>> must be in the range @minus{}1 to 1. + +<<asinf>> and <<acosf>> are identical to <<asin>> and <<acos>>, other +than taking and returning floats. + +RETURNS +@ifinfo +<<asin>> and <<acos>> return values in radians, in the range of -pi/2 to pi/2. +@end ifinfo +@tex +<<asin>> and <<acos>> return values in radians, in the range of $-\pi/2$ to $\pi/2$. +@end tex + +If <[x]> is not in the range @minus{}1 to 1, <<asin>> and <<asinf>> +return NaN (not a number), set the global variable <<errno>> to +<<EDOM>>, and issue a <<DOMAIN error>> message. + +*/ + +/****************************************************************** + * Arcsine + * + * Input: + * x - floating point value + * acosine - indicates acos calculation + * + * Output: + * Arcsine of x. + * + * Description: + * This routine calculates arcsine / arccosine. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double p[] = { -0.27368494524164255994e+2, + 0.57208227877891731407e+2, + -0.39688862997404877339e+2, + 0.10152522233806463645e+2, + -0.69674573447350646411 }; +static const double q[] = { -0.16421096714498560795e+3, + 0.41714430248260412556e+3, + -0.38186303361750149284e+3, + 0.15095270841030604719e+3, + -0.23823859153670238830e+2 }; +static const double a[] = { 0.0, 0.78539816339744830962 }; +static const double b[] = { 1.57079632679489661923, 0.78539816339744830962 }; + +double +_DEFUN (asine, (double, int), + double x _AND + int acosine) +{ + int flag, i; + int branch = 0; + double g, res, R, P, Q, y; + + /* Check for special values. */ + i = numtest (x); + if (i == NAN || i == INF) + { + errno = EDOM; + if (i == NAN) + return (x); + else + return (z_infinity.d); + } + + y = fabs (x); + flag = acosine; + + if (y > 0.5) + { + i = 1 - flag; + + /* Check for range error. */ + if (y > 1.0) + { + errno = ERANGE; + return (z_notanum.d); + } + + g = (1 - y) / 2.0; + y = -2 * sqrt (g); + branch = 1; + } + else + { + i = flag; + if (y < z_rooteps) + res = y; + else + g = y * y; + } + + if (y >= z_rooteps || branch == 1) + { + /* Calculate the Taylor series. */ + P = ((((p[4] * g + p[3]) * g + p[2]) * g + p[1]) * g + p[0]) * g; + Q = ((((g + q[4]) * g + q[3]) * g + q[2]) * g + q[1]) * g + q[0]; + R = P / Q; + + res = y + y * R; + } + + /* Calculate asine or acose. */ + if (flag == 0) + { + res = (a[i] + res) + a[i]; + if (x < 0.0) + res = -res; + } + else + { + if (x < 0.0) + res = (b[i] + res) + b[i]; + else + res = (a[i] - res) + a[i]; + } + + return (res); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_asinh.c b/newlib/libm/mathfp/s_asinh.c new file mode 100644 index 000000000..43b9d49fa --- /dev/null +++ b/newlib/libm/mathfp/s_asinh.c @@ -0,0 +1,107 @@ + +/* @(#)s_asinh.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<asinh>>, <<asinhf>>---inverse hyperbolic sine + +INDEX + asinh +INDEX + asinhf + +ANSI_SYNOPSIS + #include <math.h> + double asinh(double <[x]>); + float asinhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double asinh(<[x]>) + double <[x]>; + + float asinhf(<[x]>) + float <[x]>; + +DESCRIPTION +<<asinh>> calculates the inverse hyperbolic sine of <[x]>. +<<asinh>> is defined as +@ifinfo +. sgn(<[x]>) * log(abs(<[x]>) + sqrt(1+<[x]>*<[x]>)) +@end ifinfo +@tex +$$sign(x) \times ln\Bigl(|x| + \sqrt{1+x^2}\Bigr)$$ +@end tex + +<<asinhf>> is identical, other than taking and returning floats. + +RETURNS +<<asinh>> and <<asinhf>> return the calculated value. + +PORTABILITY +Neither <<asinh>> nor <<asinhf>> are ANSI C. + +*/ + +/* asinh(x) + * Method : + * Based on + * asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ] + * we have + * asinh(x) := x if 1+x*x=1, + * := sign(x)*(log(x)+ln2)) for large |x|, else + * := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else + * := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2))) + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ +huge= 1.00000000000000000000e+300; + +#ifdef __STDC__ + double asinh(double x) +#else + double asinh(x) + double x; +#endif +{ + double t,w; + __int32_t hx,ix; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) return x+x; /* x is inf or NaN */ + if(ix< 0x3e300000) { /* |x|<2**-28 */ + if(huge+x>one) return x; /* return x inexact except 0 */ + } + if(ix>0x41b00000) { /* |x| > 2**28 */ + w = log(fabs(x))+ln2; + } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */ + t = fabs(x); + w = log(2.0*t+one/(sqrt(x*x+one)+t)); + } else { /* 2.0 > |x| > 2**-28 */ + t = x*x; + w =log1p(fabs(x)+t/(one+sqrt(one+t))); + } + if(hx>0) return w; else return -w; +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_atan.c b/newlib/libm/mathfp/s_atan.c new file mode 100644 index 000000000..b8e633e3d --- /dev/null +++ b/newlib/libm/mathfp/s_atan.c @@ -0,0 +1,83 @@ + +/* @(#)z_atan.c 1.0 98/08/13 */ + +/* +FUNCTION + <<atan>>, <<atanf>>---arc tangent + +INDEX + atan +INDEX + atanf + +ANSI_SYNOPSIS + #include <math.h> + double atan(double <[x]>); + float atanf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atan(<[x]>); + double <[x]>; + + float atanf(<[x]>); + float <[x]>; + +DESCRIPTION + +<<atan>> computes the inverse tangent (arc tangent) of the input value. + +<<atanf>> is identical to <<atan>>, save that it operates on <<floats>>. + +RETURNS +@ifinfo +<<atan>> returns a value in radians, in the range of -pi/2 to pi/2. +@end ifinfo +@tex +<<atan>> returns a value in radians, in the range of $-\pi/2$ to $\pi/2$. +@end tex + +PORTABILITY +<<atan>> is ANSI C. <<atanf>> is an extension. + +*/ + +/****************************************************************** + * Arctangent + * + * Input: + * x - floating point value + * + * Output: + * arctan of x + * + * Description: + * This routine returns the arctan of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (atan, (double), + double x) +{ + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + /* this should check to see if neg NaN or pos NaN... */ + return (__PI_OVER_TWO); + case 0: + return (0.0); + default: + return (atangent (x, 0, 0, 0)); + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_atan2.c b/newlib/libm/mathfp/s_atan2.c new file mode 100644 index 000000000..d73a6efc0 --- /dev/null +++ b/newlib/libm/mathfp/s_atan2.c @@ -0,0 +1,89 @@ + +/* @(#)z_atan2.c 1.0 98/08/13 */ + +/* +FUNCTION + <<atan2>>, <<atan2f>>---arc tangent of y/x + +INDEX + atan2 +INDEX + atan2f + +ANSI_SYNOPSIS + #include <math.h> + double atan2(double <[y]>,double <[x]>); + float atan2f(float <[y]>,float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atan2(<[y]>,<[x]>); + double <[y]>; + double <[x]>; + + float atan2f(<[y]>,<[x]>); + float <[y]>; + float <[x]>; + +DESCRIPTION + +<<atan2>> computes the inverse tangent (arc tangent) of <[y]>/<[x]>. +<<atan2>> produces the correct result even for angles near +@ifinfo +pi/2 or -pi/2 +@end ifinfo +@tex +$\pi/2$ or $-\pi/2$ +@end tex +(that is, when <[x]> is near 0). + +<<atan2f>> is identical to <<atan2>>, save that it takes and returns +<<float>>. + +RETURNS +<<atan2>> and <<atan2f>> return a value in radians, in the range of +@ifinfo +-pi to pi. +@end ifinfo +@tex +$-\pi$ to $\pi$. +@end tex + +If both <[x]> and <[y]> are 0.0, <<atan2>> causes a <<DOMAIN>> error. + +You can modify error handling for these functions using <<matherr>>. + +PORTABILITY +<<atan2>> is ANSI C. <<atan2f>> is an extension. + + +*/ + +/****************************************************************** + * Arctangent2 + * + * Input: + * v, u - floating point values + * + * Output: + * arctan2 of v / u + * + * Description: + * This routine returns the arctan2 of v / u. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (atan2, (double, double), + double v _AND + double u) +{ + return (atangent (0.0, v, u, 1)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_atangent.c b/newlib/libm/mathfp/s_atangent.c new file mode 100644 index 000000000..c6f3c9bd6 --- /dev/null +++ b/newlib/libm/mathfp/s_atangent.c @@ -0,0 +1,213 @@ + +/* @(#)z_atangent.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<atan>>, <<atanf>>, <<atan2>>, <<atan2f>>, <<atangent>>, <<atangentf>>---arc tangent + +INDEX + atan2 +INDEX + atan2f +INDEX + atan +INDEX + atanf + +ANSI_SYNOPSIS + #include <math.h> + double atan(double <[x]>); + float atan(float <[x]>); + double atan2(double <[y]>,double <[x]>); + float atan2f(float <[y]>,float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double atan2(<[y]>,<[x]>); + double <[y]>; + double <[x]>; + + float atan2f(<[y]>,<[x]>); + float <[y]>; + float <[x]>; + + #include <math.h> + double atan(<[x]>); + double <[x]>; + + float atanf(<[x]>); + float <[x]>; + +DESCRIPTION + +<<atan2>> computes the inverse tangent (arc tangent) of y / x. + +<<atan2f>> is identical to <<atan2>>, save that it operates on <<floats>>. + +<<atan>> computes the inverse tangent (arc tangent) of the input value. + +<<atanf>> is identical to <<atan>>, save that it operates on <<floats>>. + +RETURNS +@ifinfo +<<atan>> returns a value in radians, in the range of -pi/2 to pi/2. +<<atan2>> returns a value in radians, in the range of -pi/2 to pi/2. +@end ifinfo +@tex +<<atan>> returns a value in radians, in the range of $-\pi/2$ to $\pi/2$. +<<atan2>> returns a value in radians, in the range of $-\pi/2$ to $\pi/2$. +@end tex + +PORTABILITY +<<atan>> is ANSI C. <<atanf>> is an extension. +<<atan2>> is ANSI C. <<atan2f>> is an extension. + +*/ + +/****************************************************************** + * Arctangent + * + * Input: + * x - floating point value + * + * Output: + * arctangent of x + * + * Description: + * This routine calculates arctangents. + * + *****************************************************************/ +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double ROOT3 = 1.73205080756887729353; +static const double a[] = { 0.0, 0.52359877559829887308, 1.57079632679489661923, + 1.04719755119659774615 }; +static const double q[] = { 0.41066306682575781263e+2, + 0.86157349597130242515e+2, + 0.59578436142597344465e+2, + 0.15024001160028576121e+2 }; +static const double p[] = { -0.13688768894191926929e+2, + -0.20505855195861651981e+2, + -0.84946240351320683534e+1, + -0.83758299368150059274 }; + +double +_DEFUN (atangent, (double, double, double, int), + double x _AND + double v _AND + double u _AND + int arctan2) +{ + double f, g, R, P, Q, A, res; + int N; + int branch = 0; + int expv, expu; + + /* Preparation for calculating arctan2. */ + if (arctan2) + { + if (u == 0.0) + if (v == 0.0) + { + errno = ERANGE; + return (z_notanum.d); + } + else + { + branch = 1; + res = __PI_OVER_TWO; + } + + if (!branch) + { + int e; + /* Get the exponent values of the inputs. */ + g = frexp (v, &expv); + g = frexp (u, &expu); + + /* See if a divide will overflow. */ + e = expv - expu; + if (e > DBL_MAX_EXP) + { + branch = 1; + res = __PI_OVER_TWO; + } + + /* Also check for underflow. */ + else if (e < DBL_MIN_EXP) + { + branch = 2; + res = 0.0; + } + } + } + + if (!branch) + { + if (arctan2) + f = fabs (v / u); + else + f = fabs (x); + + if (f > 1.0) + { + f = 1.0 / f; + N = 2; + } + else + N = 0; + + if (f > (2.0 - ROOT3)) + { + A = ROOT3 - 1.0; + f = (((A * f - 0.5) - 0.5) + f) / (ROOT3 + f); + N++; + } + + /* Check for values that are too small. */ + if (-z_rooteps < f && f < z_rooteps) + res = f; + + /* Calculate the Taylor series. */ + else + { + g = f * f; + P = (((p[3] * g + p[2]) * g + p[1]) * g + p[0]) * g; + Q = (((g + q[3]) * g + q[2]) * g + q[1]) * g + q[0]; + R = P / Q; + + res = f + f * R; + } + + if (N > 1) + res = -res; + + res += a[N]; + } + + if (arctan2) + { + if (u < 0.0 || branch == 2) + res = __PI - res; + if (v < 0.0 || branch == 1) + res = -res; + } + else if (x < 0.0) + { + res = -res; + } + + return (res); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_ceil.c b/newlib/libm/mathfp/s_ceil.c new file mode 100644 index 000000000..c6ecbe323 --- /dev/null +++ b/newlib/libm/mathfp/s_ceil.c @@ -0,0 +1,38 @@ + +/* @(#)z_ceil.c 1.0 98/08/13 */ +/***************************************************************** + * ceil + * + * Input: + * x - floating point value + * + * Output: + * Smallest integer greater than x. + * + * Description: + * This routine returns the smallest integer greater than x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (ceil, (double), + double x) +{ + double f, y; + + y = modf (x, &f); + + if (y == 0.0) + return (x); + else if (x > -1.0 && x < 1.0) + return (x > 0 ? 1.0 : 0.0); + else + return (x > 0 ? f + 1.0 : f); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_cos.c b/newlib/libm/mathfp/s_cos.c new file mode 100644 index 000000000..6f63a404e --- /dev/null +++ b/newlib/libm/mathfp/s_cos.c @@ -0,0 +1,29 @@ + +/* @(#)z_cos.c 1.0 98/08/13 */ +/****************************************************************** + * Cosine + * + * Input: + * x - floating point value + * + * Output: + * cosine of x + * + * Description: + * This routine returns the cosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (cos, (double), + double x) +{ + return (sine (x, 1)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_cosh.c b/newlib/libm/mathfp/s_cosh.c new file mode 100644 index 000000000..6550e9ce7 --- /dev/null +++ b/newlib/libm/mathfp/s_cosh.c @@ -0,0 +1,80 @@ + +/* @(#)z_cosh.c 1.0 98/08/13 */ + +/* + +FUNCTION + <<cosh>>, <<coshf>>---hyperbolic cosine + +ANSI_SYNOPSIS + #include <math.h> + double cosh(double <[x]>); + float coshf(float <[x]>) + +TRAD_SYNOPSIS + #include <math.h> + double cosh(<[x]>) + double <[x]>; + + float coshf(<[x]>) + float <[x]>; + +DESCRIPTION + + <<cosh>> computes the hyperbolic cosine of the argument <[x]>. + <<cosh(<[x]>)>> is defined as + @ifinfo + . (exp(x) + exp(-x))/2 + @end ifinfo + @tex + $${(e^x + e^{-x})} \over 2$$ + @end tex + + Angles are specified in radians. + + <<coshf>> is identical, save that it takes and returns <<float>>. + +RETURNS + The computed value is returned. When the correct value would create + an overflow, <<cosh>> returns the value <<HUGE_VAL>> with the + appropriate sign, and the global value <<errno>> is set to <<ERANGE>>. + + You can modify error handling for these functions using the + function <<matherr>>. + +PORTABILITY + <<cosh>> is ANSI. + <<coshf>> is an extension. + +QUICKREF + cosh ansi pure + coshf - pure +*/ + +/****************************************************************** + * Hyperbolic Cosine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic cosine of x + * + * Description: + * This routine returns the hyperbolic cosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (cosh, (double), + double x) +{ + return (sineh (x, 1)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_erf.c b/newlib/libm/mathfp/s_erf.c new file mode 100644 index 000000000..2d8faa3d8 --- /dev/null +++ b/newlib/libm/mathfp/s_erf.c @@ -0,0 +1,373 @@ + +/* @(#)s_erf.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION + <<erf>>, <<erff>>, <<erfc>>, <<erfcf>>---error function +INDEX + erf +INDEX + erff +INDEX + erfc +INDEX + erfcf + +ANSI_SYNOPSIS + #include <math.h> + double erf(double <[x]>); + float erff(float <[x]>); + double erfc(double <[x]>); + float erfcf(float <[x]>); +TRAD_SYNOPSIS + #include <math.h> + + double erf(<[x]>) + double <[x]>; + + float erff(<[x]>) + float <[x]>; + + double erfc(<[x]>) + double <[x]>; + + float erfcf(<[x]>) + float <[x]>; + +DESCRIPTION + <<erf>> calculates an approximation to the ``error function'', + which estimates the probability that an observation will fall within + <[x]> standard deviations of the mean (assuming a normal + distribution). + @tex + The error function is defined as + $${2\over\sqrt\pi}\times\int_0^x e^{-t^2}dt$$ + @end tex + + <<erfc>> calculates the complementary probability; that is, + <<erfc(<[x]>)>> is <<1 - erf(<[x]>)>>. <<erfc>> is computed directly, + so that you can use it to avoid the loss of precision that would + result from subtracting large probabilities (on large <[x]>) from 1. + + <<erff>> and <<erfcf>> differ from <<erf>> and <<erfc>> only in the + argument and result types. + +RETURNS + For positive arguments, <<erf>> and all its variants return a + probability---a number between 0 and 1. + +PORTABILITY + None of the variants of <<erf>> are ANSI C. +*/ + +/* double erf(double x) + * double erfc(double x) + * x + * 2 |\ + * erf(x) = --------- | exp(-t*t)dt + * sqrt(pi) \| + * 0 + * + * erfc(x) = 1-erf(x) + * Note that + * erf(-x) = -erf(x) + * erfc(-x) = 2 - erfc(x) + * + * Method: + * 1. For |x| in [0, 0.84375] + * erf(x) = x + x*R(x^2) + * erfc(x) = 1 - erf(x) if x in [-.84375,0.25] + * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375] + * where R = P/Q where P is an odd poly of degree 8 and + * Q is an odd poly of degree 10. + * -57.90 + * | R - (erf(x)-x)/x | <= 2 + * + * + * Remark. The formula is derived by noting + * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....) + * and that + * 2/sqrt(pi) = 1.128379167095512573896158903121545171688 + * is close to one. The interval is chosen because the fix + * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is + * near 0.6174), and by some experiment, 0.84375 is chosen to + * guarantee the error is less than one ulp for erf. + * + * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and + * c = 0.84506291151 rounded to single (24 bits) + * erf(x) = sign(x) * (c + P1(s)/Q1(s)) + * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0 + * 1+(c+P1(s)/Q1(s)) if x < 0 + * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06 + * Remark: here we use the taylor series expansion at x=1. + * erf(1+s) = erf(1) + s*Poly(s) + * = 0.845.. + P1(s)/Q1(s) + * That is, we use rational approximation to approximate + * erf(1+s) - (c = (single)0.84506291151) + * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25] + * where + * P1(s) = degree 6 poly in s + * Q1(s) = degree 6 poly in s + * + * 3. For x in [1.25,1/0.35(~2.857143)], + * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1) + * erf(x) = 1 - erfc(x) + * where + * R1(z) = degree 7 poly in z, (z=1/x^2) + * S1(z) = degree 8 poly in z + * + * 4. For x in [1/0.35,28] + * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0 + * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0 + * = 2.0 - tiny (if x <= -6) + * erf(x) = sign(x)*(1.0 - erfc(x)) if x < 6, else + * erf(x) = sign(x)*(1.0 - tiny) + * where + * R2(z) = degree 6 poly in z, (z=1/x^2) + * S2(z) = degree 7 poly in z + * + * Note1: + * To compute exp(-x*x-0.5625+R/S), let s be a single + * precision number and s := x; then + * -x*x = -s*s + (s-x)*(s+x) + * exp(-x*x-0.5626+R/S) = + * exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S); + * Note2: + * Here 4 and 5 make use of the asymptotic series + * exp(-x*x) + * erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) ) + * x*sqrt(pi) + * We use rational approximation to approximate + * g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625 + * Here is the error bound for R1/S1 and R2/S2 + * |R1/S1 - f(x)| < 2**(-62.57) + * |R2/S2 - f(x)| < 2**(-61.52) + * + * 5. For inf > x >= 28 + * erf(x) = sign(x) *(1 - tiny) (raise inexact) + * erfc(x) = tiny*tiny (raise underflow) if x > 0 + * = 2 - tiny if x<0 + * + * 7. Special case: + * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1, + * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, + * erfc/erf(NaN) is NaN + */ + + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double +#else +static double +#endif +tiny = 1e-300, +half= 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */ +one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */ +two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */ + /* c = (float)0.84506291151 */ +erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */ +efx8= 1.02703333676410069053e+00, /* 0x3FF06EBA, 0x8214DB69 */ +pp0 = 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */ +pp1 = -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */ +pp2 = -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */ +pp3 = -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */ +pp4 = -2.37630166566501626084e-05, /* 0xBEF8EAD6, 0x120016AC */ +qq1 = 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */ +qq2 = 6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */ +qq3 = 5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */ +qq4 = 1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */ +qq5 = -3.96022827877536812320e-06, /* 0xBED09C43, 0x42A26120 */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +pa0 = -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */ +pa1 = 4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */ +pa2 = -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */ +pa3 = 3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */ +pa4 = -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */ +pa5 = 3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */ +pa6 = -2.16637559486879084300e-03, /* 0xBF61BF38, 0x0A96073F */ +qa1 = 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */ +qa2 = 5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */ +qa3 = 7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */ +qa4 = 1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */ +qa5 = 1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */ +qa6 = 1.19844998467991074170e-02, /* 0x3F888B54, 0x5735151D */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +ra0 = -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */ +ra1 = -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */ +ra2 = -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */ +ra3 = -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */ +ra4 = -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */ +ra5 = -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */ +ra6 = -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */ +ra7 = -9.81432934416914548592e+00, /* 0xC023A0EF, 0xC69AC25C */ +sa1 = 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */ +sa2 = 1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */ +sa3 = 4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */ +sa4 = 6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */ +sa5 = 4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */ +sa6 = 1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */ +sa7 = 6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */ +sa8 = -6.04244152148580987438e-02, /* 0xBFAEEFF2, 0xEE749A62 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +rb0 = -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */ +rb1 = -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */ +rb2 = -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */ +rb3 = -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */ +rb4 = -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */ +rb5 = -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */ +rb6 = -4.83519191608651397019e+02, /* 0xC07E384E, 0x9BDC383F */ +sb1 = 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */ +sb2 = 3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */ +sb3 = 1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */ +sb4 = 3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */ +sb5 = 2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */ +sb6 = 4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */ +sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */ + +#ifdef __STDC__ + double erf(double x) +#else + double erf(x) + double x; +#endif +{ + __int32_t hx,ix,i; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erf(nan)=nan */ + i = ((__uint32_t)hx>>31)<<1; + return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */ + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3e300000) { /* |x|<2**-28 */ + if (ix < 0x00800000) + return 0.125*(8.0*x+efx8*x); /*avoid underflow */ + return x + efx*x; + } + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + return x + x*y; + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) return erx + P/Q; else return -erx - P/Q; + } + if (ix >= 0x40180000) { /* inf>|x|>=6 */ + if(hx>=0) return one-tiny; else return tiny-one; + } + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/0.35 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = exp(-z*z-0.5625)*exp((z-x)*(z+x)+R/S); + if(hx>=0) return one-r/x; else return r/x-one; +} + +#ifdef __STDC__ + double erfc(double x) +#else + double erfc(x) + double x; +#endif +{ + __int32_t hx,ix; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erfc(nan)=nan */ + /* erfc(+-inf)=0,2 */ + return (double)(((__uint32_t)hx>>31)<<1)+one/x; + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3c700000) /* |x|<2**-56 */ + return one-x; + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + if(hx < 0x3fd00000) { /* x<1/4 */ + return one-(x+x*y); + } else { + r = x*y; + r += (x-half); + return half - r ; + } + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) { + z = one-erx; return z - P/Q; + } else { + z = erx+P/Q; return one+z; + } + } + if (ix < 0x403c0000) { /* |x|<28 */ + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/.35 ~ 2.857143 */ + if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = exp(-z*z-0.5625)* + exp((z-x)*(z+x)+R/S); + if(hx>0) return r/x; else return two-r/x; + } else { + if(hx>0) return tiny*tiny; else return two-tiny; + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_exp.c b/newlib/libm/mathfp/s_exp.c new file mode 100644 index 000000000..8c7f723fe --- /dev/null +++ b/newlib/libm/mathfp/s_exp.c @@ -0,0 +1,133 @@ + +/* @(#)z_exp.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<exp>>, <<expf>>---exponential +INDEX + exp +INDEX + expf + +ANSI_SYNOPSIS + #include <math.h> + double exp(double <[x]>); + float expf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double exp(<[x]>); + double <[x]>; + + float expf(<[x]>); + float <[x]>; + +DESCRIPTION + <<exp>> and <<expf>> calculate the exponential of <[x]>, that is, + @ifinfo + e raised to the power <[x]> (where e + @end ifinfo + @tex + $e^x$ (where $e$ + @end tex + is the base of the natural system of logarithms, approximately 2.71828). + +RETURNS + On success, <<exp>> and <<expf>> return the calculated value. + If the result underflows, the returned value is <<0>>. If the + result overflows, the returned value is <<HUGE_VAL>>. In + either case, <<errno>> is set to <<ERANGE>>. + +PORTABILITY + <<exp>> is ANSI C. <<expf>> is an extension. + +*/ + +/***************************************************************** + * Exponential Function + * + * Input: + * x - floating point value + * + * Output: + * e raised to x. + * + * Description: + * This routine returns e raised to the xth power. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double INV_LN2 = 1.4426950408889634074; +static const double LN2 = 0.6931471805599453094172321; +static const double p[] = { 0.25, 0.75753180159422776666e-2, + 0.31555192765684646356e-4 }; +static const double q[] = { 0.5, 0.56817302698551221787e-1, + 0.63121894374398504557e-3, + 0.75104028399870046114e-6 }; + +double +_DEFUN (exp, (double), + double x) +{ + int N; + double g, z, R, P, Q; + + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + if (ispos (x)) + return (z_infinity.d); + else + return (0.0); + case 0: + return (1.0); + } + + /* Check for out of bounds. */ + if (x > BIGX || x < SMALLX) + { + errno = ERANGE; + return (x); + } + + /* Check for a value too small to calculate. */ + if (-z_rooteps < x && x < z_rooteps) + { + return (1.0); + } + + /* Calculate the exponent. */ + if (x < 0.0) + N = (int) (x * INV_LN2 - 0.5); + else + N = (int) (x * INV_LN2 + 0.5); + + /* Construct the mantissa. */ + g = x - N * LN2; + z = g * g; + P = g * ((p[2] * z + p[1]) * z + p[0]); + Q = ((q[3] * z + q[2]) * z + q[1]) * z + q[0]; + R = 0.5 + P / (Q - P); + + /* Return the floating point value. */ + N++; + return (ldexp (R, N)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_fabs.c b/newlib/libm/mathfp/s_fabs.c new file mode 100644 index 000000000..9e1d75eb3 --- /dev/null +++ b/newlib/libm/mathfp/s_fabs.c @@ -0,0 +1,80 @@ + +/* @(#)z_fabs.c 1.0 98/08/13 */ + +/* +FUNCTION + <<fabs>>, <<fabsf>>---absolute value (magnitude) +INDEX + fabs +INDEX + fabsf + +ANSI_SYNOPSIS + #include <math.h> + double fabs(double <[x]>); + float fabsf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double fabs(<[x]>) + double <[x]>; + + float fabsf(<[x]>) + float <[x]>; + +DESCRIPTION +<<fabs>> and <<fabsf>> calculate +@tex +$|x|$, +@end tex +the absolute value (magnitude) of the argument <[x]>, by direct +manipulation of the bit representation of <[x]>. + +RETURNS +The calculated value is returned. + +PORTABILITY +<<fabs>> is ANSI. +<<fabsf>> is an extension. + +*/ + +/****************************************************************** + * Floating-Point Absolute Value + * + * Input: + * x - floating-point number + * + * Output: + * absolute value of x + * + * Description: + * fabs computes the absolute value of a floating point number. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (fabs, (double), + double x) +{ + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + return (x); + case 0: + return (0.0); + default: + return (x < 0.0 ? -x : x); + } +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_floor.c b/newlib/libm/mathfp/s_floor.c new file mode 100644 index 000000000..0dbc207f3 --- /dev/null +++ b/newlib/libm/mathfp/s_floor.c @@ -0,0 +1,92 @@ + +/* @(#)z_floor.c 1.0 98/08/13 */ + +/* +FUNCTION +<<floor>>, <<floorf>>, <<ceil>>, <<ceilf>>---floor and ceiling +INDEX + floor +INDEX + floorf +INDEX + ceil +INDEX + ceilf + +ANSI_SYNOPSIS + #include <math.h> + double floor(double <[x]>); + float floorf(float <[x]>); + double ceil(double <[x]>); + float ceilf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double floor(<[x]>) + double <[x]>; + float floorf(<[x]>) + float <[x]>; + double ceil(<[x]>) + double <[x]>; + float ceilf(<[x]>) + float <[x]>; + +DESCRIPTION +<<floor>> and <<floorf>> find +@tex +$\lfloor x \rfloor$, +@end tex +the nearest integer less than or equal to <[x]>. +<<ceil>> and <<ceilf>> find +@tex +$\lceil x\rceil$, +@end tex +the nearest integer greater than or equal to <[x]>. + +RETURNS +<<floor>> and <<ceil>> return the integer result as a double. +<<floorf>> and <<ceilf>> return the integer result as a float. + +PORTABILITY +<<floor>> and <<ceil>> are ANSI. +<<floorf>> and <<ceilf>> are extensions. + +*/ + +/***************************************************************** + * floor + * + * Input: + * x - floating point value + * + * Output: + * Smallest integer less than x. + * + * Description: + * This routine returns the smallest integer less than x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (floor, (double), + double x) +{ + double f, y; + + if (x > -1.0 && x < 1.0) + return (x >= 0 ? 0 : -1.0); + + y = modf (x, &f); + + if (y == 0.0) + return (x); + + return (x >= 0 ? f : f - 1.0); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_fmod.c b/newlib/libm/mathfp/s_fmod.c new file mode 100644 index 000000000..3af7300da --- /dev/null +++ b/newlib/libm/mathfp/s_fmod.c @@ -0,0 +1,187 @@ + +/* @(#)z_fmod.c 1.0 98/08/13 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<fmod>>, <<fmodf>>---floating-point remainder (modulo) + +INDEX +fmod +INDEX +fmodf + +ANSI_SYNOPSIS +#include <math.h> +double fmod(double <[x]>, double <[y]>) +float fmodf(float <[x]>, float <[y]>) + +TRAD_SYNOPSIS +#include <math.h> +double fmod(<[x]>, <[y]>) +double (<[x]>, <[y]>); + +float fmodf(<[x]>, <[y]>) +float (<[x]>, <[y]>); + +DESCRIPTION +The <<fmod>> and <<fmodf>> functions compute the floating-point +remainder of <[x]>/<[y]> (<[x]> modulo <[y]>). + +RETURNS +The <<fmod>> function returns the value +@ifinfo +<[x]>-<[i]>*<[y]>, +@end ifinfo +@tex +$x-i\times y$, +@end tex +for the largest integer <[i]> such that, if <[y]> is nonzero, the +result has the same sign as <[x]> and magnitude less than the +magnitude of <[y]>. + +<<fmod(<[x]>,0)>> returns NaN, and sets <<errno>> to <<EDOM>>. + +You can modify error treatment for these functions using <<matherr>>. + +PORTABILITY +<<fmod>> is ANSI C. <<fmodf>> is an extension. +*/ + +/* + * fmod(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ +static const double one = 1.0, Zero[] = {0.0, -0.0,}; +#else +static double one = 1.0, Zero[] = {0.0, -0.0,}; +#endif + +#ifdef __STDC__ + double fmod(double x, double y) +#else + double fmod(x,y) + double x,y ; +#endif +{ + __int32_t n,hx,hy,hz,ix,iy,sx,i; + __uint32_t lx,ly,lz; + + EXTRACT_WORDS(hx,lx,x); + EXTRACT_WORDS(hy,ly,y); + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if((hy|ly)==0||(hx>=0x7ff00000)|| /* y=0,or x not finite */ + ((hy|((ly|-ly)>>31))>0x7ff00000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<=hy) { + if((hx<hy)||(lx<ly)) return x; /* |x|<|y| return x */ + if(lx==ly) + return Zero[(__uint32_t)sx>>31]; /* |x|=|y| return x*0*/ + } + + /* determine ix = ilogb(x) */ + if(hx<0x00100000) { /* subnormal x */ + if(hx==0) { + for (ix = -1043, i=lx; i>0; i<<=1) ix -=1; + } else { + for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1; + } + } else ix = (hx>>20)-1023; + + /* determine iy = ilogb(y) */ + if(hy<0x00100000) { /* subnormal y */ + if(hy==0) { + for (iy = -1043, i=ly; i>0; i<<=1) iy -=1; + } else { + for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1; + } + } else iy = (hy>>20)-1023; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -1022) + hx = 0x00100000|(0x000fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -1022-ix; + if(n<=31) { + hx = (hx<<n)|(lx>>(32-n)); + lx <<= n; + } else { + hx = lx<<(n-32); + lx = 0; + } + } + if(iy >= -1022) + hy = 0x00100000|(0x000fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -1022-iy; + if(n<=31) { + hy = (hy<<n)|(ly>>(32-n)); + ly <<= n; + } else { + hy = ly<<(n-32); + ly = 0; + } + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz<0){hx = hx+hx+(lx>>31); lx = lx+lx;} + else { + if((hz|lz)==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + hx = hz+hz+(lz>>31); lx = lz+lz; + } + } + hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; + if(hz>=0) {hx=hz;lx=lz;} + + /* convert back to floating value and restore the sign */ + if((hx|lx)==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + while(hx<0x00100000) { /* normalize x */ + hx = hx+hx+(lx>>31); lx = lx+lx; + iy -= 1; + } + if(iy>= -1022) { /* normalize output */ + hx = ((hx-0x00100000)|((iy+1023)<<20)); + INSERT_WORDS(x,hx|sx,lx); + } else { /* subnormal output */ + n = -1022 - iy; + if(n<=20) { + lx = (lx>>n)|((__uint32_t)hx<<(32-n)); + hx >>= n; + } else if (n<=31) { + lx = (hx<<(32-n))|(lx>>n); hx = sx; + } else { + lx = hx>>(n-32); hx = sx; + } + INSERT_WORDS(x,hx|sx,lx); + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/s_frexp.c b/newlib/libm/mathfp/s_frexp.c new file mode 100644 index 000000000..6145c472f --- /dev/null +++ b/newlib/libm/mathfp/s_frexp.c @@ -0,0 +1,110 @@ + +/* @(#)z_frexp.c 1.0 98/08/13 */ + +/* +FUNCTION + <<frexp>>, <<frexpf>>---split floating-point number +INDEX + frexp +INDEX + frexpf + +ANSI_SYNOPSIS + #include <math.h> + double frexp(double <[val]>, int *<[exp]>); + float frexpf(float <[val]>, int *<[exp]>); + +TRAD_SYNOPSIS + #include <math.h> + double frexp(<[val]>, <[exp]>) + double <[val]>; + int *<[exp]>; + + float frexpf(<[val]>, <[exp]>) + float <[val]>; + int *<[exp]>; + + +DESCRIPTION + All non zero, normal numbers can be described as <[m]> * 2**<[p]>. + <<frexp>> represents the double <[val]> as a mantissa <[m]> + and a power of two <[p]>. The resulting mantissa will always + be greater than or equal to <<0.5>>, and less than <<1.0>> (as + long as <[val]> is nonzero). The power of two will be stored + in <<*>><[exp]>. + +@ifinfo +<[m]> and <[p]> are calculated so that +<[val]> is <[m]> times <<2>> to the power <[p]>. +@end ifinfo +@tex +<[m]> and <[p]> are calculated so that +$ val = m \times 2^p $. +@end tex + +<<frexpf>> is identical, other than taking and returning +floats rather than doubles. + +RETURNS +<<frexp>> returns the mantissa <[m]>. If <[val]> is <<0>>, infinity, +or Nan, <<frexp>> will set <<*>><[exp]> to <<0>> and return <[val]>. + +PORTABILITY +<<frexp>> is ANSI. +<<frexpf>> is an extension. + + +*/ + +/***************************************************************** + * frexp + * + * Input: + * d - floating point value + * exp - exponent value + * + * Output: + * A floating point value in the range [0.5, 1). + * + * Description: + * This routine breaks a floating point value into a number f and + * an exponent exp such that d = f * 2 ^ exp. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double frexp (double d, int *exp) +{ + double f; + __uint32_t hd, ld, hf, lf; + + EXTRACT_WORDS (hd, ld, d); + + /* Get the exponent. */ + *exp = ((hd & 0x7ff00000) >> 20) - 1022; + + /* Get the mantissa. */ + lf = ld; + hf = hd & 0x800fffff; + hf |= 0x3fe00000; + + INSERT_WORDS (f, hf, lf); + + /* Check for special values. */ + switch (numtest (f)) + { + case NAN: + case INF: + errno = EDOM; + *exp = 0; + return (f); + } + + return (f); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_infconst.c b/newlib/libm/mathfp/s_infconst.c new file mode 100644 index 000000000..85b3b689c --- /dev/null +++ b/newlib/libm/mathfp/s_infconst.c @@ -0,0 +1,15 @@ +/* Infinity as a constant value. This is used for HUGE_VAL. + * Added by Cygnus Support. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS +#ifdef __IEEE_BIG_ENDIAN +const union __dmath __infinity = { 0x7ff00000, 0 }; +#else +const union __dmath __infinity = { 0, 0x7ff00000 }; +#endif +#else /* defined (_DOUBLE_IS_32BITS) */ +const union __dmath __infinity = { 0x7f800000, 0 }; +#endif /* defined (_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/s_isinf.c b/newlib/libm/mathfp/s_isinf.c new file mode 100644 index 000000000..fe9f54799 --- /dev/null +++ b/newlib/libm/mathfp/s_isinf.c @@ -0,0 +1,37 @@ + +/* @(#)z_isinf.c 1.0 98/08/13 */ +/****************************************************************** + * isinf + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates if the number is infinite. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is infinite (1) or is finite (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +int isinf (double x) +{ + __uint32_t lx, hx; + int exp; + + EXTRACT_WORDS (hx, lx, x); + exp = (hx & 0x7ff00000) >> 20; + + if ((exp == 0x7ff) && ((hx & 0xf0000 || lx) == 0)) + return (1); + else + return (0); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_isnan.c b/newlib/libm/mathfp/s_isnan.c new file mode 100644 index 000000000..776baa239 --- /dev/null +++ b/newlib/libm/mathfp/s_isnan.c @@ -0,0 +1,125 @@ + +/* @(#)z_isnan.c 1.0 98/08/13 */ + +/* +FUNCTION + <<isnan>>,<<isnanf>>,<<isinf>>,<<isinff>>,<<finite>>,<<finitef>>---test +for exceptional numbers + +INDEX + isnan +INDEX + isinf +INDEX + finite + +INDEX + isnanf +INDEX + isinff +INDEX + finitef + +ANSI_SYNOPSIS + #include <ieeefp.h> + int isnan(double <[arg]>); + int isinf(double <[arg]>); + int finite(double <[arg]>); + int isnanf(float <[arg]>); + int isinff(float <[arg]>); + int finitef(float <[arg]>); + +TRAD_SYNOPSIS + #include <ieeefp.h> + int isnan(<[arg]>) + double <[arg]>; + int isinf(<[arg]>) + double <[arg]>; + int finite(<[arg]>); + double <[arg]>; + int isnanf(<[arg]>); + float <[arg]>; + int isinff(<[arg]>); + float <[arg]>; + int finitef(<[arg]>); + float <[arg]>; + + +DESCRIPTION + These functions provide information on the floating point + argument supplied. + + There are five major number formats - + o+ + o zero + a number which contains all zero bits. + o subnormal + Is used to represent number with a zero exponent, but a non zero fract +ion. + o normal + A number with an exponent, and a fraction + o infinity + A number with an all 1's exponent and a zero fraction. + o NAN + A number with an all 1's exponent and a non zero fraction. + + o- + + <<isnan>> returns 1 if the argument is a nan. <<isinf>> + returns 1 if the argument is infinity. <<finite>> returns 1 if the + argument is zero, subnormal or normal. + + The <<isnanf>>, <<isinff>> and <<finitef>> perform the same + operations as their <<isnan>>, <<isinf>> and <<finite>> + counterparts, but on single precision floating point numbers. + +QUICKREF + isnan - pure +QUICKREF + isinf - pure +QUICKREF + finite - pure +QUICKREF + isnan - pure +QUICKREF + isinf - pure +QUICKREF + finite - pure +*/ + + +/****************************************************************** + * isnan + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates if the number is NaN. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is NaN (1) or is finite (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +int isnan (double x) +{ + __uint32_t lx, hx; + int exp; + + EXTRACT_WORDS (hx, lx, x); + exp = (hx & 0x7ff00000) >> 20; + + if ((exp == 0x7ff) && (hx & 0xf0000 || lx)) + return (1); + else + return (0); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_ispos.c b/newlib/libm/mathfp/s_ispos.c new file mode 100644 index 000000000..2077999c3 --- /dev/null +++ b/newlib/libm/mathfp/s_ispos.c @@ -0,0 +1,35 @@ + +/* @(#)z_ispos.c 1.0 98/08/13 */ +/****************************************************************** + * Numtest + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates if the number is positive. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is positive (1) or negative (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +int ispos (double x) +{ + __uint32_t hx; + + GET_HIGH_WORD (hx, x); + + if (hx & 0x80000000) + return (0); + else + return (1); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_ldexp.c b/newlib/libm/mathfp/s_ldexp.c new file mode 100644 index 000000000..97d8a3ba5 --- /dev/null +++ b/newlib/libm/mathfp/s_ldexp.c @@ -0,0 +1,125 @@ + +/* @(#)z_ldexp.c 1.0 98/08/13 */ + +/* +FUNCTION + <<ldexp>>, <<ldexpf>>---load exponent + +INDEX + ldexp +INDEX + ldexpf + +ANSI_SYNOPSIS + #include <math.h> + double ldexp(double <[val]>, int <[exp]>); + float ldexpf(float <[val]>, int <[exp]>); + +TRAD_SYNOPSIS + #include <math.h> + + double ldexp(<[val]>, <[exp]>) + double <[val]>; + int <[exp]>; + + float ldexpf(<[val]>, <[exp]>) + float <[val]>; + int <[exp]>; + +DESCRIPTION +<<ldexp>> calculates the value +@ifinfo +<[val]> times 2 to the power <[exp]>. +@end ifinfo +@tex +$val\times 2^{exp}$. +@end tex +<<ldexpf>> is identical, save that it takes and returns <<float>> +rather than <<double>> values. + +RETURNS +<<ldexp>> returns the calculated value. + +Underflow and overflow both set <<errno>> to <<ERANGE>>. +On underflow, <<ldexp>> and <<ldexpf>> return 0.0. +On overflow, <<ldexp>> returns plus or minus <<HUGE_VAL>>. + +PORTABILITY +<<ldexp>> is ANSI, <<ldexpf>> is an extension. + +*/ + +/****************************************************************** + * ldexp + * + * Input: + * d - a floating point value + * e - an exponent value + * + * Output: + * A floating point value f such that f = d * 2 ^ e. + * + * Description: + * This function creates a floating point number f such that + * f = d * 2 ^ e. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +#define DOUBLE_EXP_OFFS 1023 + +double +_DEFUN (ldexp, (double, int), + double d _AND + int e) +{ + int exp; + __uint32_t hd; + + GET_HIGH_WORD (hd, d); + + /* Check for special values and then scale d by e. */ + switch (numtest (d)) + { + case NAN: + errno = EDOM; + break; + + case INF: + errno = ERANGE; + break; + + case 0: + break; + + default: + exp = (hd & 0x7ff00000) >> 20; + exp += e; + + if (exp > DBL_MAX_EXP + DOUBLE_EXP_OFFS) + { + errno = ERANGE; + d = z_infinity.d; + } + else if (exp < DBL_MIN_EXP + DOUBLE_EXP_OFFS) + { + errno = ERANGE; + d = -z_infinity.d; + } + else + { + hd &= 0x800fffff; + hd |= exp << 20; + SET_HIGH_WORD (d, hd); + } + } + + return (d); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_log.c b/newlib/libm/mathfp/s_log.c new file mode 100644 index 000000000..27b959831 --- /dev/null +++ b/newlib/libm/mathfp/s_log.c @@ -0,0 +1,29 @@ + +/* @(#)z_log.c 1.0 98/08/13 */ +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * + * Output: + * natural logarithm of x + * + * Description: + * This routine returns the natural logarithm of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (log, (double), + double x) +{ + return (logarithm (x, 0)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_log10.c b/newlib/libm/mathfp/s_log10.c new file mode 100644 index 000000000..080cecd81 --- /dev/null +++ b/newlib/libm/mathfp/s_log10.c @@ -0,0 +1,68 @@ + +/* @(#)z_log10.c 1.0 98/08/13 */ +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * + * Output: + * logarithm of x + * + * Description: + * This routine returns the logarithm of x (base 10). + * + *****************************************************************/ + +/* +FUNCTION + <<log10>>, <<log10f>>---base 10 logarithms + +INDEX +log10 +INDEX +log10f + +ANSI_SYNOPSIS + #include <math.h> + double log10(double <[x]>); + float log10f(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double log10(<[x]>) + double <[x]>; + + float log10f(<[x]>) + float <[x]>; + +DESCRIPTION +<<log10>> returns the base 10 logarithm of <[x]>. +It is implemented as <<log(<[x]>) / log(10)>>. + +<<log10f>> is identical, save that it takes and returns <<float>> values. + +RETURNS +<<log10>> and <<log10f>> return the calculated value. + +See the description of <<log>> for information on errors. + +PORTABILITY +<<log10>> is ANSI C. <<log10f>> is an extension. + +*/ + + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (log10, (double), + double x) +{ + return (logarithm (x, 1)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_logarithm.c b/newlib/libm/mathfp/s_logarithm.c new file mode 100644 index 000000000..ee7c7069e --- /dev/null +++ b/newlib/libm/mathfp/s_logarithm.c @@ -0,0 +1,135 @@ + +/* @(#)z_logarithm.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<log>>, <<logf>>, <<log10>>, <<log10f>>, <<logarithm>>, <<logarithmf>>---natural or base 10 logarithms + +INDEX + log +INDEX + logf +INDEX + log10 +INDEX + log10f + +ANSI_SYNOPSIS + #include <math.h> + double log(double <[x]>); + float logf(float <[x]>); + double log10(double <[x]>); + float log10f(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double log(<[x]>); + double <[x]>; + + float logf(<[x]>); + float <[x]>; + + double log10(<[x]>); + double <[x]>; + + float log10f(<[x]>); + float <[x]>; + +DESCRIPTION +Return the natural or base 10 logarithm of <[x]>, that is, its logarithm base e +(where e is the base of the natural system of logarithms, 2.71828@dots{}) or +base 10. +<<log>> and <<logf>> are identical save for the return and argument types. +<<log10>> and <<log10f>> are identical save for the return and argument types. + +RETURNS +Normally, returns the calculated value. When <[x]> is zero, the +returned value is <<-HUGE_VAL>> and <<errno>> is set to <<ERANGE>>. +When <[x]> is negative, the returned value is <<-HUGE_VAL>> and +<<errno>> is set to <<EDOM>>. You can control the error behavior via +<<matherr>>. + +PORTABILITY +<<log>> is ANSI, <<logf>> is an extension. +<<log10>> is ANSI, <<log10f>> is an extension. +*/ + + +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * ten - indicates base ten numbers + * + * Output: + * logarithm of x + * + * Description: + * This routine calculates logarithms. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double a[] = { -0.64124943423745581147e+02, + 0.16383943563021534222e+02, + -0.78956112887481257267 }; +static const double b[] = { -0.76949932108494879777e+03, + 0.31203222091924532844e+03, + -0.35667977739034646171e+02 }; +static const double C1 = 22713.0 / 32768.0; +static const double C2 = 1.428606820309417232e-06; +static const double C3 = 0.43429448190325182765; + +double +_DEFUN (logarithm, (double, int), + double x _AND + int ten) +{ + int N; + double f, w, z; + + /* Check for domain error here. */ + if (x <= 0.0) + { + errno = ERANGE; + return (z_notanum.d); + } + + /* Get the exponent and mantissa where x = f * 2^N. */ + f = frexp (x, &N); + + z = f - 0.5; + + if (f > __SQRT_HALF) + z = (z - 0.5) / (f * 0.5 + 0.5); + else + { + N--; + z /= (z * 0.5 + 0.5); + } + w = z * z; + + /* Use Newton's method with 4 terms. */ + z += z * w * ((a[2] * w + a[1]) * w + a[0]) / (((w + b[2]) * w + b[1]) * w + b[0]); + + if (N != 0) + z = (N * C2 + z) + N * C1; + + if (ten) + z *= C3; + + return (z); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_mathcnst.c b/newlib/libm/mathfp/s_mathcnst.c new file mode 100644 index 000000000..7865c7f78 --- /dev/null +++ b/newlib/libm/mathfp/s_mathcnst.c @@ -0,0 +1,24 @@ +/* @(#)z_mathcnst.c 1.0 98/08/13 */ + +#include "zmath.h" +#include "fdlibm.h" + +double BIGX = 7.09782712893383973096e+02; +double SMALLX = -7.45133219101941108420e+02; +double z_rooteps = 7.4505859692e-9; +float z_rooteps_f = 1.7263349182589107e-4; + +ufloat z_hugeval_f = { 0x7f800000 }; +ufloat z_infinity_f = { 0x7f800000 }; +ufloat z_notanum_f = { 0xffd00000 }; + +#ifdef ___IEEE_LITTLE_ENDIAN +udouble z_hugeval = { 0x7ff00000, 0 }; +udouble z_infinity = { 0x7ff00000, 0 }; +udouble z_notanum = { 0xfff80000, 0 }; +#else +udouble z_hugeval = { 0, 0x7ff00000 }; +udouble z_infinity = { 0, 0x7ff00000 }; +udouble z_notanum = { 0, 0xfff80000 }; +#endif /* ___IEEE_LITTLE_ENDIAN */ + diff --git a/newlib/libm/mathfp/s_numtest.c b/newlib/libm/mathfp/s_numtest.c new file mode 100644 index 000000000..b41bb87f4 --- /dev/null +++ b/newlib/libm/mathfp/s_numtest.c @@ -0,0 +1,58 @@ + +/* @(#)z_numtest.c 1.0 98/08/13 */ +/****************************************************************** + * Numtest + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates what kind of number was passed in: + * NUM = 3 - a finite value + * NAN = 2 - not a number + * INF = 1 - an infinite value + * 0 - zero + * + * Description: + * This routine returns an integer that indicates the character- + * istics of the number that was passed in. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +int +_DEFUN (numtest, (double), + double x) +{ + __uint32_t hx, lx; + int exp; + + EXTRACT_WORDS (hx, lx, x); + + exp = (hx & 0x7ff00000) >> 20; + + /* Check for a zero input. */ + if (x == 0.0) + { + return (0); + } + + /* Check for not a number or infinity. */ + if (exp == 0x7ff) + { + if(hx & 0xf0000 || lx) + return (NAN); + else + return (INF); + } + + /* Otherwise it's a finite value. */ + else + return (NUM); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_pow.c b/newlib/libm/mathfp/s_pow.c new file mode 100644 index 000000000..7c0a38a20 --- /dev/null +++ b/newlib/libm/mathfp/s_pow.c @@ -0,0 +1,146 @@ + +/* @(#)z_pow.c 1.0 98/08/13 */ + +/* +FUNCTION + <<pow>>, <<powf>>---x to the power y +INDEX + pow +INDEX + powf + + +ANSI_SYNOPSIS + #include <math.h> + double pow(double <[x]>, double <[y]>); + float pow(float <[x]>, float <[y]>); + +TRAD_SYNOPSIS + #include <math.h> + double pow(<[x]>, <[y]>); + double <[x]>, <[y]>; + + float pow(<[x]>, <[y]>); + float <[x]>, <[y]>; + +DESCRIPTION + <<pow>> and <<powf>> calculate <[x]> raised to the exp1.0nt <[y]>. + @tex + (That is, $x^y$.) + @end tex + +RETURNS + On success, <<pow>> and <<powf>> return the value calculated. + + When the argument values would produce overflow, <<pow>> + returns <<HUGE_VAL>> and set <<errno>> to <<ERANGE>>. If the + argument <[x]> passed to <<pow>> or <<powf>> is a negative + noninteger, and <[y]> is also not an integer, then <<errno>> + is set to <<EDOM>>. If <[x]> and <[y]> are both 0, then + <<pow>> and <<powf>> return <<1>>. + + You can modify error handling for these functions using <<matherr>>. + +PORTABILITY + <<pow>> is ANSI C. <<powf>> is an extension. */ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double pow (double x, double y) +{ + double d, t, r = 1.0; + int n, k, sign = 0; + __uint32_t px; + + GET_HIGH_WORD (px, x); + + k = modf (y, &d); + if (k == 0.0) + { + if (modf (ldexp (y, -1), &t)) + sign = 0; + else + sign = 1; + } + + if (x == 0.0 && y <= 0.0) + errno = EDOM; + + else if ((t = y * log (fabs (x))) >= BIGX) + { + errno = ERANGE; + if (px & 0x80000000) + { + if (!k) + { + errno = EDOM; + x = 0.0; + } + else if (sign) + x = -z_infinity.d; + else + x = z_infinity.d; + } + + else + x = z_infinity.d; + } + + else if (t < SMALLX) + { + errno = ERANGE; + x = 0.0; + } + + else + { + if ( k && fabs(d) <= 32767 ) + { + n = (int) d; + + if (sign = (n < 0)) + n = -n; + + while ( n > 0 ) + { + if ((unsigned int) n % 2) + r *= x; + x *= x; + n = (unsigned int) n / 2; + } + + if (sign) + r = 1.0 / r; + + return r; + } + + else + { + if ( px & 0x80000000 ) + { + if ( !k ) + { + errno = EDOM; + return 0.0; + } + } + + x = exp (t); + + if ( sign ) + { + px ^= 0x80000000; + SET_HIGH_WORD (x, px); + } + } + } + + return x; +} + +#endif _DOUBLE_IS_32BITS diff --git a/newlib/libm/mathfp/s_signif.c b/newlib/libm/mathfp/s_signif.c new file mode 100644 index 000000000..76b5f7cb6 --- /dev/null +++ b/newlib/libm/mathfp/s_signif.c @@ -0,0 +1,34 @@ + +/* @(#)s_signif.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * significand(x) computes just + * scalb(x, (double) -ilogb(x)), + * for exercising the fraction-part(F) IEEE 754-1985 test vector. + */ + +#include "fdlibm.h" + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double significand(double x) +#else + double significand(x) + double x; +#endif +{ + return scalb(x,(double) -ilogb(x)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_sin.c b/newlib/libm/mathfp/s_sin.c new file mode 100644 index 000000000..2051304e0 --- /dev/null +++ b/newlib/libm/mathfp/s_sin.c @@ -0,0 +1,29 @@ + +/* @(#)z_sin.c 1.0 98/08/13 */ +/****************************************************************** + * Sine + * + * Input: + * x - floating point value + * + * Output: + * sine of x + * + * Description: + * This routine returns the sine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (sin, (double), + double x) +{ + return (sine (x, 0)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_sine.c b/newlib/libm/mathfp/s_sine.c new file mode 100644 index 000000000..9642f4a56 --- /dev/null +++ b/newlib/libm/mathfp/s_sine.c @@ -0,0 +1,166 @@ + +/* @(#)z_sine.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<sin>>, <<cos>>, <<sine>>, <<sinf>>, <<cosf>>, <<sinef>>---sine or cosine +INDEX +sin +INDEX +sinf +INDEX +cos +INDEX +cosf +ANSI_SYNOPSIS + #include <math.h> + double sin(double <[x]>); + float sinf(float <[x]>); + double cos(double <[x]>); + float cosf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double sin(<[x]>) + double <[x]>; + float sinf(<[x]>) + float <[x]>; + + double cos(<[x]>) + double <[x]>; + float cosf(<[x]>) + float <[x]>; + +DESCRIPTION + <<sin>> and <<cos>> compute (respectively) the sine and cosine + of the argument <[x]>. Angles are specified in radians. +RETURNS + The sine or cosine of <[x]> is returned. + +PORTABILITY + <<sin>> and <<cos>> are ANSI C. + <<sinf>> and <<cosf>> are extensions. + +QUICKREF + sin ansi pure + sinf - pure +*/ + +/****************************************************************** + * sine + * + * Input: + * x - floating point value + * cosine - indicates cosine value + * + * Output: + * Sine of x. + * + * Description: + * This routine calculates sines and cosines. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double HALF_PI = 1.57079632679489661923; +static const double ONE_OVER_PI = 0.31830988618379067154; +static const double r[] = { -0.16666666666666665052, + 0.83333333333331650314e-02, + -0.19841269841201840457e-03, + 0.27557319210152756119e-05, + -0.25052106798274584544e-07, + 0.16058936490371589114e-09, + -0.76429178068910467734e-12, + 0.27204790957888846175e-14 }; + +double +_DEFUN (sine, (double, int), + double x _AND + int cosine) +{ + int sgn, N; + double y, XN, g, R, res; + double YMAX = 210828714.0; + + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = EDOM; + return (z_notanum.d); + } + + /* Use sin and cos properties to ease computations. */ + if (cosine) + { + sgn = 1; + y = fabs (x) + HALF_PI; + } + else + { + if (x < 0.0) + { + sgn = -1; + y = -x; + } + else + { + sgn = 1; + y = x; + } + } + + /* Check for values of y that will overflow here. */ + if (y > YMAX) + { + errno = ERANGE; + return (x); + } + + /* Calculate the exponent. */ + if (y < 0.0) + N = (int) (y * ONE_OVER_PI - 0.5); + else + N = (int) (y * ONE_OVER_PI + 0.5); + XN = (double) N; + + if (N & 1) + sgn = -sgn; + + if (cosine) + XN -= 0.5; + + y = fabs (x) - XN * __PI; + + if (-z_rooteps < y && y < z_rooteps) + res = y; + + else + { + g = y * y; + + /* Calculate the Taylor series. */ + R = (((((((r[6] * g + r[5]) * g + r[4]) * g + r[3]) * g + r[2]) * g + r[1]) * g + r[0]) * g); + + /* Finally, compute the result. */ + res = y + y * R; + } + + res *= sgn; + + return (res); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_sineh.c b/newlib/libm/mathfp/s_sineh.c new file mode 100644 index 000000000..6b3480d73 --- /dev/null +++ b/newlib/libm/mathfp/s_sineh.c @@ -0,0 +1,185 @@ + +/* @(#)z_sineh.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<sinh>>, <<sinhf>>, <<cosh>>, <<coshf>>, <<sineh>>---hyperbolic sine or cosine + +INDEX + sinh +INDEX + sinhf +INDEX + cosh +INDEX + coshf + +ANSI_SYNOPSIS + #include <math.h> + double sinh(double <[x]>); + float sinhf(float <[x]>); + double cosh(double <[x]>); + float coshf(float <[x]>); +TRAD_SYNOPSIS + #include <math.h> + double sinh(<[x]>) + double <[x]>; + + float sinhf(<[x]>) + float <[x]>; + + double cosh(<[x]>) + double <[x]>; + + float coshf(<[x]>) + float <[x]>; + +DESCRIPTION + <<sinh>> and <<cosh>> compute the hyperbolic sine or cosine + of the argument <[x]>. + Angles are specified in radians. <<sinh>>(<[x]>) is defined as + @ifinfo + . (exp(<[x]>) - exp(-<[x]>))/2 + @end ifinfo + @tex + $${e^x - e^{-x}}\over 2$$ + @end tex + <<cosh>> is defined as + @ifinfo + . (exp(<[x]>) - exp(-<[x]>))/2 + @end ifinfo + @tex + $${e^x + e^{-x}}\over 2$$ + @end tex + + <<sinhf>> and <<coshf>> are identical, save that they take + and returns <<float>> values. + +RETURNS + The hyperbolic sine or cosine of <[x]> is returned. + + When the correct result is too large to be representable (an + overflow), the functions return <<HUGE_VAL>> with the + appropriate sign, and sets the global value <<errno>> to + <<ERANGE>>. + +PORTABILITY + <<sinh>> is ANSI C. + <<sinhf>> is an extension. + <<cosh>> is ANSI C. + <<coshf>> is an extension. + +*/ + +/****************************************************************** + * Hyperbolic Sine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic sine of x + * + * Description: + * This routine calculates hyperbolic sines. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +static const double q[] = { -0.21108770058106271242e+7, + 0.36162723109421836460e+5, + -0.27773523119650701667e+3 }; +static const double p[] = { -0.35181283430177117881e+6, + -0.11563521196851768270e+5, + -0.16375798202630751372e+3, + -0.78966127417357099479 }; +static const double LNV = 0.6931610107421875000; +static const double INV_V2 = 0.24999308500451499336; +static const double V_OVER2_MINUS1 = 0.13830277879601902638e-4; + +double +_DEFUN (sineh, (double, int), + double x _AND + int cosineh) +{ + double y, f, P, Q, R, res, z, w; + int sgn = 1; + double WBAR = 18.55; + + /* Check for special values. */ + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + return (ispos (x) ? z_infinity.d : -z_infinity.d); + } + + y = fabs (x); + + if (!cosineh && x < 0.0) + sgn = -1; + + if ((y > 1.0 && !cosineh) || cosineh) + { + if (y > BIGX) + { + w = y - LNV; + + /* Check for w > maximum here. */ + if (w > BIGX) + { + errno = ERANGE; + return (x); + } + + z = exp (w); + + if (w > WBAR) + res = z * (V_OVER2_MINUS1 + 1.0); + } + + else + { + z = exp (y); + if (cosineh) + res = (z + 1 / z) / 2.0; + else + res = (z - 1 / z) / 2.0; + } + + if (sgn < 0) + res = -res; + } + else + { + /* Check for y being too small. */ + if (y < z_rooteps) + { + res = x; + } + /* Calculate the Taylor series. */ + else + { + f = x * x; + Q = ((f + q[2]) * f + q[1]) * f + q[0]; + P = ((p[3] * f + p[2]) * f + p[1]) * f + p[0]; + R = f * (P / Q); + + res = x + x * R; + } + } + + return (res); +} diff --git a/newlib/libm/mathfp/s_sinf.c b/newlib/libm/mathfp/s_sinf.c new file mode 100644 index 000000000..b738a49b9 --- /dev/null +++ b/newlib/libm/mathfp/s_sinf.c @@ -0,0 +1,34 @@ + +/* @(#)z_sinf.c 1.0 98/08/13 */ +/****************************************************************** + * Sine + * + * Input: + * x - floating point value + * + * Output: + * sine of x + * + * Description: + * This routine returns the sine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (sinf, (float), + float x) +{ + return (sinef (x, 0)); +} + +#ifdef _DOUBLE_IS_32BITS + +double sin (double x) +{ + return (double) sinf ((float) x); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_sinh.c b/newlib/libm/mathfp/s_sinh.c new file mode 100644 index 000000000..c600ee0da --- /dev/null +++ b/newlib/libm/mathfp/s_sinh.c @@ -0,0 +1,29 @@ + +/* @(#)z_sinh.c 1.0 98/08/13 */ +/****************************************************************** + * Hyperbolic Sine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic sine of x + * + * Description: + * This routine returns the hyperbolic sine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (sinh, (double), + double x) +{ + return (sineh (x, 0)); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_sqrt.c b/newlib/libm/mathfp/s_sqrt.c new file mode 100644 index 000000000..bafbb38b1 --- /dev/null +++ b/newlib/libm/mathfp/s_sqrt.c @@ -0,0 +1,129 @@ + +/* @(#)z_sqrt.c 1.0 98/08/13 */ +/***************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + *****************************************************************/ + +/* +FUNCTION + <<sqrt>>, <<sqrtf>>---positive square root + +INDEX + sqrt +INDEX + sqrtf + +ANSI_SYNOPSIS + #include <math.h> + double sqrt(double <[x]>); + float sqrtf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double sqrt(<[x]>); + float sqrtf(<[x]>); + +DESCRIPTION + <<sqrt>> computes the positive square root of the argument. + +RETURNS + On success, the square root is returned. If <[x]> is real and + positive, then the result is positive. If <[x]> is real and + negative, the global value <<errno>> is set to <<EDOM>> (domain error). + + +PORTABILITY + <<sqrt>> is ANSI C. <<sqrtf>> is an extension. +*/ + +/****************************************************************** + * Square Root + * + * Input: + * x - floating point value + * + * Output: + * square-root of x + * + * Description: + * This routine performs floating point square root. + * + * The initial approximation is computed as + * y0 = 0.41731 + 0.59016 * f + * where f is a fraction such that x = f * 2^exp. + * + * Three Newton iterations in the form of Heron's formula + * are then performed to obtain the final value: + * y[i] = (y[i-1] + f / y[i-1]) / 2, i = 1, 2, 3. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +double +_DEFUN (sqrt, (double), + double x) +{ + double f, y; + int exp, i, odd; + + /* Check for special values. */ + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + if (ispos (x)) + { + errno = EDOM; + return (z_notanum.d); + } + else + { + errno = ERANGE; + return (z_infinity.d); + } + } + + /* Initial checks are performed here. */ + if (x == 0.0) + return (0.0); + if (x < 0) + { + errno = EDOM; + return (z_notanum.d); + } + + /* Find the exponent and mantissa for the form x = f * 2^exp. */ + f = frexp (x, &exp); + + odd = exp & 1; + + /* Get the initial approximation. */ + y = 0.41731 + 0.59016 * f; + + f /= 2.0; + /* Calculate the remaining iterations. */ + for (i = 0; i < 3; ++i) + y = y / 2.0 + f / y; + + /* Calculate the final value. */ + if (odd) + { + y *= __SQRT_HALF; + exp++; + } + exp >>= 1; + y = ldexp (y, exp); + + return (y); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_tan.c b/newlib/libm/mathfp/s_tan.c new file mode 100644 index 000000000..725aeec26 --- /dev/null +++ b/newlib/libm/mathfp/s_tan.c @@ -0,0 +1,139 @@ + +/* @(#)z_tan.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ + +/* +FUNCTION + <<tan>>, <<tanf>>---tangent + +INDEX +tan +INDEX +tanf + +ANSI_SYNOPSIS + #include <math.h> + double tan(double <[x]>); + float tanf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double tan(<[x]>) + double <[x]>; + + float tanf(<[x]>) + float <[x]>; + + +DESCRIPTION +<<tan>> computes the tangent of the argument <[x]>. +Angles are specified in radians. + +<<tanf>> is identical, save that it takes and returns <<float>> values. + +RETURNS +The tangent of <[x]> is returned. + +PORTABILITY +<<tan>> is ANSI. <<tanf>> is an extension. +*/ + +/****************************************************************** + * Tangent + * + * Input: + * x - floating point value + * + * Output: + * tangent of x + * + * Description: + * This routine calculates the tangent of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double TWO_OVER_PI = 0.63661977236758134308; +static const double p[] = { -0.13338350006421960681, + 0.34248878235890589960e-2, + -0.17861707342254426711e-4 }; +static const double q[] = { -0.46671683339755294240, + 0.25663832289440112864e-1, + -0.31181531907010027307e-3, + 0.49819433993786512270e-6 }; + +double +_DEFUN (tan, (double), + double x) +{ + double y, f, g, XN, xnum, xden, res; + int N; + + /* Check for special values. */ + switch (numtest (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = EDOM; + return (z_notanum.d); + } + + y = fabs (x); + + /* Check for values that are out of our range. */ + if (y > 105414357.0) + { + errno = ERANGE; + return (y); + } + + if (x < 0.0) + N = (int) (x * TWO_OVER_PI - 0.5); + else + N = (int) (x * TWO_OVER_PI + 0.5); + + XN = (double) N; + + f = x - N * __PI_OVER_TWO; + + /* Check for values that are too small. */ + if (-z_rooteps < f && f < z_rooteps) + { + xnum = f; + xden = 1.0; + } + + /* Calculate the polynomial. */ + else + { + g = f * f; + + xnum = f * ((p[2] * g + p[1]) * g + p[0]) * g + f; + xden = (((q[3] * g + q[2]) * g + q[1]) * g + q[0]) * g + 1.0; + } + + if (N & 1) + { + xnum = -xnum; + res = xden / xnum; + } + else + { + res = xnum / xden; + } + + return (res); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/s_tanh.c b/newlib/libm/mathfp/s_tanh.c new file mode 100644 index 000000000..a19855e0b --- /dev/null +++ b/newlib/libm/mathfp/s_tanh.c @@ -0,0 +1,117 @@ + +/* @(#)z_tanh.c 1.0 98/08/13 */ +/***************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + *****************************************************************/ + +/* + +FUNCTION + <<tanh>>, <<tanhf>>---hyperbolic tangent + +INDEX +tanh +INDEX +tanhf + +ANSI_SYNOPSIS + #include <math.h> + double tanh(double <[x]>); + float tanhf(float <[x]>); + +TRAD_SYNOPSIS + #include <math.h> + double tanh(<[x]>) + double <[x]>; + + float tanhf(<[x]>) + float <[x]>; + + +DESCRIPTION + +<<tanh>> computes the hyperbolic tangent of +the argument <[x]>. Angles are specified in radians. + +<<tanh(<[x]>)>> is defined as +. sinh(<[x]>)/cosh(<[x]>) + +<<tanhf>> is identical, save that it takes and returns <<float>> values. + +RETURNS +The hyperbolic tangent of <[x]> is returned. + +PORTABILITY +<<tanh>> is ANSI C. <<tanhf>> is an extension. + +*/ + +/****************************************************************** + * Hyperbolic Tangent + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic tangent of x + * + * Description: + * This routine calculates hyperbolic tangent. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#ifndef _DOUBLE_IS_32BITS + +static const double LN3_OVER2 = 0.54930614433405484570; +static const double p[] = { -0.16134119023996228053e+4, + -0.99225929672236083313e+2, + -0.96437492777225469787 }; +static const double q[] = { 0.48402357071988688686e+4, + 0.22337720718962312926e+4, + 0.11274474380534949335e+3 }; + +double +_DEFUN (tanh, (double), + double x) +{ + double f, res, g, P, Q, R; + + f = fabs (x); + + /* Check if the input is too big. */ + if (f > BIGX) + res = 1.0; + + else if (f > LN3_OVER2) + res = 1.0 - 2.0 / (exp (2 * f) + 1.0); + + /* Check if the input is too small. */ + else if (f < z_rooteps) + res = f; + + /* Calculate the Taylor series. */ + else + { + g = f * f; + + P = (p[2] * g + p[1]) * g + p[0]; + Q = ((g + q[2]) * g + q[1]) * g + q[0]; + R = g * (P / Q); + + res = f + f * R; + } + + if (x < 0.0) + res = -res; + + return (res); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/sf_acos.c b/newlib/libm/mathfp/sf_acos.c new file mode 100644 index 000000000..6bef98041 --- /dev/null +++ b/newlib/libm/mathfp/sf_acos.c @@ -0,0 +1,33 @@ + +/* @(#)z_acosf.c 1.0 98/08/13 */ +/****************************************************************** + * Arccosine + * + * Input: + * x - floating point value + * + * Output: + * arccosine of x + * + * Description: + * This routine returns the arccosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (acosf, (float), + float x) +{ + return (asinef (x, 1)); +} + +#ifdef _DOUBLE_IS_32BITS +double acos (double x) +{ + return (double) asinef ((float) x, 1); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_asin.c b/newlib/libm/mathfp/sf_asin.c new file mode 100644 index 000000000..92c33fda3 --- /dev/null +++ b/newlib/libm/mathfp/sf_asin.c @@ -0,0 +1,34 @@ + +/* @(#)z_asinf.c 1.0 98/08/13 */ +/****************************************************************** + * Arcsine + * + * Input: + * x - floating point value + * + * Output: + * arcsine of x + * + * Description: + * This routine returns the arcsine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (asinf, (float), + float x) +{ + return (asinef (x, 0)); +} + +#ifdef _DOUBLE_IS_32BITS + +double asin (double x) +{ + return (double) asinef ((float) x, 0); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_asine.c b/newlib/libm/mathfp/sf_asine.c new file mode 100644 index 000000000..12ba28927 --- /dev/null +++ b/newlib/libm/mathfp/sf_asine.c @@ -0,0 +1,105 @@ + +/* @(#)z_asinef.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Arcsine + * + * Input: + * x - floating point value + * acosine - indicates acos calculation + * + * Output: + * Arcsine of x. + * + * Description: + * This routine calculates arcsine / arccosine. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +static const float p[] = { 0.933935835, -0.504400557 }; +static const float q[] = { 0.560363004e+1, -0.554846723e+1 }; +static const float a[] = { 0.0, 0.785398163 }; +static const float b[] = { 1.570796326, 0.785398163 }; + +float +_DEFUN (asinef, (float, int), + float x _AND + int acosine) +{ + int flag, i; + int branch = 0; + float g, res, R, P, Q, y; + + /* Check for special values. */ + i = numtestf (x); + if (i == NAN || i == INF) + { + errno = EDOM; + if (i == NAN) + return (x); + else + return (z_infinity_f.f); + } + + y = fabsf (x); + flag = acosine; + + if (y > 0.5) + { + i = 1 - flag; + + /* Check for range error. */ + if (y > 1.0) + { + errno = ERANGE; + return (z_notanum_f.f); + } + + g = (1 - y) / 2.0; + y = -2 * sqrt (g); + branch = 1; + } + else + { + i = flag; + if (y < z_rooteps_f) + res = y; + else + g = y * y; + } + + if (y >= z_rooteps_f || branch == 1) + { + /* Calculate the Taylor series. */ + P = (p[1] * g + p[0]) * g; + Q = (g + q[1]) * g + q[0]; + R = P / Q; + + res = y + y * R; + } + + /* Calculate asine or acose. */ + if (flag == 0) + { + res = (a[i] + res) + a[i]; + if (x < 0.0) + res = -res; + } + else + { + if (x < 0.0) + res = (b[i] + res) + b[i]; + else + res = (a[i] - res) + a[i]; + } + + return (res); +} diff --git a/newlib/libm/mathfp/sf_asinh.c b/newlib/libm/mathfp/sf_asinh.c new file mode 100644 index 000000000..ee07e39f0 --- /dev/null +++ b/newlib/libm/mathfp/sf_asinh.c @@ -0,0 +1,66 @@ +/* sf_asinh.c -- float version of s_asinh.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ +static const float +#else +static float +#endif +one = 1.0000000000e+00, /* 0x3F800000 */ +ln2 = 6.9314718246e-01, /* 0x3f317218 */ +huge= 1.0000000000e+30; + +#ifdef __STDC__ + float asinhf(float x) +#else + float asinhf(x) + float x; +#endif +{ + float t,w; + __int32_t hx,ix; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) return x+x; /* x is inf or NaN */ + if(ix< 0x31800000) { /* |x|<2**-28 */ + if(huge+x>one) return x; /* return x inexact except 0 */ + } + if(ix>0x4d800000) { /* |x| > 2**28 */ + w = logf(fabsf(x))+ln2; + } else if (ix>0x40000000) { /* 2**28 > |x| > 2.0 */ + t = fabsf(x); + w = logf((float)2.0*t+one/(sqrtf(x*x+one)+t)); + } else { /* 2.0 > |x| > 2**-28 */ + t = x*x; + w =log1pf(fabsf(x)+t/(one+sqrtf(one+t))); + } + if(hx>0) return w; else return -w; +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double asinh(double x) +#else + double asinh(x) + double x; +#endif +{ + return (double) asinhf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_atan.c b/newlib/libm/mathfp/sf_atan.c new file mode 100644 index 000000000..26be2fafa --- /dev/null +++ b/newlib/libm/mathfp/sf_atan.c @@ -0,0 +1,45 @@ + +/* @(#)z_atanf.c 1.0 98/08/13 */ +/****************************************************************** + * Arctangent + * + * Input: + * x - floating point value + * + * Output: + * arctan of x + * + * Description: + * This routine returns the arctan of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (atanf, (float), + float x) +{ + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + /* this should check to see if neg NaN or pos NaN... */ + return (__PI_OVER_TWO); + case 0: + return (0.0); + default: + return (atangentf (x, 0, 0, 0)); + } +} + +#ifdef _DOUBLE_IS_32BITS +double atan (double x) +{ + return (double) atangentf ((float) x, 0); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_atan2.c b/newlib/libm/mathfp/sf_atan2.c new file mode 100644 index 000000000..f3237a5e6 --- /dev/null +++ b/newlib/libm/mathfp/sf_atan2.c @@ -0,0 +1,34 @@ + +/* @(#)z_atan2f.c 1.0 98/08/13 */ +/****************************************************************** + * Arctangent2 + * + * Input: + * v, u - floating point values + * + * Output: + * arctan2 of v / u + * + * Description: + * This routine returns the arctan2 of v / u. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (atan2f, (float, float), + float v _AND + float u) +{ + return (atangentf (0.0, v, u, 1)); +} + +#ifdef _DOUBLE_IS_32BITS +double atan2f (double v, double u) +{ + return (double) atangentf (0.0, (float) v, (float) u, 1); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_atangent.c b/newlib/libm/mathfp/sf_atangent.c new file mode 100644 index 000000000..55a90063c --- /dev/null +++ b/newlib/libm/mathfp/sf_atangent.c @@ -0,0 +1,140 @@ + +/* @(#)z_atangentf.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Arctangent + * + * Input: + * x - floating point value + * + * Output: + * arctangent of x + * + * Description: + * This routine calculates arctangents. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +static const float ROOT3 = 1.732050807; +static const float a[] = { 0.0, 0.523598775, 1.570796326, + 1.047197551 }; +static const float q[] = { 0.1412500740e+1 }; +static const float p[] = { -0.4708325141, -0.5090958253e-1 }; + +float +_DEFUN (atangentf, (float, float, float, int), + float x _AND + float v _AND + float u _AND + int arctan2) +{ + float f, g, R, P, Q, A, res; + int N; + int branch = 0; + int expv, expu; + + /* Preparation for calculating arctan2. */ + if (arctan2) + { + if (u == 0.0) + if (v == 0.0) + { + errno = ERANGE; + return (z_notanum_f.f); + } + else + { + branch = 1; + res = __PI_OVER_TWO; + } + + if (!branch) + { + int e; + /* Get the exponent values of the inputs. */ + g = frexpf (v, &expv); + g = frexpf (u, &expu); + + /* See if a divide will overflow. */ + e = expv - expu; + if (e > FLT_MAX_EXP) + { + branch = 1; + res = __PI_OVER_TWO; + } + + /* Also check for underflow. */ + else if (e < FLT_MIN_EXP) + { + branch = 2; + res = 0.0; + } + } + } + + if (!branch) + { + if (arctan2) + f = fabsf (v / u); + else + f = fabsf (x); + + if (f > 1.0) + { + f = 1.0 / f; + N = 2; + } + else + N = 0; + + if (f > (2.0 - ROOT3)) + { + A = ROOT3 - 1.0; + f = (((A * f - 0.5) - 0.5) + f) / (ROOT3 + f); + N++; + } + + /* Check for values that are too small. */ + if (-z_rooteps_f < f && f < z_rooteps_f) + res = f; + + /* Calculate the Taylor series. */ + else + { + g = f * f; + P = (p[1] * g + p[0]) * g; + Q = g + q[0]; + R = P / Q; + + res = f + f * R; + } + + if (N > 1) + res = -res; + + res += a[N]; + } + + if (arctan2) + { + if (u < 0.0 || branch == 2) + res = __PI - res; + if (v < 0.0 || branch == 1) + res = -res; + } + else if (x < 0.0) + { + res = -res; + } + + return (res); +} diff --git a/newlib/libm/mathfp/sf_ceil.c b/newlib/libm/mathfp/sf_ceil.c new file mode 100644 index 000000000..bc8e1403b --- /dev/null +++ b/newlib/libm/mathfp/sf_ceil.c @@ -0,0 +1,42 @@ + +/* @(#)z_ceilf.c 1.0 98/08/13 */ +/***************************************************************** + * ceil + * + * Input: + * x - floating point value + * + * Output: + * Smallest integer greater than x. + * + * Description: + * This routine returns the smallest integer greater than x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (ceilf, (float), + float x) +{ + float f, y; + + y = modff (x, &f); + + if (y == 0.0) + return (x); + else if (x > -1.0 && x < 1.0) + return (x > 0 ? 1.0 : 0.0); + else + return (x > 0 ? f + 1.0 : f); +} + +#ifdef _DOUBLE_IS_32BITS +double ceil (double x) +{ + return (double) ceilf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_cos.c b/newlib/libm/mathfp/sf_cos.c new file mode 100644 index 000000000..057663e69 --- /dev/null +++ b/newlib/libm/mathfp/sf_cos.c @@ -0,0 +1,34 @@ + +/* @(#)z_cosf.c 1.0 98/08/13 */ +/****************************************************************** + * Cosine + * + * Input: + * x - floating point value + * + * Output: + * cosine of x + * + * Description: + * This routine returns the cosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (cosf, (float), + float x) +{ + return (sinef (x, 1)); +} + +#ifdef _DOUBLE_IS_32BITS + +double cos (double x) +{ + return (double) sinef ((float) x, 1); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_cosh.c b/newlib/libm/mathfp/sf_cosh.c new file mode 100644 index 000000000..4635b7144 --- /dev/null +++ b/newlib/libm/mathfp/sf_cosh.c @@ -0,0 +1,33 @@ + +/* @(#)z_coshf.c 1.0 98/08/13 */ +/****************************************************************** + * Hyperbolic Cosine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic cosine of x + * + * Description: + * This routine returns the hyperbolic cosine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (coshf, (float), + float x) +{ + return (sinehf (x, 1)); +} + +#ifdef _DOUBLE_IS_32BITS +double cosh (double x) +{ + return (double) sinehf ((float) x, 1); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_erf.c b/newlib/libm/mathfp/sf_erf.c new file mode 100644 index 000000000..aa209f65a --- /dev/null +++ b/newlib/libm/mathfp/sf_erf.c @@ -0,0 +1,246 @@ +/* sf_erf.c -- float version of s_erf.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __v810__ +#define const +#endif + +#ifdef __STDC__ +static const float +#else +static float +#endif +tiny = 1e-30, +half= 5.0000000000e-01, /* 0x3F000000 */ +one = 1.0000000000e+00, /* 0x3F800000 */ +two = 2.0000000000e+00, /* 0x40000000 */ + /* c = (subfloat)0.84506291151 */ +erx = 8.4506291151e-01, /* 0x3f58560b */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +efx = 1.2837916613e-01, /* 0x3e0375d4 */ +efx8= 1.0270333290e+00, /* 0x3f8375d4 */ +pp0 = 1.2837916613e-01, /* 0x3e0375d4 */ +pp1 = -3.2504209876e-01, /* 0xbea66beb */ +pp2 = -2.8481749818e-02, /* 0xbce9528f */ +pp3 = -5.7702702470e-03, /* 0xbbbd1489 */ +pp4 = -2.3763017452e-05, /* 0xb7c756b1 */ +qq1 = 3.9791721106e-01, /* 0x3ecbbbce */ +qq2 = 6.5022252500e-02, /* 0x3d852a63 */ +qq3 = 5.0813062117e-03, /* 0x3ba68116 */ +qq4 = 1.3249473704e-04, /* 0x390aee49 */ +qq5 = -3.9602282413e-06, /* 0xb684e21a */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +pa0 = -2.3621185683e-03, /* 0xbb1acdc6 */ +pa1 = 4.1485610604e-01, /* 0x3ed46805 */ +pa2 = -3.7220788002e-01, /* 0xbebe9208 */ +pa3 = 3.1834661961e-01, /* 0x3ea2fe54 */ +pa4 = -1.1089469492e-01, /* 0xbde31cc2 */ +pa5 = 3.5478305072e-02, /* 0x3d1151b3 */ +pa6 = -2.1663755178e-03, /* 0xbb0df9c0 */ +qa1 = 1.0642088205e-01, /* 0x3dd9f331 */ +qa2 = 5.4039794207e-01, /* 0x3f0a5785 */ +qa3 = 7.1828655899e-02, /* 0x3d931ae7 */ +qa4 = 1.2617121637e-01, /* 0x3e013307 */ +qa5 = 1.3637083583e-02, /* 0x3c5f6e13 */ +qa6 = 1.1984500103e-02, /* 0x3c445aa3 */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +ra0 = -9.8649440333e-03, /* 0xbc21a093 */ +ra1 = -6.9385856390e-01, /* 0xbf31a0b7 */ +ra2 = -1.0558626175e+01, /* 0xc128f022 */ +ra3 = -6.2375331879e+01, /* 0xc2798057 */ +ra4 = -1.6239666748e+02, /* 0xc322658c */ +ra5 = -1.8460508728e+02, /* 0xc3389ae7 */ +ra6 = -8.1287437439e+01, /* 0xc2a2932b */ +ra7 = -9.8143291473e+00, /* 0xc11d077e */ +sa1 = 1.9651271820e+01, /* 0x419d35ce */ +sa2 = 1.3765776062e+02, /* 0x4309a863 */ +sa3 = 4.3456588745e+02, /* 0x43d9486f */ +sa4 = 6.4538726807e+02, /* 0x442158c9 */ +sa5 = 4.2900814819e+02, /* 0x43d6810b */ +sa6 = 1.0863500214e+02, /* 0x42d9451f */ +sa7 = 6.5702495575e+00, /* 0x40d23f7c */ +sa8 = -6.0424413532e-02, /* 0xbd777f97 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +rb0 = -9.8649431020e-03, /* 0xbc21a092 */ +rb1 = -7.9928326607e-01, /* 0xbf4c9dd4 */ +rb2 = -1.7757955551e+01, /* 0xc18e104b */ +rb3 = -1.6063638306e+02, /* 0xc320a2ea */ +rb4 = -6.3756646729e+02, /* 0xc41f6441 */ +rb5 = -1.0250950928e+03, /* 0xc480230b */ +rb6 = -4.8351919556e+02, /* 0xc3f1c275 */ +sb1 = 3.0338060379e+01, /* 0x41f2b459 */ +sb2 = 3.2579251099e+02, /* 0x43a2e571 */ +sb3 = 1.5367296143e+03, /* 0x44c01759 */ +sb4 = 3.1998581543e+03, /* 0x4547fdbb */ +sb5 = 2.5530502930e+03, /* 0x451f90ce */ +sb6 = 4.7452853394e+02, /* 0x43ed43a7 */ +sb7 = -2.2440952301e+01; /* 0xc1b38712 */ + +#ifdef __STDC__ + float erff(float x) +#else + float erff(x) + float x; +#endif +{ + __int32_t hx,ix,i; + float R,S,P,Q,s,y,z,r; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) { /* erf(nan)=nan */ + i = ((__uint32_t)hx>>31)<<1; + return (float)(1-i)+one/x; /* erf(+-inf)=+-1 */ + } + + if(ix < 0x3f580000) { /* |x|<0.84375 */ + if(ix < 0x31800000) { /* |x|<2**-28 */ + if (ix < 0x04000000) + /*avoid underflow */ + return (float)0.125*((float)8.0*x+efx8*x); + return x + efx*x; + } + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + return x + x*y; + } + if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ + s = fabsf(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) return erx + P/Q; else return -erx - P/Q; + } + if (ix >= 0x40c00000) { /* inf>|x|>=6 */ + if(hx>=0) return one-tiny; else return tiny-one; + } + x = fabsf(x); + s = one/(x*x); + if(ix< 0x4036DB6E) { /* |x| < 1/0.35 */ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/0.35 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(z,ix&0xfffff000); + r = expf(-z*z-(float)0.5625)*expf((z-x)*(z+x)+R/S); + if(hx>=0) return one-r/x; else return r/x-one; +} + +#ifdef __STDC__ + float erfcf(float x) +#else + float erfcf(x) + float x; +#endif +{ + __int32_t hx,ix; + float R,S,P,Q,s,y,z,r; + GET_FLOAT_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7f800000) { /* erfc(nan)=nan */ + /* erfc(+-inf)=0,2 */ + return (float)(((__uint32_t)hx>>31)<<1)+one/x; + } + + if(ix < 0x3f580000) { /* |x|<0.84375 */ + if(ix < 0x23800000) /* |x|<2**-56 */ + return one-x; + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + if(hx < 0x3e800000) { /* x<1/4 */ + return one-(x+x*y); + } else { + r = x*y; + r += (x-half); + return half - r ; + } + } + if(ix < 0x3fa00000) { /* 0.84375 <= |x| < 1.25 */ + s = fabsf(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) { + z = one-erx; return z - P/Q; + } else { + z = erx+P/Q; return one+z; + } + } + if (ix < 0x41e00000) { /* |x|<28 */ + x = fabsf(x); + s = one/(x*x); + if(ix< 0x4036DB6D) { /* |x| < 1/.35 ~ 2.857143*/ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/.35 ~ 2.857143 */ + if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + GET_FLOAT_WORD(ix,x); + SET_FLOAT_WORD(z,ix&0xfffff000); + r = expf(-z*z-(float)0.5625)* + expf((z-x)*(z+x)+R/S); + if(hx>0) return r/x; else return two-r/x; + } else { + if(hx>0) return tiny*tiny; else return two-tiny; + } +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double erf(double x) +#else + double erf(x) + double x; +#endif +{ + return (double) erff((float) x); +} + +#ifdef __STDC__ + double erfc(double x) +#else + double erfc(x) + double x; +#endif +{ + return (double) erfcf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_exp.c b/newlib/libm/mathfp/sf_exp.c new file mode 100644 index 000000000..45d9c31fc --- /dev/null +++ b/newlib/libm/mathfp/sf_exp.c @@ -0,0 +1,92 @@ + +/* @(#)z_expf.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Exponential Function + * + * Input: + * x - floating point value + * + * Output: + * e raised to x. + * + * Description: + * This routine returns e raised to the xth power. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +static const float INV_LN2 = 1.442695040; +static const float LN2 = 0.693147180; +static const float p[] = { 0.249999999950, 0.00416028863 }; +static const float q[] = { 0.5, 0.04998717878 }; + +float +_DEFUN (expf, (float), + float x) +{ + int N; + float g, z, R, P, Q; + + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + if (isposf (x)) + return (z_infinity_f.f); + else + return (0.0); + case 0: + return (1.0); + } + + /* Check for out of bounds. */ + if (x > BIGX || x < SMALLX) + { + errno = ERANGE; + return (x); + } + + /* Check for a value too small to calculate. */ + if (-z_rooteps_f < x && x < z_rooteps_f) + { + return (1.0); + } + + /* Calculate the exponent. */ + if (x < 0.0) + N = (int) (x * INV_LN2 - 0.5); + else + N = (int) (x * INV_LN2 + 0.5); + + /* Construct the mantissa. */ + g = x - N * LN2; + z = g * g; + P = g * (p[1] * z + p[0]); + Q = q[1] * z + q[0]; + R = 0.5 + P / (Q - P); + + /* Return the floating point value. */ + N++; + return (ldexpf (R, N)); +} + +#ifdef _DOUBLE_IS_32_BITS + +double exp (double x) +{ + return (double) expf ((float) x); +} + +#endif /* _DOUBLE_IS_32_BITS */ diff --git a/newlib/libm/mathfp/sf_fabs.c b/newlib/libm/mathfp/sf_fabs.c new file mode 100644 index 000000000..2661eabc0 --- /dev/null +++ b/newlib/libm/mathfp/sf_fabs.c @@ -0,0 +1,45 @@ + +/* @(#)z_fabsf.c 1.0 98/08/13 */ +/****************************************************************** + * Floating-Point Absolute Value + * + * Input: + * x - floating-point number + * + * Output: + * absolute value of x + * + * Description: + * fabs computes the absolute value of a floating point number. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (fabsf, (float), + float x) +{ + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + return (x); + case 0: + return (0.0); + default: + return (x < 0.0 ? -x : x); + } +} + +#ifdef _DOUBLE_IS_32BITS +double fabs (double x) +{ + return (double) fabsf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_floor.c b/newlib/libm/mathfp/sf_floor.c new file mode 100644 index 000000000..1e0fb9e44 --- /dev/null +++ b/newlib/libm/mathfp/sf_floor.c @@ -0,0 +1,43 @@ + +/* @(#)z_floorf.c 1.0 98/08/13 */ +/***************************************************************** + * floor + * + * Input: + * x - floating point value + * + * Output: + * Smallest integer less than x. + * + * Description: + * This routine returns the smallest integer less than x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (floorf, (float), + float x) +{ + float f, y; + + if (x > -1.0 && x < 1.0) + return (x >= 0 ? 0 : -1.0); + + y = modff (x, &f); + + if (y == 0.0) + return (x); + + return (x >= 0 ? f : f - 1.0); +} + +#ifdef _DOUBLE_IS_32BITS +double floor (double x) +{ + return (double) floorf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_fmod.c b/newlib/libm/mathfp/sf_fmod.c new file mode 100644 index 000000000..0ac86bbef --- /dev/null +++ b/newlib/libm/mathfp/sf_fmod.c @@ -0,0 +1,103 @@ +/* ef_fmod.c -- float version of e_fmod.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* + * fmodf(x,y) + * Return x mod y in exact arithmetic + * Method: shift and subtract + */ + +#include "fdlibm.h" +#include "zmath.h" + +static const float one = 1.0, Zero[] = {0.0, -0.0,}; + +float +_DEFUN (fmodf, (float, float), + float x _AND + float y) +{ + __int32_t n,hx,hy,hz,ix,iy,sx,i; + + GET_FLOAT_WORD(hx,x); + GET_FLOAT_WORD(hy,y); + sx = hx&0x80000000; /* sign of x */ + hx ^=sx; /* |x| */ + hy &= 0x7fffffff; /* |y| */ + + /* purge off exception values */ + if(hy==0||(hx>=0x7f800000)|| /* y=0,or x not finite */ + (hy>0x7f800000)) /* or y is NaN */ + return (x*y)/(x*y); + if(hx<hy) return x; /* |x|<|y| return x */ + if(hx==hy) + return Zero[(__uint32_t)sx>>31]; /* |x|=|y| return x*0*/ + + /* determine ix = ilogb(x) */ + if(hx<0x00800000) { /* subnormal x */ + for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1; + } else ix = (hx>>23)-127; + + /* determine iy = ilogb(y) */ + if(hy<0x00800000) { /* subnormal y */ + for (iy = -126,i=(hy<<8); i>=0; i<<=1) iy -=1; + } else iy = (hy>>23)-127; + + /* set up {hx,lx}, {hy,ly} and align y to x */ + if(ix >= -126) + hx = 0x00800000|(0x007fffff&hx); + else { /* subnormal x, shift x to normal */ + n = -126-ix; + hx = hx<<n; + } + if(iy >= -126) + hy = 0x00800000|(0x007fffff&hy); + else { /* subnormal y, shift y to normal */ + n = -126-iy; + hy = hy<<n; + } + + /* fix point fmod */ + n = ix - iy; + while(n--) { + hz=hx-hy; + if(hz<0){hx = hx+hx;} + else { + if(hz==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + hx = hz+hz; + } + } + hz=hx-hy; + if(hz>=0) {hx=hz;} + + /* convert back to floating value and restore the sign */ + if(hx==0) /* return sign(x)*0 */ + return Zero[(__uint32_t)sx>>31]; + while(hx<0x00800000) { /* normalize x */ + hx = hx+hx; + iy -= 1; + } + if(iy>= -126) { /* normalize output */ + hx = ((hx-0x00800000)|((iy+127)<<23)); + SET_FLOAT_WORD(x,hx|sx); + } else { /* subnormal output */ + n = -126 - iy; + hx >>= n; + SET_FLOAT_WORD(x,hx|sx); + x *= one; /* create necessary signal */ + } + return x; /* exact output */ +} diff --git a/newlib/libm/mathfp/sf_frexp.c b/newlib/libm/mathfp/sf_frexp.c new file mode 100644 index 000000000..c2751f65c --- /dev/null +++ b/newlib/libm/mathfp/sf_frexp.c @@ -0,0 +1,58 @@ + +/* @(#)z_frexpf.c 1.0 98/08/13 */ +/****************************************************************** + * frexp + * + * Input: + * d - floating point value + * exp - exponent value + * + * Output: + * A floating point value in the range [0.5, 1). + * + * Description: + * This routine breaks a floating point value into a number f and + * an exponent exp such that d = f * 2 ^ exp. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float frexpf (float d, int *exp) +{ + float f; + __int32_t wf, wd; + + GET_FLOAT_WORD (wd, d); + + /* Get the exponent. */ + *exp = ((wd & 0x7f800000) >> 23) - 126; + + /* Get the mantissa. */ + wf = wd & 0x7fffff; + wf |= 0x3f000000; + + SET_FLOAT_WORD (f, wf); + + /* Check for special values. */ + switch (numtestf (f)) + { + case NAN: + case INF: + errno = EDOM; + *exp = 0; + return (f); + } + + return (f); +} + +#ifdef _DOUBLE_IS_32BITS + +double frexp (double x, int *exp) +{ + return (double) frexpf ((float) x, exp); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_isinf.c b/newlib/libm/mathfp/sf_isinf.c new file mode 100644 index 000000000..5d537607a --- /dev/null +++ b/newlib/libm/mathfp/sf_isinf.c @@ -0,0 +1,33 @@ + +/* @(#)z_isinff.c 1.0 98/08/13 */ +/****************************************************************** + * isinff + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates if the number is infinite. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is infinite (1) or is finite (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +int isinff (float x) +{ + __uint32_t wx; + int exp; + + GET_FLOAT_WORD (wx, x); + exp = (wx & 0x7f800000) >> 23; + + if ((exp == 0x7f8) && !(wx & 0xf0000)) + return (1); + else + return (0); +} diff --git a/newlib/libm/mathfp/sf_isnan.c b/newlib/libm/mathfp/sf_isnan.c new file mode 100644 index 000000000..3dcdbf452 --- /dev/null +++ b/newlib/libm/mathfp/sf_isnan.c @@ -0,0 +1,33 @@ + +/* @(#)z_isnanf.c 1.0 98/08/13 */ +/****************************************************************** + * isnanf + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates if the number is NaN. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is NaN (1) or is finite (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +int isnanf (float x) +{ + __int32_t wx; + int exp; + + GET_FLOAT_WORD (wx, x); + exp = (wx & 0x7f800000) >> 23; + + if ((exp == 0x7f8) && (wx & 0x7fffff)) + return (1); + else + return (0); +} diff --git a/newlib/libm/mathfp/sf_ispos.c b/newlib/libm/mathfp/sf_ispos.c new file mode 100644 index 000000000..1b91f399f --- /dev/null +++ b/newlib/libm/mathfp/sf_ispos.c @@ -0,0 +1,40 @@ + +/* @(#)z_isposf.c 1.0 98/08/13 */ +/****************************************************************** + * Positive value test + * + * Input: + * x - floating point value + * + * Output: + * An integer that indicates if the number is positive. + * + * Description: + * This routine returns an integer that indicates if the number + * passed in is positive (1) or negative (0). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +int isposf (float x) +{ + __int32_t wx; + + GET_FLOAT_WORD (wx, x); + + if (wx & 0x80000000) + return (0); + else + return (1); +} + +#ifdef _DOUBLE_IS_32BITS + +int ispos (double x) +{ + return isposf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_ldexp.c b/newlib/libm/mathfp/sf_ldexp.c new file mode 100644 index 000000000..6b6c2c00b --- /dev/null +++ b/newlib/libm/mathfp/sf_ldexp.c @@ -0,0 +1,81 @@ + +/* @(#)z_ldexpf.c 1.0 98/08/13 */ +/****************************************************************** + * ldexp + * + * Input: + * d - a floating point value + * e - an exponent value + * + * Output: + * A floating point value f such that f = d * 2 ^ e. + * + * Description: + * This function creates a floating point number f such that + * f = d * 2 ^ e. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +#define FLOAT_EXP_OFFS 127 + +float +_DEFUN (ldexpf, (float, int), + float d _AND + int e) +{ + int exp; + __int32_t wd; + + GET_FLOAT_WORD (wd, d); + + /* Check for special values and then scale d by e. */ + switch (numtestf (wd)) + { + case NAN: + errno = EDOM; + break; + + case INF: + errno = ERANGE; + break; + + case 0: + break; + + default: + exp = (wd & 0x7f800000) >> 23; + exp += e; + + if (exp > FLT_MAX_EXP + FLOAT_EXP_OFFS) + { + errno = ERANGE; + d = z_infinity_f.f; + } + else if (exp < FLT_MIN_EXP + FLOAT_EXP_OFFS) + { + errno = ERANGE; + d = -z_infinity_f.f; + } + else + { + wd &= 0x807fffff; + wd |= exp << 23; + SET_FLOAT_WORD (d, wd); + } + } + + return (d); +} + +#ifdef _DOUBLE_IS_32BITS + +double ldexp (double x, int e) +{ + return (double) ldexpf ((float) x, e); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_log.c b/newlib/libm/mathfp/sf_log.c new file mode 100644 index 000000000..b746d444f --- /dev/null +++ b/newlib/libm/mathfp/sf_log.c @@ -0,0 +1,34 @@ + +/* @(#)z_logf.c 1.0 98/08/13 */ +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * + * Output: + * natural logarithm of x + * + * Description: + * This routine returns the natural logarithm of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (logf, (float), + float x) +{ + return (logarithmf (x, 0)); +} + +#ifdef _DOUBLE_IS_32BITS + +double log (double x) +{ + return (double) logf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_log10.c b/newlib/libm/mathfp/sf_log10.c new file mode 100644 index 000000000..444e535e0 --- /dev/null +++ b/newlib/libm/mathfp/sf_log10.c @@ -0,0 +1,34 @@ + +/* @(#)z_log10f.c 1.0 98/08/13 */ +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * + * Output: + * logarithm of x + * + * Description: + * This routine returns the logarithm of x (base 10). + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (log10f, (float), + float x) +{ + return (logarithmf (x, 1)); +} + +#ifdef _DOUBLE_IS_32BITS + +double log10 (double x) +{ + return (double) log10f ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_logarithm.c b/newlib/libm/mathfp/sf_logarithm.c new file mode 100644 index 000000000..224482f13 --- /dev/null +++ b/newlib/libm/mathfp/sf_logarithm.c @@ -0,0 +1,72 @@ + +/* @(#)z_logarithmf.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Logarithm + * + * Input: + * x - floating point value + * ten - indicates base ten numbers + * + * Output: + * logarithm of x + * + * Description: + * This routine calculates logarithms. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +static const float a[] = { -0.5527074855 }; +static const float b[] = { -0.6632718214e+1 }; +static const float C1 = 0.693145752; +static const float C2 = 1.428606820e-06; +static const float C3 = 0.4342944819; + +float +_DEFUN (logarithmf, (float, int), + float x _AND + int ten) +{ + int N; + float f, w, z; + + /* Check for domain error here. */ + if (x <= 0.0) + { + errno = ERANGE; + return (z_notanum_f.f); + } + + /* Get the exponent and mantissa where x = f * 2^N. */ + f = frexpf (x, &N); + + z = f - 0.5; + + if (f > __SQRT_HALF) + z = (z - 0.5) / (f * 0.5 + 0.5); + else + { + N--; + z /= (z * 0.5 + 0.5); + } + w = z * z; + + /* Use Newton's method with 4 terms. */ + z += z * w * (a[0]) / ((w + 1.0) * w + b[0]); + + if (N != 0) + z = (N * C2 + z) + N * C1; + + if (ten) + z *= C3; + + return (z); +} diff --git a/newlib/libm/mathfp/sf_numtest.c b/newlib/libm/mathfp/sf_numtest.c new file mode 100644 index 000000000..675086c41 --- /dev/null +++ b/newlib/libm/mathfp/sf_numtest.c @@ -0,0 +1,63 @@ + +/* @(#)z_numtestf.c 1.0 98/08/13 */ +/****************************************************************** + * Numtest + * + * Input: + * x - pointer to a floating point value + * + * Output: + * An integer that indicates what kind of number was passed in: + * NUM = 3 - a finite value + * NAN = 2 - not a number + * INF = 1 - an infinite value + * 0 - zero + * + * Description: + * This routine returns an integer that indicates the character- + * istics of the number that was passed in. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +int +_DEFUN (numtestf, (float), + float x) +{ + __int32_t wx; + int exp; + + GET_FLOAT_WORD (wx, x); + + exp = (wx & 0x7f800000) >> 23; + + /* Check for a zero input. */ + if (x == 0.0) + { + return (0); + } + + /* Check for not a number or infinity. */ + if (exp == 0x7f8) + { + if(wx & 0x7fffff) + return (NAN); + else + return (INF); + } + + /* Otherwise it's a finite value. */ + else + return (NUM); +} + +#ifdef _DOUBLE_IS_32BITS + +int numtest (double x) +{ + return numtestf ((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_pow.c b/newlib/libm/mathfp/sf_pow.c new file mode 100644 index 000000000..2b3bed3c7 --- /dev/null +++ b/newlib/libm/mathfp/sf_pow.c @@ -0,0 +1,107 @@ + +/* @(#)z_powf.c 1.0 98/08/13 */ +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +float powf (float x, float y) +{ + float d, t, r = 1.0; + int n, k, sign = 0; + __int32_t px; + + GET_FLOAT_WORD (px, x); + + k = modff (y, &d); + if (k == 0.0) + { + if (modff (ldexpf (y, -1), &t)) + sign = 0; + else + sign = 1; + } + + if (x == 0.0 && y <= 0.0) + errno = EDOM; + + else if ((t = y * log (fabsf (x))) >= BIGX) + { + errno = ERANGE; + if (px & 0x80000000) + { + if (!k) + { + errno = EDOM; + x = 0.0; + } + else if (sign) + x = -z_infinity_f.f; + else + x = z_infinity_f.f; + } + + else + x = z_infinity_f.f; + } + + else if (t < SMALLX) + { + errno = ERANGE; + x = 0.0; + } + + else + { + if ( k && fabsf (d) <= 32767 ) + { + n = (int) d; + + if (sign = (n < 0)) + n = -n; + + while ( n > 0 ) + { + if ((unsigned int) n % 2) + r *= x; + x *= x; + n = (unsigned int) n / 2; + } + + if (sign) + r = 1.0 / r; + + return r; + } + + else + { + if ( px & 0x80000000 ) + { + if ( !k ) + { + errno = EDOM; + return 0.0; + } + } + + x = exp (t); + + if ( sign ) + { + px ^= 0x80000000; + SET_FLOAT_WORD (x, px); + } + } + } + + return x; +} + +#ifdef _DOUBLE_IS_32BITS + +double pow (double x, double y) +{ + return (double) powf ((float) x, (float) y); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_signif.c b/newlib/libm/mathfp/sf_signif.c new file mode 100644 index 000000000..35427f947 --- /dev/null +++ b/newlib/libm/mathfp/sf_signif.c @@ -0,0 +1,40 @@ +/* sf_signif.c -- float version of s_signif.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" + +#ifdef __STDC__ + float significandf(float x) +#else + float significandf(x) + float x; +#endif +{ + return scalbf(x,(float) -ilogbf(x)); +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double significand(double x) +#else + double significand(x) + double x; +#endif +{ + return (double) significandf((float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_sin.c b/newlib/libm/mathfp/sf_sin.c new file mode 100644 index 000000000..c68e18e50 --- /dev/null +++ b/newlib/libm/mathfp/sf_sin.c @@ -0,0 +1,34 @@ + +/* @(#)z_sinf.c 1.0 98/08/13 */ +/****************************************************************** + * Sine + * + * Input: + * x - floating point value + * + * Output: + * sine of x + * + * Description: + * This routine returns the sine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (sinf, (float), + float x) +{ + return (sinef (x, 0)); +} + +#ifdef _DOUBLE_IS_32BITS + +double sin (double x) +{ + return (double) sinef ((float) x, 0); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/sf_sine.c b/newlib/libm/mathfp/sf_sine.c new file mode 100644 index 000000000..6932de26c --- /dev/null +++ b/newlib/libm/mathfp/sf_sine.c @@ -0,0 +1,112 @@ + +/* @(#)z_sinef.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * sine generator + * + * Input: + * x - floating point value + * cosine - indicates cosine value + * + * Output: + * Sine of x. + * + * Description: + * This routine calculates sines and cosines. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +static const float HALF_PI = 1.570796326; +static const float ONE_OVER_PI = 0.318309886; +static const float r[] = { -0.1666665668, + 0.8333025139e-02, + -0.1980741872e-03, + 0.2601903036e-5 }; + +float +_DEFUN (sinef, (float, int), + float x _AND + int cosine) +{ + int sgn, N; + float y, XN, g, R, res; + float YMAX = 210828714.0; + + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = EDOM; + return (z_notanum_f.f); + } + + /* Use sin and cos properties to ease computations. */ + if (cosine) + { + sgn = 1; + y = fabsf (x) + HALF_PI; + } + else + { + if (x < 0.0) + { + sgn = -1; + y = -x; + } + else + { + sgn = 1; + y = x; + } + } + + /* Check for values of y that will overflow here. */ + if (y > YMAX) + { + errno = ERANGE; + return (x); + } + + /* Calculate the exponent. */ + if (y < 0.0) + N = (int) (y * ONE_OVER_PI - 0.5); + else + N = (int) (y * ONE_OVER_PI + 0.5); + XN = (float) N; + + if (N & 1) + sgn = -sgn; + + if (cosine) + XN -= 0.5; + + y = fabsf (x) - XN * __PI; + + if (-z_rooteps_f < y && y < z_rooteps_f) + res = y; + + else + { + g = y * y; + + /* Calculate the Taylor series. */ + R = (((r[3] * g + r[2]) * g + r[1]) * g + r[0]) * g; + + /* Finally, compute the result. */ + res = y + y * R; + } + + res *= sgn; + + return (res); +} diff --git a/newlib/libm/mathfp/sf_sineh.c b/newlib/libm/mathfp/sf_sineh.c new file mode 100644 index 000000000..4eee2c927 --- /dev/null +++ b/newlib/libm/mathfp/sf_sineh.c @@ -0,0 +1,110 @@ + +/* @(#)z_sinehf.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Hyperbolic Sine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic sine of x + * + * Description: + * This routine calculates hyperbolic sines. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +static const float q[] = { -0.428277109e+2 }; +static const float p[] = { -0.713793159e+1, + -0.190333399 }; +static const float LNV = 0.6931610107; +static const float INV_V2 = 0.2499930850; +static const float V_OVER2_MINUS1 = 0.1383027787e-4; + +float +_DEFUN (sinehf, (float, int), + float x _AND + int cosineh) +{ + float y, f, P, Q, R, res, z, w; + int sgn = 1; + float WBAR = 18.55; + + /* Check for special values. */ + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = ERANGE; + return (ispos (x) ? z_infinity_f.f : -z_infinity_f.f); + } + + y = fabs (x); + + if (!cosineh && x < 0.0) + sgn = -1; + + if ((y > 1.0 && !cosineh) || cosineh) + { + if (y > BIGX) + { + w = y - LNV; + + /* Check for w > maximum here. */ + if (w > BIGX) + { + errno = ERANGE; + return (x); + } + + z = exp (w); + + if (w > WBAR) + res = z * (V_OVER2_MINUS1 + 1.0); + } + + else + { + z = exp (y); + if (cosineh) + res = (z + 1 / z) / 2.0; + else + res = (z - 1 / z) / 2.0; + } + + if (sgn < 0) + res = -res; + } + else + { + /* Check for y being too small. */ + if (y < z_rooteps_f) + { + res = x; + } + /* Calculate the Taylor series. */ + else + { + f = x * x; + Q = f + q[0]; + P = p[1] * f + p[0]; + R = f * (P / Q); + + res = x + x * R; + } + } + + return (res); +} diff --git a/newlib/libm/mathfp/sf_sinh.c b/newlib/libm/mathfp/sf_sinh.c new file mode 100644 index 000000000..a50e56606 --- /dev/null +++ b/newlib/libm/mathfp/sf_sinh.c @@ -0,0 +1,34 @@ + +/* @(#)z_sinhf.c 1.0 98/08/13 */ +/****************************************************************** + * Hyperbolic Sine + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic sine of x + * + * Description: + * This routine returns the hyperbolic sine of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (sinhf, (float), + float x) +{ + return (sinehf (x, 0)); +} + +#ifdef _DOUBLE_IS_32BITS + +double sinh (double x) +{ + return (double) sinhf ((float) x); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/sf_sqrt.c b/newlib/libm/mathfp/sf_sqrt.c new file mode 100644 index 000000000..04fa07f6a --- /dev/null +++ b/newlib/libm/mathfp/sf_sqrt.c @@ -0,0 +1,100 @@ + +/* @(#)z_sqrtf.c 1.0 98/08/13 */ +/***************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + *****************************************************************/ +/****************************************************************** + * Square Root + * + * Input: + * x - floating point value + * + * Output: + * square-root of x + * + * Description: + * This routine performs floating point square root. + * + * The initial approximation is computed as + * y0 = 0.41731 + 0.59016 * f + * where f is a fraction such that x = f * 2^exp. + * + * Three Newton iterations in the form of Heron's formula + * are then performed to obtain the final value: + * y[i] = (y[i-1] + f / y[i-1]) / 2, i = 1, 2, 3. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +float +_DEFUN (sqrtf, (float), + float x) +{ + float f, y; + int exp, i, odd; + + /* Check for special values. */ + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + if (isposf (x)) + { + errno = EDOM; + return (z_notanum_f.f); + } + else + { + errno = ERANGE; + return (z_infinity_f.f); + } + } + + /* Initial checks are performed here. */ + if (x == 0.0) + return (0.0); + if (x < 0) + { + errno = EDOM; + return (z_notanum_f.f); + } + + /* Find the exponent and mantissa for the form x = f * 2^exp. */ + f = frexpf (x, &exp); + odd = exp & 1; + + /* Get the initial approximation. */ + y = 0.41731 + 0.59016 * f; + + f *= 0.5; + /* Calculate the remaining iterations. */ + for (i = 0; i < 2; ++i) + y = y * 0.5 + f / y; + + /* Calculate the final value. */ + if (odd) + { + y *= __SQRT_HALF; + exp++; + } + exp >>= 1; + y = ldexpf (y, exp); + + return (y); +} + +#ifdef _DOUBLE_IS_32BITS + +double sqrt (double x) +{ + return (double) sqrt ((float) x); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/sf_tan.c b/newlib/libm/mathfp/sf_tan.c new file mode 100644 index 000000000..fcde19ab3 --- /dev/null +++ b/newlib/libm/mathfp/sf_tan.c @@ -0,0 +1,104 @@ + +/* @(#)z_tanf.c 1.0 98/08/13 */ +/****************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + ******************************************************************/ +/****************************************************************** + * Tangent + * + * Input: + * x - floating point value + * + * Output: + * tangent of x + * + * Description: + * This routine calculates the tangent of x. + * + *****************************************************************/ + +#include "fdlibm.h" +#include "zmath.h" + +static const float TWO_OVER_PI = 0.6366197723; +static const float p[] = { -0.958017723e-1 }; +static const float q[] = { -0.429135777, + 0.971685835e-2 }; + +float +_DEFUN (tanf, (float), + float x) +{ + float y, f, g, XN, xnum, xden, res; + int N; + + /* Check for special values. */ + switch (numtestf (x)) + { + case NAN: + errno = EDOM; + return (x); + case INF: + errno = EDOM; + return (z_notanum_f.f); + } + + y = fabsf (x); + + /* Check for values that are out of our range. */ + if (y > 105414357.0) + { + errno = ERANGE; + return (y); + } + + if (x < 0.0) + N = (int) (x * TWO_OVER_PI - 0.5); + else + N = (int) (x * TWO_OVER_PI + 0.5); + + XN = (float) N; + + f = x - N * __PI_OVER_TWO; + + /* Check for values that are too small. */ + if (-z_rooteps_f < f && f < z_rooteps_f) + { + xnum = f; + xden = 1.0; + } + + /* Calculate the polynomial. */ + else + { + g = f * f; + + xnum = f * (p[0] * g) + f; + xden = (q[1] * g + q[0]) * g + 1.0; + } + + /* Check for odd or even values. */ + if (N & 1) + { + xnum = -xnum; + res = xden / xnum; + } + else + { + res = xnum / xden; + } + + return (res); +} + +#ifdef _DOUBLE_IS_32BITS + +double tan (double x) +{ + return (double) tanf ((float) x); +} + +#endif /* _DOUBLE_IS_32BITS */ diff --git a/newlib/libm/mathfp/sf_tanh.c b/newlib/libm/mathfp/sf_tanh.c new file mode 100644 index 000000000..51806af45 --- /dev/null +++ b/newlib/libm/mathfp/sf_tanh.c @@ -0,0 +1,77 @@ + +/* @(#)z_tanhf.c 1.0 98/08/13 */ +/***************************************************************** + * The following routines are coded directly from the algorithms + * and coefficients given in "Software Manual for the Elementary + * Functions" by William J. Cody, Jr. and William Waite, Prentice + * Hall, 1980. + *****************************************************************/ +/****************************************************************** + * Hyperbolic Tangent + * + * Input: + * x - floating point value + * + * Output: + * hyperbolic tangent of x + * + * Description: + * This routine calculates hyperbolic tangent. + * + *****************************************************************/ + +#include <float.h> +#include "fdlibm.h" +#include "zmath.h" + +static const float LN3_OVER2 = 0.5493061443; +static const float p[] = { -0.2059432032, + -0.0009577527 }; +static const float q[] = { 0.6178299136, + 0.25 }; + +float +_DEFUN (tanhf, (float), + float x) +{ + float f, res, g, P, Q, R; + + f = fabsf (x); + + /* Check if the input is too big. */ + if (f > BIGX) + res = 1.0; + + else if (f > LN3_OVER2) + res = 1.0 - 2.0 / (exp (2 * f) + 1.0); + + /* Check if the input is too small. */ + else if (f < z_rooteps_f) + res = f; + + /* Calculate the Taylor series. */ + else + { + g = f * f; + + P = p[1] * g + p[0]; + Q = (g + q[1]) * g + q[0]; + R = g * (P / Q); + + res = f + f * R; + } + + if (x < 0.0) + res = -res; + + return (res); +} + +#ifdef _DOUBLE_IS_32BITS + +double tanh (double x) +{ + return (double) tanhf ((float) x); +} + +#endif _DOUBLE_IS_32BITS diff --git a/newlib/libm/mathfp/w_cabs.c b/newlib/libm/mathfp/w_cabs.c new file mode 100644 index 000000000..bef76680c --- /dev/null +++ b/newlib/libm/mathfp/w_cabs.c @@ -0,0 +1,20 @@ +/* + * cabs() wrapper for hypot(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +struct complex { + double x; + double y; +}; + +double +cabs(z) + struct complex z; +{ + return hypot(z.x, z.y); +} diff --git a/newlib/libm/mathfp/w_drem.c b/newlib/libm/mathfp/w_drem.c new file mode 100644 index 000000000..d289bdaac --- /dev/null +++ b/newlib/libm/mathfp/w_drem.c @@ -0,0 +1,15 @@ +/* + * drem() wrapper for remainder(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +double +drem(x, y) + double x, y; +{ + return remainder(x, y); +} diff --git a/newlib/libm/mathfp/w_jn.c b/newlib/libm/mathfp/w_jn.c new file mode 100644 index 000000000..6806f01d9 --- /dev/null +++ b/newlib/libm/mathfp/w_jn.c @@ -0,0 +1,248 @@ + +/* @(#)w_jn.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +/* +FUNCTION +<<jN>>,<<jNf>>,<<yN>>,<<yNf>>---Bessel functions + +INDEX +j0 +INDEX +j0f +INDEX +j1 +INDEX +j1f +INDEX +jn +INDEX +jnf +INDEX +y0 +INDEX +y0f +INDEX +y1 +INDEX +y1f +INDEX +yn +INDEX +ynf + +ANSI_SYNOPSIS +#include <math.h> +double j0(double <[x]>); +float j0f(float <[x]>); +double j1(double <[x]>); +float j1f(float <[x]>); +double jn(int <[n]>, double <[x]>); +float jnf(int <[n]>, float <[x]>); +double y0(double <[x]>); +float y0f(float <[x]>); +double y1(double <[x]>); +float y1f(float <[x]>); +double yn(int <[n]>, double <[x]>); +float ynf(int <[n]>, float <[x]>); + +TRAD_SYNOPSIS +#include <math.h> + +double j0(<[x]>) +double <[x]>; +float j0f(<[x]>) +float <[x]>; +double j1(<[x]>) +double <[x]>; +float j1f(<[x]>) +float <[x]>; +double jn(<[n]>, <[x]>) +int <[n]>; +double <[x]>; +float jnf(<[n]>, <[x]>) +int <[n]>; +float <[x]>; + +double y0(<[x]>) +double <[x]>; +float y0f(<[x]>) +float <[x]>; +double y1(<[x]>) +double <[x]>; +float y1f(<[x]>) +float <[x]>; +double yn(<[n]>, <[x]>) +int <[n]>; +double <[x]>; +float ynf(<[n]>, <[x]>) +int <[n]>; +float <[x]>; + +DESCRIPTION +The Bessel functions are a family of functions that solve the +differential equation +@ifinfo +. 2 2 2 +. x y'' + xy' + (x - p )y = 0 +@end ifinfo +@tex +$$x^2{d^2y\over dx^2} + x{dy\over dx} + (x^2-p^2)y = 0$$ +@end tex +These functions have many applications in engineering and physics. + +<<jn>> calculates the Bessel function of the first kind of order +<[n]>. <<j0>> and <<j1>> are special cases for order 0 and order +1 respectively. + +Similarly, <<yn>> calculates the Bessel function of the second kind of +order <[n]>, and <<y0>> and <<y1>> are special cases for order 0 and +1. + +<<jnf>>, <<j0f>>, <<j1f>>, <<ynf>>, <<y0f>>, and <<y1f>> perform the +same calculations, but on <<float>> rather than <<double>> values. + +RETURNS +The value of each Bessel function at <[x]> is returned. + +PORTABILITY +None of the Bessel functions are in ANSI C. +*/ + +/* + * wrapper jn(int n, double x), yn(int n, double x) + * floating point Bessel's function of the 1st and 2nd kind + * of order n + * + * Special cases: + * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; + * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. + * Note 2. About jn(n,x), yn(n,x) + * For n=0, j0(x) is called, + * for n=1, j1(x) is called, + * for n<x, forward recursion us used starting + * from values of j0(x) and j1(x). + * for n>x, a continued fraction approximation to + * j(n,x)/j(n-1,x) is evaluated and then backward + * recursion is used starting from a supposed value + * for j(n,x). The resulting value of j(0,x) is + * compared with the actual value to correct the + * supposed value of j(n,x). + * + * yn(n,x) is similar in all respects, except + * that forward recursion is used for all + * values of n>1. + * + */ + +#include "fdlibm.h" +#include <errno.h> + +#ifndef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double jn(int n, double x) /* wrapper jn */ +#else + double jn(n,x) /* wrapper jn */ + double x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return jn(n,x); +#else + double z; + struct exception exc; + z = jn(n,x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(fabs(x)>X_TLOSS) { + /* jn(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "jn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + double yn(int n, double x) /* wrapper yn */ +#else + double yn(n,x) /* wrapper yn */ + double x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return yn(n,x); +#else + double z; + struct exception exc; + z = yn(n,x); + if(_LIB_VERSION == _IEEE_ || isnan(x) ) return z; + if(x <= 0.0){ + /* yn(n,0) = -inf or yn(x<0) = NaN */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "yn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } + if(x>X_TLOSS) { + /* yn(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "yn"; + exc.err = 0; + exc.arg1 = n; + exc.arg2 = x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/wf_cabs.c b/newlib/libm/mathfp/wf_cabs.c new file mode 100644 index 000000000..c3ed0caa2 --- /dev/null +++ b/newlib/libm/mathfp/wf_cabs.c @@ -0,0 +1,20 @@ +/* + * cabsf() wrapper for hypotf(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +struct complex { + float x; + float y; +}; + +float +cabsf(z) + struct complex z; +{ + return hypotf(z.x, z.y); +} diff --git a/newlib/libm/mathfp/wf_drem.c b/newlib/libm/mathfp/wf_drem.c new file mode 100644 index 000000000..7c3f7c58e --- /dev/null +++ b/newlib/libm/mathfp/wf_drem.c @@ -0,0 +1,19 @@ +/* + * dremf() wrapper for remainderf(). + * + * Written by J.T. Conklin, <jtc@wimsey.com> + * Placed into the Public Domain, 1994. + */ + +#include "fdlibm.h" + +float +#ifdef __STDC__ +dremf(float x, float y) +#else +dremf(x, y) + float x, y; +#endif +{ + return remainderf(x, y); +} diff --git a/newlib/libm/mathfp/wf_jn.c b/newlib/libm/mathfp/wf_jn.c new file mode 100644 index 000000000..ebc886de9 --- /dev/null +++ b/newlib/libm/mathfp/wf_jn.c @@ -0,0 +1,138 @@ +/* wf_jn.c -- float version of w_jn.c. + * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. + */ + +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ + +#include "fdlibm.h" +#include <errno.h> + + +#ifdef __STDC__ + float jnf(int n, float x) /* wrapper jnf */ +#else + float jnf(n,x) /* wrapper jnf */ + float x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return jnf(n,x); +#else + float z; + struct exception exc; + z = jnf(n,x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(fabsf(x)>(float)X_TLOSS) { + /* jnf(|x|>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "jnf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return exc.retval; + } else + return z; +#endif +} + +#ifdef __STDC__ + float ynf(int n, float x) /* wrapper ynf */ +#else + float ynf(n,x) /* wrapper ynf */ + float x; int n; +#endif +{ +#ifdef _IEEE_LIBM + return ynf(n,x); +#else + float z; + struct exception exc; + z = ynf(n,x); + if(_LIB_VERSION == _IEEE_ || isnanf(x) ) return z; + if(x <= (float)0.0){ + /* ynf(n,0) = -inf or ynf(x<0) = NaN */ +#ifndef HUGE_VAL +#define HUGE_VAL inf + double inf = 0.0; + + SET_HIGH_WORD(inf,0x7ff00000); /* set inf to infinite */ +#endif + exc.type = DOMAIN; /* should be SING for IEEE */ + exc.name = "ynf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + if (_LIB_VERSION == _SVID_) + exc.retval = -HUGE; + else + exc.retval = -HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + errno = EDOM; + else if (!matherr(&exc)) { + errno = EDOM; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } + if(x>(float)X_TLOSS) { + /* ynf(x>X_TLOSS) */ + exc.type = TLOSS; + exc.name = "ynf"; + exc.err = 0; + exc.arg1 = (double)n; + exc.arg2 = (double)x; + exc.retval = 0.0; + if (_LIB_VERSION == _POSIX_) + errno = ERANGE; + else if (!matherr(&exc)) { + errno = ERANGE; + } + if (exc.err != 0) + errno = exc.err; + return (float)exc.retval; + } else + return z; +#endif +} + +#ifdef _DOUBLE_IS_32BITS + +#ifdef __STDC__ + double jn(int n, double x) +#else + double jn(n,x) + double x; int n; +#endif +{ + return (double) jnf(n, (float) x); +} + +#ifdef __STDC__ + double yn(int n, double x) +#else + double yn(n,x) + double x; int n; +#endif +{ + return (double) ynf(n, (float) x); +} + +#endif /* defined(_DOUBLE_IS_32BITS) */ diff --git a/newlib/libm/mathfp/zmath.h b/newlib/libm/mathfp/zmath.h new file mode 100644 index 000000000..369bfec49 --- /dev/null +++ b/newlib/libm/mathfp/zmath.h @@ -0,0 +1,55 @@ +#ifndef __ZMATH_H +#define __ZMATH_H + +#include <errno.h> + +#define NUM 3 +#define NAN 2 +#define INF 1 + +#define __PI 3.14159265358979323846 +#define __SQRT_HALF 0.70710678118654752440 +#define __PI_OVER_TWO 1.57079632679489661923132 + +extern double BIGX; +extern double SMALLX; + +typedef const union +{ + long l[2]; + double d; +} udouble; + +typedef const union +{ + long l; + float f; +} ufloat; + +extern double BIGX; +extern double SMALLX; + +extern udouble z_infinity; +extern udouble z_notanum; +extern double z_rooteps; + +extern ufloat z_infinity_f; +extern ufloat z_notanum_f; +extern float z_rooteps_f; + +/* Core math routines. */ + +int _EXFUN (numtest, (double)); +int _EXFUN (numtestf, (float)); +double _EXFUN (logarithm, (double, int)); +float _EXFUN (logarithmf, (float, int)); +double _EXFUN (sine, (double, int)); +float _EXFUN (sinef, (float, int)); +double _EXFUN (asine, (double, int)); +float _EXFUN (asinef, (float, int)); +double _EXFUN (atangent, (double, double, double, int)); +float _EXFUN (atangentf, (float, float, float, int)); +double _EXFUN (sineh, (double, int)); +float _EXFUN (sinehf, (float, int)); + +#endif /* no __ZMATH_H */ diff --git a/newlib/libm/test/Makefile.in b/newlib/libm/test/Makefile.in new file mode 100644 index 000000000..b012369be --- /dev/null +++ b/newlib/libm/test/Makefile.in @@ -0,0 +1,190 @@ +# Makefile for newlib/libm/test. +# Copyright (c) 1994 Cygnus Support. +# All rights reserved. +# +# Redistribution and use in source and binary forms are permitted +# provided that the above copyright notice and this paragraph are +# duplicated in all such forms and that any documentation, +# advertising materials, and other materials related to such +# distribution and use acknowledge that the software was developed +# at Cygnus Support, Inc. Cygnus Support, Inc. may not be used to +# endorse or promote products derived from this software without +# specific prior written permission. +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + +TOP=.. +SRCTOP=.. + +#### Host, target, and site specific Makefile fragments come in here. +### + + +OFILES=test.o string.o convert.o conv_vec.o iconv_vec.o test_is.o dvec.o sprint_vec.o sprint_ivec.o math2.o test_ieee.o + +VEC_OFILES=\ + math.o \ + atan2_vec.o \ + atan2f_vec.o \ + jn_vec.o \ + jnf_vec.o \ + log2_vec.o \ + log2f_vec.o \ + yn_vec.o \ + ynf_vec.o \ + acos_vec.o \ + acosf_vec.o \ + acosh_vec.o \ + acoshf_vec.o \ + asin_vec.o \ + asinf_vec.o \ + asinh_vec.o \ + asinhf_vec.o \ + atan_vec.o \ + atanf_vec.o \ + atanh_vec.o \ + atanhf_vec.o \ + ceil_vec.o \ + ceilf_vec.o \ + cos_vec.o \ + cosf_vec.o \ + cosh_vec.o \ + coshf_vec.o \ + erf_vec.o \ + erfc_vec.o \ + erfcf_vec.o \ + erff_vec.o \ + exp_vec.o \ + expf_vec.o \ + fabs_vec.o \ + fabsf_vec.o \ + floor_vec.o \ + floorf_vec.o \ + gamma_vec.o \ + gammaf_vec.o \ + j0_vec.o \ + j0f_vec.o \ + j1_vec.o \ + j1f_vec.o \ + log10_vec.o \ + log10f_vec.o \ + log1p_vec.o \ + log1pf_vec.o \ + log_vec.o \ + logf_vec.o \ + sin_vec.o \ + sinf_vec.o \ + sinh_vec.o \ + sinhf_vec.o \ + sqrt_vec.o \ + sqrtf_vec.o \ + tan_vec.o \ + tanf_vec.o \ + tanh_vec.o \ + tanhf_vec.o \ + y0_vec.o \ + y0f_vec.o \ + y1_vec.o \ + y1f_vec.o \ + hypotf_vec.o \ + hypot_vec.o \ + fmod_vec.o \ + fmodf_vec.o + + +all:$(OFILES) $(VEC_OFILES) + $(CROSS_LD) -o test ../../crt0.o $(OFILES) $(VEC_OFILES) ../../libc.a ../../libm.a + + +clean mostlyclean: + $(RM) $(OFILES) $(VEC_OFILES) *~ + +distclean maintainer-clean realclean: clean + rm -f Makefile config.status + + +Makefile:Makefile.in + $(SHELL) config.status + +# to support SunOS VPATH +acos_vec.o: acos_vec.c +acosf_vec.o: acosf_vec.c +acosh_vec.o: acosh_vec.c +acoshf_vec.o: acoshf_vec.c +asin_vec.o: asin_vec.c +asinf_vec.o: asinf_vec.c +asinh_vec.o: asinh_vec.c +asinhf_vec.o: asinhf_vec.c +atan2_vec.o: atan2_vec.c +atan2f_vec.o: atan2f_vec.c +atan_vec.o: atan_vec.c +atanf_vec.o: atanf_vec.c +atanh_vec.o: atanh_vec.c +atanhf_vec.o: atanhf_vec.c +ceil_vec.o: ceil_vec.c +ceilf_vec.o: ceilf_vec.c +conv_vec.o: conv_vec.c +convert.o: convert.c +cos_vec.o: cos_vec.c +cosf_vec.o: cosf_vec.c +cosh_vec.o: cosh_vec.c +coshf_vec.o: coshf_vec.c +dcvt.o: dcvt.c +dvec.o: dvec.c +erf_vec.o: erf_vec.c +erfc_vec.o: erfc_vec.c +erfcf_vec.o: erfcf_vec.c +erff_vec.o: erff_vec.c +exp_vec.o: exp_vec.c +expf_vec.o: expf_vec.c +fabs_vec.o: fabs_vec.c +fabsf_vec.o: fabsf_vec.c +floor_vec.o: floor_vec.c +floorf_vec.o: floorf_vec.c +fmod_vec.o: fmod_vec.c +fmodf_vec.o: fmodf_vec.c +gamma_vec.o: gamma_vec.c +gammaf_vec.o: gammaf_vec.c +hypot_vec.o: hypot_vec.c +hypotf_vec.o: hypotf_vec.c +iconv_vec.o: iconv_vec.c +j0_vec.o: j0_vec.c +j0f_vec.o: j0f_vec.c +j1_vec.o: j1_vec.c +j1f_vec.o: j1f_vec.c +jn_vec.o: jn_vec.c +jnf_vec.o: jnf_vec.c +log10_vec.o: log10_vec.c +log10f_vec.o: log10f_vec.c +log1p_vec.o: log1p_vec.c +log1pf_vec.o: log1pf_vec.c +log2_vec.o: log2_vec.c +log2f_vec.o: log2f_vec.c +log_vec.o: log_vec.c +logf_vec.o: logf_vec.c +math.o: math.c +math2.o: math2.c +sin_vec.o: sin_vec.c +sinf_vec.o: sinf_vec.c +sinh_vec.o: sinh_vec.c +sinhf_vec.o: sinhf_vec.c +sprint_ivec.o: sprint_ivec.c +sprint_vec.o: sprint_vec.c +sqrt_vec.o: sqrt_vec.c +sqrtf_vec.o: sqrtf_vec.c +string.o: string.c +tan_vec.o: tan_vec.c +tanf_vec.o: tanf_vec.c +tanh_vec.o: tanh_vec.c +tanhf_vec.o: tanhf_vec.c +test.o: test.c +test_ieee.o: test_ieee.c +test_is.o: test_is.c +y0_vec.o: y0_vec.c +y0f_vec.o: y0f_vec.c +y1_vec.o: y1_vec.c +y1f_vec.o: y1f_vec.c +yn_vec.o: yn_vec.c +ynf_vec.o: ynf_vec.c diff --git a/newlib/libm/test/acos_vec.c b/newlib/libm/test/acos_vec.c new file mode 100644 index 000000000..4288b7b82 --- /dev/null +++ b/newlib/libm/test/acos_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type acos_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x5170194b, 0xbfefffff, 0xfffffffe}, /* 3.14159=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x4008001b, 0xe1bc0117, 0xbfefae14, 0x7ae147ac}, /* 3.00005=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x400787b2, 0x2ce3f58d, 0xbfef5c28, 0xf5c28f5a}, /* 2.94125=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x40072b10, 0x466e25ee, 0xbfef0a3d, 0x70a3d708}, /* 2.89602=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x4006dcc5, 0x7bb565fa, 0xbfeeb851, 0xeb851eb6}, /* 2.85779=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x4006979e, 0x34f1b08f, 0xbfee6666, 0x66666664}, /* 2.82403=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x400658f0, 0x0fec9c13, 0xbfee147a, 0xe147ae12}, /* 2.79342=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x40061f25, 0xfc69b3c5, 0xbfedc28f, 0x5c28f5c0}, /* 2.76520=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x4005e938, 0x3efad0cf, 0xbfed70a3, 0xd70a3d6e}, /* 2.73887=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x4005b66f, 0xc75f8f2e, 0xbfed1eb8, 0x51eb851c}, /* 2.71408=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x40058647, 0x6251e743, 0xbfeccccc, 0xccccccca}, /* 2.69056=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x4005585a, 0x919e47f6, 0xbfec7ae1, 0x47ae1478}, /* 2.66814=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x40052c5b, 0x4e51b553, 0xbfec28f5, 0xc28f5c26}, /* 2.64665=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x4005020b, 0x942d7396, 0xbfebd70a, 0x3d70a3d4}, /* 2.62599=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x4004d939, 0x2170d7e8, 0xbfeb851e, 0xb851eb82}, /* 2.60606=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x4004b1ba, 0x8ff34d12, 0xbfeb3333, 0x33333330}, /* 2.58678=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x40048b6d, 0x4a69943d, 0xbfeae147, 0xae147ade}, /* 2.56808=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x40046634, 0x12ff153e, 0xbfea8f5c, 0x28f5c28c}, /* 2.54990=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x400441f5, 0xecbeef57, 0xbfea3d70, 0xa3d70a3a}, /* 2.53220=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x40041e9d, 0x49ea60f0, 0xbfe9eb85, 0x1eb851e8}, /* 2.51494=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x4003fc17, 0x6b7a855e, 0xbfe99999, 0x99999996}, /* 2.49809=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x4003da53, 0xe4683a05, 0xbfe947ae, 0x147ae144}, /* 2.48160=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x4003b944, 0x37710c9d, 0xbfe8f5c2, 0x8f5c28f2}, /* 2.46546=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x400398db, 0x88c873c7, 0xbfe8a3d7, 0x0a3d70a0}, /* 2.44963=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x4003790e, 0x5efbaf81, 0xbfe851eb, 0x851eb84e}, /* 2.43410=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x400359d2, 0x6f93b6c2, 0xbfe7ffff, 0xfffffffc}, /* 2.41885=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x40033b1e, 0x74e4d7d4, 0xbfe7ae14, 0x7ae147aa}, /* 2.40386=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x40031cea, 0x0b1e9471, 0xbfe75c28, 0xf5c28f58}, /* 2.38911=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x4002ff2d, 0x932437fa, 0xbfe70a3d, 0x70a3d706}, /* 2.37459=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x4002e1e2, 0x1a0d3a1d, 0xbfe6b851, 0xeb851eb4}, /* 2.36029=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x4002c501, 0x446cd5f0, 0xbfe66666, 0x66666662}, /* 2.34619=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x4002a885, 0x3cb097c7, 0xbfe6147a, 0xe147ae10}, /* 2.33228=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x40028c68, 0xa40a5e8a, 0xbfe5c28f, 0x5c28f5be}, /* 2.31855=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x400270a6, 0x857678d4, 0xbfe570a3, 0xd70a3d6c}, /* 2.30500=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x4002553a, 0x4a84548e, 0xbfe51eb8, 0x51eb851a}, /* 2.29161=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x40023a1f, 0xb1993d6b, 0xbfe4cccc, 0xccccccc8}, /* 2.27838=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x40021f52, 0xc5720bd9, 0xbfe47ae1, 0x47ae1476}, /* 2.26529=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x400204cf, 0xd5b34454, 0xbfe428f5, 0xc28f5c24}, /* 2.25235=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x4001ea93, 0x705fa170, 0xbfe3d70a, 0x3d70a3d2}, /* 2.23953=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x4001d09a, 0x5c13d2e9, 0xbfe3851e, 0xb851eb80}, /* 2.22685=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x4001b6e1, 0x92ebbe42, 0xbfe33333, 0x3333332e}, /* 2.21429=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x40019d66, 0x3dfa08c4, 0xbfe2e147, 0xae147adc}, /* 2.20185=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x40018425, 0xb13e5c9f, 0xbfe28f5c, 0x28f5c28a}, /* 2.18952=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x40016b1d, 0x6809deac, 0xbfe23d70, 0xa3d70a38}, /* 2.17730=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x4001524b, 0x01c3c767, 0xbfe1eb85, 0x1eb851e6}, /* 2.16518=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x400139ac, 0x3f022346, 0xbfe19999, 0x99999994}, /* 2.15316=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x4001213e, 0xfeec77b2, 0xbfe147ae, 0x147ae142}, /* 2.14123=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x40010901, 0x3cdf7bcb, 0xbfe0f5c2, 0x8f5c28f0}, /* 2.12939=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x4000f0f1, 0x0e4a4af2, 0xbfe0a3d7, 0x0a3d709e}, /* 2.11764=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x4000d90c, 0xa0be7d98, 0xbfe051eb, 0x851eb84c}, /* 2.10598=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x4000c152, 0x382d7364, 0xbfdfffff, 0xfffffff4}, /* 2.09439=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x4000a9c0, 0x2d4dd6d1, 0xbfdf5c28, 0xf5c28f50}, /* 2.08288=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x40009254, 0xec250417, 0xbfdeb851, 0xeb851eac}, /* 2.07145=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x40007b0e, 0xf2b0873a, 0xbfde147a, 0xe147ae08}, /* 2.06008=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x400063ec, 0xcfac5c06, 0xbfdd70a3, 0xd70a3d64}, /* 2.04879=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x40004ced, 0x21730104, 0xbfdccccc, 0xccccccc0}, /* 2.03756=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x4000360e, 0x94f4c6c4, 0xbfdc28f5, 0xc28f5c1c}, /* 2.02639=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x40001f4f, 0xe4c4118e, 0xbfdb851e, 0xb851eb78}, /* 2.01528=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x400008af, 0xd83485fa, 0xbfdae147, 0xae147ad4}, /* 2.00424=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3fffe45a, 0x8516a5c6, 0xbfda3d70, 0xa3d70a30}, /* 1.99325=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3fffb78e, 0x047dfba1, 0xbfd99999, 0x9999998c}, /* 1.98231=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3fff8af8, 0x008a864f, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.97142=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3fff5e96, 0x5edb849c, 0xbfd851eb, 0x851eb844}, /* 1.96059=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3fff3267, 0x1790a029, 0xbfd7ae14, 0x7ae147a0}, /* 1.94980=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3fff0668, 0x342bcf9e, 0xbfd70a3d, 0x70a3d6fc}, /* 1.93906=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3ffeda97, 0xce869c0d, 0xbfd66666, 0x66666658}, /* 1.92836=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3ffeaef4, 0x0fd91e82, 0xbfd5c28f, 0x5c28f5b4}, /* 1.91771=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3ffe837b, 0x2fd13424, 0xbfd51eb8, 0x51eb8510}, /* 1.90710=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3ffe582b, 0x73b88c73, 0xbfd47ae1, 0x47ae146c}, /* 1.89652=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3ffe2d03, 0x2da855f3, 0xbfd3d70a, 0x3d70a3c8}, /* 1.88598=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3ffe0200, 0xbbc96ad4, 0xbfd33333, 0x33333324}, /* 1.87548=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3ffdd722, 0x879ff961, 0xbfd28f5c, 0x28f5c280}, /* 1.86502=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3ffdac67, 0x0561bb4b, 0xbfd1eb85, 0x1eb851dc}, /* 1.85459=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3ffd81cc, 0xb355e3be, 0xbfd147ae, 0x147ae138}, /* 1.84418=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3ffd5752, 0x193dff00, 0xbfd0a3d7, 0x0a3d7094}, /* 1.83381=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3ffd2cf5, 0xc7c70f07, 0xbfcfffff, 0xffffffe0}, /* 1.82347=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3ffd02b6, 0x58023fbc, 0xbfceb851, 0xeb851e98}, /* 1.81316=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3ffcd892, 0x6ae49ae7, 0xbfcd70a3, 0xd70a3d50}, /* 1.80287=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3ffcae88, 0xa8cd304f, 0xbfcc28f5, 0xc28f5c08}, /* 1.79261=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3ffc8497, 0xc1113153, 0xbfcae147, 0xae147ac0}, /* 1.78237=f(-0.21000)*/ +{60, 0,123,__LINE__, 0x3ffc5abe, 0x698d895c, 0xbfc99999, 0x99999978}, /* 1.77215=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3ffc30fb, 0x5e3d8564, 0xbfc851eb, 0x851eb830}, /* 1.76195=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3ffc074d, 0x60d624f8, 0xbfc70a3d, 0x70a3d6e8}, /* 1.75178=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3ffbddb3, 0x3865b650, 0xbfc5c28f, 0x5c28f5a0}, /* 1.74162=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3ffbb42b, 0xb0f765c6, 0xbfc47ae1, 0x47ae1458}, /* 1.73148=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3ffb8ab5, 0x9b3a6eea, 0xbfc33333, 0x33333310}, /* 1.72136=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3ffb614f, 0xcc2ca2bb, 0xbfc1eb85, 0x1eb851c8}, /* 1.71125=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3ffb37f9, 0x1cc7fb82, 0xbfc0a3d7, 0x0a3d7080}, /* 1.70116=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3ffb0eb0, 0x69b2fb1c, 0xbfbeb851, 0xeb851e71}, /* 1.69108=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3ffae574, 0x92f3947b, 0xbfbc28f5, 0xc28f5be2}, /* 1.68101=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3ffabc44, 0x7ba4649c, 0xbfb99999, 0x99999953}, /* 1.67096=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3ffa931f, 0x09ac0277, 0xbfb70a3d, 0x70a3d6c4}, /* 1.66091=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3ffa6a03, 0x2576302c, 0xbfb47ae1, 0x47ae1435}, /* 1.65088=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x3ffa40ef, 0xb9aeba3c, 0xbfb1eb85, 0x1eb851a6}, /* 1.64085=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3ffa17e3, 0xb2fdd3d9, 0xbfaeb851, 0xeb851e2d}, /* 1.63083=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3ff9eedd, 0xffc5c146, 0xbfa99999, 0x9999990e}, /* 1.62081=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3ff9c5dd, 0x8fe1a2fe, 0xbfa47ae1, 0x47ae13ef}, /* 1.61080=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3ff99ce1, 0x546535b4, 0xbf9eb851, 0xeb851da0}, /* 1.60080=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3ff973e8, 0x3f5d5c96, 0xbf947ae1, 0x47ae1362}, /* 1.59079=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3ff94af1, 0x43914c32, 0xbf847ae1, 0x47ae1249}, /* 1.58079=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x54442d14, 0x3cd19000, 0x00000000}, /* 1.57079=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3ff8f905, 0x64f70df6, 0x3f847ae1, 0x47ae16ad}, /* 1.56079=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3ff8d00e, 0x692afd91, 0x3f947ae1, 0x47ae1594}, /* 1.55079=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3ff8a715, 0x54232474, 0x3f9eb851, 0xeb851fd2}, /* 1.54079=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3ff87e19, 0x18a6b729, 0x3fa47ae1, 0x47ae1508}, /* 1.53078=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3ff85518, 0xa8c298e1, 0x3fa99999, 0x99999a27}, /* 1.52077=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3ff82c12, 0xf58a864e, 0x3faeb851, 0xeb851f46}, /* 1.51076=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3ff80306, 0xeed99feb, 0x3fb1eb85, 0x1eb85232}, /* 1.50073=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3ff7d9f3, 0x831229fb, 0x3fb47ae1, 0x47ae14c1}, /* 1.49071=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3ff7b0d7, 0x9edc57b0, 0x3fb70a3d, 0x70a3d750}, /* 1.48067=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3ff787b2, 0x2ce3f58c, 0x3fb99999, 0x999999df}, /* 1.47062=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3ff75e82, 0x1594c5ac, 0x3fbc28f5, 0xc28f5c6e}, /* 1.46057=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3ff73546, 0x3ed55f0c, 0x3fbeb851, 0xeb851efd}, /* 1.45050=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3ff70bfd, 0x8bc05ea6, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.44042=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3ff6e2a6, 0xdc5bb76c, 0x3fc1eb85, 0x1eb8520e}, /* 1.43033=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3ff6b941, 0x0d4deb3d, 0x3fc33333, 0x33333356}, /* 1.42022=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3ff68fca, 0xf790f461, 0x3fc47ae1, 0x47ae149e}, /* 1.41010=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3ff66643, 0x7022a3d8, 0x3fc5c28f, 0x5c28f5e6}, /* 1.39996=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3ff63ca9, 0x47b2352f, 0x3fc70a3d, 0x70a3d72e}, /* 1.38981=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3ff612fb, 0x4a4ad4c3, 0x3fc851eb, 0x851eb876}, /* 1.37963=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3ff5e938, 0x3efad0cc, 0x3fc99999, 0x999999be}, /* 1.36943=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3ff5bf5e, 0xe77728d4, 0x3fcae147, 0xae147b06}, /* 1.35922=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3ff5956d, 0xffbb29d8, 0x3fcc28f5, 0xc28f5c4e}, /* 1.34898=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3ff56b64, 0x3da3bf40, 0x3fcd70a3, 0xd70a3d96}, /* 1.33871=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3ff54140, 0x50861a6b, 0x3fceb851, 0xeb851ede}, /* 1.32843=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3ff51700, 0xe0c14b20, 0x3fd00000, 0x00000013}, /* 1.31811=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3ff4eca4, 0x8f4a5b28, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.30777=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3ff4c229, 0xf5327668, 0x3fd147ae, 0x147ae15b}, /* 1.29740=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3ff4978f, 0xa3269edc, 0x3fd1eb85, 0x1eb851ff}, /* 1.28700=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3ff46cd4, 0x20e860c6, 0x3fd28f5c, 0x28f5c2a3}, /* 1.27656=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3ff441f5, 0xecbeef53, 0x3fd33333, 0x33333347}, /* 1.26610=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3ff416f3, 0x7ae00434, 0x3fd3d70a, 0x3d70a3eb}, /* 1.25560=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3ff3ebcb, 0x34cfcdb4, 0x3fd47ae1, 0x47ae148f}, /* 1.24506=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3ff3c07b, 0x78b72603, 0x3fd51eb8, 0x51eb8533}, /* 1.23449=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3ff39502, 0x98af3ba4, 0x3fd5c28f, 0x5c28f5d7}, /* 1.22387=f(0.34000)*/ +{62, 0,123,__LINE__, 0x3ff3695e, 0xda01be19, 0x3fd66666, 0x6666667b}, /* 1.21322=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3ff33d8e, 0x745c8a89, 0x3fd70a3d, 0x70a3d71f}, /* 1.20252=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3ff3118f, 0x90f7b9fe, 0x3fd7ae14, 0x7ae147c3}, /* 1.19178=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3ff2e560, 0x49acd58b, 0x3fd851eb, 0x851eb867}, /* 1.18100=f(0.38000)*/ +{ 60, 0,123,__LINE__, 0x3ff2b8fe, 0xa7fdd3d7, 0x3fd8f5c2, 0x8f5c290b}, /* 1.17016=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3ff28c68, 0xa40a5e85, 0x3fd99999, 0x999999af}, /* 1.15927=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3ff25f9c, 0x2371b460, 0x3fda3d70, 0xa3d70a53}, /* 1.14834=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3ff23296, 0xf81f4e32, 0x3fdae147, 0xae147af7}, /* 1.13735=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3ff20556, 0xdf00370a, 0x3fdb851e, 0xb851eb9b}, /* 1.12630=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3ff1d7d9, 0x7e9ecca0, 0x3fdc28f5, 0xc28f5c3f}, /* 1.11519=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3ff1aa1c, 0x65a2581f, 0x3fdccccc, 0xcccccce3}, /* 1.10403=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3ff17c1d, 0x092fa21a, 0x3fdd70a3, 0xd70a3d87}, /* 1.09280=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3ff14dd8, 0xc3274bb2, 0x3fde147a, 0xe147ae2b}, /* 1.08150=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3ff11f4c, 0xd03e51f8, 0x3fdeb851, 0xeb851ecf}, /* 1.07014=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3ff0f076, 0x4decac84, 0x3fdf5c28, 0xf5c28f73}, /* 1.05870=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3ff0c152, 0x382d735f, 0x3fe00000, 0x0000000b}, /* 1.04719=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3ff091dd, 0x670b5ef5, 0x3fe051eb, 0x851eb85d}, /* 1.03561=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3ff06214, 0x8bf3c442, 0x3fe0a3d7, 0x0a3d70af}, /* 1.02394=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3ff031f4, 0x2ec96290, 0x3fe0f5c2, 0x8f5c2901}, /* 1.01219=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3ff00178, 0xaaaf6ac2, 0x3fe147ae, 0x147ae153}, /* 1.00035=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fefa13c, 0x55082733, 0x3fe19999, 0x999999a5}, /* 0.98843=f(0.55000)*/ +{ 59, 0,123,__LINE__, 0x3fef3ec1, 0x4a0196b0, 0x3fe1eb85, 0x1eb851f7}, /* 0.97641=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3feedb77, 0xb0e9399e, 0x3fe23d70, 0xa3d70a49}, /* 0.96429=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fee7756, 0x8c1741d0, 0x3fe28f5c, 0x28f5c29b}, /* 0.95206=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fee1254, 0x5928913d, 0x3fe2e147, 0xae147aed}, /* 0.93973=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fedac67, 0x0561bb41, 0x3fe33333, 0x3333333f}, /* 0.92729=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fed4583, 0xe0c168a7, 0x3fe3851e, 0xb851eb91}, /* 0.91473=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fecdd9f, 0x8f922e89, 0x3fe3d70a, 0x3d70a3e3}, /* 0.90205=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fec74ad, 0xfa43a2fd, 0x3fe428f5, 0xc28f5c35}, /* 0.88924=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fec0aa2, 0x3b4884e6, 0x3fe47ae1, 0x47ae1487}, /* 0.87629=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3feb9f6e, 0x8aabbe9e, 0x3fe4cccc, 0xccccccd9}, /* 0.86321=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3feb3304, 0x26ff6214, 0x3fe51eb8, 0x51eb852b}, /* 0.84997=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3feac553, 0x3b36d0fa, 0x3fe570a3, 0xd70a3d7d}, /* 0.83658=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fea564a, 0xc0e73a22, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82303=f(0.68000)*/ +{62, 0,123,__LINE__, 0x3fe9e5d8, 0x5e4e552e, 0x3fe6147a, 0xe147ae21}, /* 0.80930=f(0.69000)*/ +{62, 0,123,__LINE__, 0x3fe973e8, 0x3f5d5c8a, 0x3fe66666, 0x66666673}, /* 0.79539=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe90064, 0xe8dbcbd3, 0x3fe6b851, 0xeb851ec5}, /* 0.78129=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe88b37, 0x047fd461, 0x3fe70a3d, 0x70a3d717}, /* 0.76699=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe81445, 0x24966281, 0x3fe75c28, 0xf5c28f69}, /* 0.75247=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe79b73, 0x7d7d54f8, 0x3fe7ae14, 0x7ae147bb}, /* 0.73772=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe720a3, 0x92c1d941, 0x3fe80000, 0x0000000d}, /* 0.72273=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe6a3b3, 0xd521f641, 0x3fe851eb, 0x851eb85f}, /* 0.70748=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe6247f, 0x2deee529, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.69195=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe5a2dc, 0x734c81d0, 0x3fe8f5c2, 0x8f5c2903}, /* 0.67613=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe51e9d, 0xbf6fcc30, 0x3fe947ae, 0x147ae155}, /* 0.65998=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe4978f, 0xa3269ecb, 0x3fe99999, 0x999999a7}, /* 0.64350=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe40d78, 0x29673085, 0x3fe9eb85, 0x1eb851f9}, /* 0.62664=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe38015, 0x9e14f6e6, 0x3fea3d70, 0xa3d70a4b}, /* 0.60938=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe2ef1d, 0x05145f4b, 0x3fea8f5c, 0x28f5c29d}, /* 0.59168=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe25a38, 0x276a634d, 0x3feae147, 0xae147aef}, /* 0.57351=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe1c103, 0x11437ff9, 0x3feb3333, 0x33333341}, /* 0.55481=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe12308, 0xcb4d549f, 0x3feb851e, 0xb851eb93}, /* 0.53552=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe07fbf, 0x005ae5e9, 0x3febd70a, 0x3d70a3e5}, /* 0.51559=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fdfad00, 0x2f93bde1, 0x3fec28f5, 0xc28f5c37}, /* 0.49493=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fde4d06, 0x152f28c1, 0x3fec7ae1, 0x47ae1489}, /* 0.47345=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fdcdd9f, 0x8f922e58, 0x3feccccc, 0xccccccdb}, /* 0.45102=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fdb5c5c, 0x6724eef9, 0x3fed1eb8, 0x51eb852d}, /* 0.42751=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fd9c618, 0xaa4ae1f4, 0x3fed70a3, 0xd70a3d7f}, /* 0.40271=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fd816aa, 0xbed3ca3c, 0x3fedc28f, 0x5c28f5d1}, /* 0.37638=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fd6485a, 0x22bc87c6, 0x3fee147a, 0xe147ae23}, /* 0.34816=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fd452e8, 0xfa93e3db, 0x3fee6666, 0x66666675}, /* 0.31756=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fd229ae, 0xc4763873, 0x3feeb851, 0xeb851ec7}, /* 0.28379=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fcf6eb0, 0xdd60718f, 0x3fef0a3d, 0x70a3d719}, /* 0.24556=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fc9a492, 0x7603775a, 0x3fef5c28, 0xf5c28f6b}, /* 0.20033=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fc21df7, 0x2882be2e, 0x3fefae14, 0x7ae147bd}, /* 0.14153=f(0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff00000, 0x00000007}, /* 64.0000=f(1.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x54442d18, 0x00000000, 0x00000000}, /* 1.57079=f(0.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{63, 0,123,__LINE__, 0x3fedac67, 0x0561bba9, 0x3fe33333, 0x333332ec}, /* 0.92729=f(0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_acos(m) {run_vector_1(m,acos_vec,(char *)(acos),"acos","dd"); } diff --git a/newlib/libm/test/acosf_vec.c b/newlib/libm/test/acosf_vec.c new file mode 100644 index 000000000..f7ed3dbe7 --- /dev/null +++ b/newlib/libm/test/acosf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type acosf_vec[] = { +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 1, 0,123,__LINE__, 0x400921fb, 0x60000000, 0xbfefffff, 0xfffffffe}, /* 3.14159=f(-0.01000)*/ +{ 1, 0,123,__LINE__, 0x4008001c, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 3.00005=f(-0.99000)*/ +{ 1, 0,123,__LINE__, 0x400787b2, 0x40000000, 0xbfef5c28, 0xf5c28f5a}, /* 2.94125=f(-0.98000)*/ +{ 1, 0,123,__LINE__, 0x40072b10, 0x60000000, 0xbfef0a3d, 0x70a3d708}, /* 2.89602=f(-0.97000)*/ +{ 1, 0,123,__LINE__, 0x4006dcc5, 0x80000000, 0xbfeeb851, 0xeb851eb6}, /* 2.85779=f(-0.96000)*/ +{ 1, 0,123,__LINE__, 0x4006979e, 0x40000000, 0xbfee6666, 0x66666664}, /* 2.82403=f(-0.95000)*/ +{ 1, 0,123,__LINE__, 0x400658f0, 0x20000000, 0xbfee147a, 0xe147ae12}, /* 2.79342=f(-0.94000)*/ +{ 1, 0,123,__LINE__, 0x40061f26, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 2.76520=f(-0.93000)*/ +{ 1, 0,123,__LINE__, 0x4005e938, 0x60000000, 0xbfed70a3, 0xd70a3d6e}, /* 2.73887=f(-0.92000)*/ +{ 1, 0,123,__LINE__, 0x4005b66f, 0xe0000000, 0xbfed1eb8, 0x51eb851c}, /* 2.71408=f(-0.91000)*/ +{ 1, 0,123,__LINE__, 0x40058647, 0x60000000, 0xbfeccccc, 0xccccccca}, /* 2.69056=f(-0.90000)*/ +{ 1, 0,123,__LINE__, 0x4005585a, 0xa0000000, 0xbfec7ae1, 0x47ae1478}, /* 2.66814=f(-0.89000)*/ +{ 1, 0,123,__LINE__, 0x40052c5b, 0x60000000, 0xbfec28f5, 0xc28f5c26}, /* 2.64665=f(-0.88000)*/ +{ 1, 0,123,__LINE__, 0x4005020b, 0xa0000000, 0xbfebd70a, 0x3d70a3d4}, /* 2.62599=f(-0.87000)*/ +{ 1, 0,123,__LINE__, 0x4004d939, 0x40000000, 0xbfeb851e, 0xb851eb82}, /* 2.60606=f(-0.86000)*/ +{ 1, 0,123,__LINE__, 0x4004b1ba, 0xa0000000, 0xbfeb3333, 0x33333330}, /* 2.58678=f(-0.85000)*/ +{ 1, 0,123,__LINE__, 0x40048b6d, 0x40000000, 0xbfeae147, 0xae147ade}, /* 2.56807=f(-0.84000)*/ +{ 1, 0,123,__LINE__, 0x40046634, 0x20000000, 0xbfea8f5c, 0x28f5c28c}, /* 2.54990=f(-0.83000)*/ +{ 1, 0,123,__LINE__, 0x400441f6, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 2.53220=f(-0.82000)*/ +{ 1, 0,123,__LINE__, 0x40041e9d, 0x60000000, 0xbfe9eb85, 0x1eb851e8}, /* 2.51494=f(-0.81000)*/ +{ 1, 0,123,__LINE__, 0x4003fc17, 0x80000000, 0xbfe99999, 0x99999996}, /* 2.49809=f(-0.80000)*/ +{ 1, 0,123,__LINE__, 0x4003da54, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 2.48160=f(-0.79000)*/ +{ 1, 0,123,__LINE__, 0x4003b944, 0x40000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 2.46546=f(-0.78000)*/ +{ 1, 0,123,__LINE__, 0x400398db, 0x80000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 2.44963=f(-0.77000)*/ +{ 1, 0,123,__LINE__, 0x4003790e, 0x80000000, 0xbfe851eb, 0x851eb84e}, /* 2.43411=f(-0.76000)*/ +{ 1, 0,123,__LINE__, 0x400359d2, 0x80000000, 0xbfe7ffff, 0xfffffffc}, /* 2.41885=f(-0.75000)*/ +{ 1, 0,123,__LINE__, 0x40033b1e, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* 2.40386=f(-0.74000)*/ +{ 1, 0,123,__LINE__, 0x40031cea, 0x20000000, 0xbfe75c28, 0xf5c28f58}, /* 2.38911=f(-0.73000)*/ +{ 1, 0,123,__LINE__, 0x4002ff2d, 0xa0000000, 0xbfe70a3d, 0x70a3d706}, /* 2.37459=f(-0.72000)*/ +{ 1, 0,123,__LINE__, 0x4002e1e2, 0x20000000, 0xbfe6b851, 0xeb851eb4}, /* 2.36029=f(-0.71000)*/ +{ 1, 0,123,__LINE__, 0x4002c501, 0x40000000, 0xbfe66666, 0x66666662}, /* 2.34619=f(-0.70000)*/ +{ 1, 0,123,__LINE__, 0x4002a885, 0x40000000, 0xbfe6147a, 0xe147ae10}, /* 2.33228=f(-0.69000)*/ +{ 1, 0,123,__LINE__, 0x40028c68, 0xc0000000, 0xbfe5c28f, 0x5c28f5be}, /* 2.31855=f(-0.68000)*/ +{ 1, 0,123,__LINE__, 0x400270a6, 0xa0000000, 0xbfe570a3, 0xd70a3d6c}, /* 2.30500=f(-0.67000)*/ +{ 1, 0,123,__LINE__, 0x4002553a, 0x60000000, 0xbfe51eb8, 0x51eb851a}, /* 2.29161=f(-0.66000)*/ +{ 1, 0,123,__LINE__, 0x40023a1f, 0xc0000000, 0xbfe4cccc, 0xccccccc8}, /* 2.27838=f(-0.65000)*/ +{ 1, 0,123,__LINE__, 0x40021f52, 0xc0000000, 0xbfe47ae1, 0x47ae1476}, /* 2.26529=f(-0.64000)*/ +{ 1, 0,123,__LINE__, 0x400204cf, 0xe0000000, 0xbfe428f5, 0xc28f5c24}, /* 2.25235=f(-0.63000)*/ +{ 1, 0,123,__LINE__, 0x4001ea93, 0x80000000, 0xbfe3d70a, 0x3d70a3d2}, /* 2.23953=f(-0.62000)*/ +{ 1, 0,123,__LINE__, 0x4001d09a, 0x60000000, 0xbfe3851e, 0xb851eb80}, /* 2.22685=f(-0.61000)*/ +{ 1, 0,123,__LINE__, 0x4001b6e1, 0xa0000000, 0xbfe33333, 0x3333332e}, /* 2.21429=f(-0.60000)*/ +{ 1, 0,123,__LINE__, 0x40019d66, 0x40000000, 0xbfe2e147, 0xae147adc}, /* 2.20185=f(-0.59000)*/ +{ 1, 0,123,__LINE__, 0x40018425, 0xc0000000, 0xbfe28f5c, 0x28f5c28a}, /* 2.18952=f(-0.58000)*/ +{ 1, 0,123,__LINE__, 0x40016b1d, 0x80000000, 0xbfe23d70, 0xa3d70a38}, /* 2.17730=f(-0.57000)*/ +{ 1, 0,123,__LINE__, 0x4001524b, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 2.16518=f(-0.56000)*/ +{ 1, 0,123,__LINE__, 0x400139ac, 0x40000000, 0xbfe19999, 0x99999994}, /* 2.15316=f(-0.55000)*/ +{ 1, 0,123,__LINE__, 0x4001213f, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 2.14123=f(-0.54000)*/ +{ 1, 0,123,__LINE__, 0x40010901, 0x40000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 2.12939=f(-0.53000)*/ +{ 1, 0,123,__LINE__, 0x4000f0f1, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 2.11764=f(-0.52000)*/ +{ 1, 0,123,__LINE__, 0x4000d90c, 0xc0000000, 0xbfe051eb, 0x851eb84c}, /* 2.10598=f(-0.51000)*/ +{ 1, 0,123,__LINE__, 0x4000c152, 0x40000000, 0xbfdfffff, 0xfffffff4}, /* 2.09439=f(-0.50000)*/ +{ 1, 0,123,__LINE__, 0x4000a9c0, 0x40000000, 0xbfdf5c28, 0xf5c28f50}, /* 2.08288=f(-0.49000)*/ +{ 1, 0,123,__LINE__, 0x40009255, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 2.07145=f(-0.48000)*/ +{ 1, 0,123,__LINE__, 0x40007b0f, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 2.06008=f(-0.47000)*/ +{ 1, 0,123,__LINE__, 0x400063ec, 0xe0000000, 0xbfdd70a3, 0xd70a3d64}, /* 2.04879=f(-0.46000)*/ +{ 1, 0,123,__LINE__, 0x40004ced, 0x20000000, 0xbfdccccc, 0xccccccc0}, /* 2.03756=f(-0.45000)*/ +{ 1, 0,123,__LINE__, 0x4000360e, 0xa0000000, 0xbfdc28f5, 0xc28f5c1c}, /* 2.02639=f(-0.44000)*/ +{ 1, 0,123,__LINE__, 0x40001f4f, 0xe0000000, 0xbfdb851e, 0xb851eb78}, /* 2.01528=f(-0.43000)*/ +{ 1, 0,123,__LINE__, 0x400008af, 0xe0000000, 0xbfdae147, 0xae147ad4}, /* 2.00424=f(-0.42000)*/ +{16, 0,123,__LINE__, 0x3fffe45a, 0x80000000, 0xbfda3d70, 0xa3d70a30}, /* 1.99325=f(-0.41000)*/ +{16, 0,123,__LINE__, 0x3fffb78e, 0x00000000, 0xbfd99999, 0x9999998c}, /* 1.98231=f(-0.40000)*/ +{16, 0,123,__LINE__, 0x3fff8af8, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.97142=f(-0.39000)*/ +{17, 0,123,__LINE__, 0x3fff5e96, 0x60000000, 0xbfd851eb, 0x851eb844}, /* 1.96059=f(-0.38000)*/ +{19, 0,123,__LINE__, 0x3fff3267, 0x20000000, 0xbfd7ae14, 0x7ae147a0}, /* 1.94980=f(-0.37000)*/ +{18, 0,123,__LINE__, 0x3fff0668, 0x40000000, 0xbfd70a3d, 0x70a3d6fc}, /* 1.93906=f(-0.36000)*/ +{15, 0,123,__LINE__, 0x3ffeda97, 0xe0000000, 0xbfd66666, 0x66666658}, /* 1.92836=f(-0.35000)*/ +{15, 0,123,__LINE__, 0x3ffeaef4, 0x20000000, 0xbfd5c28f, 0x5c28f5b4}, /* 1.91771=f(-0.34000)*/ +{15, 0,123,__LINE__, 0x3ffe837b, 0x40000000, 0xbfd51eb8, 0x51eb8510}, /* 1.90710=f(-0.33000)*/ +{15, 0,123,__LINE__, 0x3ffe582b, 0x80000000, 0xbfd47ae1, 0x47ae146c}, /* 1.89652=f(-0.32000)*/ +{15, 0,123,__LINE__, 0x3ffe2d03, 0x40000000, 0xbfd3d70a, 0x3d70a3c8}, /* 1.88598=f(-0.31000)*/ +{15, 0,123,__LINE__, 0x3ffe0200, 0xc0000000, 0xbfd33333, 0x33333324}, /* 1.87548=f(-0.30000)*/ +{14, 0,123,__LINE__, 0x3ffdd722, 0x80000000, 0xbfd28f5c, 0x28f5c280}, /* 1.86502=f(-0.29000)*/ +{14, 0,123,__LINE__, 0x3ffdac67, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 1.85459=f(-0.28000)*/ +{14, 0,123,__LINE__, 0x3ffd81cc, 0xc0000000, 0xbfd147ae, 0x147ae138}, /* 1.84418=f(-0.27000)*/ +{14, 0,123,__LINE__, 0x3ffd5752, 0x20000000, 0xbfd0a3d7, 0x0a3d7094}, /* 1.83381=f(-0.26000)*/ +{14, 0,123,__LINE__, 0x3ffd2cf5, 0xc0000000, 0xbfcfffff, 0xffffffe0}, /* 1.82347=f(-0.25000)*/ +{14, 0,123,__LINE__, 0x3ffd02b6, 0x60000000, 0xbfceb851, 0xeb851e98}, /* 1.81316=f(-0.24000)*/ +{14, 0,123,__LINE__, 0x3ffcd892, 0x80000000, 0xbfcd70a3, 0xd70a3d50}, /* 1.80287=f(-0.23000)*/ +{14, 0,123,__LINE__, 0x3ffcae88, 0xc0000000, 0xbfcc28f5, 0xc28f5c08}, /* 1.79261=f(-0.22000)*/ +{14, 0,123,__LINE__, 0x3ffc8497, 0xc0000000, 0xbfcae147, 0xae147ac0}, /* 1.78237=f(-0.21000)*/ +{14, 0,123,__LINE__, 0x3ffc5abe, 0x80000000, 0xbfc99999, 0x99999978}, /* 1.77215=f(-0.20000)*/ +{14, 0,123,__LINE__, 0x3ffc30fb, 0x60000000, 0xbfc851eb, 0x851eb830}, /* 1.76195=f(-0.19000)*/ +{14, 0,123,__LINE__, 0x3ffc074d, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* 1.75178=f(-0.18000)*/ +{13, 0,123,__LINE__, 0x3ffbddb3, 0x40000000, 0xbfc5c28f, 0x5c28f5a0}, /* 1.74162=f(-0.17000)*/ +{13, 0,123,__LINE__, 0x3ffbb42b, 0xc0000000, 0xbfc47ae1, 0x47ae1458}, /* 1.73148=f(-0.16000)*/ +{13, 0,123,__LINE__, 0x3ffb8ab5, 0xa0000000, 0xbfc33333, 0x33333310}, /* 1.72136=f(-0.15000)*/ +{13, 0,123,__LINE__, 0x3ffb614f, 0xe0000000, 0xbfc1eb85, 0x1eb851c8}, /* 1.71125=f(-0.14000)*/ +{13, 0,123,__LINE__, 0x3ffb37f9, 0x20000000, 0xbfc0a3d7, 0x0a3d7080}, /* 1.70116=f(-0.13000)*/ +{13, 0,123,__LINE__, 0x3ffb0eb0, 0x80000000, 0xbfbeb851, 0xeb851e71}, /* 1.69108=f(-0.12000)*/ +{13, 0,123,__LINE__, 0x3ffae574, 0xa0000000, 0xbfbc28f5, 0xc28f5be2}, /* 1.68101=f(-0.11000)*/ +{13, 0,123,__LINE__, 0x3ffabc44, 0x80000000, 0xbfb99999, 0x99999953}, /* 1.67096=f(-0.00100)*/ +{13, 0,123,__LINE__, 0x3ffa931f, 0x20000000, 0xbfb70a3d, 0x70a3d6c4}, /* 1.66091=f(-0.09000)*/ +{13, 0,123,__LINE__, 0x3ffa6a03, 0x40000000, 0xbfb47ae1, 0x47ae1435}, /* 1.65088=f(-0.08000)*/ +{13, 0,123,__LINE__, 0x3ffa40ef, 0xc0000000, 0xbfb1eb85, 0x1eb851a6}, /* 1.64085=f(-0.07000)*/ +{13, 0,123,__LINE__, 0x3ffa17e3, 0xc0000000, 0xbfaeb851, 0xeb851e2d}, /* 1.63083=f(-0.06000)*/ +{13, 0,123,__LINE__, 0x3ff9eede, 0x00000000, 0xbfa99999, 0x9999990e}, /* 1.62081=f(-0.05000)*/ +{13, 0,123,__LINE__, 0x3ff9c5dd, 0xa0000000, 0xbfa47ae1, 0x47ae13ef}, /* 1.61080=f(-0.04000)*/ +{13, 0,123,__LINE__, 0x3ff99ce1, 0x60000000, 0xbf9eb851, 0xeb851da0}, /* 1.60080=f(-0.03000)*/ +{13, 0,123,__LINE__, 0x3ff973e8, 0x40000000, 0xbf947ae1, 0x47ae1362}, /* 1.59079=f(-0.02000)*/ +{13, 0,123,__LINE__, 0x3ff94af1, 0x40000000, 0xbf847ae1, 0x47ae1249}, /* 1.58079=f(-0.00010)*/ +{13, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0x3cd19000, 0x00000000}, /* 1.57079=f(9.74915e-16)*/ +{13, 0,123,__LINE__, 0x3ff8f905, 0x80000000, 0x3f847ae1, 0x47ae16ad}, /* 1.56079=f(0.01000)*/ +{13, 0,123,__LINE__, 0x3ff8d00e, 0x80000000, 0x3f947ae1, 0x47ae1594}, /* 1.55079=f(0.02000)*/ +{13, 0,123,__LINE__, 0x3ff8a715, 0x60000000, 0x3f9eb851, 0xeb851fd2}, /* 1.54079=f(0.03000)*/ +{13, 0,123,__LINE__, 0x3ff87e19, 0x20000000, 0x3fa47ae1, 0x47ae1508}, /* 1.53078=f(0.04000)*/ +{13, 0,123,__LINE__, 0x3ff85518, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 1.52077=f(0.05000)*/ +{13, 0,123,__LINE__, 0x3ff82c13, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 1.51076=f(0.06000)*/ +{13, 0,123,__LINE__, 0x3ff80307, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 1.50073=f(0.07000)*/ +{12, 0,123,__LINE__, 0x3ff7d9f3, 0x80000000, 0x3fb47ae1, 0x47ae14c1}, /* 1.49071=f(0.08000)*/ +{12, 0,123,__LINE__, 0x3ff7b0d7, 0xa0000000, 0x3fb70a3d, 0x70a3d750}, /* 1.48067=f(0.09000)*/ +{12, 0,123,__LINE__, 0x3ff787b2, 0x40000000, 0x3fb99999, 0x999999df}, /* 1.47062=f(0.10000)*/ +{12, 0,123,__LINE__, 0x3ff75e82, 0x20000000, 0x3fbc28f5, 0xc28f5c6e}, /* 1.46057=f(0.11000)*/ +{12, 0,123,__LINE__, 0x3ff73546, 0x40000000, 0x3fbeb851, 0xeb851efd}, /* 1.45050=f(0.12000)*/ +{12, 0,123,__LINE__, 0x3ff70bfd, 0xa0000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.44042=f(0.13000)*/ +{12, 0,123,__LINE__, 0x3ff6e2a6, 0xe0000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.43033=f(0.14000)*/ +{12, 0,123,__LINE__, 0x3ff6b941, 0x20000000, 0x3fc33333, 0x33333356}, /* 1.42022=f(0.15000)*/ +{12, 0,123,__LINE__, 0x3ff68fcb, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 1.41010=f(0.16000)*/ +{12, 0,123,__LINE__, 0x3ff66643, 0x80000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.39996=f(0.17000)*/ +{12, 0,123,__LINE__, 0x3ff63ca9, 0x40000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.38981=f(0.18000)*/ +{12, 0,123,__LINE__, 0x3ff612fb, 0x60000000, 0x3fc851eb, 0x851eb876}, /* 1.37963=f(0.19000)*/ +{12, 0,123,__LINE__, 0x3ff5e938, 0x40000000, 0x3fc99999, 0x999999be}, /* 1.36943=f(0.20000)*/ +{12, 0,123,__LINE__, 0x3ff5bf5f, 0x00000000, 0x3fcae147, 0xae147b06}, /* 1.35922=f(0.21000)*/ +{12, 0,123,__LINE__, 0x3ff5956e, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.34898=f(0.22000)*/ +{12, 0,123,__LINE__, 0x3ff56b64, 0x40000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.33871=f(0.23000)*/ +{12, 0,123,__LINE__, 0x3ff54140, 0x60000000, 0x3fceb851, 0xeb851ede}, /* 1.32843=f(0.24000)*/ +{12, 0,123,__LINE__, 0x3ff51701, 0x00000000, 0x3fd00000, 0x00000013}, /* 1.31811=f(0.25000)*/ +{12, 0,123,__LINE__, 0x3ff4eca4, 0xa0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.30777=f(0.26000)*/ +{12, 0,123,__LINE__, 0x3ff4c22a, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 1.29740=f(0.27000)*/ +{12, 0,123,__LINE__, 0x3ff4978f, 0xc0000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.28700=f(0.28000)*/ +{12, 0,123,__LINE__, 0x3ff46cd4, 0x40000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.27657=f(0.29000)*/ +{12, 0,123,__LINE__, 0x3ff441f6, 0x00000000, 0x3fd33333, 0x33333347}, /* 1.26610=f(0.30000)*/ +{12, 0,123,__LINE__, 0x3ff416f3, 0x80000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.25560=f(0.31000)*/ +{12, 0,123,__LINE__, 0x3ff3ebcb, 0x40000000, 0x3fd47ae1, 0x47ae148f}, /* 1.24506=f(0.32000)*/ +{12, 0,123,__LINE__, 0x3ff3c07b, 0x80000000, 0x3fd51eb8, 0x51eb8533}, /* 1.23449=f(0.33000)*/ +{12, 0,123,__LINE__, 0x3ff39502, 0xa0000000, 0x3fd5c28f, 0x5c28f5d7}, /* 1.22387=f(0.34000)*/ +{12, 0,123,__LINE__, 0x3ff3695e, 0xe0000000, 0x3fd66666, 0x6666667b}, /* 1.21322=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3ff33d8e, 0x80000000, 0x3fd70a3d, 0x70a3d71f}, /* 1.20252=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3ff3118f, 0xa0000000, 0x3fd7ae14, 0x7ae147c3}, /* 1.19178=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3ff2e560, 0x60000000, 0x3fd851eb, 0x851eb867}, /* 1.18100=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3ff2b8fe, 0xc0000000, 0x3fd8f5c2, 0x8f5c290b}, /* 1.17016=f(0.39000)*/ +{12, 0,123,__LINE__, 0x3ff28c68, 0xc0000000, 0x3fd99999, 0x999999af}, /* 1.15928=f(0.40000)*/ +{12, 0,123,__LINE__, 0x3ff25f9c, 0x40000000, 0x3fda3d70, 0xa3d70a53}, /* 1.14834=f(0.41000)*/ +{12, 0,123,__LINE__, 0x3ff23297, 0x00000000, 0x3fdae147, 0xae147af7}, /* 1.13735=f(0.42000)*/ +{12, 0,123,__LINE__, 0x3ff20556, 0xe0000000, 0x3fdb851e, 0xb851eb9b}, /* 1.12630=f(0.43000)*/ +{12, 0,123,__LINE__, 0x3ff1d7d9, 0x80000000, 0x3fdc28f5, 0xc28f5c3f}, /* 1.11519=f(0.44000)*/ +{12, 0,123,__LINE__, 0x3ff1aa1c, 0x80000000, 0x3fdccccc, 0xcccccce3}, /* 1.10403=f(0.45000)*/ +{12, 0,123,__LINE__, 0x3ff17c1d, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 1.09280=f(0.46000)*/ +{12, 0,123,__LINE__, 0x3ff14dd8, 0xc0000000, 0x3fde147a, 0xe147ae2b}, /* 1.08150=f(0.47000)*/ +{12, 0,123,__LINE__, 0x3ff11f4c, 0xe0000000, 0x3fdeb851, 0xeb851ecf}, /* 1.07014=f(0.48000)*/ +{12, 0,123,__LINE__, 0x3ff0f076, 0x40000000, 0x3fdf5c28, 0xf5c28f73}, /* 1.05870=f(0.49000)*/ +{12, 0,123,__LINE__, 0x3ff0c152, 0x40000000, 0x3fe00000, 0x0000000b}, /* 1.04719=f(0.50000)*/ +{12, 0,123,__LINE__, 0x3ff091dd, 0x60000000, 0x3fe051eb, 0x851eb85d}, /* 1.03561=f(0.51000)*/ +{12, 0,123,__LINE__, 0x3ff06214, 0xa0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 1.02394=f(0.52000)*/ +{12, 0,123,__LINE__, 0x3ff031f4, 0x40000000, 0x3fe0f5c2, 0x8f5c2901}, /* 1.01219=f(0.53000)*/ +{12, 0,123,__LINE__, 0x3ff00178, 0xa0000000, 0x3fe147ae, 0x147ae153}, /* 1.00035=f(0.54000)*/ +{11, 0,123,__LINE__, 0x3fefa13c, 0x40000000, 0x3fe19999, 0x999999a5}, /* 0.98843=f(0.55000)*/ +{11, 0,123,__LINE__, 0x3fef3ec1, 0x60000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.97641=f(0.56000)*/ +{11, 0,123,__LINE__, 0x3feedb77, 0xa0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.96429=f(0.57000)*/ +{11, 0,123,__LINE__, 0x3fee7756, 0xa0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.95206=f(0.58000)*/ +{11, 0,123,__LINE__, 0x3fee1254, 0x80000000, 0x3fe2e147, 0xae147aed}, /* 0.93973=f(0.59000)*/ +{11, 0,123,__LINE__, 0x3fedac67, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.92729=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3fed4583, 0xe0000000, 0x3fe3851e, 0xb851eb91}, /* 0.91473=f(0.61000)*/ +{11, 0,123,__LINE__, 0x3fecdd9f, 0xa0000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.90205=f(0.62000)*/ +{11, 0,123,__LINE__, 0x3fec74ae, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 0.88924=f(0.63000)*/ +{11, 0,123,__LINE__, 0x3fec0aa2, 0x40000000, 0x3fe47ae1, 0x47ae1487}, /* 0.87629=f(0.64000)*/ +{11, 0,123,__LINE__, 0x3feb9f6e, 0x80000000, 0x3fe4cccc, 0xccccccd9}, /* 0.86321=f(0.65000)*/ +{11, 0,123,__LINE__, 0x3feb3304, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.84997=f(0.66000)*/ +{11, 0,123,__LINE__, 0x3feac553, 0x20000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.83658=f(0.67000)*/ +{11, 0,123,__LINE__, 0x3fea564a, 0xc0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82303=f(0.68000)*/ +{11, 0,123,__LINE__, 0x3fe9e5d8, 0x60000000, 0x3fe6147a, 0xe147ae21}, /* 0.80930=f(0.69000)*/ +{11, 0,123,__LINE__, 0x3fe973e8, 0x40000000, 0x3fe66666, 0x66666673}, /* 0.79539=f(0.70000)*/ +{11, 0,123,__LINE__, 0x3fe90065, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 0.78129=f(0.71000)*/ +{11, 0,123,__LINE__, 0x3fe88b36, 0xe0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.76699=f(0.72000)*/ +{11, 0,123,__LINE__, 0x3fe81445, 0x20000000, 0x3fe75c28, 0xf5c28f69}, /* 0.75247=f(0.73000)*/ +{11, 0,123,__LINE__, 0x3fe79b73, 0x60000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.73772=f(0.74000)*/ +{11, 0,123,__LINE__, 0x3fe720a3, 0x80000000, 0x3fe80000, 0x0000000d}, /* 0.72273=f(0.75000)*/ +{11, 0,123,__LINE__, 0x3fe6a3b3, 0xc0000000, 0x3fe851eb, 0x851eb85f}, /* 0.70748=f(0.76000)*/ +{11, 0,123,__LINE__, 0x3fe6247f, 0x40000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.69195=f(0.77000)*/ +{11, 0,123,__LINE__, 0x3fe5a2dc, 0xa0000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.67613=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3fe51e9d, 0xa0000000, 0x3fe947ae, 0x147ae155}, /* 0.65998=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3fe4978f, 0xa0000000, 0x3fe99999, 0x999999a7}, /* 0.64350=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3fe40d78, 0x20000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.62664=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3fe38015, 0xa0000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.60938=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3fe2ef1d, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.59168=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3fe25a38, 0x40000000, 0x3feae147, 0xae147aef}, /* 0.57351=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3fe1c103, 0x00000000, 0x3feb3333, 0x33333341}, /* 0.55481=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3fe12308, 0xc0000000, 0x3feb851e, 0xb851eb93}, /* 0.53552=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3fe07fbf, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 0.51559=f(0.87000)*/ +{10, 0,123,__LINE__, 0x3fdfad00, 0x40000000, 0x3fec28f5, 0xc28f5c37}, /* 0.49493=f(0.88000)*/ +{10, 0,123,__LINE__, 0x3fde4d06, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 0.47345=f(0.89000)*/ +{10, 0,123,__LINE__, 0x3fdcdd9f, 0xc0000000, 0x3feccccc, 0xccccccdb}, /* 0.45102=f(0.90000)*/ +{10, 0,123,__LINE__, 0x3fdb5c5c, 0x20000000, 0x3fed1eb8, 0x51eb852d}, /* 0.42751=f(0.91000)*/ +{10, 0,123,__LINE__, 0x3fd9c618, 0x60000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.40271=f(0.92000)*/ +{10, 0,123,__LINE__, 0x3fd816aa, 0xa0000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.37638=f(0.93000)*/ +{10, 0,123,__LINE__, 0x3fd6485a, 0x20000000, 0x3fee147a, 0xe147ae23}, /* 0.34816=f(0.94000)*/ +{10, 0,123,__LINE__, 0x3fd452e9, 0x20000000, 0x3fee6666, 0x66666675}, /* 0.31756=f(0.95000)*/ +{10, 0,123,__LINE__, 0x3fd229af, 0x20000000, 0x3feeb851, 0xeb851ec7}, /* 0.28379=f(0.96000)*/ +{10, 0,123,__LINE__, 0x3fcf6eaf, 0xe0000000, 0x3fef0a3d, 0x70a3d719}, /* 0.24556=f(0.97000)*/ +{10, 0,123,__LINE__, 0x3fc9a491, 0xa0000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.20033=f(0.98000)*/ +{10, 0,123,__LINE__, 0x3fc21df6, 0xa0000000, 0x3fefae14, 0x7ae147bd}, /* 0.14153=f(0.99000)*/ +{ 2, 0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 0.00000=f(1.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{13, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0x00000000, 0x00000000}, /* 1.57079=f(0.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{11, 0,123,__LINE__, 0x3fedac67, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.92729=f(0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_acosf(m) {run_vector_1(m,acosf_vec,(char *)(acosf),"acosf","ff"); } diff --git a/newlib/libm/test/acosh_vec.c b/newlib/libm/test/acosh_vec.c new file mode 100644 index 000000000..48f169c8b --- /dev/null +++ b/newlib/libm/test/acosh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type acosh_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3cd19000, 0x00000000}, /* 64.0000=f(9.74915e-16)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 64.0000=f(0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 64.0000=f(0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 64.0000=f(0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 64.0000=f(0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 64.0000=f(0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 64.0000=f(0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 64.0000=f(0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 64.0000=f(0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 64.0000=f(0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb99999, 0x999999df}, /* 64.0000=f(0.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 64.0000=f(0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 64.0000=f(0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 64.0000=f(0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 64.0000=f(0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc33333, 0x33333356}, /* 64.0000=f(0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 64.0000=f(0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 64.0000=f(0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 64.0000=f(0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 64.0000=f(0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc99999, 0x999999be}, /* 64.0000=f(0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 64.0000=f(0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 64.0000=f(0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 64.0000=f(0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 64.0000=f(0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd00000, 0x00000013}, /* 64.0000=f(0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 64.0000=f(0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 64.0000=f(0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 64.0000=f(0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 64.0000=f(0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd33333, 0x33333347}, /* 64.0000=f(0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 64.0000=f(0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 64.0000=f(0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 64.0000=f(0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 64.0000=f(0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 64.0000=f(0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 64.0000=f(0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 64.0000=f(0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 64.0000=f(0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 64.0000=f(0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd99999, 0x999999af}, /* 64.0000=f(0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 64.0000=f(0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 64.0000=f(0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 64.0000=f(0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 64.0000=f(0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 64.0000=f(0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 64.0000=f(0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 64.0000=f(0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 64.0000=f(0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 64.0000=f(0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 64.0000=f(0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 64.0000=f(0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 64.0000=f(0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 64.0000=f(0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 64.0000=f(0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 64.0000=f(0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 64.0000=f(0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 64.0000=f(0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 64.0000=f(0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 64.0000=f(0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 64.0000=f(0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 64.0000=f(0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 64.0000=f(0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 64.0000=f(0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 64.0000=f(0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 64.0000=f(0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 64.0000=f(0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 64.0000=f(0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 64.0000=f(0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 64.0000=f(0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe66666, 0x66666673}, /* 64.0000=f(0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 64.0000=f(0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 64.0000=f(0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 64.0000=f(0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 64.0000=f(0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 64.0000=f(0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 64.0000=f(0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 64.0000=f(0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 64.0000=f(0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 64.0000=f(0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 64.0000=f(0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 64.0000=f(0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 64.0000=f(0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 64.0000=f(0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feae147, 0xae147aef}, /* 64.0000=f(0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feb3333, 0x33333341}, /* 64.0000=f(0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 64.0000=f(0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 64.0000=f(0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 64.0000=f(0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 64.0000=f(0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 64.0000=f(0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 64.0000=f(0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 64.0000=f(0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 64.0000=f(0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 64.0000=f(0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fee6666, 0x66666675}, /* 64.0000=f(0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 64.0000=f(0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 64.0000=f(0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 64.0000=f(0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 64.0000=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3e6deeea, 0x11683f4a, 0x3ff00000, 0x00000007}, /* 5.57550e-08=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fc2163d, 0xee5f07f9, 0x3ff028f5, 0xc28f5c30}, /* 0.14130=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fc98eb9, 0xe7e5fd58, 0x3ff051eb, 0x851eb859}, /* 0.19966=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fcf468e, 0x57434f4b, 0x3ff07ae1, 0x47ae1482}, /* 0.24434=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fd20ac9, 0x107d5e9a, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.28190=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fd427ba, 0x2a941d9f, 0x3ff0cccc, 0xccccccd4}, /* 0.31492=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fd60f95, 0x22de1cc2, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.34470=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fd7cf1f, 0x7a34d794, 0x3ff11eb8, 0x51eb8526}, /* 0.37201=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fd96ead, 0x72fe8b7b, 0x3ff147ae, 0x147ae14f}, /* 0.39738=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fdaf409, 0x85d31cf8, 0x3ff170a3, 0xd70a3d78}, /* 0.42114=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fdc636c, 0x1a882f69, 0x3ff19999, 0x999999a1}, /* 0.44356=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fddc005, 0x97e5fb4d, 0x3ff1c28f, 0x5c28f5ca}, /* 0.46484=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fdf0c50, 0xde26552c, 0x3ff1eb85, 0x1eb851f3}, /* 0.48512=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fe02523, 0xa6a3357e, 0x3ff2147a, 0xe147ae1c}, /* 0.50453=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fe0bdc1, 0x86cd1a78, 0x3ff23d70, 0xa3d70a45}, /* 0.52316=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fe150ab, 0x3dddd7d0, 0x3ff26666, 0x6666666e}, /* 0.54109=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fe1de6e, 0x5347350c, 0x3ff28f5c, 0x28f5c297}, /* 0.55840=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fe26782, 0x9cd65ec3, 0x3ff2b851, 0xeb851ec0}, /* 0.57513=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fe2ec4e, 0xa565fcda, 0x3ff2e147, 0xae147ae9}, /* 0.59134=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fe36d2a, 0xfd6a7945, 0x3ff30a3d, 0x70a3d712}, /* 0.60707=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff05f23, 0xc6cbaf31, 0x3ff921fb, 0x54442d18}, /* 1.02322=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ffcfc02, 0xf90106c2, 0x400921fb, 0x54442d18}, /* 1.81152=f(3.14159)*/ +{64, 0,123,__LINE__, 0x4001dae8, 0xc0b16d3a, 0x4012d97c, 0x7f3321d2}, /* 2.23188=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 64.0000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff799c8, 0x8e7913fb, 0x40026666, 0x66666654}, /* 1.47504=f(2.30000)*/ +{64, 0,123,__LINE__, 0x400081eb, 0x4b42158d, 0x400fffff, 0xffffffee}, /* 2.06343=f(4.00000)*/ +{64, 0,123,__LINE__, 0x40036818, 0xad5efded, 0x4016cccc, 0xccccccc4}, /* 2.42582=f(5.70000)*/ +{64, 0,123,__LINE__, 0x4005852e, 0x905215c9, 0x401d9999, 0x99999991}, /* 2.69003=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40072fe6, 0x812dfbf7, 0x40223333, 0x3333332f}, /* 2.89838=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40089078, 0xdf0e2775, 0x40259999, 0x99999995}, /* 3.07054=f(10.8000)*/ +{64, 0,123,__LINE__, 0x4009bcf9, 0x1653a9ba, 0x4028ffff, 0xfffffffb}, /* 3.21727=f(12.5000)*/ +{64, 0,123,__LINE__, 0x400ac2dc, 0x6e1e5efd, 0x402c6666, 0x66666661}, /* 3.34514=f(14.2000)*/ +{64, 0,123,__LINE__, 0x400baaf5, 0x6e4f1835, 0x402fcccc, 0xccccccc7}, /* 3.45847=f(15.9000)*/ +{64, 0,123,__LINE__, 0x400c7b5e, 0x132b5044, 0x40319999, 0x99999997}, /* 3.56023=f(17.6000)*/ +{64, 0,123,__LINE__, 0x400d387c, 0x181abbba, 0x40334ccc, 0xccccccca}, /* 3.65258=f(19.3000)*/ +{64, 0,123,__LINE__, 0x400de595, 0xdc406bd2, 0x4034ffff, 0xfffffffd}, /* 3.73710=f(21.0000)*/ +{64, 0,123,__LINE__, 0x400e852c, 0xa8e313ce, 0x4036b333, 0x33333330}, /* 3.81502=f(22.7000)*/ +{64, 0,123,__LINE__, 0x400f1936, 0x0e3b986c, 0x40386666, 0x66666663}, /* 3.88731=f(24.4000)*/ +{64, 0,123,__LINE__, 0x400fa341, 0xc64646d7, 0x403a1999, 0x99999996}, /* 3.95471=f(26.1000)*/ +{64, 0,123,__LINE__, 0x40101249, 0xc6ea2cbb, 0x403bcccc, 0xccccccc9}, /* 4.01786=f(27.8000)*/ +{64, 0,123,__LINE__, 0x40104f1a, 0xa2d94c29, 0x403d7fff, 0xfffffffc}, /* 4.07725=f(29.5000)*/ +0,}; +test_acosh(m) {run_vector_1(m,acosh_vec,(char *)(acosh),"acosh","dd"); } diff --git a/newlib/libm/test/acoshf_vec.c b/newlib/libm/test/acoshf_vec.c new file mode 100644 index 000000000..ba40d2987 --- /dev/null +++ b/newlib/libm/test/acoshf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type acoshf_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3cd19000, 0x00000000}, /* 64.0000=f(9.74915e-16)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 64.0000=f(0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 64.0000=f(0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 64.0000=f(0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 64.0000=f(0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 64.0000=f(0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 64.0000=f(0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 64.0000=f(0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 64.0000=f(0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 64.0000=f(0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fb99999, 0x999999df}, /* 64.0000=f(0.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 64.0000=f(0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 64.0000=f(0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 64.0000=f(0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 64.0000=f(0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc33333, 0x33333356}, /* 64.0000=f(0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 64.0000=f(0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 64.0000=f(0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 64.0000=f(0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 64.0000=f(0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fc99999, 0x999999be}, /* 64.0000=f(0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 64.0000=f(0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 64.0000=f(0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 64.0000=f(0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 64.0000=f(0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd00000, 0x00000013}, /* 64.0000=f(0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 64.0000=f(0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 64.0000=f(0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 64.0000=f(0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 64.0000=f(0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd33333, 0x33333347}, /* 64.0000=f(0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 64.0000=f(0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 64.0000=f(0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 64.0000=f(0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 64.0000=f(0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 64.0000=f(0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 64.0000=f(0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 64.0000=f(0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 64.0000=f(0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 64.0000=f(0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fd99999, 0x999999af}, /* 64.0000=f(0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 64.0000=f(0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 64.0000=f(0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 64.0000=f(0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 64.0000=f(0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 64.0000=f(0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 64.0000=f(0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 64.0000=f(0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 64.0000=f(0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 64.0000=f(0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 64.0000=f(0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 64.0000=f(0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 64.0000=f(0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 64.0000=f(0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 64.0000=f(0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 64.0000=f(0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 64.0000=f(0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 64.0000=f(0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 64.0000=f(0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 64.0000=f(0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 64.0000=f(0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 64.0000=f(0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 64.0000=f(0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 64.0000=f(0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 64.0000=f(0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 64.0000=f(0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 64.0000=f(0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 64.0000=f(0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 64.0000=f(0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 64.0000=f(0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe66666, 0x66666673}, /* 64.0000=f(0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 64.0000=f(0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 64.0000=f(0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 64.0000=f(0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 64.0000=f(0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 64.0000=f(0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 64.0000=f(0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 64.0000=f(0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 64.0000=f(0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 64.0000=f(0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 64.0000=f(0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 64.0000=f(0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 64.0000=f(0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 64.0000=f(0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feae147, 0xae147aef}, /* 64.0000=f(0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feb3333, 0x33333341}, /* 64.0000=f(0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 64.0000=f(0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 64.0000=f(0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 64.0000=f(0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 64.0000=f(0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 64.0000=f(0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 64.0000=f(0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 64.0000=f(0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 64.0000=f(0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 64.0000=f(0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fee6666, 0x66666675}, /* 64.0000=f(0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 64.0000=f(0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 64.0000=f(0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 64.0000=f(0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 64.0000=f(0.99000)*/ +{ 1, 0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 0.00000=f(1.00000)*/ +{ 1, 0,123,__LINE__, 0x3fc2163d, 0x40000000, 0x3ff028f5, 0xc28f5c30}, /* 0.14130=f(1.01000)*/ +{ 1, 0,123,__LINE__, 0x3fc98eb9, 0x20000000, 0x3ff051eb, 0x851eb859}, /* 0.19966=f(1.02000)*/ +{ 1, 0,123,__LINE__, 0x3fcf468d, 0x80000000, 0x3ff07ae1, 0x47ae1482}, /* 0.24434=f(1.03000)*/ +{ 1, 0,123,__LINE__, 0x3fd20ac8, 0x80000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.28190=f(1.04000)*/ +{ 1, 0,123,__LINE__, 0x3fd427b9, 0xa0000000, 0x3ff0cccc, 0xccccccd4}, /* 0.31492=f(1.05000)*/ +{ 1, 0,123,__LINE__, 0x3fd60f94, 0x80000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.34470=f(1.06000)*/ +{ 1, 0,123,__LINE__, 0x3fd7cf20, 0x3dc00000, 0x3ff11eb8, 0x51eb8526}, /* 0.37201=f(1.07000)*/ +{ 1, 0,123,__LINE__, 0x3fd96ead, 0xbdc00000, 0x3ff147ae, 0x147ae14f}, /* 0.39738=f(1.08000)*/ +{ 1, 0,123,__LINE__, 0x3fdaf409, 0xbdc00000, 0x3ff170a3, 0xd70a3d78}, /* 0.42114=f(1.09000)*/ +{ 1, 0,123,__LINE__, 0x3fdc636c, 0x4dc00000, 0x3ff19999, 0x999999a1}, /* 0.44356=f(1.10000)*/ +{ 1, 0,123,__LINE__, 0x3fddc005, 0xadc00000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.46484=f(1.11000)*/ +{ 1, 0,123,__LINE__, 0x3fdf0c50, 0xbdc00000, 0x3ff1eb85, 0x1eb851f3}, /* 0.48512=f(1.12000)*/ +{ 1, 0,123,__LINE__, 0x3fe02523, 0x9ee00000, 0x3ff2147a, 0xe147ae1c}, /* 0.50453=f(1.13000)*/ +{ 1, 0,123,__LINE__, 0x3fe0bdc1, 0x66e00000, 0x3ff23d70, 0xa3d70a45}, /* 0.52316=f(1.14000)*/ +{ 1, 0,123,__LINE__, 0x3fe150ab, 0x2ee00000, 0x3ff26666, 0x6666666e}, /* 0.54109=f(1.15000)*/ +{ 1, 0,123,__LINE__, 0x3fe1de6e, 0x2ee00000, 0x3ff28f5c, 0x28f5c297}, /* 0.55840=f(1.16000)*/ +{ 1, 0,123,__LINE__, 0x3fe26782, 0x6ee00000, 0x3ff2b851, 0xeb851ec0}, /* 0.57513=f(1.17000)*/ +{ 1, 0,123,__LINE__, 0x3fe2ec4e, 0x76e00000, 0x3ff2e147, 0xae147ae9}, /* 0.59134=f(1.18000)*/ +{ 1, 0,123,__LINE__, 0x3fe36d2b, 0x22e00000, 0x3ff30a3d, 0x70a3d712}, /* 0.60707=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 1, 0,123,__LINE__, 0x3ff05f23, 0xd7700000, 0x3ff921fb, 0x54442d18}, /* 1.02322=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3ffcfc03, 0x06500000, 0x400921fb, 0x54442d18}, /* 1.81152=f(3.14159)*/ +{14, 0,123,__LINE__, 0x4001dae8, 0xbf280000, 0x4012d97c, 0x7f3321d2}, /* 2.23188=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 64.0000=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0x3ff799c8, 0x90e00000, 0x40026666, 0x66666654}, /* 1.47504=f(2.30000)*/ +{14, 0,123,__LINE__, 0x400081eb, 0x4d280000, 0x400fffff, 0xffffffee}, /* 2.06343=f(4.00000)*/ +{13, 0,123,__LINE__, 0x40036818, 0xab280000, 0x4016cccc, 0xccccccc4}, /* 2.42582=f(5.70000)*/ +{15, 0,123,__LINE__, 0x4005852e, 0x93e00000, 0x401d9999, 0x99999991}, /* 2.69003=f(7.40000)*/ +{14, 0,123,__LINE__, 0x40072fe6, 0x8ee00000, 0x40223333, 0x3333332f}, /* 2.89838=f(9.10000)*/ +{12, 0,123,__LINE__, 0x40089078, 0xeae00000, 0x40259999, 0x99999995}, /* 3.07054=f(10.8000)*/ +{12, 0,123,__LINE__, 0x4009bcf9, 0x18980000, 0x4028ffff, 0xfffffffb}, /* 3.21727=f(12.5000)*/ +{12, 0,123,__LINE__, 0x400ac2dc, 0x6a980000, 0x402c6666, 0x66666661}, /* 3.34514=f(14.2000)*/ +{12, 0,123,__LINE__, 0x400baaf5, 0x6e280000, 0x402fcccc, 0xccccccc7}, /* 3.45847=f(15.9000)*/ +{12, 0,123,__LINE__, 0x400c7b5e, 0x1a980000, 0x40319999, 0x99999997}, /* 3.56023=f(17.6000)*/ +{12, 0,123,__LINE__, 0x400d387c, 0x04980000, 0x40334ccc, 0xccccccca}, /* 3.65258=f(19.3000)*/ +{12, 0,123,__LINE__, 0x400de595, 0xde980000, 0x4034ffff, 0xfffffffd}, /* 3.73710=f(21.0000)*/ +{12, 0,123,__LINE__, 0x400e852c, 0xb6500000, 0x4036b333, 0x33333330}, /* 3.81502=f(22.7000)*/ +{12, 0,123,__LINE__, 0x400f1936, 0x0e500000, 0x40386666, 0x66666663}, /* 3.88731=f(24.4000)*/ +{12, 0,123,__LINE__, 0x400fa341, 0xd0500000, 0x403a1999, 0x99999996}, /* 3.95471=f(26.1000)*/ +{11, 0,123,__LINE__, 0x40101249, 0xc6280000, 0x403bcccc, 0xccccccc9}, /* 4.01785=f(27.8000)*/ +{11, 0,123,__LINE__, 0x40104f1a, 0xa0280000, 0x403d7fff, 0xfffffffc}, /* 4.07725=f(29.5000)*/ +0,}; +test_acoshf(m) {run_vector_1(m,acoshf_vec,(char *)(acoshf),"acoshf","ff"); } diff --git a/newlib/libm/test/asin_vec.c b/newlib/libm/test/asin_vec.c new file mode 100644 index 000000000..4215cc70d --- /dev/null +++ b/newlib/libm/test/asin_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type asin_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbff921fb, 0x4e9c057e, 0xbfefffff, 0xfffffffe}, /* -1.57079=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbff6de3c, 0x6f33d516, 0xbfefae14, 0x7ae147ac}, /* -1.42925=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbff5ed69, 0x0583be02, 0xbfef5c28, 0xf5c28f5a}, /* -1.37046=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbff53425, 0x38981ec3, 0xbfef0a3d, 0x70a3d708}, /* -1.32523=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbff4978f, 0xa3269edd, 0xbfeeb851, 0xeb851eb6}, /* -1.28700=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbff40d41, 0x159f3406, 0xbfee6666, 0x66666664}, /* -1.25323=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbff38fe4, 0xcb950b0e, 0xbfee147a, 0xe147ae12}, /* -1.22263=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbff31c50, 0xa48f3a72, 0xbfedc28f, 0x5c28f5c0}, /* -1.19441=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbff2b075, 0x29b17486, 0xbfed70a3, 0xd70a3d6e}, /* -1.16808=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbff24ae4, 0x3a7af145, 0xbfed1eb8, 0x51eb851c}, /* -1.14328=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbff1ea93, 0x705fa16e, 0xbfeccccc, 0xccccccca}, /* -1.11977=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbff18eb9, 0xcef862d5, 0xbfec7ae1, 0x47ae1478}, /* -1.09734=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbff136bb, 0x485f3d8e, 0xbfec28f5, 0xc28f5c26}, /* -1.07586=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbff0e21b, 0xd416ba13, 0xbfebd70a, 0x3d70a3d4}, /* -1.05520=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbff09076, 0xee9d82b8, 0xbfeb851e, 0xb851eb82}, /* -1.03527=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbff04179, 0xcba26d0b, 0xbfeb3333, 0x33333330}, /* -1.01598=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfefe9be, 0x811df6c4, 0xbfeae147, 0xae147ade}, /* -0.99728=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfef54d9, 0xa373fac6, 0xbfea8f5c, 0x28f5c28c}, /* -0.97910=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfeec3e1, 0x0a73632b, 0xbfea3d70, 0xa3d70a3a}, /* -0.96141=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfee367e, 0x7f21298e, 0xbfe9eb85, 0x1eb851e8}, /* -0.94415=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfedac67, 0x0561bb49, 0xbfe99999, 0x99999996}, /* -0.92729=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfed2558, 0xe9188de5, 0xbfe947ae, 0x147ae144}, /* -0.91080=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfeca11a, 0x353bd845, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.89466=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfec1f77, 0x7a9974eb, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.87884=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfeba042, 0xd36663d4, 0xbfe851eb, 0x851eb84e}, /* -0.86331=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfeb2353, 0x15c680d6, 0xbfe7ffff, 0xfffffffc}, /* -0.84806=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfeaa883, 0x2b0b051f, 0xbfe7ae14, 0x7ae147aa}, /* -0.83307=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfea2fb1, 0x83f1f795, 0xbfe75c28, 0xf5c28f58}, /* -0.81832=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe9b8bf, 0xa40885b7, 0xbfe70a3d, 0x70a3d706}, /* -0.80380=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe94391, 0xbfac8e45, 0xbfe6b851, 0xeb851eb4}, /* -0.78949=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe8d00e, 0x692afd8f, 0xbfe66666, 0x66666662}, /* -0.77539=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe85e1e, 0x4a3a04ec, 0xbfe6147a, 0xe147ae10}, /* -0.76148=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe7edab, 0xe7a11ff6, 0xbfe5c28f, 0x5c28f5be}, /* -0.74776=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe77ea3, 0x6d51891f, 0xbfe570a3, 0xd70a3d6c}, /* -0.73420=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe710f2, 0x8188f806, 0xbfe51eb8, 0x51eb851a}, /* -0.72081=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe6a488, 0x1ddc9b7c, 0xbfe4cccc, 0xccccccc8}, /* -0.70758=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe63954, 0x6d3fd534, 0xbfe47ae1, 0x47ae1476}, /* -0.69449=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe5cf48, 0xae44b71e, 0xbfe428f5, 0xc28f5c24}, /* -0.68155=f(-0.63000)*/ +{63, 0,123,__LINE__, 0xbfe56657, 0x18f62b90, 0xbfe3d70a, 0x3d70a3d2}, /* -0.66874=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe4fe72, 0xc7c6f173, 0xbfe3851e, 0xb851eb80}, /* -0.65606=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe4978f, 0xa3269eda, 0xbfe33333, 0x3333332e}, /* -0.64350=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe431a2, 0x4f5fc8de, 0xbfe2e147, 0xae147adc}, /* -0.63105=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe3cca0, 0x1c71184b, 0xbfe28f5c, 0x28f5c28a}, /* -0.61872=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe3687e, 0xf79f207e, 0xbfe23d70, 0xa3d70a38}, /* -0.60650=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe30535, 0x5e86c36c, 0xbfe1eb85, 0x1eb851e6}, /* -0.59438=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe2a2ba, 0x538032e9, 0xbfe19999, 0x99999994}, /* -0.58236=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe24105, 0x53298498, 0xbfe147ae, 0x147ae142}, /* -0.57043=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe1e00e, 0x4af594fc, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.55860=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe17fcd, 0x90a0d198, 0xbfe0a3d7, 0x0a3d709e}, /* -0.54685=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe1203b, 0xda719c32, 0xbfe051eb, 0x851eb84c}, /* -0.53518=f(-0.51000)*/ +{63, 0,123,__LINE__, 0xbfe0c152, 0x382d735f, 0xbfdfffff, 0xfffffff4}, /* -0.52359=f(-0.50000)*/ +{61, 0,123,__LINE__, 0xbfe0630a, 0x0caf0114, 0xbfdf5c28, 0xf5c28f50}, /* -0.51208=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfe0055d, 0x080bb62d, 0xbfdeb851, 0xeb851eac}, /* -0.50065=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfdf508a, 0x44738570, 0xbfde147a, 0xe147ae08}, /* -0.48929=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfde9779, 0x2c522bd2, 0xbfdd70a3, 0xd70a3d64}, /* -0.47799=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdddf7b, 0xba8753be, 0xbfdccccc, 0xccccccc0}, /* -0.46676=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdd2887, 0x569581bb, 0xbfdc28f5, 0xc28f5c1c}, /* -0.45559=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdc7291, 0xd50fd810, 0xbfdb851e, 0xb851eb78}, /* -0.44449=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdbbd91, 0x70937b71, 0xbfdae147, 0xae147ad4}, /* -0.43344=f(-0.42000)*/ +{60, 0,123,__LINE__, 0xbfdb097c, 0xc349e2b8, 0xbfda3d70, 0xa3d70a30}, /* -0.42245=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfda564a, 0xc0e73a24, 0xbfd99999, 0x9999998c}, /* -0.41151=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd9a3f2, 0xb11964dc, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.40063=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd8f26c, 0x2a5d5e0e, 0xbfd851eb, 0x851eb844}, /* -0.38979=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd841af, 0x0d31cc44, 0xbfd7ae14, 0x7ae147a0}, /* -0.37900=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd791b3, 0x7f9e8a16, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36826=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd6e271, 0xe909bbd5, 0xbfd66666, 0x66666658}, /* -0.35757=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd633e2, 0xee53c5a9, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34691=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd585ff, 0x6e341c2e, 0xbfd51eb8, 0x51eb8510}, /* -0.33630=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd4d8c0, 0x7dd17d6d, 0xbfd47ae1, 0x47ae146c}, /* -0.32572=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd42c1f, 0x6590a36d, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31519=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd38015, 0x9e14f6ef, 0xbfd33333, 0x33333324}, /* -0.30469=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd2d49c, 0xcd6f3123, 0xbfd28f5c, 0x28f5c280}, /* -0.29422=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd229ae, 0xc47638cc, 0xbfd1eb85, 0x1eb851dc}, /* -0.28379=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd17f45, 0x7c46da9a, 0xbfd147ae, 0x147ae138}, /* -0.27339=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd0d55b, 0x13e7479e, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26302=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfd02be9, 0xce0b87bd, 0xbfcfffff, 0xffffffe0}, /* -0.25268=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfcf05d8, 0x1df0951e, 0xbfceb851, 0xeb851e98}, /* -0.24236=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcdb4b8, 0xb5036e78, 0xbfcd70a3, 0xd70a3d50}, /* -0.23207=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcc646a, 0xa44819b8, 0xbfcc28f5, 0xc28f5c08}, /* -0.22181=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcb14e3, 0x666821d7, 0xbfcae147, 0xae147ac0}, /* -0.21157=f(-0.21000)*/ +{63, 0,123,__LINE__, 0xbfc9c618, 0xaa4ae21b, 0xbfc99999, 0x99999978}, /* -0.20135=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc87800, 0x4fcac25f, 0xbfc851eb, 0x851eb830}, /* -0.19116=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc72a90, 0x648fbf03, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18098=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5ddbf, 0x210c49be, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17082=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc49182, 0xe599c56f, 0xbfc47ae1, 0x47ae1458}, /* -0.16069=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc345d2, 0x37b20e8f, 0xbfc33333, 0x33333310}, /* -0.15056=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1faa3, 0xbf43ad16, 0xbfc1eb85, 0x1eb851c8}, /* -0.14046=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0afee, 0x441e734b, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13036=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbecb51, 0x56ece03e, 0xbfbeb851, 0xeb851e71}, /* -0.12028=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc3793, 0xeaf6762d, 0xbfbc28f5, 0xc28f5be2}, /* -0.11022=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb9a492, 0x7603783d, 0xbfb99999, 0x99999953}, /* -0.10016=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb7123b, 0x567d55f2, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09012=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb4807d, 0x13203146, 0xbfb47ae1, 0x47ae1435}, /* -0.08008=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1ef46, 0x56a8d246, 0xbfb1eb85, 0x1eb851a6}, /* -0.07005=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaebd0b, 0xd734d81c, 0xbfaeb851, 0xeb851e2d}, /* -0.06003=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99c55, 0x703285cd, 0xbfa99999, 0x9999990e}, /* -0.05002=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47c47, 0x73aebccd, 0xbfa47ae1, 0x47ae13ef}, /* -0.04001=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb980, 0x084226ee, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947b3a, 0xc64bdf81, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847af7, 0xa68f8cbd, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847af7, 0xa68f9121, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947b3a, 0xc64be1b3, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb980, 0x08422920, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47c47, 0x73aebde6, 0x3fa47ae1, 0x47ae1508}, /* 0.04001=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99c55, 0x703286e6, 0x3fa99999, 0x99999a27}, /* 0.05002=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faebd0b, 0xd734d935, 0x3faeb851, 0xeb851f46}, /* 0.06003=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1ef46, 0x56a8d2d3, 0x3fb1eb85, 0x1eb85232}, /* 0.07005=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb4807d, 0x132031d3, 0x3fb47ae1, 0x47ae14c1}, /* 0.08008=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb7123b, 0x567d567e, 0x3fb70a3d, 0x70a3d750}, /* 0.09012=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb9a492, 0x760378c9, 0x3fb99999, 0x999999df}, /* 0.10016=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc3793, 0xeaf676ba, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11022=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbecb51, 0x56ece0cb, 0x3fbeb851, 0xeb851efd}, /* 0.12028=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0afee, 0x441e7392, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13036=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1faa3, 0xbf43ad5d, 0x3fc1eb85, 0x1eb8520e}, /* 0.14046=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc345d2, 0x37b20ed6, 0x3fc33333, 0x33333356}, /* 0.15056=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc49182, 0xe599c5b6, 0x3fc47ae1, 0x47ae149e}, /* 0.16069=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5ddbf, 0x210c4a05, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17082=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc72a90, 0x648fbf4a, 0x3fc70a3d, 0x70a3d72e}, /* 0.18098=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc87800, 0x4fcac2a6, 0x3fc851eb, 0x851eb876}, /* 0.19116=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc9c618, 0xaa4ae262, 0x3fc99999, 0x999999be}, /* 0.20135=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcb14e3, 0x6668221e, 0x3fcae147, 0xae147b06}, /* 0.21157=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcc646a, 0xa44819ff, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22181=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcdb4b8, 0xb5036ec0, 0x3fcd70a3, 0xd70a3d96}, /* 0.23207=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fcf05d8, 0x1df09566, 0x3fceb851, 0xeb851ede}, /* 0.24236=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd02be9, 0xce0b87e1, 0x3fd00000, 0x00000013}, /* 0.25268=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd0d55b, 0x13e747c2, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26302=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd17f45, 0x7c46dabf, 0x3fd147ae, 0x147ae15b}, /* 0.27339=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd229ae, 0xc47638f1, 0x3fd1eb85, 0x1eb851ff}, /* 0.28379=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd2d49c, 0xcd6f3148, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29422=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd38015, 0x9e14f713, 0x3fd33333, 0x33333347}, /* 0.30469=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd42c1f, 0x6590a392, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31519=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd4d8c0, 0x7dd17d92, 0x3fd47ae1, 0x47ae148f}, /* 0.32572=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd585ff, 0x6e341c53, 0x3fd51eb8, 0x51eb8533}, /* 0.33630=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd633e2, 0xee53c5ce, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34691=f(0.34000)*/ +{63, 0,123,__LINE__, 0x3fd6e271, 0xe909bbfb, 0x3fd66666, 0x6666667b}, /* 0.35757=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd791b3, 0x7f9e8a3c, 0x3fd70a3d, 0x70a3d71f}, /* 0.36826=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd841af, 0x0d31cc69, 0x3fd7ae14, 0x7ae147c3}, /* 0.37900=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd8f26c, 0x2a5d5e34, 0x3fd851eb, 0x851eb867}, /* 0.38979=f(0.38000)*/ +{63, 0,123,__LINE__, 0x3fd9a3f2, 0xb1196503, 0x3fd8f5c2, 0x8f5c290b}, /* 0.40063=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fda564a, 0xc0e73a4b, 0x3fd99999, 0x999999af}, /* 0.41151=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fdb097c, 0xc349e2de, 0x3fda3d70, 0xa3d70a53}, /* 0.42245=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fdbbd91, 0x70937b97, 0x3fdae147, 0xae147af7}, /* 0.43344=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdc7291, 0xd50fd837, 0x3fdb851e, 0xb851eb9b}, /* 0.44449=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdd2887, 0x569581e2, 0x3fdc28f5, 0xc28f5c3f}, /* 0.45559=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdddf7b, 0xba8753e5, 0x3fdccccc, 0xcccccce3}, /* 0.46676=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fde9779, 0x2c522bfa, 0x3fdd70a3, 0xd70a3d87}, /* 0.47799=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdf508a, 0x44738598, 0x3fde147a, 0xe147ae2b}, /* 0.48929=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fe0055d, 0x080bb641, 0x3fdeb851, 0xeb851ecf}, /* 0.50065=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe0630a, 0x0caf0128, 0x3fdf5c28, 0xf5c28f73}, /* 0.51208=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe0c152, 0x382d7372, 0x3fe00000, 0x0000000b}, /* 0.52359=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe1203b, 0xda719c46, 0x3fe051eb, 0x851eb85d}, /* 0.53518=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe17fcd, 0x90a0d1ac, 0x3fe0a3d7, 0x0a3d70af}, /* 0.54685=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe1e00e, 0x4af59510, 0x3fe0f5c2, 0x8f5c2901}, /* 0.55860=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe24105, 0x532984ac, 0x3fe147ae, 0x147ae153}, /* 0.57043=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe2a2ba, 0x538032fd, 0x3fe19999, 0x999999a5}, /* 0.58236=f(0.55000)*/ +{63, 0,123,__LINE__, 0x3fe30535, 0x5e86c380, 0x3fe1eb85, 0x1eb851f7}, /* 0.59438=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe3687e, 0xf79f2092, 0x3fe23d70, 0xa3d70a49}, /* 0.60650=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe3cca0, 0x1c711860, 0x3fe28f5c, 0x28f5c29b}, /* 0.61872=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe431a2, 0x4f5fc8f3, 0x3fe2e147, 0xae147aed}, /* 0.63105=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe4978f, 0xa3269eef, 0x3fe33333, 0x3333333f}, /* 0.64350=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe4fe72, 0xc7c6f189, 0x3fe3851e, 0xb851eb91}, /* 0.65606=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe56657, 0x18f62ba7, 0x3fe3d70a, 0x3d70a3e3}, /* 0.66874=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe5cf48, 0xae44b733, 0x3fe428f5, 0xc28f5c35}, /* 0.68155=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe63954, 0x6d3fd54a, 0x3fe47ae1, 0x47ae1487}, /* 0.69449=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe6a488, 0x1ddc9b92, 0x3fe4cccc, 0xccccccd9}, /* 0.70758=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe710f2, 0x8188f81c, 0x3fe51eb8, 0x51eb852b}, /* 0.72081=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe77ea3, 0x6d518936, 0x3fe570a3, 0xd70a3d7d}, /* 0.73420=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe7edab, 0xe7a1200e, 0x3fe5c28f, 0x5c28f5cf}, /* 0.74776=f(0.68000)*/ +{63, 0,123,__LINE__, 0x3fe85e1e, 0x4a3a0502, 0x3fe6147a, 0xe147ae21}, /* 0.76148=f(0.69000)*/ +{63, 0,123,__LINE__, 0x3fe8d00e, 0x692afda6, 0x3fe66666, 0x66666673}, /* 0.77539=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe94391, 0xbfac8e5d, 0x3fe6b851, 0xeb851ec5}, /* 0.78949=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe9b8bf, 0xa40885cf, 0x3fe70a3d, 0x70a3d717}, /* 0.80380=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fea2fb1, 0x83f1f7af, 0x3fe75c28, 0xf5c28f69}, /* 0.81832=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3feaa883, 0x2b0b0538, 0x3fe7ae14, 0x7ae147bb}, /* 0.83307=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3feb2353, 0x15c680ef, 0x3fe80000, 0x0000000d}, /* 0.84806=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3feba042, 0xd36663ef, 0x3fe851eb, 0x851eb85f}, /* 0.86331=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fec1f77, 0x7a997507, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.87884=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3feca11a, 0x353bd860, 0x3fe8f5c2, 0x8f5c2903}, /* 0.89466=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fed2558, 0xe9188e00, 0x3fe947ae, 0x147ae155}, /* 0.91080=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fedac67, 0x0561bb65, 0x3fe99999, 0x999999a7}, /* 0.92729=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fee367e, 0x7f2129ab, 0x3fe9eb85, 0x1eb851f9}, /* 0.94415=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3feec3e1, 0x0a73634a, 0x3fea3d70, 0xa3d70a4b}, /* 0.96141=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fef54d9, 0xa373fae5, 0x3fea8f5c, 0x28f5c29d}, /* 0.97910=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fefe9be, 0x811df6e3, 0x3feae147, 0xae147aef}, /* 0.99728=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3ff04179, 0xcba26d1c, 0x3feb3333, 0x33333341}, /* 1.01598=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3ff09076, 0xee9d82c8, 0x3feb851e, 0xb851eb93}, /* 1.03527=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3ff0e21b, 0xd416ba24, 0x3febd70a, 0x3d70a3e5}, /* 1.05520=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3ff136bb, 0x485f3da0, 0x3fec28f5, 0xc28f5c37}, /* 1.07586=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3ff18eb9, 0xcef862e8, 0x3fec7ae1, 0x47ae1489}, /* 1.09734=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3ff1ea93, 0x705fa182, 0x3feccccc, 0xccccccdb}, /* 1.11977=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3ff24ae4, 0x3a7af15a, 0x3fed1eb8, 0x51eb852d}, /* 1.14328=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3ff2b075, 0x29b1749b, 0x3fed70a3, 0xd70a3d7f}, /* 1.16808=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3ff31c50, 0xa48f3a89, 0x3fedc28f, 0x5c28f5d1}, /* 1.19441=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3ff38fe4, 0xcb950b26, 0x3fee147a, 0xe147ae23}, /* 1.22263=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3ff40d41, 0x159f3421, 0x3fee6666, 0x66666675}, /* 1.25323=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3ff4978f, 0xa3269efb, 0x3feeb851, 0xeb851ec7}, /* 1.28700=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3ff53425, 0x38981ee6, 0x3fef0a3d, 0x70a3d719}, /* 1.32523=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3ff5ed69, 0x0583be2d, 0x3fef5c28, 0xf5c28f6b}, /* 1.37046=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3ff6de3c, 0x6f33d552, 0x3fefae14, 0x7ae147bd}, /* 1.42925=f(0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff00000, 0x00000007}, /* 64.0000=f(1.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{60, 0,123,__LINE__, 0x3fe4978f, 0xa3269e87, 0x3fe33333, 0x333332ec}, /* 0.64350=f(0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_asin(m) {run_vector_1(m,asin_vec,(char *)(asin),"asin","dd"); } diff --git a/newlib/libm/test/asinf_vec.c b/newlib/libm/test/asinf_vec.c new file mode 100644 index 000000000..7e1b271f2 --- /dev/null +++ b/newlib/libm/test/asinf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type asinf_vec[] = { +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{12, 0,123,__LINE__, 0xbff921fb, 0x60000000, 0xbfefffff, 0xfffffffe}, /* -1.57079=f(-0.01000)*/ +{11, 0,123,__LINE__, 0xbff6de3c, 0x80000000, 0xbfefae14, 0x7ae147ac}, /* -1.42925=f(-0.99000)*/ +{11, 0,123,__LINE__, 0xbff5ed69, 0x20000000, 0xbfef5c28, 0xf5c28f5a}, /* -1.37046=f(-0.98000)*/ +{11, 0,123,__LINE__, 0xbff53425, 0x60000000, 0xbfef0a3d, 0x70a3d708}, /* -1.32523=f(-0.97000)*/ +{11, 0,123,__LINE__, 0xbff4978f, 0xa0000000, 0xbfeeb851, 0xeb851eb6}, /* -1.28700=f(-0.96000)*/ +{11, 0,123,__LINE__, 0xbff40d41, 0x20000000, 0xbfee6666, 0x66666664}, /* -1.25323=f(-0.95000)*/ +{11, 0,123,__LINE__, 0xbff38fe4, 0xe0000000, 0xbfee147a, 0xe147ae12}, /* -1.22263=f(-0.94000)*/ +{11, 0,123,__LINE__, 0xbff31c50, 0xc0000000, 0xbfedc28f, 0x5c28f5c0}, /* -1.19441=f(-0.93000)*/ +{11, 0,123,__LINE__, 0xbff2b075, 0x40000000, 0xbfed70a3, 0xd70a3d6e}, /* -1.16808=f(-0.92000)*/ +{11, 0,123,__LINE__, 0xbff24ae4, 0x60000000, 0xbfed1eb8, 0x51eb851c}, /* -1.14328=f(-0.91000)*/ +{11, 0,123,__LINE__, 0xbff1ea93, 0x80000000, 0xbfeccccc, 0xccccccca}, /* -1.11977=f(-0.90000)*/ +{11, 0,123,__LINE__, 0xbff18eb9, 0xc0000000, 0xbfec7ae1, 0x47ae1478}, /* -1.09734=f(-0.89000)*/ +{11, 0,123,__LINE__, 0xbff136bb, 0x40000000, 0xbfec28f5, 0xc28f5c26}, /* -1.07586=f(-0.88000)*/ +{11, 0,123,__LINE__, 0xbff0e21b, 0xe0000000, 0xbfebd70a, 0x3d70a3d4}, /* -1.05520=f(-0.87000)*/ +{11, 0,123,__LINE__, 0xbff09077, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* -1.03527=f(-0.86000)*/ +{11, 0,123,__LINE__, 0xbff04179, 0xe0000000, 0xbfeb3333, 0x33333330}, /* -1.01598=f(-0.85000)*/ +{13, 0,123,__LINE__, 0xbfefe9be, 0x80000000, 0xbfeae147, 0xae147ade}, /* -0.99728=f(-0.84000)*/ +{13, 0,123,__LINE__, 0xbfef54d9, 0xc0000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.97910=f(-0.83000)*/ +{13, 0,123,__LINE__, 0xbfeec3e1, 0x20000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.96141=f(-0.82000)*/ +{13, 0,123,__LINE__, 0xbfee367e, 0xa0000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.94415=f(-0.81000)*/ +{13, 0,123,__LINE__, 0xbfedac67, 0x20000000, 0xbfe99999, 0x99999996}, /* -0.92729=f(-0.80000)*/ +{13, 0,123,__LINE__, 0xbfed2559, 0x20000000, 0xbfe947ae, 0x147ae144}, /* -0.91080=f(-0.79000)*/ +{13, 0,123,__LINE__, 0xbfeca11a, 0x20000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.89466=f(-0.78000)*/ +{13, 0,123,__LINE__, 0xbfec1f77, 0x80000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.87884=f(-0.77000)*/ +{14, 0,123,__LINE__, 0xbfeba043, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* -0.86331=f(-0.76000)*/ +{14, 0,123,__LINE__, 0xbfeb2353, 0x40000000, 0xbfe7ffff, 0xfffffffc}, /* -0.84806=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbfeaa883, 0x60000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.83307=f(-0.74000)*/ +{12, 0,123,__LINE__, 0xbfea2fb1, 0xa0000000, 0xbfe75c28, 0xf5c28f58}, /* -0.81832=f(-0.73000)*/ +{12, 0,123,__LINE__, 0xbfe9b8bf, 0xe0000000, 0xbfe70a3d, 0x70a3d706}, /* -0.80380=f(-0.72000)*/ +{12, 0,123,__LINE__, 0xbfe94391, 0xc0000000, 0xbfe6b851, 0xeb851eb4}, /* -0.78949=f(-0.71000)*/ +{12, 0,123,__LINE__, 0xbfe8d00e, 0x80000000, 0xbfe66666, 0x66666662}, /* -0.77539=f(-0.70000)*/ +{12, 0,123,__LINE__, 0xbfe85e1e, 0x60000000, 0xbfe6147a, 0xe147ae10}, /* -0.76148=f(-0.69000)*/ +{14, 0,123,__LINE__, 0xbfe7edac, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.74776=f(-0.68000)*/ +{14, 0,123,__LINE__, 0xbfe77ea3, 0xa0000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.73420=f(-0.67000)*/ +{14, 0,123,__LINE__, 0xbfe710f2, 0xc0000000, 0xbfe51eb8, 0x51eb851a}, /* -0.72081=f(-0.66000)*/ +{14, 0,123,__LINE__, 0xbfe6a488, 0x40000000, 0xbfe4cccc, 0xccccccc8}, /* -0.70758=f(-0.65000)*/ +{14, 0,123,__LINE__, 0xbfe63954, 0x80000000, 0xbfe47ae1, 0x47ae1476}, /* -0.69449=f(-0.64000)*/ +{15, 0,123,__LINE__, 0xbfe5cf48, 0xc0000000, 0xbfe428f5, 0xc28f5c24}, /* -0.68155=f(-0.63000)*/ +{13, 0,123,__LINE__, 0xbfe56657, 0x20000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.66874=f(-0.62000)*/ +{13, 0,123,__LINE__, 0xbfe4fe72, 0xe0000000, 0xbfe3851e, 0xb851eb80}, /* -0.65606=f(-0.61000)*/ +{13, 0,123,__LINE__, 0xbfe4978f, 0xc0000000, 0xbfe33333, 0x3333332e}, /* -0.64350=f(-0.60000)*/ +{13, 0,123,__LINE__, 0xbfe431a2, 0x40000000, 0xbfe2e147, 0xae147adc}, /* -0.63105=f(-0.59000)*/ +{15, 0,123,__LINE__, 0xbfe3cca0, 0x20000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.61872=f(-0.58000)*/ +{15, 0,123,__LINE__, 0xbfe3687f, 0x20000000, 0xbfe23d70, 0xa3d70a38}, /* -0.60650=f(-0.57000)*/ +{14, 0,123,__LINE__, 0xbfe30535, 0x60000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.59438=f(-0.56000)*/ +{14, 0,123,__LINE__, 0xbfe2a2ba, 0x80000000, 0xbfe19999, 0x99999994}, /* -0.58236=f(-0.55000)*/ +{14, 0,123,__LINE__, 0xbfe24105, 0x80000000, 0xbfe147ae, 0x147ae142}, /* -0.57043=f(-0.54000)*/ +{15, 0,123,__LINE__, 0xbfe1e00e, 0x40000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.55860=f(-0.53000)*/ +{15, 0,123,__LINE__, 0xbfe17fcd, 0x80000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.54685=f(-0.52000)*/ +{15, 0,123,__LINE__, 0xbfe1203c, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* -0.53518=f(-0.51000)*/ +{16, 0,123,__LINE__, 0xbfe0c152, 0x40000000, 0xbfdfffff, 0xfffffff4}, /* -0.52359=f(-0.50000)*/ +{10, 0,123,__LINE__, 0xbfe0630a, 0x20000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.51208=f(-0.49000)*/ +{10, 0,123,__LINE__, 0xbfe0055d, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* -0.50065=f(-0.48000)*/ +{15, 0,123,__LINE__, 0xbfdf508a, 0x40000000, 0xbfde147a, 0xe147ae08}, /* -0.48929=f(-0.47000)*/ +{14, 0,123,__LINE__, 0xbfde9779, 0x40000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.47799=f(-0.46000)*/ +{15, 0,123,__LINE__, 0xbfdddf7b, 0xa0000000, 0xbfdccccc, 0xccccccc0}, /* -0.46676=f(-0.45000)*/ +{15, 0,123,__LINE__, 0xbfdd2887, 0x60000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.45559=f(-0.44000)*/ +{13, 0,123,__LINE__, 0xbfdc7291, 0xe0000000, 0xbfdb851e, 0xb851eb78}, /* -0.44449=f(-0.43000)*/ +{15, 0,123,__LINE__, 0xbfdbbd91, 0x60000000, 0xbfdae147, 0xae147ad4}, /* -0.43344=f(-0.42000)*/ +{15, 0,123,__LINE__, 0xbfdb097c, 0xc0000000, 0xbfda3d70, 0xa3d70a30}, /* -0.42245=f(-0.41000)*/ +{14, 0,123,__LINE__, 0xbfda564a, 0xc0000000, 0xbfd99999, 0x9999998c}, /* -0.41151=f(-0.40000)*/ +{15, 0,123,__LINE__, 0xbfd9a3f2, 0xa0000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.40063=f(-0.39000)*/ +{16, 0,123,__LINE__, 0xbfd8f26c, 0x20000000, 0xbfd851eb, 0x851eb844}, /* -0.38979=f(-0.38000)*/ +{12, 0,123,__LINE__, 0xbfd841af, 0x20000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.37900=f(-0.37000)*/ +{16, 0,123,__LINE__, 0xbfd791b3, 0x80000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36826=f(-0.36000)*/ +{16, 0,123,__LINE__, 0xbfd6e271, 0xe0000000, 0xbfd66666, 0x66666658}, /* -0.35757=f(-0.35000)*/ +{14, 0,123,__LINE__, 0xbfd633e3, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34691=f(-0.34000)*/ +{16, 0,123,__LINE__, 0xbfd585ff, 0x80000000, 0xbfd51eb8, 0x51eb8510}, /* -0.33630=f(-0.33000)*/ +{16, 0,123,__LINE__, 0xbfd4d8c0, 0x80000000, 0xbfd47ae1, 0x47ae146c}, /* -0.32572=f(-0.32000)*/ +{13, 0,123,__LINE__, 0xbfd42c1f, 0x60000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31519=f(-0.31000)*/ +{16, 0,123,__LINE__, 0xbfd38015, 0xa0000000, 0xbfd33333, 0x33333324}, /* -0.30469=f(-0.30000)*/ +{17, 0,123,__LINE__, 0xbfd2d49c, 0xc0000000, 0xbfd28f5c, 0x28f5c280}, /* -0.29422=f(-0.29000)*/ +{14, 0,123,__LINE__, 0xbfd229ae, 0xc0000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.28379=f(-0.28000)*/ +{18, 0,123,__LINE__, 0xbfd17f45, 0x80000000, 0xbfd147ae, 0x147ae138}, /* -0.27339=f(-0.27000)*/ +{17, 0,123,__LINE__, 0xbfd0d55b, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26302=f(-0.26000)*/ +{18, 0,123,__LINE__, 0xbfd02be9, 0xc0000000, 0xbfcfffff, 0xffffffe0}, /* -0.25268=f(-0.25000)*/ +{15, 0,123,__LINE__, 0xbfcf05d8, 0x20000000, 0xbfceb851, 0xeb851e98}, /* -0.24236=f(-0.24000)*/ +{16, 0,123,__LINE__, 0xbfcdb4b8, 0xc0000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.23207=f(-0.23000)*/ +{17, 0,123,__LINE__, 0xbfcc646a, 0xa0000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.22181=f(-0.22000)*/ +{15, 0,123,__LINE__, 0xbfcb14e3, 0x60000000, 0xbfcae147, 0xae147ac0}, /* -0.21157=f(-0.21000)*/ +{17, 0,123,__LINE__, 0xbfc9c618, 0xc0000000, 0xbfc99999, 0x99999978}, /* -0.20135=f(-0.20000)*/ +{18, 0,123,__LINE__, 0xbfc87800, 0x40000000, 0xbfc851eb, 0x851eb830}, /* -0.19116=f(-0.19000)*/ +{18, 0,123,__LINE__, 0xbfc72a90, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18098=f(-0.18000)*/ +{19, 0,123,__LINE__, 0xbfc5ddbf, 0x20000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17082=f(-0.17000)*/ +{16, 0,123,__LINE__, 0xbfc49182, 0xe0000000, 0xbfc47ae1, 0x47ae1458}, /* -0.16069=f(-0.16000)*/ +{17, 0,123,__LINE__, 0xbfc345d2, 0x40000000, 0xbfc33333, 0x33333310}, /* -0.15056=f(-0.15000)*/ +{19, 0,123,__LINE__, 0xbfc1faa3, 0xc0000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.14046=f(-0.14000)*/ +{20, 0,123,__LINE__, 0xbfc0afee, 0x40000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13036=f(-0.13000)*/ +{17, 0,123,__LINE__, 0xbfbecb51, 0x40000000, 0xbfbeb851, 0xeb851e71}, /* -0.12028=f(-0.12000)*/ +{19, 0,123,__LINE__, 0xbfbc3793, 0xe0000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.11022=f(-0.11000)*/ +{18, 0,123,__LINE__, 0xbfb9a492, 0x80000000, 0xbfb99999, 0x99999953}, /* -0.10016=f(-0.00100)*/ +{19, 0,123,__LINE__, 0xbfb7123b, 0x60000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09012=f(-0.09000)*/ +{16, 0,123,__LINE__, 0xbfb4807d, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* -0.08008=f(-0.08000)*/ +{21, 0,123,__LINE__, 0xbfb1ef46, 0x60000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.07005=f(-0.07000)*/ +{21, 0,123,__LINE__, 0xbfaebd0b, 0xc0000000, 0xbfaeb851, 0xeb851e2d}, /* -0.06003=f(-0.06000)*/ +{21, 0,123,__LINE__, 0xbfa99c55, 0x80000000, 0xbfa99999, 0x9999990e}, /* -0.05002=f(-0.05000)*/ +{21, 0,123,__LINE__, 0xbfa47c47, 0x60000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.04001=f(-0.04000)*/ +{23, 0,123,__LINE__, 0xbf9eb980, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{23, 0,123,__LINE__, 0xbf947b3a, 0xc0000000, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{27, 0,123,__LINE__, 0xbf847af7, 0xa0000000, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{27, 0,123,__LINE__, 0x3f847af7, 0xa0000000, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{23, 0,123,__LINE__, 0x3f947b3a, 0xc0000000, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{23, 0,123,__LINE__, 0x3f9eb980, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{21, 0,123,__LINE__, 0x3fa47c47, 0x60000000, 0x3fa47ae1, 0x47ae1508}, /* 0.04001=f(0.04000)*/ +{21, 0,123,__LINE__, 0x3fa99c55, 0x80000000, 0x3fa99999, 0x99999a27}, /* 0.05002=f(0.05000)*/ +{21, 0,123,__LINE__, 0x3faebd0b, 0xc0000000, 0x3faeb851, 0xeb851f46}, /* 0.06003=f(0.06000)*/ +{21, 0,123,__LINE__, 0x3fb1ef46, 0x60000000, 0x3fb1eb85, 0x1eb85232}, /* 0.07005=f(0.07000)*/ +{16, 0,123,__LINE__, 0x3fb4807d, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.08008=f(0.08000)*/ +{19, 0,123,__LINE__, 0x3fb7123b, 0x60000000, 0x3fb70a3d, 0x70a3d750}, /* 0.09012=f(0.09000)*/ +{18, 0,123,__LINE__, 0x3fb9a492, 0x80000000, 0x3fb99999, 0x999999df}, /* 0.10016=f(0.10000)*/ +{19, 0,123,__LINE__, 0x3fbc3793, 0xe0000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11022=f(0.11000)*/ +{17, 0,123,__LINE__, 0x3fbecb51, 0x40000000, 0x3fbeb851, 0xeb851efd}, /* 0.12028=f(0.12000)*/ +{20, 0,123,__LINE__, 0x3fc0afee, 0x40000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13036=f(0.13000)*/ +{19, 0,123,__LINE__, 0x3fc1faa3, 0xc0000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.14046=f(0.14000)*/ +{17, 0,123,__LINE__, 0x3fc345d2, 0x40000000, 0x3fc33333, 0x33333356}, /* 0.15056=f(0.15000)*/ +{16, 0,123,__LINE__, 0x3fc49182, 0xe0000000, 0x3fc47ae1, 0x47ae149e}, /* 0.16069=f(0.16000)*/ +{19, 0,123,__LINE__, 0x3fc5ddbf, 0x20000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17082=f(0.17000)*/ +{18, 0,123,__LINE__, 0x3fc72a90, 0x80000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.18098=f(0.18000)*/ +{18, 0,123,__LINE__, 0x3fc87800, 0x40000000, 0x3fc851eb, 0x851eb876}, /* 0.19116=f(0.19000)*/ +{17, 0,123,__LINE__, 0x3fc9c618, 0xc0000000, 0x3fc99999, 0x999999be}, /* 0.20135=f(0.20000)*/ +{15, 0,123,__LINE__, 0x3fcb14e3, 0x60000000, 0x3fcae147, 0xae147b06}, /* 0.21157=f(0.21000)*/ +{17, 0,123,__LINE__, 0x3fcc646a, 0xa0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22181=f(0.22000)*/ +{16, 0,123,__LINE__, 0x3fcdb4b8, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.23207=f(0.23000)*/ +{15, 0,123,__LINE__, 0x3fcf05d8, 0x20000000, 0x3fceb851, 0xeb851ede}, /* 0.24236=f(0.24000)*/ +{18, 0,123,__LINE__, 0x3fd02be9, 0xc0000000, 0x3fd00000, 0x00000013}, /* 0.25268=f(0.25000)*/ +{17, 0,123,__LINE__, 0x3fd0d55b, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26302=f(0.26000)*/ +{18, 0,123,__LINE__, 0x3fd17f45, 0x80000000, 0x3fd147ae, 0x147ae15b}, /* 0.27339=f(0.27000)*/ +{14, 0,123,__LINE__, 0x3fd229ae, 0xc0000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.28379=f(0.28000)*/ +{17, 0,123,__LINE__, 0x3fd2d49c, 0xc0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29422=f(0.29000)*/ +{16, 0,123,__LINE__, 0x3fd38015, 0xa0000000, 0x3fd33333, 0x33333347}, /* 0.30469=f(0.30000)*/ +{13, 0,123,__LINE__, 0x3fd42c1f, 0x60000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31519=f(0.31000)*/ +{16, 0,123,__LINE__, 0x3fd4d8c0, 0x80000000, 0x3fd47ae1, 0x47ae148f}, /* 0.32572=f(0.32000)*/ +{16, 0,123,__LINE__, 0x3fd585ff, 0x80000000, 0x3fd51eb8, 0x51eb8533}, /* 0.33630=f(0.33000)*/ +{14, 0,123,__LINE__, 0x3fd633e3, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34691=f(0.34000)*/ +{16, 0,123,__LINE__, 0x3fd6e271, 0xe0000000, 0x3fd66666, 0x6666667b}, /* 0.35757=f(0.35000)*/ +{16, 0,123,__LINE__, 0x3fd791b3, 0x80000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.36826=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3fd841af, 0x20000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.37900=f(0.37000)*/ +{16, 0,123,__LINE__, 0x3fd8f26c, 0x20000000, 0x3fd851eb, 0x851eb867}, /* 0.38979=f(0.38000)*/ +{15, 0,123,__LINE__, 0x3fd9a3f2, 0xa0000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.40063=f(0.39000)*/ +{14, 0,123,__LINE__, 0x3fda564a, 0xc0000000, 0x3fd99999, 0x999999af}, /* 0.41151=f(0.40000)*/ +{15, 0,123,__LINE__, 0x3fdb097c, 0xc0000000, 0x3fda3d70, 0xa3d70a53}, /* 0.42245=f(0.41000)*/ +{15, 0,123,__LINE__, 0x3fdbbd91, 0x60000000, 0x3fdae147, 0xae147af7}, /* 0.43344=f(0.42000)*/ +{13, 0,123,__LINE__, 0x3fdc7291, 0xe0000000, 0x3fdb851e, 0xb851eb9b}, /* 0.44449=f(0.43000)*/ +{15, 0,123,__LINE__, 0x3fdd2887, 0x60000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.45559=f(0.44000)*/ +{15, 0,123,__LINE__, 0x3fdddf7b, 0xa0000000, 0x3fdccccc, 0xcccccce3}, /* 0.46676=f(0.45000)*/ +{14, 0,123,__LINE__, 0x3fde9779, 0x40000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.47799=f(0.46000)*/ +{15, 0,123,__LINE__, 0x3fdf508a, 0x40000000, 0x3fde147a, 0xe147ae2b}, /* 0.48929=f(0.47000)*/ +{10, 0,123,__LINE__, 0x3fe0055d, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 0.50065=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fe0630a, 0x20000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.51208=f(0.49000)*/ +{16, 0,123,__LINE__, 0x3fe0c152, 0x40000000, 0x3fe00000, 0x0000000b}, /* 0.52359=f(0.50000)*/ +{15, 0,123,__LINE__, 0x3fe1203c, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 0.53518=f(0.51000)*/ +{15, 0,123,__LINE__, 0x3fe17fcd, 0x80000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.54685=f(0.52000)*/ +{15, 0,123,__LINE__, 0x3fe1e00e, 0x40000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.55860=f(0.53000)*/ +{14, 0,123,__LINE__, 0x3fe24105, 0x80000000, 0x3fe147ae, 0x147ae153}, /* 0.57043=f(0.54000)*/ +{14, 0,123,__LINE__, 0x3fe2a2ba, 0x80000000, 0x3fe19999, 0x999999a5}, /* 0.58236=f(0.55000)*/ +{14, 0,123,__LINE__, 0x3fe30535, 0x60000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.59438=f(0.56000)*/ +{15, 0,123,__LINE__, 0x3fe3687f, 0x20000000, 0x3fe23d70, 0xa3d70a49}, /* 0.60650=f(0.57000)*/ +{15, 0,123,__LINE__, 0x3fe3cca0, 0x20000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.61872=f(0.58000)*/ +{13, 0,123,__LINE__, 0x3fe431a2, 0x40000000, 0x3fe2e147, 0xae147aed}, /* 0.63105=f(0.59000)*/ +{13, 0,123,__LINE__, 0x3fe4978f, 0xc0000000, 0x3fe33333, 0x3333333f}, /* 0.64350=f(0.60000)*/ +{13, 0,123,__LINE__, 0x3fe4fe72, 0xe0000000, 0x3fe3851e, 0xb851eb91}, /* 0.65606=f(0.61000)*/ +{13, 0,123,__LINE__, 0x3fe56657, 0x20000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.66874=f(0.62000)*/ +{15, 0,123,__LINE__, 0x3fe5cf48, 0xc0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.68155=f(0.63000)*/ +{14, 0,123,__LINE__, 0x3fe63954, 0x80000000, 0x3fe47ae1, 0x47ae1487}, /* 0.69449=f(0.64000)*/ +{14, 0,123,__LINE__, 0x3fe6a488, 0x40000000, 0x3fe4cccc, 0xccccccd9}, /* 0.70758=f(0.65000)*/ +{14, 0,123,__LINE__, 0x3fe710f2, 0xc0000000, 0x3fe51eb8, 0x51eb852b}, /* 0.72081=f(0.66000)*/ +{14, 0,123,__LINE__, 0x3fe77ea3, 0xa0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.73420=f(0.67000)*/ +{14, 0,123,__LINE__, 0x3fe7edac, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.74776=f(0.68000)*/ +{12, 0,123,__LINE__, 0x3fe85e1e, 0x60000000, 0x3fe6147a, 0xe147ae21}, /* 0.76148=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3fe8d00e, 0x80000000, 0x3fe66666, 0x66666673}, /* 0.77539=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3fe94391, 0xc0000000, 0x3fe6b851, 0xeb851ec5}, /* 0.78949=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3fe9b8bf, 0xe0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.80380=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3fea2fb1, 0xa0000000, 0x3fe75c28, 0xf5c28f69}, /* 0.81832=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3feaa883, 0x60000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.83307=f(0.74000)*/ +{14, 0,123,__LINE__, 0x3feb2353, 0x40000000, 0x3fe80000, 0x0000000d}, /* 0.84806=f(0.75000)*/ +{14, 0,123,__LINE__, 0x3feba043, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 0.86331=f(0.76000)*/ +{13, 0,123,__LINE__, 0x3fec1f77, 0x80000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.87884=f(0.77000)*/ +{13, 0,123,__LINE__, 0x3feca11a, 0x20000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.89466=f(0.78000)*/ +{13, 0,123,__LINE__, 0x3fed2559, 0x20000000, 0x3fe947ae, 0x147ae155}, /* 0.91080=f(0.79000)*/ +{13, 0,123,__LINE__, 0x3fedac67, 0x20000000, 0x3fe99999, 0x999999a7}, /* 0.92729=f(0.80000)*/ +{13, 0,123,__LINE__, 0x3fee367e, 0xa0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.94415=f(0.81000)*/ +{13, 0,123,__LINE__, 0x3feec3e1, 0x20000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.96141=f(0.82000)*/ +{13, 0,123,__LINE__, 0x3fef54d9, 0xc0000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.97910=f(0.83000)*/ +{13, 0,123,__LINE__, 0x3fefe9be, 0x80000000, 0x3feae147, 0xae147aef}, /* 0.99728=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3ff04179, 0xe0000000, 0x3feb3333, 0x33333341}, /* 1.01598=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3ff09077, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 1.03527=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3ff0e21b, 0xe0000000, 0x3febd70a, 0x3d70a3e5}, /* 1.05520=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3ff136bb, 0x40000000, 0x3fec28f5, 0xc28f5c37}, /* 1.07586=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3ff18eb9, 0xc0000000, 0x3fec7ae1, 0x47ae1489}, /* 1.09734=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3ff1ea93, 0x80000000, 0x3feccccc, 0xccccccdb}, /* 1.11977=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3ff24ae4, 0x60000000, 0x3fed1eb8, 0x51eb852d}, /* 1.14328=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3ff2b075, 0x40000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.16808=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3ff31c50, 0xc0000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.19441=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3ff38fe4, 0xe0000000, 0x3fee147a, 0xe147ae23}, /* 1.22263=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3ff40d41, 0x20000000, 0x3fee6666, 0x66666675}, /* 1.25323=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3ff4978f, 0xa0000000, 0x3feeb851, 0xeb851ec7}, /* 1.28700=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3ff53425, 0x60000000, 0x3fef0a3d, 0x70a3d719}, /* 1.32523=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3ff5ed69, 0x20000000, 0x3fef5c28, 0xf5c28f6b}, /* 1.37046=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3ff6de3c, 0x80000000, 0x3fefae14, 0x7ae147bd}, /* 1.42925=f(0.99000)*/ +{12, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0x3ff00000, 0x00000007}, /* 1.57079=f(1.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{13, 0,123,__LINE__, 0x3fe4978f, 0xc0000000, 0x3fe33333, 0x333332ec}, /* 0.64350=f(0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_asinf(m) {run_vector_1(m,asinf_vec,(char *)(asinf),"asinf","ff"); } diff --git a/newlib/libm/test/asinh_vec.c b/newlib/libm/test/asinh_vec.c new file mode 100644 index 000000000..67926d95b --- /dev/null +++ b/newlib/libm/test/asinh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type asinh_vec[] = { +{64, 0,123,__LINE__, 0xbff0416d, 0x0b8ea990, 0xbff33333, 0x33333333}, /* -1.01597=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbff02723, 0xaed3e28c, 0xbff30a3d, 0x70a3d70a}, /* -1.00955=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbff00cb9, 0x18514e77, 0xbff2e147, 0xae147ae1}, /* -1.00310=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xbfefe45a, 0x23bb819a, 0xbff2b851, 0xeb851eb8}, /* -0.99662=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbfefaefe, 0xcad19f15, 0xbff28f5c, 0x28f5c28f}, /* -0.99011=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfef795f, 0xba0209ba, 0xbff26666, 0x66666666}, /* -0.98356=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbfef437c, 0x85b4a6d2, 0xbff23d70, 0xa3d70a3d}, /* -0.97698=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbfef0d54, 0xc2a99e3a, 0xbff2147a, 0xe147ae14}, /* -0.97037=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbfeed6e8, 0x060758e3, 0xbff1eb85, 0x1eb851eb}, /* -0.96373=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfeea035, 0xe5691026, 0xbff1c28f, 0x5c28f5c2}, /* -0.95705=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfee693d, 0xf6edf1e5, 0xbff19999, 0x99999999}, /* -0.95034=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfee31ff, 0xd148dd59, 0xbff170a3, 0xd70a3d70}, /* -0.94360=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfedfa7b, 0x0bd0bc8a, 0xbff147ae, 0x147ae147}, /* -0.93682=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfedc2af, 0x3e917e7a, 0xbff11eb8, 0x51eb851e}, /* -0.93001=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfed8a9c, 0x025db5de, 0xbff0f5c2, 0x8f5c28f5}, /* -0.92317=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfed5240, 0xf0e0e077, 0xbff0cccc, 0xcccccccc}, /* -0.91629=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbfed199d, 0xa4b25ad8, 0xbff0a3d7, 0x0a3d70a3}, /* -0.90937=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbfece0b1, 0xb969049f, 0xbff07ae1, 0x47ae147a}, /* -0.90242=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfeca77c, 0xcbaf98d6, 0xbff051eb, 0x851eb851}, /* -0.89544=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbfec6dfe, 0x7959be65, 0xbff028f5, 0xc28f5c28}, /* -0.88842=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfec3436, 0x6179d425, 0xbfefffff, 0xfffffffe}, /* -0.88137=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfebfa24, 0x24777c61, 0xbfefae14, 0x7ae147ac}, /* -0.87428=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfebbfc7, 0x6426eb13, 0xbfef5c28, 0xf5c28f5a}, /* -0.86716=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfeb851f, 0xc3e0fa68, 0xbfef0a3d, 0x70a3d708}, /* -0.86000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfeb4a2c, 0xe89c08b3, 0xbfeeb851, 0xeb851eb6}, /* -0.85280=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfeb0eee, 0x7905a2fa, 0xbfee6666, 0x66666664}, /* -0.84557=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfead364, 0x1d9cfee2, 0xbfee147a, 0xe147ae12}, /* -0.83830=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfea978d, 0x80ce46dc, 0xbfedc28f, 0x5c28f5c0}, /* -0.83100=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfea5b6a, 0x4f0ebada, 0xbfed70a3, 0xd70a3d6e}, /* -0.82365=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfea1efa, 0x36f9a7f3, 0xbfed1eb8, 0x51eb851c}, /* -0.81628=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfe9e23c, 0xe96e38d2, 0xbfeccccc, 0xccccccca}, /* -0.80886=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfe9a532, 0x19ae208e, 0xbfec7ae1, 0x47ae1478}, /* -0.80141=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfe967d9, 0x7d7d215b, 0xbfec28f5, 0xc28f5c26}, /* -0.79392=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfe92a32, 0xcd416fe8, 0xbfebd70a, 0x3d70a3d4}, /* -0.78640=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfe8ec3d, 0xc424f41d, 0xbfeb851e, 0xb851eb82}, /* -0.77883=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfe8adfa, 0x2037673e, 0xbfeb3333, 0x33333330}, /* -0.77123=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfe86f67, 0xa2914f46, 0xbfeae147, 0xae147ade}, /* -0.76359=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfe83086, 0x0f77d693, 0xbfea8f5c, 0x28f5c28c}, /* -0.75592=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfe7f155, 0x2e817eac, 0xbfea3d70, 0xa3d70a3a}, /* -0.74820=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe7b1d4, 0xcabbac2a, 0xbfe9eb85, 0x1eb851e8}, /* -0.74045=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfe77204, 0xb2d1095d, 0xbfe99999, 0x99999996}, /* -0.73266=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe731e4, 0xb930bc87, 0xbfe947ae, 0x147ae144}, /* -0.72484=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe6f174, 0xb4366df1, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.71697=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe6b0b4, 0x7e531942, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.70907=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfe66fa3, 0xf636a4fb, 0xbfe851eb, 0x851eb84e}, /* -0.70112=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe62e42, 0xfefa39ec, 0xbfe7ffff, 0xfffffffc}, /* -0.69314=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe5ec91, 0x804b53dc, 0xbfe7ae14, 0x7ae147aa}, /* -0.68512=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe5aa8f, 0x66978381, 0xbfe75c28, 0xf5c28f58}, /* -0.67707=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe5683c, 0xa338d93d, 0xbfe70a3d, 0x70a3d706}, /* -0.66897=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe52599, 0x2ca2eee0, 0xbfe6b851, 0xeb851eb4}, /* -0.66083=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe4e2a4, 0xfe9085da, 0xbfe66666, 0x66666662}, /* -0.65266=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe49f60, 0x1a31ae2f, 0xbfe6147a, 0xe147ae10}, /* -0.64445=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe45bca, 0x865a6965, 0xbfe5c28f, 0x5c28f5be}, /* -0.63620=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe417e4, 0x4fb1bb94, 0xbfe570a3, 0xd70a3d6c}, /* -0.62791=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe3d3ad, 0x88e11b93, 0xbfe51eb8, 0x51eb851a}, /* -0.61958=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe38f26, 0x4ac4320f, 0xbfe4cccc, 0xccccccc8}, /* -0.61122=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe34a4e, 0xb498d62a, 0xbfe47ae1, 0x47ae1476}, /* -0.60282=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe30526, 0xec2f34f5, 0xbfe428f5, 0xc28f5c24}, /* -0.59437=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe2bfaf, 0x1e1a0fec, 0xbfe3d70a, 0x3d70a3d2}, /* -0.58589=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe279e7, 0x7ddefd46, 0xbfe3851e, 0xb851eb80}, /* -0.57738=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe233d0, 0x46269390, 0xbfe33333, 0x3333332e}, /* -0.56882=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe1ed69, 0xb8ec68f2, 0xbfe2e147, 0xae147adc}, /* -0.56023=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe1a6b4, 0x1faeccee, 0xbfe28f5c, 0x28f5c28a}, /* -0.55159=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe15faf, 0xcb9e2242, 0xbfe23d70, 0xa3d70a38}, /* -0.54293=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe1185d, 0x15cbbd57, 0xbfe1eb85, 0x1eb851e6}, /* -0.53422=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe0d0bc, 0x5f582a21, 0xbfe19999, 0x99999994}, /* -0.52548=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe088ce, 0x11a0bb69, 0xbfe147ae, 0x147ae142}, /* -0.51669=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe04092, 0x9e6c43fb, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.50788=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfdff015, 0x002db22e, 0xbfe0a3d7, 0x0a3d709e}, /* -0.49902=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfdf5e6c, 0x7378f8ec, 0xbfe051eb, 0x851eb84c}, /* -0.49013=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfdecc2c, 0xaec515ff, 0xbfdfffff, 0xfffffff4}, /* -0.48121=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfde3956, 0xdc3f98b0, 0xbfdf5c28, 0xf5c28f50}, /* -0.47224=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdda5ec, 0x3885fd17, 0xbfdeb851, 0xeb851eac}, /* -0.46325=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfdd11ee, 0x12ef7038, 0xbfde147a, 0xe147ae08}, /* -0.45421=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdc7d5d, 0xcdd2f44f, 0xbfdd70a3, 0xd70a3d64}, /* -0.44515=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdbe83c, 0xdec9972f, 0xbfdccccc, 0xccccccc0}, /* -0.43604=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdb528c, 0xceec6b8c, 0xbfdc28f5, 0xc28f5c1c}, /* -0.42691=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdabc4f, 0x3b0df56d, 0xbfdb851e, 0xb851eb78}, /* -0.41774=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfda2585, 0xd3eeb962, 0xbfdae147, 0xae147ad4}, /* -0.40854=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfd98e32, 0x5e6c9df0, 0xbfda3d70, 0xa3d70a30}, /* -0.39930=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd8f656, 0xb3acceca, 0xbfd99999, 0x9999998c}, /* -0.39003=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd85df4, 0xc13fd1f5, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.38073=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd7c50e, 0x893f7fd0, 0xbfd851eb, 0x851eb844}, /* -0.37140=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd72ba6, 0x22669021, 0xbfd7ae14, 0x7ae147a0}, /* -0.36203=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd691bd, 0xb8217006, 0xbfd70a3d, 0x70a3d6fc}, /* -0.35264=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd5f757, 0x8a9816c0, 0xbfd66666, 0x66666658}, /* -0.34322=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd55c75, 0xeeb091a1, 0xbfd5c28f, 0x5c28f5b4}, /* -0.33376=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd4c11b, 0x4e0a028a, 0xbfd51eb8, 0x51eb8510}, /* -0.32428=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd4254a, 0x26efcfab, 0xbfd47ae1, 0x47ae146c}, /* -0.31477=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd38905, 0x0c44c709, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30523=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd2ec4e, 0xa565fcb3, 0xbfd33333, 0x33333324}, /* -0.29567=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd24f29, 0xae052f2f, 0xbfd28f5c, 0x28f5c280}, /* -0.28608=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd1b198, 0xf5fa8300, 0xbfd1eb85, 0x1eb851dc}, /* -0.27646=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd1139f, 0x610d6ba0, 0xbfd147ae, 0x147ae138}, /* -0.26682=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd0753f, 0xe6b49e7e, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25715=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfcfacfb, 0x2399e618, 0xbfcfffff, 0xffffffe0}, /* -0.24746=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfce6eb7, 0x008e3359, 0xbfceb851, 0xeb851e98}, /* -0.23775=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcd2fb9, 0xc5983561, 0xbfcd70a3, 0xd70a3d50}, /* -0.22801=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcbf009, 0xf8b12c56, 0xbfcc28f5, 0xc28f5c08}, /* -0.21826=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcaafae, 0x439d8a6b, 0xbfcae147, 0xae147ac0}, /* -0.20848=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc96ead, 0x72fe8b12, 0xbfc99999, 0x99999978}, /* -0.19869=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc82d0e, 0x7551814f, 0xbfc851eb, 0x851eb830}, /* -0.18887=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc6ead8, 0x59dd1101, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17904=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5a812, 0x4f8c9853, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16919=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc464c3, 0xa3ba2071, 0xbfc47ae1, 0x47ae1458}, /* -0.15932=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc320f3, 0xc0e73e3a, 0xbfc33333, 0x33333310}, /* -0.14944=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1dcaa, 0x2d655d91, 0xbfc1eb85, 0x1eb851c8}, /* -0.13954=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc097ee, 0x89ee0391, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12963=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbea591, 0x20574a8c, 0xbfbeb851, 0xeb851e71}, /* -0.11971=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc1a80, 0x22678345, 0xbfbc28f5, 0xc28f5be2}, /* -0.10977=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb98eb9, 0xe7e5fbf8, 0xbfb99999, 0x99999953}, /* -0.09983=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb7024e, 0x67182895, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08987=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb4754d, 0xbb54e357, 0xbfb47ae1, 0x47ae1435}, /* -0.07991=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1e7c8, 0x2192e439, 0xbfb1eb85, 0x1eb851a6}, /* -0.06994=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeb39b, 0xe9c4cf8a, 0xbfaeb851, 0xeb851e2d}, /* -0.05996=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa996df, 0x55a82630, 0xbfa99999, 0x9999990e}, /* -0.04997=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa4797b, 0x9f9e7351, 0xbfa47ae1, 0x47ae13ef}, /* -0.03998=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb724, 0x0d66f6d4, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947a87, 0xd14f5740, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847aca, 0xe95088d5, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847aca, 0xe9508d39, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947a87, 0xd14f5972, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb724, 0x0d66f906, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa4797b, 0x9f9e746a, 0x3fa47ae1, 0x47ae1508}, /* 0.03998=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa996df, 0x55a82748, 0x3fa99999, 0x99999a27}, /* 0.04997=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faeb39b, 0xe9c4d0a3, 0x3faeb851, 0xeb851f46}, /* 0.05996=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1e7c8, 0x2192e4c5, 0x3fb1eb85, 0x1eb85232}, /* 0.06994=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb4754d, 0xbb54e3e3, 0x3fb47ae1, 0x47ae14c1}, /* 0.07991=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb7024e, 0x67182921, 0x3fb70a3d, 0x70a3d750}, /* 0.08987=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb98eb9, 0xe7e5fc83, 0x3fb99999, 0x999999df}, /* 0.09983=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc1a80, 0x226783d0, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10977=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbea591, 0x20574b16, 0x3fbeb851, 0xeb851efd}, /* 0.11971=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc097ee, 0x89ee03d6, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12963=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1dcaa, 0x2d655dd5, 0x3fc1eb85, 0x1eb8520e}, /* 0.13954=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc320f3, 0xc0e73e7f, 0x3fc33333, 0x33333356}, /* 0.14944=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc464c3, 0xa3ba20b7, 0x3fc47ae1, 0x47ae149e}, /* 0.15932=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5a812, 0x4f8c9898, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16919=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc6ead8, 0x59dd1146, 0x3fc70a3d, 0x70a3d72e}, /* 0.17904=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc82d0e, 0x75518194, 0x3fc851eb, 0x851eb876}, /* 0.18887=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc96ead, 0x72fe8b56, 0x3fc99999, 0x999999be}, /* 0.19869=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcaafae, 0x439d8ab0, 0x3fcae147, 0xae147b06}, /* 0.20848=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcbf009, 0xf8b12c9a, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21826=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcd2fb9, 0xc59835a6, 0x3fcd70a3, 0xd70a3d96}, /* 0.22801=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fce6eb7, 0x008e339d, 0x3fceb851, 0xeb851ede}, /* 0.23775=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fcfacfb, 0x2399e65d, 0x3fd00000, 0x00000013}, /* 0.24746=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd0753f, 0xe6b49e9f, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25715=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd1139f, 0x610d6bc1, 0x3fd147ae, 0x147ae15b}, /* 0.26682=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd1b198, 0xf5fa8322, 0x3fd1eb85, 0x1eb851ff}, /* 0.27646=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd24f29, 0xae052f50, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28608=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd2ec4e, 0xa565fcd4, 0x3fd33333, 0x33333347}, /* 0.29567=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd38905, 0x0c44c72a, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30523=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd4254a, 0x26efcfcc, 0x3fd47ae1, 0x47ae148f}, /* 0.31477=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd4c11b, 0x4e0a02ab, 0x3fd51eb8, 0x51eb8533}, /* 0.32428=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd55c75, 0xeeb091c2, 0x3fd5c28f, 0x5c28f5d7}, /* 0.33376=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd5f757, 0x8a9816e1, 0x3fd66666, 0x6666667b}, /* 0.34322=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd691bd, 0xb8217026, 0x3fd70a3d, 0x70a3d71f}, /* 0.35264=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd72ba6, 0x22669042, 0x3fd7ae14, 0x7ae147c3}, /* 0.36203=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd7c50e, 0x893f7ff1, 0x3fd851eb, 0x851eb867}, /* 0.37140=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd85df4, 0xc13fd215, 0x3fd8f5c2, 0x8f5c290b}, /* 0.38073=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd8f656, 0xb3acceea, 0x3fd99999, 0x999999af}, /* 0.39003=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fd98e32, 0x5e6c9e11, 0x3fda3d70, 0xa3d70a53}, /* 0.39930=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fda2585, 0xd3eeb982, 0x3fdae147, 0xae147af7}, /* 0.40854=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdabc4f, 0x3b0df58c, 0x3fdb851e, 0xb851eb9b}, /* 0.41774=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdb528c, 0xceec6bac, 0x3fdc28f5, 0xc28f5c3f}, /* 0.42691=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdbe83c, 0xdec9974f, 0x3fdccccc, 0xcccccce3}, /* 0.43604=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdc7d5d, 0xcdd2f46f, 0x3fdd70a3, 0xd70a3d87}, /* 0.44515=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdd11ee, 0x12ef7057, 0x3fde147a, 0xe147ae2b}, /* 0.45421=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdda5ec, 0x3885fd36, 0x3fdeb851, 0xeb851ecf}, /* 0.46325=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fde3956, 0xdc3f98d0, 0x3fdf5c28, 0xf5c28f73}, /* 0.47224=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fdecc2c, 0xaec5161c, 0x3fe00000, 0x0000000b}, /* 0.48121=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fdf5e6c, 0x7378f90c, 0x3fe051eb, 0x851eb85d}, /* 0.49013=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fdff015, 0x002db24d, 0x3fe0a3d7, 0x0a3d70af}, /* 0.49902=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe04092, 0x9e6c440a, 0x3fe0f5c2, 0x8f5c2901}, /* 0.50788=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe088ce, 0x11a0bb78, 0x3fe147ae, 0x147ae153}, /* 0.51669=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe0d0bc, 0x5f582a30, 0x3fe19999, 0x999999a5}, /* 0.52548=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe1185d, 0x15cbbd66, 0x3fe1eb85, 0x1eb851f7}, /* 0.53422=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe15faf, 0xcb9e2251, 0x3fe23d70, 0xa3d70a49}, /* 0.54293=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe1a6b4, 0x1faeccfc, 0x3fe28f5c, 0x28f5c29b}, /* 0.55159=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe1ed69, 0xb8ec6901, 0x3fe2e147, 0xae147aed}, /* 0.56023=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe233d0, 0x4626939e, 0x3fe33333, 0x3333333f}, /* 0.56882=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe279e7, 0x7ddefd54, 0x3fe3851e, 0xb851eb91}, /* 0.57738=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe2bfaf, 0x1e1a0ffb, 0x3fe3d70a, 0x3d70a3e3}, /* 0.58589=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe30526, 0xec2f3503, 0x3fe428f5, 0xc28f5c35}, /* 0.59437=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe34a4e, 0xb498d638, 0x3fe47ae1, 0x47ae1487}, /* 0.60282=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe38f26, 0x4ac4321d, 0x3fe4cccc, 0xccccccd9}, /* 0.61122=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe3d3ad, 0x88e11ba1, 0x3fe51eb8, 0x51eb852b}, /* 0.61958=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe417e4, 0x4fb1bba2, 0x3fe570a3, 0xd70a3d7d}, /* 0.62791=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe45bca, 0x865a6973, 0x3fe5c28f, 0x5c28f5cf}, /* 0.63620=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe49f60, 0x1a31ae3d, 0x3fe6147a, 0xe147ae21}, /* 0.64445=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe4e2a4, 0xfe9085e8, 0x3fe66666, 0x66666673}, /* 0.65266=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe52599, 0x2ca2eeee, 0x3fe6b851, 0xeb851ec5}, /* 0.66083=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe5683c, 0xa338d94b, 0x3fe70a3d, 0x70a3d717}, /* 0.66897=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe5aa8f, 0x6697838f, 0x3fe75c28, 0xf5c28f69}, /* 0.67707=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe5ec91, 0x804b53e9, 0x3fe7ae14, 0x7ae147bb}, /* 0.68512=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe62e42, 0xfefa39f9, 0x3fe80000, 0x0000000d}, /* 0.69314=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe66fa3, 0xf636a508, 0x3fe851eb, 0x851eb85f}, /* 0.70112=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe6b0b4, 0x7e53194f, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.70907=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe6f174, 0xb4366dff, 0x3fe8f5c2, 0x8f5c2903}, /* 0.71697=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe731e4, 0xb930bc95, 0x3fe947ae, 0x147ae155}, /* 0.72484=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe77204, 0xb2d1096a, 0x3fe99999, 0x999999a7}, /* 0.73266=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe7b1d4, 0xcabbac37, 0x3fe9eb85, 0x1eb851f9}, /* 0.74045=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe7f155, 0x2e817eba, 0x3fea3d70, 0xa3d70a4b}, /* 0.74820=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe83086, 0x0f77d6a0, 0x3fea8f5c, 0x28f5c29d}, /* 0.75592=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe86f67, 0xa2914f53, 0x3feae147, 0xae147aef}, /* 0.76359=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe8adfa, 0x2037674b, 0x3feb3333, 0x33333341}, /* 0.77123=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe8ec3d, 0xc424f42a, 0x3feb851e, 0xb851eb93}, /* 0.77883=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe92a32, 0xcd416ff5, 0x3febd70a, 0x3d70a3e5}, /* 0.78640=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe967d9, 0x7d7d2167, 0x3fec28f5, 0xc28f5c37}, /* 0.79392=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe9a532, 0x19ae209b, 0x3fec7ae1, 0x47ae1489}, /* 0.80141=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe9e23c, 0xe96e38df, 0x3feccccc, 0xccccccdb}, /* 0.80886=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fea1efa, 0x36f9a800, 0x3fed1eb8, 0x51eb852d}, /* 0.81628=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fea5b6a, 0x4f0ebae6, 0x3fed70a3, 0xd70a3d7f}, /* 0.82365=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fea978d, 0x80ce46e8, 0x3fedc28f, 0x5c28f5d1}, /* 0.83100=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fead364, 0x1d9cfef0, 0x3fee147a, 0xe147ae23}, /* 0.83830=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3feb0eee, 0x7905a306, 0x3fee6666, 0x66666675}, /* 0.84557=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3feb4a2c, 0xe89c08bf, 0x3feeb851, 0xeb851ec7}, /* 0.85280=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3feb851f, 0xc3e0fa73, 0x3fef0a3d, 0x70a3d719}, /* 0.86000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3febbfc7, 0x6426eb20, 0x3fef5c28, 0xf5c28f6b}, /* 0.86716=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3febfa24, 0x24777c6e, 0x3fefae14, 0x7ae147bd}, /* 0.87428=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fec3436, 0x6179d430, 0x3ff00000, 0x00000007}, /* 0.88137=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fec6dfe, 0x7959be70, 0x3ff028f5, 0xc28f5c30}, /* 0.88842=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3feca77c, 0xcbaf98e2, 0x3ff051eb, 0x851eb859}, /* 0.89544=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fece0b1, 0xb96904aa, 0x3ff07ae1, 0x47ae1482}, /* 0.90242=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fed199d, 0xa4b25ae3, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.90937=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fed5240, 0xf0e0e081, 0x3ff0cccc, 0xccccccd4}, /* 0.91629=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fed8a9c, 0x025db5e9, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.92317=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fedc2af, 0x3e917e85, 0x3ff11eb8, 0x51eb8526}, /* 0.93001=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fedfa7b, 0x0bd0bc95, 0x3ff147ae, 0x147ae14f}, /* 0.93682=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fee31ff, 0xd148dd64, 0x3ff170a3, 0xd70a3d78}, /* 0.94360=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fee693d, 0xf6edf1f0, 0x3ff19999, 0x999999a1}, /* 0.95034=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3feea035, 0xe5691030, 0x3ff1c28f, 0x5c28f5ca}, /* 0.95705=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3feed6e8, 0x060758ed, 0x3ff1eb85, 0x1eb851f3}, /* 0.96373=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fef0d54, 0xc2a99e45, 0x3ff2147a, 0xe147ae1c}, /* 0.97037=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fef437c, 0x85b4a6dc, 0x3ff23d70, 0xa3d70a45}, /* 0.97698=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fef795f, 0xba0209c4, 0x3ff26666, 0x6666666e}, /* 0.98356=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fefaefe, 0xcad19f20, 0x3ff28f5c, 0x28f5c297}, /* 0.99011=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fefe45a, 0x23bb81a4, 0x3ff2b851, 0xeb851ec0}, /* 0.99662=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3ff00cb9, 0x18514e7c, 0x3ff2e147, 0xae147ae9}, /* 1.00310=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3ff02723, 0xaed3e291, 0x3ff30a3d, 0x70a3d712}, /* 1.00955=f(1.19000)*/ +{64, 0,123,__LINE__, 0xc0044c62, 0xa1e4f804, 0xc01921fb, 0x54442d18}, /* -2.53729=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xc002090a, 0x84a43b1b, 0xc012d97c, 0x7f3321d2}, /* -2.25441=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xbffdcbf6, 0x9f10006d, 0xc00921fb, 0x54442d18}, /* -1.86229=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xbff3bc04, 0xe847ec05, 0xbff921fb, 0x54442d18}, /* -1.23340=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff3bc04, 0xe847ec05, 0x3ff921fb, 0x54442d18}, /* 1.23340=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ffdcbf6, 0x9f10006d, 0x400921fb, 0x54442d18}, /* 1.86229=f(3.14159)*/ +{64, 0,123,__LINE__, 0x4002090a, 0x84a43b1b, 0x4012d97c, 0x7f3321d2}, /* 2.25441=f(4.71238)*/ +{64, 0,123,__LINE__, 0xc01060e4, 0xa5fbe5ca, 0xc03e0000, 0x00000000}, /* -4.09462=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xc0102531, 0x54812870, 0xc03c4ccc, 0xcccccccd}, /* -4.03632=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xc00fcb98, 0x4685405f, 0xc03a9999, 0x9999999a}, /* -3.97441=f(-26.6000)*/ +{64, 0,123,__LINE__, 0xc00f4470, 0xa29f290c, 0xc038e666, 0x66666667}, /* -3.90841=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xc00eb3bd, 0x68b50b69, 0xc0373333, 0x33333334}, /* -3.83776=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xc00e180b, 0x68a00467, 0xc0358000, 0x00000001}, /* -3.76174=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xc00d6f8b, 0xf981cc3a, 0xc033cccc, 0xccccccce}, /* -3.67946=f(-19.8000)*/ +{64, 0,123,__LINE__, 0xc00cb7f4, 0x416d82e3, 0xc0321999, 0x9999999b}, /* -3.58982=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xc00bee4c, 0x6fb6e99b, 0xc0306666, 0x66666668}, /* -3.49135=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xc00b0ea4, 0x72aedff4, 0xc02d6666, 0x6666666a}, /* -3.38215=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xc00a139a, 0xc6c0b4fc, 0xc02a0000, 0x00000004}, /* -3.25957=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xc008f58f, 0x34777dd3, 0xc0269999, 0x9999999e}, /* -3.11990=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xc007a930, 0x785ee482, 0xc0233333, 0x33333338}, /* -2.95761=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xc0061ca7, 0xc27714a7, 0xc01f9999, 0x999999a3}, /* -2.76399=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xc004316f, 0x09d4ec2c, 0xc018cccc, 0xccccccd6}, /* -2.52413=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xc001acbe, 0x7dcff697, 0xc0120000, 0x00000009}, /* -2.20934=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbffc0d39, 0xbf8abae7, 0xc0066666, 0x66666678}, /* -1.75322=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbfee693d, 0xf6edf216, 0xbff19999, 0x999999bd}, /* -0.95034=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe233d0, 0x46269357, 0x3fe33333, 0x333332ec}, /* 0.56882=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff91fdc, 0x64de0e42, 0x40026666, 0x66666654}, /* 1.57027=f(2.30000)*/ +{64, 0,123,__LINE__, 0x4000c1f8, 0xa6e80ee7, 0x400fffff, 0xffffffee}, /* 2.09471=f(4.00000)*/ +{64, 0,123,__LINE__, 0x4003879e, 0xb8dfd8bc, 0x4016cccc, 0xccccccc4}, /* 2.44122=f(5.70000)*/ +{64, 0,123,__LINE__, 0x400597e2, 0x0a50c554, 0x401d9999, 0x99999991}, /* 2.69916=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40073c44, 0x35744319, 0x40223333, 0x3333332f}, /* 2.90442=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40089940, 0x5e357d29, 0x40259999, 0x99999995}, /* 3.07483=f(10.8000)*/ +{64, 0,123,__LINE__, 0x4009c386, 0xd2b8b56c, 0x4028ffff, 0xfffffffb}, /* 3.22047=f(12.5000)*/ +{64, 0,123,__LINE__, 0x400ac7f0, 0x7f0f1e89, 0x402c6666, 0x66666661}, /* 3.34762=f(14.2000)*/ +{64, 0,123,__LINE__, 0x400baf02, 0x5af3c784, 0x402fcccc, 0xccccccc7}, /* 3.46045=f(15.9000)*/ +{64, 0,123,__LINE__, 0x400c7eac, 0x5b92cf44, 0x40319999, 0x99999997}, /* 3.56185=f(17.6000)*/ +{64, 0,123,__LINE__, 0x400d3b3b, 0xdb3c5660, 0x40334ccc, 0xccccccca}, /* 3.65392=f(19.3000)*/ +{64, 0,123,__LINE__, 0x400de7e8, 0x4ab59e16, 0x4034ffff, 0xfffffffd}, /* 3.73823=f(21.0000)*/ +{64, 0,123,__LINE__, 0x400e8729, 0x64206f74, 0x4036b333, 0x33333330}, /* 3.81599=f(22.7000)*/ +{64, 0,123,__LINE__, 0x400f1aee, 0x5e1b0559, 0x40386666, 0x66666663}, /* 3.88815=f(24.4000)*/ +{64, 0,123,__LINE__, 0x400fa4c2, 0x9886fc48, 0x403a1999, 0x99999996}, /* 3.95544=f(26.1000)*/ +{64, 0,123,__LINE__, 0x401012f3, 0x5ffa8bd3, 0x403bcccc, 0xccccccc9}, /* 4.01850=f(27.8000)*/ +{64, 0,123,__LINE__, 0x40104fb1, 0x4017a7cb, 0x403d7fff, 0xfffffffc}, /* 4.07782=f(29.5000)*/ +0,}; +test_asinh(m) {run_vector_1(m,asinh_vec,(char *)(asinh),"asinh","dd"); } diff --git a/newlib/libm/test/asinhf_vec.c b/newlib/libm/test/asinhf_vec.c new file mode 100644 index 000000000..d4b85eb92 --- /dev/null +++ b/newlib/libm/test/asinhf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type asinhf_vec[] = { +{14, 0,123,__LINE__, 0xbff0416d, 0x20000000, 0xbff33333, 0x33333333}, /* -1.01597=f(-1.20000)*/ +{14, 0,123,__LINE__, 0xbff02723, 0xa0000000, 0xbff30a3d, 0x70a3d70a}, /* -1.00955=f(-1.19000)*/ +{14, 0,123,__LINE__, 0xbff00cb9, 0x00000000, 0xbff2e147, 0xae147ae1}, /* -1.00310=f(-1.18000)*/ +{11, 0,123,__LINE__, 0xbfefe45a, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -0.99662=f(-1.17000)*/ +{11, 0,123,__LINE__, 0xbfefaefe, 0xc0000000, 0xbff28f5c, 0x28f5c28f}, /* -0.99011=f(-1.16000)*/ +{11, 0,123,__LINE__, 0xbfef795f, 0xa0000000, 0xbff26666, 0x66666666}, /* -0.98356=f(-1.15000)*/ +{11, 0,123,__LINE__, 0xbfef437c, 0x80000000, 0xbff23d70, 0xa3d70a3d}, /* -0.97698=f(-1.14000)*/ +{11, 0,123,__LINE__, 0xbfef0d54, 0xc0000000, 0xbff2147a, 0xe147ae14}, /* -0.97037=f(-1.13000)*/ +{11, 0,123,__LINE__, 0xbfeed6e8, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -0.96373=f(-1.12000)*/ +{11, 0,123,__LINE__, 0xbfeea035, 0xe0000000, 0xbff1c28f, 0x5c28f5c2}, /* -0.95705=f(-1.11000)*/ +{11, 0,123,__LINE__, 0xbfee693d, 0xe0000000, 0xbff19999, 0x99999999}, /* -0.95034=f(-1.10000)*/ +{11, 0,123,__LINE__, 0xbfee31ff, 0xe0000000, 0xbff170a3, 0xd70a3d70}, /* -0.94360=f(-1.09000)*/ +{11, 0,123,__LINE__, 0xbfedfa7b, 0x20000000, 0xbff147ae, 0x147ae147}, /* -0.93682=f(-1.08000)*/ +{11, 0,123,__LINE__, 0xbfedc2af, 0x40000000, 0xbff11eb8, 0x51eb851e}, /* -0.93001=f(-1.07000)*/ +{11, 0,123,__LINE__, 0xbfed8a9b, 0xe0000000, 0xbff0f5c2, 0x8f5c28f5}, /* -0.92317=f(-1.06000)*/ +{11, 0,123,__LINE__, 0xbfed5240, 0xe0000000, 0xbff0cccc, 0xcccccccc}, /* -0.91629=f(-1.05000)*/ +{11, 0,123,__LINE__, 0xbfed199d, 0xa0000000, 0xbff0a3d7, 0x0a3d70a3}, /* -0.90937=f(-1.04000)*/ +{11, 0,123,__LINE__, 0xbfece0b1, 0xa0000000, 0xbff07ae1, 0x47ae147a}, /* -0.90242=f(-1.03000)*/ +{11, 0,123,__LINE__, 0xbfeca77c, 0xc0000000, 0xbff051eb, 0x851eb851}, /* -0.89544=f(-1.02000)*/ +{11, 0,123,__LINE__, 0xbfec6dfe, 0x60000000, 0xbff028f5, 0xc28f5c28}, /* -0.88842=f(-1.01000)*/ +{14, 0,123,__LINE__, 0xbfec3436, 0x60000000, 0xbfefffff, 0xfffffffe}, /* -0.88137=f(-0.01000)*/ +{13, 0,123,__LINE__, 0xbfebfa24, 0x20000000, 0xbfefae14, 0x7ae147ac}, /* -0.87428=f(-0.99000)*/ +{13, 0,123,__LINE__, 0xbfebbfc7, 0x80000000, 0xbfef5c28, 0xf5c28f5a}, /* -0.86716=f(-0.98000)*/ +{13, 0,123,__LINE__, 0xbfeb851f, 0xc0000000, 0xbfef0a3d, 0x70a3d708}, /* -0.86000=f(-0.97000)*/ +{13, 0,123,__LINE__, 0xbfeb4a2c, 0xe0000000, 0xbfeeb851, 0xeb851eb6}, /* -0.85280=f(-0.96000)*/ +{13, 0,123,__LINE__, 0xbfeb0eee, 0x60000000, 0xbfee6666, 0x66666664}, /* -0.84557=f(-0.95000)*/ +{13, 0,123,__LINE__, 0xbfead364, 0x00000000, 0xbfee147a, 0xe147ae12}, /* -0.83830=f(-0.94000)*/ +{13, 0,123,__LINE__, 0xbfea978d, 0x80000000, 0xbfedc28f, 0x5c28f5c0}, /* -0.83100=f(-0.93000)*/ +{13, 0,123,__LINE__, 0xbfea5b6a, 0x40000000, 0xbfed70a3, 0xd70a3d6e}, /* -0.82365=f(-0.92000)*/ +{13, 0,123,__LINE__, 0xbfea1efa, 0x40000000, 0xbfed1eb8, 0x51eb851c}, /* -0.81628=f(-0.91000)*/ +{13, 0,123,__LINE__, 0xbfe9e23c, 0xe0000000, 0xbfeccccc, 0xccccccca}, /* -0.80886=f(-0.90000)*/ +{13, 0,123,__LINE__, 0xbfe9a532, 0x20000000, 0xbfec7ae1, 0x47ae1478}, /* -0.80141=f(-0.89000)*/ +{13, 0,123,__LINE__, 0xbfe967d9, 0x80000000, 0xbfec28f5, 0xc28f5c26}, /* -0.79392=f(-0.88000)*/ +{14, 0,123,__LINE__, 0xbfe92a32, 0xe0000000, 0xbfebd70a, 0x3d70a3d4}, /* -0.78640=f(-0.87000)*/ +{14, 0,123,__LINE__, 0xbfe8ec3d, 0xc0000000, 0xbfeb851e, 0xb851eb82}, /* -0.77883=f(-0.86000)*/ +{14, 0,123,__LINE__, 0xbfe8adfa, 0x20000000, 0xbfeb3333, 0x33333330}, /* -0.77123=f(-0.85000)*/ +{14, 0,123,__LINE__, 0xbfe86f67, 0xa0000000, 0xbfeae147, 0xae147ade}, /* -0.76359=f(-0.84000)*/ +{14, 0,123,__LINE__, 0xbfe83086, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.75592=f(-0.83000)*/ +{12, 0,123,__LINE__, 0xbfe7f155, 0x40000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.74820=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbfe7b1d4, 0xc0000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.74045=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbfe77204, 0xa0000000, 0xbfe99999, 0x99999996}, /* -0.73266=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbfe731e4, 0xc0000000, 0xbfe947ae, 0x147ae144}, /* -0.72484=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbfe6f174, 0xa0000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.71697=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbfe6b0b4, 0x80000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.70907=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbfe66fa3, 0xe0000000, 0xbfe851eb, 0x851eb84e}, /* -0.70112=f(-0.76000)*/ +{15, 0,123,__LINE__, 0xbfe62e43, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* -0.69314=f(-0.75000)*/ +{14, 0,123,__LINE__, 0xbfe5ec91, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.68512=f(-0.74000)*/ +{14, 0,123,__LINE__, 0xbfe5aa8f, 0x60000000, 0xbfe75c28, 0xf5c28f58}, /* -0.67707=f(-0.73000)*/ +{14, 0,123,__LINE__, 0xbfe5683c, 0xa0000000, 0xbfe70a3d, 0x70a3d706}, /* -0.66897=f(-0.72000)*/ +{14, 0,123,__LINE__, 0xbfe52599, 0x20000000, 0xbfe6b851, 0xeb851eb4}, /* -0.66083=f(-0.71000)*/ +{14, 0,123,__LINE__, 0xbfe4e2a5, 0x00000000, 0xbfe66666, 0x66666662}, /* -0.65266=f(-0.70000)*/ +{14, 0,123,__LINE__, 0xbfe49f60, 0x20000000, 0xbfe6147a, 0xe147ae10}, /* -0.64445=f(-0.69000)*/ +{15, 0,123,__LINE__, 0xbfe45bca, 0x80000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.63620=f(-0.68000)*/ +{15, 0,123,__LINE__, 0xbfe417e4, 0x60000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.62791=f(-0.67000)*/ +{13, 0,123,__LINE__, 0xbfe3d3ad, 0xa0000000, 0xbfe51eb8, 0x51eb851a}, /* -0.61958=f(-0.66000)*/ +{13, 0,123,__LINE__, 0xbfe38f26, 0x40000000, 0xbfe4cccc, 0xccccccc8}, /* -0.61122=f(-0.65000)*/ +{13, 0,123,__LINE__, 0xbfe34a4e, 0xa0000000, 0xbfe47ae1, 0x47ae1476}, /* -0.60282=f(-0.64000)*/ +{13, 0,123,__LINE__, 0xbfe30526, 0xe0000000, 0xbfe428f5, 0xc28f5c24}, /* -0.59437=f(-0.63000)*/ +{15, 0,123,__LINE__, 0xbfe2bfaf, 0x20000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.58589=f(-0.62000)*/ +{15, 0,123,__LINE__, 0xbfe279e7, 0x80000000, 0xbfe3851e, 0xb851eb80}, /* -0.57738=f(-0.61000)*/ +{15, 0,123,__LINE__, 0xbfe233d0, 0x40000000, 0xbfe33333, 0x3333332e}, /* -0.56882=f(-0.60000)*/ +{14, 0,123,__LINE__, 0xbfe1ed69, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* -0.56023=f(-0.59000)*/ +{14, 0,123,__LINE__, 0xbfe1a6b4, 0x20000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.55159=f(-0.58000)*/ +{14, 0,123,__LINE__, 0xbfe15faf, 0xc0000000, 0xbfe23d70, 0xa3d70a38}, /* -0.54293=f(-0.57000)*/ +{16, 0,123,__LINE__, 0xbfe1185d, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.53422=f(-0.56000)*/ +{15, 0,123,__LINE__, 0xbfe0d0bc, 0x60000000, 0xbfe19999, 0x99999994}, /* -0.52548=f(-0.55000)*/ +{15, 0,123,__LINE__, 0xbfe088ce, 0x20000000, 0xbfe147ae, 0x147ae142}, /* -0.51669=f(-0.54000)*/ +{16, 0,123,__LINE__, 0xbfe04092, 0xa0000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.50788=f(-0.53000)*/ +{10, 0,123,__LINE__, 0xbfdff014, 0xe0000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.49902=f(-0.52000)*/ +{10, 0,123,__LINE__, 0xbfdf5e6c, 0x80000000, 0xbfe051eb, 0x851eb84c}, /* -0.49013=f(-0.51000)*/ +{10, 0,123,__LINE__, 0xbfdecc2c, 0xc0000000, 0xbfdfffff, 0xfffffff4}, /* -0.48121=f(-0.50000)*/ +{15, 0,123,__LINE__, 0xbfde3956, 0xc0000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.47224=f(-0.49000)*/ +{14, 0,123,__LINE__, 0xbfdda5ec, 0x20000000, 0xbfdeb851, 0xeb851eac}, /* -0.46325=f(-0.48000)*/ +{14, 0,123,__LINE__, 0xbfdd11ee, 0x00000000, 0xbfde147a, 0xe147ae08}, /* -0.45421=f(-0.47000)*/ +{15, 0,123,__LINE__, 0xbfdc7d5d, 0xe0000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.44515=f(-0.46000)*/ +{13, 0,123,__LINE__, 0xbfdbe83c, 0xe0000000, 0xbfdccccc, 0xccccccc0}, /* -0.43604=f(-0.45000)*/ +{13, 0,123,__LINE__, 0xbfdb528c, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.42691=f(-0.44000)*/ +{15, 0,123,__LINE__, 0xbfdabc4f, 0x40000000, 0xbfdb851e, 0xb851eb78}, /* -0.41774=f(-0.43000)*/ +{16, 0,123,__LINE__, 0xbfda2585, 0xc0000000, 0xbfdae147, 0xae147ad4}, /* -0.40854=f(-0.42000)*/ +{14, 0,123,__LINE__, 0xbfd98e32, 0x60000000, 0xbfda3d70, 0xa3d70a30}, /* -0.39930=f(-0.41000)*/ +{15, 0,123,__LINE__, 0xbfd8f656, 0xc0000000, 0xbfd99999, 0x9999998c}, /* -0.39003=f(-0.40000)*/ +{16, 0,123,__LINE__, 0xbfd85df4, 0xc0000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.38073=f(-0.39000)*/ +{12, 0,123,__LINE__, 0xbfd7c50e, 0xa0000000, 0xbfd851eb, 0x851eb844}, /* -0.37140=f(-0.38000)*/ +{16, 0,123,__LINE__, 0xbfd72ba6, 0x20000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.36203=f(-0.37000)*/ +{15, 0,123,__LINE__, 0xbfd691bd, 0xc0000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.35264=f(-0.36000)*/ +{14, 0,123,__LINE__, 0xbfd5f757, 0x80000000, 0xbfd66666, 0x66666658}, /* -0.34322=f(-0.35000)*/ +{16, 0,123,__LINE__, 0xbfd55c76, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.33376=f(-0.34000)*/ +{15, 0,123,__LINE__, 0xbfd4c11b, 0x60000000, 0xbfd51eb8, 0x51eb8510}, /* -0.32428=f(-0.33000)*/ +{17, 0,123,__LINE__, 0xbfd4254a, 0x20000000, 0xbfd47ae1, 0x47ae146c}, /* -0.31477=f(-0.32000)*/ +{17, 0,123,__LINE__, 0xbfd38905, 0x20000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30523=f(-0.31000)*/ +{15, 0,123,__LINE__, 0xbfd2ec4e, 0xc0000000, 0xbfd33333, 0x33333324}, /* -0.29567=f(-0.30000)*/ +{16, 0,123,__LINE__, 0xbfd24f29, 0xa0000000, 0xbfd28f5c, 0x28f5c280}, /* -0.28608=f(-0.29000)*/ +{17, 0,123,__LINE__, 0xbfd1b199, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.27646=f(-0.28000)*/ +{17, 0,123,__LINE__, 0xbfd1139f, 0x60000000, 0xbfd147ae, 0x147ae138}, /* -0.26682=f(-0.27000)*/ +{16, 0,123,__LINE__, 0xbfd0753f, 0xe0000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25715=f(-0.26000)*/ +{11, 0,123,__LINE__, 0xbfcfacfb, 0x20000000, 0xbfcfffff, 0xffffffe0}, /* -0.24746=f(-0.25000)*/ +{16, 0,123,__LINE__, 0xbfce6eb6, 0xe0000000, 0xbfceb851, 0xeb851e98}, /* -0.23775=f(-0.24000)*/ +{17, 0,123,__LINE__, 0xbfcd2fb9, 0xc0000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.22801=f(-0.23000)*/ +{13, 0,123,__LINE__, 0xbfcbf009, 0xe0000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.21826=f(-0.22000)*/ +{17, 0,123,__LINE__, 0xbfcaafae, 0x40000000, 0xbfcae147, 0xae147ac0}, /* -0.20848=f(-0.21000)*/ +{16, 0,123,__LINE__, 0xbfc96ead, 0x60000000, 0xbfc99999, 0x99999978}, /* -0.19869=f(-0.20000)*/ +{17, 0,123,__LINE__, 0xbfc82d0e, 0x80000000, 0xbfc851eb, 0x851eb830}, /* -0.18887=f(-0.19000)*/ +{15, 0,123,__LINE__, 0xbfc6ead8, 0x60000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17904=f(-0.18000)*/ +{17, 0,123,__LINE__, 0xbfc5a812, 0x40000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16919=f(-0.17000)*/ +{19, 0,123,__LINE__, 0xbfc464c3, 0xa0000000, 0xbfc47ae1, 0x47ae1458}, /* -0.15932=f(-0.16000)*/ +{19, 0,123,__LINE__, 0xbfc320f3, 0xc0000000, 0xbfc33333, 0x33333310}, /* -0.14944=f(-0.15000)*/ +{18, 0,123,__LINE__, 0xbfc1dcaa, 0x40000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.13954=f(-0.14000)*/ +{18, 0,123,__LINE__, 0xbfc097ee, 0x80000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12963=f(-0.13000)*/ +{19, 0,123,__LINE__, 0xbfbea591, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* -0.11971=f(-0.12000)*/ +{18, 0,123,__LINE__, 0xbfbc1a80, 0x20000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.10977=f(-0.11000)*/ +{19, 0,123,__LINE__, 0xbfb98eb9, 0xe0000000, 0xbfb99999, 0x99999953}, /* -0.09983=f(-0.00100)*/ +{20, 0,123,__LINE__, 0xbfb7024e, 0x80000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08987=f(-0.09000)*/ +{20, 0,123,__LINE__, 0xbfb4754d, 0xc0000000, 0xbfb47ae1, 0x47ae1435}, /* -0.07991=f(-0.08000)*/ +{20, 0,123,__LINE__, 0xbfb1e7c8, 0x20000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.06994=f(-0.07000)*/ +{20, 0,123,__LINE__, 0xbfaeb39b, 0xe0000000, 0xbfaeb851, 0xeb851e2d}, /* -0.05996=f(-0.06000)*/ +{20, 0,123,__LINE__, 0xbfa996df, 0x60000000, 0xbfa99999, 0x9999990e}, /* -0.04997=f(-0.05000)*/ +{22, 0,123,__LINE__, 0xbfa4797b, 0xa0000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.03998=f(-0.04000)*/ +{20, 0,123,__LINE__, 0xbf9eb724, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{25, 0,123,__LINE__, 0xbf947a87, 0xc0000000, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{26, 0,123,__LINE__, 0xbf847aca, 0xe0000000, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{26, 0,123,__LINE__, 0x3f847aca, 0xe0000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{25, 0,123,__LINE__, 0x3f947a87, 0xc0000000, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{20, 0,123,__LINE__, 0x3f9eb724, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{22, 0,123,__LINE__, 0x3fa4797b, 0xa0000000, 0x3fa47ae1, 0x47ae1508}, /* 0.03998=f(0.04000)*/ +{20, 0,123,__LINE__, 0x3fa996df, 0x60000000, 0x3fa99999, 0x99999a27}, /* 0.04997=f(0.05000)*/ +{20, 0,123,__LINE__, 0x3faeb39b, 0xe0000000, 0x3faeb851, 0xeb851f46}, /* 0.05996=f(0.06000)*/ +{20, 0,123,__LINE__, 0x3fb1e7c8, 0x20000000, 0x3fb1eb85, 0x1eb85232}, /* 0.06994=f(0.07000)*/ +{20, 0,123,__LINE__, 0x3fb4754d, 0xc0000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.07991=f(0.08000)*/ +{20, 0,123,__LINE__, 0x3fb7024e, 0x80000000, 0x3fb70a3d, 0x70a3d750}, /* 0.08987=f(0.09000)*/ +{19, 0,123,__LINE__, 0x3fb98eb9, 0xe0000000, 0x3fb99999, 0x999999df}, /* 0.09983=f(0.10000)*/ +{18, 0,123,__LINE__, 0x3fbc1a80, 0x20000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10977=f(0.11000)*/ +{19, 0,123,__LINE__, 0x3fbea591, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 0.11971=f(0.12000)*/ +{18, 0,123,__LINE__, 0x3fc097ee, 0x80000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12963=f(0.13000)*/ +{18, 0,123,__LINE__, 0x3fc1dcaa, 0x40000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.13954=f(0.14000)*/ +{19, 0,123,__LINE__, 0x3fc320f3, 0xc0000000, 0x3fc33333, 0x33333356}, /* 0.14944=f(0.15000)*/ +{19, 0,123,__LINE__, 0x3fc464c3, 0xa0000000, 0x3fc47ae1, 0x47ae149e}, /* 0.15932=f(0.16000)*/ +{17, 0,123,__LINE__, 0x3fc5a812, 0x40000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16919=f(0.17000)*/ +{15, 0,123,__LINE__, 0x3fc6ead8, 0x60000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.17904=f(0.18000)*/ +{17, 0,123,__LINE__, 0x3fc82d0e, 0x80000000, 0x3fc851eb, 0x851eb876}, /* 0.18887=f(0.19000)*/ +{16, 0,123,__LINE__, 0x3fc96ead, 0x60000000, 0x3fc99999, 0x999999be}, /* 0.19869=f(0.20000)*/ +{17, 0,123,__LINE__, 0x3fcaafae, 0x40000000, 0x3fcae147, 0xae147b06}, /* 0.20848=f(0.21000)*/ +{13, 0,123,__LINE__, 0x3fcbf009, 0xe0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21826=f(0.22000)*/ +{17, 0,123,__LINE__, 0x3fcd2fb9, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.22801=f(0.23000)*/ +{16, 0,123,__LINE__, 0x3fce6eb6, 0xe0000000, 0x3fceb851, 0xeb851ede}, /* 0.23775=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fcfacfb, 0x20000000, 0x3fd00000, 0x00000013}, /* 0.24746=f(0.25000)*/ +{16, 0,123,__LINE__, 0x3fd0753f, 0xe0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25715=f(0.26000)*/ +{17, 0,123,__LINE__, 0x3fd1139f, 0x60000000, 0x3fd147ae, 0x147ae15b}, /* 0.26682=f(0.27000)*/ +{17, 0,123,__LINE__, 0x3fd1b199, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.27646=f(0.28000)*/ +{16, 0,123,__LINE__, 0x3fd24f29, 0xa0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28608=f(0.29000)*/ +{15, 0,123,__LINE__, 0x3fd2ec4e, 0xc0000000, 0x3fd33333, 0x33333347}, /* 0.29567=f(0.30000)*/ +{17, 0,123,__LINE__, 0x3fd38905, 0x20000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30523=f(0.31000)*/ +{17, 0,123,__LINE__, 0x3fd4254a, 0x20000000, 0x3fd47ae1, 0x47ae148f}, /* 0.31477=f(0.32000)*/ +{15, 0,123,__LINE__, 0x3fd4c11b, 0x60000000, 0x3fd51eb8, 0x51eb8533}, /* 0.32428=f(0.33000)*/ +{16, 0,123,__LINE__, 0x3fd55c76, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.33376=f(0.34000)*/ +{14, 0,123,__LINE__, 0x3fd5f757, 0x80000000, 0x3fd66666, 0x6666667b}, /* 0.34322=f(0.35000)*/ +{15, 0,123,__LINE__, 0x3fd691bd, 0xc0000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.35264=f(0.36000)*/ +{16, 0,123,__LINE__, 0x3fd72ba6, 0x20000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.36203=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fd7c50e, 0xa0000000, 0x3fd851eb, 0x851eb867}, /* 0.37140=f(0.38000)*/ +{16, 0,123,__LINE__, 0x3fd85df4, 0xc0000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.38073=f(0.39000)*/ +{15, 0,123,__LINE__, 0x3fd8f656, 0xc0000000, 0x3fd99999, 0x999999af}, /* 0.39003=f(0.40000)*/ +{14, 0,123,__LINE__, 0x3fd98e32, 0x60000000, 0x3fda3d70, 0xa3d70a53}, /* 0.39930=f(0.41000)*/ +{16, 0,123,__LINE__, 0x3fda2585, 0xc0000000, 0x3fdae147, 0xae147af7}, /* 0.40854=f(0.42000)*/ +{15, 0,123,__LINE__, 0x3fdabc4f, 0x40000000, 0x3fdb851e, 0xb851eb9b}, /* 0.41774=f(0.43000)*/ +{13, 0,123,__LINE__, 0x3fdb528c, 0xc0000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.42691=f(0.44000)*/ +{13, 0,123,__LINE__, 0x3fdbe83c, 0xe0000000, 0x3fdccccc, 0xcccccce3}, /* 0.43604=f(0.45000)*/ +{15, 0,123,__LINE__, 0x3fdc7d5d, 0xe0000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.44515=f(0.46000)*/ +{14, 0,123,__LINE__, 0x3fdd11ee, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 0.45421=f(0.47000)*/ +{14, 0,123,__LINE__, 0x3fdda5ec, 0x20000000, 0x3fdeb851, 0xeb851ecf}, /* 0.46325=f(0.48000)*/ +{15, 0,123,__LINE__, 0x3fde3956, 0xc0000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.47224=f(0.49000)*/ +{10, 0,123,__LINE__, 0x3fdecc2c, 0xc0000000, 0x3fe00000, 0x0000000b}, /* 0.48121=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fdf5e6c, 0x80000000, 0x3fe051eb, 0x851eb85d}, /* 0.49013=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fdff014, 0xe0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.49902=f(0.52000)*/ +{16, 0,123,__LINE__, 0x3fe04092, 0xa0000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.50788=f(0.53000)*/ +{15, 0,123,__LINE__, 0x3fe088ce, 0x20000000, 0x3fe147ae, 0x147ae153}, /* 0.51669=f(0.54000)*/ +{15, 0,123,__LINE__, 0x3fe0d0bc, 0x60000000, 0x3fe19999, 0x999999a5}, /* 0.52548=f(0.55000)*/ +{16, 0,123,__LINE__, 0x3fe1185d, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.53422=f(0.56000)*/ +{14, 0,123,__LINE__, 0x3fe15faf, 0xc0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.54293=f(0.57000)*/ +{14, 0,123,__LINE__, 0x3fe1a6b4, 0x20000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.55159=f(0.58000)*/ +{14, 0,123,__LINE__, 0x3fe1ed69, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 0.56023=f(0.59000)*/ +{15, 0,123,__LINE__, 0x3fe233d0, 0x40000000, 0x3fe33333, 0x3333333f}, /* 0.56882=f(0.60000)*/ +{15, 0,123,__LINE__, 0x3fe279e7, 0x80000000, 0x3fe3851e, 0xb851eb91}, /* 0.57738=f(0.61000)*/ +{15, 0,123,__LINE__, 0x3fe2bfaf, 0x20000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.58589=f(0.62000)*/ +{13, 0,123,__LINE__, 0x3fe30526, 0xe0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.59437=f(0.63000)*/ +{13, 0,123,__LINE__, 0x3fe34a4e, 0xa0000000, 0x3fe47ae1, 0x47ae1487}, /* 0.60282=f(0.64000)*/ +{13, 0,123,__LINE__, 0x3fe38f26, 0x40000000, 0x3fe4cccc, 0xccccccd9}, /* 0.61122=f(0.65000)*/ +{13, 0,123,__LINE__, 0x3fe3d3ad, 0xa0000000, 0x3fe51eb8, 0x51eb852b}, /* 0.61958=f(0.66000)*/ +{15, 0,123,__LINE__, 0x3fe417e4, 0x60000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.62791=f(0.67000)*/ +{15, 0,123,__LINE__, 0x3fe45bca, 0x80000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.63620=f(0.68000)*/ +{14, 0,123,__LINE__, 0x3fe49f60, 0x20000000, 0x3fe6147a, 0xe147ae21}, /* 0.64445=f(0.69000)*/ +{14, 0,123,__LINE__, 0x3fe4e2a5, 0x00000000, 0x3fe66666, 0x66666673}, /* 0.65266=f(0.70000)*/ +{14, 0,123,__LINE__, 0x3fe52599, 0x20000000, 0x3fe6b851, 0xeb851ec5}, /* 0.66083=f(0.71000)*/ +{14, 0,123,__LINE__, 0x3fe5683c, 0xa0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.66897=f(0.72000)*/ +{14, 0,123,__LINE__, 0x3fe5aa8f, 0x60000000, 0x3fe75c28, 0xf5c28f69}, /* 0.67707=f(0.73000)*/ +{14, 0,123,__LINE__, 0x3fe5ec91, 0x80000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.68512=f(0.74000)*/ +{15, 0,123,__LINE__, 0x3fe62e43, 0x00000000, 0x3fe80000, 0x0000000d}, /* 0.69314=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe66fa3, 0xe0000000, 0x3fe851eb, 0x851eb85f}, /* 0.70112=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe6b0b4, 0x80000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.70907=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe6f174, 0xa0000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.71697=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe731e4, 0xc0000000, 0x3fe947ae, 0x147ae155}, /* 0.72484=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe77204, 0xa0000000, 0x3fe99999, 0x999999a7}, /* 0.73266=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe7b1d4, 0xc0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.74045=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3fe7f155, 0x40000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.74820=f(0.82000)*/ +{14, 0,123,__LINE__, 0x3fe83086, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.75592=f(0.83000)*/ +{14, 0,123,__LINE__, 0x3fe86f67, 0xa0000000, 0x3feae147, 0xae147aef}, /* 0.76359=f(0.84000)*/ +{14, 0,123,__LINE__, 0x3fe8adfa, 0x20000000, 0x3feb3333, 0x33333341}, /* 0.77123=f(0.85000)*/ +{14, 0,123,__LINE__, 0x3fe8ec3d, 0xc0000000, 0x3feb851e, 0xb851eb93}, /* 0.77883=f(0.86000)*/ +{14, 0,123,__LINE__, 0x3fe92a32, 0xe0000000, 0x3febd70a, 0x3d70a3e5}, /* 0.78640=f(0.87000)*/ +{13, 0,123,__LINE__, 0x3fe967d9, 0x80000000, 0x3fec28f5, 0xc28f5c37}, /* 0.79392=f(0.88000)*/ +{13, 0,123,__LINE__, 0x3fe9a532, 0x20000000, 0x3fec7ae1, 0x47ae1489}, /* 0.80141=f(0.89000)*/ +{13, 0,123,__LINE__, 0x3fe9e23c, 0xe0000000, 0x3feccccc, 0xccccccdb}, /* 0.80886=f(0.90000)*/ +{13, 0,123,__LINE__, 0x3fea1efa, 0x40000000, 0x3fed1eb8, 0x51eb852d}, /* 0.81628=f(0.91000)*/ +{13, 0,123,__LINE__, 0x3fea5b6a, 0x40000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.82365=f(0.92000)*/ +{13, 0,123,__LINE__, 0x3fea978d, 0x80000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.83100=f(0.93000)*/ +{13, 0,123,__LINE__, 0x3fead364, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 0.83830=f(0.94000)*/ +{13, 0,123,__LINE__, 0x3feb0eee, 0x60000000, 0x3fee6666, 0x66666675}, /* 0.84557=f(0.95000)*/ +{13, 0,123,__LINE__, 0x3feb4a2c, 0xe0000000, 0x3feeb851, 0xeb851ec7}, /* 0.85280=f(0.96000)*/ +{13, 0,123,__LINE__, 0x3feb851f, 0xc0000000, 0x3fef0a3d, 0x70a3d719}, /* 0.86000=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3febbfc7, 0x80000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.86716=f(0.98000)*/ +{13, 0,123,__LINE__, 0x3febfa24, 0x20000000, 0x3fefae14, 0x7ae147bd}, /* 0.87428=f(0.99000)*/ +{14, 0,123,__LINE__, 0x3fec3436, 0x60000000, 0x3ff00000, 0x00000007}, /* 0.88137=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fec6dfe, 0x60000000, 0x3ff028f5, 0xc28f5c30}, /* 0.88842=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3feca77c, 0xc0000000, 0x3ff051eb, 0x851eb859}, /* 0.89544=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fece0b1, 0xa0000000, 0x3ff07ae1, 0x47ae1482}, /* 0.90242=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fed199d, 0xa0000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.90937=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3fed5240, 0xe0000000, 0x3ff0cccc, 0xccccccd4}, /* 0.91629=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3fed8a9b, 0xe0000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.92317=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fedc2af, 0x40000000, 0x3ff11eb8, 0x51eb8526}, /* 0.93001=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fedfa7b, 0x20000000, 0x3ff147ae, 0x147ae14f}, /* 0.93682=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fee31ff, 0xe0000000, 0x3ff170a3, 0xd70a3d78}, /* 0.94360=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fee693d, 0xe0000000, 0x3ff19999, 0x999999a1}, /* 0.95034=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3feea035, 0xe0000000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.95705=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3feed6e8, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 0.96373=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fef0d54, 0xc0000000, 0x3ff2147a, 0xe147ae1c}, /* 0.97037=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fef437c, 0x80000000, 0x3ff23d70, 0xa3d70a45}, /* 0.97698=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fef795f, 0xa0000000, 0x3ff26666, 0x6666666e}, /* 0.98356=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fefaefe, 0xc0000000, 0x3ff28f5c, 0x28f5c297}, /* 0.99011=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fefe45a, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 0.99662=f(1.17000)*/ +{14, 0,123,__LINE__, 0x3ff00cb9, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 1.00310=f(1.18000)*/ +{14, 0,123,__LINE__, 0x3ff02723, 0xa0000000, 0x3ff30a3d, 0x70a3d712}, /* 1.00955=f(1.19000)*/ +{16, 0,123,__LINE__, 0xc0044c62, 0xa0000000, 0xc01921fb, 0x54442d18}, /* -2.53729=f(-6.28318)*/ +{15, 0,123,__LINE__, 0xc002090a, 0x80000000, 0xc012d97c, 0x7f3321d2}, /* -2.25441=f(-4.71238)*/ +{ 1, 0,123,__LINE__, 0xbffdcbf6, 0xa0000000, 0xc00921fb, 0x54442d18}, /* -1.86229=f(-3.14159)*/ +{12, 0,123,__LINE__, 0xbff3bc04, 0xe0000000, 0xbff921fb, 0x54442d18}, /* -1.23340=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{12, 0,123,__LINE__, 0x3ff3bc04, 0xe0000000, 0x3ff921fb, 0x54442d18}, /* 1.23340=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3ffdcbf6, 0xa0000000, 0x400921fb, 0x54442d18}, /* 1.86229=f(3.14159)*/ +{15, 0,123,__LINE__, 0x4002090a, 0x80000000, 0x4012d97c, 0x7f3321d2}, /* 2.25441=f(4.71238)*/ +{11, 0,123,__LINE__, 0xc01060e4, 0xa0000000, 0xc03e0000, 0x00000000}, /* -4.09462=f(-30.0000)*/ +{11, 0,123,__LINE__, 0xc0102531, 0x60000000, 0xc03c4ccc, 0xcccccccd}, /* -4.03632=f(-28.3000)*/ +{12, 0,123,__LINE__, 0xc00fcb98, 0x40000000, 0xc03a9999, 0x9999999a}, /* -3.97441=f(-26.6000)*/ +{12, 0,123,__LINE__, 0xc00f4470, 0xa0000000, 0xc038e666, 0x66666667}, /* -3.90841=f(-24.9000)*/ +{12, 0,123,__LINE__, 0xc00eb3bd, 0x60000000, 0xc0373333, 0x33333334}, /* -3.83776=f(-23.2000)*/ +{12, 0,123,__LINE__, 0xc00e180b, 0x60000000, 0xc0358000, 0x00000001}, /* -3.76174=f(-21.5000)*/ +{12, 0,123,__LINE__, 0xc00d6f8b, 0xe0000000, 0xc033cccc, 0xccccccce}, /* -3.67946=f(-19.8000)*/ +{12, 0,123,__LINE__, 0xc00cb7f4, 0x40000000, 0xc0321999, 0x9999999b}, /* -3.58982=f(-18.1000)*/ +{12, 0,123,__LINE__, 0xc00bee4c, 0x80000000, 0xc0306666, 0x66666668}, /* -3.49135=f(-16.4000)*/ +{12, 0,123,__LINE__, 0xc00b0ea4, 0x60000000, 0xc02d6666, 0x6666666a}, /* -3.38214=f(-14.7000)*/ +{12, 0,123,__LINE__, 0xc00a139a, 0xc0000000, 0xc02a0000, 0x00000004}, /* -3.25957=f(-13.0000)*/ +{12, 0,123,__LINE__, 0xc008f58f, 0x40000000, 0xc0269999, 0x9999999e}, /* -3.11990=f(-11.3000)*/ +{14, 0,123,__LINE__, 0xc007a930, 0x80000000, 0xc0233333, 0x33333338}, /* -2.95761=f(-9.60000)*/ +{14, 0,123,__LINE__, 0xc0061ca7, 0xc0000000, 0xc01f9999, 0x999999a3}, /* -2.76399=f(-7.90000)*/ +{16, 0,123,__LINE__, 0xc004316f, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -2.52413=f(-6.20000)*/ +{14, 0,123,__LINE__, 0xc001acbe, 0x80000000, 0xc0120000, 0x00000009}, /* -2.20934=f(-4.50000)*/ +{ 1, 0,123,__LINE__, 0xbffc0d39, 0xa0000000, 0xc0066666, 0x66666678}, /* -1.75322=f(-2.80000)*/ +{11, 0,123,__LINE__, 0xbfee693d, 0xe0000000, 0xbff19999, 0x999999bd}, /* -0.95034=f(-1.10000)*/ +{15, 0,123,__LINE__, 0x3fe233d0, 0x40000000, 0x3fe33333, 0x333332ec}, /* 0.56882=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0x3ff91fdc, 0x60000000, 0x40026666, 0x66666654}, /* 1.57027=f(2.30000)*/ +{14, 0,123,__LINE__, 0x4000c1f8, 0xa0000000, 0x400fffff, 0xffffffee}, /* 2.09471=f(4.00000)*/ +{13, 0,123,__LINE__, 0x4003879e, 0xc0000000, 0x4016cccc, 0xccccccc4}, /* 2.44122=f(5.70000)*/ +{15, 0,123,__LINE__, 0x400597e2, 0x00000000, 0x401d9999, 0x99999991}, /* 2.69916=f(7.40000)*/ +{14, 0,123,__LINE__, 0x40073c44, 0x40000000, 0x40223333, 0x3333332f}, /* 2.90442=f(9.10000)*/ +{12, 0,123,__LINE__, 0x40089940, 0x60000000, 0x40259999, 0x99999995}, /* 3.07483=f(10.8000)*/ +{12, 0,123,__LINE__, 0x4009c386, 0xe0000000, 0x4028ffff, 0xfffffffb}, /* 3.22047=f(12.5000)*/ +{12, 0,123,__LINE__, 0x400ac7f0, 0x80000000, 0x402c6666, 0x66666661}, /* 3.34762=f(14.2000)*/ +{12, 0,123,__LINE__, 0x400baf02, 0x60000000, 0x402fcccc, 0xccccccc7}, /* 3.46045=f(15.9000)*/ +{12, 0,123,__LINE__, 0x400c7eac, 0x60000000, 0x40319999, 0x99999997}, /* 3.56185=f(17.6000)*/ +{12, 0,123,__LINE__, 0x400d3b3b, 0xe0000000, 0x40334ccc, 0xccccccca}, /* 3.65392=f(19.3000)*/ +{12, 0,123,__LINE__, 0x400de7e8, 0x40000000, 0x4034ffff, 0xfffffffd}, /* 3.73823=f(21.0000)*/ +{12, 0,123,__LINE__, 0x400e8729, 0x60000000, 0x4036b333, 0x33333330}, /* 3.81599=f(22.7000)*/ +{12, 0,123,__LINE__, 0x400f1aee, 0x60000000, 0x40386666, 0x66666663}, /* 3.88815=f(24.4000)*/ +{12, 0,123,__LINE__, 0x400fa4c2, 0xa0000000, 0x403a1999, 0x99999996}, /* 3.95544=f(26.1000)*/ +{11, 0,123,__LINE__, 0x401012f3, 0x60000000, 0x403bcccc, 0xccccccc9}, /* 4.01850=f(27.8000)*/ +{11, 0,123,__LINE__, 0x40104fb1, 0x40000000, 0x403d7fff, 0xfffffffc}, /* 4.07782=f(29.5000)*/ +0,}; +test_asinhf(m) {run_vector_1(m,asinhf_vec,(char *)(asinhf),"asinhf","ff"); } diff --git a/newlib/libm/test/atan2_vec.c b/newlib/libm/test/atan2_vec.c new file mode 100644 index 000000000..802108453 --- /dev/null +++ b/newlib/libm/test/atan2_vec.c @@ -0,0 +1,1604 @@ +#include "test.h" + one_line_type atan2_vec[] = { +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbff00000, 0x00000000, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc002a4fc, 0x28e95ed8, 0xbff00000, 0x00000000, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0026dcb, 0xd423977c, 0xbff00000, 0x00000000, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc00233cb, 0x72d34279, 0xbff00000, 0x00000000, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbff00000, 0x00000000, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbff00000, 0x00000000, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc00173c1, 0xf5810bb7, 0xbff00000, 0x00000000, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0012d68, 0x46b76641, 0xbff00000, 0x00000000, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbff00000, 0x00000000, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc00096d0, 0x5371b1c4, 0xbff00000, 0x00000000, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbff00000, 0x00000000, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xbfffe5fd, 0xcebfcb86, 0xbff00000, 0x00000000, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbff00000, 0x00000000, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xbffe8500, 0x76ee9e8d, 0xbff00000, 0x00000000, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbffdcbc9, 0xedcbd8d9, 0xbff00000, 0x00000000, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbff00000, 0x00000000, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffc4a83, 0x936311d9, 0xbff00000, 0x00000000, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffb83d5, 0xc13f26b8, 0xbff00000, 0x00000000, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffaba39, 0x7c7259dc, 0xbff00000, 0x00000000, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbff9ee9c, 0x8100c211, 0xbff00000, 0x00000000, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbff00000, 0x00000000, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff8555a, 0x2787981e, 0xbff00000, 0x00000000, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff789bd, 0x2c160052, 0xbff00000, 0x00000000, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff6c020, 0xe7493376, 0xbff00000, 0x00000000, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff5f973, 0x15254855, 0xbff00000, 0x00000000, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff5368c, 0x951e9cfb, 0xbff00000, 0x00000000, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff4782c, 0xbabc8156, 0xbff00000, 0x00000000, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff3bef6, 0x3199bba1, 0xbff00000, 0x00000000, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff30b6d, 0x796a4da7, 0xbff00000, 0x00000000, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff25df8, 0xd9c88ea8, 0xbff00000, 0x00000000, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbff00000, 0x00000000, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbff11656, 0x01a4f6a5, 0xbff00000, 0x00000000, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbff07c6c, 0x6947a6a6, 0xbff00000, 0x00000000, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfefd24c, 0x36331b59, 0xbff00000, 0x00000000, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfeeb8e5, 0x7b0c8580, 0xbff00000, 0x00000000, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfedac67, 0x0561bb4c, 0xbff00000, 0x00000000, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfecac7c, 0x57846f9b, 0xbff00000, 0x00000000, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfebb8bf, 0x85c3aa79, 0xbff00000, 0x00000000, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfead0be, 0x0082566f, 0xbff00000, 0x00000000, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe9f3fc, 0xad6b38ff, 0xbff00000, 0x00000000, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0030dfc, 0xd57ce4cd, 0xbfee6666, 0x66666666, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfee6666, 0x66666666, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc002a225, 0xffe678cc, 0xbfee6666, 0x66666666, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc00267d3, 0x4beb12ff, 0xbfee6666, 0x66666666, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0022a5f, 0x18f3451e, 0xbfee6666, 0x66666666, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc001e9a5, 0xc99335b0, 0xbfee6666, 0x66666666, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc001a586, 0x8fc6c8d0, 0xbfee6666, 0x66666666, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0015de4, 0xca763c22, 0xbfee6666, 0x66666666, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc00112a9, 0x9ee56458, 0xbfee6666, 0x66666666, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc000c3c5, 0xca449e52, 0xbfee6666, 0x66666666, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0007133, 0xa108dee4, 0xbfee6666, 0x66666666, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0001af9, 0x294450fa, 0xbfee6666, 0x66666666, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xbfff8254, 0x66b1ec6c, 0xbfee6666, 0x66666666, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xbffec7d4, 0x93fc7aa8, 0xbfee6666, 0x66666666, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbffe06dc, 0x9297b73f, 0xbfee6666, 0x66666666, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffd3ffa, 0xcd08c0c2, 0xbfee6666, 0x66666666, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffc73e2, 0xe46d7f72, 0xbfee6666, 0x66666666, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffba36c, 0x4c864174, 0xbfee6666, 0x66666666, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffacf8e, 0xc523642f, 0xbfee6666, 0x66666666, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbff9f95c, 0xaa6341c4, 0xbfee6666, 0x66666666, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfee6666, 0x66666666, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff84a99, 0xfe25186a, 0xbfee6666, 0x66666666, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff77467, 0xe364f5ff, 0xbfee6666, 0x66666666, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff6a08a, 0x5c0218ba, 0xbfee6666, 0x66666666, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff5d013, 0xc41adabc, 0xbfee6666, 0x66666666, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff503fb, 0xdb7f996c, 0xbfee6666, 0x66666666, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff43d1a, 0x15f0a2ef, 0xbfee6666, 0x66666666, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff37c22, 0x148bdf86, 0xbfee6666, 0x66666666, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff2c1a2, 0x41d66dc2, 0xbfee6666, 0x66666666, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff20e04, 0x55ffb83a, 0xbfee6666, 0x66666666, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbff1618f, 0x66769c68, 0xbfee6666, 0x66666666, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbff0bc6b, 0x13ff1d8c, 0xbfee6666, 0x66666666, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbff01ea3, 0x6abd917e, 0xbfee6666, 0x66666666, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfef105a, 0x2737c3d5, 0xbfee6666, 0x66666666, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfedf1d3, 0x11f5911e, 0xbfee6666, 0x66666666, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfece156, 0x2ac3dd9e, 0xbfee6666, 0x66666666, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfebde70, 0xed439fe3, 0xbfee6666, 0x66666666, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfeae8a0, 0x21646861, 0xbfee6666, 0x66666666, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe9ff55, 0x5176d12f, 0xbfee6666, 0x66666666, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d15, 0xbfee6666, 0x66666666, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc003452d, 0x2a42ac29, 0xbfeccccc, 0xcccccccc, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc00310d2, 0xfe7fcad9, 0xbfeccccc, 0xcccccccc, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfeccccc, 0xcccccccc, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0029efc, 0xe9f0f591, 0xbfeccccc, 0xcccccccc, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0026127, 0x862b05f6, 0xbfeccccc, 0xcccccccc, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfeccccc, 0xcccccccc, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc001dace, 0xaa5dc056, 0xbfeccccc, 0xcccccccc, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc00191fb, 0xf721ce52, 0xbfeccccc, 0xcccccccc, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfeccccc, 0xcccccccc, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc000f46b, 0x88a03601, 0xbfeccccc, 0xcccccccc, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0009f87, 0x5343d018, 0xbfeccccc, 0xcccccccc, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfeccccc, 0xcccccccc, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xbfffd307, 0x52e3200b, 0xbfeccccc, 0xcccccccc, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xbfff1127, 0x088152ad, 0xbfeccccc, 0xcccccccc, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfeccccc, 0xcccccccc, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffd77c7, 0xb196b320, 0xbfeccccc, 0xcccccccc, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffca1a6, 0x56770bcf, 0xbfeccccc, 0xcccccccc, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffbc66e, 0x44cbc073, 0xbfeccccc, 0xcccccccc, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffae73b, 0xd5e44e5a, 0xbfeccccc, 0xcccccccc, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa054d, 0xbad44abd, 0xbfeccccc, 0xcccccccc, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfeccccc, 0xcccccccc, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff83ea8, 0xedb40f71, 0xbfeccccc, 0xcccccccc, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff75cba, 0xd2a40bd4, 0xbfeccccc, 0xcccccccc, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff67d88, 0x63bc99bb, 0xbfeccccc, 0xcccccccc, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff5a250, 0x52114e5e, 0xbfeccccc, 0xcccccccc, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff4cc2e, 0xf6f1a70e, 0xbfeccccc, 0xcccccccc, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a855e, 0xbfeccccc, 0xcccccccc, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff332cf, 0xa0070782, 0xbfeccccc, 0xcccccccc, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff270ef, 0x55a53a23, 0xbfeccccc, 0xcccccccc, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbfeccccc, 0xcccccccc, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbff104e8, 0x0200b9fe, 0xbfeccccc, 0xcccccccc, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbff05b1f, 0x9747ee2c, 0xbfeccccc, 0xcccccccc, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f698, 0xbfeccccc, 0xcccccccc, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfee3ffd, 0x74897b16, 0xbfeccccc, 0xcccccccc, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfed1cb2, 0xa799b303, 0xbfeccccc, 0xcccccccc, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfec08aa, 0xe496efa3, 0xbfeccccc, 0xcccccccc, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfeb034f, 0x38649c84, 0xbfeccccc, 0xcccccccc, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfea0bf9, 0xa94cde18, 0xbfeccccc, 0xcccccccc, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfeccccc, 0xcccccccc, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe844a1, 0x571188fa, 0xbfeccccc, 0xcccccccc, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0037f2d, 0x8b93012c, 0xbfeb3333, 0x33333332, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0034b25, 0xb27b30a5, 0xbfeb3333, 0x33333332, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc00313fc, 0x14754e13, 0xbfeb3333, 0x33333332, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfeb3333, 0x33333332, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0029b71, 0xd79223d7, 0xbfeb3333, 0x33333332, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc00259a7, 0x10566dda, 0xbfeb3333, 0x33333332, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc00213e8, 0x74487c34, 0xbfeb3333, 0x33333332, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc001ca05, 0x51b12411, 0xbfeb3333, 0x33333332, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0017bd2, 0x1306a2e0, 0xbfeb3333, 0x33333332, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc001292a, 0xcb9e5e97, 0xbfeb3333, 0x33333332, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc000d1f6, 0x365d11c8, 0xbfeb3333, 0x33333332, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0007629, 0x16cab416, 0xbfeb3333, 0x33333332, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc00015c9, 0xda46bdfc, 0xbfeb3333, 0x33333332, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xbfff61e8, 0x80287a21, 0xbfeb3333, 0x33333332, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbffe8fb9, 0x6bf1d8f4, 0xbfeb3333, 0x33333332, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffdb5a6, 0x01769193, 0xbfeb3333, 0x33333332, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffcd487, 0x74e47389, 0xbfeb3333, 0x33333332, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffbed70, 0x67a8594d, 0xbfeb3333, 0x33333332, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffb01a8, 0xbf84055c, 0xbfeb3333, 0x33333332, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa12a5, 0x465464cf, 0xbfeb3333, 0x33333332, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfeb3333, 0x33333332, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff83151, 0x6233f55f, 0xbfeb3333, 0x33333332, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff7424d, 0xe90454d2, 0xbfeb3333, 0x33333332, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff65686, 0x40e000e1, 0xbfeb3333, 0x33333332, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff56f6f, 0x33a3e6a5, 0xbfeb3333, 0x33333332, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff48e50, 0xa711c89b, 0xbfeb3333, 0x33333332, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff3b43d, 0x3c96813a, 0xbfeb3333, 0x33333332, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff2e20e, 0x285fe00d, 0xbfeb3333, 0x33333332, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff21862, 0xf3fade35, 0xbfeb3333, 0x33333332, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff157a4, 0x7af2f203, 0xbfeb3333, 0x33333332, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbff0a00a, 0x3bce369d, 0xbfeb3333, 0x33333332, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfefe342, 0x229739ff, 0xbfeb3333, 0x33333332, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfee98a5, 0x04f628d9, 0xbfeb3333, 0x33333332, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfed5fd8, 0x0a4c2417, 0xbfeb3333, 0x33333332, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfec384b, 0x7feec38c, 0xbfeb3333, 0x33333332, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfeb2151, 0x0fb6fcf3, 0xbfeb3333, 0x33333332, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfea1a25, 0xf2c82502, 0xbfeb3333, 0x33333332, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfeb3333, 0x33333332, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe837fc, 0xff3b7c10, 0xbfeb3333, 0x33333332, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe75b56, 0x8723f1c8, 0xbfeb3333, 0x33333332, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfe99999, 0x99999998, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0038899, 0xe572fe86, 0xbfe99999, 0x99999998, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc00351d1, 0x783b3dae, 0xbfe99999, 0x99999998, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0031787, 0x26d41fce, 0xbfe99999, 0x99999998, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe99999, 0x99999998, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0029771, 0xd7e7791f, 0xbfe99999, 0x99999998, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0025127, 0x9b802819, 0xbfe99999, 0x99999998, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0020660, 0x0be7bd52, 0xbfe99999, 0x99999998, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfe99999, 0x99999998, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0016279, 0xb155a47a, 0xbfe99999, 0x99999998, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0010900, 0x9519d638, 0xbfe99999, 0x99999998, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc000aa5d, 0x4f58e2c0, 0xbfe99999, 0x99999998, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe99999, 0x99999998, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xbfffbb37, 0x05373617, 0xbfe99999, 0x99999998, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbffedf81, 0xa4bd64d3, 0xbfe99999, 0x99999998, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffdfa99, 0x2206280a, 0xbfe99999, 0x99999998, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbfe99999, 0x99999998, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffc192a, 0xbdbdf878, 0xbfe99999, 0x99999998, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffb1f56, 0xfdeef00e, 0xbfe99999, 0x99999998, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa21a6, 0x31fd9506, 0xbfe99999, 0x99999998, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe99999, 0x99999998, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff82250, 0x768ac527, 0xbfe99999, 0x99999998, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff7249f, 0xaa996a20, 0xbfe99999, 0x99999998, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff62acb, 0xeaca61b6, 0xbfe99999, 0x99999998, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff5368c, 0x951e9cfb, 0xbfe99999, 0x99999998, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff4495d, 0x86823223, 0xbfe99999, 0x99999998, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff36475, 0x03caf55a, 0xbfe99999, 0x99999998, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff288bf, 0xa3512417, 0xbfe99999, 0x99999998, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbfe99999, 0x99999998, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff0ef3c, 0x09d694af, 0xbfe99999, 0x99999998, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbff031f5, 0x7e54adbc, 0xbfe99999, 0x99999998, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfeefe06, 0x8bba2272, 0xbfe99999, 0x99999998, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfedac67, 0x0561bb4c, 0xbfe99999, 0x99999998, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfec6e6d, 0x2171bf14, 0xbfe99999, 0x99999998, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfeb434e, 0xe31013f8, 0xbfe99999, 0x99999998, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfea2a25, 0xf172cfdf, 0xbfe99999, 0x99999998, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfe99999, 0x99999998, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe829d0, 0xb5c03526, 0xbfe99999, 0x99999998, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe740a7, 0x7023bda5, 0xbfe99999, 0x99999998, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe66585, 0xbb44ba45, 0xbfe99999, 0x99999998, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfe7ffff, 0xfffffffe, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc003c953, 0x34d30df5, 0xbfe7ffff, 0xfffffffe, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfe7ffff, 0xfffffffe, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0035951, 0xee0fd5ca, 0xbfe7ffff, 0xfffffffe, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0031b87, 0x267eca85, 0xbfe7ffff, 0xfffffffe, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe7ffff, 0xfffffffe, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc00292e4, 0xc2c70244, 0xbfe7ffff, 0xfffffffe, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0024772, 0xd9496c96, 0xbfe7ffff, 0xfffffffe, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfe7ffff, 0xfffffffe, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc001a0dc, 0x49296b7e, 0xbfe7ffff, 0xfffffffe, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfe7ffff, 0xfffffffe, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfe7ffff, 0xfffffffe, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0007c6c, 0x6947a6a8, 0xbfe7ffff, 0xfffffffe, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc0000f34, 0x0b81a4ef, 0xbfe7ffff, 0xfffffffe, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbfe7ffff, 0xfffffffe, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfe7ffff, 0xfffffffe, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffd4d68, 0xbe213418, 0xbfe7ffff, 0xfffffffe, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffc4a83, 0x936311d9, 0xbfe7ffff, 0xfffffffe, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffb40e9, 0xaf482898, 0xbfe7ffff, 0xfffffffe, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa32a5, 0x1baa2089, 0xbfe7ffff, 0xfffffffe, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe7ffff, 0xfffffffe, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff81151, 0x8cde39a4, 0xbfe7ffff, 0xfffffffe, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff7030c, 0xf9403195, 0xbfe7ffff, 0xfffffffe, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff5f973, 0x15254855, 0xbfe7ffff, 0xfffffffe, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff4f68d, 0xea672615, 0xbfe7ffff, 0xfffffffe, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a855e, 0xbfe7ffff, 0xfffffffe, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff30b6d, 0x796a4da6, 0xbfe7ffff, 0xfffffffe, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff2258e, 0x9185104f, 0xbfe7ffff, 0xfffffffe, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff14b1d, 0xd5f90cdf, 0xbfe7ffff, 0xfffffffe, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbff07c6c, 0x6947a6a6, 0xbfe7ffff, 0xfffffffe, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f697, 0xbfe7ffff, 0xfffffffe, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfee047c, 0x2c6b0665, 0xbfe7ffff, 0xfffffffe, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfecac7c, 0x57846f9a, 0xbfe7ffff, 0xfffffffe, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfeb6a21, 0xebeb0204, 0xbfe7ffff, 0xfffffffe, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfea3c5a, 0x45f4ab4c, 0xbfe7ffff, 0xfffffffe, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfe7ffff, 0xfffffffe, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe819d0, 0xb7158a48, 0xbfe7ffff, 0xfffffffe, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe722a5, 0x98d15d35, 0xbfe7ffff, 0xfffffffe, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a86, 0xbfe7ffff, 0xfffffffe, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe562a0, 0x7dc47c8a, 0xbfe7ffff, 0xfffffffe, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0043f37, 0x08e537ed, 0xbfe66666, 0x66666664, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0040d72, 0x6e9f7ad5, 0xbfe66666, 0x66666664, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc003d82a, 0x5408834e, 0xbfe66666, 0x66666664, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0039f10, 0x8a1dc770, 0xbfe66666, 0x66666664, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc00361d1, 0x62e61b8c, 0xbfe66666, 0x66666664, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0032014, 0x3b9f4160, 0xbfe66666, 0x66666664, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe66666, 0x66666664, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0028dab, 0x4b5b59d0, 0xbfe66666, 0x66666664, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0023c41, 0xea611604, 0xbfe66666, 0x66666664, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc001e4e5, 0x5817921e, 0xbfe66666, 0x66666664, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0018743, 0x06ef5824, 0xbfe66666, 0x66666664, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0012317, 0x0c990104, 0xbfe66666, 0x66666664, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc000b833, 0xbe165cc8, 0xbfe66666, 0x66666664, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe66666, 0x66666664, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xbfff9c6b, 0x238c6434, 0xbfe66666, 0x66666664, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffe9f02, 0x0021cec6, 0xbfe66666, 0x66666664, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffd95e5, 0xac22d08b, 0xbfe66666, 0x66666664, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffc829e, 0xbb6db38c, 0xbfe66666, 0x66666664, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffb6731, 0x2cd2f433, 0xbfe66666, 0x66666664, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa460e, 0xa017978f, 0xbfe66666, 0x66666664, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe66666, 0x66666664, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff7fde8, 0x0870c29e, 0xbfe66666, 0x66666664, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff6dcc5, 0x7bb565fa, 0xbfe66666, 0x66666664, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff5c157, 0xed1aa6a1, 0xbfe66666, 0x66666664, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff4ae10, 0xfc6589a2, 0xbfe66666, 0x66666664, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff3a4f4, 0xa8668b67, 0xbfe66666, 0x66666664, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff2a78b, 0x84fbf5fa, 0xbfe66666, 0x66666664, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe42, 0xbfe66666, 0x66666664, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff0d38f, 0x2c5ba09c, 0xbfe66666, 0x66666664, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfeffb91, 0x1eacb04d, 0xbfe66666, 0x66666664, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfee6ae1, 0x355353cb, 0xbfe66666, 0x66666664, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfecf457, 0xf0b26be3, 0xbfe66666, 0x66666664, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfeb96e5, 0xa78c5c4d, 0xbfe66666, 0x66666664, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfea5140, 0x23a34d1b, 0xbfe66666, 0x66666664, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d13, 0xbfe66666, 0x66666664, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe8079c, 0x6293aeda, 0xbfe66666, 0x66666664, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe700a7, 0xc578462f, 0xbfe66666, 0x66666664, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe60bab, 0x2899969c, 0xbfe66666, 0x66666664, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe52744, 0x00eea726, 0xbfe66666, 0x66666664, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe45223, 0x9692c90b, 0xbfe66666, 0x66666664, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0048590, 0xb7aedd64, 0xbfe4cccc, 0xccccccca, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0045514, 0x33f00783, 0xbfe4cccc, 0xccccccca, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc00420fd, 0x07447553, 0xbfe4cccc, 0xccccccca, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc003e8f3, 0xacb51f93, 0xbfe4cccc, 0xccccccca, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc003ac98, 0xf27e8652, 0xbfe4cccc, 0xccccccca, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0036b86, 0x251cd70e, 0xbfe4cccc, 0xccccccca, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc003254d, 0xb30ae9d4, 0xbfe4cccc, 0xccccccca, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe4cccc, 0xccccccca, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc002879c, 0x26a5479d, 0xbfe4cccc, 0xccccccca, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0022f36, 0x8bf3da20, 0xbfe4cccc, 0xccccccca, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc001cfdb, 0x0358ca07, 0xbfe4cccc, 0xccccccca, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0016925, 0x7715b184, 0xbfe4cccc, 0xccccccca, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc000fac7, 0xc0872c2c, 0xbfe4cccc, 0xccccccca, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc0008495, 0x326f4bf1, 0xbfe4cccc, 0xccccccca, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc000068f, 0xdf56fb0a, 0xbfe4cccc, 0xccccccca, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbfff01ec, 0xffc750b0, 0xbfe4cccc, 0xccccccca, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffde8a2, 0x25150890, 0xbfe4cccc, 0xccccccca, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffcc2f3, 0x2876c449, 0xbfe4cccc, 0xccccccca, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffb933b, 0xc05799c0, 0xbfe4cccc, 0xccccccca, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa5c70, 0x7de844b3, 0xbfe4cccc, 0xccccccca, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe4cccc, 0xccccccca, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff7e786, 0x2aa01579, 0xbfe4cccc, 0xccccccca, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff6b0ba, 0xe830c06d, 0xbfe4cccc, 0xccccccca, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff58103, 0x801195e3, 0xbfe4cccc, 0xccccccca, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff45b54, 0x8373519d, 0xbfe4cccc, 0xccccccca, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff34209, 0xa8c1097d, 0xbfe4cccc, 0xccccccca, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff236d6, 0xe9da641a, 0xbfe4cccc, 0xccccccca, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff13acc, 0x43a9c24b, 0xbfe4cccc, 0xccccccca, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbff04e67, 0x277a01d5, 0xbfe4cccc, 0xccccccca, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfeee357, 0x74b9ee4d, 0xbfe4cccc, 0xccccccca, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfed4881, 0x43ad8c3f, 0xbfe4cccc, 0xccccccca, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfebcb13, 0x21414bdb, 0xbfe4cccc, 0xccccccca, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfea697c, 0xb67b95e9, 0xbfe4cccc, 0xccccccca, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d13, 0xbfe4cccc, 0xccccccca, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe7f2b6, 0x84e50d0b, 0xbfe4cccc, 0xccccccca, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe6d9d4, 0xbc9d5822, 0xbfe4cccc, 0xccccccca, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe5d589, 0x87169b13, 0xbfe4cccc, 0xccccccca, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe4e41e, 0x9e3c3610, 0xbfe4cccc, 0xccccccca, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe403f9, 0x33fedf12, 0xbfe4cccc, 0xccccccca, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe3339c, 0x81509652, 0xbfe4cccc, 0xccccccca, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfe33333, 0x33333330, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc004a04f, 0x5f80df4c, 0xbfe33333, 0x33333330, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfe33333, 0x33333330, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0043726, 0xeb5fa0c4, 0xbfe33333, 0x33333330, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfe33333, 0x33333330, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfe33333, 0x33333330, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc00376b7, 0x14052da1, 0xbfe33333, 0x33333330, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0032b5c, 0xd7c0fc08, 0xbfe33333, 0x33333330, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe33333, 0x33333330, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc002807f, 0xb6bd9fb0, 0xbfe33333, 0x33333330, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfe33333, 0x33333330, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfe33333, 0x33333330, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfe33333, 0x33333330, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc000ca7c, 0xc2d0d7fc, 0xbfe33333, 0x33333330, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe33333, 0x33333330, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbfff730b, 0xd281f69a, 0xbfe33333, 0x33333330, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfe33333, 0x33333330, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbfe33333, 0x33333330, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffbc66e, 0x44cbc073, 0xbfe33333, 0x33333330, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa7687, 0x3ac2bc7b, 0xbfe33333, 0x33333330, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe33333, 0x33333330, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff7cd6f, 0x6dc59db2, 0xbfe33333, 0x33333330, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff67d88, 0x63bc99ba, 0xbfe33333, 0x33333330, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff5368c, 0x951e9cfa, 0xbfe33333, 0x33333330, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a855d, 0xbfe33333, 0x33333330, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff2d0ea, 0xd6066392, 0xbfe33333, 0x33333330, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe41, 0xbfe33333, 0x33333330, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff0aefd, 0x22e6aa34, 0xbfe33333, 0x33333330, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f696, 0xbfe33333, 0x33333330, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfedac67, 0x0561bb4a, 0xbfe33333, 0x33333330, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfec08aa, 0xe496efa0, 0xbfe33333, 0x33333330, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfea85ee, 0x761a359c, 0xbfe33333, 0x33333330, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfe33333, 0x33333330, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe7da79, 0xf20cc43d, 0xbfe33333, 0x33333330, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe6ad11, 0x00fbfdd9, 0xbfe33333, 0x33333330, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe5977a, 0x5103ea8c, 0xbfe33333, 0x33333330, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe4978f, 0xa3269edb, 0xbfe33333, 0x33333330, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe3ab51, 0xa392314e, 0xbfe33333, 0x33333330, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd6066390, 0xbfe33333, 0x33333330, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe206af, 0xd30d372c, 0xbfe33333, 0x33333330, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0051c28, 0xaaf491e0, 0xbfe19999, 0x99999996, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc004ef33, 0x3421a553, 0xbfe19999, 0x99999996, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc004be8d, 0x75c60da4, 0xbfe19999, 0x99999996, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc00489ce, 0x32c7e50e, 0xbfe19999, 0x99999996, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc004507f, 0x4d109f2a, 0xbfe19999, 0x99999996, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc004121c, 0xb53cd827, 0xbfe19999, 0x99999996, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc003ce13, 0xa64eb186, 0xbfe19999, 0x99999996, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc00383c2, 0x72726984, 0xbfe19999, 0x99999996, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0033279, 0x47a8a3f5, 0xbfe19999, 0x99999996, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe19999, 0x99999996, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0027809, 0x3f2fcc25, 0xbfe19999, 0x99999996, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0020d5d, 0x6b1c0b70, 0xbfe19999, 0x99999996, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc00198c4, 0x031217a4, 0xbfe19999, 0x99999996, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc00119a6, 0xfe19b276, 0xbfe19999, 0x99999996, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0008fa7, 0x2899ef94, 0xbfe19999, 0x99999996, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xbffff572, 0xaded0be8, 0xbfe19999, 0x99999996, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbffeb68c, 0x3ba726dd, 0xbfe19999, 0x99999996, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffd648c, 0xd67db72a, 0xbfe19999, 0x99999996, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffc02a9, 0x647f0db4, 0xbfe19999, 0x99999996, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffa9553, 0x1c6d8e5d, 0xbfe19999, 0x99999996, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe19999, 0x99999996, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff7aea3, 0x8c1acbce, 0xbfe19999, 0x99999996, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff6414d, 0x44094c78, 0xbfe19999, 0x99999996, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff4df69, 0xd20aa302, 0xbfe19999, 0x99999996, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff38d6a, 0x6ce1334f, 0xbfe19999, 0x99999996, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff24e83, 0xfa9b4e45, 0xbfe19999, 0x99999996, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff124a8, 0x57547b04, 0xbfe19999, 0x99999996, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbff010a8, 0xac54f541, 0xbfe19999, 0x99999996, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfee24dd, 0x44c855cb, 0xbfe19999, 0x99999996, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfec5277, 0xa4a0869c, 0xbfe19999, 0x99999996, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfeaa7c8, 0x545183c7, 0xbfe19999, 0x99999996, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfe19999, 0x99999996, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe7be08, 0x326e2489, 0xbfe19999, 0x99999996, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe678e3, 0x87470e4a, 0xbfe19999, 0x99999996, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe54f9e, 0xb7d5ee43, 0xbfe19999, 0x99999996, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe43f7a, 0x7c1d53c1, 0xbfe19999, 0x99999996, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe345f0, 0x1cce37b5, 0xbfe19999, 0x99999996, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe260b4, 0x85f12028, 0xbfe19999, 0x99999996, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe18db7, 0x79f87dcf, 0xbfe19999, 0x99999996, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfe0cb20, 0x808a1f11, 0xbfe19999, 0x99999996, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfdfffff, 0xfffffff9, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc00541c5, 0x5d5d64c1, 0xbfdfffff, 0xfffffff9, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0051371, 0xab22738d, 0xbfdfffff, 0xfffffff9, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc004e102, 0xc80931dc, 0xbfdfffff, 0xfffffff9, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc004a9f8, 0x694c6d6c, 0xbfdfffff, 0xfffffff9, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfdfffff, 0xfffffff9, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0042bb5, 0xf776eb80, 0xbfdfffff, 0xfffffff9, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc003e31d, 0xfb0d799d, 0xbfdfffff, 0xfffffff9, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfdfffff, 0xfffffff9, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0033aef, 0xbf36777f, 0xbfdfffff, 0xfffffff9, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfdfffff, 0xfffffff9, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0026dcb, 0xd423977c, 0xbfdfffff, 0xfffffff9, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfdfffff, 0xfffffff9, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc00173c1, 0xf5810bb7, 0xbfdfffff, 0xfffffff9, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfdfffff, 0xfffffff9, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfdfffff, 0xfffffff9, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbfdfffff, 0xfffffff9, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffdcbc9, 0xedcbd8d9, 0xbfdfffff, 0xfffffff9, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffc4a83, 0x936311d8, 0xbfdfffff, 0xfffffff9, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffaba39, 0x7c7259db, 0xbfdfffff, 0xfffffff9, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfdfffff, 0xfffffff9, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff789bd, 0x2c160050, 0xbfdfffff, 0xfffffff9, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff5f973, 0x15254853, 0xbfdfffff, 0xfffffff9, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff4782c, 0xbabc8153, 0xbfdfffff, 0xfffffff9, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff30b6d, 0x796a4da4, 0xbfdfffff, 0xfffffff9, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe41, 0xbfdfffff, 0xfffffff9, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbff07c6c, 0x6947a6a4, 0xbfdfffff, 0xfffffff9, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfeeb8e5, 0x7b0c857c, 0xbfdfffff, 0xfffffff9, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfecac7c, 0x57846f97, 0xbfdfffff, 0xfffffff9, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfead0be, 0x0082566c, 0xbfdfffff, 0xfffffff9, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfdfffff, 0xfffffff9, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfe79c2e, 0x5436d65d, 0xbfdfffff, 0xfffffff9, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a84, 0xbfdfffff, 0xfffffff9, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe4fb75, 0x64dacde6, 0xbfdfffff, 0xfffffff9, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe3d915, 0x7335065a, 0xbfdfffff, 0xfffffff9, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd606638f, 0xbfdfffff, 0xfffffff9, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe1e00b, 0xabdefead, 0xbfdfffff, 0xfffffff9, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe103e2, 0x30ebeced, 0xbfdfffff, 0xfffffff9, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe03a26, 0xa486e62b, 0xbfdfffff, 0xfffffff9, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfdf01af, 0xb73642b2, 0xbfdfffff, 0xfffffff9, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc005bffa, 0x17065de2, 0xbfdccccc, 0xccccccc6, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc00597ff, 0xd521f2aa, 0xbfdccccc, 0xccccccc6, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfdccccc, 0xccccccc6, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0053ccf, 0xe79b8f8f, 0xbfdccccc, 0xccccccc6, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc005089b, 0xaf0d60e5, 0xbfdccccc, 0xccccccc6, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfdccccc, 0xccccccc6, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0048fe1, 0xf1cd42a1, 0xbfdccccc, 0xccccccc6, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc00449d3, 0x87509221, 0xbfdccccc, 0xccccccc6, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfdccccc, 0xccccccc6, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc003a59b, 0x934a3835, 0xbfdccccc, 0xccccccc6, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc003452d, 0x2a42ac29, 0xbfdccccc, 0xccccccc6, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfdccccc, 0xccccccc6, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0026127, 0x862b05f6, 0xbfdccccc, 0xccccccc6, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc001dace, 0xaa5dc056, 0xbfdccccc, 0xccccccc6, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfdccccc, 0xccccccc6, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc0009f87, 0x5343d018, 0xbfdccccc, 0xccccccc6, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xbfffd307, 0x52e3200b, 0xbfdccccc, 0xccccccc6, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4cf, 0xbfdccccc, 0xccccccc6, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffca1a6, 0x56770bcf, 0xbfdccccc, 0xccccccc6, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffae73b, 0xd5e44e59, 0xbfdccccc, 0xccccccc6, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfdccccc, 0xccccccc6, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff75cba, 0xd2a40bd2, 0xbfdccccc, 0xccccccc6, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff5a250, 0x52114e5c, 0xbfdccccc, 0xccccccc6, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a855c, 0xbfdccccc, 0xccccccc6, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff270ef, 0x55a53a20, 0xbfdccccc, 0xccccccc6, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff104e8, 0x0200b9fc, 0xbfdccccc, 0xccccccc6, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f693, 0xbfdccccc, 0xccccccc6, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfed1cb2, 0xa799b2ff, 0xbfdccccc, 0xccccccc6, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfeb034f, 0x38649c81, 0xbfdccccc, 0xccccccc6, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfdccccc, 0xccccccc6, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfe77338, 0xa80603b8, 0xbfdccccc, 0xccccccc6, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfe5f17f, 0x03e7d388, 0xbfdccccc, 0xccccccc6, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe4978f, 0xa3269edb, 0xbfdccccc, 0xccccccc6, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe3609f, 0x33ce6bd8, 0xbfdccccc, 0xccccccc6, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe24865, 0x89dba9d9, 0xbfdccccc, 0xccccccc6, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cdb, 0xbfdccccc, 0xccccccc6, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfe0657e, 0x94db30ca, 0xbfdccccc, 0xccccccc6, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfdf295b, 0x6544ec43, 0xbfdccccc, 0xccccccc6, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb44, 0xbfdccccc, 0xccccccc6, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfdc4fdb, 0xf911d369, 0xbfdccccc, 0xccccccc6, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfd99999, 0x99999993, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc005f1ce, 0xcb0d4d6e, 0xbfd99999, 0x99999993, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc005c975, 0x54f4b39f, 0xbfd99999, 0x99999993, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0059d2f, 0x241f85a8, 0xbfd99999, 0x99999993, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd99999, 0x99999993, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc005368c, 0x951e9cfd, 0xbfd99999, 0x99999993, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc004fac5, 0x404fe6dc, 0xbfd99999, 0x99999993, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc004b831, 0x3ddf1778, 0xbfd99999, 0x99999993, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfd99999, 0x99999993, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0041a34, 0xfb542c00, 0xbfd99999, 0x99999993, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfd99999, 0x99999993, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc00351d1, 0x783b3dae, 0xbfd99999, 0x99999993, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd99999, 0x99999993, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc0025127, 0x9b802819, 0xbfd99999, 0x99999993, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfd99999, 0x99999993, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc0010900, 0x9519d639, 0xbfd99999, 0x99999993, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfd99999, 0x99999993, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbffedf81, 0xa4bd64d3, 0xbfd99999, 0x99999993, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffd0d6a, 0x1369bd32, 0xbfd99999, 0x99999993, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffb1f56, 0xfdeef00d, 0xbfd99999, 0x99999993, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfd99999, 0x99999993, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff7249f, 0xaa996a1d, 0xbfd99999, 0x99999993, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff5368c, 0x951e9cf8, 0xbfd99999, 0x99999993, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff36475, 0x03caf558, 0xbfd99999, 0x99999993, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe40, 0xbfd99999, 0x99999993, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbff031f5, 0x7e54adba, 0xbfd99999, 0x99999993, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfedac67, 0x0561bb47, 0xbfd99999, 0x99999993, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfeb434e, 0xe31013f5, 0xbfd99999, 0x99999993, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d11, 0xbfd99999, 0x99999993, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe740a7, 0x7023bda2, 0xbfd99999, 0x99999993, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfe5977a, 0x5103ea8b, 0xbfd99999, 0x99999993, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfe41f19, 0x63c00458, 0xbfd99999, 0x99999993, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd606638f, 0xbfd99999, 0x99999993, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfe1a728, 0x5994567c, 0xbfd99999, 0x99999993, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfe09cd8, 0x4fd118ed, 0xbfd99999, 0x99999993, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfdf5b75, 0xf92c80d1, 0xbfd99999, 0x99999993, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb43, 0xbfd99999, 0x99999993, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfdc2661, 0x81253b7c, 0xbfd99999, 0x99999993, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfdac42f, 0xfa7bcbc4, 0xbfd99999, 0x99999993, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfd98164, 0x49b6fd49, 0xbfd99999, 0x99999993, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0067078, 0xc2eef45e, 0xbfd66666, 0x66666660, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0064f0e, 0xb4680650, 0xbfd66666, 0x66666660, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0062a65, 0x7a259a4e, 0xbfd66666, 0x66666660, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0060204, 0xbe520694, 0xbfd66666, 0x66666660, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc005d55d, 0x7bcaa899, 0xbfd66666, 0x66666660, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc005a3c4, 0xf2e49eb6, 0xbfd66666, 0x66666660, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd66666, 0x66666660, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0052e63, 0xcbf6f7b3, 0xbfd66666, 0x66666660, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc004e87c, 0x3b956ba8, 0xbfd66666, 0x66666660, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0049952, 0x004c912f, 0xbfd66666, 0x66666660, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0043f37, 0x08e537ed, 0xbfd66666, 0x66666660, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc003d82a, 0x5408834e, 0xbfd66666, 0x66666660, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc00361d1, 0x62e61b8c, 0xbfd66666, 0x66666660, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd66666, 0x66666660, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0023c41, 0xea611604, 0xbfd66666, 0x66666660, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc0018743, 0x06ef5824, 0xbfd66666, 0x66666660, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc000b833, 0xbe165cc8, 0xbfd66666, 0x66666660, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xbfff9c6b, 0x238c6433, 0xbfd66666, 0x66666660, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffd95e5, 0xac22d08a, 0xbfd66666, 0x66666660, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffb6731, 0x2cd2f431, 0xbfd66666, 0x66666660, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d14, 0xbfd66666, 0x66666660, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff6dcc5, 0x7bb565f8, 0xbfd66666, 0x66666660, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff4ae10, 0xfc6589a0, 0xbfd66666, 0x66666660, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff2a78b, 0x84fbf5f7, 0xbfd66666, 0x66666660, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbff0d38f, 0x2c5ba099, 0xbfd66666, 0x66666660, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfee6ae1, 0x355353c6, 0xbfd66666, 0x66666660, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfeb96e5, 0xa78c5c48, 0xbfd66666, 0x66666660, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d10, 0xbfd66666, 0x66666660, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfe700a7, 0xc578462c, 0xbfd66666, 0x66666660, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe52744, 0x00eea723, 0xbfd66666, 0x66666660, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfe38b11, 0x2d7bd4a6, 0xbfd66666, 0x66666660, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfe222a5, 0x4fde6fa1, 0xbfd66666, 0x66666660, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfe0e5fc, 0x62bb05bd, 0xbfd66666, 0x66666660, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfdf9cbc, 0x4269ab1e, 0xbfd66666, 0x66666660, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb43, 0xbfd66666, 0x66666660, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfdbf1b3, 0x0afc730f, 0xbfd66666, 0x66666660, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfda64ee, 0xc3cc23f1, 0xbfd66666, 0x66666660, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfd8ffb4, 0xaf91341a, 0xbfd66666, 0x66666660, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfd7bcae, 0xd0f4964a, 0xbfd66666, 0x66666660, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfd69764, 0xfee13639, 0xbfd66666, 0x66666660, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc006cd14, 0x07805738, 0xbfd33333, 0x3333332d, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc006af8a, 0xb51a6805, 0xbfd33333, 0x3333332d, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfd33333, 0x3333332d, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0066b1c, 0x486d572a, 0xbfd33333, 0x3333332d, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0064338, 0x2c07913b, 0xbfd33333, 0x3333332d, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfd33333, 0x3333332d, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc005e4c3, 0x6ca0118b, 0xbfd33333, 0x3333332d, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc005ac69, 0x1f0f489b, 0xbfd33333, 0x3333332d, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd33333, 0x3333332d, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc0052351, 0xd5cc5410, 0xbfd33333, 0x3333332d, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfd33333, 0x3333332d, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfd33333, 0x3333332d, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfd33333, 0x3333332d, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc00376b7, 0x14052da1, 0xbfd33333, 0x3333332d, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd33333, 0x3333332d, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfd33333, 0x3333332d, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfd33333, 0x3333332d, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfd33333, 0x3333332d, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4ce, 0xbfd33333, 0x3333332d, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffbc66e, 0x44cbc071, 0xbfd33333, 0x3333332d, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d13, 0xbfd33333, 0x3333332d, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff67d88, 0x63bc99b7, 0xbfd33333, 0x3333332d, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a855a, 0xbfd33333, 0x3333332d, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe3e, 0xbfd33333, 0x3333332d, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f68f, 0xbfd33333, 0x3333332d, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfec08aa, 0xe496ef9b, 0xbfd33333, 0x3333332d, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d0e, 0xbfd33333, 0x3333332d, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe6ad11, 0x00fbfdd6, 0xbfd33333, 0x3333332d, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfe4978f, 0xa3269ed9, 0xbfd33333, 0x3333332d, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd606638e, 0xbfd33333, 0x3333332d, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cd9, 0xbfd33333, 0x3333332d, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfdff54b, 0xf3bec834, 0xbfd33333, 0x3333332d, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb42, 0xbfd33333, 0x3333332d, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfdbac91, 0xa9a723e0, 0xbfd33333, 0x3333332d, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfd9e9bf, 0x3d20dc65, 0xbfd33333, 0x3333332d, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfd85a37, 0x6b677db4, 0xbfd33333, 0x3333332d, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfd6f619, 0x41e4dee5, 0xbfd33333, 0x3333332d, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfd5b6f8, 0x5eb6af69, 0xbfd33333, 0x3333332d, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269ed7, 0xbfd33333, 0x3333332d, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfd39384, 0xf94e2896, 0xbfd33333, 0x3333332d, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfcfffff, 0xfffffff4, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc00712fb, 0x97e1e344, 0xbfcfffff, 0xfffffff4, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc006f715, 0x259aea15, 0xbfcfffff, 0xfffffff4, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc006d825, 0xfdaafadb, 0xbfcfffff, 0xfffffff4, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc006b5ac, 0x6d632fa0, 0xbfcfffff, 0xfffffff4, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfcfffff, 0xfffffff4, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0066377, 0xfe555c41, 0xbfcfffff, 0xfffffff4, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc0063202, 0x7e829b4d, 0xbfcfffff, 0xfffffff4, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc005f973, 0x15254857, 0xbfcfffff, 0xfffffff4, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc005b83f, 0xa76fbdb1, 0xbfcfffff, 0xfffffff4, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfcfffff, 0xfffffff4, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0051371, 0xab22738c, 0xbfcfffff, 0xfffffff4, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc004a9f8, 0x694c6d6c, 0xbfcfffff, 0xfffffff4, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc0042bb5, 0xf776eb80, 0xbfcfffff, 0xfffffff4, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfcfffff, 0xfffffff4, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfcfffff, 0xfffffff4, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfcfffff, 0xfffffff4, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfcfffff, 0xfffffff4, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xbfff3889, 0x2f1e0c86, 0xbfcfffff, 0xfffffff4, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffc4a83, 0x936311d6, 0xbfcfffff, 0xfffffff4, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d13, 0xbfcfffff, 0xfffffff4, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff5f973, 0x15254850, 0xbfcfffff, 0xfffffff4, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff30b6d, 0x796a4da1, 0xbfcfffff, 0xfffffff4, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbff07c6c, 0x6947a6a1, 0xbfcfffff, 0xfffffff4, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfecac7c, 0x57846f91, 0xbfcfffff, 0xfffffff4, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d0c, 0xbfcfffff, 0xfffffff4, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a80, 0xbfcfffff, 0xfffffff4, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe3d915, 0x73350658, 0xbfcfffff, 0xfffffff4, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfe1e00b, 0xabdefeab, 0xbfcfffff, 0xfffffff4, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfe03a26, 0xa486e62a, 0xbfcfffff, 0xfffffff4, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb41, 0xbfcfffff, 0xfffffff4, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfdb4ddd, 0x66a37b33, 0xbfcfffff, 0xfffffff4, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfd94441, 0xf8f725fe, 0xbfcfffff, 0xfffffff4, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfd77fc6, 0xae0c8e55, 0xbfcfffff, 0xfffffff4, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfd5f41a, 0xaf7686b1, 0xbfcfffff, 0xfffffff4, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269ed6, 0xbfcfffff, 0xfffffff4, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfd36277, 0x3707ebc1, 0xbfcfffff, 0xfffffff4, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfd24eaa, 0xb4c991e4, 0xbfcfffff, 0xfffffff4, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfd15731, 0x754a1817, 0xbfcfffff, 0xfffffff4, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfd077fd, 0xe3124ea1, 0xbfcfffff, 0xfffffff4, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc0078db7, 0x34b4bab8, 0xbfc99999, 0x9999998e, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0077907, 0x8c2f83ec, 0xbfc99999, 0x9999998e, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0076225, 0xd32abdbd, 0xbfc99999, 0x9999998e, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc00748b5, 0x43f409e0, 0xbfc99999, 0x9999998e, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfc99999, 0x9999998e, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0070c44, 0x9f55a998, 0xbfc99999, 0x9999998e, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc006e806, 0x2854db5f, 0xbfc99999, 0x9999998e, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc006bea7, 0xebdbbf5d, 0xbfc99999, 0x9999998e, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfc99999, 0x9999998e, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc00657b2, 0xe092b036, 0xbfc99999, 0x9999998e, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfc99999, 0x9999998e, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc005c975, 0x54f4b39f, 0xbfc99999, 0x9999998e, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfc99999, 0x9999998e, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc004fac5, 0x404fe6dc, 0xbfc99999, 0x9999998e, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfc99999, 0x9999998e, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfc99999, 0x9999998e, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfc99999, 0x9999998e, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfc99999, 0x9999998e, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df5, 0xbfc99999, 0x9999998e, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffd0d6a, 0x1369bd2f, 0xbfc99999, 0x9999998e, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d11, 0xbfc99999, 0x9999998e, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff5368c, 0x951e9cf4, 0xbfc99999, 0x9999998e, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe3c, 0xbfc99999, 0x9999998e, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbfedac67, 0x0561bb3f, 0xbfc99999, 0x9999998e, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d09, 0xbfc99999, 0x9999998e, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfe5977a, 0x5103ea85, 0xbfc99999, 0x9999998e, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd606638a, 0xbfc99999, 0x9999998e, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfe09cd8, 0x4fd118e9, 0xbfc99999, 0x9999998e, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb3f, 0xbfc99999, 0x9999998e, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfdac42f, 0xfa7bcbbf, 0xbfc99999, 0x9999998e, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfd85a37, 0x6b677db1, 0xbfc99999, 0x9999998e, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfd65243, 0x9d8be709, 0xbfc99999, 0x9999998e, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269ed4, 0xbfc99999, 0x9999998e, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfd31a9b, 0x43436dd5, 0xbfc99999, 0x9999998e, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfd1cfa9, 0x5f7a8dc3, 0xbfc99999, 0x9999998e, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfd0adb5, 0xa7741bf9, 0xbfc99999, 0x9999998e, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfcf5b75, 0xf92c80ca, 0xbfc99999, 0x9999998e, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfcd9461, 0x05023378, 0xbfc99999, 0x9999998e, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfcbfd58, 0x1196f5af, 0xbfc99999, 0x9999998e, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfca8f3c, 0x814a92c5, 0xbfc99999, 0x9999998e, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc007f10e, 0x1dc6b049, 0xbfc33333, 0x33333328, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc007e142, 0xd82322eb, 0xbfc33333, 0x33333328, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc007cfc1, 0xdc00636b, 0xbfc33333, 0x33333328, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc007bc40, 0xca9216fe, 0xbfc33333, 0x33333328, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc007a663, 0x9f874769, 0xbfc33333, 0x33333328, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0078db7, 0x34b4bab8, 0xbfc33333, 0x33333328, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc00771a9, 0xa0af69de, 0xbfc33333, 0x33333328, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc007517f, 0x6a2ae180, 0xbfc33333, 0x33333328, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfc33333, 0x33333328, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc00700b2, 0x93276810, 0xbfc33333, 0x33333328, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc006cd14, 0x07805738, 0xbfc33333, 0x33333328, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfc33333, 0x33333328, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0064338, 0x2c07913b, 0xbfc33333, 0x33333328, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc005e4c3, 0x6ca0118b, 0xbfc33333, 0x33333328, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfc33333, 0x33333328, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc004cf33, 0xdec5e9e1, 0xbfc33333, 0x33333328, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfc33333, 0x33333328, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfc33333, 0x33333328, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xc0014538, 0x5fa3af70, 0xbfc33333, 0x33333328, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xbffe47df, 0x3d0dd4cb, 0xbfc33333, 0x33333328, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d0f, 0xbfc33333, 0x33333328, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff3fc17, 0x6b7a8555, 0xbfc33333, 0x33333328, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbfef730b, 0xd281f685, 0xbfc33333, 0x33333328, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442d05, 0xbfc33333, 0x33333328, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfe4978f, 0xa3269ed1, 0xbfc33333, 0x33333328, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cd4, 0xbfc33333, 0x33333328, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb39, 0xbfc33333, 0x33333328, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfd9e9bf, 0x3d20dc5e, 0xbfc33333, 0x33333328, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfd6f619, 0x41e4dee0, 0xbfc33333, 0x33333328, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269ed2, 0xbfc33333, 0x33333328, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfd2a73a, 0x661eaef8, 0xbfc33333, 0x33333328, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfd10a46, 0x08e6283d, 0xbfc33333, 0x33333328, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfcf5b75, 0xf92c80c6, 0xbfc33333, 0x33333328, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfcd07be, 0xa194b97b, 0xbfc33333, 0x33333328, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfcb051b, 0x394c3396, 0xbfc33333, 0x33333328, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfc94441, 0xf8f725f8, 0xbfc33333, 0x33333328, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfc7b97b, 0x4bce5af0, 0xbfc33333, 0x33333328, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfc65ba8, 0x9b21619a, 0xbfc33333, 0x33333328, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfc52397, 0x843c9acd, 0xbfc33333, 0x33333328, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfc40b87, 0xc210a2d5, 0xbfc33333, 0x33333328, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc00855dc, 0x402d16b7, 0xbfb99999, 0x99999983, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc0084b31, 0x9bd4918d, 0xbfb99999, 0x99999983, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc0083f5b, 0x13741c78, 0xbfb99999, 0x99999983, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc0083224, 0x9ea440f7, 0xbfb99999, 0x99999983, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc008234d, 0x7f6ecb9e, 0xbfb99999, 0x99999983, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc0081284, 0x26c22f58, 0xbfb99999, 0x99999983, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc007ff60, 0x67fcc98b, 0xbfb99999, 0x99999983, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc007e95b, 0x1e3a76c5, 0xbfb99999, 0x99999983, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc007cfc1, 0xdc00636b, 0xbfb99999, 0x99999983, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc007b1a4, 0x4c26bccb, 0xbfb99999, 0x99999983, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc0078db7, 0x34b4bab9, 0xbfb99999, 0x99999983, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0076225, 0xd32abdbd, 0xbfb99999, 0x99999983, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc0072c43, 0xf4b1650c, 0xbfb99999, 0x99999983, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc006e806, 0x2854db60, 0xbfb99999, 0x99999983, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593e, 0xbfb99999, 0x99999983, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc00616b4, 0x66d73d62, 0xbfb99999, 0x99999983, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5b0, 0xbfb99999, 0x99999983, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfb99999, 0x99999983, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfb99999, 0x99999983, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xc000468a, 0x8ace4df4, 0xbfb99999, 0x99999983, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442d0a, 0xbfb99999, 0x99999983, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe33, 0xbfb99999, 0x99999983, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442cfc, 0xbfb99999, 0x99999983, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbfe2d0ea, 0xd606637f, 0xbfb99999, 0x99999983, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb2c, 0xbfb99999, 0x99999983, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfd85a37, 0x6b677da4, 0xbfb99999, 0x99999983, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269eca, 0xbfb99999, 0x99999983, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfd1cfa9, 0x5f7a8dbc, 0xbfb99999, 0x99999983, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfcf5b75, 0xf92c80bc, 0xbfb99999, 0x99999983, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfcbfd58, 0x1196f5a4, 0xbfb99999, 0x99999983, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfc94441, 0xf8f725f1, 0xbfb99999, 0x99999983, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfc70570, 0x81d704ce, 0xbfb99999, 0x99999983, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfc52397, 0x843c9ac7, 0xbfb99999, 0x99999983, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfc38a03, 0x609b6530, 0xbfb99999, 0x99999983, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfc229ae, 0xc47638c9, 0xbfb99999, 0x99999983, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfc0f772, 0xd81fdbf8, 0xbfb99999, 0x99999983, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfbfd5ba, 0x9aac2f4b, 0xbfb99999, 0x99999983, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfbdfad6, 0xb3fd8429, 0xbfb99999, 0x99999983, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfbc5408, 0x1a021411, 0xbfb99999, 0x99999983, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfbad937, 0x0df3715e, 0xbfb99999, 0x99999983, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0xc008bbaa, 0xbde5e29c, 0xbfa99999, 0x9999996c, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0xc008b64a, 0xa934a2c3, 0xbfa99999, 0x9999996c, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0xc008b052, 0x20fc1e46, 0xbfa99999, 0x9999996c, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xc008a9a6, 0x5b3c113d, 0xbfa99999, 0x9999996c, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0xc008a225, 0xe5677921, 0xbfa99999, 0x9999996c, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0xc00899a6, 0x70913360, 0xbfa99999, 0x9999996c, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0xc0088ff1, 0xae5a77dd, 0xbfa99999, 0x9999996c, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0xc00884c0, 0xbf72214b, 0xbfa99999, 0x9999996c, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0xc00877b5, 0x6104e567, 0xbfa99999, 0x9999996c, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0xc008684f, 0x702f7c76, 0xbfa99999, 0x9999996c, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0xc00855dc, 0x402d16b7, 0xbfa99999, 0x9999996c, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0xc0083f5b, 0x13741c78, 0xbfa99999, 0x9999996c, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0xc008234d, 0x7f6ecb9e, 0xbfa99999, 0x9999996c, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0xc007ff60, 0x67fcc98c, 0xbfa99999, 0x9999996c, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0xc007cfc1, 0xdc00636c, 0xbfa99999, 0x9999996c, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0xc0078db7, 0x34b4baba, 0xbfa99999, 0x9999996c, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0xc0072c43, 0xf4b1650d, 0xbfa99999, 0x9999996c, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0xc0068f09, 0x5fdf593f, 0xbfa99999, 0x9999996c, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0xc0056c6e, 0x7397f5b1, 0xbfa99999, 0x9999996c, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfa99999, 0x9999996c, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0xbff921fb, 0x54442cfc, 0xbfa99999, 0x9999996c, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0xbfe921fb, 0x54442cdf, 0xbfa99999, 0x9999996c, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0xbfddac67, 0x0561bb0b, 0xbfa99999, 0x9999996c, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0xbfd4978f, 0xa3269eb3, 0xbfa99999, 0x9999996c, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0xbfcf5b75, 0xf92c809a, 0xbfa99999, 0x9999996c, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0xbfc94441, 0xf8f725d6, 0xbfa99999, 0x9999996c, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0xbfc52397, 0x843c9ab2, 0xbfa99999, 0x9999996c, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0xbfc229ae, 0xc47638b8, 0xbfa99999, 0x9999996c, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0xbfbfd5ba, 0x9aac2f2f, 0xbfa99999, 0x9999996c, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfbc5408, 0x1a0213f9, 0xbfa99999, 0x9999996c, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0xbfb983e2, 0x82e2cc1a, 0xbfa99999, 0x9999996c, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0xbfb7357c, 0x82961441, 0xbfa99999, 0x9999996c, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0xbfb548be, 0x67e8f615, 0xbfa99999, 0x9999996c, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0xbfb3a752, 0x9a4179a3, 0xbfa99999, 0x9999996c, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0xbfb24134, 0xbd36a760, 0xbfa99999, 0x9999996c, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0xbfb10a9c, 0x765f3702, 0xbfa99999, 0x9999996c, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0xbfaff55b, 0xb72cfdaa, 0xbfa99999, 0x9999996c, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0xbfae153e, 0x4206f6b9, 0xbfa99999, 0x9999996c, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0xbfac6a4c, 0xd203b483, 0xbfa99999, 0x9999996c, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0xbfaaec2a, 0xc3e29569, 0xbfa99999, 0x9999996c, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d15, 0x3cb70000, 0x00000000, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d15, 0x3cb70000, 0x00000000, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d13, 0x3cb70000, 0x00000000, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d11, 0x3cb70000, 0x00000000, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x400921fb, 0x54442d0a, 0x3cb70000, 0x00000000, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3cfcbfff, 0xffffffcc, 0x3cb70000, 0x00000000, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3cecbfff, 0xffffffe6, 0x3cb70000, 0x00000000, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ce32aaa, 0xaaaaaa9f, 0x3cb70000, 0x00000000, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3cdcbfff, 0xfffffff2, 0x3cb70000, 0x00000000, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3cd6ffff, 0xfffffff7, 0x3cb70000, 0x00000000, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3cd32aaa, 0xaaaaaaa5, 0x3cb70000, 0x00000000, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3cd06db6, 0xdb6db6d7, 0x3cb70000, 0x00000000, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3cccbfff, 0xfffffffa, 0x3cb70000, 0x00000000, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3cc98e38, 0xe38e38df, 0x3cb70000, 0x00000000, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3cc6ffff, 0xfffffffc, 0x3cb70000, 0x00000000, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3cc4e8ba, 0x2e8ba2e5, 0x3cb70000, 0x00000000, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3cc32aaa, 0xaaaaaaa7, 0x3cb70000, 0x00000000, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3cc1b13b, 0x13b13b10, 0x3cb70000, 0x00000000, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3cc06db6, 0xdb6db6d8, 0x3cb70000, 0x00000000, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3cbeaaaa, 0xaaaaaaa4, 0x3cb70000, 0x00000000, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3cbcbfff, 0xfffffffa, 0x3cb70000, 0x00000000, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3cbb0f0f, 0x0f0f0f09, 0x3cb70000, 0x00000000, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3cb98e38, 0xe38e38de, 0x3cb70000, 0x00000000, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3cb835e5, 0x0d794359, 0x3cb70000, 0x00000000, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4008bbaa, 0xbde5e29b, 0x3fa99999, 0x999999c8, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4008b64a, 0xa934a2c1, 0x3fa99999, 0x999999c8, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4008b052, 0x20fc1e45, 0x3fa99999, 0x999999c8, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4008a9a6, 0x5b3c113c, 0x3fa99999, 0x999999c8, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4008a225, 0xe5677920, 0x3fa99999, 0x999999c8, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x400899a6, 0x7091335e, 0x3fa99999, 0x999999c8, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40088ff1, 0xae5a77db, 0x3fa99999, 0x999999c8, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x400884c0, 0xbf722149, 0x3fa99999, 0x999999c8, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x400877b5, 0x6104e565, 0x3fa99999, 0x999999c8, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4008684f, 0x702f7c73, 0x3fa99999, 0x999999c8, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x400855dc, 0x402d16b4, 0x3fa99999, 0x999999c8, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40083f5b, 0x13741c75, 0x3fa99999, 0x999999c8, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4008234d, 0x7f6ecb9b, 0x3fa99999, 0x999999c8, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4007ff60, 0x67fcc988, 0x3fa99999, 0x999999c8, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4007cfc1, 0xdc006368, 0x3fa99999, 0x999999c8, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x40078db7, 0x34b4bab4, 0x3fa99999, 0x999999c8, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x40072c43, 0xf4b16506, 0x3fa99999, 0x999999c8, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf5936, 0x3fa99999, 0x999999c8, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5a6, 0x3fa99999, 0x999999c8, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321c4, 0x3fa99999, 0x999999c8, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442cfc, 0x3fa99999, 0x999999c8, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fa99999, 0x999999c8, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb66, 0x3fa99999, 0x999999c8, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269ef8, 0x3fa99999, 0x999999c8, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fcf5b75, 0xf92c8105, 0x3fa99999, 0x999999c8, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fc94441, 0xf8f7262e, 0x3fa99999, 0x999999c8, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fc52397, 0x843c9afd, 0x3fa99999, 0x999999c8, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fc229ae, 0xc47638f9, 0x3fa99999, 0x999999c8, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fbfd5ba, 0x9aac2fa1, 0x3fa99999, 0x999999c8, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fbc5408, 0x1a02145e, 0x3fa99999, 0x999999c8, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fb983e2, 0x82e2cc75, 0x3fa99999, 0x999999c8, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fb7357c, 0x82961494, 0x3fa99999, 0x999999c8, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fb548be, 0x67e8f661, 0x3fa99999, 0x999999c8, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fb3a752, 0x9a4179e9, 0x3fa99999, 0x999999c8, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fb24134, 0xbd36a7a2, 0x3fa99999, 0x999999c8, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fb10a9c, 0x765f373f, 0x3fa99999, 0x999999c8, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3faff55b, 0xb72cfe1e, 0x3fa99999, 0x999999c8, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fae153e, 0x4206f724, 0x3fa99999, 0x999999c8, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fac6a4c, 0xd203b4e9, 0x3fa99999, 0x999999c8, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3faaec2a, 0xc3e295c9, 0x3fa99999, 0x999999c8, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x400855dc, 0x402d16b5, 0x3fb99999, 0x999999b1, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40084b31, 0x9bd4918c, 0x3fb99999, 0x999999b1, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40083f5b, 0x13741c76, 0x3fb99999, 0x999999b1, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40083224, 0x9ea440f5, 0x3fb99999, 0x999999b1, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4008234d, 0x7f6ecb9c, 0x3fb99999, 0x999999b1, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40081284, 0x26c22f56, 0x3fb99999, 0x999999b1, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4007ff60, 0x67fcc989, 0x3fb99999, 0x999999b1, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4007e95b, 0x1e3a76c3, 0x3fb99999, 0x999999b1, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4007cfc1, 0xdc006369, 0x3fb99999, 0x999999b1, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4007b1a4, 0x4c26bcc8, 0x3fb99999, 0x999999b1, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40078db7, 0x34b4bab6, 0x3fb99999, 0x999999b1, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40076225, 0xd32abdba, 0x3fb99999, 0x999999b1, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40072c43, 0xf4b16508, 0x3fb99999, 0x999999b1, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4006e806, 0x2854db5c, 0x3fb99999, 0x999999b1, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf5939, 0x3fb99999, 0x999999b1, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x400616b4, 0x66d73d5d, 0x3fb99999, 0x999999b1, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5aa, 0x3fb99999, 0x999999b1, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec2942e, 0x3fb99999, 0x999999b1, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321cb, 0x3fb99999, 0x999999b1, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4dee, 0x3fb99999, 0x999999b1, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d0a, 0x3fb99999, 0x999999b1, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe3f, 0x3fb99999, 0x999999b1, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fb99999, 0x999999b1, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd606639a, 0x3fb99999, 0x999999b1, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb5b, 0x3fb99999, 0x999999b1, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fd85a37, 0x6b677dcb, 0x3fb99999, 0x999999b1, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269eed, 0x3fb99999, 0x999999b1, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fd1cfa9, 0x5f7a8dd9, 0x3fb99999, 0x999999b1, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fcf5b75, 0xf92c80f2, 0x3fb99999, 0x999999b1, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fcbfd58, 0x1196f5d5, 0x3fb99999, 0x999999b1, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fc94441, 0xf8f7261d, 0x3fb99999, 0x999999b1, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fc70570, 0x81d704f6, 0x3fb99999, 0x999999b1, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fc52397, 0x843c9aed, 0x3fb99999, 0x999999b1, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fc38a03, 0x609b6553, 0x3fb99999, 0x999999b1, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fc229ae, 0xc47638e9, 0x3fb99999, 0x999999b1, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fc0f772, 0xd81fdc17, 0x3fb99999, 0x999999b1, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fbfd5ba, 0x9aac2f83, 0x3fb99999, 0x999999b1, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fbdfad6, 0xb3fd845e, 0x3fb99999, 0x999999b1, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fbc5408, 0x1a021443, 0x3fb99999, 0x999999b1, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fbad937, 0x0df3718e, 0x3fb99999, 0x999999b1, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4007f10e, 0x1dc6b047, 0x3fc33333, 0x3333333f, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4007e142, 0xd82322e9, 0x3fc33333, 0x3333333f, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4007cfc1, 0xdc00636a, 0x3fc33333, 0x3333333f, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4007bc40, 0xca9216fd, 0x3fc33333, 0x3333333f, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4007a663, 0x9f874767, 0x3fc33333, 0x3333333f, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40078db7, 0x34b4bab6, 0x3fc33333, 0x3333333f, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x400771a9, 0xa0af69dc, 0x3fc33333, 0x3333333f, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4007517f, 0x6a2ae17e, 0x3fc33333, 0x3333333f, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40072c43, 0xf4b16509, 0x3fc33333, 0x3333333f, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x400700b2, 0x9327680d, 0x3fc33333, 0x3333333f, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4006cd14, 0x07805736, 0x3fc33333, 0x3333333f, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf593a, 0x3fc33333, 0x3333333f, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40064338, 0x2c079138, 0x3fc33333, 0x3333333f, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4005e4c3, 0x6ca01188, 0x3fc33333, 0x3333333f, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ab, 0x3fc33333, 0x3333333f, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x4004cf33, 0xdec5e9dc, 0x3fc33333, 0x3333333f, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x4003fc17, 0x6b7a855c, 0x3fc33333, 0x3333333f, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321ce, 0x3fc33333, 0x3333333f, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af6c, 0x3fc33333, 0x3333333f, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4c5, 0x3fc33333, 0x3333333f, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d0f, 0x3fc33333, 0x3333333f, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855a, 0x3fc33333, 0x3333333f, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f697, 0x3fc33333, 0x3333333f, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fc33333, 0x3333333f, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fe4978f, 0xa3269ee3, 0x3fc33333, 0x3333333f, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce4, 0x3fc33333, 0x3333333f, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb57, 0x3fc33333, 0x3333333f, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fd9e9bf, 0x3d20dc79, 0x3fc33333, 0x3333333f, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fd6f619, 0x41e4def9, 0x3fc33333, 0x3333333f, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269eea, 0x3fc33333, 0x3333333f, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fd2a73a, 0x661eaf0d, 0x3fc33333, 0x3333333f, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fd10a46, 0x08e62851, 0x3fc33333, 0x3333333f, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fcf5b75, 0xf92c80eb, 0x3fc33333, 0x3333333f, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fcd07be, 0xa194b99d, 0x3fc33333, 0x3333333f, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fcb051b, 0x394c33b5, 0x3fc33333, 0x3333333f, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fc94441, 0xf8f72615, 0x3fc33333, 0x3333333f, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fc7b97b, 0x4bce5b0c, 0x3fc33333, 0x3333333f, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fc65ba8, 0x9b2161b4, 0x3fc33333, 0x3333333f, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fc52397, 0x843c9ae6, 0x3fc33333, 0x3333333f, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fc40b87, 0xc210a2ec, 0x3fc33333, 0x3333333f, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40078db7, 0x34b4bab7, 0x3fc99999, 0x999999a6, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40077907, 0x8c2f83ea, 0x3fc99999, 0x999999a6, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40076225, 0xd32abdbb, 0x3fc99999, 0x999999a6, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x400748b5, 0x43f409df, 0x3fc99999, 0x999999a6, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40072c43, 0xf4b16509, 0x3fc99999, 0x999999a6, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40070c44, 0x9f55a997, 0x3fc99999, 0x999999a6, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4006e806, 0x2854db5d, 0x3fc99999, 0x999999a6, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4006bea7, 0xebdbbf5b, 0x3fc99999, 0x999999a6, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fc99999, 0x999999a6, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x400657b2, 0xe092b034, 0x3fc99999, 0x999999a6, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x400616b4, 0x66d73d5e, 0x3fc99999, 0x999999a6, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4005c975, 0x54f4b39c, 0x3fc99999, 0x999999a6, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ac, 0x3fc99999, 0x999999a6, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4004fac5, 0x404fe6d9, 0x3fc99999, 0x999999a6, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec29430, 0x3fc99999, 0x999999a6, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x4003bc1c, 0xc0033270, 0x3fc99999, 0x999999a6, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321ce, 0x3fc99999, 0x999999a6, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x4001b6e1, 0x92ebbe40, 0x3fc99999, 0x999999a6, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df2, 0x3fc99999, 0x999999a6, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd2c, 0x3fc99999, 0x999999a6, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d11, 0x3fc99999, 0x999999a6, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff5368c, 0x951e9cf8, 0x3fc99999, 0x999999a6, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe42, 0x3fc99999, 0x999999a6, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3fedac67, 0x0561bb4e, 0x3fc99999, 0x999999a6, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fc99999, 0x999999a6, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fe5977a, 0x5103ea94, 0x3fc99999, 0x999999a6, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd6066398, 0x3fc99999, 0x999999a6, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe09cd8, 0x4fd118f7, 0x3fc99999, 0x999999a6, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb56, 0x3fc99999, 0x999999a6, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fdac42f, 0xfa7bcbd6, 0x3fc99999, 0x999999a6, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fd85a37, 0x6b677dc6, 0x3fc99999, 0x999999a6, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fd65243, 0x9d8be71c, 0x3fc99999, 0x999999a6, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269ee6, 0x3fc99999, 0x999999a6, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fd31a9b, 0x43436de6, 0x3fc99999, 0x999999a6, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fd1cfa9, 0x5f7a8dd3, 0x3fc99999, 0x999999a6, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fd0adb5, 0xa7741c08, 0x3fc99999, 0x999999a6, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fcf5b75, 0xf92c80e5, 0x3fc99999, 0x999999a6, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fcd9461, 0x05023393, 0x3fc99999, 0x999999a6, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fcbfd58, 0x1196f5c9, 0x3fc99999, 0x999999a6, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fca8f3c, 0x814a92de, 0x3fc99999, 0x999999a6, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40072c43, 0xf4b1650a, 0x3fd00000, 0x00000006, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x400712fb, 0x97e1e342, 0x3fd00000, 0x00000006, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4006f715, 0x259aea13, 0x3fd00000, 0x00000006, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4006d825, 0xfdaafada, 0x3fd00000, 0x00000006, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4006b5ac, 0x6d632f9e, 0x3fd00000, 0x00000006, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fd00000, 0x00000006, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40066377, 0xfe555c40, 0x3fd00000, 0x00000006, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40063202, 0x7e829b4b, 0x3fd00000, 0x00000006, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4005f973, 0x15254855, 0x3fd00000, 0x00000006, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4005b83f, 0xa76fbdae, 0x3fd00000, 0x00000006, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ac, 0x3fd00000, 0x00000006, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40051371, 0xab22738a, 0x3fd00000, 0x00000006, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4004a9f8, 0x694c6d69, 0x3fd00000, 0x00000006, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x40042bb5, 0xf776eb7e, 0x3fd00000, 0x00000006, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40039328, 0x6347d273, 0x3fd00000, 0x00000006, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321cf, 0x3fd00000, 0x00000006, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x4001f6dc, 0x3e63112d, 0x3fd00000, 0x00000006, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x4000e3c5, 0x1fa059c1, 0x3fd00000, 0x00000006, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3fff3889, 0x2f1e0c82, 0x3fd00000, 0x00000006, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffc4a83, 0x936311d4, 0x3fd00000, 0x00000006, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d13, 0x3fd00000, 0x00000006, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff5f973, 0x15254852, 0x3fd00000, 0x00000006, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff30b6d, 0x796a4da5, 0x3fd00000, 0x00000006, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a6, 0x3fd00000, 0x00000006, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fecac7c, 0x57846f9d, 0x3fd00000, 0x00000006, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd00000, 0x00000006, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8c, 0x3fd00000, 0x00000006, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe3d915, 0x73350663, 0x3fd00000, 0x00000006, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fe1e00b, 0xabdefeb6, 0x3fd00000, 0x00000006, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe03a26, 0xa486e634, 0x3fd00000, 0x00000006, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb54, 0x3fd00000, 0x00000006, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fdb4ddd, 0x66a37b45, 0x3fd00000, 0x00000006, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fd94441, 0xf8f7260f, 0x3fd00000, 0x00000006, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fd77fc6, 0xae0c8e66, 0x3fd00000, 0x00000006, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fd5f41a, 0xaf7686c0, 0x3fd00000, 0x00000006, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269ee4, 0x3fd00000, 0x00000006, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fd36277, 0x3707ebcf, 0x3fd00000, 0x00000006, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fd24eaa, 0xb4c991f1, 0x3fd00000, 0x00000006, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fd15731, 0x754a1824, 0x3fd00000, 0x00000006, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fd077fd, 0xe3124ead, 0x3fd00000, 0x00000006, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4006cd14, 0x07805737, 0x3fd33333, 0x33333339, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4006af8a, 0xb51a6804, 0x3fd33333, 0x33333339, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fd33333, 0x33333339, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40066b1c, 0x486d5729, 0x3fd33333, 0x33333339, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40064338, 0x2c079139, 0x3fd33333, 0x33333339, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x400616b4, 0x66d73d5f, 0x3fd33333, 0x33333339, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4005e4c3, 0x6ca01189, 0x3fd33333, 0x33333339, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4005ac69, 0x1f0f4899, 0x3fd33333, 0x33333339, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ad, 0x3fd33333, 0x33333339, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40052351, 0xd5cc540e, 0x3fd33333, 0x33333339, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4004cf33, 0xdec5e9de, 0x3fd33333, 0x33333339, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec29431, 0x3fd33333, 0x33333339, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4003fc17, 0x6b7a855e, 0x3fd33333, 0x33333339, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x400376b7, 0x14052d9e, 0x3fd33333, 0x33333339, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd33333, 0x33333339, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x40021fd0, 0x9b1e712c, 0x3fd33333, 0x33333339, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af6f, 0x3fd33333, 0x33333339, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fd33333, 0x33333339, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4cb, 0x3fd33333, 0x33333339, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffbc66e, 0x44cbc06f, 0x3fd33333, 0x33333339, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d13, 0x3fd33333, 0x33333339, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff67d88, 0x63bc99b9, 0x3fd33333, 0x33333339, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855d, 0x3fd33333, 0x33333339, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe42, 0x3fd33333, 0x33333339, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f699, 0x3fd33333, 0x33333339, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fec08aa, 0xe496efa5, 0x3fd33333, 0x33333339, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd33333, 0x33333339, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe6ad11, 0x00fbfde0, 0x3fd33333, 0x33333339, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fe4978f, 0xa3269ee2, 0x3fd33333, 0x33333339, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd6066397, 0x3fd33333, 0x33333339, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce2, 0x3fd33333, 0x33333339, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fdff54b, 0xf3bec845, 0x3fd33333, 0x33333339, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb53, 0x3fd33333, 0x33333339, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fdbac91, 0xa9a723ef, 0x3fd33333, 0x33333339, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fd9e9bf, 0x3d20dc73, 0x3fd33333, 0x33333339, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fd85a37, 0x6b677dc2, 0x3fd33333, 0x33333339, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fd6f619, 0x41e4def2, 0x3fd33333, 0x33333339, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fd5b6f8, 0x5eb6af76, 0x3fd33333, 0x33333339, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fd4978f, 0xa3269ee3, 0x3fd33333, 0x33333339, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fd39384, 0xf94e28a1, 0x3fd33333, 0x33333339, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40067078, 0xc2eef45d, 0x3fd66666, 0x6666666c, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40064f0e, 0xb468064f, 0x3fd66666, 0x6666666c, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40062a65, 0x7a259a4d, 0x3fd66666, 0x6666666c, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40060204, 0xbe520693, 0x3fd66666, 0x6666666c, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4005d55d, 0x7bcaa898, 0x3fd66666, 0x6666666c, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4005a3c4, 0xf2e49eb4, 0x3fd66666, 0x6666666c, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ad, 0x3fd66666, 0x6666666c, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40052e63, 0xcbf6f7b2, 0x3fd66666, 0x6666666c, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4004e87c, 0x3b956ba6, 0x3fd66666, 0x6666666c, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40049952, 0x004c912d, 0x3fd66666, 0x6666666c, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40043f37, 0x08e537eb, 0x3fd66666, 0x6666666c, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4003d82a, 0x5408834c, 0x3fd66666, 0x6666666c, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x400361d1, 0x62e61b89, 0x3fd66666, 0x6666666c, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd66666, 0x6666666c, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40023c41, 0xea611602, 0x3fd66666, 0x6666666c, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x40018743, 0x06ef5822, 0x3fd66666, 0x6666666c, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x4000b833, 0xbe165cc7, 0x3fd66666, 0x6666666c, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3fff9c6b, 0x238c6430, 0x3fd66666, 0x6666666c, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffd95e5, 0xac22d087, 0x3fd66666, 0x6666666c, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffb6731, 0x2cd2f430, 0x3fd66666, 0x6666666c, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d14, 0x3fd66666, 0x6666666c, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff6dcc5, 0x7bb565f9, 0x3fd66666, 0x6666666c, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff4ae10, 0xfc6589a2, 0x3fd66666, 0x6666666c, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff2a78b, 0x84fbf5fa, 0x3fd66666, 0x6666666c, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff0d38f, 0x2c5ba09d, 0x3fd66666, 0x6666666c, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3fee6ae1, 0x355353ce, 0x3fd66666, 0x6666666c, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3feb96e5, 0xa78c5c51, 0x3fd66666, 0x6666666c, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd66666, 0x6666666c, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fe700a7, 0xc5784634, 0x3fd66666, 0x6666666c, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe52744, 0x00eea72c, 0x3fd66666, 0x6666666c, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fe38b11, 0x2d7bd4af, 0x3fd66666, 0x6666666c, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe222a5, 0x4fde6fa9, 0x3fd66666, 0x6666666c, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe0e5fc, 0x62bb05c4, 0x3fd66666, 0x6666666c, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fdf9cbc, 0x4269ab2c, 0x3fd66666, 0x6666666c, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb51, 0x3fd66666, 0x6666666c, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fdbf1b3, 0x0afc731c, 0x3fd66666, 0x6666666c, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fda64ee, 0xc3cc23fe, 0x3fd66666, 0x6666666c, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fd8ffb4, 0xaf913426, 0x3fd66666, 0x6666666c, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fd7bcae, 0xd0f49656, 0x3fd66666, 0x6666666c, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fd69764, 0xfee13644, 0x3fd66666, 0x6666666c, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x400616b4, 0x66d73d60, 0x3fd99999, 0x9999999f, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4005f1ce, 0xcb0d4d6d, 0x3fd99999, 0x9999999f, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4005c975, 0x54f4b39e, 0x3fd99999, 0x9999999f, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40059d2f, 0x241f85a6, 0x3fd99999, 0x9999999f, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fd99999, 0x9999999f, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4005368c, 0x951e9cfc, 0x3fd99999, 0x9999999f, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4004fac5, 0x404fe6da, 0x3fd99999, 0x9999999f, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4004b831, 0x3ddf1776, 0x3fd99999, 0x9999999f, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fd99999, 0x9999999f, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40041a34, 0xfb542bff, 0x3fd99999, 0x9999999f, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4003bc1c, 0xc0033272, 0x3fd99999, 0x9999999f, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x400351d1, 0x783b3dac, 0x3fd99999, 0x9999999f, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd99999, 0x9999999f, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x40025127, 0x9b802817, 0x3fd99999, 0x9999999f, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4001b6e1, 0x92ebbe42, 0x3fd99999, 0x9999999f, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x40010900, 0x9519d637, 0x3fd99999, 0x9999999f, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fd99999, 0x9999999f, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffedf81, 0xa4bd64d1, 0x3fd99999, 0x9999999f, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd30, 0x3fd99999, 0x9999999f, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffb1f56, 0xfdeef00c, 0x3fd99999, 0x9999999f, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fd99999, 0x9999999f, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff7249f, 0xaa996a1e, 0x3fd99999, 0x9999999f, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff5368c, 0x951e9cfa, 0x3fd99999, 0x9999999f, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff36475, 0x03caf55a, 0x3fd99999, 0x9999999f, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe43, 0x3fd99999, 0x9999999f, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff031f5, 0x7e54adbd, 0x3fd99999, 0x9999999f, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fedac67, 0x0561bb4e, 0x3fd99999, 0x9999999f, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3feb434e, 0xe31013fc, 0x3fd99999, 0x9999999f, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd99999, 0x9999999f, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe740a7, 0x7023bda9, 0x3fd99999, 0x9999999f, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fe5977a, 0x5103ea93, 0x3fd99999, 0x9999999f, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe41f19, 0x63c0045f, 0x3fd99999, 0x9999999f, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd6066396, 0x3fd99999, 0x9999999f, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe1a728, 0x59945683, 0x3fd99999, 0x9999999f, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe09cd8, 0x4fd118f3, 0x3fd99999, 0x9999999f, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fdf5b75, 0xf92c80dd, 0x3fd99999, 0x9999999f, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb4f, 0x3fd99999, 0x9999999f, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fdc2661, 0x81253b88, 0x3fd99999, 0x9999999f, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fdac42f, 0xfa7bcbce, 0x3fd99999, 0x9999999f, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fd98164, 0x49b6fd53, 0x3fd99999, 0x9999999f, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4005bffa, 0x17065de0, 0x3fdccccc, 0xccccccd2, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x400597ff, 0xd521f2a9, 0x3fdccccc, 0xccccccd2, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fdccccc, 0xccccccd2, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40053ccf, 0xe79b8f8e, 0x3fdccccc, 0xccccccd2, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4005089b, 0xaf0d60e4, 0x3fdccccc, 0xccccccd2, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4004cf33, 0xdec5e9df, 0x3fdccccc, 0xccccccd2, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40048fe1, 0xf1cd429f, 0x3fdccccc, 0xccccccd2, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x400449d3, 0x87509220, 0x3fdccccc, 0xccccccd2, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fdccccc, 0xccccccd2, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4003a59b, 0x934a3833, 0x3fdccccc, 0xccccccd2, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4003452d, 0x2a42ac27, 0x3fdccccc, 0xccccccd2, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fdccccc, 0xccccccd2, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40026127, 0x862b05f4, 0x3fdccccc, 0xccccccd2, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4001dace, 0xaa5dc055, 0x3fdccccc, 0xccccccd2, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fdccccc, 0xccccccd2, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x40009f87, 0x5343d016, 0x3fdccccc, 0xccccccd2, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3fffd307, 0x52e32009, 0x3fdccccc, 0xccccccd2, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4cd, 0x3fdccccc, 0xccccccd2, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffca1a6, 0x56770bcd, 0x3fdccccc, 0xccccccd2, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffae73b, 0xd5e44e58, 0x3fdccccc, 0xccccccd2, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fdccccc, 0xccccccd2, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff75cba, 0xd2a40bd2, 0x3fdccccc, 0xccccccd2, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff5a250, 0x52114e5e, 0x3fdccccc, 0xccccccd2, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855e, 0x3fdccccc, 0xccccccd2, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff270ef, 0x55a53a23, 0x3fdccccc, 0xccccccd2, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff104e8, 0x0200b9fe, 0x3fdccccc, 0xccccccd2, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f699, 0x3fdccccc, 0xccccccd2, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3fed1cb2, 0xa799b305, 0x3fdccccc, 0xccccccd2, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3feb034f, 0x38649c87, 0x3fdccccc, 0xccccccd2, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fdccccc, 0xccccccd2, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fe77338, 0xa80603be, 0x3fdccccc, 0xccccccd2, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe5f17f, 0x03e7d38e, 0x3fdccccc, 0xccccccd2, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe4978f, 0xa3269ee1, 0x3fdccccc, 0xccccccd2, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe3609f, 0x33ce6bdf, 0x3fdccccc, 0xccccccd2, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe24865, 0x89dba9df, 0x3fdccccc, 0xccccccd2, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce1, 0x3fdccccc, 0xccccccd2, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe0657e, 0x94db30cf, 0x3fdccccc, 0xccccccd2, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fdf295b, 0x6544ec4e, 0x3fdccccc, 0xccccccd2, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fddac67, 0x0561bb4f, 0x3fdccccc, 0xccccccd2, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fdc4fdb, 0xf911d373, 0x3fdccccc, 0xccccccd2, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fe00000, 0x00000003, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x400541c5, 0x5d5d64c0, 0x3fe00000, 0x00000003, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40051371, 0xab22738b, 0x3fe00000, 0x00000003, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4004e102, 0xc80931db, 0x3fe00000, 0x00000003, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4004a9f8, 0x694c6d6a, 0x3fe00000, 0x00000003, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fe00000, 0x00000003, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40042bb5, 0xf776eb7f, 0x3fe00000, 0x00000003, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4003e31d, 0xfb0d799c, 0x3fe00000, 0x00000003, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40039328, 0x6347d274, 0x3fe00000, 0x00000003, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40033aef, 0xbf36777e, 0x3fe00000, 0x00000003, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fe00000, 0x00000003, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40026dcb, 0xd423977a, 0x3fe00000, 0x00000003, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4001f6dc, 0x3e63112f, 0x3fe00000, 0x00000003, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x400173c1, 0xf5810bb6, 0x3fe00000, 0x00000003, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4000e3c5, 0x1fa059c3, 0x3fe00000, 0x00000003, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe00000, 0x00000003, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3fff3889, 0x2f1e0c85, 0x3fe00000, 0x00000003, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffdcbc9, 0xedcbd8d7, 0x3fe00000, 0x00000003, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffc4a83, 0x936311d7, 0x3fe00000, 0x00000003, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffaba39, 0x7c7259da, 0x3fe00000, 0x00000003, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fe00000, 0x00000003, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff789bd, 0x2c160051, 0x3fe00000, 0x00000003, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff5f973, 0x15254855, 0x3fe00000, 0x00000003, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff4782c, 0xbabc8155, 0x3fe00000, 0x00000003, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff30b6d, 0x796a4da7, 0x3fe00000, 0x00000003, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe43, 0x3fe00000, 0x00000003, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a7, 0x3fe00000, 0x00000003, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3feeb8e5, 0x7b0c8582, 0x3fe00000, 0x00000003, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fecac7c, 0x57846f9e, 0x3fe00000, 0x00000003, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fead0be, 0x00825672, 0x3fe00000, 0x00000003, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe00000, 0x00000003, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe79c2e, 0x5436d664, 0x3fe00000, 0x00000003, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8a, 0x3fe00000, 0x00000003, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe4fb75, 0x64dacded, 0x3fe00000, 0x00000003, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe3d915, 0x73350660, 0x3fe00000, 0x00000003, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd6066395, 0x3fe00000, 0x00000003, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe1e00b, 0xabdefeb4, 0x3fe00000, 0x00000003, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe103e2, 0x30ebecf2, 0x3fe00000, 0x00000003, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe03a26, 0xa486e631, 0x3fe00000, 0x00000003, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fdf01af, 0xb73642bd, 0x3fe00000, 0x00000003, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40051c28, 0xaaf491df, 0x3fe19999, 0x9999999d, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4004ef33, 0x3421a552, 0x3fe19999, 0x9999999d, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4004be8d, 0x75c60da2, 0x3fe19999, 0x9999999d, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x400489ce, 0x32c7e50c, 0x3fe19999, 0x9999999d, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4004507f, 0x4d109f28, 0x3fe19999, 0x9999999d, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4004121c, 0xb53cd826, 0x3fe19999, 0x9999999d, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4003ce13, 0xa64eb185, 0x3fe19999, 0x9999999d, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x400383c2, 0x72726983, 0x3fe19999, 0x9999999d, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40033279, 0x47a8a3f3, 0x3fe19999, 0x9999999d, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe19999, 0x9999999d, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40027809, 0x3f2fcc24, 0x3fe19999, 0x9999999d, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40020d5d, 0x6b1c0b6e, 0x3fe19999, 0x9999999d, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x400198c4, 0x031217a2, 0x3fe19999, 0x9999999d, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x400119a6, 0xfe19b274, 0x3fe19999, 0x9999999d, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x40008fa7, 0x2899ef93, 0x3fe19999, 0x9999999d, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffff572, 0xaded0be5, 0x3fe19999, 0x9999999d, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffeb68c, 0x3ba726db, 0x3fe19999, 0x9999999d, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffd648c, 0xd67db728, 0x3fe19999, 0x9999999d, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffc02a9, 0x647f0db2, 0x3fe19999, 0x9999999d, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa9553, 0x1c6d8e5d, 0x3fe19999, 0x9999999d, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe19999, 0x9999999d, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff7aea3, 0x8c1acbcf, 0x3fe19999, 0x9999999d, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff6414d, 0x44094c7a, 0x3fe19999, 0x9999999d, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff4df69, 0xd20aa304, 0x3fe19999, 0x9999999d, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff38d6a, 0x6ce13351, 0x3fe19999, 0x9999999d, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff24e83, 0xfa9b4e47, 0x3fe19999, 0x9999999d, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff124a8, 0x57547b07, 0x3fe19999, 0x9999999d, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff010a8, 0xac54f544, 0x3fe19999, 0x9999999d, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fee24dd, 0x44c855d1, 0x3fe19999, 0x9999999d, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fec5277, 0xa4a086a2, 0x3fe19999, 0x9999999d, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3feaa7c8, 0x545183cd, 0x3fe19999, 0x9999999d, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe19999, 0x9999999d, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe7be08, 0x326e248f, 0x3fe19999, 0x9999999d, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe678e3, 0x87470e50, 0x3fe19999, 0x9999999d, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe54f9e, 0xb7d5ee49, 0x3fe19999, 0x9999999d, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe43f7a, 0x7c1d53c7, 0x3fe19999, 0x9999999d, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe345f0, 0x1cce37bb, 0x3fe19999, 0x9999999d, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe260b4, 0x85f1202d, 0x3fe19999, 0x9999999d, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe18db7, 0x79f87dd4, 0x3fe19999, 0x9999999d, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe0cb20, 0x808a1f16, 0x3fe19999, 0x9999999d, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4004cf33, 0xdec5e9df, 0x3fe33333, 0x33333337, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4004a04f, 0x5f80df4b, 0x3fe33333, 0x33333337, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fe33333, 0x33333337, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40043726, 0xeb5fa0c2, 0x3fe33333, 0x33333337, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fe33333, 0x33333337, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4003bc1c, 0xc0033272, 0x3fe33333, 0x33333337, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x400376b7, 0x14052d9f, 0x3fe33333, 0x33333337, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40032b5c, 0xd7c0fc06, 0x3fe33333, 0x33333337, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe33333, 0x33333337, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4002807f, 0xb6bd9fae, 0x3fe33333, 0x33333337, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40021fd0, 0x9b1e712d, 0x3fe33333, 0x33333337, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4001b6e1, 0x92ebbe43, 0x3fe33333, 0x33333337, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fe33333, 0x33333337, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4000ca7c, 0xc2d0d7fc, 0x3fe33333, 0x33333337, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe33333, 0x33333337, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3fff730b, 0xd281f698, 0x3fe33333, 0x33333337, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3fe33333, 0x33333337, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd31, 0x3fe33333, 0x33333337, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffbc66e, 0x44cbc072, 0x3fe33333, 0x33333337, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa7687, 0x3ac2bc7a, 0x3fe33333, 0x33333337, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe33333, 0x33333337, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff7cd6f, 0x6dc59db2, 0x3fe33333, 0x33333337, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff67d88, 0x63bc99bb, 0x3fe33333, 0x33333337, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff5368c, 0x951e9cfb, 0x3fe33333, 0x33333337, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855f, 0x3fe33333, 0x33333337, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff2d0ea, 0xd6066394, 0x3fe33333, 0x33333337, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe33333, 0x33333337, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff0aefd, 0x22e6aa36, 0x3fe33333, 0x33333337, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3fe33333, 0x33333337, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fedac67, 0x0561bb50, 0x3fe33333, 0x33333337, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fec08aa, 0xe496efa6, 0x3fe33333, 0x33333337, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fea85ee, 0x761a35a1, 0x3fe33333, 0x33333337, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe33333, 0x33333337, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe7da79, 0xf20cc443, 0x3fe33333, 0x33333337, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe6ad11, 0x00fbfddf, 0x3fe33333, 0x33333337, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe5977a, 0x5103ea92, 0x3fe33333, 0x33333337, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe4978f, 0xa3269ee1, 0x3fe33333, 0x33333337, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe3ab51, 0xa3923153, 0x3fe33333, 0x33333337, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe2d0ea, 0xd6066395, 0x3fe33333, 0x33333337, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe206af, 0xd30d3731, 0x3fe33333, 0x33333337, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40048590, 0xb7aedd62, 0x3fe4cccc, 0xccccccd1, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40045514, 0x33f00782, 0x3fe4cccc, 0xccccccd1, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x400420fd, 0x07447552, 0x3fe4cccc, 0xccccccd1, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4003e8f3, 0xacb51f92, 0x3fe4cccc, 0xccccccd1, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4003ac98, 0xf27e8651, 0x3fe4cccc, 0xccccccd1, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40036b86, 0x251cd70d, 0x3fe4cccc, 0xccccccd1, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4003254d, 0xb30ae9d3, 0x3fe4cccc, 0xccccccd1, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe4cccc, 0xccccccd1, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4002879c, 0x26a5479b, 0x3fe4cccc, 0xccccccd1, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40022f36, 0x8bf3da1f, 0x3fe4cccc, 0xccccccd1, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4001cfdb, 0x0358ca06, 0x3fe4cccc, 0xccccccd1, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40016925, 0x7715b182, 0x3fe4cccc, 0xccccccd1, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4000fac7, 0xc0872c2c, 0x3fe4cccc, 0xccccccd1, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x40008495, 0x326f4bf0, 0x3fe4cccc, 0xccccccd1, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x4000068f, 0xdf56fb08, 0x3fe4cccc, 0xccccccd1, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3fff01ec, 0xffc750ae, 0x3fe4cccc, 0xccccccd1, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffde8a2, 0x2515088e, 0x3fe4cccc, 0xccccccd1, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffcc2f3, 0x2876c448, 0x3fe4cccc, 0xccccccd1, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffb933b, 0xc05799bf, 0x3fe4cccc, 0xccccccd1, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa5c70, 0x7de844b3, 0x3fe4cccc, 0xccccccd1, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe4cccc, 0xccccccd1, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff7e786, 0x2aa0157a, 0x3fe4cccc, 0xccccccd1, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff6b0ba, 0xe830c06e, 0x3fe4cccc, 0xccccccd1, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff58103, 0x801195e5, 0x3fe4cccc, 0xccccccd1, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff45b54, 0x8373519f, 0x3fe4cccc, 0xccccccd1, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff34209, 0xa8c1097f, 0x3fe4cccc, 0xccccccd1, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff236d6, 0xe9da641d, 0x3fe4cccc, 0xccccccd1, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff13acc, 0x43a9c24d, 0x3fe4cccc, 0xccccccd1, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff04e67, 0x277a01d7, 0x3fe4cccc, 0xccccccd1, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3feee357, 0x74b9ee52, 0x3fe4cccc, 0xccccccd1, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fed4881, 0x43ad8c44, 0x3fe4cccc, 0xccccccd1, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3febcb13, 0x21414be0, 0x3fe4cccc, 0xccccccd1, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fea697c, 0xb67b95ed, 0x3fe4cccc, 0xccccccd1, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe4cccc, 0xccccccd1, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe7f2b6, 0x84e50d11, 0x3fe4cccc, 0xccccccd1, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe6d9d4, 0xbc9d5828, 0x3fe4cccc, 0xccccccd1, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe5d589, 0x87169b18, 0x3fe4cccc, 0xccccccd1, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe4e41e, 0x9e3c3615, 0x3fe4cccc, 0xccccccd1, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe403f9, 0x33fedf17, 0x3fe4cccc, 0xccccccd1, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe3339c, 0x81509658, 0x3fe4cccc, 0xccccccd1, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40043f37, 0x08e537ec, 0x3fe66666, 0x6666666b, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40040d72, 0x6e9f7ad4, 0x3fe66666, 0x6666666b, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4003d82a, 0x5408834d, 0x3fe66666, 0x6666666b, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40039f10, 0x8a1dc76f, 0x3fe66666, 0x6666666b, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x400361d1, 0x62e61b8a, 0x3fe66666, 0x6666666b, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40032014, 0x3b9f415f, 0x3fe66666, 0x6666666b, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe66666, 0x6666666b, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40028dab, 0x4b5b59cf, 0x3fe66666, 0x6666666b, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40023c41, 0xea611602, 0x3fe66666, 0x6666666b, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4001e4e5, 0x5817921d, 0x3fe66666, 0x6666666b, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40018743, 0x06ef5823, 0x3fe66666, 0x6666666b, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40012317, 0x0c990102, 0x3fe66666, 0x6666666b, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4000b833, 0xbe165cc8, 0x3fe66666, 0x6666666b, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe66666, 0x6666666b, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3fff9c6b, 0x238c6432, 0x3fe66666, 0x6666666b, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffe9f02, 0x0021cec5, 0x3fe66666, 0x6666666b, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffd95e5, 0xac22d08a, 0x3fe66666, 0x6666666b, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffc829e, 0xbb6db38b, 0x3fe66666, 0x6666666b, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffb6731, 0x2cd2f432, 0x3fe66666, 0x6666666b, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa460e, 0xa017978f, 0x3fe66666, 0x6666666b, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe66666, 0x6666666b, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff7fde8, 0x0870c29e, 0x3fe66666, 0x6666666b, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff6dcc5, 0x7bb565fb, 0x3fe66666, 0x6666666b, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff5c157, 0xed1aa6a2, 0x3fe66666, 0x6666666b, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff4ae10, 0xfc6589a3, 0x3fe66666, 0x6666666b, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff3a4f4, 0xa8668b68, 0x3fe66666, 0x6666666b, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff2a78b, 0x84fbf5fc, 0x3fe66666, 0x6666666b, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe66666, 0x6666666b, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff0d38f, 0x2c5ba09f, 0x3fe66666, 0x6666666b, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3feffb91, 0x1eacb051, 0x3fe66666, 0x6666666b, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fee6ae1, 0x355353d0, 0x3fe66666, 0x6666666b, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fecf457, 0xf0b26be7, 0x3fe66666, 0x6666666b, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3feb96e5, 0xa78c5c52, 0x3fe66666, 0x6666666b, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fea5140, 0x23a34d20, 0x3fe66666, 0x6666666b, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe66666, 0x6666666b, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe8079c, 0x6293aee0, 0x3fe66666, 0x6666666b, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe700a7, 0xc5784634, 0x3fe66666, 0x6666666b, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe60bab, 0x289996a1, 0x3fe66666, 0x6666666b, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe52744, 0x00eea72b, 0x3fe66666, 0x6666666b, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe45223, 0x9692c90f, 0x3fe66666, 0x6666666b, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fe80000, 0x00000005, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4003c953, 0x34d30df4, 0x3fe80000, 0x00000005, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x40039328, 0x6347d275, 0x3fe80000, 0x00000005, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40035951, 0xee0fd5c9, 0x3fe80000, 0x00000005, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40031b87, 0x267eca84, 0x3fe80000, 0x00000005, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe80000, 0x00000005, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x400292e4, 0xc2c70243, 0x3fe80000, 0x00000005, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40024772, 0xd9496c95, 0x3fe80000, 0x00000005, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4001f6dc, 0x3e63112f, 0x3fe80000, 0x00000005, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4001a0dc, 0x49296b7c, 0x3fe80000, 0x00000005, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fe80000, 0x00000005, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4000e3c5, 0x1fa059c3, 0x3fe80000, 0x00000005, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x40007c6c, 0x6947a6a6, 0x3fe80000, 0x00000005, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x40000f34, 0x0b81a4ee, 0x3fe80000, 0x00000005, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3fff3889, 0x2f1e0c86, 0x3fe80000, 0x00000005, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3fe80000, 0x00000005, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffd4d68, 0xbe213417, 0x3fe80000, 0x00000005, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffc4a83, 0x936311d8, 0x3fe80000, 0x00000005, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffb40e9, 0xaf482898, 0x3fe80000, 0x00000005, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa32a5, 0x1baa2089, 0x3fe80000, 0x00000005, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe80000, 0x00000005, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff81151, 0x8cde39a4, 0x3fe80000, 0x00000005, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff7030c, 0xf9403195, 0x3fe80000, 0x00000005, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff5f973, 0x15254856, 0x3fe80000, 0x00000005, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff4f68d, 0xea672616, 0x3fe80000, 0x00000005, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855f, 0x3fe80000, 0x00000005, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff30b6d, 0x796a4da8, 0x3fe80000, 0x00000005, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff2258e, 0x91851051, 0x3fe80000, 0x00000005, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff14b1d, 0xd5f90ce1, 0x3fe80000, 0x00000005, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a8, 0x3fe80000, 0x00000005, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3fe80000, 0x00000005, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fee047c, 0x2c6b066a, 0x3fe80000, 0x00000005, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fecac7c, 0x57846f9e, 0x3fe80000, 0x00000005, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3feb6a21, 0xebeb0209, 0x3fe80000, 0x00000005, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fea3c5a, 0x45f4ab51, 0x3fe80000, 0x00000005, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe80000, 0x00000005, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe819d0, 0xb7158a4d, 0x3fe80000, 0x00000005, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe722a5, 0x98d15d3a, 0x3fe80000, 0x00000005, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8a, 0x3fe80000, 0x00000005, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe562a0, 0x7dc47c8f, 0x3fe80000, 0x00000005, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4003bc1c, 0xc0033273, 0x3fe99999, 0x9999999f, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40038899, 0xe572fe85, 0x3fe99999, 0x9999999f, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x400351d1, 0x783b3dad, 0x3fe99999, 0x9999999f, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40031787, 0x26d41fcc, 0x3fe99999, 0x9999999f, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe99999, 0x9999999f, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40029771, 0xd7e7791e, 0x3fe99999, 0x9999999f, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x40025127, 0x9b802818, 0x3fe99999, 0x9999999f, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40020660, 0x0be7bd51, 0x3fe99999, 0x9999999f, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x4001b6e1, 0x92ebbe43, 0x3fe99999, 0x9999999f, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x40016279, 0xb155a47a, 0x3fe99999, 0x9999999f, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40010900, 0x9519d638, 0x3fe99999, 0x9999999f, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4000aa5d, 0x4f58e2bf, 0x3fe99999, 0x9999999f, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe99999, 0x9999999f, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x3fffbb37, 0x05373615, 0x3fe99999, 0x9999999f, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3ffedf81, 0xa4bd64d2, 0x3fe99999, 0x9999999f, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffdfa99, 0x22062809, 0x3fe99999, 0x9999999f, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd32, 0x3fe99999, 0x9999999f, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffc192a, 0xbdbdf877, 0x3fe99999, 0x9999999f, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffb1f56, 0xfdeef00d, 0x3fe99999, 0x9999999f, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa21a6, 0x31fd9506, 0x3fe99999, 0x9999999f, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe99999, 0x9999999f, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff82250, 0x768ac527, 0x3fe99999, 0x9999999f, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff7249f, 0xaa996a20, 0x3fe99999, 0x9999999f, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff62acb, 0xeaca61b7, 0x3fe99999, 0x9999999f, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff5368c, 0x951e9cfc, 0x3fe99999, 0x9999999f, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff4495d, 0x86823225, 0x3fe99999, 0x9999999f, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff36475, 0x03caf55c, 0x3fe99999, 0x9999999f, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff288bf, 0xa3512419, 0x3fe99999, 0x9999999f, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe99999, 0x9999999f, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3ff0ef3c, 0x09d694b1, 0x3fe99999, 0x9999999f, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3ff031f5, 0x7e54adbe, 0x3fe99999, 0x9999999f, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3feefe06, 0x8bba2275, 0x3fe99999, 0x9999999f, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fedac67, 0x0561bb50, 0x3fe99999, 0x9999999f, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fec6e6d, 0x2171bf19, 0x3fe99999, 0x9999999f, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3feb434e, 0xe31013fc, 0x3fe99999, 0x9999999f, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fea2a25, 0xf172cfe4, 0x3fe99999, 0x9999999f, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe99999, 0x9999999f, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe829d0, 0xb5c0352b, 0x3fe99999, 0x9999999f, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe740a7, 0x7023bda9, 0x3fe99999, 0x9999999f, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe66585, 0xbb44ba4a, 0x3fe99999, 0x9999999f, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40037f2d, 0x8b93012a, 0x3feb3333, 0x33333339, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x40034b25, 0xb27b30a4, 0x3feb3333, 0x33333339, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x400313fc, 0x14754e12, 0x3feb3333, 0x33333339, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3feb3333, 0x33333339, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40029b71, 0xd79223d6, 0x3feb3333, 0x33333339, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x400259a7, 0x10566dd9, 0x3feb3333, 0x33333339, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x400213e8, 0x74487c33, 0x3feb3333, 0x33333339, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x4001ca05, 0x51b12410, 0x3feb3333, 0x33333339, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40017bd2, 0x1306a2e0, 0x3feb3333, 0x33333339, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4001292a, 0xcb9e5e96, 0x3feb3333, 0x33333339, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x4000d1f6, 0x365d11c8, 0x3feb3333, 0x33333339, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40007629, 0x16cab415, 0x3feb3333, 0x33333339, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x400015c9, 0xda46bdfc, 0x3feb3333, 0x33333339, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x3fff61e8, 0x80287a1f, 0x3feb3333, 0x33333339, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3ffe8fb9, 0x6bf1d8f3, 0x3feb3333, 0x33333339, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffdb5a6, 0x01769192, 0x3feb3333, 0x33333339, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffcd487, 0x74e47388, 0x3feb3333, 0x33333339, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffbed70, 0x67a8594c, 0x3feb3333, 0x33333339, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffb01a8, 0xbf84055b, 0x3feb3333, 0x33333339, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa12a5, 0x465464cf, 0x3feb3333, 0x33333339, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3feb3333, 0x33333339, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff83151, 0x6233f55f, 0x3feb3333, 0x33333339, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff7424d, 0xe90454d2, 0x3feb3333, 0x33333339, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff65686, 0x40e000e2, 0x3feb3333, 0x33333339, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff56f6f, 0x33a3e6a6, 0x3feb3333, 0x33333339, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff48e50, 0xa711c89c, 0x3feb3333, 0x33333339, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff3b43d, 0x3c96813b, 0x3feb3333, 0x33333339, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff2e20e, 0x285fe00f, 0x3feb3333, 0x33333339, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff21862, 0xf3fade36, 0x3feb3333, 0x33333339, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3ff157a4, 0x7af2f204, 0x3feb3333, 0x33333339, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3ff0a00a, 0x3bce369f, 0x3feb3333, 0x33333339, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3fefe342, 0x22973a03, 0x3feb3333, 0x33333339, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fee98a5, 0x04f628dd, 0x3feb3333, 0x33333339, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fed5fd8, 0x0a4c241b, 0x3feb3333, 0x33333339, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fec384b, 0x7feec390, 0x3feb3333, 0x33333339, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3feb2151, 0x0fb6fcf7, 0x3feb3333, 0x33333339, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3fea1a25, 0xf2c82506, 0x3feb3333, 0x33333339, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3feb3333, 0x33333339, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe837fc, 0xff3b7c14, 0x3feb3333, 0x33333339, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe75b56, 0x8723f1cd, 0x3feb3333, 0x33333339, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x4003452d, 0x2a42ac28, 0x3feccccc, 0xccccccd3, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x400310d2, 0xfe7fcad8, 0x3feccccc, 0xccccccd3, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3feccccc, 0xccccccd3, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x40029efc, 0xe9f0f590, 0x3feccccc, 0xccccccd3, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40026127, 0x862b05f5, 0x3feccccc, 0xccccccd3, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x40021fd0, 0x9b1e712e, 0x3feccccc, 0xccccccd3, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4001dace, 0xaa5dc056, 0x3feccccc, 0xccccccd3, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x400191fb, 0xf721ce50, 0x3feccccc, 0xccccccd3, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3feccccc, 0xccccccd3, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4000f46b, 0x88a03600, 0x3feccccc, 0xccccccd3, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40009f87, 0x5343d017, 0x3feccccc, 0xccccccd3, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x4000468a, 0x8ace4df5, 0x3feccccc, 0xccccccd3, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x3fffd307, 0x52e32009, 0x3feccccc, 0xccccccd3, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x3fff1127, 0x088152ab, 0x3feccccc, 0xccccccd3, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3feccccc, 0xccccccd3, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffd77c7, 0xb196b31f, 0x3feccccc, 0xccccccd3, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffca1a6, 0x56770bcf, 0x3feccccc, 0xccccccd3, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffbc66e, 0x44cbc072, 0x3feccccc, 0xccccccd3, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffae73b, 0xd5e44e5a, 0x3feccccc, 0xccccccd3, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ffa054d, 0xbad44abd, 0x3feccccc, 0xccccccd3, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3feccccc, 0xccccccd3, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff83ea8, 0xedb40f71, 0x3feccccc, 0xccccccd3, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff75cba, 0xd2a40bd4, 0x3feccccc, 0xccccccd3, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff67d88, 0x63bc99bc, 0x3feccccc, 0xccccccd3, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff5a250, 0x52114e5f, 0x3feccccc, 0xccccccd3, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff4cc2e, 0xf6f1a70f, 0x3feccccc, 0xccccccd3, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff3fc17, 0x6b7a8560, 0x3feccccc, 0xccccccd3, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff332cf, 0xa0070783, 0x3feccccc, 0xccccccd3, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff270ef, 0x55a53a25, 0x3feccccc, 0xccccccd3, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe45, 0x3feccccc, 0xccccccd3, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3ff104e8, 0x0200ba00, 0x3feccccc, 0xccccccd3, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3ff05b1f, 0x9747ee2e, 0x3feccccc, 0xccccccd3, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3feccccc, 0xccccccd3, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fee3ffd, 0x74897b19, 0x3feccccc, 0xccccccd3, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fed1cb2, 0xa799b306, 0x3feccccc, 0xccccccd3, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fec08aa, 0xe496efa6, 0x3feccccc, 0xccccccd3, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3feb034f, 0x38649c88, 0x3feccccc, 0xccccccd3, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3fea0bf9, 0xa94cde1c, 0x3feccccc, 0xccccccd3, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3feccccc, 0xccccccd3, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe844a1, 0x571188fe, 0x3feccccc, 0xccccccd3, 0x3fee6666, 0x6666666d}, +{62,0,123,__LINE__, 0x40030dfc, 0xd57ce4cc, 0x3fee6666, 0x6666666d, 0xbff00000, 0x00000000}, +{62,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fee6666, 0x6666666d, 0xbfee6666, 0x66666666}, +{62,0,123,__LINE__, 0x4002a225, 0xffe678cb, 0x3fee6666, 0x6666666d, 0xbfeccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x400267d3, 0x4beb12fe, 0x3fee6666, 0x6666666d, 0xbfeb3333, 0x33333332}, +{62,0,123,__LINE__, 0x40022a5f, 0x18f3451e, 0x3fee6666, 0x6666666d, 0xbfe99999, 0x99999998}, +{62,0,123,__LINE__, 0x4001e9a5, 0xc99335af, 0x3fee6666, 0x6666666d, 0xbfe7ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4001a586, 0x8fc6c8cf, 0x3fee6666, 0x6666666d, 0xbfe66666, 0x66666664}, +{62,0,123,__LINE__, 0x40015de4, 0xca763c21, 0x3fee6666, 0x6666666d, 0xbfe4cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x400112a9, 0x9ee56458, 0x3fee6666, 0x6666666d, 0xbfe33333, 0x33333330}, +{62,0,123,__LINE__, 0x4000c3c5, 0xca449e50, 0x3fee6666, 0x6666666d, 0xbfe19999, 0x99999996}, +{62,0,123,__LINE__, 0x40007133, 0xa108dee2, 0x3fee6666, 0x6666666d, 0xbfdfffff, 0xfffffff9}, +{62,0,123,__LINE__, 0x40001af9, 0x294450fa, 0x3fee6666, 0x6666666d, 0xbfdccccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x3fff8254, 0x66b1ec6b, 0x3fee6666, 0x6666666d, 0xbfd99999, 0x99999993}, +{62,0,123,__LINE__, 0x3ffec7d4, 0x93fc7aa7, 0x3fee6666, 0x6666666d, 0xbfd66666, 0x66666660}, +{62,0,123,__LINE__, 0x3ffe06dc, 0x9297b73e, 0x3fee6666, 0x6666666d, 0xbfd33333, 0x3333332d}, +{62,0,123,__LINE__, 0x3ffd3ffa, 0xcd08c0c1, 0x3fee6666, 0x6666666d, 0xbfcfffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffc73e2, 0xe46d7f71, 0x3fee6666, 0x6666666d, 0xbfc99999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffba36c, 0x4c864173, 0x3fee6666, 0x6666666d, 0xbfc33333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffacf8e, 0xc523642f, 0x3fee6666, 0x6666666d, 0xbfb99999, 0x99999983}, +{62,0,123,__LINE__, 0x3ff9f95c, 0xaa6341c4, 0x3fee6666, 0x6666666d, 0xbfa99999, 0x9999996c}, +{62,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3fee6666, 0x6666666d, 0x3cb70000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff84a99, 0xfe25186a, 0x3fee6666, 0x6666666d, 0x3fa99999, 0x999999c8}, +{62,0,123,__LINE__, 0x3ff77467, 0xe364f5ff, 0x3fee6666, 0x6666666d, 0x3fb99999, 0x999999b1}, +{62,0,123,__LINE__, 0x3ff6a08a, 0x5c0218bb, 0x3fee6666, 0x6666666d, 0x3fc33333, 0x3333333f}, +{62,0,123,__LINE__, 0x3ff5d013, 0xc41adabd, 0x3fee6666, 0x6666666d, 0x3fc99999, 0x999999a6}, +{62,0,123,__LINE__, 0x3ff503fb, 0xdb7f996d, 0x3fee6666, 0x6666666d, 0x3fd00000, 0x00000006}, +{62,0,123,__LINE__, 0x3ff43d1a, 0x15f0a2f0, 0x3fee6666, 0x6666666d, 0x3fd33333, 0x33333339}, +{62,0,123,__LINE__, 0x3ff37c22, 0x148bdf87, 0x3fee6666, 0x6666666d, 0x3fd66666, 0x6666666c}, +{62,0,123,__LINE__, 0x3ff2c1a2, 0x41d66dc3, 0x3fee6666, 0x6666666d, 0x3fd99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3ff20e04, 0x55ffb83c, 0x3fee6666, 0x6666666d, 0x3fdccccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x3ff1618f, 0x66769c69, 0x3fee6666, 0x6666666d, 0x3fe00000, 0x00000003}, +{62,0,123,__LINE__, 0x3ff0bc6b, 0x13ff1d8d, 0x3fee6666, 0x6666666d, 0x3fe19999, 0x9999999d}, +{62,0,123,__LINE__, 0x3ff01ea3, 0x6abd9180, 0x3fee6666, 0x6666666d, 0x3fe33333, 0x33333337}, +{62,0,123,__LINE__, 0x3fef105a, 0x2737c3d9, 0x3fee6666, 0x6666666d, 0x3fe4cccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fedf1d3, 0x11f59121, 0x3fee6666, 0x6666666d, 0x3fe66666, 0x6666666b}, +{62,0,123,__LINE__, 0x3fece156, 0x2ac3dda1, 0x3fee6666, 0x6666666d, 0x3fe80000, 0x00000005}, +{62,0,123,__LINE__, 0x3febde70, 0xed439fe7, 0x3fee6666, 0x6666666d, 0x3fe99999, 0x9999999f}, +{62,0,123,__LINE__, 0x3feae8a0, 0x21646864, 0x3fee6666, 0x6666666d, 0x3feb3333, 0x33333339}, +{62,0,123,__LINE__, 0x3fe9ff55, 0x5176d133, 0x3fee6666, 0x6666666d, 0x3feccccc, 0xccccccd3}, +{62,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fee6666, 0x6666666d, 0x3fee6666, 0x6666666d}, +0,}; +test_atan2(m) {run_vector_1(m,atan2_vec,(char *)(atan2),"atan2","ddd"); } diff --git a/newlib/libm/test/atan2f_vec.c b/newlib/libm/test/atan2f_vec.c new file mode 100644 index 000000000..f07ac8d0e --- /dev/null +++ b/newlib/libm/test/atan2f_vec.c @@ -0,0 +1,1604 @@ +#include "test.h" + one_line_type atan2f_vec[] = { +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbff00000, 0x00000000, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc002a4fc, 0x28e95ed8, 0xbff00000, 0x00000000, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0026dcb, 0xd423977c, 0xbff00000, 0x00000000, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc00233cb, 0x72d34279, 0xbff00000, 0x00000000, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbff00000, 0x00000000, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbff00000, 0x00000000, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc00173c1, 0xf5810bb7, 0xbff00000, 0x00000000, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0012d68, 0x46b76641, 0xbff00000, 0x00000000, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbff00000, 0x00000000, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc00096d0, 0x5371b1c4, 0xbff00000, 0x00000000, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbff00000, 0x00000000, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xbfffe5fd, 0xcebfcb86, 0xbff00000, 0x00000000, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbff00000, 0x00000000, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xbffe8500, 0x76ee9e8d, 0xbff00000, 0x00000000, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbffdcbc9, 0xedcbd8d9, 0xbff00000, 0x00000000, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbff00000, 0x00000000, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffc4a83, 0x936311d9, 0xbff00000, 0x00000000, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffb83d5, 0xc13f26b8, 0xbff00000, 0x00000000, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffaba39, 0x7c7259dc, 0xbff00000, 0x00000000, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbff9ee9c, 0x8100c211, 0xbff00000, 0x00000000, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbff00000, 0x00000000, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff8555a, 0x2787981e, 0xbff00000, 0x00000000, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff789bd, 0x2c160052, 0xbff00000, 0x00000000, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff6c020, 0xe7493376, 0xbff00000, 0x00000000, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff5f973, 0x15254855, 0xbff00000, 0x00000000, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff5368c, 0x951e9cfb, 0xbff00000, 0x00000000, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff4782c, 0xbabc8156, 0xbff00000, 0x00000000, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff3bef6, 0x3199bba1, 0xbff00000, 0x00000000, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff30b6d, 0x796a4da7, 0xbff00000, 0x00000000, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff25df8, 0xd9c88ea8, 0xbff00000, 0x00000000, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbff00000, 0x00000000, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbff11656, 0x01a4f6a5, 0xbff00000, 0x00000000, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbff07c6c, 0x6947a6a6, 0xbff00000, 0x00000000, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfefd24c, 0x36331b59, 0xbff00000, 0x00000000, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfeeb8e5, 0x7b0c8580, 0xbff00000, 0x00000000, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfedac67, 0x0561bb4c, 0xbff00000, 0x00000000, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfecac7c, 0x57846f9b, 0xbff00000, 0x00000000, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfebb8bf, 0x85c3aa79, 0xbff00000, 0x00000000, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfead0be, 0x0082566f, 0xbff00000, 0x00000000, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe9f3fc, 0xad6b38ff, 0xbff00000, 0x00000000, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0030dfc, 0xd57ce4cd, 0xbfee6666, 0x66666666, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfee6666, 0x66666666, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc002a225, 0xffe678cc, 0xbfee6666, 0x66666666, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc00267d3, 0x4beb12ff, 0xbfee6666, 0x66666666, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0022a5f, 0x18f3451e, 0xbfee6666, 0x66666666, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc001e9a5, 0xc99335b0, 0xbfee6666, 0x66666666, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc001a586, 0x8fc6c8d0, 0xbfee6666, 0x66666666, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0015de4, 0xca763c22, 0xbfee6666, 0x66666666, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc00112a9, 0x9ee56458, 0xbfee6666, 0x66666666, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc000c3c5, 0xca449e52, 0xbfee6666, 0x66666666, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0007133, 0xa108dee4, 0xbfee6666, 0x66666666, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0001af9, 0x294450fa, 0xbfee6666, 0x66666666, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xbfff8254, 0x66b1ec6c, 0xbfee6666, 0x66666666, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xbffec7d4, 0x93fc7aa8, 0xbfee6666, 0x66666666, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbffe06dc, 0x9297b73f, 0xbfee6666, 0x66666666, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffd3ffa, 0xcd08c0c2, 0xbfee6666, 0x66666666, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffc73e2, 0xe46d7f72, 0xbfee6666, 0x66666666, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffba36c, 0x4c864174, 0xbfee6666, 0x66666666, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffacf8e, 0xc523642f, 0xbfee6666, 0x66666666, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbff9f95c, 0xaa6341c4, 0xbfee6666, 0x66666666, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfee6666, 0x66666666, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff84a99, 0xfe25186a, 0xbfee6666, 0x66666666, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff77467, 0xe364f5ff, 0xbfee6666, 0x66666666, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff6a08a, 0x5c0218ba, 0xbfee6666, 0x66666666, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff5d013, 0xc41adabc, 0xbfee6666, 0x66666666, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff503fb, 0xdb7f996c, 0xbfee6666, 0x66666666, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff43d1a, 0x15f0a2ef, 0xbfee6666, 0x66666666, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff37c22, 0x148bdf86, 0xbfee6666, 0x66666666, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff2c1a2, 0x41d66dc2, 0xbfee6666, 0x66666666, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff20e04, 0x55ffb83a, 0xbfee6666, 0x66666666, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbff1618f, 0x66769c68, 0xbfee6666, 0x66666666, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbff0bc6b, 0x13ff1d8c, 0xbfee6666, 0x66666666, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbff01ea3, 0x6abd917e, 0xbfee6666, 0x66666666, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfef105a, 0x2737c3d5, 0xbfee6666, 0x66666666, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfedf1d3, 0x11f5911e, 0xbfee6666, 0x66666666, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfece156, 0x2ac3dd9e, 0xbfee6666, 0x66666666, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfebde70, 0xed439fe3, 0xbfee6666, 0x66666666, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfeae8a0, 0x21646861, 0xbfee6666, 0x66666666, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe9ff55, 0x5176d12f, 0xbfee6666, 0x66666666, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d15, 0xbfee6666, 0x66666666, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc003452d, 0x2a42ac29, 0xbfeccccc, 0xcccccccc, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc00310d2, 0xfe7fcad9, 0xbfeccccc, 0xcccccccc, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfeccccc, 0xcccccccc, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0029efc, 0xe9f0f591, 0xbfeccccc, 0xcccccccc, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0026127, 0x862b05f6, 0xbfeccccc, 0xcccccccc, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfeccccc, 0xcccccccc, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc001dace, 0xaa5dc056, 0xbfeccccc, 0xcccccccc, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc00191fb, 0xf721ce52, 0xbfeccccc, 0xcccccccc, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfeccccc, 0xcccccccc, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc000f46b, 0x88a03601, 0xbfeccccc, 0xcccccccc, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0009f87, 0x5343d018, 0xbfeccccc, 0xcccccccc, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfeccccc, 0xcccccccc, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xbfffd307, 0x52e3200b, 0xbfeccccc, 0xcccccccc, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xbfff1127, 0x088152ad, 0xbfeccccc, 0xcccccccc, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfeccccc, 0xcccccccc, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffd77c7, 0xb196b320, 0xbfeccccc, 0xcccccccc, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffca1a6, 0x56770bcf, 0xbfeccccc, 0xcccccccc, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffbc66e, 0x44cbc073, 0xbfeccccc, 0xcccccccc, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffae73b, 0xd5e44e5a, 0xbfeccccc, 0xcccccccc, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa054d, 0xbad44abd, 0xbfeccccc, 0xcccccccc, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfeccccc, 0xcccccccc, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff83ea8, 0xedb40f71, 0xbfeccccc, 0xcccccccc, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff75cba, 0xd2a40bd4, 0xbfeccccc, 0xcccccccc, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff67d88, 0x63bc99bb, 0xbfeccccc, 0xcccccccc, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff5a250, 0x52114e5e, 0xbfeccccc, 0xcccccccc, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff4cc2e, 0xf6f1a70e, 0xbfeccccc, 0xcccccccc, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a855e, 0xbfeccccc, 0xcccccccc, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff332cf, 0xa0070782, 0xbfeccccc, 0xcccccccc, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff270ef, 0x55a53a23, 0xbfeccccc, 0xcccccccc, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbfeccccc, 0xcccccccc, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbff104e8, 0x0200b9fe, 0xbfeccccc, 0xcccccccc, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbff05b1f, 0x9747ee2c, 0xbfeccccc, 0xcccccccc, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f698, 0xbfeccccc, 0xcccccccc, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfee3ffd, 0x74897b16, 0xbfeccccc, 0xcccccccc, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfed1cb2, 0xa799b303, 0xbfeccccc, 0xcccccccc, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfec08aa, 0xe496efa3, 0xbfeccccc, 0xcccccccc, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfeb034f, 0x38649c84, 0xbfeccccc, 0xcccccccc, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfea0bf9, 0xa94cde18, 0xbfeccccc, 0xcccccccc, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfeccccc, 0xcccccccc, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe844a1, 0x571188fa, 0xbfeccccc, 0xcccccccc, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0037f2d, 0x8b93012c, 0xbfeb3333, 0x33333332, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0034b25, 0xb27b30a5, 0xbfeb3333, 0x33333332, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc00313fc, 0x14754e13, 0xbfeb3333, 0x33333332, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfeb3333, 0x33333332, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0029b71, 0xd79223d7, 0xbfeb3333, 0x33333332, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc00259a7, 0x10566dda, 0xbfeb3333, 0x33333332, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc00213e8, 0x74487c34, 0xbfeb3333, 0x33333332, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc001ca05, 0x51b12411, 0xbfeb3333, 0x33333332, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0017bd2, 0x1306a2e0, 0xbfeb3333, 0x33333332, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc001292a, 0xcb9e5e97, 0xbfeb3333, 0x33333332, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc000d1f6, 0x365d11c8, 0xbfeb3333, 0x33333332, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0007629, 0x16cab416, 0xbfeb3333, 0x33333332, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc00015c9, 0xda46bdfc, 0xbfeb3333, 0x33333332, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xbfff61e8, 0x80287a21, 0xbfeb3333, 0x33333332, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbffe8fb9, 0x6bf1d8f4, 0xbfeb3333, 0x33333332, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffdb5a6, 0x01769193, 0xbfeb3333, 0x33333332, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffcd487, 0x74e47389, 0xbfeb3333, 0x33333332, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffbed70, 0x67a8594d, 0xbfeb3333, 0x33333332, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffb01a8, 0xbf84055c, 0xbfeb3333, 0x33333332, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa12a5, 0x465464cf, 0xbfeb3333, 0x33333332, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d17, 0xbfeb3333, 0x33333332, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff83151, 0x6233f55f, 0xbfeb3333, 0x33333332, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff7424d, 0xe90454d2, 0xbfeb3333, 0x33333332, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff65686, 0x40e000e1, 0xbfeb3333, 0x33333332, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff56f6f, 0x33a3e6a5, 0xbfeb3333, 0x33333332, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff48e50, 0xa711c89b, 0xbfeb3333, 0x33333332, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff3b43d, 0x3c96813a, 0xbfeb3333, 0x33333332, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff2e20e, 0x285fe00d, 0xbfeb3333, 0x33333332, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff21862, 0xf3fade35, 0xbfeb3333, 0x33333332, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff157a4, 0x7af2f203, 0xbfeb3333, 0x33333332, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbff0a00a, 0x3bce369d, 0xbfeb3333, 0x33333332, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfefe342, 0x229739ff, 0xbfeb3333, 0x33333332, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfee98a5, 0x04f628d9, 0xbfeb3333, 0x33333332, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfed5fd8, 0x0a4c2417, 0xbfeb3333, 0x33333332, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfec384b, 0x7feec38c, 0xbfeb3333, 0x33333332, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfeb2151, 0x0fb6fcf3, 0xbfeb3333, 0x33333332, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfea1a25, 0xf2c82502, 0xbfeb3333, 0x33333332, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfeb3333, 0x33333332, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe837fc, 0xff3b7c10, 0xbfeb3333, 0x33333332, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe75b56, 0x8723f1c8, 0xbfeb3333, 0x33333332, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfe99999, 0x99999998, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0038899, 0xe572fe86, 0xbfe99999, 0x99999998, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc00351d1, 0x783b3dae, 0xbfe99999, 0x99999998, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0031787, 0x26d41fce, 0xbfe99999, 0x99999998, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe99999, 0x99999998, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0029771, 0xd7e7791f, 0xbfe99999, 0x99999998, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0025127, 0x9b802819, 0xbfe99999, 0x99999998, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0020660, 0x0be7bd52, 0xbfe99999, 0x99999998, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfe99999, 0x99999998, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0016279, 0xb155a47a, 0xbfe99999, 0x99999998, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0010900, 0x9519d638, 0xbfe99999, 0x99999998, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc000aa5d, 0x4f58e2c0, 0xbfe99999, 0x99999998, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe99999, 0x99999998, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xbfffbb37, 0x05373617, 0xbfe99999, 0x99999998, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbffedf81, 0xa4bd64d3, 0xbfe99999, 0x99999998, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffdfa99, 0x2206280a, 0xbfe99999, 0x99999998, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbfe99999, 0x99999998, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffc192a, 0xbdbdf878, 0xbfe99999, 0x99999998, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffb1f56, 0xfdeef00e, 0xbfe99999, 0x99999998, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa21a6, 0x31fd9506, 0xbfe99999, 0x99999998, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe99999, 0x99999998, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff82250, 0x768ac527, 0xbfe99999, 0x99999998, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff7249f, 0xaa996a20, 0xbfe99999, 0x99999998, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff62acb, 0xeaca61b6, 0xbfe99999, 0x99999998, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff5368c, 0x951e9cfb, 0xbfe99999, 0x99999998, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff4495d, 0x86823223, 0xbfe99999, 0x99999998, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff36475, 0x03caf55a, 0xbfe99999, 0x99999998, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff288bf, 0xa3512417, 0xbfe99999, 0x99999998, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe43, 0xbfe99999, 0x99999998, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff0ef3c, 0x09d694af, 0xbfe99999, 0x99999998, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbff031f5, 0x7e54adbc, 0xbfe99999, 0x99999998, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfeefe06, 0x8bba2272, 0xbfe99999, 0x99999998, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfedac67, 0x0561bb4c, 0xbfe99999, 0x99999998, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfec6e6d, 0x2171bf14, 0xbfe99999, 0x99999998, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfeb434e, 0xe31013f8, 0xbfe99999, 0x99999998, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfea2a25, 0xf172cfdf, 0xbfe99999, 0x99999998, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfe99999, 0x99999998, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe829d0, 0xb5c03526, 0xbfe99999, 0x99999998, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe740a7, 0x7023bda5, 0xbfe99999, 0x99999998, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe66585, 0xbb44ba45, 0xbfe99999, 0x99999998, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfe7ffff, 0xfffffffe, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc003c953, 0x34d30df5, 0xbfe7ffff, 0xfffffffe, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfe7ffff, 0xfffffffe, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0035951, 0xee0fd5ca, 0xbfe7ffff, 0xfffffffe, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0031b87, 0x267eca85, 0xbfe7ffff, 0xfffffffe, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe7ffff, 0xfffffffe, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc00292e4, 0xc2c70244, 0xbfe7ffff, 0xfffffffe, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0024772, 0xd9496c96, 0xbfe7ffff, 0xfffffffe, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfe7ffff, 0xfffffffe, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc001a0dc, 0x49296b7e, 0xbfe7ffff, 0xfffffffe, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfe7ffff, 0xfffffffe, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfe7ffff, 0xfffffffe, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0007c6c, 0x6947a6a8, 0xbfe7ffff, 0xfffffffe, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc0000f34, 0x0b81a4ef, 0xbfe7ffff, 0xfffffffe, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbfe7ffff, 0xfffffffe, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfe7ffff, 0xfffffffe, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffd4d68, 0xbe213418, 0xbfe7ffff, 0xfffffffe, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffc4a83, 0x936311d9, 0xbfe7ffff, 0xfffffffe, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffb40e9, 0xaf482898, 0xbfe7ffff, 0xfffffffe, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa32a5, 0x1baa2089, 0xbfe7ffff, 0xfffffffe, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe7ffff, 0xfffffffe, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff81151, 0x8cde39a4, 0xbfe7ffff, 0xfffffffe, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff7030c, 0xf9403195, 0xbfe7ffff, 0xfffffffe, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff5f973, 0x15254855, 0xbfe7ffff, 0xfffffffe, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff4f68d, 0xea672615, 0xbfe7ffff, 0xfffffffe, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a855e, 0xbfe7ffff, 0xfffffffe, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff30b6d, 0x796a4da6, 0xbfe7ffff, 0xfffffffe, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff2258e, 0x9185104f, 0xbfe7ffff, 0xfffffffe, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff14b1d, 0xd5f90cdf, 0xbfe7ffff, 0xfffffffe, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbff07c6c, 0x6947a6a6, 0xbfe7ffff, 0xfffffffe, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f697, 0xbfe7ffff, 0xfffffffe, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfee047c, 0x2c6b0665, 0xbfe7ffff, 0xfffffffe, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfecac7c, 0x57846f9a, 0xbfe7ffff, 0xfffffffe, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfeb6a21, 0xebeb0204, 0xbfe7ffff, 0xfffffffe, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfea3c5a, 0x45f4ab4c, 0xbfe7ffff, 0xfffffffe, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d14, 0xbfe7ffff, 0xfffffffe, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe819d0, 0xb7158a48, 0xbfe7ffff, 0xfffffffe, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe722a5, 0x98d15d35, 0xbfe7ffff, 0xfffffffe, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a86, 0xbfe7ffff, 0xfffffffe, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe562a0, 0x7dc47c8a, 0xbfe7ffff, 0xfffffffe, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0043f37, 0x08e537ed, 0xbfe66666, 0x66666664, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0040d72, 0x6e9f7ad5, 0xbfe66666, 0x66666664, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc003d82a, 0x5408834e, 0xbfe66666, 0x66666664, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0039f10, 0x8a1dc770, 0xbfe66666, 0x66666664, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc00361d1, 0x62e61b8c, 0xbfe66666, 0x66666664, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0032014, 0x3b9f4160, 0xbfe66666, 0x66666664, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe66666, 0x66666664, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0028dab, 0x4b5b59d0, 0xbfe66666, 0x66666664, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0023c41, 0xea611604, 0xbfe66666, 0x66666664, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc001e4e5, 0x5817921e, 0xbfe66666, 0x66666664, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0018743, 0x06ef5824, 0xbfe66666, 0x66666664, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0012317, 0x0c990104, 0xbfe66666, 0x66666664, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc000b833, 0xbe165cc8, 0xbfe66666, 0x66666664, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe66666, 0x66666664, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xbfff9c6b, 0x238c6434, 0xbfe66666, 0x66666664, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffe9f02, 0x0021cec6, 0xbfe66666, 0x66666664, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffd95e5, 0xac22d08b, 0xbfe66666, 0x66666664, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffc829e, 0xbb6db38c, 0xbfe66666, 0x66666664, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffb6731, 0x2cd2f433, 0xbfe66666, 0x66666664, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa460e, 0xa017978f, 0xbfe66666, 0x66666664, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe66666, 0x66666664, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff7fde8, 0x0870c29e, 0xbfe66666, 0x66666664, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff6dcc5, 0x7bb565fa, 0xbfe66666, 0x66666664, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff5c157, 0xed1aa6a1, 0xbfe66666, 0x66666664, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff4ae10, 0xfc6589a2, 0xbfe66666, 0x66666664, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff3a4f4, 0xa8668b67, 0xbfe66666, 0x66666664, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff2a78b, 0x84fbf5fa, 0xbfe66666, 0x66666664, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe42, 0xbfe66666, 0x66666664, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff0d38f, 0x2c5ba09c, 0xbfe66666, 0x66666664, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfeffb91, 0x1eacb04d, 0xbfe66666, 0x66666664, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfee6ae1, 0x355353cb, 0xbfe66666, 0x66666664, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfecf457, 0xf0b26be3, 0xbfe66666, 0x66666664, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfeb96e5, 0xa78c5c4d, 0xbfe66666, 0x66666664, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfea5140, 0x23a34d1b, 0xbfe66666, 0x66666664, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d13, 0xbfe66666, 0x66666664, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe8079c, 0x6293aeda, 0xbfe66666, 0x66666664, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe700a7, 0xc578462f, 0xbfe66666, 0x66666664, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe60bab, 0x2899969c, 0xbfe66666, 0x66666664, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe52744, 0x00eea726, 0xbfe66666, 0x66666664, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe45223, 0x9692c90b, 0xbfe66666, 0x66666664, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0048590, 0xb7aedd64, 0xbfe4cccc, 0xccccccca, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0045514, 0x33f00783, 0xbfe4cccc, 0xccccccca, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc00420fd, 0x07447553, 0xbfe4cccc, 0xccccccca, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc003e8f3, 0xacb51f93, 0xbfe4cccc, 0xccccccca, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc003ac98, 0xf27e8652, 0xbfe4cccc, 0xccccccca, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0036b86, 0x251cd70e, 0xbfe4cccc, 0xccccccca, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc003254d, 0xb30ae9d4, 0xbfe4cccc, 0xccccccca, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe4cccc, 0xccccccca, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc002879c, 0x26a5479d, 0xbfe4cccc, 0xccccccca, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0022f36, 0x8bf3da20, 0xbfe4cccc, 0xccccccca, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc001cfdb, 0x0358ca07, 0xbfe4cccc, 0xccccccca, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0016925, 0x7715b184, 0xbfe4cccc, 0xccccccca, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc000fac7, 0xc0872c2c, 0xbfe4cccc, 0xccccccca, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc0008495, 0x326f4bf1, 0xbfe4cccc, 0xccccccca, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc000068f, 0xdf56fb0a, 0xbfe4cccc, 0xccccccca, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbfff01ec, 0xffc750b0, 0xbfe4cccc, 0xccccccca, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffde8a2, 0x25150890, 0xbfe4cccc, 0xccccccca, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffcc2f3, 0x2876c449, 0xbfe4cccc, 0xccccccca, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffb933b, 0xc05799c0, 0xbfe4cccc, 0xccccccca, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa5c70, 0x7de844b3, 0xbfe4cccc, 0xccccccca, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe4cccc, 0xccccccca, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff7e786, 0x2aa01579, 0xbfe4cccc, 0xccccccca, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff6b0ba, 0xe830c06d, 0xbfe4cccc, 0xccccccca, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff58103, 0x801195e3, 0xbfe4cccc, 0xccccccca, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff45b54, 0x8373519d, 0xbfe4cccc, 0xccccccca, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff34209, 0xa8c1097d, 0xbfe4cccc, 0xccccccca, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff236d6, 0xe9da641a, 0xbfe4cccc, 0xccccccca, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff13acc, 0x43a9c24b, 0xbfe4cccc, 0xccccccca, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbff04e67, 0x277a01d5, 0xbfe4cccc, 0xccccccca, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfeee357, 0x74b9ee4d, 0xbfe4cccc, 0xccccccca, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfed4881, 0x43ad8c3f, 0xbfe4cccc, 0xccccccca, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfebcb13, 0x21414bdb, 0xbfe4cccc, 0xccccccca, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfea697c, 0xb67b95e9, 0xbfe4cccc, 0xccccccca, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d13, 0xbfe4cccc, 0xccccccca, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe7f2b6, 0x84e50d0b, 0xbfe4cccc, 0xccccccca, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe6d9d4, 0xbc9d5822, 0xbfe4cccc, 0xccccccca, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe5d589, 0x87169b13, 0xbfe4cccc, 0xccccccca, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe4e41e, 0x9e3c3610, 0xbfe4cccc, 0xccccccca, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe403f9, 0x33fedf12, 0xbfe4cccc, 0xccccccca, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe3339c, 0x81509652, 0xbfe4cccc, 0xccccccca, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfe33333, 0x33333330, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc004a04f, 0x5f80df4c, 0xbfe33333, 0x33333330, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfe33333, 0x33333330, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0043726, 0xeb5fa0c4, 0xbfe33333, 0x33333330, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfe33333, 0x33333330, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfe33333, 0x33333330, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc00376b7, 0x14052da1, 0xbfe33333, 0x33333330, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0032b5c, 0xd7c0fc08, 0xbfe33333, 0x33333330, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe33333, 0x33333330, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc002807f, 0xb6bd9fb0, 0xbfe33333, 0x33333330, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfe33333, 0x33333330, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfe33333, 0x33333330, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfe33333, 0x33333330, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc000ca7c, 0xc2d0d7fc, 0xbfe33333, 0x33333330, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfe33333, 0x33333330, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbfff730b, 0xd281f69a, 0xbfe33333, 0x33333330, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4d0, 0xbfe33333, 0x33333330, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffd0d6a, 0x1369bd33, 0xbfe33333, 0x33333330, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffbc66e, 0x44cbc073, 0xbfe33333, 0x33333330, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa7687, 0x3ac2bc7b, 0xbfe33333, 0x33333330, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe33333, 0x33333330, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff7cd6f, 0x6dc59db2, 0xbfe33333, 0x33333330, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff67d88, 0x63bc99ba, 0xbfe33333, 0x33333330, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff5368c, 0x951e9cfa, 0xbfe33333, 0x33333330, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a855d, 0xbfe33333, 0x33333330, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff2d0ea, 0xd6066392, 0xbfe33333, 0x33333330, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe41, 0xbfe33333, 0x33333330, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff0aefd, 0x22e6aa34, 0xbfe33333, 0x33333330, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f696, 0xbfe33333, 0x33333330, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfedac67, 0x0561bb4a, 0xbfe33333, 0x33333330, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfec08aa, 0xe496efa0, 0xbfe33333, 0x33333330, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfea85ee, 0x761a359c, 0xbfe33333, 0x33333330, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfe33333, 0x33333330, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe7da79, 0xf20cc43d, 0xbfe33333, 0x33333330, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe6ad11, 0x00fbfdd9, 0xbfe33333, 0x33333330, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe5977a, 0x5103ea8c, 0xbfe33333, 0x33333330, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe4978f, 0xa3269edb, 0xbfe33333, 0x33333330, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe3ab51, 0xa392314e, 0xbfe33333, 0x33333330, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd6066390, 0xbfe33333, 0x33333330, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe206af, 0xd30d372c, 0xbfe33333, 0x33333330, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0051c28, 0xaaf491e0, 0xbfe19999, 0x99999996, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc004ef33, 0x3421a553, 0xbfe19999, 0x99999996, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc004be8d, 0x75c60da4, 0xbfe19999, 0x99999996, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc00489ce, 0x32c7e50e, 0xbfe19999, 0x99999996, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc004507f, 0x4d109f2a, 0xbfe19999, 0x99999996, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc004121c, 0xb53cd827, 0xbfe19999, 0x99999996, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc003ce13, 0xa64eb186, 0xbfe19999, 0x99999996, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc00383c2, 0x72726984, 0xbfe19999, 0x99999996, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0033279, 0x47a8a3f5, 0xbfe19999, 0x99999996, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfe19999, 0x99999996, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0027809, 0x3f2fcc25, 0xbfe19999, 0x99999996, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0020d5d, 0x6b1c0b70, 0xbfe19999, 0x99999996, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc00198c4, 0x031217a4, 0xbfe19999, 0x99999996, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc00119a6, 0xfe19b276, 0xbfe19999, 0x99999996, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0008fa7, 0x2899ef94, 0xbfe19999, 0x99999996, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xbffff572, 0xaded0be8, 0xbfe19999, 0x99999996, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbffeb68c, 0x3ba726dd, 0xbfe19999, 0x99999996, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffd648c, 0xd67db72a, 0xbfe19999, 0x99999996, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffc02a9, 0x647f0db4, 0xbfe19999, 0x99999996, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffa9553, 0x1c6d8e5d, 0xbfe19999, 0x99999996, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d16, 0xbfe19999, 0x99999996, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff7aea3, 0x8c1acbce, 0xbfe19999, 0x99999996, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff6414d, 0x44094c78, 0xbfe19999, 0x99999996, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff4df69, 0xd20aa302, 0xbfe19999, 0x99999996, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff38d6a, 0x6ce1334f, 0xbfe19999, 0x99999996, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff24e83, 0xfa9b4e45, 0xbfe19999, 0x99999996, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff124a8, 0x57547b04, 0xbfe19999, 0x99999996, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbff010a8, 0xac54f541, 0xbfe19999, 0x99999996, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfee24dd, 0x44c855cb, 0xbfe19999, 0x99999996, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfec5277, 0xa4a0869c, 0xbfe19999, 0x99999996, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfeaa7c8, 0x545183c7, 0xbfe19999, 0x99999996, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfe19999, 0x99999996, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe7be08, 0x326e2489, 0xbfe19999, 0x99999996, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe678e3, 0x87470e4a, 0xbfe19999, 0x99999996, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe54f9e, 0xb7d5ee43, 0xbfe19999, 0x99999996, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe43f7a, 0x7c1d53c1, 0xbfe19999, 0x99999996, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe345f0, 0x1cce37b5, 0xbfe19999, 0x99999996, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe260b4, 0x85f12028, 0xbfe19999, 0x99999996, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe18db7, 0x79f87dcf, 0xbfe19999, 0x99999996, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfe0cb20, 0x808a1f11, 0xbfe19999, 0x99999996, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfdfffff, 0xfffffff9, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc00541c5, 0x5d5d64c1, 0xbfdfffff, 0xfffffff9, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0051371, 0xab22738d, 0xbfdfffff, 0xfffffff9, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc004e102, 0xc80931dc, 0xbfdfffff, 0xfffffff9, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc004a9f8, 0x694c6d6c, 0xbfdfffff, 0xfffffff9, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfdfffff, 0xfffffff9, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0042bb5, 0xf776eb80, 0xbfdfffff, 0xfffffff9, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc003e31d, 0xfb0d799d, 0xbfdfffff, 0xfffffff9, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfdfffff, 0xfffffff9, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0033aef, 0xbf36777f, 0xbfdfffff, 0xfffffff9, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfdfffff, 0xfffffff9, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0026dcb, 0xd423977c, 0xbfdfffff, 0xfffffff9, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfdfffff, 0xfffffff9, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc00173c1, 0xf5810bb7, 0xbfdfffff, 0xfffffff9, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfdfffff, 0xfffffff9, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfdfffff, 0xfffffff9, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbfff3889, 0x2f1e0c87, 0xbfdfffff, 0xfffffff9, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffdcbc9, 0xedcbd8d9, 0xbfdfffff, 0xfffffff9, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffc4a83, 0x936311d8, 0xbfdfffff, 0xfffffff9, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffaba39, 0x7c7259db, 0xbfdfffff, 0xfffffff9, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfdfffff, 0xfffffff9, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff789bd, 0x2c160050, 0xbfdfffff, 0xfffffff9, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff5f973, 0x15254853, 0xbfdfffff, 0xfffffff9, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff4782c, 0xbabc8153, 0xbfdfffff, 0xfffffff9, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff30b6d, 0x796a4da4, 0xbfdfffff, 0xfffffff9, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe41, 0xbfdfffff, 0xfffffff9, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbff07c6c, 0x6947a6a4, 0xbfdfffff, 0xfffffff9, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfeeb8e5, 0x7b0c857c, 0xbfdfffff, 0xfffffff9, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfecac7c, 0x57846f97, 0xbfdfffff, 0xfffffff9, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfead0be, 0x0082566c, 0xbfdfffff, 0xfffffff9, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfdfffff, 0xfffffff9, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfe79c2e, 0x5436d65d, 0xbfdfffff, 0xfffffff9, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a84, 0xbfdfffff, 0xfffffff9, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe4fb75, 0x64dacde6, 0xbfdfffff, 0xfffffff9, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe3d915, 0x7335065a, 0xbfdfffff, 0xfffffff9, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd606638f, 0xbfdfffff, 0xfffffff9, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe1e00b, 0xabdefead, 0xbfdfffff, 0xfffffff9, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe103e2, 0x30ebeced, 0xbfdfffff, 0xfffffff9, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe03a26, 0xa486e62b, 0xbfdfffff, 0xfffffff9, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfdf01af, 0xb73642b2, 0xbfdfffff, 0xfffffff9, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc005bffa, 0x17065de2, 0xbfdccccc, 0xccccccc6, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc00597ff, 0xd521f2aa, 0xbfdccccc, 0xccccccc6, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfdccccc, 0xccccccc6, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0053ccf, 0xe79b8f8f, 0xbfdccccc, 0xccccccc6, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc005089b, 0xaf0d60e5, 0xbfdccccc, 0xccccccc6, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfdccccc, 0xccccccc6, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0048fe1, 0xf1cd42a1, 0xbfdccccc, 0xccccccc6, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc00449d3, 0x87509221, 0xbfdccccc, 0xccccccc6, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfdccccc, 0xccccccc6, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc003a59b, 0x934a3835, 0xbfdccccc, 0xccccccc6, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc003452d, 0x2a42ac29, 0xbfdccccc, 0xccccccc6, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfdccccc, 0xccccccc6, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0026127, 0x862b05f6, 0xbfdccccc, 0xccccccc6, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc001dace, 0xaa5dc056, 0xbfdccccc, 0xccccccc6, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfdccccc, 0xccccccc6, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc0009f87, 0x5343d018, 0xbfdccccc, 0xccccccc6, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xbfffd307, 0x52e3200b, 0xbfdccccc, 0xccccccc6, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4cf, 0xbfdccccc, 0xccccccc6, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffca1a6, 0x56770bcf, 0xbfdccccc, 0xccccccc6, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffae73b, 0xd5e44e59, 0xbfdccccc, 0xccccccc6, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfdccccc, 0xccccccc6, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff75cba, 0xd2a40bd2, 0xbfdccccc, 0xccccccc6, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff5a250, 0x52114e5c, 0xbfdccccc, 0xccccccc6, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a855c, 0xbfdccccc, 0xccccccc6, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff270ef, 0x55a53a20, 0xbfdccccc, 0xccccccc6, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff104e8, 0x0200b9fc, 0xbfdccccc, 0xccccccc6, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f693, 0xbfdccccc, 0xccccccc6, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfed1cb2, 0xa799b2ff, 0xbfdccccc, 0xccccccc6, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfeb034f, 0x38649c81, 0xbfdccccc, 0xccccccc6, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d12, 0xbfdccccc, 0xccccccc6, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfe77338, 0xa80603b8, 0xbfdccccc, 0xccccccc6, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfe5f17f, 0x03e7d388, 0xbfdccccc, 0xccccccc6, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe4978f, 0xa3269edb, 0xbfdccccc, 0xccccccc6, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe3609f, 0x33ce6bd8, 0xbfdccccc, 0xccccccc6, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe24865, 0x89dba9d9, 0xbfdccccc, 0xccccccc6, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cdb, 0xbfdccccc, 0xccccccc6, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfe0657e, 0x94db30ca, 0xbfdccccc, 0xccccccc6, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfdf295b, 0x6544ec43, 0xbfdccccc, 0xccccccc6, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb44, 0xbfdccccc, 0xccccccc6, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfdc4fdb, 0xf911d369, 0xbfdccccc, 0xccccccc6, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfd99999, 0x99999993, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc005f1ce, 0xcb0d4d6e, 0xbfd99999, 0x99999993, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc005c975, 0x54f4b39f, 0xbfd99999, 0x99999993, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0059d2f, 0x241f85a8, 0xbfd99999, 0x99999993, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd99999, 0x99999993, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc005368c, 0x951e9cfd, 0xbfd99999, 0x99999993, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc004fac5, 0x404fe6dc, 0xbfd99999, 0x99999993, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc004b831, 0x3ddf1778, 0xbfd99999, 0x99999993, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfd99999, 0x99999993, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0041a34, 0xfb542c00, 0xbfd99999, 0x99999993, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfd99999, 0x99999993, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc00351d1, 0x783b3dae, 0xbfd99999, 0x99999993, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd99999, 0x99999993, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc0025127, 0x9b802819, 0xbfd99999, 0x99999993, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfd99999, 0x99999993, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc0010900, 0x9519d639, 0xbfd99999, 0x99999993, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfd99999, 0x99999993, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbffedf81, 0xa4bd64d3, 0xbfd99999, 0x99999993, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffd0d6a, 0x1369bd32, 0xbfd99999, 0x99999993, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffb1f56, 0xfdeef00d, 0xbfd99999, 0x99999993, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d15, 0xbfd99999, 0x99999993, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff7249f, 0xaa996a1d, 0xbfd99999, 0x99999993, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff5368c, 0x951e9cf8, 0xbfd99999, 0x99999993, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff36475, 0x03caf558, 0xbfd99999, 0x99999993, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe40, 0xbfd99999, 0x99999993, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbff031f5, 0x7e54adba, 0xbfd99999, 0x99999993, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfedac67, 0x0561bb47, 0xbfd99999, 0x99999993, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfeb434e, 0xe31013f5, 0xbfd99999, 0x99999993, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d11, 0xbfd99999, 0x99999993, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe740a7, 0x7023bda2, 0xbfd99999, 0x99999993, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfe5977a, 0x5103ea8b, 0xbfd99999, 0x99999993, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfe41f19, 0x63c00458, 0xbfd99999, 0x99999993, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd606638f, 0xbfd99999, 0x99999993, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe1a728, 0x5994567c, 0xbfd99999, 0x99999993, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe09cd8, 0x4fd118ed, 0xbfd99999, 0x99999993, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfdf5b75, 0xf92c80d1, 0xbfd99999, 0x99999993, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb43, 0xbfd99999, 0x99999993, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfdc2661, 0x81253b7c, 0xbfd99999, 0x99999993, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfdac42f, 0xfa7bcbc4, 0xbfd99999, 0x99999993, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfd98164, 0x49b6fd49, 0xbfd99999, 0x99999993, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0067078, 0xc2eef45e, 0xbfd66666, 0x66666660, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0064f0e, 0xb4680650, 0xbfd66666, 0x66666660, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0062a65, 0x7a259a4e, 0xbfd66666, 0x66666660, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0060204, 0xbe520694, 0xbfd66666, 0x66666660, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc005d55d, 0x7bcaa899, 0xbfd66666, 0x66666660, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc005a3c4, 0xf2e49eb6, 0xbfd66666, 0x66666660, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd66666, 0x66666660, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0052e63, 0xcbf6f7b3, 0xbfd66666, 0x66666660, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc004e87c, 0x3b956ba8, 0xbfd66666, 0x66666660, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0049952, 0x004c912f, 0xbfd66666, 0x66666660, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0043f37, 0x08e537ed, 0xbfd66666, 0x66666660, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc003d82a, 0x5408834e, 0xbfd66666, 0x66666660, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc00361d1, 0x62e61b8c, 0xbfd66666, 0x66666660, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd66666, 0x66666660, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0023c41, 0xea611604, 0xbfd66666, 0x66666660, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc0018743, 0x06ef5824, 0xbfd66666, 0x66666660, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc000b833, 0xbe165cc8, 0xbfd66666, 0x66666660, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xbfff9c6b, 0x238c6433, 0xbfd66666, 0x66666660, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffd95e5, 0xac22d08a, 0xbfd66666, 0x66666660, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffb6731, 0x2cd2f431, 0xbfd66666, 0x66666660, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d14, 0xbfd66666, 0x66666660, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff6dcc5, 0x7bb565f8, 0xbfd66666, 0x66666660, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff4ae10, 0xfc6589a0, 0xbfd66666, 0x66666660, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff2a78b, 0x84fbf5f7, 0xbfd66666, 0x66666660, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbff0d38f, 0x2c5ba099, 0xbfd66666, 0x66666660, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfee6ae1, 0x355353c6, 0xbfd66666, 0x66666660, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfeb96e5, 0xa78c5c48, 0xbfd66666, 0x66666660, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d10, 0xbfd66666, 0x66666660, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfe700a7, 0xc578462c, 0xbfd66666, 0x66666660, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe52744, 0x00eea723, 0xbfd66666, 0x66666660, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfe38b11, 0x2d7bd4a6, 0xbfd66666, 0x66666660, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfe222a5, 0x4fde6fa1, 0xbfd66666, 0x66666660, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfe0e5fc, 0x62bb05bd, 0xbfd66666, 0x66666660, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfdf9cbc, 0x4269ab1e, 0xbfd66666, 0x66666660, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb43, 0xbfd66666, 0x66666660, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfdbf1b3, 0x0afc730f, 0xbfd66666, 0x66666660, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfda64ee, 0xc3cc23f1, 0xbfd66666, 0x66666660, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfd8ffb4, 0xaf91341a, 0xbfd66666, 0x66666660, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfd7bcae, 0xd0f4964a, 0xbfd66666, 0x66666660, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfd69764, 0xfee13639, 0xbfd66666, 0x66666660, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc006cd14, 0x07805738, 0xbfd33333, 0x3333332d, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc006af8a, 0xb51a6805, 0xbfd33333, 0x3333332d, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfd33333, 0x3333332d, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0066b1c, 0x486d572a, 0xbfd33333, 0x3333332d, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0064338, 0x2c07913b, 0xbfd33333, 0x3333332d, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfd33333, 0x3333332d, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc005e4c3, 0x6ca0118b, 0xbfd33333, 0x3333332d, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc005ac69, 0x1f0f489b, 0xbfd33333, 0x3333332d, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfd33333, 0x3333332d, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc0052351, 0xd5cc5410, 0xbfd33333, 0x3333332d, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc004cf33, 0xdec5e9e0, 0xbfd33333, 0x3333332d, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfd33333, 0x3333332d, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfd33333, 0x3333332d, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc00376b7, 0x14052da1, 0xbfd33333, 0x3333332d, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfd33333, 0x3333332d, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc0021fd0, 0x9b1e712e, 0xbfd33333, 0x3333332d, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af71, 0xbfd33333, 0x3333332d, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df6, 0xbfd33333, 0x3333332d, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4ce, 0xbfd33333, 0x3333332d, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffbc66e, 0x44cbc071, 0xbfd33333, 0x3333332d, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d13, 0xbfd33333, 0x3333332d, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff67d88, 0x63bc99b7, 0xbfd33333, 0x3333332d, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a855a, 0xbfd33333, 0x3333332d, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe3e, 0xbfd33333, 0x3333332d, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f68f, 0xbfd33333, 0x3333332d, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfec08aa, 0xe496ef9b, 0xbfd33333, 0x3333332d, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d0e, 0xbfd33333, 0x3333332d, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe6ad11, 0x00fbfdd6, 0xbfd33333, 0x3333332d, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfe4978f, 0xa3269ed9, 0xbfd33333, 0x3333332d, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd606638e, 0xbfd33333, 0x3333332d, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cd9, 0xbfd33333, 0x3333332d, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfdff54b, 0xf3bec834, 0xbfd33333, 0x3333332d, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb42, 0xbfd33333, 0x3333332d, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfdbac91, 0xa9a723e0, 0xbfd33333, 0x3333332d, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfd9e9bf, 0x3d20dc65, 0xbfd33333, 0x3333332d, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfd85a37, 0x6b677db4, 0xbfd33333, 0x3333332d, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfd6f619, 0x41e4dee5, 0xbfd33333, 0x3333332d, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfd5b6f8, 0x5eb6af69, 0xbfd33333, 0x3333332d, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269ed7, 0xbfd33333, 0x3333332d, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfd39384, 0xf94e2896, 0xbfd33333, 0x3333332d, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfcfffff, 0xfffffff4, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc00712fb, 0x97e1e344, 0xbfcfffff, 0xfffffff4, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc006f715, 0x259aea15, 0xbfcfffff, 0xfffffff4, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc006d825, 0xfdaafadb, 0xbfcfffff, 0xfffffff4, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc006b5ac, 0x6d632fa0, 0xbfcfffff, 0xfffffff4, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfcfffff, 0xfffffff4, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0066377, 0xfe555c41, 0xbfcfffff, 0xfffffff4, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc0063202, 0x7e829b4d, 0xbfcfffff, 0xfffffff4, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc005f973, 0x15254857, 0xbfcfffff, 0xfffffff4, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc005b83f, 0xa76fbdb1, 0xbfcfffff, 0xfffffff4, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfcfffff, 0xfffffff4, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0051371, 0xab22738c, 0xbfcfffff, 0xfffffff4, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc004a9f8, 0x694c6d6c, 0xbfcfffff, 0xfffffff4, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc0042bb5, 0xf776eb80, 0xbfcfffff, 0xfffffff4, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0039328, 0x6347d276, 0xbfcfffff, 0xfffffff4, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfcfffff, 0xfffffff4, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc001f6dc, 0x3e631130, 0xbfcfffff, 0xfffffff4, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc000e3c5, 0x1fa059c4, 0xbfcfffff, 0xfffffff4, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xbfff3889, 0x2f1e0c86, 0xbfcfffff, 0xfffffff4, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffc4a83, 0x936311d6, 0xbfcfffff, 0xfffffff4, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d13, 0xbfcfffff, 0xfffffff4, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff5f973, 0x15254850, 0xbfcfffff, 0xfffffff4, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff30b6d, 0x796a4da1, 0xbfcfffff, 0xfffffff4, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbff07c6c, 0x6947a6a1, 0xbfcfffff, 0xfffffff4, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfecac7c, 0x57846f91, 0xbfcfffff, 0xfffffff4, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d0c, 0xbfcfffff, 0xfffffff4, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfe63b4b, 0xc3f16a80, 0xbfcfffff, 0xfffffff4, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe3d915, 0x73350658, 0xbfcfffff, 0xfffffff4, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfe1e00b, 0xabdefeab, 0xbfcfffff, 0xfffffff4, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfe03a26, 0xa486e62a, 0xbfcfffff, 0xfffffff4, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb41, 0xbfcfffff, 0xfffffff4, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfdb4ddd, 0x66a37b33, 0xbfcfffff, 0xfffffff4, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfd94441, 0xf8f725fe, 0xbfcfffff, 0xfffffff4, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfd77fc6, 0xae0c8e55, 0xbfcfffff, 0xfffffff4, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfd5f41a, 0xaf7686b1, 0xbfcfffff, 0xfffffff4, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269ed6, 0xbfcfffff, 0xfffffff4, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfd36277, 0x3707ebc1, 0xbfcfffff, 0xfffffff4, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfd24eaa, 0xb4c991e4, 0xbfcfffff, 0xfffffff4, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfd15731, 0x754a1817, 0xbfcfffff, 0xfffffff4, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfd077fd, 0xe3124ea1, 0xbfcfffff, 0xfffffff4, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc0078db7, 0x34b4bab8, 0xbfc99999, 0x9999998e, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0077907, 0x8c2f83ec, 0xbfc99999, 0x9999998e, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0076225, 0xd32abdbd, 0xbfc99999, 0x9999998e, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc00748b5, 0x43f409e0, 0xbfc99999, 0x9999998e, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfc99999, 0x9999998e, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0070c44, 0x9f55a998, 0xbfc99999, 0x9999998e, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc006e806, 0x2854db5f, 0xbfc99999, 0x9999998e, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc006bea7, 0xebdbbf5d, 0xbfc99999, 0x9999998e, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfc99999, 0x9999998e, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc00657b2, 0xe092b036, 0xbfc99999, 0x9999998e, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc00616b4, 0x66d73d61, 0xbfc99999, 0x9999998e, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc005c975, 0x54f4b39f, 0xbfc99999, 0x9999998e, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfc99999, 0x9999998e, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc004fac5, 0x404fe6dc, 0xbfc99999, 0x9999998e, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29433, 0xbfc99999, 0x9999998e, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc003bc1c, 0xc0033274, 0xbfc99999, 0x9999998e, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfc99999, 0x9999998e, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc001b6e1, 0x92ebbe44, 0xbfc99999, 0x9999998e, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df5, 0xbfc99999, 0x9999998e, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffd0d6a, 0x1369bd2f, 0xbfc99999, 0x9999998e, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d11, 0xbfc99999, 0x9999998e, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff5368c, 0x951e9cf4, 0xbfc99999, 0x9999998e, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe3c, 0xbfc99999, 0x9999998e, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbfedac67, 0x0561bb3f, 0xbfc99999, 0x9999998e, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d09, 0xbfc99999, 0x9999998e, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfe5977a, 0x5103ea85, 0xbfc99999, 0x9999998e, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd606638a, 0xbfc99999, 0x9999998e, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfe09cd8, 0x4fd118e9, 0xbfc99999, 0x9999998e, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb3f, 0xbfc99999, 0x9999998e, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfdac42f, 0xfa7bcbbf, 0xbfc99999, 0x9999998e, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfd85a37, 0x6b677db1, 0xbfc99999, 0x9999998e, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfd65243, 0x9d8be709, 0xbfc99999, 0x9999998e, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269ed4, 0xbfc99999, 0x9999998e, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfd31a9b, 0x43436dd5, 0xbfc99999, 0x9999998e, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfd1cfa9, 0x5f7a8dc3, 0xbfc99999, 0x9999998e, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfd0adb5, 0xa7741bf9, 0xbfc99999, 0x9999998e, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfcf5b75, 0xf92c80ca, 0xbfc99999, 0x9999998e, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfcd9461, 0x05023378, 0xbfc99999, 0x9999998e, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfcbfd58, 0x1196f5af, 0xbfc99999, 0x9999998e, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfca8f3c, 0x814a92c5, 0xbfc99999, 0x9999998e, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc007f10e, 0x1dc6b049, 0xbfc33333, 0x33333328, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc007e142, 0xd82322eb, 0xbfc33333, 0x33333328, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc007cfc1, 0xdc00636b, 0xbfc33333, 0x33333328, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc007bc40, 0xca9216fe, 0xbfc33333, 0x33333328, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc007a663, 0x9f874769, 0xbfc33333, 0x33333328, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0078db7, 0x34b4bab8, 0xbfc33333, 0x33333328, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc00771a9, 0xa0af69de, 0xbfc33333, 0x33333328, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc007517f, 0x6a2ae180, 0xbfc33333, 0x33333328, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc0072c43, 0xf4b1650b, 0xbfc33333, 0x33333328, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc00700b2, 0x93276810, 0xbfc33333, 0x33333328, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc006cd14, 0x07805738, 0xbfc33333, 0x33333328, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593d, 0xbfc33333, 0x33333328, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0064338, 0x2c07913b, 0xbfc33333, 0x33333328, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc005e4c3, 0x6ca0118b, 0xbfc33333, 0x33333328, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5af, 0xbfc33333, 0x33333328, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc004cf33, 0xdec5e9e1, 0xbfc33333, 0x33333328, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc003fc17, 0x6b7a8560, 0xbfc33333, 0x33333328, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfc33333, 0x33333328, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xc0014538, 0x5fa3af70, 0xbfc33333, 0x33333328, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xbffe47df, 0x3d0dd4cb, 0xbfc33333, 0x33333328, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d0f, 0xbfc33333, 0x33333328, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff3fc17, 0x6b7a8555, 0xbfc33333, 0x33333328, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbfef730b, 0xd281f685, 0xbfc33333, 0x33333328, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442d05, 0xbfc33333, 0x33333328, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfe4978f, 0xa3269ed1, 0xbfc33333, 0x33333328, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfe14b1d, 0xd5f90cd4, 0xbfc33333, 0x33333328, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb39, 0xbfc33333, 0x33333328, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfd9e9bf, 0x3d20dc5e, 0xbfc33333, 0x33333328, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfd6f619, 0x41e4dee0, 0xbfc33333, 0x33333328, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269ed2, 0xbfc33333, 0x33333328, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfd2a73a, 0x661eaef8, 0xbfc33333, 0x33333328, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfd10a46, 0x08e6283d, 0xbfc33333, 0x33333328, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfcf5b75, 0xf92c80c6, 0xbfc33333, 0x33333328, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfcd07be, 0xa194b97b, 0xbfc33333, 0x33333328, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfcb051b, 0x394c3396, 0xbfc33333, 0x33333328, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfc94441, 0xf8f725f8, 0xbfc33333, 0x33333328, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfc7b97b, 0x4bce5af0, 0xbfc33333, 0x33333328, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfc65ba8, 0x9b21619a, 0xbfc33333, 0x33333328, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfc52397, 0x843c9acd, 0xbfc33333, 0x33333328, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfc40b87, 0xc210a2d5, 0xbfc33333, 0x33333328, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc00855dc, 0x402d16b7, 0xbfb99999, 0x99999983, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0084b31, 0x9bd4918d, 0xbfb99999, 0x99999983, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc0083f5b, 0x13741c78, 0xbfb99999, 0x99999983, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc0083224, 0x9ea440f7, 0xbfb99999, 0x99999983, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc008234d, 0x7f6ecb9e, 0xbfb99999, 0x99999983, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc0081284, 0x26c22f58, 0xbfb99999, 0x99999983, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc007ff60, 0x67fcc98b, 0xbfb99999, 0x99999983, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc007e95b, 0x1e3a76c5, 0xbfb99999, 0x99999983, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc007cfc1, 0xdc00636b, 0xbfb99999, 0x99999983, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc007b1a4, 0x4c26bccb, 0xbfb99999, 0x99999983, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc0078db7, 0x34b4bab9, 0xbfb99999, 0x99999983, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0076225, 0xd32abdbd, 0xbfb99999, 0x99999983, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc0072c43, 0xf4b1650c, 0xbfb99999, 0x99999983, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc006e806, 0x2854db60, 0xbfb99999, 0x99999983, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593e, 0xbfb99999, 0x99999983, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc00616b4, 0x66d73d62, 0xbfb99999, 0x99999983, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5b0, 0xbfb99999, 0x99999983, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc0046dc0, 0x9ec29434, 0xbfb99999, 0x99999983, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfb99999, 0x99999983, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xc000468a, 0x8ace4df4, 0xbfb99999, 0x99999983, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442d0a, 0xbfb99999, 0x99999983, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbff1b6e1, 0x92ebbe33, 0xbfb99999, 0x99999983, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442cfc, 0xbfb99999, 0x99999983, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbfe2d0ea, 0xd606637f, 0xbfb99999, 0x99999983, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb2c, 0xbfb99999, 0x99999983, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfd85a37, 0x6b677da4, 0xbfb99999, 0x99999983, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269eca, 0xbfb99999, 0x99999983, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfd1cfa9, 0x5f7a8dbc, 0xbfb99999, 0x99999983, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfcf5b75, 0xf92c80bc, 0xbfb99999, 0x99999983, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfcbfd58, 0x1196f5a4, 0xbfb99999, 0x99999983, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfc94441, 0xf8f725f1, 0xbfb99999, 0x99999983, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfc70570, 0x81d704ce, 0xbfb99999, 0x99999983, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfc52397, 0x843c9ac7, 0xbfb99999, 0x99999983, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfc38a03, 0x609b6530, 0xbfb99999, 0x99999983, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfc229ae, 0xc47638c9, 0xbfb99999, 0x99999983, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfc0f772, 0xd81fdbf8, 0xbfb99999, 0x99999983, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfbfd5ba, 0x9aac2f4b, 0xbfb99999, 0x99999983, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfbdfad6, 0xb3fd8429, 0xbfb99999, 0x99999983, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfbc5408, 0x1a021411, 0xbfb99999, 0x99999983, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfbad937, 0x0df3715e, 0xbfb99999, 0x99999983, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0xc008bbaa, 0xbde5e29c, 0xbfa99999, 0x9999996c, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0xc008b64a, 0xa934a2c3, 0xbfa99999, 0x9999996c, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0xc008b052, 0x20fc1e46, 0xbfa99999, 0x9999996c, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc008a9a6, 0x5b3c113d, 0xbfa99999, 0x9999996c, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0xc008a225, 0xe5677921, 0xbfa99999, 0x9999996c, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0xc00899a6, 0x70913360, 0xbfa99999, 0x9999996c, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0xc0088ff1, 0xae5a77dd, 0xbfa99999, 0x9999996c, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0xc00884c0, 0xbf72214b, 0xbfa99999, 0x9999996c, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0xc00877b5, 0x6104e567, 0xbfa99999, 0x9999996c, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0xc008684f, 0x702f7c76, 0xbfa99999, 0x9999996c, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0xc00855dc, 0x402d16b7, 0xbfa99999, 0x9999996c, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0xc0083f5b, 0x13741c78, 0xbfa99999, 0x9999996c, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0xc008234d, 0x7f6ecb9e, 0xbfa99999, 0x9999996c, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0xc007ff60, 0x67fcc98c, 0xbfa99999, 0x9999996c, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0xc007cfc1, 0xdc00636c, 0xbfa99999, 0x9999996c, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0xc0078db7, 0x34b4baba, 0xbfa99999, 0x9999996c, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0xc0072c43, 0xf4b1650d, 0xbfa99999, 0x9999996c, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0xc0068f09, 0x5fdf593f, 0xbfa99999, 0x9999996c, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0xc0056c6e, 0x7397f5b1, 0xbfa99999, 0x9999996c, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0xc002d97c, 0x7f3321d2, 0xbfa99999, 0x9999996c, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0xbff921fb, 0x54442cfc, 0xbfa99999, 0x9999996c, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0xbfe921fb, 0x54442cdf, 0xbfa99999, 0x9999996c, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0xbfddac67, 0x0561bb0b, 0xbfa99999, 0x9999996c, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0xbfd4978f, 0xa3269eb3, 0xbfa99999, 0x9999996c, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0xbfcf5b75, 0xf92c809a, 0xbfa99999, 0x9999996c, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0xbfc94441, 0xf8f725d6, 0xbfa99999, 0x9999996c, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0xbfc52397, 0x843c9ab2, 0xbfa99999, 0x9999996c, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0xbfc229ae, 0xc47638b8, 0xbfa99999, 0x9999996c, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0xbfbfd5ba, 0x9aac2f2f, 0xbfa99999, 0x9999996c, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfbc5408, 0x1a0213f9, 0xbfa99999, 0x9999996c, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0xbfb983e2, 0x82e2cc1a, 0xbfa99999, 0x9999996c, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0xbfb7357c, 0x82961441, 0xbfa99999, 0x9999996c, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfb548be, 0x67e8f615, 0xbfa99999, 0x9999996c, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0xbfb3a752, 0x9a4179a3, 0xbfa99999, 0x9999996c, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfb24134, 0xbd36a760, 0xbfa99999, 0x9999996c, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfb10a9c, 0x765f3702, 0xbfa99999, 0x9999996c, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0xbfaff55b, 0xb72cfdaa, 0xbfa99999, 0x9999996c, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0xbfae153e, 0x4206f6b9, 0xbfa99999, 0x9999996c, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0xbfac6a4c, 0xd203b483, 0xbfa99999, 0x9999996c, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0xbfaaec2a, 0xc3e29569, 0xbfa99999, 0x9999996c, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d17, 0x3cb70000, 0x00000000, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d16, 0x3cb70000, 0x00000000, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d15, 0x3cb70000, 0x00000000, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d15, 0x3cb70000, 0x00000000, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d13, 0x3cb70000, 0x00000000, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d11, 0x3cb70000, 0x00000000, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x400921fb, 0x54442d0a, 0x3cb70000, 0x00000000, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3cb70000, 0x00000000, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3cfcbfff, 0xffffffcc, 0x3cb70000, 0x00000000, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3cecbfff, 0xffffffe6, 0x3cb70000, 0x00000000, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ce32aaa, 0xaaaaaa9f, 0x3cb70000, 0x00000000, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3cdcbfff, 0xfffffff2, 0x3cb70000, 0x00000000, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3cd6ffff, 0xfffffff7, 0x3cb70000, 0x00000000, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3cd32aaa, 0xaaaaaaa5, 0x3cb70000, 0x00000000, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3cd06db6, 0xdb6db6d7, 0x3cb70000, 0x00000000, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3cccbfff, 0xfffffffa, 0x3cb70000, 0x00000000, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3cc98e38, 0xe38e38df, 0x3cb70000, 0x00000000, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3cc6ffff, 0xfffffffc, 0x3cb70000, 0x00000000, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3cc4e8ba, 0x2e8ba2e5, 0x3cb70000, 0x00000000, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3cc32aaa, 0xaaaaaaa7, 0x3cb70000, 0x00000000, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3cc1b13b, 0x13b13b10, 0x3cb70000, 0x00000000, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3cc06db6, 0xdb6db6d8, 0x3cb70000, 0x00000000, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3cbeaaaa, 0xaaaaaaa4, 0x3cb70000, 0x00000000, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3cbcbfff, 0xfffffffa, 0x3cb70000, 0x00000000, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3cbb0f0f, 0x0f0f0f09, 0x3cb70000, 0x00000000, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3cb98e38, 0xe38e38de, 0x3cb70000, 0x00000000, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3cb835e5, 0x0d794359, 0x3cb70000, 0x00000000, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4008bbaa, 0xbde5e29b, 0x3fa99999, 0x999999c8, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4008b64a, 0xa934a2c1, 0x3fa99999, 0x999999c8, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4008b052, 0x20fc1e45, 0x3fa99999, 0x999999c8, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4008a9a6, 0x5b3c113c, 0x3fa99999, 0x999999c8, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4008a225, 0xe5677920, 0x3fa99999, 0x999999c8, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x400899a6, 0x7091335e, 0x3fa99999, 0x999999c8, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40088ff1, 0xae5a77db, 0x3fa99999, 0x999999c8, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x400884c0, 0xbf722149, 0x3fa99999, 0x999999c8, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x400877b5, 0x6104e565, 0x3fa99999, 0x999999c8, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4008684f, 0x702f7c73, 0x3fa99999, 0x999999c8, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x400855dc, 0x402d16b4, 0x3fa99999, 0x999999c8, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40083f5b, 0x13741c75, 0x3fa99999, 0x999999c8, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4008234d, 0x7f6ecb9b, 0x3fa99999, 0x999999c8, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4007ff60, 0x67fcc988, 0x3fa99999, 0x999999c8, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4007cfc1, 0xdc006368, 0x3fa99999, 0x999999c8, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x40078db7, 0x34b4bab4, 0x3fa99999, 0x999999c8, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x40072c43, 0xf4b16506, 0x3fa99999, 0x999999c8, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf5936, 0x3fa99999, 0x999999c8, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5a6, 0x3fa99999, 0x999999c8, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321c4, 0x3fa99999, 0x999999c8, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442cfc, 0x3fa99999, 0x999999c8, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fa99999, 0x999999c8, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb66, 0x3fa99999, 0x999999c8, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269ef8, 0x3fa99999, 0x999999c8, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fcf5b75, 0xf92c8105, 0x3fa99999, 0x999999c8, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fc94441, 0xf8f7262e, 0x3fa99999, 0x999999c8, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fc52397, 0x843c9afd, 0x3fa99999, 0x999999c8, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fc229ae, 0xc47638f9, 0x3fa99999, 0x999999c8, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fbfd5ba, 0x9aac2fa1, 0x3fa99999, 0x999999c8, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fbc5408, 0x1a02145e, 0x3fa99999, 0x999999c8, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fb983e2, 0x82e2cc75, 0x3fa99999, 0x999999c8, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fb7357c, 0x82961494, 0x3fa99999, 0x999999c8, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fb548be, 0x67e8f661, 0x3fa99999, 0x999999c8, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fb3a752, 0x9a4179e9, 0x3fa99999, 0x999999c8, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fb24134, 0xbd36a7a2, 0x3fa99999, 0x999999c8, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fb10a9c, 0x765f373f, 0x3fa99999, 0x999999c8, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3faff55b, 0xb72cfe1e, 0x3fa99999, 0x999999c8, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fae153e, 0x4206f724, 0x3fa99999, 0x999999c8, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fac6a4c, 0xd203b4e9, 0x3fa99999, 0x999999c8, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3faaec2a, 0xc3e295c9, 0x3fa99999, 0x999999c8, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x400855dc, 0x402d16b5, 0x3fb99999, 0x999999b1, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40084b31, 0x9bd4918c, 0x3fb99999, 0x999999b1, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40083f5b, 0x13741c76, 0x3fb99999, 0x999999b1, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40083224, 0x9ea440f5, 0x3fb99999, 0x999999b1, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4008234d, 0x7f6ecb9c, 0x3fb99999, 0x999999b1, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40081284, 0x26c22f56, 0x3fb99999, 0x999999b1, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4007ff60, 0x67fcc989, 0x3fb99999, 0x999999b1, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4007e95b, 0x1e3a76c3, 0x3fb99999, 0x999999b1, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4007cfc1, 0xdc006369, 0x3fb99999, 0x999999b1, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4007b1a4, 0x4c26bcc8, 0x3fb99999, 0x999999b1, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40078db7, 0x34b4bab6, 0x3fb99999, 0x999999b1, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40076225, 0xd32abdba, 0x3fb99999, 0x999999b1, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40072c43, 0xf4b16508, 0x3fb99999, 0x999999b1, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4006e806, 0x2854db5c, 0x3fb99999, 0x999999b1, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf5939, 0x3fb99999, 0x999999b1, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x400616b4, 0x66d73d5d, 0x3fb99999, 0x999999b1, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5aa, 0x3fb99999, 0x999999b1, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec2942e, 0x3fb99999, 0x999999b1, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321cb, 0x3fb99999, 0x999999b1, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4dee, 0x3fb99999, 0x999999b1, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d0a, 0x3fb99999, 0x999999b1, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe3f, 0x3fb99999, 0x999999b1, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fb99999, 0x999999b1, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd606639a, 0x3fb99999, 0x999999b1, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb5b, 0x3fb99999, 0x999999b1, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fd85a37, 0x6b677dcb, 0x3fb99999, 0x999999b1, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269eed, 0x3fb99999, 0x999999b1, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fd1cfa9, 0x5f7a8dd9, 0x3fb99999, 0x999999b1, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fcf5b75, 0xf92c80f2, 0x3fb99999, 0x999999b1, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fcbfd58, 0x1196f5d5, 0x3fb99999, 0x999999b1, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fc94441, 0xf8f7261d, 0x3fb99999, 0x999999b1, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fc70570, 0x81d704f6, 0x3fb99999, 0x999999b1, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fc52397, 0x843c9aed, 0x3fb99999, 0x999999b1, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fc38a03, 0x609b6553, 0x3fb99999, 0x999999b1, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fc229ae, 0xc47638e9, 0x3fb99999, 0x999999b1, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fc0f772, 0xd81fdc17, 0x3fb99999, 0x999999b1, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fbfd5ba, 0x9aac2f83, 0x3fb99999, 0x999999b1, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fbdfad6, 0xb3fd845e, 0x3fb99999, 0x999999b1, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fbc5408, 0x1a021443, 0x3fb99999, 0x999999b1, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fbad937, 0x0df3718e, 0x3fb99999, 0x999999b1, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4007f10e, 0x1dc6b047, 0x3fc33333, 0x3333333f, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4007e142, 0xd82322e9, 0x3fc33333, 0x3333333f, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4007cfc1, 0xdc00636a, 0x3fc33333, 0x3333333f, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4007bc40, 0xca9216fd, 0x3fc33333, 0x3333333f, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4007a663, 0x9f874767, 0x3fc33333, 0x3333333f, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40078db7, 0x34b4bab6, 0x3fc33333, 0x3333333f, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x400771a9, 0xa0af69dc, 0x3fc33333, 0x3333333f, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4007517f, 0x6a2ae17e, 0x3fc33333, 0x3333333f, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40072c43, 0xf4b16509, 0x3fc33333, 0x3333333f, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x400700b2, 0x9327680d, 0x3fc33333, 0x3333333f, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4006cd14, 0x07805736, 0x3fc33333, 0x3333333f, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf593a, 0x3fc33333, 0x3333333f, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40064338, 0x2c079138, 0x3fc33333, 0x3333333f, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4005e4c3, 0x6ca01188, 0x3fc33333, 0x3333333f, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ab, 0x3fc33333, 0x3333333f, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x4004cf33, 0xdec5e9dc, 0x3fc33333, 0x3333333f, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x4003fc17, 0x6b7a855c, 0x3fc33333, 0x3333333f, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321ce, 0x3fc33333, 0x3333333f, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af6c, 0x3fc33333, 0x3333333f, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4c5, 0x3fc33333, 0x3333333f, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d0f, 0x3fc33333, 0x3333333f, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855a, 0x3fc33333, 0x3333333f, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f697, 0x3fc33333, 0x3333333f, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fc33333, 0x3333333f, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fe4978f, 0xa3269ee3, 0x3fc33333, 0x3333333f, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce4, 0x3fc33333, 0x3333333f, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb57, 0x3fc33333, 0x3333333f, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fd9e9bf, 0x3d20dc79, 0x3fc33333, 0x3333333f, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fd6f619, 0x41e4def9, 0x3fc33333, 0x3333333f, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269eea, 0x3fc33333, 0x3333333f, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fd2a73a, 0x661eaf0d, 0x3fc33333, 0x3333333f, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fd10a46, 0x08e62851, 0x3fc33333, 0x3333333f, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fcf5b75, 0xf92c80eb, 0x3fc33333, 0x3333333f, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fcd07be, 0xa194b99d, 0x3fc33333, 0x3333333f, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fcb051b, 0x394c33b5, 0x3fc33333, 0x3333333f, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fc94441, 0xf8f72615, 0x3fc33333, 0x3333333f, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fc7b97b, 0x4bce5b0c, 0x3fc33333, 0x3333333f, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fc65ba8, 0x9b2161b4, 0x3fc33333, 0x3333333f, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fc52397, 0x843c9ae6, 0x3fc33333, 0x3333333f, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fc40b87, 0xc210a2ec, 0x3fc33333, 0x3333333f, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40078db7, 0x34b4bab7, 0x3fc99999, 0x999999a6, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40077907, 0x8c2f83ea, 0x3fc99999, 0x999999a6, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40076225, 0xd32abdbb, 0x3fc99999, 0x999999a6, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x400748b5, 0x43f409df, 0x3fc99999, 0x999999a6, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40072c43, 0xf4b16509, 0x3fc99999, 0x999999a6, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40070c44, 0x9f55a997, 0x3fc99999, 0x999999a6, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4006e806, 0x2854db5d, 0x3fc99999, 0x999999a6, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4006bea7, 0xebdbbf5b, 0x3fc99999, 0x999999a6, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fc99999, 0x999999a6, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x400657b2, 0xe092b034, 0x3fc99999, 0x999999a6, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x400616b4, 0x66d73d5e, 0x3fc99999, 0x999999a6, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4005c975, 0x54f4b39c, 0x3fc99999, 0x999999a6, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ac, 0x3fc99999, 0x999999a6, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4004fac5, 0x404fe6d9, 0x3fc99999, 0x999999a6, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec29430, 0x3fc99999, 0x999999a6, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x4003bc1c, 0xc0033270, 0x3fc99999, 0x999999a6, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321ce, 0x3fc99999, 0x999999a6, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x4001b6e1, 0x92ebbe40, 0x3fc99999, 0x999999a6, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df2, 0x3fc99999, 0x999999a6, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd2c, 0x3fc99999, 0x999999a6, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d11, 0x3fc99999, 0x999999a6, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff5368c, 0x951e9cf8, 0x3fc99999, 0x999999a6, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe42, 0x3fc99999, 0x999999a6, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3fedac67, 0x0561bb4e, 0x3fc99999, 0x999999a6, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fc99999, 0x999999a6, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fe5977a, 0x5103ea94, 0x3fc99999, 0x999999a6, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd6066398, 0x3fc99999, 0x999999a6, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe09cd8, 0x4fd118f7, 0x3fc99999, 0x999999a6, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb56, 0x3fc99999, 0x999999a6, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fdac42f, 0xfa7bcbd6, 0x3fc99999, 0x999999a6, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fd85a37, 0x6b677dc6, 0x3fc99999, 0x999999a6, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fd65243, 0x9d8be71c, 0x3fc99999, 0x999999a6, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269ee6, 0x3fc99999, 0x999999a6, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fd31a9b, 0x43436de6, 0x3fc99999, 0x999999a6, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fd1cfa9, 0x5f7a8dd3, 0x3fc99999, 0x999999a6, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fd0adb5, 0xa7741c08, 0x3fc99999, 0x999999a6, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fcf5b75, 0xf92c80e5, 0x3fc99999, 0x999999a6, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fcd9461, 0x05023393, 0x3fc99999, 0x999999a6, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fcbfd58, 0x1196f5c9, 0x3fc99999, 0x999999a6, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fca8f3c, 0x814a92de, 0x3fc99999, 0x999999a6, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40072c43, 0xf4b1650a, 0x3fd00000, 0x00000006, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x400712fb, 0x97e1e342, 0x3fd00000, 0x00000006, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4006f715, 0x259aea13, 0x3fd00000, 0x00000006, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4006d825, 0xfdaafada, 0x3fd00000, 0x00000006, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4006b5ac, 0x6d632f9e, 0x3fd00000, 0x00000006, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fd00000, 0x00000006, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40066377, 0xfe555c40, 0x3fd00000, 0x00000006, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40063202, 0x7e829b4b, 0x3fd00000, 0x00000006, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4005f973, 0x15254855, 0x3fd00000, 0x00000006, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4005b83f, 0xa76fbdae, 0x3fd00000, 0x00000006, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ac, 0x3fd00000, 0x00000006, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40051371, 0xab22738a, 0x3fd00000, 0x00000006, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4004a9f8, 0x694c6d69, 0x3fd00000, 0x00000006, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x40042bb5, 0xf776eb7e, 0x3fd00000, 0x00000006, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40039328, 0x6347d273, 0x3fd00000, 0x00000006, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321cf, 0x3fd00000, 0x00000006, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x4001f6dc, 0x3e63112d, 0x3fd00000, 0x00000006, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x4000e3c5, 0x1fa059c1, 0x3fd00000, 0x00000006, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3fff3889, 0x2f1e0c82, 0x3fd00000, 0x00000006, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffc4a83, 0x936311d4, 0x3fd00000, 0x00000006, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d13, 0x3fd00000, 0x00000006, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff5f973, 0x15254852, 0x3fd00000, 0x00000006, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff30b6d, 0x796a4da5, 0x3fd00000, 0x00000006, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a6, 0x3fd00000, 0x00000006, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fecac7c, 0x57846f9d, 0x3fd00000, 0x00000006, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd00000, 0x00000006, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8c, 0x3fd00000, 0x00000006, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe3d915, 0x73350663, 0x3fd00000, 0x00000006, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fe1e00b, 0xabdefeb6, 0x3fd00000, 0x00000006, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe03a26, 0xa486e634, 0x3fd00000, 0x00000006, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb54, 0x3fd00000, 0x00000006, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fdb4ddd, 0x66a37b45, 0x3fd00000, 0x00000006, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fd94441, 0xf8f7260f, 0x3fd00000, 0x00000006, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fd77fc6, 0xae0c8e66, 0x3fd00000, 0x00000006, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fd5f41a, 0xaf7686c0, 0x3fd00000, 0x00000006, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269ee4, 0x3fd00000, 0x00000006, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fd36277, 0x3707ebcf, 0x3fd00000, 0x00000006, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fd24eaa, 0xb4c991f1, 0x3fd00000, 0x00000006, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fd15731, 0x754a1824, 0x3fd00000, 0x00000006, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fd077fd, 0xe3124ead, 0x3fd00000, 0x00000006, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4006cd14, 0x07805737, 0x3fd33333, 0x33333339, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4006af8a, 0xb51a6804, 0x3fd33333, 0x33333339, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40068f09, 0x5fdf593b, 0x3fd33333, 0x33333339, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40066b1c, 0x486d5729, 0x3fd33333, 0x33333339, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40064338, 0x2c079139, 0x3fd33333, 0x33333339, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x400616b4, 0x66d73d5f, 0x3fd33333, 0x33333339, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4005e4c3, 0x6ca01189, 0x3fd33333, 0x33333339, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4005ac69, 0x1f0f4899, 0x3fd33333, 0x33333339, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ad, 0x3fd33333, 0x33333339, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40052351, 0xd5cc540e, 0x3fd33333, 0x33333339, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4004cf33, 0xdec5e9de, 0x3fd33333, 0x33333339, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec29431, 0x3fd33333, 0x33333339, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4003fc17, 0x6b7a855e, 0x3fd33333, 0x33333339, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x400376b7, 0x14052d9e, 0x3fd33333, 0x33333339, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd33333, 0x33333339, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x40021fd0, 0x9b1e712c, 0x3fd33333, 0x33333339, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af6f, 0x3fd33333, 0x33333339, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fd33333, 0x33333339, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4cb, 0x3fd33333, 0x33333339, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffbc66e, 0x44cbc06f, 0x3fd33333, 0x33333339, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d13, 0x3fd33333, 0x33333339, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff67d88, 0x63bc99b9, 0x3fd33333, 0x33333339, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855d, 0x3fd33333, 0x33333339, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe42, 0x3fd33333, 0x33333339, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f699, 0x3fd33333, 0x33333339, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fec08aa, 0xe496efa5, 0x3fd33333, 0x33333339, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd33333, 0x33333339, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe6ad11, 0x00fbfde0, 0x3fd33333, 0x33333339, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fe4978f, 0xa3269ee2, 0x3fd33333, 0x33333339, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd6066397, 0x3fd33333, 0x33333339, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce2, 0x3fd33333, 0x33333339, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fdff54b, 0xf3bec845, 0x3fd33333, 0x33333339, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb53, 0x3fd33333, 0x33333339, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fdbac91, 0xa9a723ef, 0x3fd33333, 0x33333339, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fd9e9bf, 0x3d20dc73, 0x3fd33333, 0x33333339, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fd85a37, 0x6b677dc2, 0x3fd33333, 0x33333339, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fd6f619, 0x41e4def2, 0x3fd33333, 0x33333339, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fd5b6f8, 0x5eb6af76, 0x3fd33333, 0x33333339, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fd4978f, 0xa3269ee3, 0x3fd33333, 0x33333339, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fd39384, 0xf94e28a1, 0x3fd33333, 0x33333339, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40067078, 0xc2eef45d, 0x3fd66666, 0x6666666c, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40064f0e, 0xb468064f, 0x3fd66666, 0x6666666c, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40062a65, 0x7a259a4d, 0x3fd66666, 0x6666666c, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40060204, 0xbe520693, 0x3fd66666, 0x6666666c, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4005d55d, 0x7bcaa898, 0x3fd66666, 0x6666666c, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4005a3c4, 0xf2e49eb4, 0x3fd66666, 0x6666666c, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ad, 0x3fd66666, 0x6666666c, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40052e63, 0xcbf6f7b2, 0x3fd66666, 0x6666666c, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4004e87c, 0x3b956ba6, 0x3fd66666, 0x6666666c, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40049952, 0x004c912d, 0x3fd66666, 0x6666666c, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40043f37, 0x08e537eb, 0x3fd66666, 0x6666666c, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4003d82a, 0x5408834c, 0x3fd66666, 0x6666666c, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x400361d1, 0x62e61b89, 0x3fd66666, 0x6666666c, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd66666, 0x6666666c, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40023c41, 0xea611602, 0x3fd66666, 0x6666666c, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x40018743, 0x06ef5822, 0x3fd66666, 0x6666666c, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x4000b833, 0xbe165cc7, 0x3fd66666, 0x6666666c, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3fff9c6b, 0x238c6430, 0x3fd66666, 0x6666666c, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffd95e5, 0xac22d087, 0x3fd66666, 0x6666666c, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffb6731, 0x2cd2f430, 0x3fd66666, 0x6666666c, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d14, 0x3fd66666, 0x6666666c, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff6dcc5, 0x7bb565f9, 0x3fd66666, 0x6666666c, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff4ae10, 0xfc6589a2, 0x3fd66666, 0x6666666c, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff2a78b, 0x84fbf5fa, 0x3fd66666, 0x6666666c, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff0d38f, 0x2c5ba09d, 0x3fd66666, 0x6666666c, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3fee6ae1, 0x355353ce, 0x3fd66666, 0x6666666c, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3feb96e5, 0xa78c5c51, 0x3fd66666, 0x6666666c, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd66666, 0x6666666c, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fe700a7, 0xc5784634, 0x3fd66666, 0x6666666c, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe52744, 0x00eea72c, 0x3fd66666, 0x6666666c, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fe38b11, 0x2d7bd4af, 0x3fd66666, 0x6666666c, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe222a5, 0x4fde6fa9, 0x3fd66666, 0x6666666c, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe0e5fc, 0x62bb05c4, 0x3fd66666, 0x6666666c, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fdf9cbc, 0x4269ab2c, 0x3fd66666, 0x6666666c, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb51, 0x3fd66666, 0x6666666c, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fdbf1b3, 0x0afc731c, 0x3fd66666, 0x6666666c, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fda64ee, 0xc3cc23fe, 0x3fd66666, 0x6666666c, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fd8ffb4, 0xaf913426, 0x3fd66666, 0x6666666c, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fd7bcae, 0xd0f49656, 0x3fd66666, 0x6666666c, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fd69764, 0xfee13644, 0x3fd66666, 0x6666666c, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x400616b4, 0x66d73d60, 0x3fd99999, 0x9999999f, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4005f1ce, 0xcb0d4d6d, 0x3fd99999, 0x9999999f, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4005c975, 0x54f4b39e, 0x3fd99999, 0x9999999f, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40059d2f, 0x241f85a6, 0x3fd99999, 0x9999999f, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fd99999, 0x9999999f, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4005368c, 0x951e9cfc, 0x3fd99999, 0x9999999f, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4004fac5, 0x404fe6da, 0x3fd99999, 0x9999999f, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4004b831, 0x3ddf1776, 0x3fd99999, 0x9999999f, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fd99999, 0x9999999f, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40041a34, 0xfb542bff, 0x3fd99999, 0x9999999f, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4003bc1c, 0xc0033272, 0x3fd99999, 0x9999999f, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x400351d1, 0x783b3dac, 0x3fd99999, 0x9999999f, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fd99999, 0x9999999f, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x40025127, 0x9b802817, 0x3fd99999, 0x9999999f, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4001b6e1, 0x92ebbe42, 0x3fd99999, 0x9999999f, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x40010900, 0x9519d637, 0x3fd99999, 0x9999999f, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fd99999, 0x9999999f, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffedf81, 0xa4bd64d1, 0x3fd99999, 0x9999999f, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd30, 0x3fd99999, 0x9999999f, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffb1f56, 0xfdeef00c, 0x3fd99999, 0x9999999f, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fd99999, 0x9999999f, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff7249f, 0xaa996a1e, 0x3fd99999, 0x9999999f, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff5368c, 0x951e9cfa, 0x3fd99999, 0x9999999f, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff36475, 0x03caf55a, 0x3fd99999, 0x9999999f, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe43, 0x3fd99999, 0x9999999f, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff031f5, 0x7e54adbd, 0x3fd99999, 0x9999999f, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fedac67, 0x0561bb4e, 0x3fd99999, 0x9999999f, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3feb434e, 0xe31013fc, 0x3fd99999, 0x9999999f, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fd99999, 0x9999999f, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe740a7, 0x7023bda9, 0x3fd99999, 0x9999999f, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fe5977a, 0x5103ea93, 0x3fd99999, 0x9999999f, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe41f19, 0x63c0045f, 0x3fd99999, 0x9999999f, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd6066396, 0x3fd99999, 0x9999999f, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe1a728, 0x59945683, 0x3fd99999, 0x9999999f, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe09cd8, 0x4fd118f3, 0x3fd99999, 0x9999999f, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fdf5b75, 0xf92c80dd, 0x3fd99999, 0x9999999f, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb4f, 0x3fd99999, 0x9999999f, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fdc2661, 0x81253b88, 0x3fd99999, 0x9999999f, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fdac42f, 0xfa7bcbce, 0x3fd99999, 0x9999999f, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fd98164, 0x49b6fd53, 0x3fd99999, 0x9999999f, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4005bffa, 0x17065de0, 0x3fdccccc, 0xccccccd2, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x400597ff, 0xd521f2a9, 0x3fdccccc, 0xccccccd2, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fdccccc, 0xccccccd2, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40053ccf, 0xe79b8f8e, 0x3fdccccc, 0xccccccd2, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4005089b, 0xaf0d60e4, 0x3fdccccc, 0xccccccd2, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4004cf33, 0xdec5e9df, 0x3fdccccc, 0xccccccd2, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40048fe1, 0xf1cd429f, 0x3fdccccc, 0xccccccd2, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x400449d3, 0x87509220, 0x3fdccccc, 0xccccccd2, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fdccccc, 0xccccccd2, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4003a59b, 0x934a3833, 0x3fdccccc, 0xccccccd2, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4003452d, 0x2a42ac27, 0x3fdccccc, 0xccccccd2, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fdccccc, 0xccccccd2, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40026127, 0x862b05f4, 0x3fdccccc, 0xccccccd2, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4001dace, 0xaa5dc055, 0x3fdccccc, 0xccccccd2, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fdccccc, 0xccccccd2, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x40009f87, 0x5343d016, 0x3fdccccc, 0xccccccd2, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3fffd307, 0x52e32009, 0x3fdccccc, 0xccccccd2, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4cd, 0x3fdccccc, 0xccccccd2, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffca1a6, 0x56770bcd, 0x3fdccccc, 0xccccccd2, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffae73b, 0xd5e44e58, 0x3fdccccc, 0xccccccd2, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fdccccc, 0xccccccd2, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff75cba, 0xd2a40bd2, 0x3fdccccc, 0xccccccd2, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff5a250, 0x52114e5e, 0x3fdccccc, 0xccccccd2, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855e, 0x3fdccccc, 0xccccccd2, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff270ef, 0x55a53a23, 0x3fdccccc, 0xccccccd2, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff104e8, 0x0200b9fe, 0x3fdccccc, 0xccccccd2, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f699, 0x3fdccccc, 0xccccccd2, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3fed1cb2, 0xa799b305, 0x3fdccccc, 0xccccccd2, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3feb034f, 0x38649c87, 0x3fdccccc, 0xccccccd2, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fdccccc, 0xccccccd2, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fe77338, 0xa80603be, 0x3fdccccc, 0xccccccd2, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe5f17f, 0x03e7d38e, 0x3fdccccc, 0xccccccd2, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe4978f, 0xa3269ee1, 0x3fdccccc, 0xccccccd2, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe3609f, 0x33ce6bdf, 0x3fdccccc, 0xccccccd2, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe24865, 0x89dba9df, 0x3fdccccc, 0xccccccd2, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe14b1d, 0xd5f90ce1, 0x3fdccccc, 0xccccccd2, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe0657e, 0x94db30cf, 0x3fdccccc, 0xccccccd2, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fdf295b, 0x6544ec4e, 0x3fdccccc, 0xccccccd2, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fddac67, 0x0561bb4f, 0x3fdccccc, 0xccccccd2, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fdc4fdb, 0xf911d373, 0x3fdccccc, 0xccccccd2, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40056c6e, 0x7397f5ae, 0x3fe00000, 0x00000003, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x400541c5, 0x5d5d64c0, 0x3fe00000, 0x00000003, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40051371, 0xab22738b, 0x3fe00000, 0x00000003, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4004e102, 0xc80931db, 0x3fe00000, 0x00000003, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4004a9f8, 0x694c6d6a, 0x3fe00000, 0x00000003, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fe00000, 0x00000003, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40042bb5, 0xf776eb7f, 0x3fe00000, 0x00000003, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4003e31d, 0xfb0d799c, 0x3fe00000, 0x00000003, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40039328, 0x6347d274, 0x3fe00000, 0x00000003, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40033aef, 0xbf36777e, 0x3fe00000, 0x00000003, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d0, 0x3fe00000, 0x00000003, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40026dcb, 0xd423977a, 0x3fe00000, 0x00000003, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4001f6dc, 0x3e63112f, 0x3fe00000, 0x00000003, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x400173c1, 0xf5810bb6, 0x3fe00000, 0x00000003, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4000e3c5, 0x1fa059c3, 0x3fe00000, 0x00000003, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe00000, 0x00000003, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3fff3889, 0x2f1e0c85, 0x3fe00000, 0x00000003, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffdcbc9, 0xedcbd8d7, 0x3fe00000, 0x00000003, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffc4a83, 0x936311d7, 0x3fe00000, 0x00000003, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffaba39, 0x7c7259da, 0x3fe00000, 0x00000003, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d15, 0x3fe00000, 0x00000003, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff789bd, 0x2c160051, 0x3fe00000, 0x00000003, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff5f973, 0x15254855, 0x3fe00000, 0x00000003, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff4782c, 0xbabc8155, 0x3fe00000, 0x00000003, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff30b6d, 0x796a4da7, 0x3fe00000, 0x00000003, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe43, 0x3fe00000, 0x00000003, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a7, 0x3fe00000, 0x00000003, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3feeb8e5, 0x7b0c8582, 0x3fe00000, 0x00000003, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fecac7c, 0x57846f9e, 0x3fe00000, 0x00000003, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fead0be, 0x00825672, 0x3fe00000, 0x00000003, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe00000, 0x00000003, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe79c2e, 0x5436d664, 0x3fe00000, 0x00000003, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8a, 0x3fe00000, 0x00000003, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe4fb75, 0x64dacded, 0x3fe00000, 0x00000003, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe3d915, 0x73350660, 0x3fe00000, 0x00000003, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd6066395, 0x3fe00000, 0x00000003, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe1e00b, 0xabdefeb4, 0x3fe00000, 0x00000003, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe103e2, 0x30ebecf2, 0x3fe00000, 0x00000003, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe03a26, 0xa486e631, 0x3fe00000, 0x00000003, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fdf01af, 0xb73642bd, 0x3fe00000, 0x00000003, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40051c28, 0xaaf491df, 0x3fe19999, 0x9999999d, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4004ef33, 0x3421a552, 0x3fe19999, 0x9999999d, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4004be8d, 0x75c60da2, 0x3fe19999, 0x9999999d, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x400489ce, 0x32c7e50c, 0x3fe19999, 0x9999999d, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4004507f, 0x4d109f28, 0x3fe19999, 0x9999999d, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4004121c, 0xb53cd826, 0x3fe19999, 0x9999999d, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4003ce13, 0xa64eb185, 0x3fe19999, 0x9999999d, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x400383c2, 0x72726983, 0x3fe19999, 0x9999999d, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40033279, 0x47a8a3f3, 0x3fe19999, 0x9999999d, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe19999, 0x9999999d, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40027809, 0x3f2fcc24, 0x3fe19999, 0x9999999d, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40020d5d, 0x6b1c0b6e, 0x3fe19999, 0x9999999d, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x400198c4, 0x031217a2, 0x3fe19999, 0x9999999d, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x400119a6, 0xfe19b274, 0x3fe19999, 0x9999999d, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x40008fa7, 0x2899ef93, 0x3fe19999, 0x9999999d, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffff572, 0xaded0be5, 0x3fe19999, 0x9999999d, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffeb68c, 0x3ba726db, 0x3fe19999, 0x9999999d, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffd648c, 0xd67db728, 0x3fe19999, 0x9999999d, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffc02a9, 0x647f0db2, 0x3fe19999, 0x9999999d, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa9553, 0x1c6d8e5d, 0x3fe19999, 0x9999999d, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe19999, 0x9999999d, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff7aea3, 0x8c1acbcf, 0x3fe19999, 0x9999999d, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff6414d, 0x44094c7a, 0x3fe19999, 0x9999999d, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff4df69, 0xd20aa304, 0x3fe19999, 0x9999999d, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff38d6a, 0x6ce13351, 0x3fe19999, 0x9999999d, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff24e83, 0xfa9b4e47, 0x3fe19999, 0x9999999d, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff124a8, 0x57547b07, 0x3fe19999, 0x9999999d, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff010a8, 0xac54f544, 0x3fe19999, 0x9999999d, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fee24dd, 0x44c855d1, 0x3fe19999, 0x9999999d, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fec5277, 0xa4a086a2, 0x3fe19999, 0x9999999d, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3feaa7c8, 0x545183cd, 0x3fe19999, 0x9999999d, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe19999, 0x9999999d, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe7be08, 0x326e248f, 0x3fe19999, 0x9999999d, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe678e3, 0x87470e50, 0x3fe19999, 0x9999999d, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe54f9e, 0xb7d5ee49, 0x3fe19999, 0x9999999d, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe43f7a, 0x7c1d53c7, 0x3fe19999, 0x9999999d, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe345f0, 0x1cce37bb, 0x3fe19999, 0x9999999d, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe260b4, 0x85f1202d, 0x3fe19999, 0x9999999d, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe18db7, 0x79f87dd4, 0x3fe19999, 0x9999999d, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe0cb20, 0x808a1f16, 0x3fe19999, 0x9999999d, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4004cf33, 0xdec5e9df, 0x3fe33333, 0x33333337, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4004a04f, 0x5f80df4b, 0x3fe33333, 0x33333337, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40046dc0, 0x9ec29432, 0x3fe33333, 0x33333337, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40043726, 0xeb5fa0c2, 0x3fe33333, 0x33333337, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fe33333, 0x33333337, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4003bc1c, 0xc0033272, 0x3fe33333, 0x33333337, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x400376b7, 0x14052d9f, 0x3fe33333, 0x33333337, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40032b5c, 0xd7c0fc06, 0x3fe33333, 0x33333337, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe33333, 0x33333337, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4002807f, 0xb6bd9fae, 0x3fe33333, 0x33333337, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40021fd0, 0x9b1e712d, 0x3fe33333, 0x33333337, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4001b6e1, 0x92ebbe43, 0x3fe33333, 0x33333337, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fe33333, 0x33333337, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4000ca7c, 0xc2d0d7fc, 0x3fe33333, 0x33333337, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe33333, 0x33333337, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3fff730b, 0xd281f698, 0x3fe33333, 0x33333337, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3fe33333, 0x33333337, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd31, 0x3fe33333, 0x33333337, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffbc66e, 0x44cbc072, 0x3fe33333, 0x33333337, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa7687, 0x3ac2bc7a, 0x3fe33333, 0x33333337, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe33333, 0x33333337, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff7cd6f, 0x6dc59db2, 0x3fe33333, 0x33333337, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff67d88, 0x63bc99bb, 0x3fe33333, 0x33333337, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff5368c, 0x951e9cfb, 0x3fe33333, 0x33333337, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855f, 0x3fe33333, 0x33333337, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff2d0ea, 0xd6066394, 0x3fe33333, 0x33333337, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe33333, 0x33333337, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff0aefd, 0x22e6aa36, 0x3fe33333, 0x33333337, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3fe33333, 0x33333337, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fedac67, 0x0561bb50, 0x3fe33333, 0x33333337, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fec08aa, 0xe496efa6, 0x3fe33333, 0x33333337, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fea85ee, 0x761a35a1, 0x3fe33333, 0x33333337, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe33333, 0x33333337, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe7da79, 0xf20cc443, 0x3fe33333, 0x33333337, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe6ad11, 0x00fbfddf, 0x3fe33333, 0x33333337, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe5977a, 0x5103ea92, 0x3fe33333, 0x33333337, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe4978f, 0xa3269ee1, 0x3fe33333, 0x33333337, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe3ab51, 0xa3923153, 0x3fe33333, 0x33333337, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe2d0ea, 0xd6066395, 0x3fe33333, 0x33333337, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe206af, 0xd30d3731, 0x3fe33333, 0x33333337, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40048590, 0xb7aedd62, 0x3fe4cccc, 0xccccccd1, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40045514, 0x33f00782, 0x3fe4cccc, 0xccccccd1, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x400420fd, 0x07447552, 0x3fe4cccc, 0xccccccd1, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4003e8f3, 0xacb51f92, 0x3fe4cccc, 0xccccccd1, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4003ac98, 0xf27e8651, 0x3fe4cccc, 0xccccccd1, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40036b86, 0x251cd70d, 0x3fe4cccc, 0xccccccd1, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4003254d, 0xb30ae9d3, 0x3fe4cccc, 0xccccccd1, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe4cccc, 0xccccccd1, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4002879c, 0x26a5479b, 0x3fe4cccc, 0xccccccd1, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40022f36, 0x8bf3da1f, 0x3fe4cccc, 0xccccccd1, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4001cfdb, 0x0358ca06, 0x3fe4cccc, 0xccccccd1, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40016925, 0x7715b182, 0x3fe4cccc, 0xccccccd1, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4000fac7, 0xc0872c2c, 0x3fe4cccc, 0xccccccd1, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x40008495, 0x326f4bf0, 0x3fe4cccc, 0xccccccd1, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x4000068f, 0xdf56fb08, 0x3fe4cccc, 0xccccccd1, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3fff01ec, 0xffc750ae, 0x3fe4cccc, 0xccccccd1, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffde8a2, 0x2515088e, 0x3fe4cccc, 0xccccccd1, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffcc2f3, 0x2876c448, 0x3fe4cccc, 0xccccccd1, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffb933b, 0xc05799bf, 0x3fe4cccc, 0xccccccd1, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa5c70, 0x7de844b3, 0x3fe4cccc, 0xccccccd1, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe4cccc, 0xccccccd1, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff7e786, 0x2aa0157a, 0x3fe4cccc, 0xccccccd1, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff6b0ba, 0xe830c06e, 0x3fe4cccc, 0xccccccd1, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff58103, 0x801195e5, 0x3fe4cccc, 0xccccccd1, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff45b54, 0x8373519f, 0x3fe4cccc, 0xccccccd1, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff34209, 0xa8c1097f, 0x3fe4cccc, 0xccccccd1, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff236d6, 0xe9da641d, 0x3fe4cccc, 0xccccccd1, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff13acc, 0x43a9c24d, 0x3fe4cccc, 0xccccccd1, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff04e67, 0x277a01d7, 0x3fe4cccc, 0xccccccd1, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3feee357, 0x74b9ee52, 0x3fe4cccc, 0xccccccd1, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fed4881, 0x43ad8c44, 0x3fe4cccc, 0xccccccd1, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3febcb13, 0x21414be0, 0x3fe4cccc, 0xccccccd1, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fea697c, 0xb67b95ed, 0x3fe4cccc, 0xccccccd1, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe4cccc, 0xccccccd1, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe7f2b6, 0x84e50d11, 0x3fe4cccc, 0xccccccd1, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe6d9d4, 0xbc9d5828, 0x3fe4cccc, 0xccccccd1, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe5d589, 0x87169b18, 0x3fe4cccc, 0xccccccd1, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe4e41e, 0x9e3c3615, 0x3fe4cccc, 0xccccccd1, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe403f9, 0x33fedf17, 0x3fe4cccc, 0xccccccd1, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe3339c, 0x81509658, 0x3fe4cccc, 0xccccccd1, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40043f37, 0x08e537ec, 0x3fe66666, 0x6666666b, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40040d72, 0x6e9f7ad4, 0x3fe66666, 0x6666666b, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4003d82a, 0x5408834d, 0x3fe66666, 0x6666666b, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40039f10, 0x8a1dc76f, 0x3fe66666, 0x6666666b, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x400361d1, 0x62e61b8a, 0x3fe66666, 0x6666666b, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40032014, 0x3b9f415f, 0x3fe66666, 0x6666666b, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe66666, 0x6666666b, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40028dab, 0x4b5b59cf, 0x3fe66666, 0x6666666b, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40023c41, 0xea611602, 0x3fe66666, 0x6666666b, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4001e4e5, 0x5817921d, 0x3fe66666, 0x6666666b, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40018743, 0x06ef5823, 0x3fe66666, 0x6666666b, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40012317, 0x0c990102, 0x3fe66666, 0x6666666b, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4000b833, 0xbe165cc8, 0x3fe66666, 0x6666666b, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe66666, 0x6666666b, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3fff9c6b, 0x238c6432, 0x3fe66666, 0x6666666b, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffe9f02, 0x0021cec5, 0x3fe66666, 0x6666666b, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffd95e5, 0xac22d08a, 0x3fe66666, 0x6666666b, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffc829e, 0xbb6db38b, 0x3fe66666, 0x6666666b, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffb6731, 0x2cd2f432, 0x3fe66666, 0x6666666b, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa460e, 0xa017978f, 0x3fe66666, 0x6666666b, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe66666, 0x6666666b, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff7fde8, 0x0870c29e, 0x3fe66666, 0x6666666b, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff6dcc5, 0x7bb565fb, 0x3fe66666, 0x6666666b, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff5c157, 0xed1aa6a2, 0x3fe66666, 0x6666666b, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff4ae10, 0xfc6589a3, 0x3fe66666, 0x6666666b, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff3a4f4, 0xa8668b68, 0x3fe66666, 0x6666666b, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff2a78b, 0x84fbf5fc, 0x3fe66666, 0x6666666b, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe66666, 0x6666666b, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff0d38f, 0x2c5ba09f, 0x3fe66666, 0x6666666b, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3feffb91, 0x1eacb051, 0x3fe66666, 0x6666666b, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fee6ae1, 0x355353d0, 0x3fe66666, 0x6666666b, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fecf457, 0xf0b26be7, 0x3fe66666, 0x6666666b, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3feb96e5, 0xa78c5c52, 0x3fe66666, 0x6666666b, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fea5140, 0x23a34d20, 0x3fe66666, 0x6666666b, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe66666, 0x6666666b, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe8079c, 0x6293aee0, 0x3fe66666, 0x6666666b, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe700a7, 0xc5784634, 0x3fe66666, 0x6666666b, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe60bab, 0x289996a1, 0x3fe66666, 0x6666666b, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe52744, 0x00eea72b, 0x3fe66666, 0x6666666b, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe45223, 0x9692c90f, 0x3fe66666, 0x6666666b, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4003fc17, 0x6b7a855f, 0x3fe80000, 0x00000005, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4003c953, 0x34d30df4, 0x3fe80000, 0x00000005, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x40039328, 0x6347d275, 0x3fe80000, 0x00000005, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40035951, 0xee0fd5c9, 0x3fe80000, 0x00000005, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40031b87, 0x267eca84, 0x3fe80000, 0x00000005, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe80000, 0x00000005, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x400292e4, 0xc2c70243, 0x3fe80000, 0x00000005, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40024772, 0xd9496c95, 0x3fe80000, 0x00000005, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4001f6dc, 0x3e63112f, 0x3fe80000, 0x00000005, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4001a0dc, 0x49296b7c, 0x3fe80000, 0x00000005, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3fe80000, 0x00000005, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4000e3c5, 0x1fa059c3, 0x3fe80000, 0x00000005, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x40007c6c, 0x6947a6a6, 0x3fe80000, 0x00000005, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x40000f34, 0x0b81a4ee, 0x3fe80000, 0x00000005, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3fff3889, 0x2f1e0c86, 0x3fe80000, 0x00000005, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3fe80000, 0x00000005, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffd4d68, 0xbe213417, 0x3fe80000, 0x00000005, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffc4a83, 0x936311d8, 0x3fe80000, 0x00000005, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffb40e9, 0xaf482898, 0x3fe80000, 0x00000005, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa32a5, 0x1baa2089, 0x3fe80000, 0x00000005, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe80000, 0x00000005, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff81151, 0x8cde39a4, 0x3fe80000, 0x00000005, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff7030c, 0xf9403195, 0x3fe80000, 0x00000005, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff5f973, 0x15254856, 0x3fe80000, 0x00000005, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff4f68d, 0xea672616, 0x3fe80000, 0x00000005, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a855f, 0x3fe80000, 0x00000005, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff30b6d, 0x796a4da8, 0x3fe80000, 0x00000005, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff2258e, 0x91851051, 0x3fe80000, 0x00000005, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff14b1d, 0xd5f90ce1, 0x3fe80000, 0x00000005, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3ff07c6c, 0x6947a6a8, 0x3fe80000, 0x00000005, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3fe80000, 0x00000005, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fee047c, 0x2c6b066a, 0x3fe80000, 0x00000005, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fecac7c, 0x57846f9e, 0x3fe80000, 0x00000005, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3feb6a21, 0xebeb0209, 0x3fe80000, 0x00000005, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fea3c5a, 0x45f4ab51, 0x3fe80000, 0x00000005, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe80000, 0x00000005, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe819d0, 0xb7158a4d, 0x3fe80000, 0x00000005, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe722a5, 0x98d15d3a, 0x3fe80000, 0x00000005, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe63b4b, 0xc3f16a8a, 0x3fe80000, 0x00000005, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe562a0, 0x7dc47c8f, 0x3fe80000, 0x00000005, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4003bc1c, 0xc0033273, 0x3fe99999, 0x9999999f, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40038899, 0xe572fe85, 0x3fe99999, 0x9999999f, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x400351d1, 0x783b3dad, 0x3fe99999, 0x9999999f, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40031787, 0x26d41fcc, 0x3fe99999, 0x9999999f, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fe99999, 0x9999999f, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40029771, 0xd7e7791e, 0x3fe99999, 0x9999999f, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x40025127, 0x9b802818, 0x3fe99999, 0x9999999f, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40020660, 0x0be7bd51, 0x3fe99999, 0x9999999f, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x4001b6e1, 0x92ebbe43, 0x3fe99999, 0x9999999f, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x40016279, 0xb155a47a, 0x3fe99999, 0x9999999f, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40010900, 0x9519d638, 0x3fe99999, 0x9999999f, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4000aa5d, 0x4f58e2bf, 0x3fe99999, 0x9999999f, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df4, 0x3fe99999, 0x9999999f, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x3fffbb37, 0x05373615, 0x3fe99999, 0x9999999f, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3ffedf81, 0xa4bd64d2, 0x3fe99999, 0x9999999f, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffdfa99, 0x22062809, 0x3fe99999, 0x9999999f, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffd0d6a, 0x1369bd32, 0x3fe99999, 0x9999999f, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffc192a, 0xbdbdf877, 0x3fe99999, 0x9999999f, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffb1f56, 0xfdeef00d, 0x3fe99999, 0x9999999f, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa21a6, 0x31fd9506, 0x3fe99999, 0x9999999f, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d16, 0x3fe99999, 0x9999999f, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff82250, 0x768ac527, 0x3fe99999, 0x9999999f, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff7249f, 0xaa996a20, 0x3fe99999, 0x9999999f, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff62acb, 0xeaca61b7, 0x3fe99999, 0x9999999f, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff5368c, 0x951e9cfc, 0x3fe99999, 0x9999999f, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff4495d, 0x86823225, 0x3fe99999, 0x9999999f, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff36475, 0x03caf55c, 0x3fe99999, 0x9999999f, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff288bf, 0xa3512419, 0x3fe99999, 0x9999999f, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe44, 0x3fe99999, 0x9999999f, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3ff0ef3c, 0x09d694b1, 0x3fe99999, 0x9999999f, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3ff031f5, 0x7e54adbe, 0x3fe99999, 0x9999999f, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3feefe06, 0x8bba2275, 0x3fe99999, 0x9999999f, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fedac67, 0x0561bb50, 0x3fe99999, 0x9999999f, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fec6e6d, 0x2171bf19, 0x3fe99999, 0x9999999f, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3feb434e, 0xe31013fc, 0x3fe99999, 0x9999999f, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fea2a25, 0xf172cfe4, 0x3fe99999, 0x9999999f, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fe99999, 0x9999999f, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe829d0, 0xb5c0352b, 0x3fe99999, 0x9999999f, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe740a7, 0x7023bda9, 0x3fe99999, 0x9999999f, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe66585, 0xbb44ba4a, 0x3fe99999, 0x9999999f, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40037f2d, 0x8b93012a, 0x3feb3333, 0x33333339, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x40034b25, 0xb27b30a4, 0x3feb3333, 0x33333339, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x400313fc, 0x14754e12, 0x3feb3333, 0x33333339, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3feb3333, 0x33333339, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40029b71, 0xd79223d6, 0x3feb3333, 0x33333339, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x400259a7, 0x10566dd9, 0x3feb3333, 0x33333339, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x400213e8, 0x74487c33, 0x3feb3333, 0x33333339, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x4001ca05, 0x51b12410, 0x3feb3333, 0x33333339, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40017bd2, 0x1306a2e0, 0x3feb3333, 0x33333339, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4001292a, 0xcb9e5e96, 0x3feb3333, 0x33333339, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x4000d1f6, 0x365d11c8, 0x3feb3333, 0x33333339, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40007629, 0x16cab415, 0x3feb3333, 0x33333339, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x400015c9, 0xda46bdfc, 0x3feb3333, 0x33333339, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x3fff61e8, 0x80287a1f, 0x3feb3333, 0x33333339, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3ffe8fb9, 0x6bf1d8f3, 0x3feb3333, 0x33333339, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffdb5a6, 0x01769192, 0x3feb3333, 0x33333339, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffcd487, 0x74e47388, 0x3feb3333, 0x33333339, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffbed70, 0x67a8594c, 0x3feb3333, 0x33333339, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffb01a8, 0xbf84055b, 0x3feb3333, 0x33333339, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa12a5, 0x465464cf, 0x3feb3333, 0x33333339, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3feb3333, 0x33333339, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff83151, 0x6233f55f, 0x3feb3333, 0x33333339, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff7424d, 0xe90454d2, 0x3feb3333, 0x33333339, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff65686, 0x40e000e2, 0x3feb3333, 0x33333339, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff56f6f, 0x33a3e6a6, 0x3feb3333, 0x33333339, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff48e50, 0xa711c89c, 0x3feb3333, 0x33333339, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff3b43d, 0x3c96813b, 0x3feb3333, 0x33333339, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff2e20e, 0x285fe00f, 0x3feb3333, 0x33333339, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff21862, 0xf3fade36, 0x3feb3333, 0x33333339, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3ff157a4, 0x7af2f204, 0x3feb3333, 0x33333339, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3ff0a00a, 0x3bce369f, 0x3feb3333, 0x33333339, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3fefe342, 0x22973a03, 0x3feb3333, 0x33333339, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fee98a5, 0x04f628dd, 0x3feb3333, 0x33333339, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fed5fd8, 0x0a4c241b, 0x3feb3333, 0x33333339, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fec384b, 0x7feec390, 0x3feb3333, 0x33333339, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3feb2151, 0x0fb6fcf7, 0x3feb3333, 0x33333339, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3fea1a25, 0xf2c82506, 0x3feb3333, 0x33333339, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3feb3333, 0x33333339, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe837fc, 0xff3b7c14, 0x3feb3333, 0x33333339, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe75b56, 0x8723f1cd, 0x3feb3333, 0x33333339, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x4003452d, 0x2a42ac28, 0x3feccccc, 0xccccccd3, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x400310d2, 0xfe7fcad8, 0x3feccccc, 0xccccccd3, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3feccccc, 0xccccccd3, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x40029efc, 0xe9f0f590, 0x3feccccc, 0xccccccd3, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40026127, 0x862b05f5, 0x3feccccc, 0xccccccd3, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x40021fd0, 0x9b1e712e, 0x3feccccc, 0xccccccd3, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4001dace, 0xaa5dc056, 0x3feccccc, 0xccccccd3, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x400191fb, 0xf721ce50, 0x3feccccc, 0xccccccd3, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x40014538, 0x5fa3af70, 0x3feccccc, 0xccccccd3, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4000f46b, 0x88a03600, 0x3feccccc, 0xccccccd3, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40009f87, 0x5343d017, 0x3feccccc, 0xccccccd3, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x4000468a, 0x8ace4df5, 0x3feccccc, 0xccccccd3, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x3fffd307, 0x52e32009, 0x3feccccc, 0xccccccd3, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x3fff1127, 0x088152ab, 0x3feccccc, 0xccccccd3, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3ffe47df, 0x3d0dd4ce, 0x3feccccc, 0xccccccd3, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffd77c7, 0xb196b31f, 0x3feccccc, 0xccccccd3, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffca1a6, 0x56770bcf, 0x3feccccc, 0xccccccd3, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffbc66e, 0x44cbc072, 0x3feccccc, 0xccccccd3, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffae73b, 0xd5e44e5a, 0x3feccccc, 0xccccccd3, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ffa054d, 0xbad44abd, 0x3feccccc, 0xccccccd3, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3feccccc, 0xccccccd3, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff83ea8, 0xedb40f71, 0x3feccccc, 0xccccccd3, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff75cba, 0xd2a40bd4, 0x3feccccc, 0xccccccd3, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff67d88, 0x63bc99bc, 0x3feccccc, 0xccccccd3, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff5a250, 0x52114e5f, 0x3feccccc, 0xccccccd3, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff4cc2e, 0xf6f1a70f, 0x3feccccc, 0xccccccd3, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff3fc17, 0x6b7a8560, 0x3feccccc, 0xccccccd3, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff332cf, 0xa0070783, 0x3feccccc, 0xccccccd3, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff270ef, 0x55a53a25, 0x3feccccc, 0xccccccd3, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3ff1b6e1, 0x92ebbe45, 0x3feccccc, 0xccccccd3, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3ff104e8, 0x0200ba00, 0x3feccccc, 0xccccccd3, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3ff05b1f, 0x9747ee2e, 0x3feccccc, 0xccccccd3, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fef730b, 0xd281f69b, 0x3feccccc, 0xccccccd3, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fee3ffd, 0x74897b19, 0x3feccccc, 0xccccccd3, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fed1cb2, 0xa799b306, 0x3feccccc, 0xccccccd3, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fec08aa, 0xe496efa6, 0x3feccccc, 0xccccccd3, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3feb034f, 0x38649c88, 0x3feccccc, 0xccccccd3, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3fea0bf9, 0xa94cde1c, 0x3feccccc, 0xccccccd3, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3feccccc, 0xccccccd3, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe844a1, 0x571188fe, 0x3feccccc, 0xccccccd3, 0x3fee6666, 0x6666666d}, +{32,0,123,__LINE__, 0x40030dfc, 0xd57ce4cc, 0x3fee6666, 0x6666666d, 0xbff00000, 0x00000000}, +{32,0,123,__LINE__, 0x4002d97c, 0x7f3321d1, 0x3fee6666, 0x6666666d, 0xbfee6666, 0x66666666}, +{32,0,123,__LINE__, 0x4002a225, 0xffe678cb, 0x3fee6666, 0x6666666d, 0xbfeccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x400267d3, 0x4beb12fe, 0x3fee6666, 0x6666666d, 0xbfeb3333, 0x33333332}, +{32,0,123,__LINE__, 0x40022a5f, 0x18f3451e, 0x3fee6666, 0x6666666d, 0xbfe99999, 0x99999998}, +{32,0,123,__LINE__, 0x4001e9a5, 0xc99335af, 0x3fee6666, 0x6666666d, 0xbfe7ffff, 0xfffffffe}, +{32,0,123,__LINE__, 0x4001a586, 0x8fc6c8cf, 0x3fee6666, 0x6666666d, 0xbfe66666, 0x66666664}, +{32,0,123,__LINE__, 0x40015de4, 0xca763c21, 0x3fee6666, 0x6666666d, 0xbfe4cccc, 0xccccccca}, +{32,0,123,__LINE__, 0x400112a9, 0x9ee56458, 0x3fee6666, 0x6666666d, 0xbfe33333, 0x33333330}, +{32,0,123,__LINE__, 0x4000c3c5, 0xca449e50, 0x3fee6666, 0x6666666d, 0xbfe19999, 0x99999996}, +{32,0,123,__LINE__, 0x40007133, 0xa108dee2, 0x3fee6666, 0x6666666d, 0xbfdfffff, 0xfffffff9}, +{32,0,123,__LINE__, 0x40001af9, 0x294450fa, 0x3fee6666, 0x6666666d, 0xbfdccccc, 0xccccccc6}, +{32,0,123,__LINE__, 0x3fff8254, 0x66b1ec6b, 0x3fee6666, 0x6666666d, 0xbfd99999, 0x99999993}, +{32,0,123,__LINE__, 0x3ffec7d4, 0x93fc7aa7, 0x3fee6666, 0x6666666d, 0xbfd66666, 0x66666660}, +{32,0,123,__LINE__, 0x3ffe06dc, 0x9297b73e, 0x3fee6666, 0x6666666d, 0xbfd33333, 0x3333332d}, +{32,0,123,__LINE__, 0x3ffd3ffa, 0xcd08c0c1, 0x3fee6666, 0x6666666d, 0xbfcfffff, 0xfffffff4}, +{32,0,123,__LINE__, 0x3ffc73e2, 0xe46d7f71, 0x3fee6666, 0x6666666d, 0xbfc99999, 0x9999998e}, +{32,0,123,__LINE__, 0x3ffba36c, 0x4c864173, 0x3fee6666, 0x6666666d, 0xbfc33333, 0x33333328}, +{32,0,123,__LINE__, 0x3ffacf8e, 0xc523642f, 0x3fee6666, 0x6666666d, 0xbfb99999, 0x99999983}, +{32,0,123,__LINE__, 0x3ff9f95c, 0xaa6341c4, 0x3fee6666, 0x6666666d, 0xbfa99999, 0x9999996c}, +{32,0,123,__LINE__, 0x3ff921fb, 0x54442d17, 0x3fee6666, 0x6666666d, 0x3cb70000, 0x00000000}, +{32,0,123,__LINE__, 0x3ff84a99, 0xfe25186a, 0x3fee6666, 0x6666666d, 0x3fa99999, 0x999999c8}, +{32,0,123,__LINE__, 0x3ff77467, 0xe364f5ff, 0x3fee6666, 0x6666666d, 0x3fb99999, 0x999999b1}, +{32,0,123,__LINE__, 0x3ff6a08a, 0x5c0218bb, 0x3fee6666, 0x6666666d, 0x3fc33333, 0x3333333f}, +{32,0,123,__LINE__, 0x3ff5d013, 0xc41adabd, 0x3fee6666, 0x6666666d, 0x3fc99999, 0x999999a6}, +{32,0,123,__LINE__, 0x3ff503fb, 0xdb7f996d, 0x3fee6666, 0x6666666d, 0x3fd00000, 0x00000006}, +{32,0,123,__LINE__, 0x3ff43d1a, 0x15f0a2f0, 0x3fee6666, 0x6666666d, 0x3fd33333, 0x33333339}, +{32,0,123,__LINE__, 0x3ff37c22, 0x148bdf87, 0x3fee6666, 0x6666666d, 0x3fd66666, 0x6666666c}, +{32,0,123,__LINE__, 0x3ff2c1a2, 0x41d66dc3, 0x3fee6666, 0x6666666d, 0x3fd99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3ff20e04, 0x55ffb83c, 0x3fee6666, 0x6666666d, 0x3fdccccc, 0xccccccd2}, +{32,0,123,__LINE__, 0x3ff1618f, 0x66769c69, 0x3fee6666, 0x6666666d, 0x3fe00000, 0x00000003}, +{32,0,123,__LINE__, 0x3ff0bc6b, 0x13ff1d8d, 0x3fee6666, 0x6666666d, 0x3fe19999, 0x9999999d}, +{32,0,123,__LINE__, 0x3ff01ea3, 0x6abd9180, 0x3fee6666, 0x6666666d, 0x3fe33333, 0x33333337}, +{32,0,123,__LINE__, 0x3fef105a, 0x2737c3d9, 0x3fee6666, 0x6666666d, 0x3fe4cccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fedf1d3, 0x11f59121, 0x3fee6666, 0x6666666d, 0x3fe66666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fece156, 0x2ac3dda1, 0x3fee6666, 0x6666666d, 0x3fe80000, 0x00000005}, +{32,0,123,__LINE__, 0x3febde70, 0xed439fe7, 0x3fee6666, 0x6666666d, 0x3fe99999, 0x9999999f}, +{32,0,123,__LINE__, 0x3feae8a0, 0x21646864, 0x3fee6666, 0x6666666d, 0x3feb3333, 0x33333339}, +{32,0,123,__LINE__, 0x3fe9ff55, 0x5176d133, 0x3fee6666, 0x6666666d, 0x3feccccc, 0xccccccd3}, +{32,0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3fee6666, 0x6666666d, 0x3fee6666, 0x6666666d}, +0,}; +test_atan2f(m) {run_vector_1(m,atan2f_vec,(char *)(atan2f),"atan2f","fff"); } diff --git a/newlib/libm/test/atan_vec.c b/newlib/libm/test/atan_vec.c new file mode 100644 index 000000000..12b44be74 --- /dev/null +++ b/newlib/libm/test/atan_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type atan_vec[] = { +{64, 0,123,__LINE__, 0xbfec08aa, 0xe496efa6, 0xbff33333, 0x33333333}, /* -0.87605=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbfebe6ed, 0x93e2de0a, 0xbff30a3d, 0x70a3d70a}, /* -0.87193=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbfebc4da, 0xc279b378, 0xbff2e147, 0xae147ae1}, /* -0.86778=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xbfeba271, 0x78241551, 0xbff2b851, 0xeb851eb8}, /* -0.86357=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbfeb7fb0, 0xbad89c3a, 0xbff28f5c, 0x28f5c28f}, /* -0.85933=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfeb5c97, 0x8ec9f805, 0xbff26666, 0x66666666}, /* -0.85505=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbfeb3924, 0xf6762ef7, 0xbff23d70, 0xa3d70a3d}, /* -0.85072=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbfeb1557, 0xf2b704a7, 0xbff2147a, 0xe147ae14}, /* -0.84635=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbfeaf12f, 0x82d394f5, 0xbff1eb85, 0x1eb851eb}, /* -0.84194=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfeaccaa, 0xa4932fec, 0xbff1c28f, 0x5c28f5c2}, /* -0.83748=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfeaa7c8, 0x545183cc, 0xbff19999, 0x99999999}, /* -0.83298=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfea8287, 0x8d142296, 0xbff170a3, 0xd70a3d70}, /* -0.82843=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfea5ce7, 0x48a170fd, 0xbff147ae, 0x147ae147}, /* -0.82384=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfea36e6, 0x7f990cb5, 0xbff11eb8, 0x51eb851e}, /* -0.81920=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfea1084, 0x298db87a, 0xbff0f5c2, 0x8f5c28f5}, /* -0.81451=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfe9e9bf, 0x3d20dc70, 0xbff0cccc, 0xcccccccc}, /* -0.80978=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbfe9c296, 0xb01fa9a4, 0xbff0a3d7, 0x0a3d70a3}, /* -0.80500=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbfe99b09, 0x77a1efc6, 0xbff07ae1, 0x47ae147a}, /* -0.80017=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfe97316, 0x882ab459, 0xbff051eb, 0x851eb851}, /* -0.79529=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbfe94abc, 0xd5ca9ace, 0xbff028f5, 0xc28f5c28}, /* -0.79037=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfe921fb, 0x54442d17, 0xbfefffff, 0xfffffffe}, /* -0.78539=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfe8f8d0, 0xf7321466, 0xbfefae14, 0x7ae147ac}, /* -0.78037=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfe8cf3c, 0xb22f51e4, 0xbfef5c28, 0xf5c28f5a}, /* -0.77529=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfe8a53d, 0x79018729, 0xbfef0a3d, 0x70a3d708}, /* -0.77017=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfe87ad2, 0x3fc55e45, 0xbfeeb851, 0xeb851eb6}, /* -0.76499=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfe84ff9, 0xfb1d212c, 0xbfee6666, 0x66666664}, /* -0.75976=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfe824b3, 0xa0619018, 0xbfee147a, 0xe147ae12}, /* -0.75448=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfe7f8fe, 0x25d50679, 0xbfedc28f, 0x5c28f5c0}, /* -0.74914=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfe7ccd8, 0x82d8fdbc, 0xbfed70a3, 0xd70a3d6e}, /* -0.74375=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfe7a041, 0xb025fce7, 0xbfed1eb8, 0x51eb851c}, /* -0.73831=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfe77338, 0xa80603bc, 0xbfeccccc, 0xccccccca}, /* -0.73281=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfe745bc, 0x66917fae, 0xbfec7ae1, 0x47ae1478}, /* -0.72726=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfe717cb, 0xe9eed851, 0xbfec28f5, 0xc28f5c26}, /* -0.72165=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfe6e966, 0x3294a096, 0xbfebd70a, 0x3d70a3d4}, /* -0.71599=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfe6ba8a, 0x438e7924, 0xbfeb851e, 0xb851eb82}, /* -0.71027=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfe68b37, 0x22c4afb2, 0xbfeb3333, 0x33333330}, /* -0.70449=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfe65b6b, 0xd946a619, 0xbfeae147, 0xae147ade}, /* -0.69865=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfe62b27, 0x73980b0f, 0xbfea8f5c, 0x28f5c28c}, /* -0.69276=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfe5fa69, 0x0200ed43, 0xbfea3d70, 0xa3d70a3a}, /* -0.68681=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe5c92f, 0x98e0b06f, 0xbfe9eb85, 0x1eb851e8}, /* -0.68080=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfe5977a, 0x5103ea90, 0xbfe99999, 0x99999996}, /* -0.67474=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe56548, 0x47fd2dfe, 0xbfe947ae, 0x147ae144}, /* -0.66861=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe53298, 0xa080c38a, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.66242=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe4ff6a, 0x82c355fd, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.65617=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfe4cbbd, 0x1cdb8e6d, 0xbfe851eb, 0x851eb84e}, /* -0.64987=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe4978f, 0xa3269ede, 0xbfe7ffff, 0xfffffffc}, /* -0.64350=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe462e1, 0x50afb65c, 0xbfe7ae14, 0x7ae147aa}, /* -0.63707=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe42db1, 0x679a576c, 0xbfe75c28, 0xf5c28f58}, /* -0.63057=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe3f7ff, 0x318f8720, 0xbfe70a3d, 0x70a3d706}, /* -0.62402=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe3c1ca, 0x002dc874, 0xbfe6b851, 0xeb851eb4}, /* -0.61740=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe38b11, 0x2d7bd4aa, 0xbfe66666, 0x66666662}, /* -0.61072=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe353d4, 0x1c5dfe64, 0xbfe6147a, 0xe147ae10}, /* -0.60398=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe31c12, 0x390e29f6, 0xbfe5c28f, 0x5c28f5be}, /* -0.59717=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe2e3ca, 0xf996421a, 0xbfe570a3, 0xd70a3d6c}, /* -0.59030=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe2aafd, 0xde4d0c9b, 0xbfe51eb8, 0x51eb851a}, /* -0.58337=f(-0.66000)*/ +{63, 0,123,__LINE__, 0xbfe271aa, 0x72553ed1, 0xbfe4cccc, 0xccccccc8}, /* -0.57637=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe237d0, 0x4c1eadfe, 0xbfe47ae1, 0x47ae1476}, /* -0.56931=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe1fd6f, 0x0de97384, 0xbfe428f5, 0xc28f5c24}, /* -0.56218=f(-0.63000)*/ +{62, 0,123,__LINE__, 0xbfe1c286, 0x664ad8c6, 0xbfe3d70a, 0x3d70a3d2}, /* -0.55499=f(-0.62000)*/ +{62, 0,123,__LINE__, 0xbfe18716, 0x10b3da3e, 0xbfe3851e, 0xb851eb80}, /* -0.54774=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe14b1d, 0xd5f90cdd, 0xbfe33333, 0x3333332e}, /* -0.54041=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe10e9d, 0x8cdbac44, 0xbfe2e147, 0xae147adc}, /* -0.53303=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe0d195, 0x1a9393b2, 0xbfe28f5c, 0x28f5c28a}, /* -0.52558=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe09404, 0x7359dee7, 0xbfe23d70, 0xa3d70a38}, /* -0.51806=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe055eb, 0x9af3eb46, 0xbfe1eb85, 0x1eb851e6}, /* -0.51048=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe0174a, 0xa53e6cdf, 0xbfe19999, 0x99999994}, /* -0.50284=f(-0.55000)*/ +{63, 0,123,__LINE__, 0xbfdfb043, 0x6d708c01, 0xbfe147ae, 0x147ae142}, /* -0.49513=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfdf30e2, 0x0a19966b, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.48735=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfdeb071, 0xaf3a3187, 0xbfe0a3d7, 0x0a3d709e}, /* -0.47951=f(-0.52000)*/ +{62, 0,123,__LINE__, 0xbfde2ef3, 0x101033d6, 0xbfe051eb, 0x851eb84c}, /* -0.47161=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfddac67, 0x0561bb45, 0xbfdfffff, 0xfffffff4}, /* -0.46364=f(-0.50000)*/ +{62, 0,123,__LINE__, 0xbfdd28ce, 0x8e859fe6, 0xbfdf5c28, 0xf5c28f50}, /* -0.45561=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdca42a, 0xd266d565, 0xbfdeb851, 0xeb851eac}, /* -0.44751=f(-0.48000)*/ +{60, 0,123,__LINE__, 0xbfdc1e7d, 0x2081d8d7, 0xbfde147a, 0xe147ae08}, /* -0.43936=f(-0.47000)*/ +{63, 0,123,__LINE__, 0xbfdb97c6, 0xf1db4027, 0xbfdd70a3, 0xd70a3d64}, /* -0.43113=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdb1009, 0xe9ee79b0, 0xbfdccccc, 0xccccccc0}, /* -0.42285=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfda8747, 0xd793c3d1, 0xbfdc28f5, 0xc28f5c1c}, /* -0.41450=f(-0.44000)*/ +{61, 0,123,__LINE__, 0xbfd9fd82, 0xb5dc5e54, 0xbfdb851e, 0xb851eb78}, /* -0.40609=f(-0.43000)*/ +{62, 0,123,__LINE__, 0xbfd972bc, 0xace3f306, 0xbfdae147, 0xae147ad4}, /* -0.39762=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfd8e6f8, 0x12962e43, 0xbfda3d70, 0xa3d70a30}, /* -0.38909=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd85a37, 0x6b677db4, 0xbfd99999, 0x9999998c}, /* -0.38050=f(-0.40000)*/ +{62, 0,123,__LINE__, 0xbfd7cc7d, 0x6affe94c, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.37185=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd73dcc, 0xf4d6fa09, 0xbfd851eb, 0x851eb844}, /* -0.36314=f(-0.38000)*/ +{63, 0,123,__LINE__, 0xbfd6ae29, 0x1cbfa268, 0xbfd7ae14, 0x7ae147a0}, /* -0.35437=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd61d95, 0x27631e9d, 0xbfd70a3d, 0x70a3d6fc}, /* -0.34555=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd58c14, 0x8aa9c5ca, 0xbfd66666, 0x66666658}, /* -0.33667=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd4f9aa, 0xee10ca74, 0xbfd5c28f, 0x5c28f5b4}, /* -0.32773=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd4665c, 0x2aebeec6, 0xbfd51eb8, 0x51eb8510}, /* -0.31874=f(-0.33000)*/ +{59, 0,123,__LINE__, 0xbfd3d22c, 0x4c92394e, 0xbfd47ae1, 0x47ae146c}, /* -0.30970=f(-0.32000)*/ +{61, 0,123,__LINE__, 0xbfd33d1f, 0x9074c08c, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30060=f(-0.31000)*/ +{60, 0,123,__LINE__, 0xbfd2a73a, 0x661eaef8, 0xbfd33333, 0x33333324}, /* -0.29145=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd21081, 0x6f1dae73, 0xbfd28f5c, 0x28f5c280}, /* -0.28225=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd178f9, 0x7ed1f883, 0xbfd1eb85, 0x1eb851dc}, /* -0.27300=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd0e0a7, 0x9a25599f, 0xbfd147ae, 0x147ae138}, /* -0.26371=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd04790, 0xf72887c5, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25436=f(-0.26000)*/ +{57, 0,123,__LINE__, 0xbfcf5b75, 0xf92c80be, 0xbfcfffff, 0xffffffe0}, /* -0.24497=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfce2656, 0x82776e58, 0xbfceb851, 0xeb851e98}, /* -0.23554=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfccefcf, 0x168bece2, 0xbfcd70a3, 0xd70a3d50}, /* -0.22606=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcbb7eb, 0x9ee7d2f8, 0xbfcc28f5, 0xc28f5c08}, /* -0.21655=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfca7eb8, 0x6059c7bb, 0xbfcae147, 0xae147ac0}, /* -0.20699=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc94441, 0xf8f725ec, 0xbfc99999, 0x99999978}, /* -0.19739=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc80895, 0x5ddac671, 0xbfc851eb, 0x851eb830}, /* -0.18776=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc6cbbf, 0xd8acff2f, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17809=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc58dcf, 0x04f55e35, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16839=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc44ed0, 0xcd36e60b, 0xbfc47ae1, 0x47ae1458}, /* -0.15865=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc30ed3, 0x67d7cce1, 0xbfc33333, 0x33333310}, /* -0.14888=f(-0.15000)*/ +{61, 0,123,__LINE__, 0xbfc1cde5, 0x53d5fe42, 0xbfc1eb85, 0x1eb851c8}, /* -0.13909=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc08c15, 0x5549dc61, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12927=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbe92e4, 0xe371f633, 0xbfbeb851, 0xeb851e71}, /* -0.11942=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc0c17, 0xd8759634, 0xbfbc28f5, 0xc28f5be2}, /* -0.10955=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb983e2, 0x82e2cc06, 0xbfb99999, 0x99999953}, /* -0.09966=f(-0.00100)*/ +{63, 0,123,__LINE__, 0xbfb6fa64, 0x46b1cb0e, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08975=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb46fbc, 0xe9dfcbbb, 0xbfb47ae1, 0x47ae1435}, /* -0.07982=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1e40c, 0x8b780f98, 0xbfb1eb85, 0x1eb851a6}, /* -0.06988=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeaee7, 0x34b5dc99, 0xbfaeb851, 0xeb851e2d}, /* -0.05992=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99425, 0x97929e9b, 0xbfa99999, 0x9999990e}, /* -0.04995=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47816, 0x23768ccb, 0xbfa47ae1, 0x47ae13ef}, /* -0.03997=f(-0.04000)*/ +{62, 0,123,__LINE__, 0xbf9eb5f6, 0x44234a6b, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947a2e, 0x5daffdee, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847ab4, 0x8b1ef92b, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{62, 0,123,__LINE__, 0x3f847ab4, 0x8b1efd8f, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947a2e, 0x5db0001f, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb5f6, 0x44234c9d, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47816, 0x23768de3, 0x3fa47ae1, 0x47ae1508}, /* 0.03997=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99425, 0x97929fb4, 0x3fa99999, 0x99999a27}, /* 0.04995=f(0.05000)*/ +{63, 0,123,__LINE__, 0x3faeaee7, 0x34b5ddb1, 0x3faeb851, 0xeb851f46}, /* 0.05992=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1e40c, 0x8b781023, 0x3fb1eb85, 0x1eb85232}, /* 0.06988=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb46fbc, 0xe9dfcc46, 0x3fb47ae1, 0x47ae14c1}, /* 0.07982=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb6fa64, 0x46b1cb99, 0x3fb70a3d, 0x70a3d750}, /* 0.08975=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb983e2, 0x82e2cc91, 0x3fb99999, 0x999999df}, /* 0.09966=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc0c17, 0xd87596bf, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10955=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbe92e4, 0xe371f6be, 0x3fbeb851, 0xeb851efd}, /* 0.11942=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc08c15, 0x5549dca5, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12927=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1cde5, 0x53d5fe87, 0x3fc1eb85, 0x1eb8520e}, /* 0.13909=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc30ed3, 0x67d7cd26, 0x3fc33333, 0x33333356}, /* 0.14888=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc44ed0, 0xcd36e650, 0x3fc47ae1, 0x47ae149e}, /* 0.15865=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc58dcf, 0x04f55e79, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16839=f(0.17000)*/ +{61, 0,123,__LINE__, 0x3fc6cbbf, 0xd8acff73, 0x3fc70a3d, 0x70a3d72e}, /* 0.17809=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc80895, 0x5ddac6b5, 0x3fc851eb, 0x851eb876}, /* 0.18776=f(0.19000)*/ +{63, 0,123,__LINE__, 0x3fc94441, 0xf8f7262f, 0x3fc99999, 0x999999be}, /* 0.19739=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fca7eb8, 0x6059c7fe, 0x3fcae147, 0xae147b06}, /* 0.20699=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcbb7eb, 0x9ee7d33b, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21655=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fccefcf, 0x168bed26, 0x3fcd70a3, 0xd70a3d96}, /* 0.22606=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fce2656, 0x82776e9a, 0x3fceb851, 0xeb851ede}, /* 0.23554=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fcf5b75, 0xf92c8102, 0x3fd00000, 0x00000013}, /* 0.24497=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd04790, 0xf72887e6, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25436=f(0.26000)*/ +{63, 0,123,__LINE__, 0x3fd0e0a7, 0x9a2559c0, 0x3fd147ae, 0x147ae15b}, /* 0.26371=f(0.27000)*/ +{61, 0,123,__LINE__, 0x3fd178f9, 0x7ed1f8a4, 0x3fd1eb85, 0x1eb851ff}, /* 0.27300=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd21081, 0x6f1dae93, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28225=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd2a73a, 0x661eaf18, 0x3fd33333, 0x33333347}, /* 0.29145=f(0.30000)*/ +{61, 0,123,__LINE__, 0x3fd33d1f, 0x9074c0aa, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30060=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd3d22c, 0x4c92396e, 0x3fd47ae1, 0x47ae148f}, /* 0.30970=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd4665c, 0x2aebeee6, 0x3fd51eb8, 0x51eb8533}, /* 0.31874=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd4f9aa, 0xee10ca93, 0x3fd5c28f, 0x5c28f5d7}, /* 0.32773=f(0.34000)*/ +{63, 0,123,__LINE__, 0x3fd58c14, 0x8aa9c5e8, 0x3fd66666, 0x6666667b}, /* 0.33667=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd61d95, 0x27631ebc, 0x3fd70a3d, 0x70a3d71f}, /* 0.34555=f(0.36000)*/ +{63, 0,123,__LINE__, 0x3fd6ae29, 0x1cbfa286, 0x3fd7ae14, 0x7ae147c3}, /* 0.35437=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd73dcc, 0xf4d6fa28, 0x3fd851eb, 0x851eb867}, /* 0.36314=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd7cc7d, 0x6affe96b, 0x3fd8f5c2, 0x8f5c290b}, /* 0.37185=f(0.39000)*/ +{63, 0,123,__LINE__, 0x3fd85a37, 0x6b677dd3, 0x3fd99999, 0x999999af}, /* 0.38050=f(0.40000)*/ +{62, 0,123,__LINE__, 0x3fd8e6f8, 0x12962e60, 0x3fda3d70, 0xa3d70a53}, /* 0.38909=f(0.41000)*/ +{63, 0,123,__LINE__, 0x3fd972bc, 0xace3f325, 0x3fdae147, 0xae147af7}, /* 0.39762=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fd9fd82, 0xb5dc5e72, 0x3fdb851e, 0xb851eb9b}, /* 0.40609=f(0.43000)*/ +{63, 0,123,__LINE__, 0x3fda8747, 0xd793c3ef, 0x3fdc28f5, 0xc28f5c3f}, /* 0.41450=f(0.44000)*/ +{59, 0,123,__LINE__, 0x3fdb1009, 0xe9ee79d0, 0x3fdccccc, 0xcccccce3}, /* 0.42285=f(0.45000)*/ +{63, 0,123,__LINE__, 0x3fdb97c6, 0xf1db4044, 0x3fdd70a3, 0xd70a3d87}, /* 0.43113=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdc1e7d, 0x2081d8f4, 0x3fde147a, 0xe147ae2b}, /* 0.43936=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdca42a, 0xd266d583, 0x3fdeb851, 0xeb851ecf}, /* 0.44751=f(0.48000)*/ +{62, 0,123,__LINE__, 0x3fdd28ce, 0x8e85a002, 0x3fdf5c28, 0xf5c28f73}, /* 0.45561=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fddac67, 0x0561bb61, 0x3fe00000, 0x0000000b}, /* 0.46364=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fde2ef3, 0x101033ef, 0x3fe051eb, 0x851eb85d}, /* 0.47161=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fdeb071, 0xaf3a31a2, 0x3fe0a3d7, 0x0a3d70af}, /* 0.47951=f(0.52000)*/ +{62, 0,123,__LINE__, 0x3fdf30e2, 0x0a199684, 0x3fe0f5c2, 0x8f5c2901}, /* 0.48735=f(0.53000)*/ +{63, 0,123,__LINE__, 0x3fdfb043, 0x6d708c1b, 0x3fe147ae, 0x147ae153}, /* 0.49513=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe0174a, 0xa53e6cec, 0x3fe19999, 0x999999a5}, /* 0.50284=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe055eb, 0x9af3eb52, 0x3fe1eb85, 0x1eb851f7}, /* 0.51048=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe09404, 0x7359def4, 0x3fe23d70, 0xa3d70a49}, /* 0.51806=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe0d195, 0x1a9393c0, 0x3fe28f5c, 0x28f5c29b}, /* 0.52558=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe10e9d, 0x8cdbac50, 0x3fe2e147, 0xae147aed}, /* 0.53303=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe14b1d, 0xd5f90cea, 0x3fe33333, 0x3333333f}, /* 0.54041=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe18716, 0x10b3da4a, 0x3fe3851e, 0xb851eb91}, /* 0.54774=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe1c286, 0x664ad8d2, 0x3fe3d70a, 0x3d70a3e3}, /* 0.55499=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe1fd6f, 0x0de97390, 0x3fe428f5, 0xc28f5c35}, /* 0.56218=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe237d0, 0x4c1eae0a, 0x3fe47ae1, 0x47ae1487}, /* 0.56931=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe271aa, 0x72553edd, 0x3fe4cccc, 0xccccccd9}, /* 0.57637=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe2aafd, 0xde4d0ca7, 0x3fe51eb8, 0x51eb852b}, /* 0.58337=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe2e3ca, 0xf9964226, 0x3fe570a3, 0xd70a3d7d}, /* 0.59030=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe31c12, 0x390e2a02, 0x3fe5c28f, 0x5c28f5cf}, /* 0.59717=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe353d4, 0x1c5dfe70, 0x3fe6147a, 0xe147ae21}, /* 0.60398=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe38b11, 0x2d7bd4b6, 0x3fe66666, 0x66666673}, /* 0.61072=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe3c1ca, 0x002dc87f, 0x3fe6b851, 0xeb851ec5}, /* 0.61740=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe3f7ff, 0x318f872b, 0x3fe70a3d, 0x70a3d717}, /* 0.62402=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe42db1, 0x679a5777, 0x3fe75c28, 0xf5c28f69}, /* 0.63057=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe462e1, 0x50afb668, 0x3fe7ae14, 0x7ae147bb}, /* 0.63707=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe4978f, 0xa3269ee9, 0x3fe80000, 0x0000000d}, /* 0.64350=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe4cbbd, 0x1cdb8e78, 0x3fe851eb, 0x851eb85f}, /* 0.64987=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe4ff6a, 0x82c35607, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.65617=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe53298, 0xa080c394, 0x3fe8f5c2, 0x8f5c2903}, /* 0.66242=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe56548, 0x47fd2e08, 0x3fe947ae, 0x147ae155}, /* 0.66861=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe5977a, 0x5103ea9a, 0x3fe99999, 0x999999a7}, /* 0.67474=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe5c92f, 0x98e0b079, 0x3fe9eb85, 0x1eb851f9}, /* 0.68080=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe5fa69, 0x0200ed4d, 0x3fea3d70, 0xa3d70a4b}, /* 0.68681=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe62b27, 0x73980b19, 0x3fea8f5c, 0x28f5c29d}, /* 0.69276=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe65b6b, 0xd946a623, 0x3feae147, 0xae147aef}, /* 0.69865=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe68b37, 0x22c4afbc, 0x3feb3333, 0x33333341}, /* 0.70449=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe6ba8a, 0x438e792e, 0x3feb851e, 0xb851eb93}, /* 0.71027=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe6e966, 0x3294a09f, 0x3febd70a, 0x3d70a3e5}, /* 0.71599=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe717cb, 0xe9eed85b, 0x3fec28f5, 0xc28f5c37}, /* 0.72165=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe745bc, 0x66917fb7, 0x3fec7ae1, 0x47ae1489}, /* 0.72726=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe77338, 0xa80603c6, 0x3feccccc, 0xccccccdb}, /* 0.73281=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe7a041, 0xb025fcf0, 0x3fed1eb8, 0x51eb852d}, /* 0.73831=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe7ccd8, 0x82d8fdc5, 0x3fed70a3, 0xd70a3d7f}, /* 0.74375=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe7f8fe, 0x25d50682, 0x3fedc28f, 0x5c28f5d1}, /* 0.74914=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fe824b3, 0xa0619021, 0x3fee147a, 0xe147ae23}, /* 0.75448=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fe84ff9, 0xfb1d2135, 0x3fee6666, 0x66666675}, /* 0.75976=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fe87ad2, 0x3fc55e4e, 0x3feeb851, 0xeb851ec7}, /* 0.76499=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fe8a53d, 0x79018731, 0x3fef0a3d, 0x70a3d719}, /* 0.77017=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fe8cf3c, 0xb22f51ed, 0x3fef5c28, 0xf5c28f6b}, /* 0.77529=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fe8f8d0, 0xf732146f, 0x3fefae14, 0x7ae147bd}, /* 0.78037=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fe921fb, 0x54442d1f, 0x3ff00000, 0x00000007}, /* 0.78539=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fe94abc, 0xd5ca9ad6, 0x3ff028f5, 0xc28f5c30}, /* 0.79037=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fe97316, 0x882ab461, 0x3ff051eb, 0x851eb859}, /* 0.79529=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fe99b09, 0x77a1efcd, 0x3ff07ae1, 0x47ae1482}, /* 0.80017=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fe9c296, 0xb01fa9ac, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.80500=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fe9e9bf, 0x3d20dc77, 0x3ff0cccc, 0xccccccd4}, /* 0.80978=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fea1084, 0x298db881, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.81451=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fea36e6, 0x7f990cbc, 0x3ff11eb8, 0x51eb8526}, /* 0.81920=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fea5ce7, 0x48a17105, 0x3ff147ae, 0x147ae14f}, /* 0.82384=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fea8287, 0x8d14229d, 0x3ff170a3, 0xd70a3d78}, /* 0.82843=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3feaa7c8, 0x545183d3, 0x3ff19999, 0x999999a1}, /* 0.83298=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3feaccaa, 0xa4932ff4, 0x3ff1c28f, 0x5c28f5ca}, /* 0.83748=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3feaf12f, 0x82d394fc, 0x3ff1eb85, 0x1eb851f3}, /* 0.84194=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3feb1557, 0xf2b704ae, 0x3ff2147a, 0xe147ae1c}, /* 0.84635=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3feb3924, 0xf6762efe, 0x3ff23d70, 0xa3d70a45}, /* 0.85072=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3feb5c97, 0x8ec9f80c, 0x3ff26666, 0x6666666e}, /* 0.85505=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3feb7fb0, 0xbad89c41, 0x3ff28f5c, 0x28f5c297}, /* 0.85933=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3feba271, 0x78241558, 0x3ff2b851, 0xeb851ec0}, /* 0.86357=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3febc4da, 0xc279b37f, 0x3ff2e147, 0xae147ae9}, /* 0.86778=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3febe6ed, 0x93e2de10, 0x3ff30a3d, 0x70a3d712}, /* 0.87193=f(1.19000)*/ +{64, 0,123,__LINE__, 0xbff69b81, 0x54baf42e, 0xc01921fb, 0x54442d18}, /* -1.41296=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xbff5c97d, 0x37d98aa3, 0xc012d97c, 0x7f3321d2}, /* -1.36169=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xbff433b8, 0xa322ddd2, 0xc00921fb, 0x54442d18}, /* -1.26262=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xbff00fe9, 0x87ed02ff, 0xbff921fb, 0x54442d18}, /* -1.00388=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff00fe9, 0x87ed02ff, 0x3ff921fb, 0x54442d18}, /* 1.00388=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ff433b8, 0xa322ddd2, 0x400921fb, 0x54442d18}, /* 1.26262=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3ff5c97d, 0x37d98aa3, 0x4012d97c, 0x7f3321d2}, /* 1.36169=f(4.71238)*/ +{64, 0,123,__LINE__, 0xbff8997f, 0xbb8b19c0, 0xc03e0000, 0x00000000}, /* -1.53747=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbff8914e, 0x9558e14d, 0xc03c4ccc, 0xcccccccd}, /* -1.53547=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xbff88811, 0xbbe6dd19, 0xc03a9999, 0x9999999a}, /* -1.53322=f(-26.6000)*/ +{64, 0,123,__LINE__, 0xbff87d92, 0x7628865c, 0xc038e666, 0x66666667}, /* -1.53065=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xbff8718a, 0x0c21772b, 0xc0373333, 0x33333334}, /* -1.52772=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbff8639b, 0x79e21172, 0xc0358000, 0x00000001}, /* -1.52431=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xbff85349, 0xe792c6df, 0xc033cccc, 0xccccccce}, /* -1.52033=f(-19.8000)*/ +{64, 0,123,__LINE__, 0xbff83fe9, 0xca4b0fb2, 0xc0321999, 0x9999999b}, /* -1.51560=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xbff82888, 0xd516330c, 0xc0306666, 0x66666668}, /* -1.50989=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbff80bc5, 0x5b9fbf46, 0xc02d6666, 0x6666666a}, /* -1.50287=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xbff7e786, 0x2aa0157c, 0xc02a0000, 0x00000004}, /* -1.49402=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xbff7b872, 0x197c1745, 0xc0269999, 0x9999999e}, /* -1.48253=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xbff778d9, 0x2c06c36f, 0xc0233333, 0x33333338}, /* -1.46700=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xbff71e3e, 0x5f2c979f, 0xc01f9999, 0x999999a3}, /* -1.44488=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xbff692fa, 0x44218618, 0xc018cccc, 0xccccccd6}, /* -1.41088=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xbff5a250, 0x52114e62, 0xc0120000, 0x00000009}, /* -1.35212=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbff3a4f4, 0xa8668b6d, 0xc0066666, 0x66666678}, /* -1.22777=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbfeaa7c8, 0x545183ed, 0xbff19999, 0x999999bd}, /* -0.83298=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe14b1d, 0xd5f90cac, 0x3fe33333, 0x333332ec}, /* 0.54041=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff29219, 0xa497099b, 0x40026666, 0x66666654}, /* 1.16066=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3ff5368c, 0x951e9cfa, 0x400fffff, 0xffffffee}, /* 1.32581=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3ff65a9f, 0xe0f20774, 0x4016cccc, 0xccccccc4}, /* 1.39712=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3ff6fbcd, 0x16bebe3f, 0x401d9999, 0x99999991}, /* 1.43647=f(7.40000)*/ +{64, 0,123,__LINE__, 0x3ff761ab, 0xb0d2ec50, 0x40223333, 0x3333332f}, /* 1.46134=f(9.10000)*/ +{64, 0,123,__LINE__, 0x3ff7a7cd, 0x013209a5, 0x40259999, 0x99999995}, /* 1.47846=f(10.8000)*/ +{64, 0,123,__LINE__, 0x3ff7daff, 0x85a63058, 0x4028ffff, 0xfffffffb}, /* 1.49096=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3ff80201, 0xa882c932, 0x402c6666, 0x66666661}, /* 1.50049=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3ff820b5, 0xe69c2ec6, 0x402fcccc, 0xccccccc7}, /* 1.50798=f(15.9000)*/ +{64, 0,123,__LINE__, 0x3ff83981, 0x22b99e8c, 0x40319999, 0x99999997}, /* 1.51403=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3ff84df1, 0x81e40544, 0x40334ccc, 0xccccccca}, /* 1.51902=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3ff85f14, 0xd43d81be, 0x4034ffff, 0xfffffffd}, /* 1.52321=f(21.0000)*/ +{64, 0,123,__LINE__, 0x3ff86da8, 0x6687209e, 0x4036b333, 0x33333330}, /* 1.52677=f(22.7000)*/ +{64, 0,123,__LINE__, 0x3ff87a34, 0xf080f2f8, 0x40386666, 0x66666663}, /* 1.52983=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3ff8851f, 0xa51ef694, 0x403a1999, 0x99999996}, /* 1.53250=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3ff88eb5, 0x0616141e, 0x403bcccc, 0xccccccc9}, /* 1.53484=f(27.8000)*/ +{64, 0,123,__LINE__, 0x3ff8972f, 0xfc482372, 0x403d7fff, 0xfffffffc}, /* 1.53691=f(29.5000)*/ +0,}; +test_atan(m) {run_vector_1(m,atan_vec,(char *)(atan),"atan","dd"); } diff --git a/newlib/libm/test/atanf_vec.c b/newlib/libm/test/atanf_vec.c new file mode 100644 index 000000000..c907fe5ac --- /dev/null +++ b/newlib/libm/test/atanf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type atanf_vec[] = { +{11, 0,123,__LINE__, 0xbfec08aa, 0xed5c7cec, 0xbff33333, 0x33333333}, /* -0.87605=f(-1.20000)*/ +{11, 0,123,__LINE__, 0xbfebe6ed, 0x9fbacab8, 0xbff30a3d, 0x70a3d70a}, /* -0.87193=f(-1.19000)*/ +{11, 0,123,__LINE__, 0xbfebc4da, 0xb84ba54b, 0xbff2e147, 0xae147ae1}, /* -0.86778=f(-1.18000)*/ +{11, 0,123,__LINE__, 0xbfeba271, 0x6d27a852, 0xbff2b851, 0xeb851eb8}, /* -0.86357=f(-1.17000)*/ +{11, 0,123,__LINE__, 0xbfeb7fb0, 0xb4e51557, 0xbff28f5c, 0x28f5c28f}, /* -0.85933=f(-1.16000)*/ +{11, 0,123,__LINE__, 0xbfeb5c97, 0x88c89da5, 0xbff26666, 0x66666666}, /* -0.85505=f(-1.15000)*/ +{11, 0,123,__LINE__, 0xbfeb3924, 0xf3e86154, 0xbff23d70, 0xa3d70a3d}, /* -0.85072=f(-1.14000)*/ +{11, 0,123,__LINE__, 0xbfeb1557, 0xf23cdf13, 0xbff2147a, 0xe147ae14}, /* -0.84635=f(-1.13000)*/ +{11, 0,123,__LINE__, 0xbfeaf12f, 0x834a84a7, 0xbff1eb85, 0x1eb851eb}, /* -0.84194=f(-1.12000)*/ +{11, 0,123,__LINE__, 0xbfeaccaa, 0xa707e18c, 0xbff1c28f, 0x5c28f5c2}, /* -0.83748=f(-1.11000)*/ +{11, 0,123,__LINE__, 0xbfeaa7c8, 0x5a1121a9, 0xbff19999, 0x99999999}, /* -0.83298=f(-1.10000)*/ +{11, 0,123,__LINE__, 0xbfea8287, 0x94f6bb43, 0xbff170a3, 0xd70a3d70}, /* -0.82843=f(-1.09000)*/ +{11, 0,123,__LINE__, 0xbfea5ce7, 0x53d5c48d, 0xbff147ae, 0x147ae147}, /* -0.82384=f(-1.08000)*/ +{11, 0,123,__LINE__, 0xbfea36e6, 0x8c891b33, 0xbff11eb8, 0x51eb851e}, /* -0.81920=f(-1.07000)*/ +{11, 0,123,__LINE__, 0xbfea1084, 0x1aeb18ae, 0xbff0f5c2, 0x8f5c28f5}, /* -0.81451=f(-1.06000)*/ +{11, 0,123,__LINE__, 0xbfe9e9bf, 0x30abbe1d, 0xbff0cccc, 0xcccccccc}, /* -0.80978=f(-1.05000)*/ +{11, 0,123,__LINE__, 0xbfe9c296, 0xa60875e6, 0xbff0a3d7, 0x0a3d70a3}, /* -0.80500=f(-1.04000)*/ +{11, 0,123,__LINE__, 0xbfe99b09, 0x7047b825, 0xbff07ae1, 0x47ae147a}, /* -0.80017=f(-1.03000)*/ +{11, 0,123,__LINE__, 0xbfe97316, 0x83352f94, 0xbff051eb, 0x851eb851}, /* -0.79529=f(-1.02000)*/ +{11, 0,123,__LINE__, 0xbfe94abc, 0xd32a21dc, 0xbff028f5, 0xc28f5c28}, /* -0.79037=f(-1.01000)*/ +{13, 0,123,__LINE__, 0xbfe921fb, 0x54442d18, 0xbfefffff, 0xfffffffe}, /* -0.78539=f(-0.01000)*/ +{13, 0,123,__LINE__, 0xbfe8f8d0, 0xf9bf1e5c, 0xbfefae14, 0x7ae147ac}, /* -0.78037=f(-0.99000)*/ +{13, 0,123,__LINE__, 0xbfe8cf3c, 0xb73a3b37, 0xbfef5c28, 0xf5c28f5a}, /* -0.77529=f(-0.98000)*/ +{13, 0,123,__LINE__, 0xbfe8a53d, 0x810df2de, 0xbfef0a3d, 0x70a3d708}, /* -0.77017=f(-0.97000)*/ +{13, 0,123,__LINE__, 0xbfe87ad2, 0x395f26bf, 0xbfeeb851, 0xeb851eb6}, /* -0.76499=f(-0.96000)*/ +{13, 0,123,__LINE__, 0xbfe84ff9, 0xf77706bc, 0xbfee6666, 0x66666664}, /* -0.75976=f(-0.95000)*/ +{13, 0,123,__LINE__, 0xbfe824b3, 0x9f766e2d, 0xbfee147a, 0xe147ae12}, /* -0.75448=f(-0.94000)*/ +{12, 0,123,__LINE__, 0xbfe7f8fe, 0x26e8534c, 0xbfedc28f, 0x5c28f5c0}, /* -0.74914=f(-0.93000)*/ +{12, 0,123,__LINE__, 0xbfe7ccd8, 0x87ca915d, 0xbfed70a3, 0xd70a3d6e}, /* -0.74375=f(-0.92000)*/ +{12, 0,123,__LINE__, 0xbfe7a041, 0xb8a10028, 0xbfed1eb8, 0x51eb851c}, /* -0.73831=f(-0.91000)*/ +{12, 0,123,__LINE__, 0xbfe77338, 0xa16457bc, 0xbfeccccc, 0xccccccca}, /* -0.73281=f(-0.90000)*/ +{12, 0,123,__LINE__, 0xbfe745bc, 0x62166aea, 0xbfec7ae1, 0x47ae1478}, /* -0.72726=f(-0.89000)*/ +{12, 0,123,__LINE__, 0xbfe717cb, 0xe7ed10e9, 0xbfec28f5, 0xc28f5c26}, /* -0.72165=f(-0.88000)*/ +{12, 0,123,__LINE__, 0xbfe6e966, 0x33acb528, 0xbfebd70a, 0x3d70a3d4}, /* -0.71599=f(-0.87000)*/ +{12, 0,123,__LINE__, 0xbfe6ba8a, 0x482e8074, 0xbfeb851e, 0xb851eb82}, /* -0.71027=f(-0.86000)*/ +{12, 0,123,__LINE__, 0xbfe68b37, 0x2a6ebef1, 0xbfeb3333, 0x33333330}, /* -0.70449=f(-0.85000)*/ +{12, 0,123,__LINE__, 0xbfe65b6b, 0xd188e9f3, 0xbfeae147, 0xae147ade}, /* -0.69865=f(-0.84000)*/ +{12, 0,123,__LINE__, 0xbfe62b27, 0x6d01d27f, 0xbfea8f5c, 0x28f5c28c}, /* -0.69276=f(-0.83000)*/ +{12, 0,123,__LINE__, 0xbfe5fa69, 0x00056d81, 0xbfea3d70, 0xa3d70a3a}, /* -0.68681=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbfe5c92f, 0x9b0e5152, 0xbfe9eb85, 0x1eb851e8}, /* -0.68080=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbfe5977a, 0x54a52e38, 0xbfe99999, 0x99999996}, /* -0.67474=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbfe56548, 0x4e320115, 0xbfe947ae, 0x147ae144}, /* -0.66861=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbfe53298, 0x96200713, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.66242=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbfe4ff6a, 0x7f7bb194, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.65617=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbfe4cbbd, 0x15582c7e, 0xbfe851eb, 0x851eb84e}, /* -0.64987=f(-0.76000)*/ +{14, 0,123,__LINE__, 0xbfe4978f, 0xa1fb0886, 0xbfe7ffff, 0xfffffffc}, /* -0.64350=f(-0.75000)*/ +{14, 0,123,__LINE__, 0xbfe462e1, 0x5335bbc3, 0xbfe7ae14, 0x7ae147aa}, /* -0.63707=f(-0.74000)*/ +{14, 0,123,__LINE__, 0xbfe42db1, 0x6e1b3f75, 0xbfe75c28, 0xf5c28f58}, /* -0.63057=f(-0.73000)*/ +{13, 0,123,__LINE__, 0xbfe3f7ff, 0x3959c7d8, 0xbfe70a3d, 0x70a3d706}, /* -0.62402=f(-0.72000)*/ +{13, 0,123,__LINE__, 0xbfe3c1c9, 0xf6f0d59c, 0xbfe6b851, 0xeb851eb4}, /* -0.61740=f(-0.71000)*/ +{13, 0,123,__LINE__, 0xbfe38b11, 0x2c1e201f, 0xbfe66666, 0x66666662}, /* -0.61072=f(-0.70000)*/ +{13, 0,123,__LINE__, 0xbfe353d4, 0x193fe9ed, 0xbfe6147a, 0xe147ae10}, /* -0.60398=f(-0.69000)*/ +{13, 0,123,__LINE__, 0xbfe31c12, 0x3e930158, 0xbfe5c28f, 0x5c28f5be}, /* -0.59717=f(-0.68000)*/ +{13, 0,123,__LINE__, 0xbfe2e3cb, 0x01e4390e, 0xbfe570a3, 0xd70a3d6c}, /* -0.59030=f(-0.67000)*/ +{13, 0,123,__LINE__, 0xbfe2aafd, 0xe986dd76, 0xbfe51eb8, 0x51eb851a}, /* -0.58337=f(-0.66000)*/ +{13, 0,123,__LINE__, 0xbfe271aa, 0x6ee11b45, 0xbfe4cccc, 0xccccccc8}, /* -0.57637=f(-0.65000)*/ +{13, 0,123,__LINE__, 0xbfe237d0, 0x460f2953, 0xbfe47ae1, 0x47ae1476}, /* -0.56931=f(-0.64000)*/ +{13, 0,123,__LINE__, 0xbfe1fd6f, 0x0a84c353, 0xbfe428f5, 0xc28f5c24}, /* -0.56218=f(-0.63000)*/ +{14, 0,123,__LINE__, 0xbfe1c286, 0x6531e75a, 0xbfe3d70a, 0x3d70a3d2}, /* -0.55499=f(-0.62000)*/ +{14, 0,123,__LINE__, 0xbfe18716, 0x19161382, 0xbfe3851e, 0xb851eb80}, /* -0.54774=f(-0.61000)*/ +{14, 0,123,__LINE__, 0xbfe14b1d, 0xde10c1f6, 0xbfe33333, 0x3333332e}, /* -0.54041=f(-0.60000)*/ +{14, 0,123,__LINE__, 0xbfe10e9d, 0x7e7f3fbb, 0xbfe2e147, 0xae147adc}, /* -0.53303=f(-0.59000)*/ +{14, 0,123,__LINE__, 0xbfe0d195, 0x0c70aa84, 0xbfe28f5c, 0x28f5c28a}, /* -0.52558=f(-0.58000)*/ +{14, 0,123,__LINE__, 0xbfe09404, 0x778b2a8c, 0xbfe23d70, 0xa3d70a38}, /* -0.51806=f(-0.57000)*/ +{15, 0,123,__LINE__, 0xbfe055eb, 0x9964e91c, 0xbfe1eb85, 0x1eb851e6}, /* -0.51048=f(-0.56000)*/ +{15, 0,123,__LINE__, 0xbfe0174a, 0xa8ef77cf, 0xbfe19999, 0x99999994}, /* -0.50284=f(-0.55000)*/ +{10, 0,123,__LINE__, 0xbfdfb043, 0x6ef23d12, 0xbfe147ae, 0x147ae142}, /* -0.49513=f(-0.54000)*/ +{10, 0,123,__LINE__, 0xbfdf30e1, 0xf58d3f1e, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.48735=f(-0.53000)*/ +{10, 0,123,__LINE__, 0xbfdeb071, 0x9e18ea06, 0xbfe0a3d7, 0x0a3d709e}, /* -0.47951=f(-0.52000)*/ +{10, 0,123,__LINE__, 0xbfde2ef3, 0x066ab640, 0xbfe051eb, 0x851eb84c}, /* -0.47161=f(-0.51000)*/ +{10, 0,123,__LINE__, 0xbfddac67, 0x133304db, 0xbfdfffff, 0xfffffff4}, /* -0.46364=f(-0.50000)*/ +{14, 0,123,__LINE__, 0xbfdd28ce, 0xa41ae9c9, 0xbfdf5c28, 0xf5c28f50}, /* -0.45561=f(-0.49000)*/ +{14, 0,123,__LINE__, 0xbfdca42a, 0xcd1ebc0a, 0xbfdeb851, 0xeb851eac}, /* -0.44751=f(-0.48000)*/ +{14, 0,123,__LINE__, 0xbfdc1e7d, 0x1f8f11f0, 0xbfde147a, 0xe147ae08}, /* -0.43936=f(-0.47000)*/ +{13, 0,123,__LINE__, 0xbfdb97c6, 0xec3383f5, 0xbfdd70a3, 0xd70a3d64}, /* -0.43113=f(-0.46000)*/ +{13, 0,123,__LINE__, 0xbfdb1009, 0xdce51463, 0xbfdccccc, 0xccccccc0}, /* -0.42285=f(-0.45000)*/ +{13, 0,123,__LINE__, 0xbfda8747, 0xd7f49e2d, 0xbfdc28f5, 0xc28f5c1c}, /* -0.41450=f(-0.44000)*/ +{14, 0,123,__LINE__, 0xbfd9fd82, 0xb105defd, 0xbfdb851e, 0xb851eb78}, /* -0.40609=f(-0.43000)*/ +{14, 0,123,__LINE__, 0xbfd972bc, 0x9d13b9e5, 0xbfdae147, 0xae147ad4}, /* -0.39762=f(-0.42000)*/ +{14, 0,123,__LINE__, 0xbfd8e6f7, 0xf7e032a0, 0xbfda3d70, 0xa3d70a30}, /* -0.38909=f(-0.41000)*/ +{15, 0,123,__LINE__, 0xbfd85a37, 0x52e35aa0, 0xbfd99999, 0x9999998c}, /* -0.38050=f(-0.40000)*/ +{12, 0,123,__LINE__, 0xbfd7cc7d, 0x50b6ef80, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.37185=f(-0.39000)*/ +{12, 0,123,__LINE__, 0xbfd73dcc, 0xf225a680, 0xbfd851eb, 0x851eb844}, /* -0.36314=f(-0.38000)*/ +{15, 0,123,__LINE__, 0xbfd6ae29, 0x2776bf00, 0xbfd7ae14, 0x7ae147a0}, /* -0.35437=f(-0.37000)*/ +{15, 0,123,__LINE__, 0xbfd61d95, 0x30061180, 0xbfd70a3d, 0x70a3d6fc}, /* -0.34555=f(-0.36000)*/ +{14, 0,123,__LINE__, 0xbfd58c14, 0x737193c0, 0xbfd66666, 0x66666658}, /* -0.33667=f(-0.35000)*/ +{15, 0,123,__LINE__, 0xbfd4f9aa, 0xf9762600, 0xbfd5c28f, 0x5c28f5b4}, /* -0.32773=f(-0.34000)*/ +{15, 0,123,__LINE__, 0xbfd4665c, 0x2f8517e0, 0xbfd51eb8, 0x51eb8510}, /* -0.31874=f(-0.33000)*/ +{13, 0,123,__LINE__, 0xbfd3d22c, 0x4a7cb480, 0xbfd47ae1, 0x47ae146c}, /* -0.30970=f(-0.32000)*/ +{16, 0,123,__LINE__, 0xbfd33d1f, 0x9f484cc0, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30060=f(-0.31000)*/ +{15, 0,123,__LINE__, 0xbfd2a73a, 0x6c6f7c40, 0xbfd33333, 0x33333324}, /* -0.29145=f(-0.30000)*/ +{16, 0,123,__LINE__, 0xbfd21081, 0x588f2900, 0xbfd28f5c, 0x28f5c280}, /* -0.28225=f(-0.29000)*/ +{16, 0,123,__LINE__, 0xbfd178f9, 0x6cc49e40, 0xbfd1eb85, 0x1eb851dc}, /* -0.27300=f(-0.28000)*/ +{15, 0,123,__LINE__, 0xbfd0e0a7, 0x94363240, 0xbfd147ae, 0x147ae138}, /* -0.26371=f(-0.27000)*/ +{16, 0,123,__LINE__, 0xbfd04790, 0xf5fb5800, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25436=f(-0.26000)*/ +{11, 0,123,__LINE__, 0xbfcf5b76, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* -0.24497=f(-0.25000)*/ +{16, 0,123,__LINE__, 0xbfce2656, 0x840dc880, 0xbfceb851, 0xeb851e98}, /* -0.23554=f(-0.24000)*/ +{15, 0,123,__LINE__, 0xbfccefcf, 0x063f30c0, 0xbfcd70a3, 0xd70a3d50}, /* -0.22606=f(-0.23000)*/ +{13, 0,123,__LINE__, 0xbfcbb7eb, 0x9c333c80, 0xbfcc28f5, 0xc28f5c08}, /* -0.21655=f(-0.22000)*/ +{16, 0,123,__LINE__, 0xbfca7eb8, 0x55f62fc0, 0xbfcae147, 0xae147ac0}, /* -0.20699=f(-0.21000)*/ +{16, 0,123,__LINE__, 0xbfc94442, 0x06511080, 0xbfc99999, 0x99999978}, /* -0.19739=f(-0.20000)*/ +{17, 0,123,__LINE__, 0xbfc80895, 0x50b34780, 0xbfc851eb, 0x851eb830}, /* -0.18776=f(-0.19000)*/ +{15, 0,123,__LINE__, 0xbfc6cbbf, 0xe8cc1980, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17809=f(-0.18000)*/ +{17, 0,123,__LINE__, 0xbfc58dce, 0xfff6b0e0, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16839=f(-0.17000)*/ +{18, 0,123,__LINE__, 0xbfc44ed0, 0xc52f3e80, 0xbfc47ae1, 0x47ae1458}, /* -0.15865=f(-0.16000)*/ +{18, 0,123,__LINE__, 0xbfc30ed3, 0x664e2680, 0xbfc33333, 0x33333310}, /* -0.14888=f(-0.15000)*/ +{18, 0,123,__LINE__, 0xbfc1cde5, 0x53311580, 0xbfc1eb85, 0x1eb851c8}, /* -0.13909=f(-0.14000)*/ +{18, 0,123,__LINE__, 0xbfc08c15, 0x46750500, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12927=f(-0.13000)*/ +{18, 0,123,__LINE__, 0xbfbe92e4, 0xd5d09840, 0xbfbeb851, 0xeb851e71}, /* -0.11942=f(-0.12000)*/ +{18, 0,123,__LINE__, 0xbfbc0c17, 0xd70cdd40, 0xbfbc28f5, 0xc28f5be2}, /* -0.10955=f(-0.11000)*/ +{19, 0,123,__LINE__, 0xbfb983e2, 0x8660f8a0, 0xbfb99999, 0x99999953}, /* -0.09966=f(-0.00100)*/ +{15, 0,123,__LINE__, 0xbfb6fa64, 0x63cc7980, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08975=f(-0.09000)*/ +{19, 0,123,__LINE__, 0xbfb46fbc, 0xd99dc740, 0xbfb47ae1, 0x47ae1435}, /* -0.07982=f(-0.08000)*/ +{20, 0,123,__LINE__, 0xbfb1e40c, 0x83d681a0, 0xbfb1eb85, 0x1eb851a6}, /* -0.06988=f(-0.07000)*/ +{19, 0,123,__LINE__, 0xbfaeaee7, 0x31ef0d20, 0xbfaeb851, 0xeb851e2d}, /* -0.05992=f(-0.06000)*/ +{20, 0,123,__LINE__, 0xbfa99425, 0x9ffea300, 0xbfa99999, 0x9999990e}, /* -0.04995=f(-0.05000)*/ +{22, 0,123,__LINE__, 0xbfa47816, 0x2148ba40, 0xbfa47ae1, 0x47ae13ef}, /* -0.03997=f(-0.04000)*/ +{20, 0,123,__LINE__, 0xbf9eb5f6, 0x466748c0, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{24, 0,123,__LINE__, 0xbf947a2e, 0x4a3db3c0, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{25, 0,123,__LINE__, 0xbf847ab4, 0x87ae2540, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{25, 0,123,__LINE__, 0x3f847ab4, 0x87ae2540, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{24, 0,123,__LINE__, 0x3f947a2e, 0x4a3db3c0, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{20, 0,123,__LINE__, 0x3f9eb5f6, 0x466748c0, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{22, 0,123,__LINE__, 0x3fa47816, 0x2148ba40, 0x3fa47ae1, 0x47ae1508}, /* 0.03997=f(0.04000)*/ +{20, 0,123,__LINE__, 0x3fa99425, 0x9ffea300, 0x3fa99999, 0x99999a27}, /* 0.04995=f(0.05000)*/ +{19, 0,123,__LINE__, 0x3faeaee7, 0x31ef0d20, 0x3faeb851, 0xeb851f46}, /* 0.05992=f(0.06000)*/ +{20, 0,123,__LINE__, 0x3fb1e40c, 0x83d681a0, 0x3fb1eb85, 0x1eb85232}, /* 0.06988=f(0.07000)*/ +{19, 0,123,__LINE__, 0x3fb46fbc, 0xd99dc740, 0x3fb47ae1, 0x47ae14c1}, /* 0.07982=f(0.08000)*/ +{15, 0,123,__LINE__, 0x3fb6fa64, 0x63cc7980, 0x3fb70a3d, 0x70a3d750}, /* 0.08975=f(0.09000)*/ +{19, 0,123,__LINE__, 0x3fb983e2, 0x8660f8a0, 0x3fb99999, 0x999999df}, /* 0.09966=f(0.10000)*/ +{18, 0,123,__LINE__, 0x3fbc0c17, 0xd70cdd40, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10955=f(0.11000)*/ +{18, 0,123,__LINE__, 0x3fbe92e4, 0xd5d09840, 0x3fbeb851, 0xeb851efd}, /* 0.11942=f(0.12000)*/ +{18, 0,123,__LINE__, 0x3fc08c15, 0x46750500, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12927=f(0.13000)*/ +{18, 0,123,__LINE__, 0x3fc1cde5, 0x53311580, 0x3fc1eb85, 0x1eb8520e}, /* 0.13909=f(0.14000)*/ +{18, 0,123,__LINE__, 0x3fc30ed3, 0x664e2680, 0x3fc33333, 0x33333356}, /* 0.14888=f(0.15000)*/ +{18, 0,123,__LINE__, 0x3fc44ed0, 0xc52f3e80, 0x3fc47ae1, 0x47ae149e}, /* 0.15865=f(0.16000)*/ +{17, 0,123,__LINE__, 0x3fc58dce, 0xfff6b0e0, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16839=f(0.17000)*/ +{15, 0,123,__LINE__, 0x3fc6cbbf, 0xe8cc1980, 0x3fc70a3d, 0x70a3d72e}, /* 0.17809=f(0.18000)*/ +{17, 0,123,__LINE__, 0x3fc80895, 0x50b34780, 0x3fc851eb, 0x851eb876}, /* 0.18776=f(0.19000)*/ +{16, 0,123,__LINE__, 0x3fc94442, 0x06511080, 0x3fc99999, 0x999999be}, /* 0.19739=f(0.20000)*/ +{16, 0,123,__LINE__, 0x3fca7eb8, 0x55f62fc0, 0x3fcae147, 0xae147b06}, /* 0.20699=f(0.21000)*/ +{13, 0,123,__LINE__, 0x3fcbb7eb, 0x9c333c80, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21655=f(0.22000)*/ +{15, 0,123,__LINE__, 0x3fccefcf, 0x063f30c0, 0x3fcd70a3, 0xd70a3d96}, /* 0.22606=f(0.23000)*/ +{16, 0,123,__LINE__, 0x3fce2656, 0x840dc880, 0x3fceb851, 0xeb851ede}, /* 0.23554=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fcf5b76, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.24497=f(0.25000)*/ +{16, 0,123,__LINE__, 0x3fd04790, 0xf5fb5800, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25436=f(0.26000)*/ +{15, 0,123,__LINE__, 0x3fd0e0a7, 0x94363240, 0x3fd147ae, 0x147ae15b}, /* 0.26371=f(0.27000)*/ +{16, 0,123,__LINE__, 0x3fd178f9, 0x6cc49e40, 0x3fd1eb85, 0x1eb851ff}, /* 0.27300=f(0.28000)*/ +{16, 0,123,__LINE__, 0x3fd21081, 0x588f2900, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28225=f(0.29000)*/ +{15, 0,123,__LINE__, 0x3fd2a73a, 0x6c6f7c40, 0x3fd33333, 0x33333347}, /* 0.29145=f(0.30000)*/ +{16, 0,123,__LINE__, 0x3fd33d1f, 0x9f484cc0, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30060=f(0.31000)*/ +{13, 0,123,__LINE__, 0x3fd3d22c, 0x4a7cb480, 0x3fd47ae1, 0x47ae148f}, /* 0.30970=f(0.32000)*/ +{15, 0,123,__LINE__, 0x3fd4665c, 0x2f8517e0, 0x3fd51eb8, 0x51eb8533}, /* 0.31874=f(0.33000)*/ +{15, 0,123,__LINE__, 0x3fd4f9aa, 0xf9762600, 0x3fd5c28f, 0x5c28f5d7}, /* 0.32773=f(0.34000)*/ +{14, 0,123,__LINE__, 0x3fd58c14, 0x737193c0, 0x3fd66666, 0x6666667b}, /* 0.33667=f(0.35000)*/ +{15, 0,123,__LINE__, 0x3fd61d95, 0x30061180, 0x3fd70a3d, 0x70a3d71f}, /* 0.34555=f(0.36000)*/ +{15, 0,123,__LINE__, 0x3fd6ae29, 0x2776bf00, 0x3fd7ae14, 0x7ae147c3}, /* 0.35437=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fd73dcc, 0xf225a680, 0x3fd851eb, 0x851eb867}, /* 0.36314=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3fd7cc7d, 0x50b6ef80, 0x3fd8f5c2, 0x8f5c290b}, /* 0.37185=f(0.39000)*/ +{15, 0,123,__LINE__, 0x3fd85a37, 0x52e35aa0, 0x3fd99999, 0x999999af}, /* 0.38050=f(0.40000)*/ +{14, 0,123,__LINE__, 0x3fd8e6f7, 0xf7e032a0, 0x3fda3d70, 0xa3d70a53}, /* 0.38909=f(0.41000)*/ +{14, 0,123,__LINE__, 0x3fd972bc, 0x9d13b9e5, 0x3fdae147, 0xae147af7}, /* 0.39762=f(0.42000)*/ +{14, 0,123,__LINE__, 0x3fd9fd82, 0xb105defd, 0x3fdb851e, 0xb851eb9b}, /* 0.40609=f(0.43000)*/ +{13, 0,123,__LINE__, 0x3fda8747, 0xd7f49e2d, 0x3fdc28f5, 0xc28f5c3f}, /* 0.41450=f(0.44000)*/ +{13, 0,123,__LINE__, 0x3fdb1009, 0xdce51463, 0x3fdccccc, 0xcccccce3}, /* 0.42285=f(0.45000)*/ +{13, 0,123,__LINE__, 0x3fdb97c6, 0xec3383f5, 0x3fdd70a3, 0xd70a3d87}, /* 0.43113=f(0.46000)*/ +{14, 0,123,__LINE__, 0x3fdc1e7d, 0x1f8f11f0, 0x3fde147a, 0xe147ae2b}, /* 0.43936=f(0.47000)*/ +{14, 0,123,__LINE__, 0x3fdca42a, 0xcd1ebc0a, 0x3fdeb851, 0xeb851ecf}, /* 0.44751=f(0.48000)*/ +{14, 0,123,__LINE__, 0x3fdd28ce, 0xa41ae9c9, 0x3fdf5c28, 0xf5c28f73}, /* 0.45561=f(0.49000)*/ +{10, 0,123,__LINE__, 0x3fddac67, 0x133304db, 0x3fe00000, 0x0000000b}, /* 0.46364=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fde2ef3, 0x066ab640, 0x3fe051eb, 0x851eb85d}, /* 0.47161=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fdeb071, 0x9e18ea06, 0x3fe0a3d7, 0x0a3d70af}, /* 0.47951=f(0.52000)*/ +{10, 0,123,__LINE__, 0x3fdf30e1, 0xf58d3f1e, 0x3fe0f5c2, 0x8f5c2901}, /* 0.48735=f(0.53000)*/ +{10, 0,123,__LINE__, 0x3fdfb043, 0x6ef23d12, 0x3fe147ae, 0x147ae153}, /* 0.49513=f(0.54000)*/ +{15, 0,123,__LINE__, 0x3fe0174a, 0xa8ef77cf, 0x3fe19999, 0x999999a5}, /* 0.50284=f(0.55000)*/ +{15, 0,123,__LINE__, 0x3fe055eb, 0x9964e91c, 0x3fe1eb85, 0x1eb851f7}, /* 0.51048=f(0.56000)*/ +{14, 0,123,__LINE__, 0x3fe09404, 0x778b2a8c, 0x3fe23d70, 0xa3d70a49}, /* 0.51806=f(0.57000)*/ +{14, 0,123,__LINE__, 0x3fe0d195, 0x0c70aa84, 0x3fe28f5c, 0x28f5c29b}, /* 0.52558=f(0.58000)*/ +{14, 0,123,__LINE__, 0x3fe10e9d, 0x7e7f3fbb, 0x3fe2e147, 0xae147aed}, /* 0.53303=f(0.59000)*/ +{14, 0,123,__LINE__, 0x3fe14b1d, 0xde10c1f6, 0x3fe33333, 0x3333333f}, /* 0.54041=f(0.60000)*/ +{14, 0,123,__LINE__, 0x3fe18716, 0x19161382, 0x3fe3851e, 0xb851eb91}, /* 0.54774=f(0.61000)*/ +{14, 0,123,__LINE__, 0x3fe1c286, 0x6531e75a, 0x3fe3d70a, 0x3d70a3e3}, /* 0.55499=f(0.62000)*/ +{13, 0,123,__LINE__, 0x3fe1fd6f, 0x0a84c353, 0x3fe428f5, 0xc28f5c35}, /* 0.56218=f(0.63000)*/ +{13, 0,123,__LINE__, 0x3fe237d0, 0x460f2953, 0x3fe47ae1, 0x47ae1487}, /* 0.56931=f(0.64000)*/ +{13, 0,123,__LINE__, 0x3fe271aa, 0x6ee11b45, 0x3fe4cccc, 0xccccccd9}, /* 0.57637=f(0.65000)*/ +{13, 0,123,__LINE__, 0x3fe2aafd, 0xe986dd76, 0x3fe51eb8, 0x51eb852b}, /* 0.58337=f(0.66000)*/ +{13, 0,123,__LINE__, 0x3fe2e3cb, 0x01e4390e, 0x3fe570a3, 0xd70a3d7d}, /* 0.59030=f(0.67000)*/ +{13, 0,123,__LINE__, 0x3fe31c12, 0x3e930158, 0x3fe5c28f, 0x5c28f5cf}, /* 0.59717=f(0.68000)*/ +{13, 0,123,__LINE__, 0x3fe353d4, 0x193fe9ed, 0x3fe6147a, 0xe147ae21}, /* 0.60398=f(0.69000)*/ +{13, 0,123,__LINE__, 0x3fe38b11, 0x2c1e201f, 0x3fe66666, 0x66666673}, /* 0.61072=f(0.70000)*/ +{13, 0,123,__LINE__, 0x3fe3c1c9, 0xf6f0d59c, 0x3fe6b851, 0xeb851ec5}, /* 0.61740=f(0.71000)*/ +{13, 0,123,__LINE__, 0x3fe3f7ff, 0x3959c7d8, 0x3fe70a3d, 0x70a3d717}, /* 0.62402=f(0.72000)*/ +{14, 0,123,__LINE__, 0x3fe42db1, 0x6e1b3f75, 0x3fe75c28, 0xf5c28f69}, /* 0.63057=f(0.73000)*/ +{14, 0,123,__LINE__, 0x3fe462e1, 0x5335bbc3, 0x3fe7ae14, 0x7ae147bb}, /* 0.63707=f(0.74000)*/ +{14, 0,123,__LINE__, 0x3fe4978f, 0xa1fb0886, 0x3fe80000, 0x0000000d}, /* 0.64350=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe4cbbd, 0x15582c7e, 0x3fe851eb, 0x851eb85f}, /* 0.64987=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe4ff6a, 0x7f7bb194, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.65617=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe53298, 0x96200713, 0x3fe8f5c2, 0x8f5c2903}, /* 0.66242=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe56548, 0x4e320115, 0x3fe947ae, 0x147ae155}, /* 0.66861=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe5977a, 0x54a52e38, 0x3fe99999, 0x999999a7}, /* 0.67474=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe5c92f, 0x9b0e5152, 0x3fe9eb85, 0x1eb851f9}, /* 0.68080=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3fe5fa69, 0x00056d81, 0x3fea3d70, 0xa3d70a4b}, /* 0.68681=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3fe62b27, 0x6d01d27f, 0x3fea8f5c, 0x28f5c29d}, /* 0.69276=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3fe65b6b, 0xd188e9f3, 0x3feae147, 0xae147aef}, /* 0.69865=f(0.84000)*/ +{12, 0,123,__LINE__, 0x3fe68b37, 0x2a6ebef1, 0x3feb3333, 0x33333341}, /* 0.70449=f(0.85000)*/ +{12, 0,123,__LINE__, 0x3fe6ba8a, 0x482e8074, 0x3feb851e, 0xb851eb93}, /* 0.71027=f(0.86000)*/ +{12, 0,123,__LINE__, 0x3fe6e966, 0x33acb528, 0x3febd70a, 0x3d70a3e5}, /* 0.71599=f(0.87000)*/ +{12, 0,123,__LINE__, 0x3fe717cb, 0xe7ed10e9, 0x3fec28f5, 0xc28f5c37}, /* 0.72165=f(0.88000)*/ +{12, 0,123,__LINE__, 0x3fe745bc, 0x62166aea, 0x3fec7ae1, 0x47ae1489}, /* 0.72726=f(0.89000)*/ +{12, 0,123,__LINE__, 0x3fe77338, 0xa16457bc, 0x3feccccc, 0xccccccdb}, /* 0.73281=f(0.90000)*/ +{12, 0,123,__LINE__, 0x3fe7a041, 0xb8a10028, 0x3fed1eb8, 0x51eb852d}, /* 0.73831=f(0.91000)*/ +{12, 0,123,__LINE__, 0x3fe7ccd8, 0x87ca915d, 0x3fed70a3, 0xd70a3d7f}, /* 0.74375=f(0.92000)*/ +{12, 0,123,__LINE__, 0x3fe7f8fe, 0x26e8534c, 0x3fedc28f, 0x5c28f5d1}, /* 0.74914=f(0.93000)*/ +{13, 0,123,__LINE__, 0x3fe824b3, 0x9f766e2d, 0x3fee147a, 0xe147ae23}, /* 0.75448=f(0.94000)*/ +{13, 0,123,__LINE__, 0x3fe84ff9, 0xf77706bc, 0x3fee6666, 0x66666675}, /* 0.75976=f(0.95000)*/ +{13, 0,123,__LINE__, 0x3fe87ad2, 0x395f26bf, 0x3feeb851, 0xeb851ec7}, /* 0.76499=f(0.96000)*/ +{13, 0,123,__LINE__, 0x3fe8a53d, 0x810df2de, 0x3fef0a3d, 0x70a3d719}, /* 0.77017=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3fe8cf3c, 0xb73a3b37, 0x3fef5c28, 0xf5c28f6b}, /* 0.77529=f(0.98000)*/ +{13, 0,123,__LINE__, 0x3fe8f8d0, 0xf9bf1e5c, 0x3fefae14, 0x7ae147bd}, /* 0.78037=f(0.99000)*/ +{13, 0,123,__LINE__, 0x3fe921fb, 0x54442d18, 0x3ff00000, 0x00000007}, /* 0.78539=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fe94abc, 0xd32a21dc, 0x3ff028f5, 0xc28f5c30}, /* 0.79037=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3fe97316, 0x83352f94, 0x3ff051eb, 0x851eb859}, /* 0.79529=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fe99b09, 0x7047b825, 0x3ff07ae1, 0x47ae1482}, /* 0.80017=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fe9c296, 0xa60875e6, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.80500=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3fe9e9bf, 0x30abbe1d, 0x3ff0cccc, 0xccccccd4}, /* 0.80978=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3fea1084, 0x1aeb18ae, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.81451=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fea36e6, 0x8c891b33, 0x3ff11eb8, 0x51eb8526}, /* 0.81920=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fea5ce7, 0x53d5c48d, 0x3ff147ae, 0x147ae14f}, /* 0.82384=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fea8287, 0x94f6bb43, 0x3ff170a3, 0xd70a3d78}, /* 0.82843=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3feaa7c8, 0x5a1121a9, 0x3ff19999, 0x999999a1}, /* 0.83298=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3feaccaa, 0xa707e18c, 0x3ff1c28f, 0x5c28f5ca}, /* 0.83748=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3feaf12f, 0x834a84a7, 0x3ff1eb85, 0x1eb851f3}, /* 0.84194=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3feb1557, 0xf23cdf13, 0x3ff2147a, 0xe147ae1c}, /* 0.84635=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3feb3924, 0xf3e86154, 0x3ff23d70, 0xa3d70a45}, /* 0.85072=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3feb5c97, 0x88c89da5, 0x3ff26666, 0x6666666e}, /* 0.85505=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3feb7fb0, 0xb4e51557, 0x3ff28f5c, 0x28f5c297}, /* 0.85933=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3feba271, 0x6d27a852, 0x3ff2b851, 0xeb851ec0}, /* 0.86357=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3febc4da, 0xb84ba54b, 0x3ff2e147, 0xae147ae9}, /* 0.86778=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3febe6ed, 0x9fbacab8, 0x3ff30a3d, 0x70a3d712}, /* 0.87193=f(1.19000)*/ +{12, 0,123,__LINE__, 0xbff69b81, 0x570da865, 0xc01921fb, 0x54442d18}, /* -1.41296=f(-6.28318)*/ +{12, 0,123,__LINE__, 0xbff5c97d, 0x3a56b9b2, 0xc012d97c, 0x7f3321d2}, /* -1.36169=f(-4.71238)*/ +{12, 0,123,__LINE__, 0xbff433b8, 0xa19dfff7, 0xc00921fb, 0x54442d18}, /* -1.26262=f(-3.14159)*/ +{12, 0,123,__LINE__, 0xbff00fe9, 0x8afa9c80, 0xbff921fb, 0x54442d18}, /* -1.00388=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{12, 0,123,__LINE__, 0x3ff00fe9, 0x8afa9c80, 0x3ff921fb, 0x54442d18}, /* 1.00388=f(1.57079)*/ +{12, 0,123,__LINE__, 0x3ff433b8, 0xa19dfff7, 0x400921fb, 0x54442d18}, /* 1.26262=f(3.14159)*/ +{12, 0,123,__LINE__, 0x3ff5c97d, 0x3a56b9b2, 0x4012d97c, 0x7f3321d2}, /* 1.36169=f(4.71238)*/ +{13, 0,123,__LINE__, 0xbff8997f, 0xbbbba48f, 0xc03e0000, 0x00000000}, /* -1.53747=f(-30.0000)*/ +{13, 0,123,__LINE__, 0xbff8914e, 0x955e1aaa, 0xc03c4ccc, 0xcccccccd}, /* -1.53547=f(-28.3000)*/ +{13, 0,123,__LINE__, 0xbff88811, 0xbbfd6b12, 0xc03a9999, 0x9999999a}, /* -1.53322=f(-26.6000)*/ +{13, 0,123,__LINE__, 0xbff87d92, 0x768b02b8, 0xc038e666, 0x66666667}, /* -1.53065=f(-24.9000)*/ +{13, 0,123,__LINE__, 0xbff8718a, 0x0cc8d586, 0xc0373333, 0x33333334}, /* -1.52771=f(-23.2000)*/ +{13, 0,123,__LINE__, 0xbff8639b, 0x7979c1ee, 0xc0358000, 0x00000001}, /* -1.52431=f(-21.5000)*/ +{13, 0,123,__LINE__, 0xbff85349, 0xe6fa07f8, 0xc033cccc, 0xccccccce}, /* -1.52033=f(-19.8000)*/ +{13, 0,123,__LINE__, 0xbff83fe9, 0xca804f95, 0xc0321999, 0x9999999b}, /* -1.51560=f(-18.1000)*/ +{13, 0,123,__LINE__, 0xbff82888, 0xd5407d4a, 0xc0306666, 0x66666668}, /* -1.50989=f(-16.4000)*/ +{13, 0,123,__LINE__, 0xbff80bc5, 0x5c158b94, 0xc02d6666, 0x6666666a}, /* -1.50287=f(-14.7000)*/ +{12, 0,123,__LINE__, 0xbff7e786, 0x2ba6a33f, 0xc02a0000, 0x00000004}, /* -1.49402=f(-13.0000)*/ +{12, 0,123,__LINE__, 0xbff7b872, 0x1b2df4ce, 0xc0269999, 0x9999999e}, /* -1.48253=f(-11.3000)*/ +{12, 0,123,__LINE__, 0xbff778d9, 0x2c5f9933, 0xc0233333, 0x33333338}, /* -1.46700=f(-9.60000)*/ +{12, 0,123,__LINE__, 0xbff71e3e, 0x5dfda460, 0xc01f9999, 0x999999a3}, /* -1.44488=f(-7.90000)*/ +{12, 0,123,__LINE__, 0xbff692fa, 0x43fa5e18, 0xc018cccc, 0xccccccd6}, /* -1.41088=f(-6.20000)*/ +{12, 0,123,__LINE__, 0xbff5a250, 0x54442d18, 0xc0120000, 0x00000009}, /* -1.35212=f(-4.50000)*/ +{12, 0,123,__LINE__, 0xbff3a4f4, 0xa6207454, 0xc0066666, 0x66666678}, /* -1.22777=f(-2.80000)*/ +{11, 0,123,__LINE__, 0xbfeaa7c8, 0x5a1121a9, 0xbff19999, 0x999999bd}, /* -0.83298=f(-1.10000)*/ +{14, 0,123,__LINE__, 0x3fe14b1d, 0xde10c1f6, 0x3fe33333, 0x333332ec}, /* 0.54041=f(0.60000)*/ +{12, 0,123,__LINE__, 0x3ff29219, 0x9c41e5ee, 0x40026666, 0x66666654}, /* 1.16066=f(2.30000)*/ +{12, 0,123,__LINE__, 0x3ff5368c, 0x94442d18, 0x400fffff, 0xffffffee}, /* 1.32581=f(4.00000)*/ +{12, 0,123,__LINE__, 0x3ff65a9f, 0xe0bdccd7, 0x4016cccc, 0xccccccc4}, /* 1.39712=f(5.70000)*/ +{12, 0,123,__LINE__, 0x3ff6fbcd, 0x190e2940, 0x401d9999, 0x99999991}, /* 1.43647=f(7.40000)*/ +{12, 0,123,__LINE__, 0x3ff761ab, 0xb2554627, 0x40223333, 0x3333332f}, /* 1.46134=f(9.10000)*/ +{12, 0,123,__LINE__, 0x3ff7a7cd, 0x02099027, 0x40259999, 0x99999995}, /* 1.47846=f(10.8000)*/ +{12, 0,123,__LINE__, 0x3ff7daff, 0x862fb237, 0x4028ffff, 0xfffffffb}, /* 1.49096=f(12.5000)*/ +{13, 0,123,__LINE__, 0x3ff80201, 0xa8f876a2, 0x402c6666, 0x66666661}, /* 1.50049=f(14.2000)*/ +{13, 0,123,__LINE__, 0x3ff820b5, 0xe6942ae9, 0x402fcccc, 0xccccccc7}, /* 1.50798=f(15.9000)*/ +{13, 0,123,__LINE__, 0x3ff83981, 0x22f5cde4, 0x40319999, 0x99999997}, /* 1.51403=f(17.6000)*/ +{13, 0,123,__LINE__, 0x3ff84df1, 0x80fb3284, 0x40334ccc, 0xccccccca}, /* 1.51902=f(19.3000)*/ +{13, 0,123,__LINE__, 0x3ff85f14, 0xd4442d18, 0x4034ffff, 0xfffffffd}, /* 1.52321=f(21.0000)*/ +{13, 0,123,__LINE__, 0x3ff86da8, 0x66b52257, 0x4036b333, 0x33333330}, /* 1.52677=f(22.7000)*/ +{13, 0,123,__LINE__, 0x3ff87a34, 0xefc43c34, 0x40386666, 0x66666663}, /* 1.52983=f(24.4000)*/ +{13, 0,123,__LINE__, 0x3ff8851f, 0xa5b433e2, 0x403a1999, 0x99999996}, /* 1.53250=f(26.1000)*/ +{13, 0,123,__LINE__, 0x3ff88eb5, 0x0612c894, 0x403bcccc, 0xccccccc9}, /* 1.53484=f(27.8000)*/ +{13, 0,123,__LINE__, 0x3ff8972f, 0xfbdc0a62, 0x403d7fff, 0xfffffffc}, /* 1.53691=f(29.5000)*/ +0,}; +test_atanf(m) {run_vector_1(m,atanf_vec,(char *)(atanf),"atanf","ff"); } diff --git a/newlib/libm/test/atanh_vec.c b/newlib/libm/test/atanh_vec.c new file mode 100644 index 000000000..3b5384957 --- /dev/null +++ b/newlib/libm/test/atanh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type atanh_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xc0325e4f, 0x7b2737fa, 0xbfefffff, 0xfffffffe}, /* -18.3684=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xc0052c58, 0x1997cd6c, 0xbfefae14, 0x7ae147ac}, /* -2.64665=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xc0026167, 0x19161d1e, 0xbfef5c28, 0xf5c28f5a}, /* -2.29756=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xc000bd05, 0x89d8e2f5, 0xbfef0a3d, 0x70a3d708}, /* -2.09229=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfff2272, 0xae325a49, 0xbfeeb851, 0xeb851eb6}, /* -1.94591=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbffd4ef9, 0x68880dca, 0xbfee6666, 0x66666664}, /* -1.83178=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbffbcf0c, 0xd4741660, 0xbfee147a, 0xe147ae12}, /* -1.73804=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbffa88c3, 0xf9396f8f, 0xbfedc28f, 0x5c28f5c0}, /* -1.65839=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbff96ca7, 0x7c922cf0, 0xbfed70a3, 0xd70a3d6e}, /* -1.58902=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbff870bd, 0x73abde61, 0xbfed1eb8, 0x51eb851c}, /* -1.52752=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbff78e36, 0x0604b325, 0xbfeccccc, 0xccccccca}, /* -1.47221=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbff6c035, 0x579d7a69, 0xbfec7ae1, 0x47ae1478}, /* -1.42192=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbff60324, 0xf23a6f2b, 0xbfec28f5, 0xc28f5c26}, /* -1.37576=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbff5544b, 0x4e482a6e, 0xbfebd70a, 0x3d70a3d4}, /* -1.33308=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbff4b18a, 0x2ece7fae, 0xbfeb851e, 0xb851eb82}, /* -1.29334=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbff41933, 0xb0e44632, 0xbfeb3333, 0x33333330}, /* -1.25615=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbff389ed, 0x3e13256f, 0xbfeae147, 0xae147ade}, /* -1.22117=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbff3029b, 0x5180da20, 0xbfea8f5c, 0x28f5c28c}, /* -1.18813=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbff28253, 0x079db66d, 0xbfea3d70, 0xa3d70a3a}, /* -1.15681=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbff2084f, 0x96886b24, 0xbfe9eb85, 0x1eb851e8}, /* -1.12702=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbff193ea, 0x7aad0306, 0xbfe99999, 0x99999996}, /* -1.09861=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbff12495, 0x8caee1fa, 0xbfe947ae, 0x147ae144}, /* -1.07143=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbff0b9d6, 0x77ddde9c, 0xbfe8f5c2, 0x8f5c28f2}, /* -1.04537=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbff05343, 0x33132082, 0xbfe8a3d7, 0x0a3d70a0}, /* -1.02032=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfefe0fe, 0x73ce887b, 0xbfe851eb, 0x851eb84e}, /* -0.99621=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfef2272, 0xae325a4e, 0xbfe7ffff, 0xfffffffc}, /* -0.97295=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfee6a53, 0xbbe5e69d, 0xbfe7ae14, 0x7ae147aa}, /* -0.95047=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfedb822, 0x730ae0f2, 0xbfe75c28, 0xf5c28f58}, /* -0.92872=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfed0b6d, 0x7df77dc2, 0xbfe70a3d, 0x70a3d706}, /* -0.90764=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfec63cf, 0x69c77028, 0xbfe6b851, 0xeb851eb4}, /* -0.88718=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfebc0ed, 0x0947fbe0, 0xbfe66666, 0x66666662}, /* -0.86730=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfeb2274, 0x1ba3da88, 0xbfe6147a, 0xe147ae10}, /* -0.84795=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfea881a, 0x29e5236a, 0xbfe5c28f, 0x5c28f5be}, /* -0.82911=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe9f19b, 0x912bebd0, 0xbfe570a3, 0xd70a3d6c}, /* -0.81074=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe95eba, 0xb196930b, 0xbfe51eb8, 0x51eb851a}, /* -0.79281=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe8cf3f, 0x3b791742, 0xbfe4cccc, 0xccccccc8}, /* -0.77529=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe842f5, 0x95c3527e, 0xbfe47ae1, 0x47ae1476}, /* -0.75817=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe7b9ae, 0x5971c669, 0xbfe428f5, 0xc28f5c24}, /* -0.74141=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe7333d, 0xdeaaa5c9, 0xbfe3d70a, 0x3d70a3d2}, /* -0.72500=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe6af7b, 0xd8c5a683, 0xbfe3851e, 0xb851eb80}, /* -0.70892=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe62e42, 0xfefa39e7, 0xbfe33333, 0x3333332e}, /* -0.69314=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe5af70, 0xbfd423bd, 0xbfe2e147, 0xae147adc}, /* -0.67766=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe532e4, 0xfddf6862, 0xbfe28f5c, 0x28f5c28a}, /* -0.66246=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe4b881, 0xd43e4948, 0xbfe23d70, 0xa3d70a38}, /* -0.64752=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe4402b, 0x6211ad0d, 0xbfe1eb85, 0x1eb851e6}, /* -0.63283=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe3c9c7, 0x9bc85097, 0xbfe19999, 0x99999994}, /* -0.61838=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe3553e, 0x218d6107, 0xbfe147ae, 0x147ae142}, /* -0.60415=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe2e278, 0x1a2d2394, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.59014=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe27160, 0x11df464f, 0xbfe0a3d7, 0x0a3d709e}, /* -0.57633=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe201e1, 0xdc7b4c95, 0xbfe051eb, 0x851eb84c}, /* -0.56272=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfe193ea, 0x7aad0302, 0xbfdfffff, 0xfffffff4}, /* -0.54930=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfe12768, 0x01cd9aae, 0xbfdf5c28, 0xf5c28f50}, /* -0.53606=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfe0bc49, 0x861276d0, 0xbfdeb851, 0xeb851eac}, /* -0.52298=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfe0527f, 0x06cd3e5c, 0xbfde147a, 0xe147ae08}, /* -0.51007=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdfd3f2, 0xb9036ce2, 0xbfdd70a3, 0xd70a3d64}, /* -0.49731=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdf0554, 0x513b1b3c, 0xbfdccccc, 0xccccccc0}, /* -0.48470=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfde3907, 0x8d49915a, 0xbfdc28f5, 0xc28f5c1c}, /* -0.47223=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdd6ef2, 0x7d563b9c, 0xbfdb851e, 0xb851eb78}, /* -0.45989=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdca6fc, 0x71eebdbc, 0xbfdae147, 0xae147ad4}, /* -0.44769=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfdbe10d, 0xe5647d18, 0xbfda3d70, 0xa3d70a30}, /* -0.43561=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfdb1d10, 0x670aae89, 0xbfd99999, 0x9999998c}, /* -0.42364=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfda5aee, 0x8824f81b, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41180=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd99a93, 0xca5c285e, 0xbfd851eb, 0x851eb844}, /* -0.40005=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd8dbec, 0x8f9343fd, 0xbfd7ae14, 0x7ae147a0}, /* -0.38842=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd81ee6, 0x0afb500a, 0xbfd70a3d, 0x70a3d6fc}, /* -0.37688=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd7636e, 0x3347e0eb, 0xbfd66666, 0x66666658}, /* -0.36544=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd6a973, 0xb5e9a616, 0xbfd5c28f, 0x5c28f5b4}, /* -0.35409=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd5f0e5, 0xeb36f7e5, 0xbfd51eb8, 0x51eb8510}, /* -0.34282=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd539b4, 0xcb6ce54c, 0xbfd47ae1, 0x47ae146c}, /* -0.33164=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd483d0, 0xe4756d2d, 0xbfd3d70a, 0x3d70a3c8}, /* -0.32054=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd3cf2b, 0x50617c84, 0xbfd33333, 0x33333324}, /* -0.30951=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd31bb5, 0xac870001, 0xbfd28f5c, 0x28f5c280}, /* -0.29856=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd26962, 0x1134db82, 0xbfd1eb85, 0x1eb851dc}, /* -0.28768=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd1b823, 0x09eff2ce, 0xbfd147ae, 0x147ae138}, /* -0.27686=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd107eb, 0x8e2da1d3, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26610=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfd058ae, 0xfa811441, 0xbfcfffff, 0xffffffe0}, /* -0.25541=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfcf54c2, 0x1463c149, 0xbfceb851, 0xeb851e98}, /* -0.24477=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcdf9eb, 0xa2664aba, 0xbfcd70a3, 0xd70a3d50}, /* -0.23418=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcca0c3, 0x6ce651f9, 0xbfcc28f5, 0xc28f5c08}, /* -0.22365=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcb4932, 0xdcf85d69, 0xbfcae147, 0xae147ac0}, /* -0.21317=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc9f323, 0xecbf9829, 0xbfc99999, 0x99999978}, /* -0.20273=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc89e81, 0x1dcd345f, 0xbfc851eb, 0x851eb830}, /* -0.19233=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc74b35, 0x6ffd34fb, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18198=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5f92c, 0x58c6329f, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17166=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc4a851, 0xbaf27b4a, 0xbfc47ae1, 0x47ae1458}, /* -0.16138=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc35891, 0xdeb9a38e, 0xbfc33333, 0x33333310}, /* -0.15114=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc209d9, 0x6a3244e1, 0xbfc1eb85, 0x1eb851c8}, /* -0.14092=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0bc15, 0x5a143877, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13073=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbede65, 0xf5884573, 0xbfbeb851, 0xeb851e71}, /* -0.12058=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc463f, 0xc3433519, 0xbfbc28f5, 0xc28f5be2}, /* -0.11044=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb9af93, 0xcd2343ca, 0xbfb99999, 0x99999953}, /* -0.10033=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb71a3e, 0x3b7f08b7, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09024=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb4861b, 0xa31d09b8, 0xbfb47ae1, 0x47ae1435}, /* -0.08017=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1f308, 0xf96e1d35, 0xbfb1eb85, 0x1eb851a6}, /* -0.07011=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaec1c7, 0x12297e00, 0xbfaeb851, 0xeb851e2d}, /* -0.06007=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99f11, 0xcd5f7005, 0xbfa99999, 0x9999990e}, /* -0.05004=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47dad, 0xcbbdb9f7, 0xbfa47ae1, 0x47ae13ef}, /* -0.04002=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9ebaae, 0x39e3f8da, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947b94, 0x47a9a8d9, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847b0e, 0x059d0364, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847b0e, 0x059d07c9, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947b94, 0x47a9ab0b, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9ebaae, 0x39e3fb0d, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47dad, 0xcbbdbb10, 0x3fa47ae1, 0x47ae1508}, /* 0.04002=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99f11, 0xcd5f711e, 0x3fa99999, 0x99999a27}, /* 0.05004=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faec1c7, 0x12297f19, 0x3faeb851, 0xeb851f46}, /* 0.06007=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1f308, 0xf96e1dc1, 0x3fb1eb85, 0x1eb85232}, /* 0.07011=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb4861b, 0xa31d0a44, 0x3fb47ae1, 0x47ae14c1}, /* 0.08017=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb71a3e, 0x3b7f0945, 0x3fb70a3d, 0x70a3d750}, /* 0.09024=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb9af93, 0xcd234458, 0x3fb99999, 0x999999df}, /* 0.10033=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc463f, 0xc34335a8, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11044=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbede65, 0xf5884602, 0x3fbeb851, 0xeb851efd}, /* 0.12058=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0bc15, 0x5a1438be, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13073=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc209d9, 0x6a324529, 0x3fc1eb85, 0x1eb8520e}, /* 0.14092=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc35891, 0xdeb9a3d6, 0x3fc33333, 0x33333356}, /* 0.15114=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc4a851, 0xbaf27b93, 0x3fc47ae1, 0x47ae149e}, /* 0.16138=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5f92c, 0x58c632e8, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17166=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc74b35, 0x6ffd3544, 0x3fc70a3d, 0x70a3d72e}, /* 0.18198=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc89e81, 0x1dcd34a8, 0x3fc851eb, 0x851eb876}, /* 0.19233=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc9f323, 0xecbf9873, 0x3fc99999, 0x999999be}, /* 0.20273=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcb4932, 0xdcf85db2, 0x3fcae147, 0xae147b06}, /* 0.21317=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcca0c3, 0x6ce65244, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22365=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcdf9eb, 0xa2664b04, 0x3fcd70a3, 0xd70a3d96}, /* 0.23418=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fcf54c2, 0x1463c194, 0x3fceb851, 0xeb851ede}, /* 0.24477=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd058ae, 0xfa811466, 0x3fd00000, 0x00000013}, /* 0.25541=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd107eb, 0x8e2da1f9, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26610=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd1b823, 0x09eff2f4, 0x3fd147ae, 0x147ae15b}, /* 0.27686=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd26962, 0x1134dba8, 0x3fd1eb85, 0x1eb851ff}, /* 0.28768=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd31bb5, 0xac870027, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29856=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd3cf2b, 0x50617cab, 0x3fd33333, 0x33333347}, /* 0.30951=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd483d0, 0xe4756d55, 0x3fd3d70a, 0x3d70a3eb}, /* 0.32054=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd539b4, 0xcb6ce573, 0x3fd47ae1, 0x47ae148f}, /* 0.33164=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd5f0e5, 0xeb36f80c, 0x3fd51eb8, 0x51eb8533}, /* 0.34282=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd6a973, 0xb5e9a63e, 0x3fd5c28f, 0x5c28f5d7}, /* 0.35409=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd7636e, 0x3347e113, 0x3fd66666, 0x6666667b}, /* 0.36544=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd81ee6, 0x0afb5032, 0x3fd70a3d, 0x70a3d71f}, /* 0.37688=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd8dbec, 0x8f934427, 0x3fd7ae14, 0x7ae147c3}, /* 0.38842=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd99a93, 0xca5c2887, 0x3fd851eb, 0x851eb867}, /* 0.40005=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fda5aee, 0x8824f845, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41180=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fdb1d10, 0x670aaeb4, 0x3fd99999, 0x999999af}, /* 0.42364=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fdbe10d, 0xe5647d43, 0x3fda3d70, 0xa3d70a53}, /* 0.43561=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fdca6fc, 0x71eebde8, 0x3fdae147, 0xae147af7}, /* 0.44769=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdd6ef2, 0x7d563bc7, 0x3fdb851e, 0xb851eb9b}, /* 0.45989=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fde3907, 0x8d499187, 0x3fdc28f5, 0xc28f5c3f}, /* 0.47223=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdf0554, 0x513b1b68, 0x3fdccccc, 0xcccccce3}, /* 0.48470=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdfd3f2, 0xb9036d0f, 0x3fdd70a3, 0xd70a3d87}, /* 0.49731=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fe0527f, 0x06cd3e73, 0x3fde147a, 0xe147ae2b}, /* 0.51007=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fe0bc49, 0x861276e8, 0x3fdeb851, 0xeb851ecf}, /* 0.52298=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe12768, 0x01cd9ac5, 0x3fdf5c28, 0xf5c28f73}, /* 0.53606=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe193ea, 0x7aad0319, 0x3fe00000, 0x0000000b}, /* 0.54930=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe201e1, 0xdc7b4cac, 0x3fe051eb, 0x851eb85d}, /* 0.56272=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe27160, 0x11df4666, 0x3fe0a3d7, 0x0a3d70af}, /* 0.57633=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe2e278, 0x1a2d23ac, 0x3fe0f5c2, 0x8f5c2901}, /* 0.59014=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe3553e, 0x218d611e, 0x3fe147ae, 0x147ae153}, /* 0.60415=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe3c9c7, 0x9bc850af, 0x3fe19999, 0x999999a5}, /* 0.61838=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe4402b, 0x6211ad26, 0x3fe1eb85, 0x1eb851f7}, /* 0.63283=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe4b881, 0xd43e4961, 0x3fe23d70, 0xa3d70a49}, /* 0.64752=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe532e4, 0xfddf687c, 0x3fe28f5c, 0x28f5c29b}, /* 0.66246=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe5af70, 0xbfd423d7, 0x3fe2e147, 0xae147aed}, /* 0.67766=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe62e42, 0xfefa3a02, 0x3fe33333, 0x3333333f}, /* 0.69314=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe6af7b, 0xd8c5a69e, 0x3fe3851e, 0xb851eb91}, /* 0.70892=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe7333d, 0xdeaaa5e5, 0x3fe3d70a, 0x3d70a3e3}, /* 0.72500=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe7b9ae, 0x5971c685, 0x3fe428f5, 0xc28f5c35}, /* 0.74141=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe842f5, 0x95c3529b, 0x3fe47ae1, 0x47ae1487}, /* 0.75817=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe8cf3f, 0x3b791760, 0x3fe4cccc, 0xccccccd9}, /* 0.77529=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe95eba, 0xb1969328, 0x3fe51eb8, 0x51eb852b}, /* 0.79281=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe9f19b, 0x912bebee, 0x3fe570a3, 0xd70a3d7d}, /* 0.81074=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fea881a, 0x29e5238a, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82911=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3feb2274, 0x1ba3daa8, 0x3fe6147a, 0xe147ae21}, /* 0.84795=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3febc0ed, 0x0947fc02, 0x3fe66666, 0x66666673}, /* 0.86730=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fec63cf, 0x69c7704a, 0x3fe6b851, 0xeb851ec5}, /* 0.88718=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fed0b6d, 0x7df77de5, 0x3fe70a3d, 0x70a3d717}, /* 0.90764=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fedb822, 0x730ae116, 0x3fe75c28, 0xf5c28f69}, /* 0.92872=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fee6a53, 0xbbe5e6c3, 0x3fe7ae14, 0x7ae147bb}, /* 0.95047=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fef2272, 0xae325a75, 0x3fe80000, 0x0000000d}, /* 0.97295=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fefe0fe, 0x73ce88a3, 0x3fe851eb, 0x851eb85f}, /* 0.99621=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3ff05343, 0x33132097, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.02032=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3ff0b9d6, 0x77dddeb2, 0x3fe8f5c2, 0x8f5c2903}, /* 1.04537=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3ff12495, 0x8caee211, 0x3fe947ae, 0x147ae155}, /* 1.07143=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3ff193ea, 0x7aad031d, 0x3fe99999, 0x999999a7}, /* 1.09861=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3ff2084f, 0x96886b3c, 0x3fe9eb85, 0x1eb851f9}, /* 1.12702=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3ff28253, 0x079db687, 0x3fea3d70, 0xa3d70a4b}, /* 1.15681=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3ff3029b, 0x5180da3b, 0x3fea8f5c, 0x28f5c29d}, /* 1.18813=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3ff389ed, 0x3e13258c, 0x3feae147, 0xae147aef}, /* 1.22117=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3ff41933, 0xb0e44651, 0x3feb3333, 0x33333341}, /* 1.25615=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3ff4b18a, 0x2ece7fce, 0x3feb851e, 0xb851eb93}, /* 1.29334=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3ff5544b, 0x4e482a91, 0x3febd70a, 0x3d70a3e5}, /* 1.33308=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3ff60324, 0xf23a6f50, 0x3fec28f5, 0xc28f5c37}, /* 1.37576=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3ff6c035, 0x579d7a92, 0x3fec7ae1, 0x47ae1489}, /* 1.42192=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3ff78e36, 0x0604b352, 0x3feccccc, 0xccccccdb}, /* 1.47221=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3ff870bd, 0x73abde93, 0x3fed1eb8, 0x51eb852d}, /* 1.52752=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3ff96ca7, 0x7c922d27, 0x3fed70a3, 0xd70a3d7f}, /* 1.58902=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3ffa88c3, 0xf9396fce, 0x3fedc28f, 0x5c28f5d1}, /* 1.65839=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3ffbcf0c, 0xd47416a9, 0x3fee147a, 0xe147ae23}, /* 1.73804=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3ffd4ef9, 0x68880e21, 0x3fee6666, 0x66666675}, /* 1.83178=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fff2272, 0xae325ab5, 0x3feeb851, 0xeb851ec7}, /* 1.94591=f(0.96000)*/ +{64, 0,123,__LINE__, 0x4000bd05, 0x89d8e33d, 0x3fef0a3d, 0x70a3d719}, /* 2.09229=f(0.97000)*/ +{64, 0,123,__LINE__, 0x40026167, 0x19161d89, 0x3fef5c28, 0xf5c28f6b}, /* 2.29756=f(0.98000)*/ +{64, 0,123,__LINE__, 0x40052c58, 0x1997ce42, 0x3fefae14, 0x7ae147bd}, /* 2.64665=f(0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff00000, 0x00000007}, /* 64.0000=f(1.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe62e42, 0xfefa3980, 0x3fe33333, 0x333332ec}, /* 0.69314=f(0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_atanh(m) {run_vector_1(m,atanh_vec,(char *)(atanh),"atanh","dd"); } diff --git a/newlib/libm/test/atanhf_vec.c b/newlib/libm/test/atanhf_vec.c new file mode 100644 index 000000000..16a114419 --- /dev/null +++ b/newlib/libm/test/atanhf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type atanhf_vec[] = { +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 0,15, 39,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 1, 0,123,__LINE__, 0xc0052c58, 0x60000000, 0xbfefae14, 0x7ae147ac}, /* -2.64665=f(-0.99000)*/ +{ 1, 0,123,__LINE__, 0xc0026167, 0x60000000, 0xbfef5c28, 0xf5c28f5a}, /* -2.29756=f(-0.98000)*/ +{ 1, 0,123,__LINE__, 0xc000bd05, 0xc0000000, 0xbfef0a3d, 0x70a3d708}, /* -2.09229=f(-0.97000)*/ +{11, 0,123,__LINE__, 0xbfff2272, 0x60000000, 0xbfeeb851, 0xeb851eb6}, /* -1.94591=f(-0.96000)*/ +{11, 0,123,__LINE__, 0xbffd4ef9, 0x40000000, 0xbfee6666, 0x66666664}, /* -1.83178=f(-0.95000)*/ +{11, 0,123,__LINE__, 0xbffbcf0c, 0xc0000000, 0xbfee147a, 0xe147ae12}, /* -1.73804=f(-0.94000)*/ +{11, 0,123,__LINE__, 0xbffa88c4, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* -1.65839=f(-0.93000)*/ +{11, 0,123,__LINE__, 0xbff96ca7, 0xa0000000, 0xbfed70a3, 0xd70a3d6e}, /* -1.58902=f(-0.92000)*/ +{11, 0,123,__LINE__, 0xbff870bd, 0xa0000000, 0xbfed1eb8, 0x51eb851c}, /* -1.52752=f(-0.91000)*/ +{11, 0,123,__LINE__, 0xbff78e35, 0xe0000000, 0xbfeccccc, 0xccccccca}, /* -1.47221=f(-0.90000)*/ +{11, 0,123,__LINE__, 0xbff6c035, 0x40000000, 0xbfec7ae1, 0x47ae1478}, /* -1.42192=f(-0.89000)*/ +{11, 0,123,__LINE__, 0xbff60324, 0xe0000000, 0xbfec28f5, 0xc28f5c26}, /* -1.37576=f(-0.88000)*/ +{11, 0,123,__LINE__, 0xbff5544b, 0x60000000, 0xbfebd70a, 0x3d70a3d4}, /* -1.33308=f(-0.87000)*/ +{11, 0,123,__LINE__, 0xbff4b18a, 0x40000000, 0xbfeb851e, 0xb851eb82}, /* -1.29334=f(-0.86000)*/ +{11, 0,123,__LINE__, 0xbff41933, 0xc0000000, 0xbfeb3333, 0x33333330}, /* -1.25615=f(-0.85000)*/ +{11, 0,123,__LINE__, 0xbff389ed, 0x20000000, 0xbfeae147, 0xae147ade}, /* -1.22117=f(-0.84000)*/ +{11, 0,123,__LINE__, 0xbff3029b, 0x40000000, 0xbfea8f5c, 0x28f5c28c}, /* -1.18813=f(-0.83000)*/ +{11, 0,123,__LINE__, 0xbff28253, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* -1.15681=f(-0.82000)*/ +{11, 0,123,__LINE__, 0xbff2084f, 0xa0000000, 0xbfe9eb85, 0x1eb851e8}, /* -1.12702=f(-0.81000)*/ +{11, 0,123,__LINE__, 0xbff193ea, 0x80000000, 0xbfe99999, 0x99999996}, /* -1.09861=f(-0.80000)*/ +{11, 0,123,__LINE__, 0xbff12495, 0xa0000000, 0xbfe947ae, 0x147ae144}, /* -1.07143=f(-0.79000)*/ +{11, 0,123,__LINE__, 0xbff0b9d6, 0x60000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -1.04537=f(-0.78000)*/ +{11, 0,123,__LINE__, 0xbff05343, 0x20000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -1.02032=f(-0.77000)*/ +{13, 0,123,__LINE__, 0xbfefe0fe, 0x60000000, 0xbfe851eb, 0x851eb84e}, /* -0.99621=f(-0.76000)*/ +{13, 0,123,__LINE__, 0xbfef2272, 0xa0000000, 0xbfe7ffff, 0xfffffffc}, /* -0.97295=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbfee6a53, 0xc0000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.95047=f(-0.74000)*/ +{12, 0,123,__LINE__, 0xbfedb822, 0x80000000, 0xbfe75c28, 0xf5c28f58}, /* -0.92872=f(-0.73000)*/ +{12, 0,123,__LINE__, 0xbfed0b6d, 0xa0000000, 0xbfe70a3d, 0x70a3d706}, /* -0.90764=f(-0.72000)*/ +{12, 0,123,__LINE__, 0xbfec63cf, 0x40000000, 0xbfe6b851, 0xeb851eb4}, /* -0.88718=f(-0.71000)*/ +{12, 0,123,__LINE__, 0xbfebc0ed, 0x00000000, 0xbfe66666, 0x66666662}, /* -0.86730=f(-0.70000)*/ +{12, 0,123,__LINE__, 0xbfeb2274, 0x20000000, 0xbfe6147a, 0xe147ae10}, /* -0.84795=f(-0.69000)*/ +{12, 0,123,__LINE__, 0xbfea881a, 0x20000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.82911=f(-0.68000)*/ +{12, 0,123,__LINE__, 0xbfe9f19b, 0xa0000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.81074=f(-0.67000)*/ +{12, 0,123,__LINE__, 0xbfe95eba, 0xc0000000, 0xbfe51eb8, 0x51eb851a}, /* -0.79281=f(-0.66000)*/ +{12, 0,123,__LINE__, 0xbfe8cf3f, 0x20000000, 0xbfe4cccc, 0xccccccc8}, /* -0.77529=f(-0.65000)*/ +{12, 0,123,__LINE__, 0xbfe842f5, 0x80000000, 0xbfe47ae1, 0x47ae1476}, /* -0.75817=f(-0.64000)*/ +{14, 0,123,__LINE__, 0xbfe7b9ae, 0x60000000, 0xbfe428f5, 0xc28f5c24}, /* -0.74141=f(-0.63000)*/ +{13, 0,123,__LINE__, 0xbfe7333d, 0xe0000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.72500=f(-0.62000)*/ +{13, 0,123,__LINE__, 0xbfe6af7b, 0xe0000000, 0xbfe3851e, 0xb851eb80}, /* -0.70892=f(-0.61000)*/ +{13, 0,123,__LINE__, 0xbfe62e43, 0x00000000, 0xbfe33333, 0x3333332e}, /* -0.69314=f(-0.60000)*/ +{13, 0,123,__LINE__, 0xbfe5af70, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* -0.67766=f(-0.59000)*/ +{13, 0,123,__LINE__, 0xbfe532e4, 0xe0000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.66246=f(-0.58000)*/ +{13, 0,123,__LINE__, 0xbfe4b881, 0xc0000000, 0xbfe23d70, 0xa3d70a38}, /* -0.64752=f(-0.57000)*/ +{13, 0,123,__LINE__, 0xbfe4402b, 0x60000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.63283=f(-0.56000)*/ +{14, 0,123,__LINE__, 0xbfe3c9c7, 0xa0000000, 0xbfe19999, 0x99999994}, /* -0.61838=f(-0.55000)*/ +{14, 0,123,__LINE__, 0xbfe3553e, 0x20000000, 0xbfe147ae, 0x147ae142}, /* -0.60415=f(-0.54000)*/ +{14, 0,123,__LINE__, 0xbfe2e278, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.59014=f(-0.53000)*/ +{14, 0,123,__LINE__, 0xbfe27160, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.57633=f(-0.52000)*/ +{14, 0,123,__LINE__, 0xbfe201e1, 0xe0000000, 0xbfe051eb, 0x851eb84c}, /* -0.56272=f(-0.51000)*/ +{15, 0,123,__LINE__, 0xbfe193ea, 0x80000000, 0xbfdfffff, 0xfffffff4}, /* -0.54930=f(-0.50000)*/ +{10, 0,123,__LINE__, 0xbfe12768, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.53606=f(-0.49000)*/ +{10, 0,123,__LINE__, 0xbfe0bc49, 0x80000000, 0xbfdeb851, 0xeb851eac}, /* -0.52298=f(-0.48000)*/ +{10, 0,123,__LINE__, 0xbfe0527f, 0x00000000, 0xbfde147a, 0xe147ae08}, /* -0.51007=f(-0.47000)*/ +{14, 0,123,__LINE__, 0xbfdfd3f2, 0xc0000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.49731=f(-0.46000)*/ +{14, 0,123,__LINE__, 0xbfdf0554, 0x20000000, 0xbfdccccc, 0xccccccc0}, /* -0.48470=f(-0.45000)*/ +{14, 0,123,__LINE__, 0xbfde3907, 0x80000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.47223=f(-0.44000)*/ +{13, 0,123,__LINE__, 0xbfdd6ef2, 0x80000000, 0xbfdb851e, 0xb851eb78}, /* -0.45989=f(-0.43000)*/ +{13, 0,123,__LINE__, 0xbfdca6fc, 0x60000000, 0xbfdae147, 0xae147ad4}, /* -0.44769=f(-0.42000)*/ +{15, 0,123,__LINE__, 0xbfdbe10d, 0xe0000000, 0xbfda3d70, 0xa3d70a30}, /* -0.43561=f(-0.41000)*/ +{14, 0,123,__LINE__, 0xbfdb1d10, 0x60000000, 0xbfd99999, 0x9999998c}, /* -0.42364=f(-0.40000)*/ +{14, 0,123,__LINE__, 0xbfda5aee, 0x60000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41180=f(-0.39000)*/ +{15, 0,123,__LINE__, 0xbfd99a93, 0xc0000000, 0xbfd851eb, 0x851eb844}, /* -0.40005=f(-0.38000)*/ +{12, 0,123,__LINE__, 0xbfd8dbec, 0xa0000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.38842=f(-0.37000)*/ +{12, 0,123,__LINE__, 0xbfd81ee6, 0x20000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.37688=f(-0.36000)*/ +{15, 0,123,__LINE__, 0xbfd7636e, 0x20000000, 0xbfd66666, 0x66666658}, /* -0.36544=f(-0.35000)*/ +{14, 0,123,__LINE__, 0xbfd6a973, 0xa0000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.35409=f(-0.34000)*/ +{16, 0,123,__LINE__, 0xbfd5f0e6, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* -0.34282=f(-0.33000)*/ +{15, 0,123,__LINE__, 0xbfd539b4, 0xc0000000, 0xbfd47ae1, 0x47ae146c}, /* -0.33164=f(-0.32000)*/ +{13, 0,123,__LINE__, 0xbfd483d0, 0xe0000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.32054=f(-0.31000)*/ +{16, 0,123,__LINE__, 0xbfd3cf2b, 0x60000000, 0xbfd33333, 0x33333324}, /* -0.30951=f(-0.30000)*/ +{15, 0,123,__LINE__, 0xbfd31bb5, 0xa0000000, 0xbfd28f5c, 0x28f5c280}, /* -0.29856=f(-0.29000)*/ +{14, 0,123,__LINE__, 0xbfd26962, 0x20000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.28768=f(-0.28000)*/ +{16, 0,123,__LINE__, 0xbfd1b823, 0x20000000, 0xbfd147ae, 0x147ae138}, /* -0.27686=f(-0.27000)*/ +{15, 0,123,__LINE__, 0xbfd107eb, 0x80000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26610=f(-0.26000)*/ +{17, 0,123,__LINE__, 0xbfd058af, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* -0.25541=f(-0.25000)*/ +{15, 0,123,__LINE__, 0xbfcf54c2, 0x00000000, 0xbfceb851, 0xeb851e98}, /* -0.24477=f(-0.24000)*/ +{16, 0,123,__LINE__, 0xbfcdf9eb, 0xc0000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.23418=f(-0.23000)*/ +{16, 0,123,__LINE__, 0xbfcca0c3, 0x60000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.22365=f(-0.22000)*/ +{15, 0,123,__LINE__, 0xbfcb4932, 0xc0000000, 0xbfcae147, 0xae147ac0}, /* -0.21317=f(-0.21000)*/ +{17, 0,123,__LINE__, 0xbfc9f323, 0xe0000000, 0xbfc99999, 0x99999978}, /* -0.20273=f(-0.20000)*/ +{16, 0,123,__LINE__, 0xbfc89e81, 0x20000000, 0xbfc851eb, 0x851eb830}, /* -0.19233=f(-0.19000)*/ +{17, 0,123,__LINE__, 0xbfc74b35, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18198=f(-0.18000)*/ +{18, 0,123,__LINE__, 0xbfc5f92c, 0x60000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17166=f(-0.17000)*/ +{16, 0,123,__LINE__, 0xbfc4a851, 0xa0000000, 0xbfc47ae1, 0x47ae1458}, /* -0.16138=f(-0.16000)*/ +{17, 0,123,__LINE__, 0xbfc35891, 0xe0000000, 0xbfc33333, 0x33333310}, /* -0.15114=f(-0.15000)*/ +{14, 0,123,__LINE__, 0xbfc209d9, 0x80000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.14092=f(-0.14000)*/ +{19, 0,123,__LINE__, 0xbfc0bc15, 0x60000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13073=f(-0.13000)*/ +{17, 0,123,__LINE__, 0xbfbede65, 0xe0000000, 0xbfbeb851, 0xeb851e71}, /* -0.12058=f(-0.12000)*/ +{17, 0,123,__LINE__, 0xbfbc463f, 0xc0000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.11044=f(-0.11000)*/ +{18, 0,123,__LINE__, 0xbfb9af93, 0xe0000000, 0xbfb99999, 0x99999953}, /* -0.10033=f(-0.00100)*/ +{19, 0,123,__LINE__, 0xbfb71a3e, 0x40000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09024=f(-0.09000)*/ +{16, 0,123,__LINE__, 0xbfb4861b, 0x80000000, 0xbfb47ae1, 0x47ae1435}, /* -0.08017=f(-0.08000)*/ +{19, 0,123,__LINE__, 0xbfb1f309, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.07011=f(-0.07000)*/ +{17, 0,123,__LINE__, 0xbfaec1c7, 0x20000000, 0xbfaeb851, 0xeb851e2d}, /* -0.06007=f(-0.06000)*/ +{21, 0,123,__LINE__, 0xbfa99f11, 0xc0000000, 0xbfa99999, 0x9999990e}, /* -0.05004=f(-0.05000)*/ +{21, 0,123,__LINE__, 0xbfa47dad, 0xc0000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.04002=f(-0.04000)*/ +{22, 0,123,__LINE__, 0xbf9ebaae, 0x40000000, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{23, 0,123,__LINE__, 0xbf947b94, 0x40000000, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{23, 0,123,__LINE__, 0xbf847b0e, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{23, 0,123,__LINE__, 0x3f847b0e, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{23, 0,123,__LINE__, 0x3f947b94, 0x40000000, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{22, 0,123,__LINE__, 0x3f9ebaae, 0x40000000, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{21, 0,123,__LINE__, 0x3fa47dad, 0xc0000000, 0x3fa47ae1, 0x47ae1508}, /* 0.04002=f(0.04000)*/ +{21, 0,123,__LINE__, 0x3fa99f11, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 0.05004=f(0.05000)*/ +{17, 0,123,__LINE__, 0x3faec1c7, 0x20000000, 0x3faeb851, 0xeb851f46}, /* 0.06007=f(0.06000)*/ +{19, 0,123,__LINE__, 0x3fb1f309, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 0.07011=f(0.07000)*/ +{16, 0,123,__LINE__, 0x3fb4861b, 0x80000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.08017=f(0.08000)*/ +{19, 0,123,__LINE__, 0x3fb71a3e, 0x40000000, 0x3fb70a3d, 0x70a3d750}, /* 0.09024=f(0.09000)*/ +{18, 0,123,__LINE__, 0x3fb9af93, 0xe0000000, 0x3fb99999, 0x999999df}, /* 0.10033=f(0.10000)*/ +{17, 0,123,__LINE__, 0x3fbc463f, 0xc0000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11044=f(0.11000)*/ +{17, 0,123,__LINE__, 0x3fbede65, 0xe0000000, 0x3fbeb851, 0xeb851efd}, /* 0.12058=f(0.12000)*/ +{19, 0,123,__LINE__, 0x3fc0bc15, 0x60000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13073=f(0.13000)*/ +{14, 0,123,__LINE__, 0x3fc209d9, 0x80000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.14092=f(0.14000)*/ +{17, 0,123,__LINE__, 0x3fc35891, 0xe0000000, 0x3fc33333, 0x33333356}, /* 0.15114=f(0.15000)*/ +{16, 0,123,__LINE__, 0x3fc4a851, 0xa0000000, 0x3fc47ae1, 0x47ae149e}, /* 0.16138=f(0.16000)*/ +{18, 0,123,__LINE__, 0x3fc5f92c, 0x60000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17166=f(0.17000)*/ +{17, 0,123,__LINE__, 0x3fc74b35, 0x80000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.18198=f(0.18000)*/ +{16, 0,123,__LINE__, 0x3fc89e81, 0x20000000, 0x3fc851eb, 0x851eb876}, /* 0.19233=f(0.19000)*/ +{17, 0,123,__LINE__, 0x3fc9f323, 0xe0000000, 0x3fc99999, 0x999999be}, /* 0.20273=f(0.20000)*/ +{15, 0,123,__LINE__, 0x3fcb4932, 0xc0000000, 0x3fcae147, 0xae147b06}, /* 0.21317=f(0.21000)*/ +{16, 0,123,__LINE__, 0x3fcca0c3, 0x60000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22365=f(0.22000)*/ +{16, 0,123,__LINE__, 0x3fcdf9eb, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.23418=f(0.23000)*/ +{15, 0,123,__LINE__, 0x3fcf54c2, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 0.24477=f(0.24000)*/ +{17, 0,123,__LINE__, 0x3fd058af, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.25541=f(0.25000)*/ +{15, 0,123,__LINE__, 0x3fd107eb, 0x80000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26610=f(0.26000)*/ +{16, 0,123,__LINE__, 0x3fd1b823, 0x20000000, 0x3fd147ae, 0x147ae15b}, /* 0.27686=f(0.27000)*/ +{14, 0,123,__LINE__, 0x3fd26962, 0x20000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.28768=f(0.28000)*/ +{15, 0,123,__LINE__, 0x3fd31bb5, 0xa0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29856=f(0.29000)*/ +{16, 0,123,__LINE__, 0x3fd3cf2b, 0x60000000, 0x3fd33333, 0x33333347}, /* 0.30951=f(0.30000)*/ +{13, 0,123,__LINE__, 0x3fd483d0, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.32054=f(0.31000)*/ +{15, 0,123,__LINE__, 0x3fd539b4, 0xc0000000, 0x3fd47ae1, 0x47ae148f}, /* 0.33164=f(0.32000)*/ +{16, 0,123,__LINE__, 0x3fd5f0e6, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.34282=f(0.33000)*/ +{14, 0,123,__LINE__, 0x3fd6a973, 0xa0000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.35409=f(0.34000)*/ +{15, 0,123,__LINE__, 0x3fd7636e, 0x20000000, 0x3fd66666, 0x6666667b}, /* 0.36544=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3fd81ee6, 0x20000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.37688=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3fd8dbec, 0xa0000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.38842=f(0.37000)*/ +{15, 0,123,__LINE__, 0x3fd99a93, 0xc0000000, 0x3fd851eb, 0x851eb867}, /* 0.40005=f(0.38000)*/ +{14, 0,123,__LINE__, 0x3fda5aee, 0x60000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41180=f(0.39000)*/ +{14, 0,123,__LINE__, 0x3fdb1d10, 0x60000000, 0x3fd99999, 0x999999af}, /* 0.42364=f(0.40000)*/ +{15, 0,123,__LINE__, 0x3fdbe10d, 0xe0000000, 0x3fda3d70, 0xa3d70a53}, /* 0.43561=f(0.41000)*/ +{13, 0,123,__LINE__, 0x3fdca6fc, 0x60000000, 0x3fdae147, 0xae147af7}, /* 0.44769=f(0.42000)*/ +{13, 0,123,__LINE__, 0x3fdd6ef2, 0x80000000, 0x3fdb851e, 0xb851eb9b}, /* 0.45989=f(0.43000)*/ +{14, 0,123,__LINE__, 0x3fde3907, 0x80000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.47223=f(0.44000)*/ +{14, 0,123,__LINE__, 0x3fdf0554, 0x20000000, 0x3fdccccc, 0xcccccce3}, /* 0.48470=f(0.45000)*/ +{14, 0,123,__LINE__, 0x3fdfd3f2, 0xc0000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.49731=f(0.46000)*/ +{10, 0,123,__LINE__, 0x3fe0527f, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 0.51007=f(0.47000)*/ +{10, 0,123,__LINE__, 0x3fe0bc49, 0x80000000, 0x3fdeb851, 0xeb851ecf}, /* 0.52298=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fe12768, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.53606=f(0.49000)*/ +{15, 0,123,__LINE__, 0x3fe193ea, 0x80000000, 0x3fe00000, 0x0000000b}, /* 0.54930=f(0.50000)*/ +{14, 0,123,__LINE__, 0x3fe201e1, 0xe0000000, 0x3fe051eb, 0x851eb85d}, /* 0.56272=f(0.51000)*/ +{14, 0,123,__LINE__, 0x3fe27160, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.57633=f(0.52000)*/ +{14, 0,123,__LINE__, 0x3fe2e278, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.59014=f(0.53000)*/ +{14, 0,123,__LINE__, 0x3fe3553e, 0x20000000, 0x3fe147ae, 0x147ae153}, /* 0.60415=f(0.54000)*/ +{14, 0,123,__LINE__, 0x3fe3c9c7, 0xa0000000, 0x3fe19999, 0x999999a5}, /* 0.61838=f(0.55000)*/ +{13, 0,123,__LINE__, 0x3fe4402b, 0x60000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.63283=f(0.56000)*/ +{13, 0,123,__LINE__, 0x3fe4b881, 0xc0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.64752=f(0.57000)*/ +{13, 0,123,__LINE__, 0x3fe532e4, 0xe0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.66246=f(0.58000)*/ +{13, 0,123,__LINE__, 0x3fe5af70, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 0.67766=f(0.59000)*/ +{13, 0,123,__LINE__, 0x3fe62e43, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.69314=f(0.60000)*/ +{13, 0,123,__LINE__, 0x3fe6af7b, 0xe0000000, 0x3fe3851e, 0xb851eb91}, /* 0.70892=f(0.61000)*/ +{13, 0,123,__LINE__, 0x3fe7333d, 0xe0000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.72500=f(0.62000)*/ +{14, 0,123,__LINE__, 0x3fe7b9ae, 0x60000000, 0x3fe428f5, 0xc28f5c35}, /* 0.74141=f(0.63000)*/ +{12, 0,123,__LINE__, 0x3fe842f5, 0x80000000, 0x3fe47ae1, 0x47ae1487}, /* 0.75817=f(0.64000)*/ +{12, 0,123,__LINE__, 0x3fe8cf3f, 0x20000000, 0x3fe4cccc, 0xccccccd9}, /* 0.77529=f(0.65000)*/ +{12, 0,123,__LINE__, 0x3fe95eba, 0xc0000000, 0x3fe51eb8, 0x51eb852b}, /* 0.79281=f(0.66000)*/ +{12, 0,123,__LINE__, 0x3fe9f19b, 0xa0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.81074=f(0.67000)*/ +{12, 0,123,__LINE__, 0x3fea881a, 0x20000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82911=f(0.68000)*/ +{12, 0,123,__LINE__, 0x3feb2274, 0x20000000, 0x3fe6147a, 0xe147ae21}, /* 0.84795=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3febc0ed, 0x00000000, 0x3fe66666, 0x66666673}, /* 0.86730=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3fec63cf, 0x40000000, 0x3fe6b851, 0xeb851ec5}, /* 0.88718=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3fed0b6d, 0xa0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.90764=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3fedb822, 0x80000000, 0x3fe75c28, 0xf5c28f69}, /* 0.92872=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3fee6a53, 0xc0000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.95047=f(0.74000)*/ +{13, 0,123,__LINE__, 0x3fef2272, 0xa0000000, 0x3fe80000, 0x0000000d}, /* 0.97295=f(0.75000)*/ +{13, 0,123,__LINE__, 0x3fefe0fe, 0x60000000, 0x3fe851eb, 0x851eb85f}, /* 0.99621=f(0.76000)*/ +{11, 0,123,__LINE__, 0x3ff05343, 0x20000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.02032=f(0.77000)*/ +{11, 0,123,__LINE__, 0x3ff0b9d6, 0x60000000, 0x3fe8f5c2, 0x8f5c2903}, /* 1.04537=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3ff12495, 0xa0000000, 0x3fe947ae, 0x147ae155}, /* 1.07143=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3ff193ea, 0x80000000, 0x3fe99999, 0x999999a7}, /* 1.09861=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3ff2084f, 0xa0000000, 0x3fe9eb85, 0x1eb851f9}, /* 1.12702=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3ff28253, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 1.15681=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3ff3029b, 0x40000000, 0x3fea8f5c, 0x28f5c29d}, /* 1.18813=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3ff389ed, 0x20000000, 0x3feae147, 0xae147aef}, /* 1.22117=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3ff41933, 0xc0000000, 0x3feb3333, 0x33333341}, /* 1.25615=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3ff4b18a, 0x40000000, 0x3feb851e, 0xb851eb93}, /* 1.29334=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3ff5544b, 0x60000000, 0x3febd70a, 0x3d70a3e5}, /* 1.33308=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3ff60324, 0xe0000000, 0x3fec28f5, 0xc28f5c37}, /* 1.37576=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3ff6c035, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 1.42192=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3ff78e35, 0xe0000000, 0x3feccccc, 0xccccccdb}, /* 1.47221=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3ff870bd, 0xa0000000, 0x3fed1eb8, 0x51eb852d}, /* 1.52752=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3ff96ca7, 0xa0000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.58902=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3ffa88c4, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.65839=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3ffbcf0c, 0xc0000000, 0x3fee147a, 0xe147ae23}, /* 1.73804=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3ffd4ef9, 0x40000000, 0x3fee6666, 0x66666675}, /* 1.83178=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3fff2272, 0x60000000, 0x3feeb851, 0xeb851ec7}, /* 1.94591=f(0.96000)*/ +{ 1, 0,123,__LINE__, 0x4000bd05, 0xc0000000, 0x3fef0a3d, 0x70a3d719}, /* 2.09229=f(0.97000)*/ +{ 1, 0,123,__LINE__, 0x40026167, 0x60000000, 0x3fef5c28, 0xf5c28f6b}, /* 2.29756=f(0.98000)*/ +{ 1, 0,123,__LINE__, 0x40052c58, 0x60000000, 0x3fefae14, 0x7ae147bd}, /* 2.64665=f(0.99000)*/ +{ 1,15, 39,__LINE__, 0x40500000, 0x00000000, 0x3ff00000, 0x00000007}, /* 64.0000=f(1.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 64.0000=f(1.01000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 64.0000=f(1.02000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 64.0000=f(1.03000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 64.0000=f(1.04000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 64.0000=f(1.05000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 64.0000=f(1.06000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 64.0000=f(1.07000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 64.0000=f(1.08000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 64.0000=f(1.09000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 64.0000=f(1.10000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 64.0000=f(1.11000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 64.0000=f(1.12000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 64.0000=f(1.13000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 64.0000=f(1.14000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 64.0000=f(1.15000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 64.0000=f(1.16000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 64.0000=f(1.17000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 64.0000=f(1.18000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 64.0000=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 1,13, 37,__LINE__, 0x40500000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 64.0000=f(1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400921fb, 0x54442d18}, /* 64.0000=f(3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 64.0000=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{13, 0,123,__LINE__, 0x3fe62e43, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.69314=f(0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40026666, 0x66666654}, /* 64.0000=f(2.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x400fffff, 0xffffffee}, /* 64.0000=f(4.00000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 64.0000=f(5.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x401d9999, 0x99999991}, /* 64.0000=f(7.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40223333, 0x3333332f}, /* 64.0000=f(9.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40259999, 0x99999995}, /* 64.0000=f(10.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 64.0000=f(12.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402c6666, 0x66666661}, /* 64.0000=f(14.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 64.0000=f(15.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40319999, 0x99999997}, /* 64.0000=f(17.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 64.0000=f(19.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 64.0000=f(21.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x4036b333, 0x33333330}, /* 64.0000=f(22.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x40386666, 0x66666663}, /* 64.0000=f(24.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403a1999, 0x99999996}, /* 64.0000=f(26.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 64.0000=f(27.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 64.0000=f(29.5000)*/ +0,}; +test_atanhf(m) {run_vector_1(m,atanhf_vec,(char *)(atanhf),"atanhf","ff"); } diff --git a/newlib/libm/test/ceil_vec.c b/newlib/libm/test/ceil_vec.c new file mode 100644 index 000000000..94222997c --- /dev/null +++ b/newlib/libm/test/ceil_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type ceil_vec[] = { +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff33333, 0x33333333}, /* -1.00000=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* -1.00000=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* -1.00000=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -1.00000=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* -1.00000=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff26666, 0x66666666}, /* -1.00000=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* -1.00000=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* -1.00000=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -1.00000=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -1.00000=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff19999, 0x99999999}, /* -1.00000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* -1.00000=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff147ae, 0x147ae147}, /* -1.00000=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* -1.00000=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* -1.00000=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* -1.00000=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* -1.00000=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* -1.00000=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff051eb, 0x851eb851}, /* -1.00000=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -1.00000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 0.00000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 0.00000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 0.00000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 0.00000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 0.00000=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfee6666, 0x66666664}, /* 0.00000=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 0.00000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 0.00000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 0.00000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 0.00000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 0.00000=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 0.00000=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 0.00000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 0.00000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 0.00000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 0.00000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 0.00000=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 0.00000=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 0.00000=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 0.00000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe99999, 0x99999996}, /* 0.00000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 0.00000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.00000=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.00000=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 0.00000=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 0.00000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 0.00000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 0.00000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 0.00000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 0.00000=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe66666, 0x66666662}, /* 0.00000=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 0.00000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 0.00000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 0.00000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 0.00000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 0.00000=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 0.00000=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 0.00000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 0.00000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 0.00000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 0.00000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 0.00000=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 0.00000=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 0.00000=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 0.00000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe19999, 0x99999994}, /* 0.00000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 0.00000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.00000=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 0.00000=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 0.00000=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 0.00000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 0.00000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 0.00000=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 0.00000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 0.00000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 0.00000=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 0.00000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 0.00000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 0.00000=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 0.00000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 0.00000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.00000=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 0.00000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 0.00000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 0.00000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd66666, 0x66666658}, /* 0.00000=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 0.00000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 0.00000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 0.00000=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 0.00000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd33333, 0x33333324}, /* 0.00000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 0.00000=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 0.00000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 0.00000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 0.00000=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 0.00000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 0.00000=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 0.00000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 0.00000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 0.00000=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc99999, 0x99999978}, /* 0.00000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 0.00000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 0.00000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 0.00000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 0.00000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc33333, 0x33333310}, /* 0.00000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 0.00000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 0.00000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 0.00000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 0.00000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb99999, 0x99999953}, /* 0.00000=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 0.00000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 0.00000=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 0.00000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 0.00000=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 0.00000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 0.00000=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 0.00000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 0.00000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 0.00000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 1.00000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 1.00000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 1.00000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 1.00000=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 1.00000=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 1.00000=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 1.00000=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 1.00000=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 1.00000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb99999, 0x999999df}, /* 1.00000=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 1.00000=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 1.00000=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.00000=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.00000=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333356}, /* 1.00000=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 1.00000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.00000=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.00000=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 1.00000=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc99999, 0x999999be}, /* 1.00000=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 1.00000=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.00000=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.00000=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 1.00000=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000013}, /* 1.00000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.00000=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 1.00000=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.00000=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.00000=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333347}, /* 1.00000=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.00000=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 1.00000=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 1.00000=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 1.00000=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 1.00000=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 1.00000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 1.00000=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 1.00000=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 1.00000=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd99999, 0x999999af}, /* 1.00000=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 1.00000=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 1.00000=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 1.00000=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 1.00000=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 1.00000=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 1.00000=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 1.00000=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 1.00000=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 1.00000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 1.00000=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 1.00000=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 1.00000=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 1.00000=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 1.00000=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 1.00000=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 1.00000=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 1.00000=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 1.00000=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 1.00000=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 1.00000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 1.00000=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 1.00000=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 1.00000=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 1.00000=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 1.00000=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 1.00000=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 1.00000=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 1.00000=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 1.00000=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666673}, /* 1.00000=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 1.00000=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 1.00000=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 1.00000=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 1.00000=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 1.00000=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 1.00000=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.00000=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 1.00000=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 1.00000=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 1.00000=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 1.00000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 1.00000=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 1.00000=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feae147, 0xae147aef}, /* 1.00000=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333341}, /* 1.00000=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 1.00000=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 1.00000=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 1.00000=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 1.00000=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 1.00000=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 1.00000=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.00000=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.00000=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 1.00000=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666675}, /* 1.00000=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 1.00000=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 1.00000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 1.00000=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 1.00000=f(0.99000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 2.00000=f(1.00000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 2.00000=f(1.01000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 2.00000=f(1.02000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 2.00000=f(1.03000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 2.00000=f(1.04000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 2.00000=f(1.05000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 2.00000=f(1.06000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 2.00000=f(1.07000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 2.00000=f(1.08000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 2.00000=f(1.09000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 2.00000=f(1.10000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 2.00000=f(1.11000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 2.00000=f(1.12000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 2.00000=f(1.13000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 2.00000=f(1.14000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 2.00000=f(1.15000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 2.00000=f(1.16000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 2.00000=f(1.17000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 2.00000=f(1.18000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 2.00000=f(1.19000)*/ +{64, 0,123,__LINE__, 0xc0180000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -6.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* -4.00000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xc0080000, 0x00000000, 0xc00921fb, 0x54442d18}, /* -3.00000=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff921fb, 0x54442d18}, /* -1.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 2.00000=f(1.57079)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400921fb, 0x54442d18}, /* 4.00000=f(3.14159)*/ +{64, 0,123,__LINE__, 0x40140000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 5.00000=f(4.71238)*/ +{64, 0,123,__LINE__, 0xc03e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* -30.0000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xc03c0000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -28.0000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xc03a0000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -26.0000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0xc0380000, 0x00000000, 0xc038e666, 0x66666667}, /* -24.0000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xc0370000, 0x00000000, 0xc0373333, 0x33333334}, /* -23.0000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xc0350000, 0x00000000, 0xc0358000, 0x00000001}, /* -21.0000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xc0330000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -19.0000=f(-19.8000)*/ +{64, 0,123,__LINE__, 0xc0320000, 0x00000000, 0xc0321999, 0x9999999b}, /* -18.0000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xc0300000, 0x00000000, 0xc0306666, 0x66666668}, /* -16.0000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xc02c0000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -14.0000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xc02a0000, 0x00000000, 0xc02a0000, 0x00000004}, /* -13.0000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xc0260000, 0x00000000, 0xc0269999, 0x9999999e}, /* -11.0000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xc0220000, 0x00000000, 0xc0233333, 0x33333338}, /* -9.00000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -7.00000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xc0180000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -6.00000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0120000, 0x00000009}, /* -4.00000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xc0066666, 0x66666678}, /* -2.00000=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff19999, 0x999999bd}, /* -1.00000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 1.00000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x40080000, 0x00000000, 0x40026666, 0x66666654}, /* 3.00000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400fffff, 0xffffffee}, /* 4.00000=f(4.00000)*/ +{64, 0,123,__LINE__, 0x40180000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 6.00000=f(5.70000)*/ +{64, 0,123,__LINE__, 0x40200000, 0x00000000, 0x401d9999, 0x99999991}, /* 8.00000=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40240000, 0x00000000, 0x40223333, 0x3333332f}, /* 10.0000=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40260000, 0x00000000, 0x40259999, 0x99999995}, /* 11.0000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x402a0000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 13.0000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x402e0000, 0x00000000, 0x402c6666, 0x66666661}, /* 15.0000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x40300000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 16.0000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x40320000, 0x00000000, 0x40319999, 0x99999997}, /* 18.0000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x40340000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 20.0000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40350000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 21.0000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x40370000, 0x00000000, 0x4036b333, 0x33333330}, /* 23.0000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x40390000, 0x00000000, 0x40386666, 0x66666663}, /* 25.0000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x403b0000, 0x00000000, 0x403a1999, 0x99999996}, /* 27.0000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x403c0000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 28.0000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x403e0000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 30.0000=f(29.5000)*/ +0,}; +test_ceil(m) {run_vector_1(m,ceil_vec,(char *)(ceil),"ceil","dd"); } diff --git a/newlib/libm/test/ceilf_vec.c b/newlib/libm/test/ceilf_vec.c new file mode 100644 index 000000000..2c86955cd --- /dev/null +++ b/newlib/libm/test/ceilf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type ceilf_vec[] = { +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff33333, 0x33333333}, /* -1.00000=f(-1.20000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* -1.00000=f(-1.19000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* -1.00000=f(-1.18000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -1.00000=f(-1.17000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* -1.00000=f(-1.16000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff26666, 0x66666666}, /* -1.00000=f(-1.15000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* -1.00000=f(-1.14000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* -1.00000=f(-1.13000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -1.00000=f(-1.12000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -1.00000=f(-1.11000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff19999, 0x99999999}, /* -1.00000=f(-1.10000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* -1.00000=f(-1.09000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff147ae, 0x147ae147}, /* -1.00000=f(-1.08000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* -1.00000=f(-1.07000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* -1.00000=f(-1.06000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* -1.00000=f(-1.05000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* -1.00000=f(-1.04000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* -1.00000=f(-1.03000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff051eb, 0x851eb851}, /* -1.00000=f(-1.02000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -1.00000=f(-1.01000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* -1.00000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 0.00000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 0.00000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 0.00000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 0.00000=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfee6666, 0x66666664}, /* 0.00000=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 0.00000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 0.00000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 0.00000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 0.00000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 0.00000=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 0.00000=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 0.00000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 0.00000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 0.00000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 0.00000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 0.00000=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 0.00000=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 0.00000=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 0.00000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe99999, 0x99999996}, /* 0.00000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 0.00000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.00000=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.00000=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 0.00000=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 0.00000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 0.00000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 0.00000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 0.00000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 0.00000=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe66666, 0x66666662}, /* 0.00000=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 0.00000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 0.00000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 0.00000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 0.00000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 0.00000=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 0.00000=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 0.00000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 0.00000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 0.00000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 0.00000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 0.00000=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 0.00000=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 0.00000=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 0.00000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe19999, 0x99999994}, /* 0.00000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 0.00000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.00000=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 0.00000=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 0.00000=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 0.00000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 0.00000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 0.00000=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 0.00000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 0.00000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 0.00000=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 0.00000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 0.00000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 0.00000=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 0.00000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 0.00000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.00000=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 0.00000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 0.00000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 0.00000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd66666, 0x66666658}, /* 0.00000=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 0.00000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 0.00000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 0.00000=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 0.00000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd33333, 0x33333324}, /* 0.00000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 0.00000=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 0.00000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 0.00000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 0.00000=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 0.00000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 0.00000=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 0.00000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 0.00000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 0.00000=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc99999, 0x99999978}, /* 0.00000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 0.00000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 0.00000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 0.00000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 0.00000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc33333, 0x33333310}, /* 0.00000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 0.00000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 0.00000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 0.00000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 0.00000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb99999, 0x99999953}, /* 0.00000=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 0.00000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 0.00000=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 0.00000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 0.00000=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 0.00000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 0.00000=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 0.00000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 0.00000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 0.00000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 1.00000=f(0.01000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 1.00000=f(0.02000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 1.00000=f(0.03000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 1.00000=f(0.04000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 1.00000=f(0.05000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 1.00000=f(0.06000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 1.00000=f(0.07000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 1.00000=f(0.08000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 1.00000=f(0.09000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fb99999, 0x999999df}, /* 1.00000=f(0.10000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 1.00000=f(0.11000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 1.00000=f(0.12000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.00000=f(0.13000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.00000=f(0.14000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333356}, /* 1.00000=f(0.15000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 1.00000=f(0.16000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.00000=f(0.17000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.00000=f(0.18000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 1.00000=f(0.19000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fc99999, 0x999999be}, /* 1.00000=f(0.20000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 1.00000=f(0.21000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.00000=f(0.22000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.00000=f(0.23000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 1.00000=f(0.24000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000013}, /* 1.00000=f(0.25000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.00000=f(0.26000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 1.00000=f(0.27000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.00000=f(0.28000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.00000=f(0.29000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333347}, /* 1.00000=f(0.30000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.00000=f(0.31000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 1.00000=f(0.32000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 1.00000=f(0.33000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 1.00000=f(0.34000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 1.00000=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 1.00000=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 1.00000=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 1.00000=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 1.00000=f(0.39000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fd99999, 0x999999af}, /* 1.00000=f(0.40000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 1.00000=f(0.41000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 1.00000=f(0.42000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 1.00000=f(0.43000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 1.00000=f(0.44000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 1.00000=f(0.45000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 1.00000=f(0.46000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 1.00000=f(0.47000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 1.00000=f(0.48000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 1.00000=f(0.49000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 1.00000=f(0.50000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 1.00000=f(0.51000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 1.00000=f(0.52000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 1.00000=f(0.53000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 1.00000=f(0.54000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 1.00000=f(0.55000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 1.00000=f(0.56000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 1.00000=f(0.57000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 1.00000=f(0.58000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 1.00000=f(0.59000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 1.00000=f(0.60000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 1.00000=f(0.61000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 1.00000=f(0.62000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 1.00000=f(0.63000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 1.00000=f(0.64000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 1.00000=f(0.65000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 1.00000=f(0.66000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 1.00000=f(0.67000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 1.00000=f(0.68000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 1.00000=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666673}, /* 1.00000=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 1.00000=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 1.00000=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 1.00000=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 1.00000=f(0.74000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 1.00000=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 1.00000=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.00000=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 1.00000=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 1.00000=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 1.00000=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 1.00000=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 1.00000=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 1.00000=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feae147, 0xae147aef}, /* 1.00000=f(0.84000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333341}, /* 1.00000=f(0.85000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 1.00000=f(0.86000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 1.00000=f(0.87000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 1.00000=f(0.88000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 1.00000=f(0.89000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 1.00000=f(0.90000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 1.00000=f(0.91000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.00000=f(0.92000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.00000=f(0.93000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 1.00000=f(0.94000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666675}, /* 1.00000=f(0.95000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 1.00000=f(0.96000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 1.00000=f(0.97000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 1.00000=f(0.98000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 1.00000=f(0.99000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 2.00000=f(1.01000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 2.00000=f(1.02000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 2.00000=f(1.03000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 2.00000=f(1.04000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 2.00000=f(1.05000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 2.00000=f(1.06000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 2.00000=f(1.07000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 2.00000=f(1.08000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 2.00000=f(1.09000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 2.00000=f(1.10000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 2.00000=f(1.11000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 2.00000=f(1.12000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 2.00000=f(1.13000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 2.00000=f(1.14000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 2.00000=f(1.15000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 2.00000=f(1.16000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 2.00000=f(1.17000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 2.00000=f(1.18000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 2.00000=f(1.19000)*/ +{15, 0,123,__LINE__, 0xc0180000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -6.00000=f(-6.28318)*/ +{14, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* -4.00000=f(-4.71238)*/ +{15, 0,123,__LINE__, 0xc0080000, 0x00000000, 0xc00921fb, 0x54442d18}, /* -3.00000=f(-3.14159)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff921fb, 0x54442d18}, /* -1.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 1, 0,123,__LINE__, 0x40000000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 2.00000=f(1.57079)*/ +{11, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400921fb, 0x54442d18}, /* 4.00000=f(3.14159)*/ +{13, 0,123,__LINE__, 0x40140000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 5.00000=f(4.71238)*/ +{64, 0,123,__LINE__, 0xc03e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* -30.0000=f(-30.0000)*/ +{17, 0,123,__LINE__, 0xc03c0000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -28.0000=f(-28.3000)*/ +{16, 0,123,__LINE__, 0xc03a0000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -26.0000=f(-26.6000)*/ +{16, 0,123,__LINE__, 0xc0380000, 0x00000000, 0xc038e666, 0x66666667}, /* -24.0000=f(-24.9000)*/ +{18, 0,123,__LINE__, 0xc0370000, 0x00000000, 0xc0373333, 0x33333334}, /* -23.0000=f(-23.2000)*/ +{16, 0,123,__LINE__, 0xc0350000, 0x00000000, 0xc0358000, 0x00000001}, /* -21.0000=f(-21.5000)*/ +{16, 0,123,__LINE__, 0xc0330000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -19.0000=f(-19.8000)*/ +{19, 0,123,__LINE__, 0xc0320000, 0x00000000, 0xc0321999, 0x9999999b}, /* -18.0000=f(-18.1000)*/ +{17, 0,123,__LINE__, 0xc0300000, 0x00000000, 0xc0306666, 0x66666668}, /* -16.0000=f(-16.4000)*/ +{15, 0,123,__LINE__, 0xc02c0000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -14.0000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xc02a0000, 0x00000000, 0xc02a0000, 0x00000004}, /* -13.0000=f(-13.0000)*/ +{16, 0,123,__LINE__, 0xc0260000, 0x00000000, 0xc0269999, 0x9999999e}, /* -11.0000=f(-11.3000)*/ +{15, 0,123,__LINE__, 0xc0220000, 0x00000000, 0xc0233333, 0x33333338}, /* -9.00000=f(-9.60000)*/ +{14, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -7.00000=f(-7.90000)*/ +{16, 0,123,__LINE__, 0xc0180000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -6.00000=f(-6.20000)*/ +{14, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0120000, 0x00000009}, /* -4.00000=f(-4.50000)*/ +{13, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xc0066666, 0x66666678}, /* -2.00000=f(-2.80000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbff19999, 0x999999bd}, /* -1.00000=f(-1.10000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 1.00000=f(0.60000)*/ +{12, 0,123,__LINE__, 0x40080000, 0x00000000, 0x40026666, 0x66666654}, /* 3.00000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400fffff, 0xffffffee}, /* 4.00000=f(4.00000)*/ +{12, 0,123,__LINE__, 0x40180000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 6.00000=f(5.70000)*/ +{10, 0,123,__LINE__, 0x40200000, 0x00000000, 0x401d9999, 0x99999991}, /* 8.00000=f(7.40000)*/ +{13, 0,123,__LINE__, 0x40240000, 0x00000000, 0x40223333, 0x3333332f}, /* 10.0000=f(9.10000)*/ +{14, 0,123,__LINE__, 0x40260000, 0x00000000, 0x40259999, 0x99999995}, /* 11.0000=f(10.8000)*/ +{14, 0,123,__LINE__, 0x402a0000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 13.0000=f(12.5000)*/ +{14, 0,123,__LINE__, 0x402e0000, 0x00000000, 0x402c6666, 0x66666661}, /* 15.0000=f(14.2000)*/ +{11, 0,123,__LINE__, 0x40300000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 16.0000=f(15.9000)*/ +{14, 0,123,__LINE__, 0x40320000, 0x00000000, 0x40319999, 0x99999997}, /* 18.0000=f(17.6000)*/ +{13, 0,123,__LINE__, 0x40340000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 20.0000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40350000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 21.0000=f(21.0000)*/ +{15, 0,123,__LINE__, 0x40370000, 0x00000000, 0x4036b333, 0x33333330}, /* 23.0000=f(22.7000)*/ +{15, 0,123,__LINE__, 0x40390000, 0x00000000, 0x40386666, 0x66666663}, /* 25.0000=f(24.4000)*/ +{15, 0,123,__LINE__, 0x403b0000, 0x00000000, 0x403a1999, 0x99999996}, /* 27.0000=f(26.1000)*/ +{13, 0,123,__LINE__, 0x403c0000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 28.0000=f(27.8000)*/ +{14, 0,123,__LINE__, 0x403e0000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 30.0000=f(29.5000)*/ +0,}; +test_ceilf(m) {run_vector_1(m,ceilf_vec,(char *)(ceilf),"ceilf","ff"); } diff --git a/newlib/libm/test/conv_vec.c b/newlib/libm/test/conv_vec.c new file mode 100644 index 000000000..1190e1b00 --- /dev/null +++ b/newlib/libm/test/conv_vec.c @@ -0,0 +1,3640 @@ +#include "test.h" + +double_type doubles[] = +{ +__LINE__, " -211.8+", -2.1180000000e+02, 7, +__LINE__, "-3267-45", -3.2670000000e+03, 5, +__LINE__, "-45 .32", -4.5000000000e+01, 3, +__LINE__, "-45-", -4.5000000000e+01, 3, +__LINE__, "-45.", -4.5000000000e+01, 4, +__LINE__, "-67e+32", -6.7000000000e+33, 7, +__LINE__, "-67.32 ", -6.7320000000e+01, 6, +__LINE__, " ", 0.0000000000e+00, 0, +__LINE__, " +", 0.0000000000e+00, 0, +__LINE__, " +-", 0.0000000000e+00, 0, +__LINE__, " -e", 0.0000000000e+00, 0, +__LINE__, " .", 0.0000000000e+00,0, +__LINE__, " .- -32", 0.0000000000e+00,0, +__LINE__, " e", 0.0000000000e+00, 0, +__LINE__, " e+67", 0.0000000000e+00, 0, +__LINE__, " e-45", 0.0000000000e+00, 0, +__LINE__, " e-67.-", 0.0000000000e+00, 0, +__LINE__, " e.+", 0.0000000000e+00, 0, +__LINE__, "+ . ", 0.0000000000e+00, 0, +__LINE__, "+ e-e-", 0.0000000000e+00, 0, +__LINE__, "+", 0.0000000000e+00, 0, +__LINE__, "++ 45ee", 0.0000000000e+00, 0, +__LINE__, "++ e", 0.0000000000e+00, 0, +__LINE__, "++", 0.0000000000e+00, 0, +__LINE__, "++e32", 0.0000000000e+00, 0, +__LINE__, "++ee+67", 0.0000000000e+00, 0, +__LINE__, "+- ", 0.0000000000e+00, 0, +__LINE__, "+---.", 0.0000000000e+00, 0, +__LINE__, "+.", 0.0000000000e+00,0, +__LINE__, "+..45", 0.0000000000e+00,0, +__LINE__, "+.e67", 0.0000000000e+00,0, +__LINE__, "+e", 0.0000000000e+00, 0, +__LINE__, "+ee ", 0.0000000000e+00, 0, +__LINE__, "+ee.++", 0.0000000000e+00, 0, +__LINE__, "- ", 0.0000000000e+00, 0, +__LINE__, "- 32.", 0.0000000000e+00, 0, +__LINE__, "-", 0.0000000000e+00, 0, +__LINE__, "-+-+--", 0.0000000000e+00, 0, +__LINE__, "-+4545", 0.0000000000e+00, 0, +__LINE__, "--", 0.0000000000e+00, 0, +__LINE__, "--32e", 0.0000000000e+00, 0, +__LINE__, "--45+e45", 0.0000000000e+00, 0, +__LINE__, "-. ", 0.0000000000e+00,0, +__LINE__, "-. ", 0.0000000000e+00,0, +__LINE__, "-.", 0.0000000000e+00,0, +__LINE__, "-.--", 0.0000000000e+00,0, +__LINE__, "-e ", 0.0000000000e+00, 0, +__LINE__, "-e", 0.0000000000e+00, 0, +__LINE__, "-e+", 0.0000000000e+00, 0, +__LINE__, "-e.- ", 0.0000000000e+00, 0, +__LINE__, ". 45-", 0.0000000000e+00,0, +__LINE__, ". e-32", 0.0000000000e+00,0, +__LINE__, ".", 0.0000000000e+00,0, +__LINE__, ".+ 32", 0.0000000000e+00,0, +__LINE__, ".++", 0.0000000000e+00,0, +__LINE__, ".+.ee", 0.0000000000e+00,0, +__LINE__, ".+e", 0.0000000000e+00,0, +__LINE__, ".- 67e", 0.0000000000e+00,0, +__LINE__, "..", 0.0000000000e+00,0, +__LINE__, "..45673267", 0.0000000000e+00,0, +__LINE__, "..6767", 0.0000000000e+00,0, +__LINE__, ".e45 32", 0.0000000000e+00,0, +__LINE__, ".e67 ", 0.0000000000e+00,0, +__LINE__, ".e67.32-", 0.0000000000e+00,0, +__LINE__, ".ee.", 0.0000000000e+00,0, +__LINE__, "e 45e", 0.0000000000e+00, 0, +__LINE__, "e +", 0.0000000000e+00, 0, +__LINE__, "e 3245-", 0.0000000000e+00, 0, +__LINE__, "e", 0.0000000000e+00, 0, +__LINE__, "e+45", 0.0000000000e+00, 0, +__LINE__, "e+45--", 0.0000000000e+00, 0, +__LINE__, "e-6745.", 0.0000000000e+00, 0, +__LINE__, "e-e", 0.0000000000e+00, 0, + +__LINE__, "e. ", 0.0000000000e+00, 0, +__LINE__, "e.+", 0.0000000000e+00, 0, +__LINE__, "e.-.-", 0.0000000000e+00, 0, +__LINE__, "e32", 0.0000000000e+00, 0, +__LINE__, "e32.e", 0.0000000000e+00, 0, +__LINE__, "e45 45.67", 0.0000000000e+00, 0, +__LINE__, "e45", 0.0000000000e+00, 0, +__LINE__, "e45+.6767", 0.0000000000e+00, 0, +__LINE__, "e45.67+32", 0.0000000000e+00, 0, +__LINE__, "e45ee+-", 0.0000000000e+00, 0, +__LINE__, "e67", 0.0000000000e+00, 0, +__LINE__, "e6745+ ", 0.0000000000e+00, 0, +__LINE__, "e6745e", 0.0000000000e+00, 0, +__LINE__, "e67e-e ", 0.0000000000e+00, 0, +__LINE__, "ee +", 0.0000000000e+00, 0, +__LINE__, " 32.", 3.2000000000e+01, 5, +__LINE__, " +32", 3.2000000000e+01, 4, +__LINE__, "+32+", 3.2000000000e+01, 3, +__LINE__, "+32+++", 3.2000000000e+01, 3, +__LINE__, "32 32", 3.2000000000e+01, 2, +__LINE__, "32 . . ", 3.2000000000e+01, 2, +__LINE__, "32 45.", 3.2000000000e+01, 2, +__LINE__, "32", 3.2000000000e+01, 2, +__LINE__, "32+", 3.2000000000e+01, 2, +__LINE__, "32++.67-", 3.2000000000e+01, 2, +__LINE__, "32+.3267+", 3.2000000000e+01, 2, +__LINE__, "32+45e32 ", 3.2000000000e+01, 2, +__LINE__, "32+e67", 3.2000000000e+01, 2, +__LINE__, "32- +6732", 3.2000000000e+01, 2, +__LINE__, "32- -", 3.2000000000e+01, 2, +__LINE__, "32-+-+32", 3.2000000000e+01, 2, +__LINE__, "32-+32", 3.2000000000e+01, 2, +__LINE__, "32--32.67", 3.2000000000e+01, 2, +__LINE__, "32--67", 3.2000000000e+01, 2, +__LINE__, "32..4545", 3.2000000000e+01, 3, +__LINE__, "32.e", 3.2000000000e+01, 3, +__LINE__, ".32 .32", 3.2000000000e-01, 3, +__LINE__, ".32.", 3.2000000000e-01, 3, +__LINE__, "3232 e", 3.2320000000e+03, 4, +__LINE__, "3232", 3.2320000000e+03, 4, +__LINE__, "323232+.45", 3.2323200000e+05, 6, +__LINE__, "32.45", 3.2450000000e+01, 5, +__LINE__, "32.45--", 3.2450000000e+01, 5, +__LINE__, "324532", 3.2453200000e+05, 6, +__LINE__, "324567-45", 3.2456700000e+05, 6, +__LINE__, " 3267+45", 3.2670000000e+03, 5, +__LINE__, "3267-", 3.2670000000e+03, 4, +__LINE__, " 45", 4.5000000000e+01, 3, +__LINE__, "45 67e", 4.5000000000e+01, 2, +__LINE__, "45 45 45", 4.5000000000e+01, 2, +__LINE__, "45 45", 4.5000000000e+01, 2, +__LINE__, "45 e+32", 4.5000000000e+01, 2, +__LINE__, "45", 4.5000000000e+01, 2, +__LINE__, "45+ .32", 4.5000000000e+01, 2, +__LINE__, "45+.4545", 4.5000000000e+01, 2, +__LINE__, "45- -67.", 4.5000000000e+01, 2, +__LINE__, "45- 32", 4.5000000000e+01, 2, +__LINE__, "45-", 4.5000000000e+01, 2, +__LINE__, "45-.+", 4.5000000000e+01, 2, +__LINE__, "45-.+..", 4.5000000000e+01, 2, +__LINE__, "45e", 4.5000000000e+01, 2, +__LINE__, "45e32", 4.5000000000e+33, 5, +__LINE__, "4532", 4.5320000000e+03, 4, +__LINE__, "+4545--", 4.5450000000e+03, 5, +__LINE__, "4545", 4.5450000000e+03, 4, +__LINE__, "4545-+", 4.5450000000e+03, 4, +__LINE__, "45.45", 4.5450000000e+01, 5, +__LINE__, "454532+.45", 4.5453200000e+05, 6, +__LINE__, "45454567324", 4.5454567324e+10, 11, +__LINE__, "45456767", 4.5456767000e+07, 8, +__LINE__, "+4567", 4.5670000000e+03, 5, +__LINE__, "4567", 4.5670000000e+03, 4, +__LINE__, " +456732", 4.5673200000e+05, 8, +__LINE__, "456732e", 4.5673200000e+05, 6, +__LINE__, "456767.", 4.5676700000e+05, 7, +__LINE__, " 67. 45", 6.7000000000e+01, 5, +__LINE__, " +67-45", 6.7000000000e+01, 4, +__LINE__, " 67 ", 6.7000000000e+01, 3, +__LINE__, " 67e -", 6.7000000000e+01, 3, +__LINE__, "+67+", 6.7000000000e+01, 3, +__LINE__, "+67+4567", 6.7000000000e+01, 3, +__LINE__, "+67-", 6.7000000000e+01, 3, +__LINE__, "67 -", 6.7000000000e+01, 2, +__LINE__, "67 32", 6.7000000000e+01, 2, +__LINE__, "67 6745", 6.7000000000e+01, 2, +__LINE__, "67", 6.7000000000e+01, 2, +__LINE__, "67+", 6.7000000000e+01, 2, +__LINE__, "67+-3267", 6.7000000000e+01, 2, +__LINE__, "67+3232 .", 6.7000000000e+01, 2, +__LINE__, "67-", 6.7000000000e+01, 2, +__LINE__, "67-32e45 ", 6.7000000000e+01, 2, +__LINE__, "67e ", 6.7000000000e+01, 2, +__LINE__, "67ee", 6.7000000000e+01, 2, +__LINE__, ".67", 6.7000000000e-01, 3, +__LINE__, "6732", 6.7320000000e+03, 4, +__LINE__, "6732e32", 6.7320000000e+35, 7, +__LINE__, "+673267-", 6.7326700000e+05, 7, +__LINE__, "67326767", 6.7326767000e+07, 8, +__LINE__, "6745+e67", 6.7450000000e+03, 4, +__LINE__, "6745..e", 6.7450000000e+03, 5, +__LINE__, "6745ee", 6.7450000000e+03, 4, +__LINE__, "+6767", 6.7670000000e+03, 5, +__LINE__, "6767", 6.7670000000e+03, 4, +__LINE__, "676767+", 6.7676700000e+05, 6, +__LINE__, " -01", -1.0000000000e+00, 4, +__LINE__, " -1", -1.0000000000e+00, 3, +__LINE__, "-01", -1.0000000000e+00, 3, +__LINE__, "-1", -1.0000000000e+00, 2, +__LINE__, " -.1", -1.0000000000e-01, 4, +__LINE__, " -0.1", -1.0000000000e-01, 5, +__LINE__, "-.1", -1.0000000000e-01, 3, +__LINE__, "-0.1", -1.0000000000e-01, 4, +__LINE__, " -01241e-1", -1.2410000000e+02, 10, +__LINE__, " -1241e-1", -1.2410000000e+02, 9, +__LINE__, "-01241e-1", -1.2410000000e+02, 9, +__LINE__, "-1241e-1", -1.2410000000e+02, 8, +__LINE__, " -.1241e-1", -1.2410000000e-02, 10, +__LINE__, " -0.1241e-1", -1.2410000000e-02, 11, +__LINE__, "-.1241e-1", -1.2410000000e-02, 9, +__LINE__, "-0.1241e-1", -1.2410000000e-02, 10, +__LINE__, " -01241e-20", -1.2410000000e-17, 11, +__LINE__, " -1241e-20", -1.2410000000e-17, 10, +__LINE__, "-01241e-20", -1.2410000000e-17, 10, +__LINE__, "-1241e-20", -1.2410000000e-17, 9, +__LINE__, " -.1241e+1", -1.2410000000e+00, 10, +__LINE__, " -.1241e1", -1.2410000000e+00, 9, +__LINE__, " -0.1241e+1", -1.2410000000e+00, 11, +__LINE__, " -0.1241e1", -1.2410000000e+00, 10, +__LINE__, "-.1241e+1", -1.2410000000e+00, 9, +__LINE__, "-.1241e1", -1.2410000000e+00, 8, +__LINE__, "-0.1241e+1", -1.2410000000e+00, 10, +__LINE__, "-0.1241e1", -1.2410000000e+00, 9, +__LINE__, " -01241", -1.2410000000e+03, 7, +__LINE__, " -01241+", -1.2410000000e+03, 7, +__LINE__, " -01241+1", -1.2410000000e+03, 7, +__LINE__, " -01241+20", -1.2410000000e+03, 7, +__LINE__, " -01241-", -1.2410000000e+03, 7, +__LINE__, " -01241-1", -1.2410000000e+03, 7, +__LINE__, " -01241-20", -1.2410000000e+03, 7, +__LINE__, " -01241e", -1.2410000000e+03, 7, +__LINE__, " -01241e+", -1.2410000000e+03, 7, +__LINE__, " -01241e-", -1.2410000000e+03, 7, +__LINE__, " -1241", -1.2410000000e+03, 6, +__LINE__, " -1241+", -1.2410000000e+03, 6, +__LINE__, " -1241+1", -1.2410000000e+03, 6, +__LINE__, " -1241+20", -1.2410000000e+03, 6, +__LINE__, " -1241-", -1.2410000000e+03, 6, +__LINE__, " -1241-1", -1.2410000000e+03, 6, +__LINE__, " -1241-20", -1.2410000000e+03, 6, +__LINE__, " -1241e", -1.2410000000e+03, 6, +__LINE__, " -1241e+", -1.2410000000e+03, 6, +__LINE__, " -1241e-", -1.2410000000e+03, 6, +__LINE__, "-01241", -1.2410000000e+03, 6, +__LINE__, "-01241+", -1.2410000000e+03, 6, +__LINE__, "-01241+1", -1.2410000000e+03, 6, +__LINE__, "-01241+20", -1.2410000000e+03, 6, +__LINE__, "-01241-", -1.2410000000e+03, 6, +__LINE__, "-01241-1", -1.2410000000e+03, 6, +__LINE__, "-01241-20", -1.2410000000e+03, 6, +__LINE__, "-01241e", -1.2410000000e+03, 6, +__LINE__, "-01241e+", -1.2410000000e+03, 6, +__LINE__, "-01241e-", -1.2410000000e+03, 6, +__LINE__, "-1241", -1.2410000000e+03, 5, +__LINE__, "-1241+", -1.2410000000e+03, 5, +__LINE__, "-1241+1", -1.2410000000e+03, 5, +__LINE__, "-1241+20", -1.2410000000e+03, 5, +__LINE__, "-1241-", -1.2410000000e+03, 5, +__LINE__, "-1241-1", -1.2410000000e+03, 5, +__LINE__, "-1241-20", -1.2410000000e+03, 5, +__LINE__, "-1241e", -1.2410000000e+03, 5, +__LINE__, "-1241e+", -1.2410000000e+03, 5, +__LINE__, "-1241e-", -1.2410000000e+03, 5, +__LINE__, " -01241e+1", -1.2410000000e+04, 10, +__LINE__, " -01241e1", -1.2410000000e+04, 9, +__LINE__, " -1241e+1", -1.2410000000e+04, 9, +__LINE__, " -1241e1", -1.2410000000e+04, 8, +__LINE__, "-01241e+1", -1.2410000000e+04, 9, +__LINE__, "-01241e1", -1.2410000000e+04, 8, +__LINE__, "-1241e+1", -1.2410000000e+04, 8, +__LINE__, "-1241e1", -1.2410000000e+04, 7, +__LINE__, " -.1241e+20", -1.2410000000e+19, 11, +__LINE__, " -.1241e20", -1.2410000000e+19, 10, +__LINE__, " -0.1241e+20", -1.2410000000e+19, 12, +__LINE__, " -0.1241e20", -1.2410000000e+19, 11, +__LINE__, "-.1241e+20", -1.2410000000e+19, 10, +__LINE__, "-.1241e20", -1.2410000000e+19, 9, +__LINE__, "-0.1241e+20", -1.2410000000e+19, 11, +__LINE__, "-0.1241e20", -1.2410000000e+19, 10, +__LINE__, " -01241e+20", -1.2410000000e+23, 11, +__LINE__, " -01241e20", -1.2410000000e+23, 10, +__LINE__, " -1241e+20", -1.2410000000e+23, 10, +__LINE__, " -1241e20", -1.2410000000e+23, 9, +__LINE__, "-01241e+20", -1.2410000000e+23, 10, +__LINE__, "-01241e20", -1.2410000000e+23, 9, +__LINE__, "-1241e+20", -1.2410000000e+23, 9, +__LINE__, "-1241e20", -1.2410000000e+23, 8, +__LINE__, " -.1241", -1.2410000000e-01, 7, +__LINE__, " -.1241+", -1.2410000000e-01, 7, +__LINE__, " -.1241+1", -1.2410000000e-01, 7, +__LINE__, " -.1241+20", -1.2410000000e-01, 7, +__LINE__, " -.1241-", -1.2410000000e-01, 7, +__LINE__, " -.1241-1", -1.2410000000e-01, 7, +__LINE__, " -.1241-20", -1.2410000000e-01, 7, + +__LINE__, " -.1241e", -1.2410000000e-01, 7, +__LINE__, " -.1241e+", -1.2410000000e-01, 7, +__LINE__, " -.1241e-", -1.2410000000e-01, 7, +__LINE__, " -0.1241", -1.2410000000e-01, 8, +__LINE__, " -0.1241+", -1.2410000000e-01, 8, +__LINE__, " -0.1241+1", -1.2410000000e-01, 8, +__LINE__, " -0.1241+20", -1.2410000000e-01, 8, +__LINE__, " -0.1241-", -1.2410000000e-01, 8, +__LINE__, " -0.1241-1", -1.2410000000e-01, 8, +__LINE__, " -0.1241-20", -1.2410000000e-01, 8, +__LINE__, " -0.1241e", -1.2410000000e-01, 8, +__LINE__, " -0.1241e+", -1.2410000000e-01, 8, +__LINE__, " -0.1241e-", -1.2410000000e-01, 8, +__LINE__, "-.1241", -1.2410000000e-01, 6, +__LINE__, "-.1241+", -1.2410000000e-01, 6, +__LINE__, "-.1241+1", -1.2410000000e-01, 6, +__LINE__, "-.1241+20", -1.2410000000e-01, 6, +__LINE__, "-.1241-", -1.2410000000e-01, 6, +__LINE__, "-.1241-1", -1.2410000000e-01, 6, +__LINE__, "-.1241-20", -1.2410000000e-01, 6, +__LINE__, "-.1241e", -1.2410000000e-01, 6, +__LINE__, "-.1241e+", -1.2410000000e-01, 6, +__LINE__, "-.1241e-", -1.2410000000e-01, 6, +__LINE__, "-0.1241", -1.2410000000e-01, 7, +__LINE__, "-0.1241+", -1.2410000000e-01, 7, +__LINE__, "-0.1241+1", -1.2410000000e-01, 7, +__LINE__, "-0.1241+20", -1.2410000000e-01, 7, +__LINE__, "-0.1241-", -1.2410000000e-01, 7, +__LINE__, "-0.1241-1", -1.2410000000e-01, 7, +__LINE__, "-0.1241-20", -1.2410000000e-01, 7, +__LINE__, "-0.1241e", -1.2410000000e-01, 7, +__LINE__, "-0.1241e+", -1.2410000000e-01, 7, +__LINE__, "-0.1241e-", -1.2410000000e-01, 7, +__LINE__, " -.1241e-20", -1.2410000000e-21, 11, +__LINE__, " -0.1241e-20", -1.2410000000e-21, 12, +__LINE__, "-.1241e-20", -1.2410000000e-21, 10, +__LINE__, "-0.1241e-20", -1.2410000000e-21, 11, +__LINE__, " -.12411", -1.2411000000e-01, 8, +__LINE__, " -0.12411", -1.2411000000e-01, 9, +__LINE__, "-.12411", -1.2411000000e-01, 7, +__LINE__, "-0.12411", -1.2411000000e-01, 8, +__LINE__, " -012411", -1.2411000000e+04, 8, +__LINE__, " -12411", -1.2411000000e+04, 7, +__LINE__, "-012411", -1.2411000000e+04, 7, +__LINE__, "-12411", -1.2411000000e+04, 6, +__LINE__, " -.124120", -1.2412000000e-01, 9, +__LINE__, " -0.124120", -1.2412000000e-01, 10, +__LINE__, "-.124120", -1.2412000000e-01, 8, +__LINE__, "-0.124120", -1.2412000000e-01, 9, +__LINE__, " -0124120", -1.2412000000e+05, 9, +__LINE__, " -124120", -1.2412000000e+05, 8, +__LINE__, "-0124120", -1.2412000000e+05, 8, +__LINE__, "-124120", -1.2412000000e+05, 7, +__LINE__, " -020", -2.0000000000e+01, 5, +__LINE__, " -20", -2.0000000000e+01, 4, +__LINE__, "-020", -2.0000000000e+01, 4, +__LINE__, "-20", -2.0000000000e+01, 3, +__LINE__, " -.20", -2.0000000000e-01, 5, +__LINE__, " -0.20", -2.0000000000e-01, 6, +__LINE__, "-.20", -2.0000000000e-01, 4, +__LINE__, "-0.20", -2.0000000000e-01, 5, +__LINE__, " -211", -2.1100000000e+02, 5, +__LINE__, " -211+", -2.1100000000e+02, 5, +__LINE__, " -211+1", -2.1100000000e+02, 5, +__LINE__, " -211+20", -2.1100000000e+02, 5, +__LINE__, " -211-", -2.1100000000e+02, 5, +__LINE__, " -211-1", -2.1100000000e+02, 5, +__LINE__, " -211-20", -2.1100000000e+02, 5, +__LINE__, " -211.", -2.1100000000e+02, 6, +__LINE__, " -211.+", -2.1100000000e+02, 6, +__LINE__, " -211.+1", -2.1100000000e+02, 6, +__LINE__, " -211.+20", -2.1100000000e+02, 6, +__LINE__, " -211.-", -2.1100000000e+02, 6, +__LINE__, " -211.-1", -2.1100000000e+02, 6, +__LINE__, " -211.-20", -2.1100000000e+02, 6, +__LINE__, " -211.e", -2.1100000000e+02, 6, +__LINE__, " -211.e+", -2.1100000000e+02, 6, +__LINE__, " -211.e-", -2.1100000000e+02, 6, +__LINE__, " -211e", -2.1100000000e+02, 5, +__LINE__, " -211e+", -2.1100000000e+02, 5, +__LINE__, " -211e-", -2.1100000000e+02, 5, +__LINE__, "-211", -2.1100000000e+02, 4, +__LINE__, "-211+", -2.1100000000e+02, 4, +__LINE__, "-211+1", -2.1100000000e+02, 4, +__LINE__, "-211+20", -2.1100000000e+02, 4, +__LINE__, "-211-", -2.1100000000e+02, 4, +__LINE__, "-211-1", -2.1100000000e+02, 4, +__LINE__, "-211-20", -2.1100000000e+02, 4, +__LINE__, "-211.", -2.1100000000e+02, 5, +__LINE__, "-211.+", -2.1100000000e+02, 5, +__LINE__, "-211.+1", -2.1100000000e+02, 5, +__LINE__, "-211.+20", -2.1100000000e+02, 5, +__LINE__, "-211.-", -2.1100000000e+02, 5, +__LINE__, "-211.-1", -2.1100000000e+02, 5, +__LINE__, "-211.-20", -2.1100000000e+02, 5, +__LINE__, "-211.e", -2.1100000000e+02, 5, +__LINE__, "-211.e+", -2.1100000000e+02, 5, +__LINE__, "-211.e-", -2.1100000000e+02, 5, +__LINE__, "-211e", -2.1100000000e+02, 4, +__LINE__, "-211e+", -2.1100000000e+02, 4, +__LINE__, "-211e-", -2.1100000000e+02, 4, +__LINE__, " -211.e+20", -2.1100000000e+22, 10, +__LINE__, " -211.e20", -2.1100000000e+22, 9, +__LINE__, " -211e+20", -2.1100000000e+22, 9, +__LINE__, " -211e20", -2.1100000000e+22, 8, +__LINE__, "-211.e+20", -2.1100000000e+22, 9, +__LINE__, "-211.e20", -2.1100000000e+22, 8, +__LINE__, "-211e+20", -2.1100000000e+22, 8, +__LINE__, "-211e20", -2.1100000000e+22, 7, +__LINE__, " -211.e-1", -2.1100000000e+01, 9, +__LINE__, " -211e-1", -2.1100000000e+01, 8, +__LINE__, "-211.e-1", -2.1100000000e+01, 8, +__LINE__, "-211e-1", -2.1100000000e+01, 7, +__LINE__, " -211.e+1", -2.1100000000e+03, 9, +__LINE__, " -211.e1", -2.1100000000e+03, 8, +__LINE__, " -211e+1", -2.1100000000e+03, 8, +__LINE__, " -211e1", -2.1100000000e+03, 7, +__LINE__, "-211.e+1", -2.1100000000e+03, 8, +__LINE__, "-211.e1", -2.1100000000e+03, 7, +__LINE__, "-211e+1", -2.1100000000e+03, 7, +__LINE__, "-211e1", -2.1100000000e+03, 6, +__LINE__, " -211.e-20", -2.1100000000e-18, 10, +__LINE__, " -211e-20", -2.1100000000e-18, 9, +__LINE__, "-211.e-20", -2.1100000000e-18, 9, +__LINE__, "-211e-20", -2.1100000000e-18, 8, +__LINE__, " -211.1", -2.1110000000e+02, 7, +__LINE__, "-211.1", -2.1110000000e+02, 6, +__LINE__, " -2111", -2.1110000000e+03, 6, +__LINE__, "-2111", -2.1110000000e+03, 5, +__LINE__, " -2111241e-20", -2.1112410000e-14, 13, +__LINE__, "-2111241e-20", -2.1112410000e-14, 12, +__LINE__, " -211.1241e-1", -2.1112410000e+01, 13, +__LINE__, "-211.1241e-1", -2.1112410000e+01, 12, +__LINE__, " -211.1241", -2.1112410000e+02, 10, +__LINE__, " -211.1241+", -2.1112410000e+02, 10, +__LINE__, " -211.1241+1", -2.1112410000e+02, 10, +__LINE__, " -211.1241+20", -2.1112410000e+02, 10, +__LINE__, " -211.1241-", -2.1112410000e+02, 10, +__LINE__, " -211.1241-1", -2.1112410000e+02, 10, +__LINE__, " -211.1241-20", -2.1112410000e+02, 10, +__LINE__, " -211.1241e", -2.1112410000e+02, 10, +__LINE__, " -211.1241e+", -2.1112410000e+02, 10, +__LINE__, " -211.1241e-", -2.1112410000e+02, 10, +__LINE__, "-211.1241", -2.1112410000e+02, 9, +__LINE__, "-211.1241+", -2.1112410000e+02, 9, +__LINE__, "-211.1241+1", -2.1112410000e+02, 9, +__LINE__, "-211.1241+20", -2.1112410000e+02, 9, +__LINE__, "-211.1241-", -2.1112410000e+02, 9, +__LINE__, "-211.1241-1", -2.1112410000e+02, 9, +__LINE__, "-211.1241-20", -2.1112410000e+02, 9, +__LINE__, "-211.1241e", -2.1112410000e+02, 9, +__LINE__, "-211.1241e+", -2.1112410000e+02, 9, +__LINE__, "-211.1241e-", -2.1112410000e+02, 9, +__LINE__, " -211.1241e+1", -2.1112410000e+03, 13, +__LINE__, " -211.1241e1", -2.1112410000e+03, 12, +__LINE__, "-211.1241e+1", -2.1112410000e+03, 12, +__LINE__, "-211.1241e1", -2.1112410000e+03, 11, +__LINE__, " -2111241e-1", -2.1112410000e+05, 12, +__LINE__, "-2111241e-1", -2.1112410000e+05, 11, +__LINE__, " -2111241", -2.1112410000e+06, 9, +__LINE__, " -2111241+", -2.1112410000e+06, 9, +__LINE__, " -2111241+1", -2.1112410000e+06, 9, +__LINE__, " -2111241+20", -2.1112410000e+06, 9, +__LINE__, " -2111241-", -2.1112410000e+06, 9, +__LINE__, " -2111241-1", -2.1112410000e+06, 9, +__LINE__, " -2111241-20", -2.1112410000e+06, 9, +__LINE__, " -2111241e", -2.1112410000e+06, 9, +__LINE__, " -2111241e+", -2.1112410000e+06, 9, +__LINE__, " -2111241e-", -2.1112410000e+06, 9, +__LINE__, "-2111241", -2.1112410000e+06, 8, +__LINE__, "-2111241+", -2.1112410000e+06, 8, +__LINE__, "-2111241+1", -2.1112410000e+06, 8, +__LINE__, "-2111241+20", -2.1112410000e+06, 8, +__LINE__, "-2111241-", -2.1112410000e+06, 8, +__LINE__, "-2111241-1", -2.1112410000e+06, 8, +__LINE__, "-2111241-20", -2.1112410000e+06, 8, +__LINE__, "-2111241e", -2.1112410000e+06, 8, +__LINE__, "-2111241e+", -2.1112410000e+06, 8, +__LINE__, "-2111241e-", -2.1112410000e+06, 8, +__LINE__, " -2111241e+1", -2.1112410000e+07, 12, +__LINE__, " -2111241e1", -2.1112410000e+07, 11, +__LINE__, "-2111241e+1", -2.1112410000e+07, 11, +__LINE__, "-2111241e1", -2.1112410000e+07, 10, +__LINE__, " -211.1241e+20", -2.1112410000e+22, 14, +__LINE__, " -211.1241e20", -2.1112410000e+22, 13, +__LINE__, "-211.1241e+20", -2.1112410000e+22, 13, +__LINE__, "-211.1241e20", -2.1112410000e+22, 12, +__LINE__, " -2111241e+20", -2.1112410000e+26, 13, +__LINE__, " -2111241e20", -2.1112410000e+26, 12, +__LINE__, "-2111241e+20", -2.1112410000e+26, 12, +__LINE__, "-2111241e20", -2.1112410000e+26, 11, +__LINE__, " -211.1241e-20", -2.1112410000e-18, 14, +__LINE__, "-211.1241e-20", -2.1112410000e-18, 13, +__LINE__, " -211.12411", -2.1112411000e+02, 11, +__LINE__, "-211.12411", -2.1112411000e+02, 10, +__LINE__, " -21112411", -2.1112411000e+07, 10, +__LINE__, "-21112411", -2.1112411000e+07, 9, +__LINE__, " -211124120", -2.1112412000e+08, 11, +__LINE__, "-211124120", -2.1112412000e+08, 10, +__LINE__, " -211.124120", -2.1112412000e+02, 12, +__LINE__, "-211.124120", -2.1112412000e+02, 11, +__LINE__, " -211.20", -2.1120000000e+02, 8, +__LINE__, "-211.20", -2.1120000000e+02, 7, +__LINE__, " -21120", -2.1120000000e+04, 7, +__LINE__, "-21120", -2.1120000000e+04, 6, +__LINE__, " -211.8e-1", -2.1180000000e+01, 10, +__LINE__, "-211.8e-1", -2.1180000000e+01, 9, +__LINE__, " -211.8e+1", -2.1180000000e+03, 10, +__LINE__, " -211.8e1", -2.1180000000e+03, 9, +__LINE__, " -2118", -2.1180000000e+03, 6, +__LINE__, " -2118+", -2.1180000000e+03, 6, +__LINE__, " -2118+1", -2.1180000000e+03, 6, +__LINE__, " -2118+20", -2.1180000000e+03, 6, +__LINE__, " -2118-", -2.1180000000e+03, 6, +__LINE__, " -2118-1", -2.1180000000e+03, 6, +__LINE__, " -2118-20", -2.1180000000e+03, 6, +__LINE__, " -2118e", -2.1180000000e+03, 6, +__LINE__, " -2118e+", -2.1180000000e+03, 6, +__LINE__, " -2118e-", -2.1180000000e+03, 6, +__LINE__, "-211.8e+1", -2.1180000000e+03, 9, +__LINE__, "-211.8e1", -2.1180000000e+03, 8, +__LINE__, "-2118", -2.1180000000e+03, 5, +__LINE__, "-2118+", -2.1180000000e+03, 5, +__LINE__, "-2118+1", -2.1180000000e+03, 5, +__LINE__, "-2118+20", -2.1180000000e+03, 5, +__LINE__, "-2118-", -2.1180000000e+03, 5, +__LINE__, "-2118-1", -2.1180000000e+03, 5, +__LINE__, "-2118-20", -2.1180000000e+03, 5, +__LINE__, "-2118e", -2.1180000000e+03, 5, +__LINE__, "-2118e+", -2.1180000000e+03, 5, +__LINE__, "-2118e-", -2.1180000000e+03, 5, +__LINE__, " -2118e+1", -2.1180000000e+04, 9, +__LINE__, " -2118e1", -2.1180000000e+04, 8, +__LINE__, "-2118e+1", -2.1180000000e+04, 8, +__LINE__, "-2118e1", -2.1180000000e+04, 7, +__LINE__, " -2118e+20", -2.1180000000e+23, 10, +__LINE__, " -2118e20", -2.1180000000e+23, 9, +__LINE__, "-2118e+20", -2.1180000000e+23, 9, +__LINE__, "-2118e20", -2.1180000000e+23, 8, +__LINE__, " -2118e-20", -2.1180000000e-17, 10, +__LINE__, "-2118e-20", -2.1180000000e-17, 9, +__LINE__, " -211.8e-20", -2.1180000000e-18, 11, +__LINE__, "-211.8e-20", -2.1180000000e-18, 10, +__LINE__, " -211.8", -2.1180000000e+02, 7, +__LINE__, " -211.8+", -2.1180000000e+02, 7, +__LINE__, " -211.8+1", -2.1180000000e+02, 7, +__LINE__, " -211.8+20", -2.1180000000e+02, 7, +__LINE__, " -211.8-", -2.1180000000e+02, 7, +__LINE__, " -211.8-1", -2.1180000000e+02, 7, +__LINE__, " -211.8-20", -2.1180000000e+02, 7, +__LINE__, " -211.8e", -2.1180000000e+02, 7, +__LINE__, " -211.8e+", -2.1180000000e+02, 7, +__LINE__, " -211.8e-", -2.1180000000e+02, 7, +__LINE__, " -2118e-1", -2.1180000000e+02, 9, +__LINE__, "-211.8", -2.1180000000e+02, 6, +__LINE__, "-211.8+", -2.1180000000e+02, 6, +__LINE__, "-211.8+1", -2.1180000000e+02, 6, +__LINE__, "-211.8+20", -2.1180000000e+02, 6, +__LINE__, "-211.8-", -2.1180000000e+02, 6, +__LINE__, "-211.8-1", -2.1180000000e+02, 6, + +__LINE__, "-211.8-20", -2.1180000000e+02, 6, +__LINE__, "-211.8e", -2.1180000000e+02, 6, +__LINE__, "-211.8e+", -2.1180000000e+02, 6, +__LINE__, "-211.8e-", -2.1180000000e+02, 6, +__LINE__, "-2118e-1", -2.1180000000e+02, 8, +__LINE__, " -211.8e+20", -2.1180000000e+22, 11, +__LINE__, " -211.8e20", -2.1180000000e+22, 10, +__LINE__, "-211.8e+20", -2.1180000000e+22, 10, +__LINE__, "-211.8e20", -2.1180000000e+22, 9, +__LINE__, " -211.81", -2.1181000000e+02, 8, +__LINE__, "-211.81", -2.1181000000e+02, 7, +__LINE__, " -21181", -2.1181000000e+04, 7, +__LINE__, "-21181", -2.1181000000e+04, 6, +__LINE__, " -211.820", -2.1182000000e+02, 9, +__LINE__, "-211.820", -2.1182000000e+02, 8, +__LINE__, " -211820", -2.1182000000e+05, 8, +__LINE__, "-211820", -2.1182000000e+05, 7, +__LINE__, " -2119e-20", -2.1190000000e-17, 10, +__LINE__, "-2119e-20", -2.1190000000e-17, 9, +__LINE__, " -211.9e-1", -2.1190000000e+01, 10, +__LINE__, "-211.9e-1", -2.1190000000e+01, 9, +__LINE__, " -211.9", -2.1190000000e+02, 7, +__LINE__, " -211.9+", -2.1190000000e+02, 7, +__LINE__, " -211.9+1", -2.1190000000e+02, 7, +__LINE__, " -211.9+20", -2.1190000000e+02, 7, +__LINE__, " -211.9-", -2.1190000000e+02, 7, +__LINE__, " -211.9-1", -2.1190000000e+02, 7, +__LINE__, " -211.9-20", -2.1190000000e+02, 7, +__LINE__, " -211.9e", -2.1190000000e+02, 7, +__LINE__, " -211.9e+", -2.1190000000e+02, 7, +__LINE__, " -211.9e-", -2.1190000000e+02, 7, +__LINE__, " -2119e-1", -2.1190000000e+02, 9, +__LINE__, "-211.9", -2.1190000000e+02, 6, +__LINE__, "-211.9+", -2.1190000000e+02, 6, +__LINE__, "-211.9+1", -2.1190000000e+02, 6, +__LINE__, "-211.9+20", -2.1190000000e+02, 6, +__LINE__, "-211.9-", -2.1190000000e+02, 6, +#ifndef __PCCNECV70__ +/* Nec assembler has built in limits which are exceeded by this table */ + +__LINE__, "-211.9-1", -2.1190000000e+02, 6, +__LINE__, "-211.9-20", -2.1190000000e+02, 6, +__LINE__, "-211.9e", -2.1190000000e+02, 6, +__LINE__, "-211.9e+", -2.1190000000e+02, 6, +__LINE__, "-211.9e-", -2.1190000000e+02, 6, +__LINE__, "-2119e-1", -2.1190000000e+02, 8, +__LINE__, " -211.9e+1", -2.1190000000e+03, 10, +__LINE__, " -211.9e1", -2.1190000000e+03, 9, +__LINE__, " -2119", -2.1190000000e+03, 6, +__LINE__, " -2119+", -2.1190000000e+03, 6, +__LINE__, " -2119+1", -2.1190000000e+03, 6, +__LINE__, " -2119+20", -2.1190000000e+03, 6, +__LINE__, " -2119-", -2.1190000000e+03, 6, +__LINE__, " -2119-1", -2.1190000000e+03, 6, +__LINE__, " -2119-20", -2.1190000000e+03, 6, +__LINE__, " -2119e", -2.1190000000e+03, 6, +__LINE__, " -2119e+", -2.1190000000e+03, 6, +__LINE__, " -2119e-", -2.1190000000e+03, 6, +__LINE__, "-211.9e+1", -2.1190000000e+03, 9, +__LINE__, "-211.9e1", -2.1190000000e+03, 8, +__LINE__, "-2119", -2.1190000000e+03, 5, +__LINE__, "-2119+", -2.1190000000e+03, 5, +__LINE__, "-2119+1", -2.1190000000e+03, 5, +__LINE__, "-2119+20", -2.1190000000e+03, 5, +__LINE__, "-2119-", -2.1190000000e+03, 5, +__LINE__, "-2119-1", -2.1190000000e+03, 5, +__LINE__, "-2119-20", -2.1190000000e+03, 5, +__LINE__, "-2119e", -2.1190000000e+03, 5, +__LINE__, "-2119e+", -2.1190000000e+03, 5, +__LINE__, "-2119e-", -2.1190000000e+03, 5, +__LINE__, " -2119e+1", -2.1190000000e+04, 9, +__LINE__, " -2119e1", -2.1190000000e+04, 8, +__LINE__, "-2119e+1", -2.1190000000e+04, 8, +__LINE__, "-2119e1", -2.1190000000e+04, 7, +__LINE__, " -211.9e+20", -2.1190000000e+22, 11, +__LINE__, " -211.9e20", -2.1190000000e+22, 10, +__LINE__, "-211.9e+20", -2.1190000000e+22, 10, +__LINE__, "-211.9e20", -2.1190000000e+22, 9, +__LINE__, " -2119e+20", -2.1190000000e+23, 10, +__LINE__, " -2119e20", -2.1190000000e+23, 9, +__LINE__, "-2119e+20", -2.1190000000e+23, 9, +__LINE__, "-2119e20", -2.1190000000e+23, 8, +__LINE__, " -211.9e-20", -2.1190000000e-18, 11, +__LINE__, "-211.9e-20", -2.1190000000e-18, 10, +__LINE__, " -211.91", -2.1191000000e+02, 8, +__LINE__, "-211.91", -2.1191000000e+02, 7, +__LINE__, " -21191", -2.1191000000e+04, 7, +__LINE__, "-21191", -2.1191000000e+04, 6, +__LINE__, " -211.920", -2.1192000000e+02, 9, +__LINE__, "-211.920", -2.1192000000e+02, 8, +__LINE__, " -211920", -2.1192000000e+05, 8, +__LINE__, "-211920", -2.1192000000e+05, 7, +__LINE__, " -612.e-1", -6.1200000000e+01, 9, +__LINE__, " -612e-1", -6.1200000000e+01, 8, +__LINE__, "-612.e-1", -6.1200000000e+01, 8, +__LINE__, "-612e-1", -6.1200000000e+01, 7, +__LINE__, " -612", -6.1200000000e+02, 5, +__LINE__, " -612+", -6.1200000000e+02, 5, +__LINE__, " -612+1", -6.1200000000e+02, 5, +__LINE__, " -612+20", -6.1200000000e+02, 5, +__LINE__, " -612-", -6.1200000000e+02, 5, +__LINE__, " -612-1", -6.1200000000e+02, 5, +__LINE__, " -612-20", -6.1200000000e+02, 5, +__LINE__, " -612.", -6.1200000000e+02, 6, +__LINE__, " -612.+", -6.1200000000e+02, 6, +__LINE__, " -612.+1", -6.1200000000e+02, 6, +__LINE__, " -612.+20", -6.1200000000e+02, 6, +__LINE__, " -612.-", -6.1200000000e+02, 6, +__LINE__, " -612.-1", -6.1200000000e+02, 6, +__LINE__, " -612.-20", -6.1200000000e+02, 6, +__LINE__, " -612.e", -6.1200000000e+02, 6, +__LINE__, " -612.e+", -6.1200000000e+02, 6, +__LINE__, " -612.e-", -6.1200000000e+02, 6, +__LINE__, " -612e", -6.1200000000e+02, 5, +__LINE__, " -612e+", -6.1200000000e+02, 5, +__LINE__, " -612e-", -6.1200000000e+02, 5, +__LINE__, "-612", -6.1200000000e+02, 4, +__LINE__, "-612+", -6.1200000000e+02, 4, +__LINE__, "-612+1", -6.1200000000e+02, 4, +__LINE__, "-612+20", -6.1200000000e+02, 4, +__LINE__, "-612-", -6.1200000000e+02, 4, +__LINE__, "-612-1", -6.1200000000e+02, 4, +__LINE__, "-612-20", -6.1200000000e+02, 4, +__LINE__, "-612.", -6.1200000000e+02, 5, +__LINE__, "-612.+", -6.1200000000e+02, 5, +__LINE__, "-612.+1", -6.1200000000e+02, 5, +__LINE__, "-612.+20", -6.1200000000e+02, 5, +__LINE__, "-612.-", -6.1200000000e+02, 5, +__LINE__, "-612.-1", -6.1200000000e+02, 5, +__LINE__, "-612.-20", -6.1200000000e+02, 5, +__LINE__, "-612.e", -6.1200000000e+02, 5, +__LINE__, "-612.e+", -6.1200000000e+02, 5, +__LINE__, "-612.e-", -6.1200000000e+02, 5, +__LINE__, "-612e", -6.1200000000e+02, 4, +__LINE__, "-612e+", -6.1200000000e+02, 4, +__LINE__, "-612e-", -6.1200000000e+02, 4, +__LINE__, " -612.e+1", -6.1200000000e+03, 9, +__LINE__, " -612.e1", -6.1200000000e+03, 8, +__LINE__, " -612e+1", -6.1200000000e+03, 8, +__LINE__, " -612e1", -6.1200000000e+03, 7, +__LINE__, "-612.e+1", -6.1200000000e+03, 8, +__LINE__, "-612.e1", -6.1200000000e+03, 7, +__LINE__, "-612e+1", -6.1200000000e+03, 7, +__LINE__, "-612e1", -6.1200000000e+03, 6, +__LINE__, " -612.e+20", -6.1200000000e+22, 10, +__LINE__, " -612.e20", -6.1200000000e+22, 9, +__LINE__, " -612e+20", -6.1200000000e+22, 9, +__LINE__, " -612e20", -6.1200000000e+22, 8, +__LINE__, "-612.e+20", -6.1200000000e+22, 9, +__LINE__, "-612.e20", -6.1200000000e+22, 8, +__LINE__, "-612e+20", -6.1200000000e+22, 8, +__LINE__, "-612e20", -6.1200000000e+22, 7, +__LINE__, " -612.e-20", -6.1200000000e-18, 10, +__LINE__, " -612e-20", -6.1200000000e-18, 9, +__LINE__, "-612.e-20", -6.1200000000e-18, 9, +__LINE__, "-612e-20", -6.1200000000e-18, 8, +__LINE__, " -612.1", -6.1210000000e+02, 7, +__LINE__, "-612.1", -6.1210000000e+02, 6, +__LINE__, " -6121", -6.1210000000e+03, 6, +__LINE__, "-6121", -6.1210000000e+03, 5, +__LINE__, " -612.1241e-1", -6.1212410000e+01, 13, +__LINE__, "-612.1241e-1", -6.1212410000e+01, 12, +__LINE__, " -612.1241e+1", -6.1212410000e+03, 13, +__LINE__, " -612.1241e1", -6.1212410000e+03, 12, +__LINE__, "-612.1241e+1", -6.1212410000e+03, 12, +__LINE__, "-612.1241e1", -6.1212410000e+03, 11, +__LINE__, " -6121241e-1", -6.1212410000e+05, 12, +__LINE__, "-6121241e-1", -6.1212410000e+05, 11, +__LINE__, " -6121241e+1", -6.1212410000e+07, 12, +__LINE__, " -6121241e1", -6.1212410000e+07, 11, +__LINE__, "-6121241e+1", -6.1212410000e+07, 11, +__LINE__, "-6121241e1", -6.1212410000e+07, 10, +__LINE__, " -6121241e-20", -6.1212410000e-14, 13, +__LINE__, "-6121241e-20", -6.1212410000e-14, 12, +__LINE__, " -612.1241", -6.1212410000e+02, 10, +__LINE__, " -612.1241+", -6.1212410000e+02, 10, +__LINE__, " -612.1241+1", -6.1212410000e+02, 10, +__LINE__, " -612.1241+20", -6.1212410000e+02, 10, +__LINE__, " -612.1241-", -6.1212410000e+02, 10, +__LINE__, " -612.1241-1", -6.1212410000e+02, 10, +__LINE__, " -612.1241-20", -6.1212410000e+02, 10, +__LINE__, " -612.1241e", -6.1212410000e+02, 10, +__LINE__, " -612.1241e+", -6.1212410000e+02, 10, +__LINE__, " -612.1241e-", -6.1212410000e+02, 10, +__LINE__, "-612.1241", -6.1212410000e+02, 9, +__LINE__, "-612.1241+", -6.1212410000e+02, 9, +__LINE__, "-612.1241+1", -6.1212410000e+02, 9, +__LINE__, "-612.1241+20", -6.1212410000e+02, 9, +__LINE__, "-612.1241-", -6.1212410000e+02, 9, +__LINE__, "-612.1241-1", -6.1212410000e+02, 9, +__LINE__, "-612.1241-20", -6.1212410000e+02, 9, +__LINE__, "-612.1241e", -6.1212410000e+02, 9, +__LINE__, "-612.1241e+", -6.1212410000e+02, 9, +__LINE__, "-612.1241e-", -6.1212410000e+02, 9, +__LINE__, " -6121241", -6.1212410000e+06, 9, +__LINE__, " -6121241+", -6.1212410000e+06, 9, +__LINE__, " -6121241+1", -6.1212410000e+06, 9, +__LINE__, " -6121241+20", -6.1212410000e+06, 9, +__LINE__, " -6121241-", -6.1212410000e+06, 9, +__LINE__, " -6121241-1", -6.1212410000e+06, 9, +__LINE__, " -6121241-20", -6.1212410000e+06, 9, +__LINE__, " -6121241e", -6.1212410000e+06, 9, +__LINE__, " -6121241e+", -6.1212410000e+06, 9, +__LINE__, " -6121241e-", -6.1212410000e+06, 9, +__LINE__, "-6121241", -6.1212410000e+06, 8, +__LINE__, "-6121241+", -6.1212410000e+06, 8, +__LINE__, "-6121241+1", -6.1212410000e+06, 8, +__LINE__, "-6121241+20", -6.1212410000e+06, 8, +__LINE__, "-6121241-", -6.1212410000e+06, 8, +__LINE__, "-6121241-1", -6.1212410000e+06, 8, +__LINE__, "-6121241-20", -6.1212410000e+06, 8, +__LINE__, "-6121241e", -6.1212410000e+06, 8, +__LINE__, "-6121241e+", -6.1212410000e+06, 8, +__LINE__, "-6121241e-", -6.1212410000e+06, 8, +__LINE__, " -612.1241e+20", -6.1212410000e+22, 14, +__LINE__, " -612.1241e20", -6.1212410000e+22, 13, +__LINE__, "-612.1241e+20", -6.1212410000e+22, 13, +__LINE__, "-612.1241e20", -6.1212410000e+22, 12, +__LINE__, " -6121241e+20", -6.1212410000e+26, 13, +__LINE__, " -6121241e20", -6.1212410000e+26, 12, +__LINE__, "-6121241e+20", -6.1212410000e+26, 12, +__LINE__, "-6121241e20", -6.1212410000e+26, 11, +__LINE__, " -612.1241e-20", -6.1212410000e-18, 14, +__LINE__, "-612.1241e-20", -6.1212410000e-18, 13, +__LINE__, " -612.12411", -6.1212411000e+02, 11, +__LINE__, "-612.12411", -6.1212411000e+02, 10, +__LINE__, " -61212411", -6.1212411000e+07, 10, +__LINE__, "-61212411", -6.1212411000e+07, 9, +__LINE__, " -612.124120", -6.1212412000e+02, 12, +__LINE__, "-612.124120", -6.1212412000e+02, 11, +__LINE__, " -612124120", -6.1212412000e+08, 11, +__LINE__, "-612124120", -6.1212412000e+08, 10, +__LINE__, " -61220", -6.1220000000e+04, 7, +__LINE__, "-61220", -6.1220000000e+04, 6, +__LINE__, " -612.20", -6.1220000000e+02, 8, +__LINE__, "-612.20", -6.1220000000e+02, 7, +__LINE__, " -612.8", -6.1280000000e+02, 7, +__LINE__, " -612.8+", -6.1280000000e+02, 7, +__LINE__, " -612.8+1", -6.1280000000e+02, 7, +__LINE__, " -612.8+20", -6.1280000000e+02, 7, +__LINE__, " -612.8-", -6.1280000000e+02, 7, +__LINE__, " -612.8-1", -6.1280000000e+02, 7, +__LINE__, " -612.8-20", -6.1280000000e+02, 7, +__LINE__, " -612.8e", -6.1280000000e+02, 7, +__LINE__, " -612.8e+", -6.1280000000e+02, 7, +__LINE__, " -612.8e-", -6.1280000000e+02, 7, +__LINE__, " -6128e-1", -6.1280000000e+02, 9, +__LINE__, "-612.8", -6.1280000000e+02, 6, +__LINE__, "-612.8+", -6.1280000000e+02, 6, +__LINE__, "-612.8+1", -6.1280000000e+02, 6, +__LINE__, "-612.8+20", -6.1280000000e+02, 6, +__LINE__, "-612.8-", -6.1280000000e+02, 6, +__LINE__, "-612.8-1", -6.1280000000e+02, 6, +__LINE__, "-612.8-20", -6.1280000000e+02, 6, +__LINE__, "-612.8e", -6.1280000000e+02, 6, +__LINE__, "-612.8e+", -6.1280000000e+02, 6, +__LINE__, "-612.8e-", -6.1280000000e+02, 6, +__LINE__, "-6128e-1", -6.1280000000e+02, 8, +__LINE__, " -612.8e+20", -6.1280000000e+22, 11, +__LINE__, " -612.8e20", -6.1280000000e+22, 10, +__LINE__, "-612.8e+20", -6.1280000000e+22, 10, +__LINE__, "-612.8e20", -6.1280000000e+22, 9, +__LINE__, " -6128e-20", -6.1280000000e-17, 10, +__LINE__, "-6128e-20", -6.1280000000e-17, 9, +__LINE__, " -612.8e-1", -6.1280000000e+01, 10, +__LINE__, "-612.8e-1", -6.1280000000e+01, 9, +__LINE__, " -612.8e+1", -6.1280000000e+03, 10, +__LINE__, " -612.8e1", -6.1280000000e+03, 9, +__LINE__, " -6128", -6.1280000000e+03, 6, +__LINE__, " -6128+", -6.1280000000e+03, 6, +__LINE__, " -6128+1", -6.1280000000e+03, 6, +__LINE__, " -6128+20", -6.1280000000e+03, 6, +__LINE__, " -6128-", -6.1280000000e+03, 6, +__LINE__, " -6128-1", -6.1280000000e+03, 6, +__LINE__, " -6128-20", -6.1280000000e+03, 6, +__LINE__, " -6128e", -6.1280000000e+03, 6, +__LINE__, " -6128e+", -6.1280000000e+03, 6, +__LINE__, " -6128e-", -6.1280000000e+03, 6, +__LINE__, "-612.8e+1", -6.1280000000e+03, 9, +__LINE__, "-612.8e1", -6.1280000000e+03, 8, +__LINE__, "-6128", -6.1280000000e+03, 5, +__LINE__, "-6128+", -6.1280000000e+03, 5, +__LINE__, "-6128+1", -6.1280000000e+03, 5, +__LINE__, "-6128+20", -6.1280000000e+03, 5, +__LINE__, "-6128-", -6.1280000000e+03, 5, +__LINE__, "-6128-1", -6.1280000000e+03, 5, +__LINE__, "-6128-20", -6.1280000000e+03, 5, +__LINE__, "-6128e", -6.1280000000e+03, 5, +__LINE__, "-6128e+", -6.1280000000e+03, 5, +__LINE__, "-6128e-", -6.1280000000e+03, 5, +__LINE__, " -6128e+1", -6.1280000000e+04, 9, +__LINE__, " -6128e1", -6.1280000000e+04, 8, +__LINE__, "-6128e+1", -6.1280000000e+04, 8, +__LINE__, "-6128e1", -6.1280000000e+04, 7, +__LINE__, " -6128e+20", -6.1280000000e+23, 10, +__LINE__, " -6128e20", -6.1280000000e+23, 9, +__LINE__, "-6128e+20", -6.1280000000e+23, 9, +__LINE__, "-6128e20", -6.1280000000e+23, 8, +__LINE__, " -612.8e-20", -6.1280000000e-18, 11, +__LINE__, "-612.8e-20", -6.1280000000e-18, 10, +__LINE__, " -612.81", -6.1281000000e+02, 8, +__LINE__, "-612.81", -6.1281000000e+02, 7, +__LINE__, " -61281", -6.1281000000e+04, 7, +__LINE__, "-61281", -6.1281000000e+04, 6, +__LINE__, " -612820", -6.1282000000e+05, 8, +__LINE__, "-612820", -6.1282000000e+05, 7, +__LINE__, " -612.820", -6.1282000000e+02, 9, +__LINE__, "-612.820", -6.1282000000e+02, 8, +__LINE__, " -612.9e-1", -6.1290000000e+01, 10, +__LINE__, "-612.9e-1", -6.1290000000e+01, 9, +__LINE__, " -612.9", -6.1290000000e+02, 7, +__LINE__, " -612.9+", -6.1290000000e+02, 7, +__LINE__, " -612.9+1", -6.1290000000e+02, 7, +__LINE__, " -612.9+20", -6.1290000000e+02, 7, +__LINE__, " -612.9-", -6.1290000000e+02, 7, +__LINE__, " -612.9-1", -6.1290000000e+02, 7, +__LINE__, " -612.9-20", -6.1290000000e+02, 7, +__LINE__, " -612.9e", -6.1290000000e+02, 7, +__LINE__, " -612.9e+", -6.1290000000e+02, 7, +__LINE__, " -612.9e-", -6.1290000000e+02, 7, +__LINE__, " -6129e-1", -6.1290000000e+02, 9, +__LINE__, "-612.9", -6.1290000000e+02, 6, +__LINE__, "-612.9+", -6.1290000000e+02, 6, +__LINE__, "-612.9+1", -6.1290000000e+02, 6, +__LINE__, "-612.9+20", -6.1290000000e+02, 6, +__LINE__, "-612.9-", -6.1290000000e+02, 6, +__LINE__, "-612.9-1", -6.1290000000e+02, 6, +__LINE__, "-612.9-20", -6.1290000000e+02, 6, +__LINE__, "-612.9e", -6.1290000000e+02, 6, +__LINE__, "-612.9e+", -6.1290000000e+02, 6, +__LINE__, "-612.9e-", -6.1290000000e+02, 6, +__LINE__, "-6129e-1", -6.1290000000e+02, 8, +__LINE__, " -612.9e+1", -6.1290000000e+03, 10, +__LINE__, " -612.9e1", -6.1290000000e+03, 9, +__LINE__, " -6129", -6.1290000000e+03, 6, +__LINE__, " -6129+", -6.1290000000e+03, 6, +__LINE__, " -6129+1", -6.1290000000e+03, 6, +__LINE__, " -6129+20", -6.1290000000e+03, 6, +__LINE__, " -6129-", -6.1290000000e+03, 6, +__LINE__, " -6129-1", -6.1290000000e+03, 6, +__LINE__, " -6129-20", -6.1290000000e+03, 6, +__LINE__, " -6129e", -6.1290000000e+03, 6, +__LINE__, " -6129e+", -6.1290000000e+03, 6, +__LINE__, " -6129e-", -6.1290000000e+03, 6, +__LINE__, "-612.9e+1", -6.1290000000e+03, 9, +__LINE__, "-612.9e1", -6.1290000000e+03, 8, +__LINE__, "-6129", -6.1290000000e+03, 5, +__LINE__, "-6129+", -6.1290000000e+03, 5, +__LINE__, "-6129+1", -6.1290000000e+03, 5, +__LINE__, "-6129+20", -6.1290000000e+03, 5, +__LINE__, "-6129-", -6.1290000000e+03, 5, +__LINE__, "-6129-1", -6.1290000000e+03, 5, +__LINE__, "-6129-20", -6.1290000000e+03, 5, +__LINE__, "-6129e", -6.1290000000e+03, 5, +__LINE__, "-6129e+", -6.1290000000e+03, 5, +__LINE__, "-6129e-", -6.1290000000e+03, 5, +__LINE__, " -6129e+1", -6.1290000000e+04, 9, +__LINE__, " -6129e1", -6.1290000000e+04, 8, +__LINE__, "-6129e+1", -6.1290000000e+04, 8, +__LINE__, "-6129e1", -6.1290000000e+04, 7, +__LINE__, " -612.9e+20", -6.1290000000e+22, 11, +__LINE__, " -612.9e20", -6.1290000000e+22, 10, +__LINE__, "-612.9e+20", -6.1290000000e+22, 10, +__LINE__, "-612.9e20", -6.1290000000e+22, 9, +__LINE__, " -6129e+20", -6.1290000000e+23, 10, +__LINE__, " -6129e20", -6.1290000000e+23, 9, +__LINE__, "-6129e+20", -6.1290000000e+23, 9, +__LINE__, "-6129e20", -6.1290000000e+23, 8, +__LINE__, " -612.9e-20", -6.1290000000e-18, 11, +__LINE__, "-612.9e-20", -6.1290000000e-18, 10, +__LINE__, " -6129e-20", -6.1290000000e-17, 10, +__LINE__, "-6129e-20", -6.1290000000e-17, 9, +__LINE__, " -612.91", -6.1291000000e+02, 8, +__LINE__, "-612.91", -6.1291000000e+02, 7, +__LINE__, " -61291", -6.1291000000e+04, 7, +__LINE__, "-61291", -6.1291000000e+04, 6, +__LINE__, " -612.920", -6.1292000000e+02, 9, +__LINE__, "-612.920", -6.1292000000e+02, 8, +__LINE__, " -612920", -6.1292000000e+05, 8, +__LINE__, "-612920", -6.1292000000e+05, 7, +__LINE__, " -08e-20", -8.0000000000e-20, 8, +__LINE__, " -8e-20", -8.0000000000e-20, 7, +__LINE__, "-08e-20", -8.0000000000e-20, 7, +__LINE__, "-8e-20", -8.0000000000e-20, 6, +__LINE__, " -.8e-20", -8.0000000000e-21, 8, +__LINE__, " -0.8e-20", -8.0000000000e-21, 9, +__LINE__, "-.8e-20", -8.0000000000e-21, 7, +__LINE__, "-0.8e-20", -8.0000000000e-21, 8, +__LINE__, " -.8e+1", -8.0000000000e+00, 7, +__LINE__, " -.8e1", -8.0000000000e+00, 6, +__LINE__, " -0.8e+1", -8.0000000000e+00, 8, +__LINE__, " -0.8e1", -8.0000000000e+00, 7, +__LINE__, " -08", -8.0000000000e+00, 4, +__LINE__, " -08+", -8.0000000000e+00, 4, +__LINE__, " -08+1", -8.0000000000e+00, 4, +__LINE__, " -08+20", -8.0000000000e+00, 4, +__LINE__, " -08-", -8.0000000000e+00, 4, +__LINE__, " -08-1", -8.0000000000e+00, 4, +__LINE__, " -08-20", -8.0000000000e+00, 4, +__LINE__, " -08e", -8.0000000000e+00, 4, +__LINE__, " -08e+", -8.0000000000e+00, 4, +__LINE__, " -08e-", -8.0000000000e+00, 4, +__LINE__, " -8", -8.0000000000e+00, 3, +__LINE__, " -8+", -8.0000000000e+00, 3, +__LINE__, " -8+1", -8.0000000000e+00, 3, +__LINE__, " -8+20", -8.0000000000e+00, 3, +__LINE__, " -8-", -8.0000000000e+00, 3, +__LINE__, " -8-1", -8.0000000000e+00, 3, +__LINE__, " -8-20", -8.0000000000e+00, 3, +__LINE__, " -8e", -8.0000000000e+00, 3, +__LINE__, " -8e+", -8.0000000000e+00, 3, +__LINE__, " -8e-", -8.0000000000e+00, 3, +__LINE__, "-.8e+1", -8.0000000000e+00, 6, +__LINE__, "-.8e1", -8.0000000000e+00, 5, +__LINE__, "-0.8e+1", -8.0000000000e+00, 7, +__LINE__, "-0.8e1", -8.0000000000e+00, 6, +__LINE__, "-08", -8.0000000000e+00, 3, +__LINE__, "-08+", -8.0000000000e+00, 3, +__LINE__, "-08+1", -8.0000000000e+00, 3, +__LINE__, "-08+20", -8.0000000000e+00, 3, +__LINE__, "-08-", -8.0000000000e+00, 3, +__LINE__, "-08-1", -8.0000000000e+00, 3, +__LINE__, "-08-20", -8.0000000000e+00, 3, +__LINE__, "-08e", -8.0000000000e+00, 3, +__LINE__, "-08e+", -8.0000000000e+00, 3, +__LINE__, "-08e-", -8.0000000000e+00, 3, +__LINE__, "-8", -8.0000000000e+00, 2, +__LINE__, "-8+", -8.0000000000e+00, 2, +__LINE__, "-8+1", -8.0000000000e+00, 2, +__LINE__, "-8+20", -8.0000000000e+00, 2, +__LINE__, "-8-", -8.0000000000e+00, 2, +__LINE__, "-8-1", -8.0000000000e+00, 2, +__LINE__, "-8-20", -8.0000000000e+00, 2, +__LINE__, "-8e", -8.0000000000e+00, 2, +__LINE__, "-8e+", -8.0000000000e+00, 2, +__LINE__, "-8e-", -8.0000000000e+00, 2, +__LINE__, " -08e+1", -8.0000000000e+01, 7, +__LINE__, " -08e1", -8.0000000000e+01, 6, +__LINE__, " -8e+1", -8.0000000000e+01, 6, +__LINE__, " -8e1", -8.0000000000e+01, 5, +__LINE__, "-08e+1", -8.0000000000e+01, 6, +__LINE__, "-08e1", -8.0000000000e+01, 5, +__LINE__, "-8e+1", -8.0000000000e+01, 5, +__LINE__, "-8e1", -8.0000000000e+01, 4, +__LINE__, " -.8e+20", -8.0000000000e+19, 8, +__LINE__, " -.8e20", -8.0000000000e+19, 7, +__LINE__, " -0.8e+20", -8.0000000000e+19, 9, +__LINE__, " -0.8e20", -8.0000000000e+19, 8, +__LINE__, "-.8e+20", -8.0000000000e+19, 7, +__LINE__, "-.8e20", -8.0000000000e+19, 6, +__LINE__, "-0.8e+20", -8.0000000000e+19, 8, +__LINE__, "-0.8e20", -8.0000000000e+19, 7, +__LINE__, " -08e+20", -8.0000000000e+20, 8, +__LINE__, " -08e20", -8.0000000000e+20, 7, +__LINE__, " -8e+20", -8.0000000000e+20, 7, +__LINE__, " -8e20", -8.0000000000e+20, 6, +__LINE__, "-08e+20", -8.0000000000e+20, 7, +__LINE__, "-08e20", -8.0000000000e+20, 6, +__LINE__, "-8e+20", -8.0000000000e+20, 6, +__LINE__, "-8e20", -8.0000000000e+20, 5, +__LINE__, " -.8", -8.0000000000e-01, 4, +__LINE__, " -.8+", -8.0000000000e-01, 4, +__LINE__, " -.8+1", -8.0000000000e-01, 4, +__LINE__, " -.8+20", -8.0000000000e-01, 4, +__LINE__, " -.8-", -8.0000000000e-01, 4, +__LINE__, " -.8-1", -8.0000000000e-01, 4, +__LINE__, " -.8-20", -8.0000000000e-01, 4, +__LINE__, " -.8e", -8.0000000000e-01, 4, +__LINE__, " -.8e+", -8.0000000000e-01, 4, +__LINE__, " -.8e-", -8.0000000000e-01, 4, +__LINE__, " -0.8", -8.0000000000e-01, 5, +__LINE__, " -0.8+", -8.0000000000e-01, 5, +__LINE__, " -0.8+1", -8.0000000000e-01, 5, +__LINE__, " -0.8+20", -8.0000000000e-01, 5, +__LINE__, " -0.8-", -8.0000000000e-01, 5, +__LINE__, " -0.8-1", -8.0000000000e-01, 5, +__LINE__, " -0.8-20", -8.0000000000e-01, 5, +__LINE__, " -0.8e", -8.0000000000e-01, 5, +__LINE__, " -0.8e+", -8.0000000000e-01, 5, +__LINE__, " -0.8e-", -8.0000000000e-01, 5, +__LINE__, " -08e-1", -8.0000000000e-01, 7, +__LINE__, " -8e-1", -8.0000000000e-01, 6, +__LINE__, "-.8", -8.0000000000e-01, 3, +__LINE__, "-.8+", -8.0000000000e-01, 3, +__LINE__, "-.8+1", -8.0000000000e-01, 3, +__LINE__, "-.8+20", -8.0000000000e-01, 3, +__LINE__, "-.8-", -8.0000000000e-01, 3, +__LINE__, "-.8-1", -8.0000000000e-01, 3, +__LINE__, "-.8-20", -8.0000000000e-01, 3, +__LINE__, "-.8e", -8.0000000000e-01, 3, +__LINE__, "-.8e+", -8.0000000000e-01, 3, +__LINE__, "-.8e-", -8.0000000000e-01, 3, +__LINE__, "-0.8", -8.0000000000e-01, 4, +__LINE__, "-0.8+", -8.0000000000e-01, 4, +__LINE__, "-0.8+1", -8.0000000000e-01, 4, +__LINE__, "-0.8+20", -8.0000000000e-01, 4, +__LINE__, "-0.8-", -8.0000000000e-01, 4, +__LINE__, "-0.8-1", -8.0000000000e-01, 4, +__LINE__, "-0.8-20", -8.0000000000e-01, 4, +__LINE__, "-0.8e", -8.0000000000e-01, 4, +__LINE__, "-0.8e+", -8.0000000000e-01, 4, +__LINE__, "-0.8e-", -8.0000000000e-01, 4, +__LINE__, "-08e-1", -8.0000000000e-01, 6, +__LINE__, "-8e-1", -8.0000000000e-01, 5, +__LINE__, " -.8e-1", -8.0000000000e-02, 7, +__LINE__, " -0.8e-1", -8.0000000000e-02, 8, +__LINE__, "-.8e-1", -8.0000000000e-02, 6, +__LINE__, "-0.8e-1", -8.0000000000e-02, 7, +__LINE__, " -081", -8.1000000000e+01, 5, +__LINE__, " -81", -8.1000000000e+01, 4, +__LINE__, "-081", -8.1000000000e+01, 4, +__LINE__, "-81", -8.1000000000e+01, 3, +__LINE__, " -.81", -8.1000000000e-01, 5, +__LINE__, " -0.81", -8.1000000000e-01, 6, +__LINE__, "-.81", -8.1000000000e-01, 4, +__LINE__, "-0.81", -8.1000000000e-01, 5, +__LINE__, " -0820", -8.2000000000e+02, 6, +__LINE__, " -820", -8.2000000000e+02, 5, +__LINE__, "-0820", -8.2000000000e+02, 5, +__LINE__, "-820", -8.2000000000e+02, 4, +__LINE__, " -.820", -8.2000000000e-01, 6, +__LINE__, " -0.820", -8.2000000000e-01, 7, +__LINE__, "-.820", -8.2000000000e-01, 5, +__LINE__, "-0.820", -8.2000000000e-01, 6, +__LINE__, " -.9e+1", -9.0000000000e+00, 7, +__LINE__, " -.9e1", -9.0000000000e+00, 6, +__LINE__, " -0.9e+1", -9.0000000000e+00, 8, +__LINE__, " -0.9e1", -9.0000000000e+00, 7, +__LINE__, " -09", -9.0000000000e+00, 4, +__LINE__, " -09+", -9.0000000000e+00, 4, +__LINE__, " -09+1", -9.0000000000e+00, 4, +__LINE__, " -09+20", -9.0000000000e+00, 4, +__LINE__, " -09-", -9.0000000000e+00, 4, +__LINE__, " -09-1", -9.0000000000e+00, 4, +__LINE__, " -09-20", -9.0000000000e+00, 4, +__LINE__, " -09e", -9.0000000000e+00, 4, +__LINE__, " -09e+", -9.0000000000e+00, 4, +__LINE__, " -09e-", -9.0000000000e+00, 4, +__LINE__, " -9", -9.0000000000e+00, 3, +__LINE__, " -9+", -9.0000000000e+00, 3, +__LINE__, " -9+1", -9.0000000000e+00, 3, +__LINE__, " -9+20", -9.0000000000e+00, 3, +__LINE__, " -9-", -9.0000000000e+00, 3, +__LINE__, " -9-1", -9.0000000000e+00, 3, +__LINE__, " -9-20", -9.0000000000e+00, 3, +__LINE__, " -9e", -9.0000000000e+00, 3, +__LINE__, " -9e+", -9.0000000000e+00, 3, +__LINE__, " -9e-", -9.0000000000e+00, 3, +__LINE__, "-.9e+1", -9.0000000000e+00, 6, +__LINE__, "-.9e1", -9.0000000000e+00, 5, +__LINE__, "-0.9e+1", -9.0000000000e+00, 7, +__LINE__, "-0.9e1", -9.0000000000e+00, 6, +__LINE__, "-09", -9.0000000000e+00, 3, +__LINE__, "-09+", -9.0000000000e+00, 3, +__LINE__, "-09+1", -9.0000000000e+00, 3, +__LINE__, "-09+20", -9.0000000000e+00, 3, +__LINE__, "-09-", -9.0000000000e+00, 3, +__LINE__, "-09-1", -9.0000000000e+00, 3, +__LINE__, "-09-20", -9.0000000000e+00, 3, +__LINE__, "-09e", -9.0000000000e+00, 3, +__LINE__, "-09e+", -9.0000000000e+00, 3, +__LINE__, "-09e-", -9.0000000000e+00, 3, +__LINE__, "-9", -9.0000000000e+00, 2, +__LINE__, "-9+", -9.0000000000e+00, 2, +__LINE__, "-9+1", -9.0000000000e+00, 2, +__LINE__, "-9+20", -9.0000000000e+00, 2, +__LINE__, "-9-", -9.0000000000e+00, 2, +__LINE__, "-9-1", -9.0000000000e+00, 2, +__LINE__, "-9-20", -9.0000000000e+00, 2, +__LINE__, "-9e", -9.0000000000e+00, 2, +__LINE__, "-9e+", -9.0000000000e+00, 2, +__LINE__, "-9e-", -9.0000000000e+00, 2, +__LINE__, " -09e+1", -9.0000000000e+01, 7, +__LINE__, " -09e1", -9.0000000000e+01, 6, +__LINE__, " -9e+1", -9.0000000000e+01, 6, +__LINE__, " -9e1", -9.0000000000e+01, 5, +__LINE__, "-09e+1", -9.0000000000e+01, 6, +__LINE__, "-09e1", -9.0000000000e+01, 5, +__LINE__, "-9e+1", -9.0000000000e+01, 5, +__LINE__, "-9e1", -9.0000000000e+01, 4, +__LINE__, " -.9e+20", -9.0000000000e+19, 8, +__LINE__, " -.9e20", -9.0000000000e+19, 7, +__LINE__, " -0.9e+20", -9.0000000000e+19, 9, +__LINE__, " -0.9e20", -9.0000000000e+19, 8, +__LINE__, "-.9e+20", -9.0000000000e+19, 7, +__LINE__, "-.9e20", -9.0000000000e+19, 6, +__LINE__, "-0.9e+20", -9.0000000000e+19, 8, +__LINE__, "-0.9e20", -9.0000000000e+19, 7, +__LINE__, " -09e+20", -9.0000000000e+20, 8, +__LINE__, " -09e20", -9.0000000000e+20, 7, +__LINE__, " -9e+20", -9.0000000000e+20, 7, +__LINE__, " -9e20", -9.0000000000e+20, 6, +__LINE__, "-09e+20", -9.0000000000e+20, 7, +__LINE__, "-09e20", -9.0000000000e+20, 6, +__LINE__, "-9e+20", -9.0000000000e+20, 6, +__LINE__, "-9e20", -9.0000000000e+20, 5, +__LINE__, " -.9", -9.0000000000e-01, 4, +__LINE__, " -.9+", -9.0000000000e-01, 4, +__LINE__, " -.9+1", -9.0000000000e-01, 4, +__LINE__, " -.9+20", -9.0000000000e-01, 4, +__LINE__, " -.9-", -9.0000000000e-01, 4, +__LINE__, " -.9-1", -9.0000000000e-01, 4, +__LINE__, " -.9-20", -9.0000000000e-01, 4, +__LINE__, " -.9e", -9.0000000000e-01, 4, +__LINE__, " -.9e+", -9.0000000000e-01, 4, +__LINE__, " -.9e-", -9.0000000000e-01, 4, +__LINE__, " -0.9", -9.0000000000e-01, 5, +__LINE__, " -0.9+", -9.0000000000e-01, 5, +__LINE__, " -0.9+1", -9.0000000000e-01, 5, +__LINE__, " -0.9+20", -9.0000000000e-01, 5, +__LINE__, " -0.9-", -9.0000000000e-01, 5, +__LINE__, " -0.9-1", -9.0000000000e-01, 5, +__LINE__, " -0.9-20", -9.0000000000e-01, 5, +__LINE__, " -0.9e", -9.0000000000e-01, 5, +__LINE__, " -0.9e+", -9.0000000000e-01, 5, +__LINE__, " -0.9e-", -9.0000000000e-01, 5, +__LINE__, " -09e-1", -9.0000000000e-01, 7, +__LINE__, " -9e-1", -9.0000000000e-01, 6, +__LINE__, "-.9", -9.0000000000e-01, 3, +__LINE__, "-.9+", -9.0000000000e-01, 3, +__LINE__, "-.9+1", -9.0000000000e-01, 3, +__LINE__, "-.9+20", -9.0000000000e-01, 3, +__LINE__, "-.9-", -9.0000000000e-01, 3, +__LINE__, "-.9-1", -9.0000000000e-01, 3, +__LINE__, "-.9-20", -9.0000000000e-01, 3, +__LINE__, "-.9e", -9.0000000000e-01, 3, +__LINE__, "-.9e+", -9.0000000000e-01, 3, +__LINE__, "-.9e-", -9.0000000000e-01, 3, +__LINE__, "-0.9", -9.0000000000e-01, 4, +__LINE__, "-0.9+", -9.0000000000e-01, 4, +__LINE__, "-0.9+1", -9.0000000000e-01, 4, +__LINE__, "-0.9+20", -9.0000000000e-01, 4, +__LINE__, "-0.9-", -9.0000000000e-01, 4, +__LINE__, "-0.9-1", -9.0000000000e-01, 4, +__LINE__, "-0.9-20", -9.0000000000e-01, 4, +__LINE__, "-0.9e", -9.0000000000e-01, 4, +__LINE__, "-0.9e+", -9.0000000000e-01, 4, +__LINE__, "-0.9e-", -9.0000000000e-01, 4, +__LINE__, "-09e-1", -9.0000000000e-01, 6, +__LINE__, "-9e-1", -9.0000000000e-01, 5, +__LINE__, " -.9e-1", -9.0000000000e-02, 7, +__LINE__, " -0.9e-1", -9.0000000000e-02, 8, +__LINE__, "-.9e-1", -9.0000000000e-02, 6, +__LINE__, "-0.9e-1", -9.0000000000e-02, 7, +__LINE__, " -09e-20", -9.0000000000e-20, 8, +__LINE__, " -9e-20", -9.0000000000e-20, 7, +__LINE__, "-09e-20", -9.0000000000e-20, 7, +__LINE__, "-9e-20", -9.0000000000e-20, 6, +__LINE__, " -.9e-20", -9.0000000000e-21, 8, +__LINE__, " -0.9e-20", -9.0000000000e-21, 9, +__LINE__, "-.9e-20", -9.0000000000e-21, 7, +__LINE__, "-0.9e-20", -9.0000000000e-21, 8, +__LINE__, " -091", -9.1000000000e+01, 5, +__LINE__, " -91", -9.1000000000e+01, 4, +__LINE__, "-091", -9.1000000000e+01, 4, +__LINE__, "-91", -9.1000000000e+01, 3, +__LINE__, " -.91", -9.1000000000e-01, 5, +__LINE__, " -0.91", -9.1000000000e-01, 6, +__LINE__, "-.91", -9.1000000000e-01, 4, +__LINE__, "-0.91", -9.1000000000e-01, 5, +__LINE__, " -0920", -9.2000000000e+02, 6, +__LINE__, " -920", -9.2000000000e+02, 5, +__LINE__, "-0920", -9.2000000000e+02, 5, +__LINE__, "-920", -9.2000000000e+02, 4, +__LINE__, " -.920", -9.2000000000e-01, 6, +__LINE__, " -0.920", -9.2000000000e-01, 7, +__LINE__, "-.920", -9.2000000000e-01, 5, +__LINE__, "-0.920", -9.2000000000e-01, 6, +__LINE__, " ", 0.0000000000e+00, 0, +__LINE__, " +", 0.0000000000e+00, 0, +__LINE__, " ++", 0.0000000000e+00, 0, +__LINE__, " ++1", 0.0000000000e+00, 0, +__LINE__, " ++20", 0.0000000000e+00, 0, +__LINE__, " +-", 0.0000000000e+00, 0, +__LINE__, " +-1", 0.0000000000e+00, 0, +__LINE__, " +-20", 0.0000000000e+00, 0, +__LINE__, " +.", 0.0000000000e+00,0, +__LINE__, " +.+", 0.0000000000e+00,0, +__LINE__, " +.+1", 0.0000000000e+00,0, +__LINE__, " +.+20", 0.0000000000e+00,0, +__LINE__, " +.-", 0.0000000000e+00,0, +__LINE__, " +.-1", 0.0000000000e+00,0, +__LINE__, " +.-20", 0.0000000000e+00,0, +__LINE__, " +.e", 0.0000000000e+00,0, +__LINE__, " +.e+", 0.0000000000e+00,0, +__LINE__, " +.e+1", 0.0000000000e+00,0, +__LINE__, " +.e+20", 0.0000000000e+00,0, +__LINE__, " +.e-", 0.0000000000e+00,0, +__LINE__, " +.e-1", 0.0000000000e+00,0, +__LINE__, " +.e-20", 0.0000000000e+00,0, +__LINE__, " +.e1", 0.0000000000e+00,0, +__LINE__, " +.e20", 0.0000000000e+00,0, +__LINE__, " +0", 0.0000000000e+00, 3, +__LINE__, " +0+", 0.0000000000e+00, 3, +__LINE__, " +0+1", 0.0000000000e+00, 3, +__LINE__, " +0+20", 0.0000000000e+00, 3, +__LINE__, " +0-", 0.0000000000e+00, 3, +__LINE__, " +0-1", 0.0000000000e+00, 3, +__LINE__, " +0-20", 0.0000000000e+00, 3, +__LINE__, " +0.", 0.0000000000e+00, 4, +__LINE__, " +0.+", 0.0000000000e+00, 4, +__LINE__, " +0.+1", 0.0000000000e+00, 4, +__LINE__, " +0.+20", 0.0000000000e+00, 4, +__LINE__, " +0.-", 0.0000000000e+00, 4, +__LINE__, " +0.-1", 0.0000000000e+00, 4, +__LINE__, " +0.-20", 0.0000000000e+00, 4, +__LINE__, " +0.e", 0.0000000000e+00, 4, +__LINE__, " +0.e+", 0.0000000000e+00, 4, +__LINE__, " +0.e+1", 0.0000000000e+00, 7, +__LINE__, " +0.e+20", 0.0000000000e+00, 8, +__LINE__, " +0.e-", 0.0000000000e+00, 4, +__LINE__, " +0.e-1", 0.0000000000e+00, 7, +__LINE__, " +0.e-20", 0.0000000000e+00, 8, +__LINE__, " +0.e1", 0.0000000000e+00, 6, +__LINE__, " +0.e20", 0.0000000000e+00, 7, +__LINE__, " +0e", 0.0000000000e+00, 3, +__LINE__, " +0e+", 0.0000000000e+00, 3, +__LINE__, " +0e+1", 0.0000000000e+00, 6, +__LINE__, " +0e+20", 0.0000000000e+00, 7, +__LINE__, " +0e-", 0.0000000000e+00, 3, +__LINE__, " +0e-1", 0.0000000000e+00, 6, +__LINE__, " +0e-20", 0.0000000000e+00, 7, +__LINE__, " +0e1", 0.0000000000e+00, 5, +__LINE__, " +0e20", 0.0000000000e+00, 6, +__LINE__, " +e", 0.0000000000e+00, 0, +__LINE__, " +e+", 0.0000000000e+00, 0, +__LINE__, " +e+1", 0.0000000000e+00, 0, +__LINE__, " +e+20", 0.0000000000e+00, 0, +__LINE__, " +e-", 0.0000000000e+00, 0, +__LINE__, " +e-1", 0.0000000000e+00, 0, +__LINE__, " +e-20", 0.0000000000e+00, 0, +__LINE__, " +e1", 0.0000000000e+00, 0, +__LINE__, " +e20", 0.0000000000e+00, 0, +__LINE__, " -", 0.0000000000e+00, 0, +__LINE__, " -+", 0.0000000000e+00, 0, +__LINE__, " -+1", 0.0000000000e+00, 0, +__LINE__, " -+20", 0.0000000000e+00, 0, +__LINE__, " --", 0.0000000000e+00, 0, +__LINE__, " --1", 0.0000000000e+00, 0, +__LINE__, " --20", 0.0000000000e+00, 0, +__LINE__, " -.", 0.0000000000e+00,0, +__LINE__, " -.+", 0.0000000000e+00,0, +__LINE__, " -.+1", 0.0000000000e+00,0, +__LINE__, " -.+20", 0.0000000000e+00,0, +__LINE__, " -.-", 0.0000000000e+00,0, +__LINE__, " -.-1", 0.0000000000e+00,0, +__LINE__, " -.-20", 0.0000000000e+00,0, +__LINE__, " -.e", 0.0000000000e+00,0, +__LINE__, " -.e+", 0.0000000000e+00,0, +__LINE__, " -.e+1", 0.0000000000e+00,0, +__LINE__, " -.e+20", 0.0000000000e+00,0, +__LINE__, " -.e-", 0.0000000000e+00,0, +__LINE__, " -.e-1", 0.0000000000e+00,0, +__LINE__, " -.e-20", 0.0000000000e+00,0, +__LINE__, " -.e1", 0.0000000000e+00,0, +__LINE__, " -.e20", 0.0000000000e+00,0, +__LINE__, " -0", 0.0000000000e+00, 3, +__LINE__, " -0+", 0.0000000000e+00, 3, +__LINE__, " -0+1", 0.0000000000e+00, 3, +__LINE__, " -0+20", 0.0000000000e+00, 3, +__LINE__, " -0-", 0.0000000000e+00, 3, +__LINE__, " -0-1", 0.0000000000e+00, 3, +__LINE__, " -0-20", 0.0000000000e+00, 3, +__LINE__, " -0.", 0.0000000000e+00, 4, +__LINE__, " -0.+", 0.0000000000e+00, 4, +__LINE__, " -0.+1", 0.0000000000e+00, 4, +__LINE__, " -0.+20", 0.0000000000e+00, 4, +__LINE__, " -0.-", 0.0000000000e+00, 4, +__LINE__, " -0.-1", 0.0000000000e+00, 4, +__LINE__, " -0.-20", 0.0000000000e+00, 4, +__LINE__, " -0.e", 0.0000000000e+00, 4, +__LINE__, " -0.e+", 0.0000000000e+00, 4, +__LINE__, " -0.e+1", 0.0000000000e+00, 7, +__LINE__, " -0.e+20", 0.0000000000e+00, 8, +__LINE__, " -0.e-", 0.0000000000e+00, 4, +__LINE__, " -0.e-1", 0.0000000000e+00, 7, +__LINE__, " -0.e-20", 0.0000000000e+00, 8, +__LINE__, " -0.e1", 0.0000000000e+00, 6, +__LINE__, " -0.e20", 0.0000000000e+00, 7, +__LINE__, " -0e", 0.0000000000e+00, 3, +__LINE__, " -0e+", 0.0000000000e+00, 3, +__LINE__, " -0e+1", 0.0000000000e+00, 6, +__LINE__, " -0e+20", 0.0000000000e+00, 7, +__LINE__, " -0e-", 0.0000000000e+00, 3, +__LINE__, " -0e-1", 0.0000000000e+00, 6, +__LINE__, " -0e-20", 0.0000000000e+00, 7, +__LINE__, " -0e1", 0.0000000000e+00, 5, +__LINE__, " -0e20", 0.0000000000e+00, 6, +__LINE__, " -e", 0.0000000000e+00, 0, +__LINE__, " -e+", 0.0000000000e+00, 0, +__LINE__, " -e+1", 0.0000000000e+00, 0, +__LINE__, " -e+20", 0.0000000000e+00, 0, +__LINE__, " -e-", 0.0000000000e+00, 0, +__LINE__, " -e-1", 0.0000000000e+00, 0, +__LINE__, " -e-20", 0.0000000000e+00, 0, +__LINE__, " -e1", 0.0000000000e+00, 0, +__LINE__, " -e20", 0.0000000000e+00, 0, +__LINE__, " .", 0.0000000000e+00,0, +__LINE__, " .+", 0.0000000000e+00,0, +__LINE__, " .+1", 0.0000000000e+00,0, +__LINE__, " .+20", 0.0000000000e+00,0, +__LINE__, " .-", 0.0000000000e+00,0, +__LINE__, " .-1", 0.0000000000e+00,0, +__LINE__, " .-20", 0.0000000000e+00,0, +__LINE__, " .e", 0.0000000000e+00,0, +__LINE__, " .e+", 0.0000000000e+00,0, +__LINE__, " .e+1", 0.0000000000e+00,0, +__LINE__, " .e+20", 0.0000000000e+00,0, +__LINE__, " .e-", 0.0000000000e+00,0, +__LINE__, " .e-1", 0.0000000000e+00,0, +__LINE__, " .e-20", 0.0000000000e+00,0, +__LINE__, " .e1", 0.0000000000e+00,0, +__LINE__, " .e20", 0.0000000000e+00,0, +__LINE__, " 0", 0.0000000000e+00, 2, +__LINE__, " 0+", 0.0000000000e+00, 2, +__LINE__, " 0+1", 0.0000000000e+00, 2, +__LINE__, " 0+20", 0.0000000000e+00, 2, +__LINE__, " 0-", 0.0000000000e+00, 2, +__LINE__, " 0-1", 0.0000000000e+00, 2, +__LINE__, " 0-20", 0.0000000000e+00, 2, +__LINE__, " 0.", 0.0000000000e+00, 3, +__LINE__, " 0.+", 0.0000000000e+00, 3, +__LINE__, " 0.+1", 0.0000000000e+00, 3, +__LINE__, " 0.+20", 0.0000000000e+00, 3, +__LINE__, " 0.-", 0.0000000000e+00, 3, +__LINE__, " 0.-1", 0.0000000000e+00, 3, +__LINE__, " 0.-20", 0.0000000000e+00, 3, +__LINE__, " 0.e", 0.0000000000e+00, 3, +__LINE__, " 0.e+", 0.0000000000e+00, 3, +__LINE__, " 0.e+1", 0.0000000000e+00, 6, +__LINE__, " 0.e+20", 0.0000000000e+00, 7, +__LINE__, " 0.e-", 0.0000000000e+00, 3, +__LINE__, " 0.e-1", 0.0000000000e+00, 6, +__LINE__, " 0.e-20", 0.0000000000e+00, 7, +__LINE__, " 0.e1", 0.0000000000e+00, 5, +__LINE__, " 0.e20", 0.0000000000e+00, 6, +__LINE__, " 0e", 0.0000000000e+00, 2, +__LINE__, " 0e+", 0.0000000000e+00, 2, +__LINE__, " 0e+1", 0.0000000000e+00, 5, +__LINE__, " 0e+20", 0.0000000000e+00, 6, +__LINE__, " 0e-", 0.0000000000e+00, 2, +__LINE__, " 0e-1", 0.0000000000e+00, 5, +__LINE__, " 0e-20", 0.0000000000e+00, 6, +__LINE__, " 0e1", 0.0000000000e+00, 4, +__LINE__, " 0e20", 0.0000000000e+00, 5, +__LINE__, " e", 0.0000000000e+00, 0, +__LINE__, " e+", 0.0000000000e+00, 0, +__LINE__, " e+1", 0.0000000000e+00, 0, +__LINE__, " e+20", 0.0000000000e+00, 0, +__LINE__, " e-", 0.0000000000e+00, 0, +__LINE__, " e-1", 0.0000000000e+00, 0, +__LINE__, " e-20", 0.0000000000e+00, 0, +__LINE__, " e1", 0.0000000000e+00, 0, +__LINE__, " e20", 0.0000000000e+00, 0, +__LINE__, "", 0.0000000000e+00, 0, +__LINE__, "+", 0.0000000000e+00, 0, +__LINE__, "++", 0.0000000000e+00, 0, +__LINE__, "++1", 0.0000000000e+00, 0, +__LINE__, "++20", 0.0000000000e+00, 0, +__LINE__, "+-", 0.0000000000e+00, 0, +__LINE__, "+-1", 0.0000000000e+00, 0, +__LINE__, "+-20", 0.0000000000e+00, 0, +__LINE__, "+.", 0.0000000000e+00,0, +__LINE__, "+.+", 0.0000000000e+00,0, +__LINE__, "+.+1", 0.0000000000e+00,0, +__LINE__, "+.+20", 0.0000000000e+00,0, +__LINE__, "+.-", 0.0000000000e+00,0, +__LINE__, "+.-1", 0.0000000000e+00,0, +__LINE__, "+.-20", 0.0000000000e+00,0, +__LINE__, "+.e", 0.0000000000e+00,0, +__LINE__, "+.e+", 0.0000000000e+00,0, +__LINE__, "+.e+1", 0.0000000000e+00,0, +__LINE__, "+.e+20", 0.0000000000e+00,0, +__LINE__, "+.e-", 0.0000000000e+00,0, +__LINE__, "+.e-1", 0.0000000000e+00,0, +__LINE__, "+.e-20", 0.0000000000e+00,0, +__LINE__, "+.e1", 0.0000000000e+00,0, +__LINE__, "+.e20", 0.0000000000e+00,0, +__LINE__, "+0", 0.0000000000e+00, 2, +__LINE__, "+0+", 0.0000000000e+00, 2, +__LINE__, "+0+1", 0.0000000000e+00, 2, +__LINE__, "+0+20", 0.0000000000e+00, 2, +__LINE__, "+0-", 0.0000000000e+00, 2, +__LINE__, "+0-1", 0.0000000000e+00, 2, +__LINE__, "+0-20", 0.0000000000e+00, 2, +__LINE__, "+0.", 0.0000000000e+00, 3, +__LINE__, "+0.+", 0.0000000000e+00, 3, +__LINE__, "+0.+1", 0.0000000000e+00, 3, +__LINE__, "+0.+20", 0.0000000000e+00, 3, +__LINE__, "+0.-", 0.0000000000e+00, 3, +__LINE__, "+0.-1", 0.0000000000e+00, 3, +__LINE__, "+0.-20", 0.0000000000e+00, 3, +__LINE__, "+0.e", 0.0000000000e+00, 3, +__LINE__, "+0.e+", 0.0000000000e+00, 3, +__LINE__, "+0.e+1", 0.0000000000e+00, 6, +__LINE__, "+0.e+20", 0.0000000000e+00, 7, +__LINE__, "+0.e-", 0.0000000000e+00, 3, +__LINE__, "+0.e-1", 0.0000000000e+00, 6, +__LINE__, "+0.e-20", 0.0000000000e+00, 7, +__LINE__, "+0.e1", 0.0000000000e+00, 5, +__LINE__, "+0.e20", 0.0000000000e+00, 6, +__LINE__, "+0e", 0.0000000000e+00, 2, +__LINE__, "+0e+", 0.0000000000e+00, 2, +__LINE__, "+0e+1", 0.0000000000e+00, 5, +__LINE__, "+0e+20", 0.0000000000e+00, 6, +__LINE__, "+0e-", 0.0000000000e+00, 2, +__LINE__, "+0e-1", 0.0000000000e+00, 5, +__LINE__, "+0e-20", 0.0000000000e+00, 6, +__LINE__, "+0e1", 0.0000000000e+00, 4, +__LINE__, "+0e20", 0.0000000000e+00, 5, +__LINE__, "+e", 0.0000000000e+00, 0, +__LINE__, "+e+", 0.0000000000e+00, 0, +__LINE__, "+e+1", 0.0000000000e+00, 0, +__LINE__, "+e+20", 0.0000000000e+00, 0, +__LINE__, "+e-", 0.0000000000e+00, 0, +__LINE__, "+e-1", 0.0000000000e+00, 0, +__LINE__, "+e-20", 0.0000000000e+00, 0, +__LINE__, "+e1", 0.0000000000e+00, 0, +__LINE__, "+e20", 0.0000000000e+00, 0, +__LINE__, "-", 0.0000000000e+00, 0, +__LINE__, "-+", 0.0000000000e+00, 0, +__LINE__, "-+1", 0.0000000000e+00, 0, +__LINE__, "-+20", 0.0000000000e+00, 0, +__LINE__, "--", 0.0000000000e+00, 0, +__LINE__, "--1", 0.0000000000e+00, 0, +__LINE__, "--20", 0.0000000000e+00, 0, +__LINE__, "-.", 0.0000000000e+00,0, +__LINE__, "-.+", 0.0000000000e+00,0, +__LINE__, "-.+1", 0.0000000000e+00,0, +__LINE__, "-.+20", 0.0000000000e+00,0, +__LINE__, "-.-", 0.0000000000e+00,0, +__LINE__, "-.-1", 0.0000000000e+00,0, +__LINE__, "-.-20", 0.0000000000e+00,0, +__LINE__, "-.e", 0.0000000000e+00,0, +__LINE__, "-.e+", 0.0000000000e+00,0, +__LINE__, "-.e+1", 0.0000000000e+00,0, +__LINE__, "-.e+20", 0.0000000000e+00,0, +__LINE__, "-.e-", 0.0000000000e+00,0, +__LINE__, "-.e-1", 0.0000000000e+00,0, +__LINE__, "-.e-20", 0.0000000000e+00,0, +__LINE__, "-.e1", 0.0000000000e+00,0, +__LINE__, "-.e20", 0.0000000000e+00,0, +__LINE__, "-0", 0.0000000000e+00, 2, +__LINE__, "-0+", 0.0000000000e+00, 2, +__LINE__, "-0+1", 0.0000000000e+00, 2, +__LINE__, "-0+20", 0.0000000000e+00, 2, +__LINE__, "-0-", 0.0000000000e+00, 2, +__LINE__, "-0-1", 0.0000000000e+00, 2, +__LINE__, "-0-20", 0.0000000000e+00, 2, +__LINE__, "-0.", 0.0000000000e+00, 3, +__LINE__, "-0.+", 0.0000000000e+00, 3, +__LINE__, "-0.+1", 0.0000000000e+00, 3, +__LINE__, "-0.+20", 0.0000000000e+00, 3, +__LINE__, "-0.-", 0.0000000000e+00, 3, +__LINE__, "-0.-1", 0.0000000000e+00, 3, +__LINE__, "-0.-20", 0.0000000000e+00, 3, +__LINE__, "-0.e", 0.0000000000e+00, 3, +__LINE__, "-0.e+", 0.0000000000e+00, 3, +__LINE__, "-0.e+1", 0.0000000000e+00, 6, +__LINE__, "-0.e+20", 0.0000000000e+00, 7, +__LINE__, "-0.e-", 0.0000000000e+00, 3, +__LINE__, "-0.e-1", 0.0000000000e+00, 6, +__LINE__, "-0.e-20", 0.0000000000e+00, 7, +__LINE__, "-0.e1", 0.0000000000e+00, 5, +__LINE__, "-0.e20", 0.0000000000e+00, 6, +__LINE__, "-0e", 0.0000000000e+00, 2, +__LINE__, "-0e+", 0.0000000000e+00, 2, +__LINE__, "-0e+1", 0.0000000000e+00, 5, +__LINE__, "-0e+20", 0.0000000000e+00, 6, +__LINE__, "-0e-", 0.0000000000e+00, 2, +__LINE__, "-0e-1", 0.0000000000e+00, 5, +__LINE__, "-0e-20", 0.0000000000e+00, 6, +__LINE__, "-0e1", 0.0000000000e+00, 4, +__LINE__, "-0e20", 0.0000000000e+00, 5, +__LINE__, "-e", 0.0000000000e+00, 0, +__LINE__, "-e+", 0.0000000000e+00, 0, +__LINE__, "-e+1", 0.0000000000e+00, 0, +__LINE__, "-e+20", 0.0000000000e+00, 0, +__LINE__, "-e-", 0.0000000000e+00, 0, +__LINE__, "-e-1", 0.0000000000e+00, 0, +__LINE__, "-e-20", 0.0000000000e+00, 0, +__LINE__, "-e1", 0.0000000000e+00, 0, +__LINE__, "-e20", 0.0000000000e+00, 0, +__LINE__, ".", 0.0000000000e+00,0, +__LINE__, ".+", 0.0000000000e+00,0, +__LINE__, ".+1", 0.0000000000e+00,0, +__LINE__, ".+20", 0.0000000000e+00,0, +__LINE__, ".-", 0.0000000000e+00,0, +__LINE__, ".-1", 0.0000000000e+00,0, +__LINE__, ".-20", 0.0000000000e+00,0, +__LINE__, ".e", 0.0000000000e+00,0, +__LINE__, ".e+", 0.0000000000e+00,0, +__LINE__, ".e+1", 0.0000000000e+00,0, +__LINE__, ".e+20", 0.0000000000e+00,0, +__LINE__, ".e-", 0.0000000000e+00,0, +__LINE__, ".e-1", 0.0000000000e+00,0, +__LINE__, ".e-20", 0.0000000000e+00,0, +__LINE__, ".e1", 0.0000000000e+00,0, +__LINE__, ".e20", 0.0000000000e+00,0, +__LINE__, "0", 0.0000000000e+00, 1, +__LINE__, "0+", 0.0000000000e+00, 1, +__LINE__, "0+1", 0.0000000000e+00, 1, +__LINE__, "0+20", 0.0000000000e+00, 1, +__LINE__, "0-", 0.0000000000e+00, 1, +__LINE__, "0-1", 0.0000000000e+00, 1, +__LINE__, "0-20", 0.0000000000e+00, 1, +__LINE__, "0.", 0.0000000000e+00, 2, +__LINE__, "0.+", 0.0000000000e+00, 2, +__LINE__, "0.+1", 0.0000000000e+00, 2, +__LINE__, "0.+20", 0.0000000000e+00, 2, +__LINE__, "0.-", 0.0000000000e+00, 2, +__LINE__, "0.-1", 0.0000000000e+00, 2, +__LINE__, "0.-20", 0.0000000000e+00, 2, +__LINE__, "0.e", 0.0000000000e+00, 2, +__LINE__, "0.e+", 0.0000000000e+00, 2, +__LINE__, "0.e+1", 0.0000000000e+00, 5, +__LINE__, "0.e+20", 0.0000000000e+00, 6, +__LINE__, "0.e-", 0.0000000000e+00, 2, +__LINE__, "0.e-1", 0.0000000000e+00, 5, +__LINE__, "0.e-20", 0.0000000000e+00, 6, +__LINE__, "0.e1", 0.0000000000e+00, 4, +__LINE__, "0.e20", 0.0000000000e+00, 5, +__LINE__, "0e", 0.0000000000e+00, 1, +__LINE__, "0e+", 0.0000000000e+00, 1, +__LINE__, "0e+1", 0.0000000000e+00, 4, +__LINE__, "0e+20", 0.0000000000e+00, 5, +__LINE__, "0e-", 0.0000000000e+00, 1, +__LINE__, "0e-1", 0.0000000000e+00, 4, +__LINE__, "0e-20", 0.0000000000e+00, 5, +__LINE__, "0e1", 0.0000000000e+00, 3, +__LINE__, "0e20", 0.0000000000e+00, 4, +__LINE__, "e", 0.0000000000e+00, 0, +__LINE__, "e+", 0.0000000000e+00, 0, +__LINE__, "e+1", 0.0000000000e+00, 0, +__LINE__, "e+20", 0.0000000000e+00, 0, +__LINE__, "e-", 0.0000000000e+00, 0, +__LINE__, "e-1", 0.0000000000e+00, 0, +__LINE__, "e-20", 0.0000000000e+00, 0, +__LINE__, "e1", 0.0000000000e+00, 0, +__LINE__, "e20", 0.0000000000e+00, 0, +__LINE__, " +01", 1.0000000000e+00, 4, +__LINE__, " +1", 1.0000000000e+00, 3, +__LINE__, " 01", 1.0000000000e+00, 3, +__LINE__, " 1", 1.0000000000e+00, 2, +__LINE__, "+01", 1.0000000000e+00, 3, +__LINE__, "+1", 1.0000000000e+00, 2, +__LINE__, "01", 1.0000000000e+00, 2, +__LINE__, "1", 1.0000000000e+00, 1, +__LINE__, " +.1", 1.0000000000e-01, 4, +__LINE__, " +0.1", 1.0000000000e-01, 5, +__LINE__, " .1", 1.0000000000e-01, 3, +__LINE__, " 0.1", 1.0000000000e-01, 4, +__LINE__, "+.1", 1.0000000000e-01, 3, +__LINE__, "+0.1", 1.0000000000e-01, 4, +__LINE__, ".1", 1.0000000000e-01, 2, +__LINE__, "0.1", 1.0000000000e-01, 3, +__LINE__, " +01241e-1", 1.2410000000e+02, 10, +__LINE__, " +1241e-1", 1.2410000000e+02, 9, +__LINE__, " 01241e-1", 1.2410000000e+02, 9, +__LINE__, " 1241e-1", 1.2410000000e+02, 8, +__LINE__, "+01241e-1", 1.2410000000e+02, 9, +__LINE__, "+1241e-1", 1.2410000000e+02, 8, +__LINE__, "01241e-1", 1.2410000000e+02, 8, +__LINE__, "1241e-1", 1.2410000000e+02, 7, +__LINE__, " +.1241e-1", 1.2410000000e-02, 10, +__LINE__, " +0.1241e-1", 1.2410000000e-02, 11, +__LINE__, " .1241e-1", 1.2410000000e-02, 9, +__LINE__, " 0.1241e-1", 1.2410000000e-02, 10, +__LINE__, "+.1241e-1", 1.2410000000e-02, 9, +__LINE__, "+0.1241e-1", 1.2410000000e-02, 10, +__LINE__, ".1241e-1", 1.2410000000e-02, 8, +__LINE__, "0.1241e-1", 1.2410000000e-02, 9, +__LINE__, " +01241e-20", 1.2410000000e-17, 11, +__LINE__, " +1241e-20", 1.2410000000e-17, 10, +__LINE__, " 01241e-20", 1.2410000000e-17, 10, +__LINE__, " 1241e-20", 1.2410000000e-17, 9, +__LINE__, "+01241e-20", 1.2410000000e-17, 10, +__LINE__, "+1241e-20", 1.2410000000e-17, 9, +__LINE__, "01241e-20", 1.2410000000e-17, 9, +__LINE__, "1241e-20", 1.2410000000e-17, 8, +__LINE__, " +.1241e+1", 1.2410000000e+00, 10, +__LINE__, " +.1241e1", 1.2410000000e+00, 9, +__LINE__, " +0.1241e+1", 1.2410000000e+00, 11, +__LINE__, " +0.1241e1", 1.2410000000e+00, 10, +__LINE__, " .1241e+1", 1.2410000000e+00, 9, +__LINE__, " .1241e1", 1.2410000000e+00, 8, +__LINE__, " 0.1241e+1", 1.2410000000e+00, 10, +__LINE__, " 0.1241e1", 1.2410000000e+00, 9, +__LINE__, "+.1241e+1", 1.2410000000e+00, 9, +__LINE__, "+.1241e1", 1.2410000000e+00, 8, +__LINE__, "+0.1241e+1", 1.2410000000e+00, 10, +__LINE__, "+0.1241e1", 1.2410000000e+00, 9, +__LINE__, ".1241e+1", 1.2410000000e+00, 8, +__LINE__, ".1241e1", 1.2410000000e+00, 7, +__LINE__, "0.1241e+1", 1.2410000000e+00, 9, +__LINE__, "0.1241e1", 1.2410000000e+00, 8, +__LINE__, " +01241", 1.2410000000e+03, 7, +__LINE__, " +01241+", 1.2410000000e+03, 7, +__LINE__, " +01241+1", 1.2410000000e+03, 7, +__LINE__, " +01241+20", 1.2410000000e+03, 7, +__LINE__, " +01241-", 1.2410000000e+03, 7, +__LINE__, " +01241-1", 1.2410000000e+03, 7, +__LINE__, " +01241-20", 1.2410000000e+03, 7, +__LINE__, " +01241e", 1.2410000000e+03, 7, +__LINE__, " +01241e+", 1.2410000000e+03, 7, +__LINE__, " +01241e-", 1.2410000000e+03, 7, +__LINE__, " +1241", 1.2410000000e+03, 6, +__LINE__, " +1241+", 1.2410000000e+03, 6, +__LINE__, " +1241+1", 1.2410000000e+03, 6, +__LINE__, " +1241+20", 1.2410000000e+03, 6, +__LINE__, " +1241-", 1.2410000000e+03, 6, +__LINE__, " +1241-1", 1.2410000000e+03, 6, +__LINE__, " +1241-20", 1.2410000000e+03, 6, +__LINE__, " +1241e", 1.2410000000e+03, 6, +__LINE__, " +1241e+", 1.2410000000e+03, 6, +__LINE__, " +1241e-", 1.2410000000e+03, 6, +__LINE__, " 01241", 1.2410000000e+03, 6, +__LINE__, " 01241+", 1.2410000000e+03, 6, +__LINE__, " 01241+1", 1.2410000000e+03, 6, +__LINE__, " 01241+20", 1.2410000000e+03, 6, +__LINE__, " 01241-", 1.2410000000e+03, 6, +__LINE__, " 01241-1", 1.2410000000e+03, 6, +__LINE__, " 01241-20", 1.2410000000e+03, 6, +__LINE__, " 01241e", 1.2410000000e+03, 6, +__LINE__, " 01241e+", 1.2410000000e+03, 6, +__LINE__, " 01241e-", 1.2410000000e+03, 6, +__LINE__, " 1241", 1.2410000000e+03, 5, +__LINE__, " 1241+", 1.2410000000e+03, 5, +__LINE__, " 1241+1", 1.2410000000e+03, 5, +__LINE__, " 1241+20", 1.2410000000e+03, 5, +__LINE__, " 1241-", 1.2410000000e+03, 5, +__LINE__, " 1241-1", 1.2410000000e+03, 5, +__LINE__, " 1241-20", 1.2410000000e+03, 5, +__LINE__, " 1241e", 1.2410000000e+03, 5, +__LINE__, " 1241e+", 1.2410000000e+03, 5, +__LINE__, " 1241e-", 1.2410000000e+03, 5, +__LINE__, "+01241", 1.2410000000e+03, 6, +__LINE__, "+01241+", 1.2410000000e+03, 6, +__LINE__, "+01241+1", 1.2410000000e+03, 6, +__LINE__, "+01241+20", 1.2410000000e+03, 6, +__LINE__, "+01241-", 1.2410000000e+03, 6, +__LINE__, "+01241-1", 1.2410000000e+03, 6, +__LINE__, "+01241-20", 1.2410000000e+03, 6, +__LINE__, "+01241e", 1.2410000000e+03, 6, +__LINE__, "+01241e+", 1.2410000000e+03, 6, +__LINE__, "+01241e-", 1.2410000000e+03, 6, +__LINE__, "+1241", 1.2410000000e+03, 5, +__LINE__, "+1241+", 1.2410000000e+03, 5, +__LINE__, "+1241+1", 1.2410000000e+03, 5, +__LINE__, "+1241+20", 1.2410000000e+03, 5, +__LINE__, "+1241-", 1.2410000000e+03, 5, +__LINE__, "+1241-1", 1.2410000000e+03, 5, +__LINE__, "+1241-20", 1.2410000000e+03, 5, +__LINE__, "+1241e", 1.2410000000e+03, 5, +__LINE__, "+1241e+", 1.2410000000e+03, 5, +__LINE__, "+1241e-", 1.2410000000e+03, 5, +__LINE__, "01241", 1.2410000000e+03, 5, +__LINE__, "01241+", 1.2410000000e+03, 5, +__LINE__, "01241+1", 1.2410000000e+03, 5, +__LINE__, "01241+20", 1.2410000000e+03, 5, +__LINE__, "01241-", 1.2410000000e+03, 5, +__LINE__, "01241-1", 1.2410000000e+03, 5, +__LINE__, "01241-20", 1.2410000000e+03, 5, +__LINE__, "01241e", 1.2410000000e+03, 5, +__LINE__, "01241e+", 1.2410000000e+03, 5, +__LINE__, "01241e-", 1.2410000000e+03, 5, +__LINE__, "1241", 1.2410000000e+03, 4, +__LINE__, "1241+", 1.2410000000e+03, 4, +__LINE__, "1241+1", 1.2410000000e+03, 4, +__LINE__, "1241+20", 1.2410000000e+03, 4, +__LINE__, "1241-", 1.2410000000e+03, 4, +__LINE__, "1241-1", 1.2410000000e+03, 4, +__LINE__, "1241-20", 1.2410000000e+03, 4, +__LINE__, "1241e", 1.2410000000e+03, 4, +__LINE__, "1241e+", 1.2410000000e+03, 4, +__LINE__, "1241e-", 1.2410000000e+03, 4, +__LINE__, " +01241e+1", 1.2410000000e+04, 10, +__LINE__, " +01241e1", 1.2410000000e+04, 9, +__LINE__, " +1241e+1", 1.2410000000e+04, 9, +__LINE__, " +1241e1", 1.2410000000e+04, 8, +__LINE__, " 01241e+1", 1.2410000000e+04, 9, +__LINE__, " 01241e1", 1.2410000000e+04, 8, +__LINE__, " 1241e+1", 1.2410000000e+04, 8, +__LINE__, " 1241e1", 1.2410000000e+04, 7, +__LINE__, "+01241e+1", 1.2410000000e+04, 9, +__LINE__, "+01241e1", 1.2410000000e+04, 8, +__LINE__, "+1241e+1", 1.2410000000e+04, 8, +__LINE__, "+1241e1", 1.2410000000e+04, 7, +__LINE__, "01241e+1", 1.2410000000e+04, 8, +__LINE__, "01241e1", 1.2410000000e+04, 7, +__LINE__, "1241e+1", 1.2410000000e+04, 7, +__LINE__, "1241e1", 1.2410000000e+04, 6, +__LINE__, " +.1241e+20", 1.2410000000e+19, 11, +__LINE__, " +.1241e20", 1.2410000000e+19, 10, +__LINE__, " +0.1241e+20", 1.2410000000e+19, 12, +__LINE__, " +0.1241e20", 1.2410000000e+19, 11, +__LINE__, " .1241e+20", 1.2410000000e+19, 10, +__LINE__, " .1241e20", 1.2410000000e+19, 9, +__LINE__, " 0.1241e+20", 1.2410000000e+19, 11, +__LINE__, " 0.1241e20", 1.2410000000e+19, 10, +__LINE__, "+.1241e+20", 1.2410000000e+19, 10, +__LINE__, "+.1241e20", 1.2410000000e+19, 9, +__LINE__, "+0.1241e+20", 1.2410000000e+19, 11, +__LINE__, "+0.1241e20", 1.2410000000e+19, 10, +__LINE__, ".1241e+20", 1.2410000000e+19, 9, +__LINE__, ".1241e20", 1.2410000000e+19, 8, +__LINE__, "0.1241e+20", 1.2410000000e+19, 10, +__LINE__, "0.1241e20", 1.2410000000e+19, 9, +__LINE__, " +01241e+20", 1.2410000000e+23, 11, +__LINE__, " +01241e20", 1.2410000000e+23, 10, +__LINE__, " +1241e+20", 1.2410000000e+23, 10, +__LINE__, " +1241e20", 1.2410000000e+23, 9, +__LINE__, " 01241e+20", 1.2410000000e+23, 10, +__LINE__, " 01241e20", 1.2410000000e+23, 9, +__LINE__, " 1241e+20", 1.2410000000e+23, 9, +__LINE__, " 1241e20", 1.2410000000e+23, 8, +__LINE__, "+01241e+20", 1.2410000000e+23, 10, +__LINE__, "+01241e20", 1.2410000000e+23, 9, +__LINE__, "+1241e+20", 1.2410000000e+23, 9, +__LINE__, "+1241e20", 1.2410000000e+23, 8, +__LINE__, "01241e+20", 1.2410000000e+23, 9, +__LINE__, "01241e20", 1.2410000000e+23, 8, +__LINE__, "1241e+20", 1.2410000000e+23, 8, +__LINE__, "1241e20", 1.2410000000e+23, 7, +__LINE__, " +.1241", 1.2410000000e-01, 7, +__LINE__, " +.1241+", 1.2410000000e-01, 7, +__LINE__, " +.1241+1", 1.2410000000e-01, 7, +__LINE__, " +.1241+20", 1.2410000000e-01, 7, +__LINE__, " +.1241-", 1.2410000000e-01, 7, +__LINE__, " +.1241-1", 1.2410000000e-01, 7, +__LINE__, " +.1241-20", 1.2410000000e-01, 7, +__LINE__, " +.1241e", 1.2410000000e-01, 7, +__LINE__, " +.1241e+", 1.2410000000e-01, 7, +__LINE__, " +.1241e-", 1.2410000000e-01, 7, +__LINE__, " +0.1241", 1.2410000000e-01, 8, +__LINE__, " +0.1241+", 1.2410000000e-01, 8, +__LINE__, " +0.1241+1", 1.2410000000e-01, 8, +__LINE__, " +0.1241+20", 1.2410000000e-01, 8, +__LINE__, " +0.1241-", 1.2410000000e-01, 8, +__LINE__, " +0.1241-1", 1.2410000000e-01, 8, +__LINE__, " +0.1241-20", 1.2410000000e-01, 8, +__LINE__, " +0.1241e", 1.2410000000e-01, 8, +__LINE__, " +0.1241e+", 1.2410000000e-01, 8, +__LINE__, " +0.1241e-", 1.2410000000e-01, 8, +__LINE__, " .1241", 1.2410000000e-01, 6, +__LINE__, " .1241+", 1.2410000000e-01, 6, +__LINE__, " .1241+1", 1.2410000000e-01, 6, +__LINE__, " .1241+20", 1.2410000000e-01, 6, +__LINE__, " .1241-", 1.2410000000e-01, 6, +__LINE__, " .1241-1", 1.2410000000e-01, 6, +__LINE__, " .1241-20", 1.2410000000e-01, 6, +__LINE__, " .1241e", 1.2410000000e-01, 6, +__LINE__, " .1241e+", 1.2410000000e-01, 6, +__LINE__, " .1241e-", 1.2410000000e-01, 6, +__LINE__, " 0.1241", 1.2410000000e-01, 7, +__LINE__, " 0.1241+", 1.2410000000e-01, 7, +__LINE__, " 0.1241+1", 1.2410000000e-01, 7, +__LINE__, " 0.1241+20", 1.2410000000e-01, 7, +__LINE__, " 0.1241-", 1.2410000000e-01, 7, +__LINE__, " 0.1241-1", 1.2410000000e-01, 7, +__LINE__, " 0.1241-20", 1.2410000000e-01, 7, +__LINE__, " 0.1241e", 1.2410000000e-01, 7, +__LINE__, " 0.1241e+", 1.2410000000e-01, 7, +__LINE__, " 0.1241e-", 1.2410000000e-01, 7, +__LINE__, "+.1241", 1.2410000000e-01, 6, +__LINE__, "+.1241+", 1.2410000000e-01, 6, +__LINE__, "+.1241+1", 1.2410000000e-01, 6, +__LINE__, "+.1241+20", 1.2410000000e-01, 6, +__LINE__, "+.1241-", 1.2410000000e-01, 6, +__LINE__, "+.1241-1", 1.2410000000e-01, 6, +__LINE__, "+.1241-20", 1.2410000000e-01, 6, +__LINE__, "+.1241e", 1.2410000000e-01, 6, +__LINE__, "+.1241e+", 1.2410000000e-01, 6, +__LINE__, "+.1241e-", 1.2410000000e-01, 6, +__LINE__, "+0.1241", 1.2410000000e-01, 7, +__LINE__, "+0.1241+", 1.2410000000e-01, 7, +__LINE__, "+0.1241+1", 1.2410000000e-01, 7, +__LINE__, "+0.1241+20", 1.2410000000e-01, 7, +__LINE__, "+0.1241-", 1.2410000000e-01, 7, +__LINE__, "+0.1241-1", 1.2410000000e-01, 7, +__LINE__, "+0.1241-20", 1.2410000000e-01, 7, +__LINE__, "+0.1241e", 1.2410000000e-01, 7, +__LINE__, "+0.1241e+", 1.2410000000e-01, 7, +__LINE__, "+0.1241e-", 1.2410000000e-01, 7, +__LINE__, ".1241", 1.2410000000e-01, 5, +__LINE__, ".1241+", 1.2410000000e-01, 5, +__LINE__, ".1241+1", 1.2410000000e-01, 5, +__LINE__, ".1241+20", 1.2410000000e-01, 5, +__LINE__, ".1241-", 1.2410000000e-01, 5, +__LINE__, ".1241-1", 1.2410000000e-01, 5, +__LINE__, ".1241-20", 1.2410000000e-01, 5, +__LINE__, ".1241e", 1.2410000000e-01, 5, +__LINE__, ".1241e+", 1.2410000000e-01, 5, +__LINE__, ".1241e-", 1.2410000000e-01, 5, +__LINE__, "0.1241", 1.2410000000e-01, 6, +__LINE__, "0.1241+", 1.2410000000e-01, 6, +__LINE__, "0.1241+1", 1.2410000000e-01, 6, +__LINE__, "0.1241+20", 1.2410000000e-01, 6, +__LINE__, "0.1241-", 1.2410000000e-01, 6, +__LINE__, "0.1241-1", 1.2410000000e-01, 6, +__LINE__, "0.1241-20", 1.2410000000e-01, 6, +__LINE__, "0.1241e", 1.2410000000e-01, 6, +__LINE__, "0.1241e+", 1.2410000000e-01, 6, +__LINE__, "0.1241e-", 1.2410000000e-01, 6, +__LINE__, " +.1241e-20", 1.2410000000e-21, 11, +__LINE__, " +0.1241e-20", 1.2410000000e-21, 12, +__LINE__, " .1241e-20", 1.2410000000e-21, 10, +__LINE__, " 0.1241e-20", 1.2410000000e-21, 11, +__LINE__, "+.1241e-20", 1.2410000000e-21, 10, +__LINE__, "+0.1241e-20", 1.2410000000e-21, 11, +__LINE__, ".1241e-20", 1.2410000000e-21, 9, +__LINE__, "0.1241e-20", 1.2410000000e-21, 10, +__LINE__, " +.12411", 1.2411000000e-01, 8, +__LINE__, " +0.12411", 1.2411000000e-01, 9, +__LINE__, " .12411", 1.2411000000e-01, 7, +__LINE__, " 0.12411", 1.2411000000e-01, 8, +__LINE__, "+.12411", 1.2411000000e-01, 7, +__LINE__, "+0.12411", 1.2411000000e-01, 8, +__LINE__, ".12411", 1.2411000000e-01, 6, +__LINE__, "0.12411", 1.2411000000e-01, 7, +__LINE__, " +012411", 1.2411000000e+04, 8, +__LINE__, " +12411", 1.2411000000e+04, 7, +__LINE__, " 012411", 1.2411000000e+04, 7, +__LINE__, " 12411", 1.2411000000e+04, 6, +__LINE__, "+012411", 1.2411000000e+04, 7, +__LINE__, "+12411", 1.2411000000e+04, 6, +__LINE__, "012411", 1.2411000000e+04, 6, +__LINE__, "12411", 1.2411000000e+04, 5, +__LINE__, " +.124120", 1.2412000000e-01, 9, +__LINE__, " +0.124120", 1.2412000000e-01, 10, +__LINE__, " .124120", 1.2412000000e-01, 8, +__LINE__, " 0.124120", 1.2412000000e-01, 9, +__LINE__, "+.124120", 1.2412000000e-01, 8, +__LINE__, "+0.124120", 1.2412000000e-01, 9, +__LINE__, ".124120", 1.2412000000e-01, 7, +__LINE__, "0.124120", 1.2412000000e-01, 8, +__LINE__, " +0124120", 1.2412000000e+05, 9, +__LINE__, " +124120", 1.2412000000e+05, 8, +__LINE__, " 0124120", 1.2412000000e+05, 8, +__LINE__, " 124120", 1.2412000000e+05, 7, +__LINE__, "+0124120", 1.2412000000e+05, 8, +__LINE__, "+124120", 1.2412000000e+05, 7, +__LINE__, "0124120", 1.2412000000e+05, 7, +__LINE__, "124120", 1.2412000000e+05, 6, +__LINE__, " +020", 2.0000000000e+01, 5, +__LINE__, " +20", 2.0000000000e+01, 4, +__LINE__, " 020", 2.0000000000e+01, 4, +__LINE__, " 20", 2.0000000000e+01, 3, +__LINE__, "+020", 2.0000000000e+01, 4, +__LINE__, "+20", 2.0000000000e+01, 3, +__LINE__, "020", 2.0000000000e+01, 3, +__LINE__, "20", 2.0000000000e+01, 2, +__LINE__, " +.20", 2.0000000000e-01, 5, +__LINE__, " +0.20", 2.0000000000e-01, 6, +__LINE__, " .20", 2.0000000000e-01, 4, +__LINE__, " 0.20", 2.0000000000e-01, 5, +__LINE__, "+.20", 2.0000000000e-01, 4, +__LINE__, "+0.20", 2.0000000000e-01, 5, +__LINE__, ".20", 2.0000000000e-01, 3, +__LINE__, "0.20", 2.0000000000e-01, 4, +__LINE__, " +211", 2.1100000000e+02, 5, +__LINE__, " +211+", 2.1100000000e+02, 5, +__LINE__, " +211+1", 2.1100000000e+02, 5, +__LINE__, " +211+20", 2.1100000000e+02, 5, +__LINE__, " +211-", 2.1100000000e+02, 5, +__LINE__, " +211-1", 2.1100000000e+02, 5, +__LINE__, " +211-20", 2.1100000000e+02, 5, +__LINE__, " +211.", 2.1100000000e+02, 6, +__LINE__, " +211.+", 2.1100000000e+02, 6, +__LINE__, " +211.+1", 2.1100000000e+02, 6, +__LINE__, " +211.+20", 2.1100000000e+02, 6, +__LINE__, " +211.-", 2.1100000000e+02, 6, +__LINE__, " +211.-1", 2.1100000000e+02, 6, +__LINE__, " +211.-20", 2.1100000000e+02, 6, +__LINE__, " +211.e", 2.1100000000e+02, 6, +__LINE__, " +211.e+", 2.1100000000e+02, 6, +__LINE__, " +211.e-", 2.1100000000e+02, 6, +__LINE__, " +211e", 2.1100000000e+02, 5, +__LINE__, " +211e+", 2.1100000000e+02, 5, +__LINE__, " +211e-", 2.1100000000e+02, 5, +__LINE__, " 211", 2.1100000000e+02, 4, +__LINE__, " 211+", 2.1100000000e+02, 4, +__LINE__, " 211+1", 2.1100000000e+02, 4, +__LINE__, " 211+20", 2.1100000000e+02, 4, +__LINE__, " 211-", 2.1100000000e+02, 4, +__LINE__, " 211-1", 2.1100000000e+02, 4, +__LINE__, " 211-20", 2.1100000000e+02, 4, +__LINE__, " 211.", 2.1100000000e+02, 5, +__LINE__, " 211.+", 2.1100000000e+02, 5, +__LINE__, " 211.+1", 2.1100000000e+02, 5, +__LINE__, " 211.+20", 2.1100000000e+02, 5, +__LINE__, " 211.-", 2.1100000000e+02, 5, +__LINE__, " 211.-1", 2.1100000000e+02, 5, +__LINE__, " 211.-20", 2.1100000000e+02, 5, +__LINE__, " 211.e", 2.1100000000e+02, 5, +__LINE__, " 211.e+", 2.1100000000e+02, 5, +__LINE__, " 211.e-", 2.1100000000e+02, 5, +__LINE__, " 211e", 2.1100000000e+02, 4, +__LINE__, " 211e+", 2.1100000000e+02, 4, +__LINE__, " 211e-", 2.1100000000e+02, 4, +__LINE__, "+211", 2.1100000000e+02, 4, +__LINE__, "+211+", 2.1100000000e+02, 4, +__LINE__, "+211+1", 2.1100000000e+02, 4, +__LINE__, "+211+20", 2.1100000000e+02, 4, +__LINE__, "+211-", 2.1100000000e+02, 4, +__LINE__, "+211-1", 2.1100000000e+02, 4, +__LINE__, "+211-20", 2.1100000000e+02, 4, +__LINE__, "+211.", 2.1100000000e+02, 5, +__LINE__, "+211.+", 2.1100000000e+02, 5, +__LINE__, "+211.+1", 2.1100000000e+02, 5, +__LINE__, "+211.+20", 2.1100000000e+02, 5, +__LINE__, "+211.-", 2.1100000000e+02, 5, +__LINE__, "+211.-1", 2.1100000000e+02, 5, +__LINE__, "+211.-20", 2.1100000000e+02, 5, +__LINE__, "+211.e", 2.1100000000e+02, 5, +__LINE__, "+211.e+", 2.1100000000e+02, 5, +__LINE__, "+211.e-", 2.1100000000e+02, 5, +__LINE__, "+211e", 2.1100000000e+02, 4, +__LINE__, "+211e+", 2.1100000000e+02, 4, +__LINE__, "+211e-", 2.1100000000e+02, 4, +__LINE__, "211", 2.1100000000e+02, 3, +__LINE__, "211+", 2.1100000000e+02, 3, +__LINE__, "211+1", 2.1100000000e+02, 3, +__LINE__, "211+20", 2.1100000000e+02, 3, +__LINE__, "211-", 2.1100000000e+02, 3, +__LINE__, "211-1", 2.1100000000e+02, 3, +__LINE__, "211-20", 2.1100000000e+02, 3, +__LINE__, "211.", 2.1100000000e+02, 4, +__LINE__, "211.+", 2.1100000000e+02, 4, +__LINE__, "211.+1", 2.1100000000e+02, 4, +__LINE__, "211.+20", 2.1100000000e+02, 4, +__LINE__, "211.-", 2.1100000000e+02, 4, +__LINE__, "211.-1", 2.1100000000e+02, 4, +__LINE__, "211.-20", 2.1100000000e+02, 4, +__LINE__, "211.e", 2.1100000000e+02, 4, +__LINE__, "211.e+", 2.1100000000e+02, 4, +__LINE__, "211.e-", 2.1100000000e+02, 4, +__LINE__, "211e", 2.1100000000e+02, 3, +__LINE__, "211e+", 2.1100000000e+02, 3, +__LINE__, "211e-", 2.1100000000e+02, 3, +__LINE__, " +211.e+20", 2.1100000000e+22, 10, +__LINE__, " +211.e20", 2.1100000000e+22, 9, +__LINE__, " +211e+20", 2.1100000000e+22, 9, +__LINE__, " +211e20", 2.1100000000e+22, 8, +__LINE__, " 211.e+20", 2.1100000000e+22, 9, +__LINE__, " 211.e20", 2.1100000000e+22, 8, +__LINE__, " 211e+20", 2.1100000000e+22, 8, +__LINE__, " 211e20", 2.1100000000e+22, 7, +__LINE__, "+211.e+20", 2.1100000000e+22, 9, +__LINE__, "+211.e20", 2.1100000000e+22, 8, +__LINE__, "+211e+20", 2.1100000000e+22, 8, +__LINE__, "+211e20", 2.1100000000e+22, 7, +__LINE__, "211.e+20", 2.1100000000e+22, 8, +__LINE__, "211.e20", 2.1100000000e+22, 7, +__LINE__, "211e+20", 2.1100000000e+22, 7, +__LINE__, "211e20", 2.1100000000e+22, 6, +__LINE__, " +211.e-1", 2.1100000000e+01, 9, +__LINE__, " +211e-1", 2.1100000000e+01, 8, +__LINE__, " 211.e-1", 2.1100000000e+01, 8, +__LINE__, " 211e-1", 2.1100000000e+01, 7, +__LINE__, "+211.e-1", 2.1100000000e+01, 8, +__LINE__, "+211e-1", 2.1100000000e+01, 7, +__LINE__, "211.e-1", 2.1100000000e+01, 7, +__LINE__, "211e-1", 2.1100000000e+01, 6, +__LINE__, " +211.e+1", 2.1100000000e+03, 9, +__LINE__, " +211.e1", 2.1100000000e+03, 8, +__LINE__, " +211e+1", 2.1100000000e+03, 8, +__LINE__, " +211e1", 2.1100000000e+03, 7, +__LINE__, " 211.e+1", 2.1100000000e+03, 8, +__LINE__, " 211.e1", 2.1100000000e+03, 7, +__LINE__, " 211e+1", 2.1100000000e+03, 7, +__LINE__, " 211e1", 2.1100000000e+03, 6, +__LINE__, "+211.e+1", 2.1100000000e+03, 8, +__LINE__, "+211.e1", 2.1100000000e+03, 7, +__LINE__, "+211e+1", 2.1100000000e+03, 7, +__LINE__, "+211e1", 2.1100000000e+03, 6, +__LINE__, "211.e+1", 2.1100000000e+03, 7, +__LINE__, "211.e1", 2.1100000000e+03, 6, +__LINE__, "211e+1", 2.1100000000e+03, 6, +__LINE__, "211e1", 2.1100000000e+03, 5, +__LINE__, " +211.e-20", 2.1100000000e-18, 10, +__LINE__, " +211e-20", 2.1100000000e-18, 9, +__LINE__, " 211.e-20", 2.1100000000e-18, 9, +__LINE__, " 211e-20", 2.1100000000e-18, 8, +__LINE__, "+211.e-20", 2.1100000000e-18, 9, +__LINE__, "+211e-20", 2.1100000000e-18, 8, +__LINE__, "211.e-20", 2.1100000000e-18, 8, +__LINE__, "211e-20", 2.1100000000e-18, 7, +__LINE__, " +211.1", 2.1110000000e+02, 7, +__LINE__, " 211.1", 2.1110000000e+02, 6, +__LINE__, "+211.1", 2.1110000000e+02, 6, +__LINE__, "211.1", 2.1110000000e+02, 5, +__LINE__, " +2111", 2.1110000000e+03, 6, +__LINE__, " 2111", 2.1110000000e+03, 5, +__LINE__, "+2111", 2.1110000000e+03, 5, +__LINE__, "2111", 2.1110000000e+03, 4, +__LINE__, " +2111241e-20", 2.1112410000e-14, 13, +__LINE__, " 2111241e-20", 2.1112410000e-14, 12, +__LINE__, "+2111241e-20", 2.1112410000e-14, 12, +__LINE__, "2111241e-20", 2.1112410000e-14, 11, +__LINE__, " +211.1241e-1", 2.1112410000e+01, 13, +__LINE__, " 211.1241e-1", 2.1112410000e+01, 12, +__LINE__, "+211.1241e-1", 2.1112410000e+01, 12, +__LINE__, "211.1241e-1", 2.1112410000e+01, 11, +__LINE__, " +211.1241", 2.1112410000e+02, 10, +__LINE__, " +211.1241+", 2.1112410000e+02, 10, +__LINE__, " +211.1241+1", 2.1112410000e+02, 10, +__LINE__, " +211.1241+20", 2.1112410000e+02, 10, +__LINE__, " +211.1241-", 2.1112410000e+02, 10, +__LINE__, " +211.1241-1", 2.1112410000e+02, 10, +__LINE__, " +211.1241-20", 2.1112410000e+02, 10, +__LINE__, " +211.1241e", 2.1112410000e+02, 10, +__LINE__, " +211.1241e+", 2.1112410000e+02, 10, +__LINE__, " +211.1241e-", 2.1112410000e+02, 10, +__LINE__, " 211.1241", 2.1112410000e+02, 9, +__LINE__, " 211.1241+", 2.1112410000e+02, 9, +__LINE__, " 211.1241+1", 2.1112410000e+02, 9, +__LINE__, " 211.1241+20", 2.1112410000e+02, 9, +__LINE__, " 211.1241-", 2.1112410000e+02, 9, +__LINE__, " 211.1241-1", 2.1112410000e+02, 9, +__LINE__, " 211.1241-20", 2.1112410000e+02, 9, +__LINE__, " 211.1241e", 2.1112410000e+02, 9, +__LINE__, " 211.1241e+", 2.1112410000e+02, 9, +__LINE__, " 211.1241e-", 2.1112410000e+02, 9, +__LINE__, "+211.1241", 2.1112410000e+02, 9, +__LINE__, "+211.1241+", 2.1112410000e+02, 9, +__LINE__, "+211.1241+1", 2.1112410000e+02, 9, +__LINE__, "+211.1241+20", 2.1112410000e+02, 9, +__LINE__, "+211.1241-", 2.1112410000e+02, 9, +__LINE__, "+211.1241-1", 2.1112410000e+02, 9, +__LINE__, "+211.1241-20", 2.1112410000e+02, 9, +__LINE__, "+211.1241e", 2.1112410000e+02, 9, +__LINE__, "+211.1241e+", 2.1112410000e+02, 9, +__LINE__, "+211.1241e-", 2.1112410000e+02, 9, +__LINE__, "211.1241", 2.1112410000e+02, 8, +__LINE__, "211.1241+", 2.1112410000e+02, 8, +__LINE__, "211.1241+1", 2.1112410000e+02, 8, +__LINE__, "211.1241+20", 2.1112410000e+02, 8, +__LINE__, "211.1241-", 2.1112410000e+02, 8, +__LINE__, "211.1241-1", 2.1112410000e+02, 8, +__LINE__, "211.1241-20", 2.1112410000e+02, 8, +__LINE__, "211.1241e", 2.1112410000e+02, 8, +__LINE__, "211.1241e+", 2.1112410000e+02, 8, +__LINE__, "211.1241e-", 2.1112410000e+02, 8, +__LINE__, " +211.1241e+1", 2.1112410000e+03, 13, +__LINE__, " +211.1241e1", 2.1112410000e+03, 12, +__LINE__, " 211.1241e+1", 2.1112410000e+03, 12, +__LINE__, " 211.1241e1", 2.1112410000e+03, 11, +__LINE__, "+211.1241e+1", 2.1112410000e+03, 12, +__LINE__, "+211.1241e1", 2.1112410000e+03, 11, +__LINE__, "211.1241e+1", 2.1112410000e+03, 11, +__LINE__, "211.1241e1", 2.1112410000e+03, 10, +__LINE__, " +2111241e-1", 2.1112410000e+05, 12, +__LINE__, " 2111241e-1", 2.1112410000e+05, 11, +__LINE__, "+2111241e-1", 2.1112410000e+05, 11, +__LINE__, "2111241e-1", 2.1112410000e+05, 10, +__LINE__, " +2111241", 2.1112410000e+06, 9, +__LINE__, " +2111241+", 2.1112410000e+06, 9, +__LINE__, " +2111241+1", 2.1112410000e+06, 9, +__LINE__, " +2111241+20", 2.1112410000e+06, 9, +__LINE__, " +2111241-", 2.1112410000e+06, 9, +__LINE__, " +2111241-1", 2.1112410000e+06, 9, +__LINE__, " +2111241-20", 2.1112410000e+06, 9, +__LINE__, " +2111241e", 2.1112410000e+06, 9, +__LINE__, " +2111241e+", 2.1112410000e+06, 9, +__LINE__, " +2111241e-", 2.1112410000e+06, 9, +__LINE__, " 2111241", 2.1112410000e+06, 8, +__LINE__, " 2111241+", 2.1112410000e+06, 8, +__LINE__, " 2111241+1", 2.1112410000e+06, 8, +__LINE__, " 2111241+20", 2.1112410000e+06, 8, +__LINE__, " 2111241-", 2.1112410000e+06, 8, +__LINE__, " 2111241-1", 2.1112410000e+06, 8, +__LINE__, " 2111241-20", 2.1112410000e+06, 8, +__LINE__, " 2111241e", 2.1112410000e+06, 8, +__LINE__, " 2111241e+", 2.1112410000e+06, 8, +__LINE__, " 2111241e-", 2.1112410000e+06, 8, +__LINE__, "+2111241", 2.1112410000e+06, 8, +__LINE__, "+2111241+", 2.1112410000e+06, 8, +__LINE__, "+2111241+1", 2.1112410000e+06, 8, +__LINE__, "+2111241+20", 2.1112410000e+06, 8, +__LINE__, "+2111241-", 2.1112410000e+06, 8, +__LINE__, "+2111241-1", 2.1112410000e+06, 8, +__LINE__, "+2111241-20", 2.1112410000e+06, 8, +__LINE__, "+2111241e", 2.1112410000e+06, 8, +__LINE__, "+2111241e+", 2.1112410000e+06, 8, +__LINE__, "+2111241e-", 2.1112410000e+06, 8, +__LINE__, "2111241", 2.1112410000e+06, 7, +__LINE__, "2111241+", 2.1112410000e+06, 7, +__LINE__, "2111241+1", 2.1112410000e+06, 7, +__LINE__, "2111241+20", 2.1112410000e+06, 7, +__LINE__, "2111241-", 2.1112410000e+06, 7, +__LINE__, "2111241-1", 2.1112410000e+06, 7, +__LINE__, "2111241-20", 2.1112410000e+06, 7, +__LINE__, "2111241e", 2.1112410000e+06, 7, +__LINE__, "2111241e+", 2.1112410000e+06, 7, +__LINE__, "2111241e-", 2.1112410000e+06, 7, +__LINE__, " +2111241e+1", 2.1112410000e+07, 12, +__LINE__, " +2111241e1", 2.1112410000e+07, 11, +__LINE__, " 2111241e+1", 2.1112410000e+07, 11, +__LINE__, " 2111241e1", 2.1112410000e+07, 10, +__LINE__, "+2111241e+1", 2.1112410000e+07, 11, +__LINE__, "+2111241e1", 2.1112410000e+07, 10, +__LINE__, "2111241e+1", 2.1112410000e+07, 10, +__LINE__, "2111241e1", 2.1112410000e+07, 9, +__LINE__, " +211.1241e+20", 2.1112410000e+22, 14, +__LINE__, " +211.1241e20", 2.1112410000e+22, 13, +__LINE__, " 211.1241e+20", 2.1112410000e+22, 13, +__LINE__, " 211.1241e20", 2.1112410000e+22, 12, +__LINE__, "+211.1241e+20", 2.1112410000e+22, 13, +__LINE__, "+211.1241e20", 2.1112410000e+22, 12, +__LINE__, "211.1241e+20", 2.1112410000e+22, 12, +__LINE__, "211.1241e20", 2.1112410000e+22, 11, +__LINE__, " +2111241e+20", 2.1112410000e+26, 13, +__LINE__, " +2111241e20", 2.1112410000e+26, 12, +__LINE__, " 2111241e+20", 2.1112410000e+26, 12, +__LINE__, " 2111241e20", 2.1112410000e+26, 11, +__LINE__, "+2111241e+20", 2.1112410000e+26, 12, +__LINE__, "+2111241e20", 2.1112410000e+26, 11, +__LINE__, "2111241e+20", 2.1112410000e+26, 11, +__LINE__, "2111241e20", 2.1112410000e+26, 10, +__LINE__, " +211.1241e-20", 2.1112410000e-18, 14, +__LINE__, " 211.1241e-20", 2.1112410000e-18, 13, +__LINE__, "+211.1241e-20", 2.1112410000e-18, 13, +__LINE__, "211.1241e-20", 2.1112410000e-18, 12, +__LINE__, " +211.12411", 2.1112411000e+02, 11, +__LINE__, " 211.12411", 2.1112411000e+02, 10, +__LINE__, "+211.12411", 2.1112411000e+02, 10, +__LINE__, "211.12411", 2.1112411000e+02, 9, +__LINE__, " +21112411", 2.1112411000e+07, 10, +__LINE__, " 21112411", 2.1112411000e+07, 9, +__LINE__, "+21112411", 2.1112411000e+07, 9, +__LINE__, "21112411", 2.1112411000e+07, 8, +__LINE__, " +211124120", 2.1112412000e+08, 11, +__LINE__, " 211124120", 2.1112412000e+08, 10, +__LINE__, "+211124120", 2.1112412000e+08, 10, +__LINE__, "211124120", 2.1112412000e+08, 9, +__LINE__, " +211.124120", 2.1112412000e+02, 12, +__LINE__, " 211.124120", 2.1112412000e+02, 11, +__LINE__, "+211.124120", 2.1112412000e+02, 11, +__LINE__, "211.124120", 2.1112412000e+02, 10, +__LINE__, " +211.20", 2.1120000000e+02, 8, +__LINE__, " 211.20", 2.1120000000e+02, 7, +__LINE__, "+211.20", 2.1120000000e+02, 7, +__LINE__, "211.20", 2.1120000000e+02, 6, +__LINE__, " +21120", 2.1120000000e+04, 7, +__LINE__, " 21120", 2.1120000000e+04, 6, +__LINE__, "+21120", 2.1120000000e+04, 6, +__LINE__, "21120", 2.1120000000e+04, 5, +__LINE__, " +211.8e-1", 2.1180000000e+01, 10, +__LINE__, " 211.8e-1", 2.1180000000e+01, 9, +__LINE__, "+211.8e-1", 2.1180000000e+01, 9, +__LINE__, "211.8e-1", 2.1180000000e+01, 8, +__LINE__, " +211.8e+1", 2.1180000000e+03, 10, +__LINE__, " +211.8e1", 2.1180000000e+03, 9, +__LINE__, " +2118", 2.1180000000e+03, 6, +__LINE__, " +2118+", 2.1180000000e+03, 6, +__LINE__, " +2118+1", 2.1180000000e+03, 6, +__LINE__, " +2118+20", 2.1180000000e+03, 6, +__LINE__, " +2118-", 2.1180000000e+03, 6, +__LINE__, " +2118-1", 2.1180000000e+03, 6, +__LINE__, " +2118-20", 2.1180000000e+03, 6, +__LINE__, " +2118e", 2.1180000000e+03, 6, +__LINE__, " +2118e+", 2.1180000000e+03, 6, +__LINE__, " +2118e-", 2.1180000000e+03, 6, +__LINE__, " 211.8e+1", 2.1180000000e+03, 9, +__LINE__, " 211.8e1", 2.1180000000e+03, 8, +__LINE__, " 2118", 2.1180000000e+03, 5, +__LINE__, " 2118+", 2.1180000000e+03, 5, +__LINE__, " 2118+1", 2.1180000000e+03, 5, +__LINE__, " 2118+20", 2.1180000000e+03, 5, +__LINE__, " 2118-", 2.1180000000e+03, 5, +__LINE__, " 2118-1", 2.1180000000e+03, 5, +__LINE__, " 2118-20", 2.1180000000e+03, 5, +__LINE__, " 2118e", 2.1180000000e+03, 5, +__LINE__, " 2118e+", 2.1180000000e+03, 5, +__LINE__, " 2118e-", 2.1180000000e+03, 5, +__LINE__, "+211.8e+1", 2.1180000000e+03, 9, +__LINE__, "+211.8e1", 2.1180000000e+03, 8, +__LINE__, "+2118", 2.1180000000e+03, 5, +__LINE__, "+2118+", 2.1180000000e+03, 5, +__LINE__, "+2118+1", 2.1180000000e+03, 5, +__LINE__, "+2118+20", 2.1180000000e+03, 5, +__LINE__, "+2118-", 2.1180000000e+03, 5, +__LINE__, "+2118-1", 2.1180000000e+03, 5, +__LINE__, "+2118-20", 2.1180000000e+03, 5, +__LINE__, "+2118e", 2.1180000000e+03, 5, +__LINE__, "+2118e+", 2.1180000000e+03, 5, +__LINE__, "+2118e-", 2.1180000000e+03, 5, +__LINE__, "211.8e+1", 2.1180000000e+03, 8, +__LINE__, "211.8e1", 2.1180000000e+03, 7, +__LINE__, "2118", 2.1180000000e+03, 4, +__LINE__, "2118+", 2.1180000000e+03, 4, +__LINE__, "2118+1", 2.1180000000e+03, 4, +__LINE__, "2118+20", 2.1180000000e+03, 4, +__LINE__, "2118-", 2.1180000000e+03, 4, +__LINE__, "2118-1", 2.1180000000e+03, 4, +__LINE__, "2118-20", 2.1180000000e+03, 4, +__LINE__, "2118e", 2.1180000000e+03, 4, +__LINE__, "2118e+", 2.1180000000e+03, 4, +__LINE__, "2118e-", 2.1180000000e+03, 4, +__LINE__, " +2118e+1", 2.1180000000e+04, 9, +__LINE__, " +2118e1", 2.1180000000e+04, 8, +__LINE__, " 2118e+1", 2.1180000000e+04, 8, +__LINE__, " 2118e1", 2.1180000000e+04, 7, +__LINE__, "+2118e+1", 2.1180000000e+04, 8, +__LINE__, "+2118e1", 2.1180000000e+04, 7, +__LINE__, "2118e+1", 2.1180000000e+04, 7, +__LINE__, "2118e1", 2.1180000000e+04, 6, +__LINE__, " +2118e+20", 2.1180000000e+23, 10, +__LINE__, " +2118e20", 2.1180000000e+23, 9, +__LINE__, " 2118e+20", 2.1180000000e+23, 9, +__LINE__, " 2118e20", 2.1180000000e+23, 8, +__LINE__, "+2118e+20", 2.1180000000e+23, 9, +__LINE__, "+2118e20", 2.1180000000e+23, 8, +__LINE__, "2118e+20", 2.1180000000e+23, 8, +__LINE__, "2118e20", 2.1180000000e+23, 7, +__LINE__, " +2118e-20", 2.1180000000e-17, 10, +__LINE__, " 2118e-20", 2.1180000000e-17, 9, +__LINE__, "+2118e-20", 2.1180000000e-17, 9, +__LINE__, "2118e-20", 2.1180000000e-17, 8, +__LINE__, " +211.8e-20", 2.1180000000e-18, 11, +__LINE__, " 211.8e-20", 2.1180000000e-18, 10, +__LINE__, "+211.8e-20", 2.1180000000e-18, 10, +__LINE__, "211.8e-20", 2.1180000000e-18, 9, +__LINE__, " +211.8", 2.1180000000e+02, 7, +__LINE__, " +211.8+", 2.1180000000e+02, 7, +__LINE__, " +211.8+1", 2.1180000000e+02, 7, +__LINE__, " +211.8+20", 2.1180000000e+02, 7, +__LINE__, " +211.8-", 2.1180000000e+02, 7, +__LINE__, " +211.8-1", 2.1180000000e+02, 7, +__LINE__, " +211.8-20", 2.1180000000e+02, 7, +__LINE__, " +211.8e", 2.1180000000e+02, 7, +__LINE__, " +211.8e+", 2.1180000000e+02, 7, +__LINE__, " +211.8e-", 2.1180000000e+02, 7, +__LINE__, " +2118e-1", 2.1180000000e+02, 9, +__LINE__, " 211.8", 2.1180000000e+02, 6, +__LINE__, " 211.8+", 2.1180000000e+02, 6, +__LINE__, " 211.8+1", 2.1180000000e+02, 6, +__LINE__, " 211.8+20", 2.1180000000e+02, 6, +__LINE__, " 211.8-", 2.1180000000e+02, 6, +__LINE__, " 211.8-1", 2.1180000000e+02, 6, +__LINE__, " 211.8-20", 2.1180000000e+02, 6, +__LINE__, " 211.8e", 2.1180000000e+02, 6, +__LINE__, " 211.8e+", 2.1180000000e+02, 6, +__LINE__, " 211.8e-", 2.1180000000e+02, 6, +__LINE__, " 2118e-1", 2.1180000000e+02, 8, +__LINE__, "+211.8", 2.1180000000e+02, 6, +__LINE__, "+211.8+", 2.1180000000e+02, 6, +__LINE__, "+211.8+1", 2.1180000000e+02, 6, +__LINE__, "+211.8+20", 2.1180000000e+02, 6, +__LINE__, "+211.8-", 2.1180000000e+02, 6, +__LINE__, "+211.8-1", 2.1180000000e+02, 6, +__LINE__, "+211.8-20", 2.1180000000e+02, 6, +__LINE__, "+211.8e", 2.1180000000e+02, 6, +__LINE__, "+211.8e+", 2.1180000000e+02, 6, +__LINE__, "+211.8e-", 2.1180000000e+02, 6, +__LINE__, "+2118e-1", 2.1180000000e+02, 8, +__LINE__, "211.8", 2.1180000000e+02, 5, +__LINE__, "211.8+", 2.1180000000e+02, 5, +__LINE__, "211.8+1", 2.1180000000e+02, 5, +__LINE__, "211.8+20", 2.1180000000e+02, 5, +__LINE__, "211.8-", 2.1180000000e+02, 5, +__LINE__, "211.8-1", 2.1180000000e+02, 5, +__LINE__, "211.8-20", 2.1180000000e+02, 5, +__LINE__, "211.8e", 2.1180000000e+02, 5, +__LINE__, "211.8e+", 2.1180000000e+02, 5, +__LINE__, "211.8e-", 2.1180000000e+02, 5, +__LINE__, "2118e-1", 2.1180000000e+02, 7, +__LINE__, " +211.8e+20", 2.1180000000e+22, 11, +__LINE__, " +211.8e20", 2.1180000000e+22, 10, +__LINE__, " 211.8e+20", 2.1180000000e+22, 10, +__LINE__, " 211.8e20", 2.1180000000e+22, 9, +__LINE__, "+211.8e+20", 2.1180000000e+22, 10, +__LINE__, "+211.8e20", 2.1180000000e+22, 9, +__LINE__, "211.8e+20", 2.1180000000e+22, 9, +__LINE__, "211.8e20", 2.1180000000e+22, 8, +__LINE__, " +211.81", 2.1181000000e+02, 8, +__LINE__, " 211.81", 2.1181000000e+02, 7, +__LINE__, "+211.81", 2.1181000000e+02, 7, +__LINE__, "211.81", 2.1181000000e+02, 6, +__LINE__, " +21181", 2.1181000000e+04, 7, +__LINE__, " 21181", 2.1181000000e+04, 6, +__LINE__, "+21181", 2.1181000000e+04, 6, +__LINE__, "21181", 2.1181000000e+04, 5, +__LINE__, " +211.820", 2.1182000000e+02, 9, +__LINE__, " 211.820", 2.1182000000e+02, 8, +__LINE__, "+211.820", 2.1182000000e+02, 8, +__LINE__, "211.820", 2.1182000000e+02, 7, +__LINE__, " +211820", 2.1182000000e+05, 8, +__LINE__, " 211820", 2.1182000000e+05, 7, +__LINE__, "+211820", 2.1182000000e+05, 7, +__LINE__, "211820", 2.1182000000e+05, 6, +__LINE__, " +2119e-20", 2.1190000000e-17, 10, +__LINE__, " 2119e-20", 2.1190000000e-17, 9, +__LINE__, "+2119e-20", 2.1190000000e-17, 9, +__LINE__, "2119e-20", 2.1190000000e-17, 8, +__LINE__, " +211.9e-1", 2.1190000000e+01, 10, +__LINE__, " 211.9e-1", 2.1190000000e+01, 9, +__LINE__, "+211.9e-1", 2.1190000000e+01, 9, +__LINE__, "211.9e-1", 2.1190000000e+01, 8, +__LINE__, " +211.9", 2.1190000000e+02, 7, +__LINE__, " +211.9+", 2.1190000000e+02, 7, +__LINE__, " +211.9+1", 2.1190000000e+02, 7, +__LINE__, " +211.9+20", 2.1190000000e+02, 7, +__LINE__, " +211.9-", 2.1190000000e+02, 7, +__LINE__, " +211.9-1", 2.1190000000e+02, 7, +__LINE__, " +211.9-20", 2.1190000000e+02, 7, +__LINE__, " +211.9e", 2.1190000000e+02, 7, +__LINE__, " +211.9e+", 2.1190000000e+02, 7, +__LINE__, " +211.9e-", 2.1190000000e+02, 7, +__LINE__, " +2119e-1", 2.1190000000e+02, 9, +__LINE__, " 211.9", 2.1190000000e+02, 6, +__LINE__, " 211.9+", 2.1190000000e+02, 6, +__LINE__, " 211.9+1", 2.1190000000e+02, 6, +__LINE__, " 211.9+20", 2.1190000000e+02, 6, +__LINE__, " 211.9-", 2.1190000000e+02, 6, +__LINE__, " 211.9-1", 2.1190000000e+02, 6, +__LINE__, " 211.9-20", 2.1190000000e+02, 6, +__LINE__, " 211.9e", 2.1190000000e+02, 6, +__LINE__, " 211.9e+", 2.1190000000e+02, 6, +__LINE__, " 211.9e-", 2.1190000000e+02, 6, +__LINE__, " 2119e-1", 2.1190000000e+02, 8, +__LINE__, "+211.9", 2.1190000000e+02, 6, +__LINE__, "+211.9+", 2.1190000000e+02, 6, +__LINE__, "+211.9+1", 2.1190000000e+02, 6, +__LINE__, "+211.9+20", 2.1190000000e+02, 6, +__LINE__, "+211.9-", 2.1190000000e+02, 6, +__LINE__, "+211.9-1", 2.1190000000e+02, 6, +__LINE__, "+211.9-20", 2.1190000000e+02, 6, +__LINE__, "+211.9e", 2.1190000000e+02, 6, +__LINE__, "+211.9e+", 2.1190000000e+02, 6, +__LINE__, "+211.9e-", 2.1190000000e+02, 6, +__LINE__, "+2119e-1", 2.1190000000e+02, 8, +__LINE__, "211.9", 2.1190000000e+02, 5, +__LINE__, "211.9+", 2.1190000000e+02, 5, +__LINE__, "211.9+1", 2.1190000000e+02, 5, +__LINE__, "211.9+20", 2.1190000000e+02, 5, +__LINE__, "211.9-", 2.1190000000e+02, 5, +__LINE__, "211.9-1", 2.1190000000e+02, 5, +__LINE__, "211.9-20", 2.1190000000e+02, 5, +__LINE__, "211.9e", 2.1190000000e+02, 5, +__LINE__, "211.9e+", 2.1190000000e+02, 5, +__LINE__, "211.9e-", 2.1190000000e+02, 5, +__LINE__, "2119e-1", 2.1190000000e+02, 7, +__LINE__, " +211.9e+1", 2.1190000000e+03, 10, +__LINE__, " +211.9e1", 2.1190000000e+03, 9, +__LINE__, " +2119", 2.1190000000e+03, 6, +__LINE__, " +2119+", 2.1190000000e+03, 6, +__LINE__, " +2119+1", 2.1190000000e+03, 6, +__LINE__, " +2119+20", 2.1190000000e+03, 6, +__LINE__, " +2119-", 2.1190000000e+03, 6, +__LINE__, " +2119-1", 2.1190000000e+03, 6, +__LINE__, " +2119-20", 2.1190000000e+03, 6, +__LINE__, " +2119e", 2.1190000000e+03, 6, +__LINE__, " +2119e+", 2.1190000000e+03, 6, +__LINE__, " +2119e-", 2.1190000000e+03, 6, +__LINE__, " 211.9e+1", 2.1190000000e+03, 9, +__LINE__, " 211.9e1", 2.1190000000e+03, 8, +__LINE__, " 2119", 2.1190000000e+03, 5, +__LINE__, " 2119+", 2.1190000000e+03, 5, +__LINE__, " 2119+1", 2.1190000000e+03, 5, +__LINE__, " 2119+20", 2.1190000000e+03, 5, +__LINE__, " 2119-", 2.1190000000e+03, 5, +__LINE__, " 2119-1", 2.1190000000e+03, 5, +__LINE__, " 2119-20", 2.1190000000e+03, 5, +__LINE__, " 2119e", 2.1190000000e+03, 5, +__LINE__, " 2119e+", 2.1190000000e+03, 5, +__LINE__, " 2119e-", 2.1190000000e+03, 5, +__LINE__, "+211.9e+1", 2.1190000000e+03, 9, +__LINE__, "+211.9e1", 2.1190000000e+03, 8, +__LINE__, "+2119", 2.1190000000e+03, 5, +__LINE__, "+2119+", 2.1190000000e+03, 5, +__LINE__, "+2119+1", 2.1190000000e+03, 5, +__LINE__, "+2119+20", 2.1190000000e+03, 5, +__LINE__, "+2119-", 2.1190000000e+03, 5, +__LINE__, "+2119-1", 2.1190000000e+03, 5, +__LINE__, "+2119-20", 2.1190000000e+03, 5, +__LINE__, "+2119e", 2.1190000000e+03, 5, +__LINE__, "+2119e+", 2.1190000000e+03, 5, +__LINE__, "+2119e-", 2.1190000000e+03, 5, +__LINE__, "211.9e+1", 2.1190000000e+03, 8, +__LINE__, "211.9e1", 2.1190000000e+03, 7, +__LINE__, "2119", 2.1190000000e+03, 4, +__LINE__, "2119+", 2.1190000000e+03, 4, +__LINE__, "2119+1", 2.1190000000e+03, 4, +__LINE__, "2119+20", 2.1190000000e+03, 4, +__LINE__, "2119-", 2.1190000000e+03, 4, +__LINE__, "2119-1", 2.1190000000e+03, 4, +__LINE__, "2119-20", 2.1190000000e+03, 4, +__LINE__, "2119e", 2.1190000000e+03, 4, +__LINE__, "2119e+", 2.1190000000e+03, 4, +__LINE__, "2119e-", 2.1190000000e+03, 4, +__LINE__, " +2119e+1", 2.1190000000e+04, 9, +__LINE__, " +2119e1", 2.1190000000e+04, 8, +__LINE__, " 2119e+1", 2.1190000000e+04, 8, +__LINE__, " 2119e1", 2.1190000000e+04, 7, +__LINE__, "+2119e+1", 2.1190000000e+04, 8, +__LINE__, "+2119e1", 2.1190000000e+04, 7, +__LINE__, "2119e+1", 2.1190000000e+04, 7, +__LINE__, "2119e1", 2.1190000000e+04, 6, +__LINE__, " +211.9e+20", 2.1190000000e+22, 11, +__LINE__, " +211.9e20", 2.1190000000e+22, 10, +__LINE__, " 211.9e+20", 2.1190000000e+22, 10, +__LINE__, " 211.9e20", 2.1190000000e+22, 9, +__LINE__, "+211.9e+20", 2.1190000000e+22, 10, +__LINE__, "+211.9e20", 2.1190000000e+22, 9, +__LINE__, "211.9e+20", 2.1190000000e+22, 9, +__LINE__, "211.9e20", 2.1190000000e+22, 8, +__LINE__, " +2119e+20", 2.1190000000e+23, 10, +__LINE__, " +2119e20", 2.1190000000e+23, 9, +__LINE__, " 2119e+20", 2.1190000000e+23, 9, +__LINE__, " 2119e20", 2.1190000000e+23, 8, +__LINE__, "+2119e+20", 2.1190000000e+23, 9, +__LINE__, "+2119e20", 2.1190000000e+23, 8, +__LINE__, "2119e+20", 2.1190000000e+23, 8, +__LINE__, "2119e20", 2.1190000000e+23, 7, +__LINE__, " +211.9e-20", 2.1190000000e-18, 11, +__LINE__, " 211.9e-20", 2.1190000000e-18, 10, +__LINE__, "+211.9e-20", 2.1190000000e-18, 10, +__LINE__, "211.9e-20", 2.1190000000e-18, 9, +__LINE__, " +211.91", 2.1191000000e+02, 8, +__LINE__, " 211.91", 2.1191000000e+02, 7, +__LINE__, "+211.91", 2.1191000000e+02, 7, +__LINE__, "211.91", 2.1191000000e+02, 6, +__LINE__, " +21191", 2.1191000000e+04, 7, +__LINE__, " 21191", 2.1191000000e+04, 6, +__LINE__, "+21191", 2.1191000000e+04, 6, +__LINE__, "21191", 2.1191000000e+04, 5, +__LINE__, " +211.920", 2.1192000000e+02, 9, +__LINE__, " 211.920", 2.1192000000e+02, 8, +__LINE__, "+211.920", 2.1192000000e+02, 8, +__LINE__, "211.920", 2.1192000000e+02, 7, +__LINE__, " +211920", 2.1192000000e+05, 8, +__LINE__, " 211920", 2.1192000000e+05, 7, +__LINE__, "+211920", 2.1192000000e+05, 7, +__LINE__, "211920", 2.1192000000e+05, 6, +__LINE__, " +612.e-1", 6.1200000000e+01, 9, +__LINE__, " +612e-1", 6.1200000000e+01, 8, +__LINE__, " 612.e-1", 6.1200000000e+01, 8, +__LINE__, " 612e-1", 6.1200000000e+01, 7, +__LINE__, "+612.e-1", 6.1200000000e+01, 8, +__LINE__, "+612e-1", 6.1200000000e+01, 7, +__LINE__, "612.e-1", 6.1200000000e+01, 7, +__LINE__, "612e-1", 6.1200000000e+01, 6, +__LINE__, " +612", 6.1200000000e+02, 5, +__LINE__, " +612+", 6.1200000000e+02, 5, +__LINE__, " +612+1", 6.1200000000e+02, 5, +__LINE__, " +612+20", 6.1200000000e+02, 5, +__LINE__, " +612-", 6.1200000000e+02, 5, +__LINE__, " +612-1", 6.1200000000e+02, 5, +__LINE__, " +612-20", 6.1200000000e+02, 5, +__LINE__, " +612.", 6.1200000000e+02, 6, +__LINE__, " +612.+", 6.1200000000e+02, 6, +__LINE__, " +612.+1", 6.1200000000e+02, 6, +__LINE__, " +612.+20", 6.1200000000e+02, 6, +__LINE__, " +612.-", 6.1200000000e+02, 6, +__LINE__, " +612.-1", 6.1200000000e+02, 6, +__LINE__, " +612.-20", 6.1200000000e+02, 6, +__LINE__, " +612.e", 6.1200000000e+02, 6, +__LINE__, " +612.e+", 6.1200000000e+02, 6, +__LINE__, " +612.e-", 6.1200000000e+02, 6, +__LINE__, " +612e", 6.1200000000e+02, 5, +__LINE__, " +612e+", 6.1200000000e+02, 5, +__LINE__, " +612e-", 6.1200000000e+02, 5, +__LINE__, " 612", 6.1200000000e+02, 4, +__LINE__, " 612+", 6.1200000000e+02, 4, +__LINE__, " 612+1", 6.1200000000e+02, 4, +__LINE__, " 612+20", 6.1200000000e+02, 4, +__LINE__, " 612-", 6.1200000000e+02, 4, +__LINE__, " 612-1", 6.1200000000e+02, 4, +__LINE__, " 612-20", 6.1200000000e+02, 4, +__LINE__, " 612.", 6.1200000000e+02, 5, +__LINE__, " 612.+", 6.1200000000e+02, 5, +__LINE__, " 612.+1", 6.1200000000e+02, 5, +__LINE__, " 612.+20", 6.1200000000e+02, 5, +__LINE__, " 612.-", 6.1200000000e+02, 5, +__LINE__, " 612.-1", 6.1200000000e+02, 5, +__LINE__, " 612.-20", 6.1200000000e+02, 5, +__LINE__, " 612.e", 6.1200000000e+02, 5, +__LINE__, " 612.e+", 6.1200000000e+02, 5, +__LINE__, " 612.e-", 6.1200000000e+02, 5, +__LINE__, " 612e", 6.1200000000e+02, 4, +__LINE__, " 612e+", 6.1200000000e+02, 4, +__LINE__, " 612e-", 6.1200000000e+02, 4, +__LINE__, "+612", 6.1200000000e+02, 4, +__LINE__, "+612+", 6.1200000000e+02, 4, +__LINE__, "+612+1", 6.1200000000e+02, 4, +__LINE__, "+612+20", 6.1200000000e+02, 4, +__LINE__, "+612-", 6.1200000000e+02, 4, +__LINE__, "+612-1", 6.1200000000e+02, 4, +__LINE__, "+612-20", 6.1200000000e+02, 4, +__LINE__, "+612.", 6.1200000000e+02, 5, +__LINE__, "+612.+", 6.1200000000e+02, 5, +__LINE__, "+612.+1", 6.1200000000e+02, 5, +__LINE__, "+612.+20", 6.1200000000e+02, 5, +__LINE__, "+612.-", 6.1200000000e+02, 5, +__LINE__, "+612.-1", 6.1200000000e+02, 5, +__LINE__, "+612.-20", 6.1200000000e+02, 5, +__LINE__, "+612.e", 6.1200000000e+02, 5, +__LINE__, "+612.e+", 6.1200000000e+02, 5, +__LINE__, "+612.e-", 6.1200000000e+02, 5, +__LINE__, "+612e", 6.1200000000e+02, 4, +__LINE__, "+612e+", 6.1200000000e+02, 4, +__LINE__, "+612e-", 6.1200000000e+02, 4, +__LINE__, "612", 6.1200000000e+02, 3, +__LINE__, "612+", 6.1200000000e+02, 3, +__LINE__, "612+1", 6.1200000000e+02, 3, +__LINE__, "612+20", 6.1200000000e+02, 3, +__LINE__, "612-", 6.1200000000e+02, 3, +__LINE__, "612-1", 6.1200000000e+02, 3, +__LINE__, "612-20", 6.1200000000e+02, 3, +__LINE__, "612.", 6.1200000000e+02, 4, +__LINE__, "612.+", 6.1200000000e+02, 4, +__LINE__, "612.+1", 6.1200000000e+02, 4, +__LINE__, "612.+20", 6.1200000000e+02, 4, +__LINE__, "612.-", 6.1200000000e+02, 4, +__LINE__, "612.-1", 6.1200000000e+02, 4, +__LINE__, "612.-20", 6.1200000000e+02, 4, +__LINE__, "612.e", 6.1200000000e+02, 4, +__LINE__, "612.e+", 6.1200000000e+02, 4, +__LINE__, "612.e-", 6.1200000000e+02, 4, +__LINE__, "612e", 6.1200000000e+02, 3, +__LINE__, "612e+", 6.1200000000e+02, 3, +__LINE__, "612e-", 6.1200000000e+02, 3, +__LINE__, " +612.e+1", 6.1200000000e+03, 9, +__LINE__, " +612.e1", 6.1200000000e+03, 8, +__LINE__, " +612e+1", 6.1200000000e+03, 8, +__LINE__, " +612e1", 6.1200000000e+03, 7, +__LINE__, " 612.e+1", 6.1200000000e+03, 8, +__LINE__, " 612.e1", 6.1200000000e+03, 7, +__LINE__, " 612e+1", 6.1200000000e+03, 7, +__LINE__, " 612e1", 6.1200000000e+03, 6, +__LINE__, "+612.e+1", 6.1200000000e+03, 8, +__LINE__, "+612.e1", 6.1200000000e+03, 7, +__LINE__, "+612e+1", 6.1200000000e+03, 7, +__LINE__, "+612e1", 6.1200000000e+03, 6, +__LINE__, "612.e+1", 6.1200000000e+03, 7, +__LINE__, "612.e1", 6.1200000000e+03, 6, +__LINE__, "612e+1", 6.1200000000e+03, 6, +__LINE__, "612e1", 6.1200000000e+03, 5, +__LINE__, " +612.e+20", 6.1200000000e+22, 10, +__LINE__, " +612.e20", 6.1200000000e+22, 9, +__LINE__, " +612e+20", 6.1200000000e+22, 9, +__LINE__, " +612e20", 6.1200000000e+22, 8, +__LINE__, " 612.e+20", 6.1200000000e+22, 9, +__LINE__, " 612.e20", 6.1200000000e+22, 8, +__LINE__, " 612e+20", 6.1200000000e+22, 8, +__LINE__, " 612e20", 6.1200000000e+22, 7, +__LINE__, "+612.e+20", 6.1200000000e+22, 9, +__LINE__, "+612.e20", 6.1200000000e+22, 8, +__LINE__, "+612e+20", 6.1200000000e+22, 8, +__LINE__, "+612e20", 6.1200000000e+22, 7, +__LINE__, "612.e+20", 6.1200000000e+22, 8, +__LINE__, "612.e20", 6.1200000000e+22, 7, +__LINE__, "612e+20", 6.1200000000e+22, 7, +__LINE__, "612e20", 6.1200000000e+22, 6, +__LINE__, " +612.e-20", 6.1200000000e-18, 10, +__LINE__, " +612e-20", 6.1200000000e-18, 9, +__LINE__, " 612.e-20", 6.1200000000e-18, 9, +__LINE__, " 612e-20", 6.1200000000e-18, 8, +__LINE__, "+612.e-20", 6.1200000000e-18, 9, +__LINE__, "+612e-20", 6.1200000000e-18, 8, +__LINE__, "612.e-20", 6.1200000000e-18, 8, +__LINE__, "612e-20", 6.1200000000e-18, 7, +__LINE__, " +612.1", 6.1210000000e+02, 7, +__LINE__, " 612.1", 6.1210000000e+02, 6, +__LINE__, "+612.1", 6.1210000000e+02, 6, +__LINE__, "612.1", 6.1210000000e+02, 5, +__LINE__, " +6121", 6.1210000000e+03, 6, +__LINE__, " 6121", 6.1210000000e+03, 5, +__LINE__, "+6121", 6.1210000000e+03, 5, +__LINE__, "6121", 6.1210000000e+03, 4, +__LINE__, " +612.1241e-1", 6.1212410000e+01, 13, +__LINE__, " 612.1241e-1", 6.1212410000e+01, 12, +__LINE__, "+612.1241e-1", 6.1212410000e+01, 12, +__LINE__, "612.1241e-1", 6.1212410000e+01, 11, +__LINE__, " +612.1241e+1", 6.1212410000e+03, 13, +__LINE__, " +612.1241e1", 6.1212410000e+03, 12, +__LINE__, " 612.1241e+1", 6.1212410000e+03, 12, +__LINE__, " 612.1241e1", 6.1212410000e+03, 11, +__LINE__, "+612.1241e+1", 6.1212410000e+03, 12, +__LINE__, "+612.1241e1", 6.1212410000e+03, 11, +__LINE__, "612.1241e+1", 6.1212410000e+03, 11, +__LINE__, "612.1241e1", 6.1212410000e+03, 10, +__LINE__, " +6121241e-1", 6.1212410000e+05, 12, +__LINE__, " 6121241e-1", 6.1212410000e+05, 11, +__LINE__, "+6121241e-1", 6.1212410000e+05, 11, +__LINE__, "6121241e-1", 6.1212410000e+05, 10, +__LINE__, " +6121241e+1", 6.1212410000e+07, 12, +__LINE__, " +6121241e1", 6.1212410000e+07, 11, +__LINE__, " 6121241e+1", 6.1212410000e+07, 11, +__LINE__, " 6121241e1", 6.1212410000e+07, 10, +__LINE__, "+6121241e+1", 6.1212410000e+07, 11, +__LINE__, "+6121241e1", 6.1212410000e+07, 10, +__LINE__, "6121241e+1", 6.1212410000e+07, 10, +__LINE__, "6121241e1", 6.1212410000e+07, 9, +__LINE__, " +6121241e-20", 6.1212410000e-14, 13, +__LINE__, " 6121241e-20", 6.1212410000e-14, 12, +__LINE__, "+6121241e-20", 6.1212410000e-14, 12, +__LINE__, "6121241e-20", 6.1212410000e-14, 11, +__LINE__, " +612.1241", 6.1212410000e+02, 10, +__LINE__, " +612.1241+", 6.1212410000e+02, 10, +__LINE__, " +612.1241+1", 6.1212410000e+02, 10, +__LINE__, " +612.1241+20", 6.1212410000e+02, 10, +__LINE__, " +612.1241-", 6.1212410000e+02, 10, +__LINE__, " +612.1241-1", 6.1212410000e+02, 10, +__LINE__, " +612.1241-20", 6.1212410000e+02, 10, +__LINE__, " +612.1241e", 6.1212410000e+02, 10, +__LINE__, " +612.1241e+", 6.1212410000e+02, 10, +__LINE__, " +612.1241e-", 6.1212410000e+02, 10, +__LINE__, " 612.1241", 6.1212410000e+02, 9, +__LINE__, " 612.1241+", 6.1212410000e+02, 9, +__LINE__, " 612.1241+1", 6.1212410000e+02, 9, +__LINE__, " 612.1241+20", 6.1212410000e+02, 9, +__LINE__, " 612.1241-", 6.1212410000e+02, 9, +__LINE__, " 612.1241-1", 6.1212410000e+02, 9, +__LINE__, " 612.1241-20", 6.1212410000e+02, 9, +__LINE__, " 612.1241e", 6.1212410000e+02, 9, +__LINE__, " 612.1241e+", 6.1212410000e+02, 9, +__LINE__, " 612.1241e-", 6.1212410000e+02, 9, +__LINE__, "+612.1241", 6.1212410000e+02, 9, +__LINE__, "+612.1241+", 6.1212410000e+02, 9, +__LINE__, "+612.1241+1", 6.1212410000e+02, 9, +__LINE__, "+612.1241+20", 6.1212410000e+02, 9, +__LINE__, "+612.1241-", 6.1212410000e+02, 9, +__LINE__, "+612.1241-1", 6.1212410000e+02, 9, +__LINE__, "+612.1241-20", 6.1212410000e+02, 9, +__LINE__, "+612.1241e", 6.1212410000e+02, 9, +__LINE__, "+612.1241e+", 6.1212410000e+02, 9, +__LINE__, "+612.1241e-", 6.1212410000e+02, 9, +__LINE__, "612.1241", 6.1212410000e+02, 8, +__LINE__, "612.1241+", 6.1212410000e+02, 8, +__LINE__, "612.1241+1", 6.1212410000e+02, 8, +__LINE__, "612.1241+20", 6.1212410000e+02, 8, +__LINE__, "612.1241-", 6.1212410000e+02, 8, +__LINE__, "612.1241-1", 6.1212410000e+02, 8, +__LINE__, "612.1241-20", 6.1212410000e+02, 8, +__LINE__, "612.1241e", 6.1212410000e+02, 8, +__LINE__, "612.1241e+", 6.1212410000e+02, 8, +__LINE__, "612.1241e-", 6.1212410000e+02, 8, +__LINE__, " +6121241", 6.1212410000e+06, 9, +__LINE__, " +6121241+", 6.1212410000e+06, 9, +__LINE__, " +6121241+1", 6.1212410000e+06, 9, +__LINE__, " +6121241+20", 6.1212410000e+06, 9, +__LINE__, " +6121241-", 6.1212410000e+06, 9, +__LINE__, " +6121241-1", 6.1212410000e+06, 9, +__LINE__, " +6121241-20", 6.1212410000e+06, 9, +__LINE__, " +6121241e", 6.1212410000e+06, 9, +__LINE__, " +6121241e+", 6.1212410000e+06, 9, +__LINE__, " +6121241e-", 6.1212410000e+06, 9, +__LINE__, " 6121241", 6.1212410000e+06, 8, +__LINE__, " 6121241+", 6.1212410000e+06, 8, +__LINE__, " 6121241+1", 6.1212410000e+06, 8, +__LINE__, " 6121241+20", 6.1212410000e+06, 8, +__LINE__, " 6121241-", 6.1212410000e+06, 8, +__LINE__, " 6121241-1", 6.1212410000e+06, 8, +__LINE__, " 6121241-20", 6.1212410000e+06, 8, +__LINE__, " 6121241e", 6.1212410000e+06, 8, +__LINE__, " 6121241e+", 6.1212410000e+06, 8, +__LINE__, " 6121241e-", 6.1212410000e+06, 8, +__LINE__, "+6121241", 6.1212410000e+06, 8, +__LINE__, "+6121241+", 6.1212410000e+06, 8, +__LINE__, "+6121241+1", 6.1212410000e+06, 8, +__LINE__, "+6121241+20", 6.1212410000e+06, 8, +__LINE__, "+6121241-", 6.1212410000e+06, 8, +__LINE__, "+6121241-1", 6.1212410000e+06, 8, +__LINE__, "+6121241-20", 6.1212410000e+06, 8, +__LINE__, "+6121241e", 6.1212410000e+06, 8, +__LINE__, "+6121241e+", 6.1212410000e+06, 8, +__LINE__, "+6121241e-", 6.1212410000e+06, 8, +__LINE__, "6121241", 6.1212410000e+06, 7, +__LINE__, "6121241+", 6.1212410000e+06, 7, +__LINE__, "6121241+1", 6.1212410000e+06, 7, +__LINE__, "6121241+20", 6.1212410000e+06, 7, +__LINE__, "6121241-", 6.1212410000e+06, 7, +__LINE__, "6121241-1", 6.1212410000e+06, 7, +__LINE__, "6121241-20", 6.1212410000e+06, 7, +__LINE__, "6121241e", 6.1212410000e+06, 7, +__LINE__, "6121241e+", 6.1212410000e+06, 7, +__LINE__, "6121241e-", 6.1212410000e+06, 7, +__LINE__, " +612.1241e+20", 6.1212410000e+22, 14, +__LINE__, " +612.1241e20", 6.1212410000e+22, 13, +__LINE__, " 612.1241e+20", 6.1212410000e+22, 13, +__LINE__, " 612.1241e20", 6.1212410000e+22, 12, +__LINE__, "+612.1241e+20", 6.1212410000e+22, 13, +__LINE__, "+612.1241e20", 6.1212410000e+22, 12, +__LINE__, "612.1241e+20", 6.1212410000e+22, 12, +__LINE__, "612.1241e20", 6.1212410000e+22, 11, +__LINE__, " +6121241e+20", 6.1212410000e+26, 13, +__LINE__, " +6121241e20", 6.1212410000e+26, 12, +__LINE__, " 6121241e+20", 6.1212410000e+26, 12, +__LINE__, " 6121241e20", 6.1212410000e+26, 11, +__LINE__, "+6121241e+20", 6.1212410000e+26, 12, +__LINE__, "+6121241e20", 6.1212410000e+26, 11, +__LINE__, "6121241e+20", 6.1212410000e+26, 11, +__LINE__, "6121241e20", 6.1212410000e+26, 10, +__LINE__, " +612.1241e-20", 6.1212410000e-18, 14, +__LINE__, " 612.1241e-20", 6.1212410000e-18, 13, +__LINE__, "+612.1241e-20", 6.1212410000e-18, 13, +__LINE__, "612.1241e-20", 6.1212410000e-18, 12, +__LINE__, " +612.12411", 6.1212411000e+02, 11, +__LINE__, " 612.12411", 6.1212411000e+02, 10, +__LINE__, "+612.12411", 6.1212411000e+02, 10, +__LINE__, "612.12411", 6.1212411000e+02, 9, +__LINE__, " +61212411", 6.1212411000e+07, 10, +__LINE__, " 61212411", 6.1212411000e+07, 9, +__LINE__, "+61212411", 6.1212411000e+07, 9, +__LINE__, "61212411", 6.1212411000e+07, 8, +__LINE__, " +612.124120", 6.1212412000e+02, 12, +__LINE__, " 612.124120", 6.1212412000e+02, 11, +__LINE__, "+612.124120", 6.1212412000e+02, 11, +__LINE__, "612.124120", 6.1212412000e+02, 10, +__LINE__, " +612124120", 6.1212412000e+08, 11, +__LINE__, " 612124120", 6.1212412000e+08, 10, +__LINE__, "+612124120", 6.1212412000e+08, 10, +__LINE__, "612124120", 6.1212412000e+08, 9, +__LINE__, " +61220", 6.1220000000e+04, 7, +__LINE__, " 61220", 6.1220000000e+04, 6, +__LINE__, "+61220", 6.1220000000e+04, 6, +__LINE__, "61220", 6.1220000000e+04, 5, +__LINE__, " +612.20", 6.1220000000e+02, 8, +__LINE__, " 612.20", 6.1220000000e+02, 7, +__LINE__, "+612.20", 6.1220000000e+02, 7, +__LINE__, "612.20", 6.1220000000e+02, 6, +__LINE__, " +612.8", 6.1280000000e+02, 7, +__LINE__, " +612.8+", 6.1280000000e+02, 7, +__LINE__, " +612.8+1", 6.1280000000e+02, 7, +__LINE__, " +612.8+20", 6.1280000000e+02, 7, +__LINE__, " +612.8-", 6.1280000000e+02, 7, +__LINE__, " +612.8-1", 6.1280000000e+02, 7, +__LINE__, " +612.8-20", 6.1280000000e+02, 7, +__LINE__, " +612.8e", 6.1280000000e+02, 7, +__LINE__, " +612.8e+", 6.1280000000e+02, 7, +__LINE__, " +612.8e-", 6.1280000000e+02, 7, +__LINE__, " +6128e-1", 6.1280000000e+02, 9, +__LINE__, " 612.8", 6.1280000000e+02, 6, +__LINE__, " 612.8+", 6.1280000000e+02, 6, +__LINE__, " 612.8+1", 6.1280000000e+02, 6, +__LINE__, " 612.8+20", 6.1280000000e+02, 6, +__LINE__, " 612.8-", 6.1280000000e+02, 6, +__LINE__, " 612.8-1", 6.1280000000e+02, 6, +__LINE__, " 612.8-20", 6.1280000000e+02, 6, +__LINE__, " 612.8e", 6.1280000000e+02, 6, +__LINE__, " 612.8e+", 6.1280000000e+02, 6, +__LINE__, " 612.8e-", 6.1280000000e+02, 6, +__LINE__, " 6128e-1", 6.1280000000e+02, 8, +__LINE__, "+612.8", 6.1280000000e+02, 6, +__LINE__, "+612.8+", 6.1280000000e+02, 6, +__LINE__, "+612.8+1", 6.1280000000e+02, 6, +__LINE__, "+612.8+20", 6.1280000000e+02, 6, +__LINE__, "+612.8-", 6.1280000000e+02, 6, +__LINE__, "+612.8-1", 6.1280000000e+02, 6, +__LINE__, "+612.8-20", 6.1280000000e+02, 6, +__LINE__, "+612.8e", 6.1280000000e+02, 6, +__LINE__, "+612.8e+", 6.1280000000e+02, 6, +__LINE__, "+612.8e-", 6.1280000000e+02, 6, +__LINE__, "+6128e-1", 6.1280000000e+02, 8, +__LINE__, "612.8", 6.1280000000e+02, 5, +__LINE__, "612.8+", 6.1280000000e+02, 5, +__LINE__, "612.8+1", 6.1280000000e+02, 5, +__LINE__, "612.8+20", 6.1280000000e+02, 5, +__LINE__, "612.8-", 6.1280000000e+02, 5, +__LINE__, "612.8-1", 6.1280000000e+02, 5, +__LINE__, "612.8-20", 6.1280000000e+02, 5, +__LINE__, "612.8e", 6.1280000000e+02, 5, +__LINE__, "612.8e+", 6.1280000000e+02, 5, +__LINE__, "612.8e-", 6.1280000000e+02, 5, +__LINE__, "6128e-1", 6.1280000000e+02, 7, +__LINE__, " +612.8e+20", 6.1280000000e+22, 11, +__LINE__, " +612.8e20", 6.1280000000e+22, 10, +__LINE__, " 612.8e+20", 6.1280000000e+22, 10, +__LINE__, " 612.8e20", 6.1280000000e+22, 9, +__LINE__, "+612.8e+20", 6.1280000000e+22, 10, +__LINE__, "+612.8e20", 6.1280000000e+22, 9, +__LINE__, "612.8e+20", 6.1280000000e+22, 9, +__LINE__, "612.8e20", 6.1280000000e+22, 8, +__LINE__, " +6128e-20", 6.1280000000e-17, 10, +__LINE__, " 6128e-20", 6.1280000000e-17, 9, +__LINE__, "+6128e-20", 6.1280000000e-17, 9, +__LINE__, "6128e-20", 6.1280000000e-17, 8, +__LINE__, " +612.8e-1", 6.1280000000e+01, 10, +__LINE__, " 612.8e-1", 6.1280000000e+01, 9, +__LINE__, "+612.8e-1", 6.1280000000e+01, 9, +__LINE__, "612.8e-1", 6.1280000000e+01, 8, +__LINE__, " +612.8e+1", 6.1280000000e+03, 10, +__LINE__, " +612.8e1", 6.1280000000e+03, 9, +__LINE__, " +6128", 6.1280000000e+03, 6, +__LINE__, " +6128+", 6.1280000000e+03, 6, +__LINE__, " +6128+1", 6.1280000000e+03, 6, +__LINE__, " +6128+20", 6.1280000000e+03, 6, +__LINE__, " +6128-", 6.1280000000e+03, 6, +__LINE__, " +6128-1", 6.1280000000e+03, 6, +__LINE__, " +6128-20", 6.1280000000e+03, 6, +__LINE__, " +6128e", 6.1280000000e+03, 6, +__LINE__, " +6128e+", 6.1280000000e+03, 6, +__LINE__, " +6128e-", 6.1280000000e+03, 6, +__LINE__, " 612.8e+1", 6.1280000000e+03, 9, +__LINE__, " 612.8e1", 6.1280000000e+03, 8, +__LINE__, " 6128", 6.1280000000e+03, 5, +__LINE__, " 6128+", 6.1280000000e+03, 5, +__LINE__, " 6128+1", 6.1280000000e+03, 5, +__LINE__, " 6128+20", 6.1280000000e+03, 5, +__LINE__, " 6128-", 6.1280000000e+03, 5, +__LINE__, " 6128-1", 6.1280000000e+03, 5, +__LINE__, " 6128-20", 6.1280000000e+03, 5, +__LINE__, " 6128e", 6.1280000000e+03, 5, +__LINE__, " 6128e+", 6.1280000000e+03, 5, +__LINE__, " 6128e-", 6.1280000000e+03, 5, +__LINE__, "+612.8e+1", 6.1280000000e+03, 9, +__LINE__, "+612.8e1", 6.1280000000e+03, 8, +__LINE__, "+6128", 6.1280000000e+03, 5, +__LINE__, "+6128+", 6.1280000000e+03, 5, +__LINE__, "+6128+1", 6.1280000000e+03, 5, +__LINE__, "+6128+20", 6.1280000000e+03, 5, +__LINE__, "+6128-", 6.1280000000e+03, 5, +__LINE__, "+6128-1", 6.1280000000e+03, 5, +__LINE__, "+6128-20", 6.1280000000e+03, 5, +__LINE__, "+6128e", 6.1280000000e+03, 5, +__LINE__, "+6128e+", 6.1280000000e+03, 5, +__LINE__, "+6128e-", 6.1280000000e+03, 5, +__LINE__, "612.8e+1", 6.1280000000e+03, 8, +__LINE__, "612.8e1", 6.1280000000e+03, 7, +__LINE__, "6128", 6.1280000000e+03, 4, +__LINE__, "6128+", 6.1280000000e+03, 4, +__LINE__, "6128+1", 6.1280000000e+03, 4, +__LINE__, "6128+20", 6.1280000000e+03, 4, +__LINE__, "6128-", 6.1280000000e+03, 4, +__LINE__, "6128-1", 6.1280000000e+03, 4, +__LINE__, "6128-20", 6.1280000000e+03, 4, +__LINE__, "6128e", 6.1280000000e+03, 4, +__LINE__, "6128e+", 6.1280000000e+03, 4, +__LINE__, "6128e-", 6.1280000000e+03, 4, +__LINE__, " +6128e+1", 6.1280000000e+04, 9, +__LINE__, " +6128e1", 6.1280000000e+04, 8, +__LINE__, " 6128e+1", 6.1280000000e+04, 8, +__LINE__, " 6128e1", 6.1280000000e+04, 7, +__LINE__, "+6128e+1", 6.1280000000e+04, 8, +__LINE__, "+6128e1", 6.1280000000e+04, 7, +__LINE__, "6128e+1", 6.1280000000e+04, 7, +__LINE__, "6128e1", 6.1280000000e+04, 6, +__LINE__, " +6128e+20", 6.1280000000e+23, 10, +__LINE__, " +6128e20", 6.1280000000e+23, 9, +__LINE__, " 6128e+20", 6.1280000000e+23, 9, +__LINE__, " 6128e20", 6.1280000000e+23, 8, +__LINE__, "+6128e+20", 6.1280000000e+23, 9, +__LINE__, "+6128e20", 6.1280000000e+23, 8, +__LINE__, "6128e+20", 6.1280000000e+23, 8, +__LINE__, "6128e20", 6.1280000000e+23, 7, +__LINE__, " +612.8e-20", 6.1280000000e-18, 11, +__LINE__, " 612.8e-20", 6.1280000000e-18, 10, +__LINE__, "+612.8e-20", 6.1280000000e-18, 10, +__LINE__, "612.8e-20", 6.1280000000e-18, 9, +__LINE__, " +612.81", 6.1281000000e+02, 8, +__LINE__, " 612.81", 6.1281000000e+02, 7, +__LINE__, "+612.81", 6.1281000000e+02, 7, +__LINE__, "612.81", 6.1281000000e+02, 6, +__LINE__, " +61281", 6.1281000000e+04, 7, +__LINE__, " 61281", 6.1281000000e+04, 6, +__LINE__, "+61281", 6.1281000000e+04, 6, +__LINE__, "61281", 6.1281000000e+04, 5, +__LINE__, " +612820", 6.1282000000e+05, 8, +__LINE__, " 612820", 6.1282000000e+05, 7, +__LINE__, "+612820", 6.1282000000e+05, 7, +__LINE__, "612820", 6.1282000000e+05, 6, +__LINE__, " +612.820", 6.1282000000e+02, 9, +__LINE__, " 612.820", 6.1282000000e+02, 8, +__LINE__, "+612.820", 6.1282000000e+02, 8, +__LINE__, "612.820", 6.1282000000e+02, 7, +__LINE__, " +612.9e-1", 6.1290000000e+01, 10, +__LINE__, " 612.9e-1", 6.1290000000e+01, 9, +__LINE__, "+612.9e-1", 6.1290000000e+01, 9, +__LINE__, "612.9e-1", 6.1290000000e+01, 8, +__LINE__, " +612.9", 6.1290000000e+02, 7, +__LINE__, " +612.9+", 6.1290000000e+02, 7, +__LINE__, " +612.9+1", 6.1290000000e+02, 7, +__LINE__, " +612.9+20", 6.1290000000e+02, 7, +__LINE__, " +612.9-", 6.1290000000e+02, 7, +__LINE__, " +612.9-1", 6.1290000000e+02, 7, +__LINE__, " +612.9-20", 6.1290000000e+02, 7, +__LINE__, " +612.9e", 6.1290000000e+02, 7, +__LINE__, " +612.9e+", 6.1290000000e+02, 7, +__LINE__, " +612.9e-", 6.1290000000e+02, 7, +__LINE__, " +6129e-1", 6.1290000000e+02, 9, +__LINE__, " 612.9", 6.1290000000e+02, 6, +__LINE__, " 612.9+", 6.1290000000e+02, 6, +__LINE__, " 612.9+1", 6.1290000000e+02, 6, +__LINE__, " 612.9+20", 6.1290000000e+02, 6, +__LINE__, " 612.9-", 6.1290000000e+02, 6, +__LINE__, " 612.9-1", 6.1290000000e+02, 6, +__LINE__, " 612.9-20", 6.1290000000e+02, 6, +__LINE__, " 612.9e", 6.1290000000e+02, 6, +__LINE__, " 612.9e+", 6.1290000000e+02, 6, +__LINE__, " 612.9e-", 6.1290000000e+02, 6, +__LINE__, " 6129e-1", 6.1290000000e+02, 8, +__LINE__, "+612.9", 6.1290000000e+02, 6, +__LINE__, "+612.9+", 6.1290000000e+02, 6, +__LINE__, "+612.9+1", 6.1290000000e+02, 6, +__LINE__, "+612.9+20", 6.1290000000e+02, 6, +__LINE__, "+612.9-", 6.1290000000e+02, 6, +__LINE__, "+612.9-1", 6.1290000000e+02, 6, +__LINE__, "+612.9-20", 6.1290000000e+02, 6, +__LINE__, "+612.9e", 6.1290000000e+02, 6, +__LINE__, "+612.9e+", 6.1290000000e+02, 6, +__LINE__, "+612.9e-", 6.1290000000e+02, 6, +__LINE__, "+6129e-1", 6.1290000000e+02, 8, +__LINE__, "612.9", 6.1290000000e+02, 5, +__LINE__, "612.9+", 6.1290000000e+02, 5, +__LINE__, "612.9+1", 6.1290000000e+02, 5, +__LINE__, "612.9+20", 6.1290000000e+02, 5, +__LINE__, "612.9-", 6.1290000000e+02, 5, +__LINE__, "612.9-1", 6.1290000000e+02, 5, +__LINE__, "612.9-20", 6.1290000000e+02, 5, +__LINE__, "612.9e", 6.1290000000e+02, 5, +__LINE__, "612.9e+", 6.1290000000e+02, 5, +__LINE__, "612.9e-", 6.1290000000e+02, 5, +__LINE__, "6129e-1", 6.1290000000e+02, 7, +__LINE__, " +612.9e+1", 6.1290000000e+03, 10, +__LINE__, " +612.9e1", 6.1290000000e+03, 9, +__LINE__, " +6129", 6.1290000000e+03, 6, +__LINE__, " +6129+", 6.1290000000e+03, 6, +__LINE__, " +6129+1", 6.1290000000e+03, 6, +__LINE__, " +6129+20", 6.1290000000e+03, 6, +__LINE__, " +6129-", 6.1290000000e+03, 6, +__LINE__, " +6129-1", 6.1290000000e+03, 6, +__LINE__, " +6129-20", 6.1290000000e+03, 6, +__LINE__, " +6129e", 6.1290000000e+03, 6, +__LINE__, " +6129e+", 6.1290000000e+03, 6, +__LINE__, " +6129e-", 6.1290000000e+03, 6, +__LINE__, " 612.9e+1", 6.1290000000e+03, 9, +__LINE__, " 612.9e1", 6.1290000000e+03, 8, +__LINE__, " 6129", 6.1290000000e+03, 5, +__LINE__, " 6129+", 6.1290000000e+03, 5, +__LINE__, " 6129+1", 6.1290000000e+03, 5, +__LINE__, " 6129+20", 6.1290000000e+03, 5, +__LINE__, " 6129-", 6.1290000000e+03, 5, +__LINE__, " 6129-1", 6.1290000000e+03, 5, +__LINE__, " 6129-20", 6.1290000000e+03, 5, +__LINE__, " 6129e", 6.1290000000e+03, 5, +__LINE__, " 6129e+", 6.1290000000e+03, 5, +__LINE__, " 6129e-", 6.1290000000e+03, 5, +__LINE__, "+612.9e+1", 6.1290000000e+03, 9, +__LINE__, "+612.9e1", 6.1290000000e+03, 8, +__LINE__, "+6129", 6.1290000000e+03, 5, +__LINE__, "+6129+", 6.1290000000e+03, 5, +__LINE__, "+6129+1", 6.1290000000e+03, 5, +__LINE__, "+6129+20", 6.1290000000e+03, 5, +__LINE__, "+6129-", 6.1290000000e+03, 5, +__LINE__, "+6129-1", 6.1290000000e+03, 5, +__LINE__, "+6129-20", 6.1290000000e+03, 5, +__LINE__, "+6129e", 6.1290000000e+03, 5, +__LINE__, "+6129e+", 6.1290000000e+03, 5, +__LINE__, "+6129e-", 6.1290000000e+03, 5, +__LINE__, "612.9e+1", 6.1290000000e+03, 8, +__LINE__, "612.9e1", 6.1290000000e+03, 7, +__LINE__, "6129", 6.1290000000e+03, 4, +__LINE__, "6129+", 6.1290000000e+03, 4, +__LINE__, "6129+1", 6.1290000000e+03, 4, +__LINE__, "6129+20", 6.1290000000e+03, 4, +__LINE__, "6129-", 6.1290000000e+03, 4, +__LINE__, "6129-1", 6.1290000000e+03, 4, +__LINE__, "6129-20", 6.1290000000e+03, 4, +__LINE__, "6129e", 6.1290000000e+03, 4, +__LINE__, "6129e+", 6.1290000000e+03, 4, +__LINE__, "6129e-", 6.1290000000e+03, 4, +__LINE__, " +6129e+1", 6.1290000000e+04, 9, +__LINE__, " +6129e1", 6.1290000000e+04, 8, +__LINE__, " 6129e+1", 6.1290000000e+04, 8, +__LINE__, " 6129e1", 6.1290000000e+04, 7, +__LINE__, "+6129e+1", 6.1290000000e+04, 8, +__LINE__, "+6129e1", 6.1290000000e+04, 7, +__LINE__, "6129e+1", 6.1290000000e+04, 7, +__LINE__, "6129e1", 6.1290000000e+04, 6, +__LINE__, " +612.9e+20", 6.1290000000e+22, 11, +__LINE__, " +612.9e20", 6.1290000000e+22, 10, +__LINE__, " 612.9e+20", 6.1290000000e+22, 10, +__LINE__, " 612.9e20", 6.1290000000e+22, 9, +__LINE__, "+612.9e+20", 6.1290000000e+22, 10, +__LINE__, "+612.9e20", 6.1290000000e+22, 9, +__LINE__, "612.9e+20", 6.1290000000e+22, 9, +__LINE__, "612.9e20", 6.1290000000e+22, 8, +__LINE__, " +6129e+20", 6.1290000000e+23, 10, +__LINE__, " +6129e20", 6.1290000000e+23, 9, +__LINE__, " 6129e+20", 6.1290000000e+23, 9, +__LINE__, " 6129e20", 6.1290000000e+23, 8, +__LINE__, "+6129e+20", 6.1290000000e+23, 9, +__LINE__, "+6129e20", 6.1290000000e+23, 8, +__LINE__, "6129e+20", 6.1290000000e+23, 8, +__LINE__, "6129e20", 6.1290000000e+23, 7, +__LINE__, " +612.9e-20", 6.1290000000e-18, 11, +__LINE__, " 612.9e-20", 6.1290000000e-18, 10, +__LINE__, "+612.9e-20", 6.1290000000e-18, 10, +__LINE__, "612.9e-20", 6.1290000000e-18, 9, +__LINE__, " +6129e-20", 6.1290000000e-17, 10, +__LINE__, " 6129e-20", 6.1290000000e-17, 9, +__LINE__, "+6129e-20", 6.1290000000e-17, 9, +__LINE__, "6129e-20", 6.1290000000e-17, 8, +__LINE__, " +612.91", 6.1291000000e+02, 8, +__LINE__, " 612.91", 6.1291000000e+02, 7, +__LINE__, "+612.91", 6.1291000000e+02, 7, +__LINE__, "612.91", 6.1291000000e+02, 6, +__LINE__, " +61291", 6.1291000000e+04, 7, +__LINE__, " 61291", 6.1291000000e+04, 6, +__LINE__, "+61291", 6.1291000000e+04, 6, +__LINE__, "61291", 6.1291000000e+04, 5, +__LINE__, " +612.920", 6.1292000000e+02, 9, +__LINE__, " 612.920", 6.1292000000e+02, 8, +__LINE__, "+612.920", 6.1292000000e+02, 8, +__LINE__, "612.920", 6.1292000000e+02, 7, +__LINE__, " +612920", 6.1292000000e+05, 8, +__LINE__, " 612920", 6.1292000000e+05, 7, +__LINE__, "+612920", 6.1292000000e+05, 7, +__LINE__, "612920", 6.1292000000e+05, 6, +__LINE__, " +08e-20", 8.0000000000e-20, 8, +__LINE__, " +8e-20", 8.0000000000e-20, 7, +__LINE__, " 08e-20", 8.0000000000e-20, 7, +__LINE__, " 8e-20", 8.0000000000e-20, 6, +__LINE__, "+08e-20", 8.0000000000e-20, 7, +__LINE__, "+8e-20", 8.0000000000e-20, 6, +__LINE__, "08e-20", 8.0000000000e-20, 6, +__LINE__, "8e-20", 8.0000000000e-20, 5, +__LINE__, " +.8e-20", 8.0000000000e-21, 8, +__LINE__, " +0.8e-20", 8.0000000000e-21, 9, +__LINE__, " .8e-20", 8.0000000000e-21, 7, +__LINE__, " 0.8e-20", 8.0000000000e-21, 8, +__LINE__, "+.8e-20", 8.0000000000e-21, 7, +__LINE__, "+0.8e-20", 8.0000000000e-21, 8, +__LINE__, ".8e-20", 8.0000000000e-21, 6, +__LINE__, "0.8e-20", 8.0000000000e-21, 7, +__LINE__, " +.8e+1", 8.0000000000e+00, 7, +__LINE__, " +.8e1", 8.0000000000e+00, 6, +__LINE__, " +0.8e+1", 8.0000000000e+00, 8, +__LINE__, " +0.8e1", 8.0000000000e+00, 7, +__LINE__, " +08", 8.0000000000e+00, 4, +__LINE__, " +08+", 8.0000000000e+00, 4, +__LINE__, " +08+1", 8.0000000000e+00, 4, +__LINE__, " +08+20", 8.0000000000e+00, 4, +__LINE__, " +08-", 8.0000000000e+00, 4, +__LINE__, " +08-1", 8.0000000000e+00, 4, +__LINE__, " +08-20", 8.0000000000e+00, 4, +__LINE__, " +08e", 8.0000000000e+00, 4, +__LINE__, " +08e+", 8.0000000000e+00, 4, +__LINE__, " +08e-", 8.0000000000e+00, 4, +__LINE__, " +8", 8.0000000000e+00, 3, +__LINE__, " +8+", 8.0000000000e+00, 3, +__LINE__, " +8+1", 8.0000000000e+00, 3, +__LINE__, " +8+20", 8.0000000000e+00, 3, +__LINE__, " +8-", 8.0000000000e+00, 3, +__LINE__, " +8-1", 8.0000000000e+00, 3, +__LINE__, " +8-20", 8.0000000000e+00, 3, +__LINE__, " +8e", 8.0000000000e+00, 3, +__LINE__, " +8e+", 8.0000000000e+00, 3, +__LINE__, " +8e-", 8.0000000000e+00, 3, +__LINE__, " .8e+1", 8.0000000000e+00, 6, +__LINE__, " .8e1", 8.0000000000e+00, 5, +__LINE__, " 0.8e+1", 8.0000000000e+00, 7, +__LINE__, " 0.8e1", 8.0000000000e+00, 6, +__LINE__, " 08", 8.0000000000e+00, 3, +__LINE__, " 08+", 8.0000000000e+00, 3, +__LINE__, " 08+1", 8.0000000000e+00, 3, +__LINE__, " 08+20", 8.0000000000e+00, 3, +__LINE__, " 08-", 8.0000000000e+00, 3, +__LINE__, " 08-1", 8.0000000000e+00, 3, +__LINE__, " 08-20", 8.0000000000e+00, 3, +__LINE__, " 08e", 8.0000000000e+00, 3, +__LINE__, " 08e+", 8.0000000000e+00, 3, +__LINE__, " 08e-", 8.0000000000e+00, 3, +__LINE__, " 8", 8.0000000000e+00, 2, +__LINE__, " 8+", 8.0000000000e+00, 2, +__LINE__, " 8+1", 8.0000000000e+00, 2, +__LINE__, " 8+20", 8.0000000000e+00, 2, +__LINE__, " 8-", 8.0000000000e+00, 2, +__LINE__, " 8-1", 8.0000000000e+00, 2, +__LINE__, " 8-20", 8.0000000000e+00, 2, +__LINE__, " 8e", 8.0000000000e+00, 2, +__LINE__, " 8e+", 8.0000000000e+00, 2, +__LINE__, " 8e-", 8.0000000000e+00, 2, +__LINE__, "+.8e+1", 8.0000000000e+00, 6, +__LINE__, "+.8e1", 8.0000000000e+00, 5, +__LINE__, "+0.8e+1", 8.0000000000e+00, 7, +__LINE__, "+0.8e1", 8.0000000000e+00, 6, +__LINE__, "+08", 8.0000000000e+00, 3, +__LINE__, "+08+", 8.0000000000e+00, 3, +__LINE__, "+08+1", 8.0000000000e+00, 3, +__LINE__, "+08+20", 8.0000000000e+00, 3, +__LINE__, "+08-", 8.0000000000e+00, 3, +__LINE__, "+08-1", 8.0000000000e+00, 3, +__LINE__, "+08-20", 8.0000000000e+00, 3, +__LINE__, "+08e", 8.0000000000e+00, 3, +__LINE__, "+08e+", 8.0000000000e+00, 3, +__LINE__, "+08e-", 8.0000000000e+00, 3, +__LINE__, "+8", 8.0000000000e+00, 2, +__LINE__, "+8+", 8.0000000000e+00, 2, +__LINE__, "+8+1", 8.0000000000e+00, 2, +__LINE__, "+8+20", 8.0000000000e+00, 2, +__LINE__, "+8-", 8.0000000000e+00, 2, +__LINE__, "+8-1", 8.0000000000e+00, 2, +__LINE__, "+8-20", 8.0000000000e+00, 2, +__LINE__, "+8e", 8.0000000000e+00, 2, +__LINE__, "+8e+", 8.0000000000e+00, 2, +__LINE__, "+8e-", 8.0000000000e+00, 2, +__LINE__, ".8e+1", 8.0000000000e+00, 5, +__LINE__, ".8e1", 8.0000000000e+00, 4, +__LINE__, "0.8e+1", 8.0000000000e+00, 6, +__LINE__, "0.8e1", 8.0000000000e+00, 5, +__LINE__, "08", 8.0000000000e+00, 2, +__LINE__, "08+", 8.0000000000e+00, 2, +__LINE__, "08+1", 8.0000000000e+00, 2, +__LINE__, "08+20", 8.0000000000e+00, 2, +__LINE__, "08-", 8.0000000000e+00, 2, +__LINE__, "08-1", 8.0000000000e+00, 2, +__LINE__, "08-20", 8.0000000000e+00, 2, +__LINE__, "08e", 8.0000000000e+00, 2, +__LINE__, "08e+", 8.0000000000e+00, 2, +__LINE__, "08e-", 8.0000000000e+00, 2, +__LINE__, "8", 8.0000000000e+00, 1, +__LINE__, "8+", 8.0000000000e+00, 1, +__LINE__, "8+1", 8.0000000000e+00, 1, +__LINE__, "8+20", 8.0000000000e+00, 1, +__LINE__, "8-", 8.0000000000e+00, 1, +__LINE__, "8-1", 8.0000000000e+00, 1, +__LINE__, "8-20", 8.0000000000e+00, 1, +__LINE__, "8e", 8.0000000000e+00, 1, +__LINE__, "8e+", 8.0000000000e+00, 1, +__LINE__, "8e-", 8.0000000000e+00, 1, +__LINE__, " +08e+1", 8.0000000000e+01, 7, +__LINE__, " +08e1", 8.0000000000e+01, 6, +__LINE__, " +8e+1", 8.0000000000e+01, 6, +__LINE__, " +8e1", 8.0000000000e+01, 5, +__LINE__, " 08e+1", 8.0000000000e+01, 6, +__LINE__, " 08e1", 8.0000000000e+01, 5, +__LINE__, " 8e+1", 8.0000000000e+01, 5, +__LINE__, " 8e1", 8.0000000000e+01, 4, +__LINE__, "+08e+1", 8.0000000000e+01, 6, +__LINE__, "+08e1", 8.0000000000e+01, 5, +__LINE__, "+8e+1", 8.0000000000e+01, 5, +__LINE__, "+8e1", 8.0000000000e+01, 4, +__LINE__, "08e+1", 8.0000000000e+01, 5, +__LINE__, "08e1", 8.0000000000e+01, 4, +__LINE__, "8e+1", 8.0000000000e+01, 4, +__LINE__, "8e1", 8.0000000000e+01, 3, +__LINE__, " +.8e+20", 8.0000000000e+19, 8, +__LINE__, " +.8e20", 8.0000000000e+19, 7, +__LINE__, " +0.8e+20", 8.0000000000e+19, 9, +__LINE__, " +0.8e20", 8.0000000000e+19, 8, +__LINE__, " .8e+20", 8.0000000000e+19, 7, +__LINE__, " .8e20", 8.0000000000e+19, 6, +__LINE__, " 0.8e+20", 8.0000000000e+19, 8, +__LINE__, " 0.8e20", 8.0000000000e+19, 7, +__LINE__, "+.8e+20", 8.0000000000e+19, 7, +__LINE__, "+.8e20", 8.0000000000e+19, 6, +__LINE__, "+0.8e+20", 8.0000000000e+19, 8, +__LINE__, "+0.8e20", 8.0000000000e+19, 7, +__LINE__, ".8e+20", 8.0000000000e+19, 6, +__LINE__, ".8e20", 8.0000000000e+19, 5, +__LINE__, "0.8e+20", 8.0000000000e+19, 7, +__LINE__, "0.8e20", 8.0000000000e+19, 6, +__LINE__, " +08e+20", 8.0000000000e+20, 8, +__LINE__, " +08e20", 8.0000000000e+20, 7, +__LINE__, " +8e+20", 8.0000000000e+20, 7, +__LINE__, " +8e20", 8.0000000000e+20, 6, +__LINE__, " 08e+20", 8.0000000000e+20, 7, +__LINE__, " 08e20", 8.0000000000e+20, 6, +__LINE__, " 8e+20", 8.0000000000e+20, 6, +__LINE__, " 8e20", 8.0000000000e+20, 5, +__LINE__, "+08e+20", 8.0000000000e+20, 7, +__LINE__, "+08e20", 8.0000000000e+20, 6, +__LINE__, "+8e+20", 8.0000000000e+20, 6, +__LINE__, "+8e20", 8.0000000000e+20, 5, +__LINE__, "08e+20", 8.0000000000e+20, 6, +__LINE__, "08e20", 8.0000000000e+20, 5, +__LINE__, "8e+20", 8.0000000000e+20, 5, +__LINE__, "8e20", 8.0000000000e+20, 4, +__LINE__, " +.8", 8.0000000000e-01, 4, +__LINE__, " +.8+", 8.0000000000e-01, 4, +__LINE__, " +.8+1", 8.0000000000e-01, 4, +__LINE__, " +.8+20", 8.0000000000e-01, 4, +__LINE__, " +.8-", 8.0000000000e-01, 4, +__LINE__, " +.8-1", 8.0000000000e-01, 4, +__LINE__, " +.8-20", 8.0000000000e-01, 4, +__LINE__, " +.8e", 8.0000000000e-01, 4, +__LINE__, " +.8e+", 8.0000000000e-01, 4, +__LINE__, " +.8e-", 8.0000000000e-01, 4, +__LINE__, " +0.8", 8.0000000000e-01, 5, +__LINE__, " +0.8+", 8.0000000000e-01, 5, +__LINE__, " +0.8+1", 8.0000000000e-01, 5, +__LINE__, " +0.8+20", 8.0000000000e-01, 5, +__LINE__, " +0.8-", 8.0000000000e-01, 5, +__LINE__, " +0.8-1", 8.0000000000e-01, 5, +__LINE__, " +0.8-20", 8.0000000000e-01, 5, +__LINE__, " +0.8e", 8.0000000000e-01, 5, +__LINE__, " +0.8e+", 8.0000000000e-01, 5, +__LINE__, " +0.8e-", 8.0000000000e-01, 5, +__LINE__, " +08e-1", 8.0000000000e-01, 7, +__LINE__, " +8e-1", 8.0000000000e-01, 6, +__LINE__, " .8", 8.0000000000e-01, 3, +__LINE__, " .8+", 8.0000000000e-01, 3, +__LINE__, " .8+1", 8.0000000000e-01, 3, +__LINE__, " .8+20", 8.0000000000e-01, 3, +__LINE__, " .8-", 8.0000000000e-01, 3, +__LINE__, " .8-1", 8.0000000000e-01, 3, +__LINE__, " .8-20", 8.0000000000e-01, 3, +__LINE__, " .8e", 8.0000000000e-01, 3, +__LINE__, " .8e+", 8.0000000000e-01, 3, +__LINE__, " .8e-", 8.0000000000e-01, 3, +__LINE__, " 0.8", 8.0000000000e-01, 4, +__LINE__, " 0.8+", 8.0000000000e-01, 4, +__LINE__, " 0.8+1", 8.0000000000e-01, 4, +__LINE__, " 0.8+20", 8.0000000000e-01, 4, +__LINE__, " 0.8-", 8.0000000000e-01, 4, +__LINE__, " 0.8-1", 8.0000000000e-01, 4, +__LINE__, " 0.8-20", 8.0000000000e-01, 4, +__LINE__, " 0.8e", 8.0000000000e-01, 4, +__LINE__, " 0.8e+", 8.0000000000e-01, 4, +__LINE__, " 0.8e-", 8.0000000000e-01, 4, +__LINE__, " 08e-1", 8.0000000000e-01, 6, +__LINE__, " 8e-1", 8.0000000000e-01, 5, +__LINE__, "+.8", 8.0000000000e-01, 3, +__LINE__, "+.8+", 8.0000000000e-01, 3, +__LINE__, "+.8+1", 8.0000000000e-01, 3, +__LINE__, "+.8+20", 8.0000000000e-01, 3, +__LINE__, "+.8-", 8.0000000000e-01, 3, +__LINE__, "+.8-1", 8.0000000000e-01, 3, +__LINE__, "+.8-20", 8.0000000000e-01, 3, +__LINE__, "+.8e", 8.0000000000e-01, 3, +__LINE__, "+.8e+", 8.0000000000e-01, 3, +__LINE__, "+.8e-", 8.0000000000e-01, 3, +__LINE__, "+0.8", 8.0000000000e-01, 4, +__LINE__, "+0.8+", 8.0000000000e-01, 4, +__LINE__, "+0.8+1", 8.0000000000e-01, 4, +__LINE__, "+0.8+20", 8.0000000000e-01, 4, +__LINE__, "+0.8-", 8.0000000000e-01, 4, +__LINE__, "+0.8-1", 8.0000000000e-01, 4, +__LINE__, "+0.8-20", 8.0000000000e-01, 4, +__LINE__, "+0.8e", 8.0000000000e-01, 4, +__LINE__, "+0.8e+", 8.0000000000e-01, 4, +__LINE__, "+0.8e-", 8.0000000000e-01, 4, +__LINE__, "+08e-1", 8.0000000000e-01, 6, +__LINE__, "+8e-1", 8.0000000000e-01, 5, +__LINE__, ".8", 8.0000000000e-01, 2, +__LINE__, ".8+", 8.0000000000e-01, 2, +__LINE__, ".8+1", 8.0000000000e-01, 2, +__LINE__, ".8+20", 8.0000000000e-01, 2, +__LINE__, ".8-", 8.0000000000e-01, 2, +__LINE__, ".8-1", 8.0000000000e-01, 2, +__LINE__, ".8-20", 8.0000000000e-01, 2, +__LINE__, ".8e", 8.0000000000e-01, 2, +__LINE__, ".8e+", 8.0000000000e-01, 2, +__LINE__, ".8e-", 8.0000000000e-01, 2, +__LINE__, "0.8", 8.0000000000e-01, 3, +__LINE__, "0.8+", 8.0000000000e-01, 3, +__LINE__, "0.8+1", 8.0000000000e-01, 3, +__LINE__, "0.8+20", 8.0000000000e-01, 3, +__LINE__, "0.8-", 8.0000000000e-01, 3, +__LINE__, "0.8-1", 8.0000000000e-01, 3, +__LINE__, "0.8-20", 8.0000000000e-01, 3, +__LINE__, "0.8e", 8.0000000000e-01, 3, +__LINE__, "0.8e+", 8.0000000000e-01, 3, +__LINE__, "0.8e-", 8.0000000000e-01, 3, +__LINE__, "08e-1", 8.0000000000e-01, 5, +__LINE__, "8e-1", 8.0000000000e-01, 4, +__LINE__, " +.8e-1", 8.0000000000e-02, 7, +__LINE__, " +0.8e-1", 8.0000000000e-02, 8, +__LINE__, " .8e-1", 8.0000000000e-02, 6, +__LINE__, " 0.8e-1", 8.0000000000e-02, 7, +__LINE__, "+.8e-1", 8.0000000000e-02, 6, +__LINE__, "+0.8e-1", 8.0000000000e-02, 7, +__LINE__, ".8e-1", 8.0000000000e-02, 5, +__LINE__, "0.8e-1", 8.0000000000e-02, 6, +__LINE__, " +081", 8.1000000000e+01, 5, +__LINE__, " +81", 8.1000000000e+01, 4, +__LINE__, " 081", 8.1000000000e+01, 4, +__LINE__, " 81", 8.1000000000e+01, 3, +__LINE__, "+081", 8.1000000000e+01, 4, +__LINE__, "+81", 8.1000000000e+01, 3, +__LINE__, "081", 8.1000000000e+01, 3, +__LINE__, "81", 8.1000000000e+01, 2, +__LINE__, " +.81", 8.1000000000e-01, 5, +__LINE__, " +0.81", 8.1000000000e-01, 6, +__LINE__, " .81", 8.1000000000e-01, 4, +__LINE__, " 0.81", 8.1000000000e-01, 5, +__LINE__, "+.81", 8.1000000000e-01, 4, +__LINE__, "+0.81", 8.1000000000e-01, 5, +__LINE__, ".81", 8.1000000000e-01, 3, +__LINE__, "0.81", 8.1000000000e-01, 4, +__LINE__, " +0820", 8.2000000000e+02, 6, +__LINE__, " +820", 8.2000000000e+02, 5, +__LINE__, " 0820", 8.2000000000e+02, 5, +__LINE__, " 820", 8.2000000000e+02, 4, +__LINE__, "+0820", 8.2000000000e+02, 5, +__LINE__, "+820", 8.2000000000e+02, 4, +__LINE__, "0820", 8.2000000000e+02, 4, +__LINE__, "820", 8.2000000000e+02, 3, +__LINE__, " +.820", 8.2000000000e-01, 6, +__LINE__, " +0.820", 8.2000000000e-01, 7, +__LINE__, " .820", 8.2000000000e-01, 5, +__LINE__, " 0.820", 8.2000000000e-01, 6, +__LINE__, "+.820", 8.2000000000e-01, 5, +__LINE__, "+0.820", 8.2000000000e-01, 6, +__LINE__, ".820", 8.2000000000e-01, 4, +__LINE__, "0.820", 8.2000000000e-01, 5, +__LINE__, " +.9e+1", 9.0000000000e+00, 7, +__LINE__, " +.9e1", 9.0000000000e+00, 6, +__LINE__, " +0.9e+1", 9.0000000000e+00, 8, +__LINE__, " +0.9e1", 9.0000000000e+00, 7, +__LINE__, " +09", 9.0000000000e+00, 4, +__LINE__, " +09+", 9.0000000000e+00, 4, +__LINE__, " +09+1", 9.0000000000e+00, 4, +__LINE__, " +09+20", 9.0000000000e+00, 4, +__LINE__, " +09-", 9.0000000000e+00, 4, +__LINE__, " +09-1", 9.0000000000e+00, 4, +__LINE__, " +09-20", 9.0000000000e+00, 4, +__LINE__, " +09e", 9.0000000000e+00, 4, +__LINE__, " +09e+", 9.0000000000e+00, 4, +__LINE__, " +09e-", 9.0000000000e+00, 4, +__LINE__, " +9", 9.0000000000e+00, 3, +__LINE__, " +9+", 9.0000000000e+00, 3, +__LINE__, " +9+1", 9.0000000000e+00, 3, +__LINE__, " +9+20", 9.0000000000e+00, 3, +__LINE__, " +9-", 9.0000000000e+00, 3, +__LINE__, " +9-1", 9.0000000000e+00, 3, +__LINE__, " +9-20", 9.0000000000e+00, 3, +__LINE__, " +9e", 9.0000000000e+00, 3, +__LINE__, " +9e+", 9.0000000000e+00, 3, +__LINE__, " +9e-", 9.0000000000e+00, 3, +__LINE__, " .9e+1", 9.0000000000e+00, 6, +__LINE__, " .9e1", 9.0000000000e+00, 5, +__LINE__, " 0.9e+1", 9.0000000000e+00, 7, +__LINE__, " 0.9e1", 9.0000000000e+00, 6, +__LINE__, " 09", 9.0000000000e+00, 3, +__LINE__, " 09+", 9.0000000000e+00, 3, +__LINE__, " 09+1", 9.0000000000e+00, 3, +__LINE__, " 09+20", 9.0000000000e+00, 3, +__LINE__, " 09-", 9.0000000000e+00, 3, +__LINE__, " 09-1", 9.0000000000e+00, 3, +__LINE__, " 09-20", 9.0000000000e+00, 3, +__LINE__, " 09e", 9.0000000000e+00, 3, +__LINE__, " 09e+", 9.0000000000e+00, 3, +__LINE__, " 09e-", 9.0000000000e+00, 3, +__LINE__, " 9", 9.0000000000e+00, 2, +__LINE__, " 9+", 9.0000000000e+00, 2, +__LINE__, " 9+1", 9.0000000000e+00, 2, +__LINE__, " 9+20", 9.0000000000e+00, 2, +__LINE__, " 9-", 9.0000000000e+00, 2, +__LINE__, " 9-1", 9.0000000000e+00, 2, +__LINE__, " 9-20", 9.0000000000e+00, 2, +__LINE__, " 9e", 9.0000000000e+00, 2, +__LINE__, " 9e+", 9.0000000000e+00, 2, +__LINE__, " 9e-", 9.0000000000e+00, 2, +__LINE__, "+.9e+1", 9.0000000000e+00, 6, +__LINE__, "+.9e1", 9.0000000000e+00, 5, +__LINE__, "+0.9e+1", 9.0000000000e+00, 7, +__LINE__, "+0.9e1", 9.0000000000e+00, 6, +__LINE__, "+09", 9.0000000000e+00, 3, +__LINE__, "+09+", 9.0000000000e+00, 3, +__LINE__, "+09+1", 9.0000000000e+00, 3, +__LINE__, "+09+20", 9.0000000000e+00, 3, +__LINE__, "+09-", 9.0000000000e+00, 3, +__LINE__, "+09-1", 9.0000000000e+00, 3, +__LINE__, "+09-20", 9.0000000000e+00, 3, +__LINE__, "+09e", 9.0000000000e+00, 3, +__LINE__, "+09e+", 9.0000000000e+00, 3, +__LINE__, "+09e-", 9.0000000000e+00, 3, +__LINE__, "+9", 9.0000000000e+00, 2, +__LINE__, "+9+", 9.0000000000e+00, 2, +__LINE__, "+9+1", 9.0000000000e+00, 2, +__LINE__, "+9+20", 9.0000000000e+00, 2, +__LINE__, "+9-", 9.0000000000e+00, 2, +__LINE__, "+9-1", 9.0000000000e+00, 2, +__LINE__, "+9-20", 9.0000000000e+00, 2, +__LINE__, "+9e", 9.0000000000e+00, 2, +__LINE__, "+9e+", 9.0000000000e+00, 2, +__LINE__, "+9e-", 9.0000000000e+00, 2, +__LINE__, ".9e+1", 9.0000000000e+00, 5, +__LINE__, ".9e1", 9.0000000000e+00, 4, +__LINE__, "0.9e+1", 9.0000000000e+00, 6, +__LINE__, "0.9e1", 9.0000000000e+00, 5, +__LINE__, "09", 9.0000000000e+00, 2, +__LINE__, "09+", 9.0000000000e+00, 2, +__LINE__, "09+1", 9.0000000000e+00, 2, +__LINE__, "09+20", 9.0000000000e+00, 2, +__LINE__, "09-", 9.0000000000e+00, 2, +__LINE__, "09-1", 9.0000000000e+00, 2, +__LINE__, "09-20", 9.0000000000e+00, 2, +__LINE__, "09e", 9.0000000000e+00, 2, +__LINE__, "09e+", 9.0000000000e+00, 2, +__LINE__, "09e-", 9.0000000000e+00, 2, +__LINE__, "9", 9.0000000000e+00, 1, +__LINE__, "9+", 9.0000000000e+00, 1, +__LINE__, "9+1", 9.0000000000e+00, 1, +__LINE__, "9+20", 9.0000000000e+00, 1, +__LINE__, "9-", 9.0000000000e+00, 1, +__LINE__, "9-1", 9.0000000000e+00, 1, +__LINE__, "9-20", 9.0000000000e+00, 1, +__LINE__, "9e", 9.0000000000e+00, 1, +__LINE__, "9e+", 9.0000000000e+00, 1, +__LINE__, "9e-", 9.0000000000e+00, 1, +__LINE__, " +09e+1", 9.0000000000e+01, 7, +__LINE__, " +09e1", 9.0000000000e+01, 6, +__LINE__, " +9e+1", 9.0000000000e+01, 6, +__LINE__, " +9e1", 9.0000000000e+01, 5, +__LINE__, " 09e+1", 9.0000000000e+01, 6, +__LINE__, " 09e1", 9.0000000000e+01, 5, +__LINE__, " 9e+1", 9.0000000000e+01, 5, +__LINE__, " 9e1", 9.0000000000e+01, 4, +__LINE__, "+09e+1", 9.0000000000e+01, 6, +__LINE__, "+09e1", 9.0000000000e+01, 5, +__LINE__, "+9e+1", 9.0000000000e+01, 5, +__LINE__, "+9e1", 9.0000000000e+01, 4, +__LINE__, "09e+1", 9.0000000000e+01, 5, +__LINE__, "09e1", 9.0000000000e+01, 4, +__LINE__, "9e+1", 9.0000000000e+01, 4, +__LINE__, "9e1", 9.0000000000e+01, 3, +__LINE__, " +.9e+20", 9.0000000000e+19, 8, +__LINE__, " +.9e20", 9.0000000000e+19, 7, +__LINE__, " +0.9e+20", 9.0000000000e+19, 9, +__LINE__, " +0.9e20", 9.0000000000e+19, 8, +__LINE__, " .9e+20", 9.0000000000e+19, 7, +__LINE__, " .9e20", 9.0000000000e+19, 6, +__LINE__, " 0.9e+20", 9.0000000000e+19, 8, +__LINE__, " 0.9e20", 9.0000000000e+19, 7, +__LINE__, "+.9e+20", 9.0000000000e+19, 7, +__LINE__, "+.9e20", 9.0000000000e+19, 6, +__LINE__, "+0.9e+20", 9.0000000000e+19, 8, +__LINE__, "+0.9e20", 9.0000000000e+19, 7, +__LINE__, ".9e+20", 9.0000000000e+19, 6, +__LINE__, ".9e20", 9.0000000000e+19, 5, +__LINE__, "0.9e+20", 9.0000000000e+19, 7, +__LINE__, "0.9e20", 9.0000000000e+19, 6, +__LINE__, " +09e+20", 9.0000000000e+20, 8, +__LINE__, " +09e20", 9.0000000000e+20, 7, +__LINE__, " +9e+20", 9.0000000000e+20, 7, +__LINE__, " +9e20", 9.0000000000e+20, 6, +__LINE__, " 09e+20", 9.0000000000e+20, 7, +__LINE__, " 09e20", 9.0000000000e+20, 6, +__LINE__, " 9e+20", 9.0000000000e+20, 6, +__LINE__, " 9e20", 9.0000000000e+20, 5, +__LINE__, "+09e+20", 9.0000000000e+20, 7, +__LINE__, "+09e20", 9.0000000000e+20, 6, +__LINE__, "+9e+20", 9.0000000000e+20, 6, +__LINE__, "+9e20", 9.0000000000e+20, 5, +__LINE__, "09e+20", 9.0000000000e+20, 6, +__LINE__, "09e20", 9.0000000000e+20, 5, +__LINE__, "9e+20", 9.0000000000e+20, 5, +__LINE__, "9e20", 9.0000000000e+20, 4, +__LINE__, " +.9", 9.0000000000e-01, 4, +__LINE__, " +.9+", 9.0000000000e-01, 4, +__LINE__, " +.9+1", 9.0000000000e-01, 4, +__LINE__, " +.9+20", 9.0000000000e-01, 4, +__LINE__, " +.9-", 9.0000000000e-01, 4, +__LINE__, " +.9-1", 9.0000000000e-01, 4, +__LINE__, " +.9-20", 9.0000000000e-01, 4, +__LINE__, " +.9e", 9.0000000000e-01, 4, +__LINE__, " +.9e+", 9.0000000000e-01, 4, +__LINE__, " +.9e-", 9.0000000000e-01, 4, +__LINE__, " +0.9", 9.0000000000e-01, 5, +__LINE__, " +0.9+", 9.0000000000e-01, 5, +__LINE__, " +0.9+1", 9.0000000000e-01, 5, +__LINE__, " +0.9+20", 9.0000000000e-01, 5, +__LINE__, " +0.9-", 9.0000000000e-01, 5, +__LINE__, " +0.9-1", 9.0000000000e-01, 5, +__LINE__, " +0.9-20", 9.0000000000e-01, 5, +__LINE__, " +0.9e", 9.0000000000e-01, 5, +__LINE__, " +0.9e+", 9.0000000000e-01, 5, +__LINE__, " +0.9e-", 9.0000000000e-01, 5, +__LINE__, " +09e-1", 9.0000000000e-01, 7, +__LINE__, " +9e-1", 9.0000000000e-01, 6, +__LINE__, " .9", 9.0000000000e-01, 3, +__LINE__, " .9+", 9.0000000000e-01, 3, +__LINE__, " .9+1", 9.0000000000e-01, 3, +__LINE__, " .9+20", 9.0000000000e-01, 3, +__LINE__, " .9-", 9.0000000000e-01, 3, +__LINE__, " .9-1", 9.0000000000e-01, 3, +__LINE__, " .9-20", 9.0000000000e-01, 3, +__LINE__, " .9e", 9.0000000000e-01, 3, +__LINE__, " .9e+", 9.0000000000e-01, 3, +__LINE__, " .9e-", 9.0000000000e-01, 3, +__LINE__, " 0.9", 9.0000000000e-01, 4, +__LINE__, " 0.9+", 9.0000000000e-01, 4, +__LINE__, " 0.9+1", 9.0000000000e-01, 4, +__LINE__, " 0.9+20", 9.0000000000e-01, 4, +__LINE__, " 0.9-", 9.0000000000e-01, 4, +__LINE__, " 0.9-1", 9.0000000000e-01, 4, +__LINE__, " 0.9-20", 9.0000000000e-01, 4, +__LINE__, " 0.9e", 9.0000000000e-01, 4, +__LINE__, " 0.9e+", 9.0000000000e-01, 4, +__LINE__, " 0.9e-", 9.0000000000e-01, 4, +__LINE__, " 09e-1", 9.0000000000e-01, 6, +__LINE__, " 9e-1", 9.0000000000e-01, 5, +__LINE__, "+.9", 9.0000000000e-01, 3, +__LINE__, "+.9+", 9.0000000000e-01, 3, +__LINE__, "+.9+1", 9.0000000000e-01, 3, +__LINE__, "+.9+20", 9.0000000000e-01, 3, +__LINE__, "+.9-", 9.0000000000e-01, 3, +__LINE__, "+.9-1", 9.0000000000e-01, 3, +__LINE__, "+.9-20", 9.0000000000e-01, 3, +__LINE__, "+.9e", 9.0000000000e-01, 3, +__LINE__, "+.9e+", 9.0000000000e-01, 3, +__LINE__, "+.9e-", 9.0000000000e-01, 3, +__LINE__, "+0.9", 9.0000000000e-01, 4, +__LINE__, "+0.9+", 9.0000000000e-01, 4, +__LINE__, "+0.9+1", 9.0000000000e-01, 4, +__LINE__, "+0.9+20", 9.0000000000e-01, 4, +__LINE__, "+0.9-", 9.0000000000e-01, 4, +__LINE__, "+0.9-1", 9.0000000000e-01, 4, +__LINE__, "+0.9-20", 9.0000000000e-01, 4, +__LINE__, "+0.9e", 9.0000000000e-01, 4, +__LINE__, "+0.9e+", 9.0000000000e-01, 4, +__LINE__, "+0.9e-", 9.0000000000e-01, 4, +__LINE__, "+09e-1", 9.0000000000e-01, 6, +__LINE__, "+9e-1", 9.0000000000e-01, 5, +__LINE__, ".9", 9.0000000000e-01, 2, +__LINE__, ".9+", 9.0000000000e-01, 2, +__LINE__, ".9+1", 9.0000000000e-01, 2, +__LINE__, ".9+20", 9.0000000000e-01, 2, +__LINE__, ".9-", 9.0000000000e-01, 2, +__LINE__, ".9-1", 9.0000000000e-01, 2, +__LINE__, ".9-20", 9.0000000000e-01, 2, +__LINE__, ".9e", 9.0000000000e-01, 2, +__LINE__, ".9e+", 9.0000000000e-01, 2, +__LINE__, ".9e-", 9.0000000000e-01, 2, +__LINE__, "0.9", 9.0000000000e-01, 3, +__LINE__, "0.9+", 9.0000000000e-01, 3, +__LINE__, "0.9+1", 9.0000000000e-01, 3, +__LINE__, "0.9+20", 9.0000000000e-01, 3, +__LINE__, "0.9-", 9.0000000000e-01, 3, +__LINE__, "0.9-1", 9.0000000000e-01, 3, +__LINE__, "0.9-20", 9.0000000000e-01, 3, +__LINE__, "0.9e", 9.0000000000e-01, 3, +__LINE__, "0.9e+", 9.0000000000e-01, 3, +__LINE__, "0.9e-", 9.0000000000e-01, 3, +__LINE__, "09e-1", 9.0000000000e-01, 5, +__LINE__, "9e-1", 9.0000000000e-01, 4, +__LINE__, " +.9e-1", 9.0000000000e-02, 7, +__LINE__, " +0.9e-1", 9.0000000000e-02, 8, +__LINE__, " .9e-1", 9.0000000000e-02, 6, +__LINE__, " 0.9e-1", 9.0000000000e-02, 7, +__LINE__, "+.9e-1", 9.0000000000e-02, 6, +__LINE__, "+0.9e-1", 9.0000000000e-02, 7, +__LINE__, ".9e-1", 9.0000000000e-02, 5, +__LINE__, "0.9e-1", 9.0000000000e-02, 6, +__LINE__, " +09e-20", 9.0000000000e-20, 8, +__LINE__, " +9e-20", 9.0000000000e-20, 7, +__LINE__, " 09e-20", 9.0000000000e-20, 7, +__LINE__, " 9e-20", 9.0000000000e-20, 6, +__LINE__, "+09e-20", 9.0000000000e-20, 7, +__LINE__, "+9e-20", 9.0000000000e-20, 6, +__LINE__, "09e-20", 9.0000000000e-20, 6, +__LINE__, "9e-20", 9.0000000000e-20, 5, +__LINE__, " +.9e-20", 9.0000000000e-21, 8, +__LINE__, " +0.9e-20", 9.0000000000e-21, 9, +__LINE__, " .9e-20", 9.0000000000e-21, 7, +__LINE__, " 0.9e-20", 9.0000000000e-21, 8, +__LINE__, "+.9e-20", 9.0000000000e-21, 7, +__LINE__, "+0.9e-20", 9.0000000000e-21, 8, +__LINE__, ".9e-20", 9.0000000000e-21, 6, +__LINE__, "0.9e-20", 9.0000000000e-21, 7, +__LINE__, " +091", 9.1000000000e+01, 5, +__LINE__, " +91", 9.1000000000e+01, 4, +__LINE__, " 091", 9.1000000000e+01, 4, +__LINE__, " 91", 9.1000000000e+01, 3, +__LINE__, "+091", 9.1000000000e+01, 4, +__LINE__, "+91", 9.1000000000e+01, 3, +__LINE__, "091", 9.1000000000e+01, 3, +__LINE__, "91", 9.1000000000e+01, 2, +__LINE__, " +.91", 9.1000000000e-01, 5, +__LINE__, " +0.91", 9.1000000000e-01, 6, +__LINE__, " .91", 9.1000000000e-01, 4, +__LINE__, " 0.91", 9.1000000000e-01, 5, +__LINE__, "+.91", 9.1000000000e-01, 4, +__LINE__, "+0.91", 9.1000000000e-01, 5, +__LINE__, ".91", 9.1000000000e-01, 3, +__LINE__, "0.91", 9.1000000000e-01, 4, +__LINE__, " +0920", 9.2000000000e+02, 6, +__LINE__, " +920", 9.2000000000e+02, 5, +__LINE__, " 0920", 9.2000000000e+02, 5, +__LINE__, " 920", 9.2000000000e+02, 4, +__LINE__, "+0920", 9.2000000000e+02, 5, +__LINE__, "+920", 9.2000000000e+02, 4, +__LINE__, "0920", 9.2000000000e+02, 4, +__LINE__, "920", 9.2000000000e+02, 3, +__LINE__, " +.920", 9.2000000000e-01, 6, +__LINE__, " +0.920", 9.2000000000e-01, 7, +__LINE__, " .920", 9.2000000000e-01, 5, +__LINE__, " 0.920", 9.2000000000e-01, 6, +#endif +__LINE__, "+.920", 9.2000000000e-01, 5, +__LINE__, "+0.920", 9.2000000000e-01, 6, +__LINE__, ".920", 9.2000000000e-01, 4, +__LINE__, "0.920", 9.2000000000e-01, 5, +__LINE__, " 1.234*", 1.2340000000e+00, 9, +__LINE__, " 87.23*", 8.7230000000e+01, 7, +__LINE__, " 1267*abc", 1.2670000000e+03, 5, +__LINE__, " 1267*abc", 1.2670000000e+03, 5, +0 +}; + + diff --git a/newlib/libm/test/convert.c b/newlib/libm/test/convert.c new file mode 100644 index 000000000..51bddfdfe --- /dev/null +++ b/newlib/libm/test/convert.c @@ -0,0 +1,366 @@ +/* Test conversions */ + +#include "test.h" +#include <stdlib.h> +#include <errno.h> + +static char buffer[500]; + +extern double_type doubles[]; + +/* TEST ATOF ATOFF */ + +double_type *pd = doubles; + +void +_DEFUN_VOID(test_strtod) +{ + char *tail; + double v; + /* On average we'll loose 1/2 a bit, so the test is for within 1 bit */ + v = strtod(pd->string, &tail); + test_mok(v, pd->value, 64); + test_iok(tail - pd->string, pd->endscan); +} + +void +_DEFUN_VOID(test_strtodf) +{ + char *tail; + double v; + /* On average we'll loose 1/2 a bit, so the test is for within 1 bit */ + v = strtodf(pd->string, &tail); + test_mok(v, pd->value, 32); + test_iok(tail - pd->string, pd->endscan); +} + +void +_DEFUN_VOID(test_atof) +{ + test_mok(atof(pd->string), pd->value, 64); +} + +void +_DEFUN_VOID(test_atoff) +{ + test_mok(atoff(pd->string), pd->value, 32); +} + + +static +void +_DEFUN(iterate,(func, name), + void _EXFUN((*func),(void)) _AND + char *name) +{ + + newfunc(name); + pd = doubles; + while (pd->string) { + line(pd->line); + func(); + pd++; + } +} + + +extern int_type ints[]; + +int_type *p = ints; + + +static void +_DEFUN(int_iterate,(func, name), + void (*func)() _AND + char *name) +{ + newfunc(name); + + p = ints; + while (p->string) { + line(p->line); + errno = 0; + func(); + p++; + } +} + +void +_DEFUN(test_strtol_base,(base, pi, string), + int base _AND + int_scan_type *pi _AND + char *string) +{ + long r; + char *ptr; + errno = 0; + r = strtol(string, &ptr, base); + test_iok(r, pi->value); + test_eok(errno, pi->errno_val); + test_iok(ptr - string, pi->end); +} + +void +_DEFUN_VOID(test_strtol) +{ + test_strtol_base(8,&(p->octal), p->string); + test_strtol_base(10,&(p->decimal), p->string); + test_strtol_base(16, &(p->hex), p->string); + test_strtol_base(0, &(p->normal), p->string); + test_strtol_base(26, &(p->alphabetical), p->string); +} + +void +_DEFUN_VOID(test_atoi) +{ + test_iok(atoi(p->string), p->decimal.value); + test_eok(errno, p->decimal.errno_val); +} + +void +_DEFUN_VOID(test_atol) +{ + test_iok(atol(p->string), p->decimal.value); + test_eok(errno, p->decimal.errno_val); +} + +/* test ECVT and friends */ +extern ddouble_type ddoubles[]; +ddouble_type *pdd; +void +_DEFUN_VOID(test_ecvtbuf) +{ + int a2,a3; + char *s; + s = ecvtbuf(pdd->value, pdd->e1, &a2, &a3, buffer); + + test_sok(s,pdd->estring); + test_iok(pdd->e2,a2); + test_iok(pdd->e3,a3); +} + +void +_DEFUN_VOID(test_ecvt) +{ + int a2,a3; + char *s; + s = ecvt(pdd->value, pdd->e1, &a2, &a3); + + test_sok(s,pdd->estring); + test_iok(pdd->e2,a2); + test_iok(pdd->e3,a3); + + s = ecvtf(pdd->value, pdd->e1, &a2, &a3); + + test_sok(s,pdd->estring); + test_iok(pdd->e2,a2); + test_iok(pdd->e3,a3); +} + +void +_DEFUN_VOID(test_fcvtbuf) +{ + int a2,a3; + char *s; + s = fcvtbuf(pdd->value, pdd->f1, &a2, &a3, buffer); + + test_scok(s,pdd->fstring,10); + test_iok(pdd->f2,a2); + test_iok(pdd->f3,a3); +} + +void +_DEFUN_VOID(test_gcvt) +{ + char *s = gcvt(pdd->value, pdd->g1, buffer); + test_scok(s, pdd->gstring, 9); + + s = gcvtf(pdd->value, pdd->g1, buffer); + test_scok(s, pdd->gstring, 9); + +} + +void +_DEFUN_VOID(test_fcvt) +{ + int a2,a3; + char *sd; + char *sf; + double v1; + double v2; + sd = fcvt(pdd->value, pdd->f1, &a2, &a3); + + test_scok(sd,pdd->fstring,10); + test_iok(pdd->f2,a2); + test_iok(pdd->f3,a3); + + /* Test the float version by converting and inspecting the numbers 3 + after reconverting */ + sf = fcvtf(pdd->value, pdd->f1, &a2, &a3); + sscanf(sd, "%lg", &v1); + sscanf(sf, "%lg", &v2); + test_mok(v1, v2,32); + test_iok(pdd->f2,a2); + test_iok(pdd->f3,a3); +} + +static void + +_DEFUN(diterate,(func, name), + void (*func)() _AND + char *name) +{ + newfunc(name); + + pdd = ddoubles; + while (pdd->estring) { + line(pdd->line); + errno = 0; + func(); + pdd++; + } +} + + +void +_DEFUN_VOID(deltest) +{ + newfunc("rounding"); + line(1); + sprintf(buffer,"%.2f", 9.999); + test_sok(buffer,"10.00"); + line(2); + sprintf(buffer,"%.2g", 1.0); + test_sok(buffer,"1"); + line(3); + sprintf(buffer,"%.2g", 1.2e-6); + test_sok(buffer,"1.2e-06"); + line(4); + sprintf(buffer,"%.0g", 1.0); + test_sok(buffer,"1"); + line(5); + sprintf(buffer,"%.0e",1e1); + test_sok(buffer,"1e+01"); + line(6); + sprintf(buffer, "%f", 12.3456789); + test_sok(buffer, "12.345679"); + line(7); + sprintf(buffer, "%6.3f", 12.3456789); + test_sok(buffer, "12.346"); + line(8); + sprintf(buffer,"%.0f", 12.3456789); + test_sok(buffer,"12"); +} + +/* Most of what sprint does is tested with the tests of + fcvt/ecvt/gcvt, but here are some more */ +void +_DEFUN_VOID(test_sprint) +{ + extern sprint_double_type sprint_doubles[]; + sprint_double_type *s = sprint_doubles; + extern sprint_int_type sprint_ints[]; + sprint_int_type *si = sprint_ints; + + + newfunc( "sprintf"); + + + while (s->line) + { + line( s->line); + sprintf(buffer, s->format_string, s->value); + test_scok(buffer, s->result, 12); /* Only check the first 12 digs, + other stuff is random */ + s++; + } + + while (si->line) + { + line( si->line); + sprintf(buffer, si->format_string, si->value); + test_sok(buffer, si->result); + si++; + } +} + +/* Scanf calls strtod etc tested elsewhere, but also has some pattern matching skills */ +void +_DEFUN_VOID(test_scan) +{ + int i,j; + extern sprint_double_type sprint_doubles[]; + sprint_double_type *s = sprint_doubles; + extern sprint_int_type sprint_ints[]; + sprint_int_type *si = sprint_ints; + + newfunc( "scanf"); + + /* Test scanf by converting all the numbers in the sprint vectors + to and from their source and making sure nothing breaks */ + + while (s->line) + { + + double d0,d1; + line( s->line); + sscanf(s->result, "%lg", &d0); + sprintf(buffer, "%20.17e", d0); + sscanf(buffer, "%lg", &d1); + test_mok(d0,d1, 64); + s++; + } + + /* And integers too */ + while (si->line) + { + + long d0,d1; + + line(si->line); + sscanf(si->result, "%d", &d0); + sprintf(buffer, "%d", d0); + sscanf(buffer, "%d", &d1); + test_iok(d0,d1); + si++; + } + + /* And the string matching */ + + sscanf(" 9","%d", &i); + test_iok(i, 9); + sscanf("foo bar 123 zap 456","foo bar %d zap %d", &i, &j); + test_iok(i, 123); + test_iok(j, 456); + + sscanf("magicXYZZYfoobar","magic%[XYZ]", buffer); + test_sok("XYZZY", buffer); + sscanf("magicXYZZYfoobar","%[^XYZ]", buffer); + test_sok("magic", buffer); +} + +void +_DEFUN_VOID(test_cvt) +{ + deltest(); + + diterate(test_fcvtbuf,"fcvtbuf"); + diterate(test_fcvt,"fcvt/fcvtf"); + + diterate(test_gcvt,"gcvt/gcvtf"); + diterate(test_ecvtbuf,"ecvtbuf"); + diterate(test_ecvt,"ecvt/ecvtf"); + + iterate(test_strtod, "strtod"); + + test_scan(); + test_sprint(); + iterate(test_atof, "atof"); + iterate(test_atoff, "atoff"); + + iterate(test_strtodf, "strtodf"); + + int_iterate(test_atoi,"atoi"); + int_iterate(test_atol,"atol"); + int_iterate(test_strtol, "strtol"); +} diff --git a/newlib/libm/test/cos_vec.c b/newlib/libm/test/cos_vec.c new file mode 100644 index 000000000..37d669eef --- /dev/null +++ b/newlib/libm/test/cos_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type cos_vec[] = { +{64, 0,123,__LINE__, 0x3fd730de, 0x943b79d3, 0xbff33333, 0x33333333}, /* 0.36235=f(-1.20000)*/ +{64, 0,123,__LINE__, 0x3fd7c946, 0x7d260cb9, 0xbff30a3d, 0x70a3d70a}, /* 0.37165=f(-1.19000)*/ +{64, 0,123,__LINE__, 0x3fd86112, 0x83b8fab2, 0xbff2e147, 0xae147ae1}, /* 0.38092=f(-1.18000)*/ +{64, 0,123,__LINE__, 0x3fd8f83e, 0xc5255294, 0xbff2b851, 0xeb851eb8}, /* 0.39015=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3fd98ec7, 0x62b332c4, 0xbff28f5c, 0x28f5c28f}, /* 0.39933=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3fda24a8, 0x81db25ea, 0xbff26666, 0x66666666}, /* 0.40848=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3fdab9de, 0x4c5f6433, 0xbff23d70, 0xa3d70a3d}, /* 0.41759=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3fdb4e64, 0xf064f880, 0xbff2147a, 0xe147ae14}, /* 0.42665=f(-1.13000)*/ +{64, 0,123,__LINE__, 0x3fdbe238, 0xa08cc8cd, 0xbff1eb85, 0x1eb851eb}, /* 0.43568=f(-1.12000)*/ +{64, 0,123,__LINE__, 0x3fdc7555, 0x940c813b, 0xbff1c28f, 0x5c28f5c2}, /* 0.44466=f(-1.11000)*/ +{64, 0,123,__LINE__, 0x3fdd07b8, 0x06c76113, 0xbff19999, 0x99999999}, /* 0.45359=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fdd995c, 0x3966e922, 0xbff170a3, 0xd70a3d70}, /* 0.46248=f(-1.09000)*/ +{64, 0,123,__LINE__, 0x3fde2a3e, 0x71736ac6, 0xbff147ae, 0x147ae147}, /* 0.47132=f(-1.08000)*/ +{64, 0,123,__LINE__, 0x3fdeba5a, 0xf96c7715, 0xbff11eb8, 0x51eb851e}, /* 0.48012=f(-1.07000)*/ +{64, 0,123,__LINE__, 0x3fdf49ae, 0x20e12d7c, 0xbff0f5c2, 0x8f5c28f5}, /* 0.48887=f(-1.06000)*/ +{64, 0,123,__LINE__, 0x3fdfd834, 0x3c886925, 0xbff0cccc, 0xcccccccc}, /* 0.49757=f(-1.05000)*/ +{64, 0,123,__LINE__, 0x3fe032f4, 0xd32c6654, 0xbff0a3d7, 0x0a3d70a3}, /* 0.50622=f(-1.04000)*/ +{64, 0,123,__LINE__, 0x3fe07965, 0x5ed055a1, 0xbff07ae1, 0x47ae147a}, /* 0.51481=f(-1.03000)*/ +{64, 0,123,__LINE__, 0x3fe0bf69, 0xf38ee78d, 0xbff051eb, 0x851eb851}, /* 0.52336=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3fe10500, 0xc68a8dee, 0xbff028f5, 0xc28f5c28}, /* 0.53186=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x3fe14a28, 0x0fb5068d, 0xbfefffff, 0xfffffffe}, /* 0.54030=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x3fe18ede, 0x09db07f0, 0xbfefae14, 0x7ae147ac}, /* 0.54868=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3fe1d320, 0xf2afdb6b, 0xbfef5c28, 0xf5c28f5a}, /* 0.55702=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3fe216ef, 0x0ad8e431, 0xbfef0a3d, 0x70a3d708}, /* 0.56529=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3fe25a46, 0x95f91311, 0xbfeeb851, 0xeb851eb6}, /* 0.57351=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x3fe29d25, 0xdabc46a3, 0xbfee6666, 0x66666664}, /* 0.58168=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3fe2df8b, 0x22e29787, 0xbfee147a, 0xe147ae12}, /* 0.58978=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x3fe32174, 0xbb4b9082, 0xbfedc28f, 0x5c28f5c0}, /* 0.59783=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x3fe362e0, 0xf4015217, 0xbfed70a3, 0xd70a3d6e}, /* 0.60582=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x3fe3a3ce, 0x2043a16d, 0xbfed1eb8, 0x51eb851c}, /* 0.61374=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3fe3e43a, 0x9692e21e, 0xbfeccccc, 0xccccccca}, /* 0.62160=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x3fe42424, 0xb0bafac6, 0xbfec7ae1, 0x47ae1478}, /* 0.62941=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x3fe4638a, 0xcbde23e8, 0xbfec28f5, 0xc28f5c26}, /* 0.63715=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3fe4a26b, 0x487fa104, 0xbfebd70a, 0x3d70a3d4}, /* 0.64482=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x3fe4e0c4, 0x8a8e637d, 0xbfeb851e, 0xb851eb82}, /* 0.65243=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x3fe51e94, 0xf96f971d, 0xbfeb3333, 0x33333330}, /* 0.65998=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x3fe55bdb, 0x000917dd, 0xbfeae147, 0xae147ade}, /* 0.66746=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x3fe59895, 0x0ccbd0c8, 0xbfea8f5c, 0x28f5c28c}, /* 0.67487=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fe5d4c1, 0x91be0397, 0xbfea3d70, 0xa3d70a3a}, /* 0.68222=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3fe6105f, 0x048578dc, 0xbfe9eb85, 0x1eb851e8}, /* 0.68949=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3fe64b6b, 0xde719867, 0xbfe99999, 0x99999996}, /* 0.69670=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3fe685e6, 0x9c8569b2, 0xbfe947ae, 0x147ae144}, /* 0.70384=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3fe6bfcd, 0xbf817bfd, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.71091=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3fe6f91f, 0xcbedb5fa, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.71791=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3fe731db, 0x4a230ca5, 0xbfe851eb, 0x851eb84e}, /* 0.72483=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x3fe769fe, 0xc6552121, 0xbfe7ffff, 0xfffffffc}, /* 0.73168=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x3fe7a188, 0xd09bc551, 0xbfe7ae14, 0x7ae147aa}, /* 0.73846=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3fe7d877, 0xfcfc66ef, 0xbfe75c28, 0xf5c28f58}, /* 0.74517=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3fe80eca, 0xe37360e8, 0xbfe70a3d, 0x70a3d706}, /* 0.75180=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3fe84480, 0x1ffd32b8, 0xbfe6b851, 0xeb851eb4}, /* 0.75836=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3fe87996, 0x529f9d95, 0xbfe66666, 0x66666662}, /* 0.76484=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x3fe8ae0c, 0x1f72a71d, 0xbfe6147a, 0xe147ae10}, /* 0.77124=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3fe8e1e0, 0x2ea98160, 0xbfe5c28f, 0x5c28f5be}, /* 0.77757=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3fe91511, 0x2c9b57f7, 0xbfe570a3, 0xd70a3d6c}, /* 0.78382=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3fe9479d, 0xc9cc0203, 0xbfe51eb8, 0x51eb851a}, /* 0.78999=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x3fe97984, 0xbaf498c4, 0xbfe4cccc, 0xccccccc8}, /* 0.79608=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x3fe9aac4, 0xb90bf2aa, 0xbfe47ae1, 0x47ae1476}, /* 0.80209=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3fe9db5c, 0x814f028e, 0xbfe428f5, 0xc28f5c24}, /* 0.80802=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3fea0b4a, 0xd5491aef, 0xbfe3d70a, 0x3d70a3d2}, /* 0.81387=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3fea3a8e, 0x7adc14f9, 0xbfe3851e, 0xb851eb80}, /* 0.81964=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3fea6926, 0x3c485b17, 0xbfe33333, 0x3333332e}, /* 0.82533=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fea9710, 0xe834d6e9, 0xbfe2e147, 0xae147adc}, /* 0.83094=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3feac44d, 0x51b6c25e, 0xbfe28f5c, 0x28f5c28a}, /* 0.83646=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x3feaf0da, 0x50595bc8, 0xbfe23d70, 0xa3d70a38}, /* 0.84190=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3feb1cb6, 0xc0257cb5, 0xbfe1eb85, 0x1eb851e6}, /* 0.84725=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3feb47e1, 0x81a91353, 0xbfe19999, 0x99999994}, /* 0.85252=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x3feb7259, 0x79fe7e3e, 0xbfe147ae, 0x147ae142}, /* 0.85770=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3feb9c1d, 0x92d3ca78, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.86280=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3febc52c, 0xba71d366, 0xbfe0a3d7, 0x0a3d709e}, /* 0.86781=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x3febed85, 0xe3c3449c, 0xbfe051eb, 0x851eb84c}, /* 0.87274=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3fec1528, 0x065b7d52, 0xbfdfffff, 0xfffffff4}, /* 0.87758=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3fec3c12, 0x1e7d5552, 0xbfdf5c28, 0xf5c28f50}, /* 0.88233=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x3fec6243, 0x2d21c327, 0xbfdeb851, 0xeb851eac}, /* 0.88699=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fec87ba, 0x37fe6377, 0xbfde147a, 0xe147ae08}, /* 0.89156=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3fecac76, 0x498be14e, 0xbfdd70a3, 0xd70a3d64}, /* 0.89605=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x3fecd076, 0x710c3f30, 0xbfdccccc, 0xccccccc0}, /* 0.90044=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fecf3b9, 0xc29100d2, 0xbfdc28f5, 0xc28f5c1c}, /* 0.90475=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3fed163f, 0x5701354b, 0xbfdb851e, 0xb851eb78}, /* 0.90896=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3fed3806, 0x4c1f6194, 0xbfdae147, 0xae147ad4}, /* 0.91308=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3fed590d, 0xc48f4b35, 0xbfda3d70, 0xa3d70a30}, /* 0.91712=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3fed7954, 0xe7dba2fa, 0xbfd99999, 0x9999998c}, /* 0.92106=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3fed98da, 0xe27b8f80, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.92490=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3fedb79e, 0xe5d81784, 0xbfd851eb, 0x851eb844}, /* 0.92866=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3fedd5a0, 0x28516bca, 0xbfd7ae14, 0x7ae147a0}, /* 0.93232=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3fedf2dd, 0xe5441076, 0xbfd70a3d, 0x70a3d6fc}, /* 0.93589=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3fee0f57, 0x5d0de5ba, 0xbfd66666, 0x66666658}, /* 0.93937=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3fee2b0b, 0xd5130fb4, 0xbfd5c28f, 0x5c28f5b4}, /* 0.94275=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3fee45fa, 0x97c2bd66, 0xbfd51eb8, 0x51eb8510}, /* 0.94604=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3fee6022, 0xf49bce9e, 0xbfd47ae1, 0x47ae146c}, /* 0.94923=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3fee7984, 0x403158a4, 0xbfd3d70a, 0x3d70a3c8}, /* 0.95233=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3fee921d, 0xd42f09bc, 0xbfd33333, 0x33333324}, /* 0.95533=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3feea9ef, 0x0f5d6b28, 0xbfd28f5c, 0x28f5c280}, /* 0.95824=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3feec0f7, 0x55a601b4, 0xbfd1eb85, 0x1eb851dc}, /* 0.96105=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3feed736, 0x10174ca4, 0xbfd147ae, 0x147ae138}, /* 0.96377=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3feeecaa, 0xace8a2f0, 0xbfd0a3d7, 0x0a3d7094}, /* 0.96638=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3fef0154, 0x9f7deea3, 0xbfcfffff, 0xffffffe0}, /* 0.96891=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3fef1533, 0x606b465b, 0xbfceb851, 0xeb851e98}, /* 0.97133=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3fef2846, 0x6d7864ca, 0xbfcd70a3, 0xd70a3d50}, /* 0.97366=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3fef3a8d, 0x49a3fe1a, 0xbfcc28f5, 0xc28f5c08}, /* 0.97589=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3fef4c07, 0x7d26f328, 0xbfcae147, 0xae147ac0}, /* 0.97803=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3fef5cb4, 0x9577627c, 0xbfc99999, 0x99999978}, /* 0.98006=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3fef6c94, 0x254b96e8, 0xbfc851eb, 0x851eb830}, /* 0.98200=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3fef7ba5, 0xc49cd3ca, 0xbfc70a3d, 0x70a3d6e8}, /* 0.98384=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3fef89e9, 0x10a9febe, 0xbfc5c28f, 0x5c28f5a0}, /* 0.98558=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3fef975d, 0xabfa26da, 0xbfc47ae1, 0x47ae1458}, /* 0.98722=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3fefa403, 0x3e5ee938, 0xbfc33333, 0x33333310}, /* 0.98877=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3fefafd9, 0x74f6b2e3, 0xbfc1eb85, 0x1eb851c8}, /* 0.99021=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3fefbae0, 0x022edffe, 0xbfc0a3d7, 0x0a3d7080}, /* 0.99156=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3fefc516, 0x9dc5b826, 0xbfbeb851, 0xeb851e71}, /* 0.99280=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3fefce7d, 0x04cc47f9, 0xbfbc28f5, 0xc28f5be2}, /* 0.99395=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3fefd712, 0xf9a817c2, 0xbfb99999, 0x99999953}, /* 0.99500=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3fefded8, 0x4414bf2a, 0xbfb70a3d, 0x70a3d6c4}, /* 0.99595=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3fefe5cc, 0xb1255600, 0xbfb47ae1, 0x47ae1435}, /* 0.99680=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x3fefebf0, 0x1345c1ef, 0xbfb1eb85, 0x1eb851a6}, /* 0.99755=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3feff142, 0x423be13a, 0xbfaeb851, 0xeb851e2d}, /* 0.99820=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3feff5c3, 0x1b289258, 0xbfa99999, 0x9999990e}, /* 0.99875=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3feff972, 0x80889878, 0xbfa47ae1, 0x47ae13ef}, /* 0.99920=f(-0.04000)*/ +{62, 0,123,__LINE__, 0x3feffc50, 0x5a355cf7, 0xbf9eb851, 0xeb851da0}, /* 0.99955=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3feffe5c, 0x95658d96, 0xbf947ae1, 0x47ae1362}, /* 0.99980=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3fefff97, 0x24ad97aa, 0xbf847ae1, 0x47ae1249}, /* 0.99995=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{62, 0,123,__LINE__, 0x3fefff97, 0x24ad97aa, 0x3f847ae1, 0x47ae16ad}, /* 0.99995=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3feffe5c, 0x95658d95, 0x3f947ae1, 0x47ae1594}, /* 0.99980=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3feffc50, 0x5a355cf6, 0x3f9eb851, 0xeb851fd2}, /* 0.99955=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3feff972, 0x80889878, 0x3fa47ae1, 0x47ae1508}, /* 0.99920=f(0.04000)*/ +{63, 0,123,__LINE__, 0x3feff5c3, 0x1b289257, 0x3fa99999, 0x99999a27}, /* 0.99875=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3feff142, 0x423be13a, 0x3faeb851, 0xeb851f46}, /* 0.99820=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fefebf0, 0x1345c1ef, 0x3fb1eb85, 0x1eb85232}, /* 0.99755=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fefe5cc, 0xb12555fe, 0x3fb47ae1, 0x47ae14c1}, /* 0.99680=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fefded8, 0x4414bf28, 0x3fb70a3d, 0x70a3d750}, /* 0.99595=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fefd712, 0xf9a817bf, 0x3fb99999, 0x999999df}, /* 0.99500=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fefce7d, 0x04cc47f6, 0x3fbc28f5, 0xc28f5c6e}, /* 0.99395=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fefc516, 0x9dc5b824, 0x3fbeb851, 0xeb851efd}, /* 0.99280=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fefbae0, 0x022edffc, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.99156=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fefafd9, 0x74f6b2e0, 0x3fc1eb85, 0x1eb8520e}, /* 0.99021=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fefa403, 0x3e5ee936, 0x3fc33333, 0x33333356}, /* 0.98877=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fef975d, 0xabfa26d7, 0x3fc47ae1, 0x47ae149e}, /* 0.98722=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fef89e9, 0x10a9febc, 0x3fc5c28f, 0x5c28f5e6}, /* 0.98558=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fef7ba5, 0xc49cd3c7, 0x3fc70a3d, 0x70a3d72e}, /* 0.98384=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fef6c94, 0x254b96e5, 0x3fc851eb, 0x851eb876}, /* 0.98200=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fef5cb4, 0x95776278, 0x3fc99999, 0x999999be}, /* 0.98006=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fef4c07, 0x7d26f324, 0x3fcae147, 0xae147b06}, /* 0.97803=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fef3a8d, 0x49a3fe16, 0x3fcc28f5, 0xc28f5c4e}, /* 0.97589=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fef2846, 0x6d7864c6, 0x3fcd70a3, 0xd70a3d96}, /* 0.97366=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fef1533, 0x606b4656, 0x3fceb851, 0xeb851ede}, /* 0.97133=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fef0154, 0x9f7dee9e, 0x3fd00000, 0x00000013}, /* 0.96891=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3feeecaa, 0xace8a2ec, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.96638=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3feed736, 0x10174ca0, 0x3fd147ae, 0x147ae15b}, /* 0.96377=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3feec0f7, 0x55a601ae, 0x3fd1eb85, 0x1eb851ff}, /* 0.96105=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3feea9ef, 0x0f5d6b22, 0x3fd28f5c, 0x28f5c2a3}, /* 0.95824=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fee921d, 0xd42f09b7, 0x3fd33333, 0x33333347}, /* 0.95533=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fee7984, 0x4031589e, 0x3fd3d70a, 0x3d70a3eb}, /* 0.95233=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fee6022, 0xf49bce98, 0x3fd47ae1, 0x47ae148f}, /* 0.94923=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fee45fa, 0x97c2bd61, 0x3fd51eb8, 0x51eb8533}, /* 0.94604=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fee2b0b, 0xd5130fae, 0x3fd5c28f, 0x5c28f5d7}, /* 0.94275=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fee0f57, 0x5d0de5b4, 0x3fd66666, 0x6666667b}, /* 0.93937=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fedf2dd, 0xe5441070, 0x3fd70a3d, 0x70a3d71f}, /* 0.93589=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fedd5a0, 0x28516bc4, 0x3fd7ae14, 0x7ae147c3}, /* 0.93232=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fedb79e, 0xe5d8177e, 0x3fd851eb, 0x851eb867}, /* 0.92866=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fed98da, 0xe27b8f79, 0x3fd8f5c2, 0x8f5c290b}, /* 0.92490=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fed7954, 0xe7dba2f3, 0x3fd99999, 0x999999af}, /* 0.92106=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fed590d, 0xc48f4b2e, 0x3fda3d70, 0xa3d70a53}, /* 0.91712=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fed3806, 0x4c1f618c, 0x3fdae147, 0xae147af7}, /* 0.91308=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fed163f, 0x57013544, 0x3fdb851e, 0xb851eb9b}, /* 0.90896=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fecf3b9, 0xc29100ca, 0x3fdc28f5, 0xc28f5c3f}, /* 0.90475=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fecd076, 0x710c3f28, 0x3fdccccc, 0xcccccce3}, /* 0.90044=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fecac76, 0x498be146, 0x3fdd70a3, 0xd70a3d87}, /* 0.89605=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fec87ba, 0x37fe6370, 0x3fde147a, 0xe147ae2b}, /* 0.89156=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fec6243, 0x2d21c31e, 0x3fdeb851, 0xeb851ecf}, /* 0.88699=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fec3c12, 0x1e7d554a, 0x3fdf5c28, 0xf5c28f73}, /* 0.88233=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fec1528, 0x065b7d4a, 0x3fe00000, 0x0000000b}, /* 0.87758=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3febed85, 0xe3c34494, 0x3fe051eb, 0x851eb85d}, /* 0.87274=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3febc52c, 0xba71d35c, 0x3fe0a3d7, 0x0a3d70af}, /* 0.86781=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3feb9c1d, 0x92d3ca70, 0x3fe0f5c2, 0x8f5c2901}, /* 0.86280=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3feb7259, 0x79fe7e35, 0x3fe147ae, 0x147ae153}, /* 0.85770=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3feb47e1, 0x81a9134b, 0x3fe19999, 0x999999a5}, /* 0.85252=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3feb1cb6, 0xc0257cab, 0x3fe1eb85, 0x1eb851f7}, /* 0.84725=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3feaf0da, 0x50595bc0, 0x3fe23d70, 0xa3d70a49}, /* 0.84190=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3feac44d, 0x51b6c254, 0x3fe28f5c, 0x28f5c29b}, /* 0.83646=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fea9710, 0xe834d6e0, 0x3fe2e147, 0xae147aed}, /* 0.83094=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fea6926, 0x3c485b0d, 0x3fe33333, 0x3333333f}, /* 0.82533=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fea3a8e, 0x7adc14f0, 0x3fe3851e, 0xb851eb91}, /* 0.81964=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fea0b4a, 0xd5491ae4, 0x3fe3d70a, 0x3d70a3e3}, /* 0.81387=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe9db5c, 0x814f0284, 0x3fe428f5, 0xc28f5c35}, /* 0.80802=f(0.63000)*/ +{58, 0,123,__LINE__, 0x3fe9aac4, 0xb90bf2a0, 0x3fe47ae1, 0x47ae1487}, /* 0.80209=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe97984, 0xbaf498ba, 0x3fe4cccc, 0xccccccd9}, /* 0.79608=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe9479d, 0xc9cc01f8, 0x3fe51eb8, 0x51eb852b}, /* 0.78999=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe91511, 0x2c9b57ed, 0x3fe570a3, 0xd70a3d7d}, /* 0.78382=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe8e1e0, 0x2ea98154, 0x3fe5c28f, 0x5c28f5cf}, /* 0.77757=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe8ae0c, 0x1f72a713, 0x3fe6147a, 0xe147ae21}, /* 0.77124=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe87996, 0x529f9d89, 0x3fe66666, 0x66666673}, /* 0.76484=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe84480, 0x1ffd32ae, 0x3fe6b851, 0xeb851ec5}, /* 0.75836=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe80eca, 0xe37360dc, 0x3fe70a3d, 0x70a3d717}, /* 0.75180=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe7d877, 0xfcfc66e4, 0x3fe75c28, 0xf5c28f69}, /* 0.74517=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe7a188, 0xd09bc545, 0x3fe7ae14, 0x7ae147bb}, /* 0.73846=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe769fe, 0xc6552116, 0x3fe80000, 0x0000000d}, /* 0.73168=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe731db, 0x4a230c99, 0x3fe851eb, 0x851eb85f}, /* 0.72483=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe6f91f, 0xcbedb5ef, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.71791=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe6bfcd, 0xbf817bf0, 0x3fe8f5c2, 0x8f5c2903}, /* 0.71091=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe685e6, 0x9c8569a6, 0x3fe947ae, 0x147ae155}, /* 0.70384=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe64b6b, 0xde71985a, 0x3fe99999, 0x999999a7}, /* 0.69670=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe6105f, 0x048578d0, 0x3fe9eb85, 0x1eb851f9}, /* 0.68949=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe5d4c1, 0x91be038a, 0x3fea3d70, 0xa3d70a4b}, /* 0.68222=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe59895, 0x0ccbd0bc, 0x3fea8f5c, 0x28f5c29d}, /* 0.67487=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe55bdb, 0x000917d0, 0x3feae147, 0xae147aef}, /* 0.66746=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe51e94, 0xf96f9711, 0x3feb3333, 0x33333341}, /* 0.65998=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe4e0c4, 0x8a8e6370, 0x3feb851e, 0xb851eb93}, /* 0.65243=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe4a26b, 0x487fa0f8, 0x3febd70a, 0x3d70a3e5}, /* 0.64482=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe4638a, 0xcbde23da, 0x3fec28f5, 0xc28f5c37}, /* 0.63715=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe42424, 0xb0bafab9, 0x3fec7ae1, 0x47ae1489}, /* 0.62941=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe3e43a, 0x9692e210, 0x3feccccc, 0xccccccdb}, /* 0.62160=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe3a3ce, 0x2043a160, 0x3fed1eb8, 0x51eb852d}, /* 0.61374=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe362e0, 0xf4015209, 0x3fed70a3, 0xd70a3d7f}, /* 0.60582=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe32174, 0xbb4b9075, 0x3fedc28f, 0x5c28f5d1}, /* 0.59783=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fe2df8b, 0x22e29778, 0x3fee147a, 0xe147ae23}, /* 0.58978=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fe29d25, 0xdabc4696, 0x3fee6666, 0x66666675}, /* 0.58168=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fe25a46, 0x95f91302, 0x3feeb851, 0xeb851ec7}, /* 0.57351=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fe216ef, 0x0ad8e424, 0x3fef0a3d, 0x70a3d719}, /* 0.56529=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fe1d320, 0xf2afdb5c, 0x3fef5c28, 0xf5c28f6b}, /* 0.55702=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fe18ede, 0x09db07e2, 0x3fefae14, 0x7ae147bd}, /* 0.54868=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fe14a28, 0x0fb5067e, 0x3ff00000, 0x00000007}, /* 0.54030=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fe10500, 0xc68a8de1, 0x3ff028f5, 0xc28f5c30}, /* 0.53186=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fe0bf69, 0xf38ee782, 0x3ff051eb, 0x851eb859}, /* 0.52336=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fe07965, 0x5ed05593, 0x3ff07ae1, 0x47ae1482}, /* 0.51481=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fe032f4, 0xd32c6644, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.50622=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fdfd834, 0x3c88690a, 0x3ff0cccc, 0xccccccd4}, /* 0.49757=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fdf49ae, 0x20e12d63, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.48887=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fdeba5a, 0xf96c76f9, 0x3ff11eb8, 0x51eb8526}, /* 0.48012=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fde2a3e, 0x71736aa6, 0x3ff147ae, 0x147ae14f}, /* 0.47132=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fdd995c, 0x3966e906, 0x3ff170a3, 0xd70a3d78}, /* 0.46248=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fdd07b8, 0x06c760fa, 0x3ff19999, 0x999999a1}, /* 0.45359=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fdc7555, 0x940c811e, 0x3ff1c28f, 0x5c28f5ca}, /* 0.44466=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fdbe238, 0xa08cc8ad, 0x3ff1eb85, 0x1eb851f3}, /* 0.43568=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fdb4e64, 0xf064f863, 0x3ff2147a, 0xe147ae1c}, /* 0.42665=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fdab9de, 0x4c5f641a, 0x3ff23d70, 0xa3d70a45}, /* 0.41759=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fda24a8, 0x81db25cd, 0x3ff26666, 0x6666666e}, /* 0.40848=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fd98ec7, 0x62b332a3, 0x3ff28f5c, 0x28f5c297}, /* 0.39933=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fd8f83e, 0xc5255277, 0x3ff2b851, 0xeb851ec0}, /* 0.39015=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fd86112, 0x83b8fa98, 0x3ff2e147, 0xae147ae9}, /* 0.38092=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fd7c946, 0x7d260c9b, 0x3ff30a3d, 0x70a3d712}, /* 0.37165=f(1.19000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffffff, 0xc01921fb, 0x54442d18}, /* 0.01000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 0.00000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffffff, 0xc00921fb, 0x54442d18}, /* -0.01000=f(-3.14159)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 0.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffffff, 0x00000000, 0x00000000}, /* 0.01000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 0.00000=f(1.57079)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffffff, 0x400921fb, 0x54442d18}, /* -0.01000=f(3.14159)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 0.00000=f(4.71238)*/ +{64, 0,123,__LINE__, 0x3fc3be82, 0xf2505a3c, 0xc03e0000, 0x00000000}, /* 0.15425=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbfeffd4d, 0x49f5634f, 0xc03c4ccc, 0xcccccccd}, /* -0.99967=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x3fba7552, 0x052a7a96, 0xc03a9999, 0x9999999a}, /* 0.10335=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x3fef2320, 0x2a931b50, 0xc038e666, 0x66666667}, /* 0.97303=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xbfd6a979, 0x0396a6d1, 0xc0373333, 0x33333334}, /* -0.35409=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbfec37a3, 0x48f58c04, 0xc0358000, 0x00000001}, /* -0.88179=f(-21.5000)*/ +{64, 0,123,__LINE__, 0x3fe29a30, 0x33463902, 0xc033cccc, 0xccccccce}, /* 0.58132=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x3fe76c79, 0x6f014394, 0xc0321999, 0x9999999b}, /* 0.73199=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xbfe8a369, 0xe7c4cd6a, 0xc0306666, 0x66666668}, /* -0.76994=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbfe1131f, 0x9041ceed, 0xc02d6666, 0x6666666a}, /* -0.53358=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x3fed09cd, 0xd5260c9a, 0xc02a0000, 0x00000004}, /* 0.90744=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x3fd32f07, 0x17a032d8, 0xc0269999, 0x9999999e}, /* 0.29974=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xbfef8290, 0x1b2ceea7, 0xc0233333, 0x33333338}, /* -0.98468=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xbfa78d97, 0x32562f56, 0xc01f9999, 0x999999a3}, /* -0.04600=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x3fefe3ac, 0x4079a9d4, 0xc018cccc, 0xccccccd6}, /* 0.99654=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xbfcafb5b, 0x54583c4a, 0xc0120000, 0x00000009}, /* -0.21079=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbfee26af, 0x77577062, 0xc0066666, 0x66666678}, /* -0.94222=f(-2.80000)*/ +{64, 0,123,__LINE__, 0x3fdd07b8, 0x06c76093, 0xbff19999, 0x999999bd}, /* 0.45359=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fea6926, 0x3c485b3d, 0x3fe33333, 0x333332ec}, /* 0.82533=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbfe55222, 0x17302fab, 0x40026666, 0x66666654}, /* -0.66627=f(2.30000)*/ +{64, 0,123,__LINE__, 0xbfe4eaa6, 0x06db24f6, 0x400fffff, 0xffffffee}, /* -0.65364=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3feab5f7, 0x960dfe03, 0x4016cccc, 0xccccccc4}, /* 0.83471=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3fdc1128, 0xcf6b88eb, 0x401d9999, 0x99999991}, /* 0.43854=f(7.40000)*/ +{64, 0,123,__LINE__, 0xbfee53bc, 0x40dbb4f7, 0x40223333, 0x3333332f}, /* -0.94772=f(9.10000)*/ +{64, 0,123,__LINE__, 0xbfc8dfcd, 0x686e22d4, 0x40259999, 0x99999995}, /* -0.19432=f(10.8000)*/ +{64, 0,123,__LINE__, 0x3fefedf6, 0xa822776f, 0x4028ffff, 0xfffffffb}, /* 0.99779=f(12.5000)*/ +{64, 0,123,__LINE__, 0xbfb0131e, 0x4c6b1b8a, 0x402c6666, 0x66666661}, /* -0.06279=f(14.2000)*/ +{64, 0,123,__LINE__, 0xbfef6969, 0x31df045e, 0x402fcccc, 0xccccccc7}, /* -0.98161=f(15.9000)*/ +{64, 0,123,__LINE__, 0x3fd43525, 0x4b52d67d, 0x40319999, 0x99999997}, /* 0.31574=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3feccee1, 0x2c079a9a, 0x40334ccc, 0xccccccca}, /* 0.90025=f(19.3000)*/ +{64, 0,123,__LINE__, 0xbfe186ff, 0x83773702, 0x4034ffff, 0xfffffffd}, /* -0.54772=f(21.0000)*/ +{64, 0,123,__LINE__, 0xbfe84aa1, 0x2be3c2f1, 0x4036b333, 0x33333330}, /* -0.75911=f(22.7000)*/ +{64, 0,123,__LINE__, 0x3fe7c978, 0x706f1be6, 0x40386666, 0x66666663}, /* 0.74334=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3fe22970, 0xa9c7540c, 0x403a1999, 0x99999996}, /* 0.56755=f(26.1000)*/ +{64, 0,123,__LINE__, 0xbfec7794, 0x7992f3fe, 0x403bcccc, 0xccccccc9}, /* -0.88959=f(27.8000)*/ +{64, 0,123,__LINE__, 0xbfd5a705, 0x9eaeac12, 0x403d7fff, 0xfffffffc}, /* -0.33831=f(29.5000)*/ +0,}; +test_cos(m) {run_vector_1(m,cos_vec,(char *)(cos),"cos","dd"); } diff --git a/newlib/libm/test/cosf_vec.c b/newlib/libm/test/cosf_vec.c new file mode 100644 index 000000000..7e7d72011 --- /dev/null +++ b/newlib/libm/test/cosf_vec.c @@ -0,0 +1,287 @@ +#include "test.h" + one_line_type cosf_vec[] = { +{10, 0,123,__LINE__, 0x3fd730de, 0x6472104d, 0xbff33333, 0x33333333}, /* 0.36235=f(-1.20000)*/ +{10, 0,123,__LINE__, 0x3fd7c946, 0x44916898, 0xbff30a3d, 0x70a3d70a}, /* 0.37165=f(-1.19000)*/ +{10, 0,123,__LINE__, 0x3fd86112, 0xb8048f74, 0xbff2e147, 0xae147ae1}, /* 0.38092=f(-1.18000)*/ +{10, 0,123,__LINE__, 0x3fd8f83e, 0xeece9b82, 0xbff2b851, 0xeb851eb8}, /* 0.39015=f(-1.17000)*/ +{10, 0,123,__LINE__, 0x3fd98ec7, 0x82e20910, 0xbff28f5c, 0x28f5c28f}, /* 0.39933=f(-1.16000)*/ +{10, 0,123,__LINE__, 0x3fda24a8, 0x99317fa1, 0xbff26666, 0x66666666}, /* 0.40848=f(-1.15000)*/ +{10, 0,123,__LINE__, 0x3fdab9de, 0x5ae860cf, 0xbff23d70, 0xa3d70a3d}, /* 0.41759=f(-1.14000)*/ +{10, 0,123,__LINE__, 0x3fdb4e64, 0xf3c101c3, 0xbff2147a, 0xe147ae14}, /* 0.42665=f(-1.13000)*/ +{10, 0,123,__LINE__, 0x3fdbe238, 0x9aef2562, 0xbff1eb85, 0x1eb851eb}, /* 0.43568=f(-1.12000)*/ +{10, 0,123,__LINE__, 0x3fdc7555, 0x85478abd, 0xbff1c28f, 0x5c28f5c2}, /* 0.44466=f(-1.11000)*/ +{10, 0,123,__LINE__, 0x3fdd07b7, 0xf0ca58aa, 0xbff19999, 0x99999999}, /* 0.45359=f(-1.10000)*/ +{10, 0,123,__LINE__, 0x3fdd995c, 0x19b2b427, 0xbff170a3, 0xd70a3d70}, /* 0.46248=f(-1.09000)*/ +{10, 0,123,__LINE__, 0x3fde2a3e, 0x479b2dea, 0xbff147ae, 0x147ae147}, /* 0.47132=f(-1.08000)*/ +{10, 0,123,__LINE__, 0x3fdeba5a, 0xc8481ce3, 0xbff11eb8, 0x51eb851e}, /* 0.48012=f(-1.07000)*/ +{10, 0,123,__LINE__, 0x3fdf49ae, 0x55edce4d, 0xbff0f5c2, 0x8f5c28f5}, /* 0.48887=f(-1.06000)*/ +{10, 0,123,__LINE__, 0x3fdfd834, 0x69a59055, 0xbff0cccc, 0xcccccccc}, /* 0.49757=f(-1.05000)*/ +{11, 0,123,__LINE__, 0x3fe032f4, 0xe5302499, 0xbff0a3d7, 0x0a3d70a3}, /* 0.50622=f(-1.04000)*/ +{11, 0,123,__LINE__, 0x3fe07965, 0x6b578e35, 0xbff07ae1, 0x47ae147a}, /* 0.51481=f(-1.03000)*/ +{11, 0,123,__LINE__, 0x3fe0bf69, 0xfc089254, 0xbff051eb, 0x851eb851}, /* 0.52336=f(-1.02000)*/ +{11, 0,123,__LINE__, 0x3fe10500, 0xcb0bc271, 0xbff028f5, 0xc28f5c28}, /* 0.53186=f(-1.01000)*/ +{11, 0,123,__LINE__, 0x3fe14a28, 0x109b247f, 0xbfefffff, 0xfffffffe}, /* 0.54030=f(-0.01000)*/ +{11, 0,123,__LINE__, 0x3fe18ede, 0x06194bac, 0xbfefae14, 0x7ae147ac}, /* 0.54868=f(-0.99000)*/ +{11, 0,123,__LINE__, 0x3fe1d320, 0xeab1b237, 0xbfef5c28, 0xf5c28f5a}, /* 0.55702=f(-0.98000)*/ +{11, 0,123,__LINE__, 0x3fe216ee, 0xfda37c59, 0xbfef0a3d, 0x70a3d708}, /* 0.56529=f(-0.97000)*/ +{11, 0,123,__LINE__, 0x3fe25a46, 0x9fc480b0, 0xbfeeb851, 0xeb851eb6}, /* 0.57352=f(-0.96000)*/ +{11, 0,123,__LINE__, 0x3fe29d25, 0xdf140a48, 0xbfee6666, 0x66666664}, /* 0.58168=f(-0.95000)*/ +{11, 0,123,__LINE__, 0x3fe2df8b, 0x24080e04, 0xbfee147a, 0xe147ae12}, /* 0.58978=f(-0.94000)*/ +{11, 0,123,__LINE__, 0x3fe32174, 0xb7b19b41, 0xbfedc28f, 0x5c28f5c0}, /* 0.59783=f(-0.93000)*/ +{11, 0,123,__LINE__, 0x3fe362e0, 0xee9020f0, 0xbfed70a3, 0xd70a3d6e}, /* 0.60582=f(-0.92000)*/ +{11, 0,123,__LINE__, 0x3fe3a3ce, 0x1571b662, 0xbfed1eb8, 0x51eb851c}, /* 0.61374=f(-0.91000)*/ +{11, 0,123,__LINE__, 0x3fe3e43a, 0xa115e4b3, 0xbfeccccc, 0xccccccca}, /* 0.62160=f(-0.90000)*/ +{11, 0,123,__LINE__, 0x3fe42424, 0xb55f3745, 0xbfec7ae1, 0x47ae1478}, /* 0.62941=f(-0.89000)*/ +{11, 0,123,__LINE__, 0x3fe4638a, 0xccccaec9, 0xbfec28f5, 0xc28f5c26}, /* 0.63715=f(-0.88000)*/ +{11, 0,123,__LINE__, 0x3fe4a26b, 0x46dce8de, 0xbfebd70a, 0x3d70a3d4}, /* 0.64482=f(-0.87000)*/ +{11, 0,123,__LINE__, 0x3fe4e0c4, 0x85c6d4e2, 0xbfeb851e, 0xb851eb82}, /* 0.65243=f(-0.86000)*/ +{11, 0,123,__LINE__, 0x3fe51e94, 0xf15bcc5f, 0xbfeb3333, 0x33333330}, /* 0.65998=f(-0.85000)*/ +{11, 0,123,__LINE__, 0x3fe55bdb, 0x08c37bdb, 0xbfeae147, 0xae147ade}, /* 0.66746=f(-0.84000)*/ +{11, 0,123,__LINE__, 0x3fe59895, 0x1075f62e, 0xbfea8f5c, 0x28f5c28c}, /* 0.67487=f(-0.83000)*/ +{11, 0,123,__LINE__, 0x3fe5d4c1, 0x93909c56, 0xbfea3d70, 0xa3d70a3a}, /* 0.68222=f(-0.82000)*/ +{11, 0,123,__LINE__, 0x3fe6105f, 0x029c4897, 0xbfe9eb85, 0x1eb851e8}, /* 0.68949=f(-0.81000)*/ +{11, 0,123,__LINE__, 0x3fe64b6b, 0xda1a09d4, 0xbfe99999, 0x99999996}, /* 0.69670=f(-0.80000)*/ +{11, 0,123,__LINE__, 0x3fe685e6, 0x937f0fd2, 0xbfe947ae, 0x147ae144}, /* 0.70384=f(-0.79000)*/ +{11, 0,123,__LINE__, 0x3fe6bfcd, 0xcb101331, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.71091=f(-0.78000)*/ +{11, 0,123,__LINE__, 0x3fe6f91f, 0xd0223e86, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.71791=f(-0.77000)*/ +{11, 0,123,__LINE__, 0x3fe731db, 0x4bdce1fd, 0xbfe851eb, 0x851eb84e}, /* 0.72483=f(-0.76000)*/ +{11, 0,123,__LINE__, 0x3fe769fe, 0xc759d4a6, 0xbfe7ffff, 0xfffffffc}, /* 0.73168=f(-0.75000)*/ +{11, 0,123,__LINE__, 0x3fe7a188, 0xcebd2ad0, 0xbfe7ae14, 0x7ae147aa}, /* 0.73846=f(-0.74000)*/ +{11, 0,123,__LINE__, 0x3fe7d877, 0xf4922fc2, 0xbfe75c28, 0xf5c28f58}, /* 0.74517=f(-0.73000)*/ +{11, 0,123,__LINE__, 0x3fe80eca, 0xd8cd0730, 0xbfe70a3d, 0x70a3d706}, /* 0.75180=f(-0.72000)*/ +{11, 0,123,__LINE__, 0x3fe84480, 0x26985537, 0xbfe6b851, 0xeb851eb4}, /* 0.75836=f(-0.71000)*/ +{11, 0,123,__LINE__, 0x3fe87996, 0x5a02a255, 0xbfe66666, 0x66666662}, /* 0.76484=f(-0.70000)*/ +{11, 0,123,__LINE__, 0x3fe8ae0c, 0x1de43e3a, 0xbfe6147a, 0xe147ae10}, /* 0.77124=f(-0.69000)*/ +{11, 0,123,__LINE__, 0x3fe8e1e0, 0x2df71e7a, 0xbfe5c28f, 0x5c28f5be}, /* 0.77757=f(-0.68000)*/ +{11, 0,123,__LINE__, 0x3fe91511, 0x263efc70, 0xbfe570a3, 0xd70a3d6c}, /* 0.78382=f(-0.67000)*/ +{11, 0,123,__LINE__, 0x3fe9479d, 0xbef879b6, 0xbfe51eb8, 0x51eb851a}, /* 0.78999=f(-0.66000)*/ +{11, 0,123,__LINE__, 0x3fe97984, 0xc1262700, 0xbfe4cccc, 0xccccccc8}, /* 0.79608=f(-0.65000)*/ +{11, 0,123,__LINE__, 0x3fe9aac4, 0xbc3dfc32, 0xbfe47ae1, 0x47ae1476}, /* 0.80209=f(-0.64000)*/ +{11, 0,123,__LINE__, 0x3fe9db5c, 0x80783b01, 0xbfe428f5, 0xc28f5c24}, /* 0.80802=f(-0.63000)*/ +{11, 0,123,__LINE__, 0x3fea0b4a, 0xd4b55b88, 0xbfe3d70a, 0x3d70a3d2}, /* 0.81387=f(-0.62000)*/ +{11, 0,123,__LINE__, 0x3fea3a8e, 0x744d73ec, 0xbfe3851e, 0xb851eb80}, /* 0.81964=f(-0.61000)*/ +{11, 0,123,__LINE__, 0x3fea6926, 0x35185fe0, 0xbfe33333, 0x3333332e}, /* 0.82533=f(-0.60000)*/ +{11, 0,123,__LINE__, 0x3fea9710, 0xecd09a47, 0xbfe2e147, 0xae147adc}, /* 0.83094=f(-0.59000)*/ +{11, 0,123,__LINE__, 0x3feac44d, 0x52335f02, 0xbfe28f5c, 0x28f5c28a}, /* 0.83646=f(-0.58000)*/ +{11, 0,123,__LINE__, 0x3feaf0da, 0x5249d088, 0xbfe23d70, 0xa3d70a38}, /* 0.84190=f(-0.57000)*/ +{11, 0,123,__LINE__, 0x3feb1cb6, 0xc26da5b0, 0xbfe1eb85, 0x1eb851e6}, /* 0.84725=f(-0.56000)*/ +{11, 0,123,__LINE__, 0x3feb47e1, 0x83a84b14, 0xbfe19999, 0x99999994}, /* 0.85252=f(-0.55000)*/ +{11, 0,123,__LINE__, 0x3feb7259, 0x729b252c, 0xbfe147ae, 0x147ae142}, /* 0.85770=f(-0.54000)*/ +{11, 0,123,__LINE__, 0x3feb9c1d, 0x9a9ae192, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.86280=f(-0.53000)*/ +{11, 0,123,__LINE__, 0x3febc52c, 0xc3de6bbe, 0xbfe0a3d7, 0x0a3d709e}, /* 0.86781=f(-0.52000)*/ +{11, 0,123,__LINE__, 0x3febed85, 0xe8eda20c, 0xbfe051eb, 0x851eb84c}, /* 0.87274=f(-0.51000)*/ +{11, 0,123,__LINE__, 0x3fec1528, 0x06962121, 0xbfdfffff, 0xfffffff4}, /* 0.87758=f(-0.50000)*/ +{11, 0,123,__LINE__, 0x3fec3c12, 0x1dce7b20, 0xbfdf5c28, 0xf5c28f50}, /* 0.88233=f(-0.49000)*/ +{11, 0,123,__LINE__, 0x3fec6243, 0x2f4507c3, 0xbfdeb851, 0xeb851eac}, /* 0.88699=f(-0.48000)*/ +{11, 0,123,__LINE__, 0x3fec87ba, 0x3b519438, 0xbfde147a, 0xe147ae08}, /* 0.89156=f(-0.47000)*/ +{11, 0,123,__LINE__, 0x3fecac76, 0x41ccb4dc, 0xbfdd70a3, 0xd70a3d64}, /* 0.89605=f(-0.46000)*/ +{11, 0,123,__LINE__, 0x3fecd076, 0x72620196, 0xbfdccccc, 0xccccccc0}, /* 0.90044=f(-0.45000)*/ +{11, 0,123,__LINE__, 0x3fecf3b9, 0xbfc893c5, 0xbfdc28f5, 0xc28f5c1c}, /* 0.90475=f(-0.44000)*/ +{11, 0,123,__LINE__, 0x3fed163f, 0x505a028f, 0xbfdb851e, 0xb851eb78}, /* 0.90896=f(-0.43000)*/ +{11, 0,123,__LINE__, 0x3fed3806, 0x4e62a4e6, 0xbfdae147, 0xae147ad4}, /* 0.91308=f(-0.42000)*/ +{11, 0,123,__LINE__, 0x3fed590d, 0xc234348c, 0xbfda3d70, 0xa3d70a30}, /* 0.91712=f(-0.41000)*/ +{11, 0,123,__LINE__, 0x3fed7954, 0xe7d86d3a, 0xbfd99999, 0x9999998c}, /* 0.92106=f(-0.40000)*/ +{11, 0,123,__LINE__, 0x3fed98da, 0xecb82098, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.92490=f(-0.39000)*/ +{11, 0,123,__LINE__, 0x3fedb79e, 0xe5f2ca89, 0xbfd851eb, 0x851eb844}, /* 0.92866=f(-0.38000)*/ +{11, 0,123,__LINE__, 0x3fedd5a0, 0x25bc63b0, 0xbfd7ae14, 0x7ae147a0}, /* 0.93232=f(-0.37000)*/ +{11, 0,123,__LINE__, 0x3fedf2dd, 0xe31ff682, 0xbfd70a3d, 0x70a3d6fc}, /* 0.93589=f(-0.36000)*/ +{11, 0,123,__LINE__, 0x3fee0f57, 0x5bdd1780, 0xbfd66666, 0x66666658}, /* 0.93937=f(-0.35000)*/ +{11, 0,123,__LINE__, 0x3fee2b0b, 0xd3ef6994, 0xbfd5c28f, 0x5c28f5b4}, /* 0.94275=f(-0.34000)*/ +{11, 0,123,__LINE__, 0x3fee45fa, 0x9bb5c431, 0xbfd51eb8, 0x51eb8510}, /* 0.94604=f(-0.33000)*/ +{11, 0,123,__LINE__, 0x3fee6022, 0xf37b1fb0, 0xbfd47ae1, 0x47ae146c}, /* 0.94923=f(-0.32000)*/ +{11, 0,123,__LINE__, 0x3fee7984, 0x412e563e, 0xbfd3d70a, 0x3d70a3c8}, /* 0.95233=f(-0.31000)*/ +{11, 0,123,__LINE__, 0x3fee921d, 0xd80bcbfe, 0xbfd33333, 0x33333324}, /* 0.95533=f(-0.30000)*/ +{11, 0,123,__LINE__, 0x3feea9ef, 0x0eec6bf8, 0xbfd28f5c, 0x28f5c280}, /* 0.95824=f(-0.29000)*/ +{11, 0,123,__LINE__, 0x3feec0f7, 0x64d0c8a7, 0xbfd1eb85, 0x1eb851dc}, /* 0.96105=f(-0.28000)*/ +{11, 0,123,__LINE__, 0x3feed736, 0x105c946a, 0xbfd147ae, 0x147ae138}, /* 0.96377=f(-0.27000)*/ +{11, 0,123,__LINE__, 0x3feeecaa, 0x9e6b8712, 0xbfd0a3d7, 0x0a3d7094}, /* 0.96638=f(-0.26000)*/ +{11, 0,123,__LINE__, 0x3fef0154, 0xa7c99bcd, 0xbfcfffff, 0xffffffe0}, /* 0.96891=f(-0.25000)*/ +{11, 0,123,__LINE__, 0x3fef1533, 0x5ff4d15a, 0xbfceb851, 0xeb851e98}, /* 0.97133=f(-0.24000)*/ +{11, 0,123,__LINE__, 0x3fef2846, 0x751b2ba3, 0xbfcd70a3, 0xd70a3d50}, /* 0.97366=f(-0.23000)*/ +{11, 0,123,__LINE__, 0x3fef3a8d, 0x471bfaae, 0xbfcc28f5, 0xc28f5c08}, /* 0.97589=f(-0.22000)*/ +{11, 0,123,__LINE__, 0x3fef4c07, 0x7ea42482, 0xbfcae147, 0xae147ac0}, /* 0.97803=f(-0.21000)*/ +{11, 0,123,__LINE__, 0x3fef5cb4, 0x9e642274, 0xbfc99999, 0x99999978}, /* 0.98006=f(-0.20000)*/ +{11, 0,123,__LINE__, 0x3fef6c94, 0x28a00592, 0xbfc851eb, 0x851eb830}, /* 0.98200=f(-0.19000)*/ +{11, 0,123,__LINE__, 0x3fef7ba5, 0xcf541e77, 0xbfc70a3d, 0x70a3d6e8}, /* 0.98384=f(-0.18000)*/ +{11, 0,123,__LINE__, 0x3fef89e9, 0x075aa14b, 0xbfc5c28f, 0x5c28f5a0}, /* 0.98558=f(-0.17000)*/ +{11, 0,123,__LINE__, 0x3fef975d, 0xa8944422, 0xbfc47ae1, 0x47ae1458}, /* 0.98722=f(-0.16000)*/ +{11, 0,123,__LINE__, 0x3fefa403, 0x3679104c, 0xbfc33333, 0x33333310}, /* 0.98877=f(-0.15000)*/ +{11, 0,123,__LINE__, 0x3fefafd9, 0x76dcdaa4, 0xbfc1eb85, 0x1eb851c8}, /* 0.99021=f(-0.14000)*/ +{11, 0,123,__LINE__, 0x3fefbadf, 0xf5d3a734, 0xbfc0a3d7, 0x0a3d7080}, /* 0.99156=f(-0.13000)*/ +{11, 0,123,__LINE__, 0x3fefc516, 0xa2febdda, 0xbfbeb851, 0xeb851e71}, /* 0.99280=f(-0.12000)*/ +{11, 0,123,__LINE__, 0x3fefce7d, 0x050a2a0c, 0xbfbc28f5, 0xc28f5be2}, /* 0.99395=f(-0.11000)*/ +{11, 0,123,__LINE__, 0x3fefd713, 0x01320271, 0xbfb99999, 0x99999953}, /* 0.99500=f(-0.00100)*/ +{11, 0,123,__LINE__, 0x3fefded8, 0x3b60e680, 0xbfb70a3d, 0x70a3d6c4}, /* 0.99595=f(-0.09000)*/ +{11, 0,123,__LINE__, 0x3fefe5cc, 0xbd6e6412, 0xbfb47ae1, 0x47ae1435}, /* 0.99680=f(-0.08000)*/ +{11, 0,123,__LINE__, 0x3fefebf0, 0x177e05a8, 0xbfb1eb85, 0x1eb851a6}, /* 0.99755=f(-0.07000)*/ +{11, 0,123,__LINE__, 0x3feff142, 0x46f7d8d4, 0xbfaeb851, 0xeb851e2d}, /* 0.99820=f(-0.06000)*/ +{11, 0,123,__LINE__, 0x3feff5c3, 0x17b28064, 0xbfa99999, 0x9999990e}, /* 0.99875=f(-0.05000)*/ +{11, 0,123,__LINE__, 0x3feff972, 0x9044e89d, 0xbfa47ae1, 0x47ae13ef}, /* 0.99920=f(-0.04000)*/ +{11, 0,123,__LINE__, 0x3feffc50, 0x6e785a45, 0xbf9eb851, 0xeb851da0}, /* 0.99955=f(-0.03000)*/ +{11, 0,123,__LINE__, 0x3feffe5c, 0x8f5db59d, 0xbf947ae1, 0x47ae1362}, /* 0.99979=f(-0.02000)*/ +{11, 0,123,__LINE__, 0x3fefff97, 0x1ec3ad85, 0xbf847ae1, 0x47ae1249}, /* 0.99994=f(-0.00010)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x01bcb4a0, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{11, 0,123,__LINE__, 0x3fefff97, 0x1ec3ad85, 0x3f847ae1, 0x47ae16ad}, /* 0.99994=f(0.01000)*/ +{11, 0,123,__LINE__, 0x3feffe5c, 0x8f5db59d, 0x3f947ae1, 0x47ae1594}, /* 0.99979=f(0.02000)*/ +{11, 0,123,__LINE__, 0x3feffc50, 0x6e785a45, 0x3f9eb851, 0xeb851fd2}, /* 0.99955=f(0.03000)*/ +{11, 0,123,__LINE__, 0x3feff972, 0x9044e89d, 0x3fa47ae1, 0x47ae1508}, /* 0.99920=f(0.04000)*/ +{11, 0,123,__LINE__, 0x3feff5c3, 0x17b28064, 0x3fa99999, 0x99999a27}, /* 0.99875=f(0.05000)*/ +{11, 0,123,__LINE__, 0x3feff142, 0x46f7d8d4, 0x3faeb851, 0xeb851f46}, /* 0.99820=f(0.06000)*/ +{11, 0,123,__LINE__, 0x3fefebf0, 0x177e05a8, 0x3fb1eb85, 0x1eb85232}, /* 0.99755=f(0.07000)*/ +{11, 0,123,__LINE__, 0x3fefe5cc, 0xbd6e6412, 0x3fb47ae1, 0x47ae14c1}, /* 0.99680=f(0.08000)*/ +{11, 0,123,__LINE__, 0x3fefded8, 0x3b60e680, 0x3fb70a3d, 0x70a3d750}, /* 0.99595=f(0.09000)*/ +{11, 0,123,__LINE__, 0x3fefd713, 0x01320271, 0x3fb99999, 0x999999df}, /* 0.99500=f(0.10000)*/ +{11, 0,123,__LINE__, 0x3fefce7d, 0x050a2a0c, 0x3fbc28f5, 0xc28f5c6e}, /* 0.99395=f(0.11000)*/ +{11, 0,123,__LINE__, 0x3fefc516, 0xa2febdda, 0x3fbeb851, 0xeb851efd}, /* 0.99280=f(0.12000)*/ +{11, 0,123,__LINE__, 0x3fefbadf, 0xf5d3a734, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.99156=f(0.13000)*/ +{11, 0,123,__LINE__, 0x3fefafd9, 0x76dcdaa4, 0x3fc1eb85, 0x1eb8520e}, /* 0.99021=f(0.14000)*/ +{11, 0,123,__LINE__, 0x3fefa403, 0x3679104c, 0x3fc33333, 0x33333356}, /* 0.98877=f(0.15000)*/ +{11, 0,123,__LINE__, 0x3fef975d, 0xa8944422, 0x3fc47ae1, 0x47ae149e}, /* 0.98722=f(0.16000)*/ +{11, 0,123,__LINE__, 0x3fef89e9, 0x075aa14b, 0x3fc5c28f, 0x5c28f5e6}, /* 0.98558=f(0.17000)*/ +{11, 0,123,__LINE__, 0x3fef7ba5, 0xcf541e77, 0x3fc70a3d, 0x70a3d72e}, /* 0.98384=f(0.18000)*/ +{11, 0,123,__LINE__, 0x3fef6c94, 0x28a00592, 0x3fc851eb, 0x851eb876}, /* 0.98200=f(0.19000)*/ +{11, 0,123,__LINE__, 0x3fef5cb4, 0x9e642274, 0x3fc99999, 0x999999be}, /* 0.98006=f(0.20000)*/ +{11, 0,123,__LINE__, 0x3fef4c07, 0x7ea42482, 0x3fcae147, 0xae147b06}, /* 0.97803=f(0.21000)*/ +{11, 0,123,__LINE__, 0x3fef3a8d, 0x471bfaae, 0x3fcc28f5, 0xc28f5c4e}, /* 0.97589=f(0.22000)*/ +{11, 0,123,__LINE__, 0x3fef2846, 0x751b2ba3, 0x3fcd70a3, 0xd70a3d96}, /* 0.97366=f(0.23000)*/ +{11, 0,123,__LINE__, 0x3fef1533, 0x5ff4d15a, 0x3fceb851, 0xeb851ede}, /* 0.97133=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fef0154, 0xa7c99bcd, 0x3fd00000, 0x00000013}, /* 0.96891=f(0.25000)*/ +{11, 0,123,__LINE__, 0x3feeecaa, 0x9e6b8712, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.96638=f(0.26000)*/ +{11, 0,123,__LINE__, 0x3feed736, 0x105c946a, 0x3fd147ae, 0x147ae15b}, /* 0.96377=f(0.27000)*/ +{11, 0,123,__LINE__, 0x3feec0f7, 0x64d0c8a7, 0x3fd1eb85, 0x1eb851ff}, /* 0.96105=f(0.28000)*/ +{11, 0,123,__LINE__, 0x3feea9ef, 0x0eec6bf8, 0x3fd28f5c, 0x28f5c2a3}, /* 0.95824=f(0.29000)*/ +{11, 0,123,__LINE__, 0x3fee921d, 0xd80bcbfe, 0x3fd33333, 0x33333347}, /* 0.95533=f(0.30000)*/ +{11, 0,123,__LINE__, 0x3fee7984, 0x412e563e, 0x3fd3d70a, 0x3d70a3eb}, /* 0.95233=f(0.31000)*/ +{11, 0,123,__LINE__, 0x3fee6022, 0xf37b1fb0, 0x3fd47ae1, 0x47ae148f}, /* 0.94923=f(0.32000)*/ +{11, 0,123,__LINE__, 0x3fee45fa, 0x9bb5c431, 0x3fd51eb8, 0x51eb8533}, /* 0.94604=f(0.33000)*/ +{11, 0,123,__LINE__, 0x3fee2b0b, 0xd3ef6994, 0x3fd5c28f, 0x5c28f5d7}, /* 0.94275=f(0.34000)*/ +{11, 0,123,__LINE__, 0x3fee0f57, 0x5bdd1780, 0x3fd66666, 0x6666667b}, /* 0.93937=f(0.35000)*/ +{11, 0,123,__LINE__, 0x3fedf2dd, 0xe31ff682, 0x3fd70a3d, 0x70a3d71f}, /* 0.93589=f(0.36000)*/ +{11, 0,123,__LINE__, 0x3fedd5a0, 0x25bc63b0, 0x3fd7ae14, 0x7ae147c3}, /* 0.93232=f(0.37000)*/ +{11, 0,123,__LINE__, 0x3fedb79e, 0xe5f2ca89, 0x3fd851eb, 0x851eb867}, /* 0.92866=f(0.38000)*/ +{11, 0,123,__LINE__, 0x3fed98da, 0xecb82098, 0x3fd8f5c2, 0x8f5c290b}, /* 0.92490=f(0.39000)*/ +{11, 0,123,__LINE__, 0x3fed7954, 0xe7d86d3a, 0x3fd99999, 0x999999af}, /* 0.92106=f(0.40000)*/ +{11, 0,123,__LINE__, 0x3fed590d, 0xc234348c, 0x3fda3d70, 0xa3d70a53}, /* 0.91712=f(0.41000)*/ +{11, 0,123,__LINE__, 0x3fed3806, 0x4e62a4e6, 0x3fdae147, 0xae147af7}, /* 0.91308=f(0.42000)*/ +{11, 0,123,__LINE__, 0x3fed163f, 0x505a028f, 0x3fdb851e, 0xb851eb9b}, /* 0.90896=f(0.43000)*/ +{11, 0,123,__LINE__, 0x3fecf3b9, 0xbfc893c5, 0x3fdc28f5, 0xc28f5c3f}, /* 0.90475=f(0.44000)*/ +{11, 0,123,__LINE__, 0x3fecd076, 0x72620196, 0x3fdccccc, 0xcccccce3}, /* 0.90044=f(0.45000)*/ +{11, 0,123,__LINE__, 0x3fecac76, 0x41ccb4dc, 0x3fdd70a3, 0xd70a3d87}, /* 0.89605=f(0.46000)*/ +{11, 0,123,__LINE__, 0x3fec87ba, 0x3b519438, 0x3fde147a, 0xe147ae2b}, /* 0.89156=f(0.47000)*/ +{11, 0,123,__LINE__, 0x3fec6243, 0x2f4507c3, 0x3fdeb851, 0xeb851ecf}, /* 0.88699=f(0.48000)*/ +{11, 0,123,__LINE__, 0x3fec3c12, 0x1dce7b20, 0x3fdf5c28, 0xf5c28f73}, /* 0.88233=f(0.49000)*/ +{11, 0,123,__LINE__, 0x3fec1528, 0x06962121, 0x3fe00000, 0x0000000b}, /* 0.87758=f(0.50000)*/ +{11, 0,123,__LINE__, 0x3febed85, 0xe8eda20c, 0x3fe051eb, 0x851eb85d}, /* 0.87274=f(0.51000)*/ +{11, 0,123,__LINE__, 0x3febc52c, 0xc3de6bbe, 0x3fe0a3d7, 0x0a3d70af}, /* 0.86781=f(0.52000)*/ +{11, 0,123,__LINE__, 0x3feb9c1d, 0x9a9ae192, 0x3fe0f5c2, 0x8f5c2901}, /* 0.86280=f(0.53000)*/ +{11, 0,123,__LINE__, 0x3feb7259, 0x729b252c, 0x3fe147ae, 0x147ae153}, /* 0.85770=f(0.54000)*/ +{11, 0,123,__LINE__, 0x3feb47e1, 0x83a84b14, 0x3fe19999, 0x999999a5}, /* 0.85252=f(0.55000)*/ +{11, 0,123,__LINE__, 0x3feb1cb6, 0xc26da5b0, 0x3fe1eb85, 0x1eb851f7}, /* 0.84725=f(0.56000)*/ +{11, 0,123,__LINE__, 0x3feaf0da, 0x5249d088, 0x3fe23d70, 0xa3d70a49}, /* 0.84190=f(0.57000)*/ +{11, 0,123,__LINE__, 0x3feac44d, 0x52335f02, 0x3fe28f5c, 0x28f5c29b}, /* 0.83646=f(0.58000)*/ +{11, 0,123,__LINE__, 0x3fea9710, 0xecd09a47, 0x3fe2e147, 0xae147aed}, /* 0.83094=f(0.59000)*/ +{11, 0,123,__LINE__, 0x3fea6926, 0x35185fe0, 0x3fe33333, 0x3333333f}, /* 0.82533=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3fea3a8e, 0x744d73ec, 0x3fe3851e, 0xb851eb91}, /* 0.81964=f(0.61000)*/ +{11, 0,123,__LINE__, 0x3fea0b4a, 0xd4b55b88, 0x3fe3d70a, 0x3d70a3e3}, /* 0.81387=f(0.62000)*/ +{11, 0,123,__LINE__, 0x3fe9db5c, 0x80783b01, 0x3fe428f5, 0xc28f5c35}, /* 0.80802=f(0.63000)*/ +{11, 0,123,__LINE__, 0x3fe9aac4, 0xbc3dfc32, 0x3fe47ae1, 0x47ae1487}, /* 0.80209=f(0.64000)*/ +{11, 0,123,__LINE__, 0x3fe97984, 0xc1262700, 0x3fe4cccc, 0xccccccd9}, /* 0.79608=f(0.65000)*/ +{11, 0,123,__LINE__, 0x3fe9479d, 0xbef879b6, 0x3fe51eb8, 0x51eb852b}, /* 0.78999=f(0.66000)*/ +{11, 0,123,__LINE__, 0x3fe91511, 0x263efc70, 0x3fe570a3, 0xd70a3d7d}, /* 0.78382=f(0.67000)*/ +{11, 0,123,__LINE__, 0x3fe8e1e0, 0x2df71e7a, 0x3fe5c28f, 0x5c28f5cf}, /* 0.77757=f(0.68000)*/ +{11, 0,123,__LINE__, 0x3fe8ae0c, 0x1de43e3a, 0x3fe6147a, 0xe147ae21}, /* 0.77124=f(0.69000)*/ +{11, 0,123,__LINE__, 0x3fe87996, 0x5a02a255, 0x3fe66666, 0x66666673}, /* 0.76484=f(0.70000)*/ +{11, 0,123,__LINE__, 0x3fe84480, 0x26985537, 0x3fe6b851, 0xeb851ec5}, /* 0.75836=f(0.71000)*/ +{11, 0,123,__LINE__, 0x3fe80eca, 0xd8cd0730, 0x3fe70a3d, 0x70a3d717}, /* 0.75180=f(0.72000)*/ +{11, 0,123,__LINE__, 0x3fe7d877, 0xf4922fc2, 0x3fe75c28, 0xf5c28f69}, /* 0.74517=f(0.73000)*/ +{11, 0,123,__LINE__, 0x3fe7a188, 0xcebd2ad0, 0x3fe7ae14, 0x7ae147bb}, /* 0.73846=f(0.74000)*/ +{11, 0,123,__LINE__, 0x3fe769fe, 0xc759d4a6, 0x3fe80000, 0x0000000d}, /* 0.73168=f(0.75000)*/ +{11, 0,123,__LINE__, 0x3fe731db, 0x4bdce1fd, 0x3fe851eb, 0x851eb85f}, /* 0.72483=f(0.76000)*/ +{11, 0,123,__LINE__, 0x3fe6f91f, 0xd0223e86, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.71791=f(0.77000)*/ +{11, 0,123,__LINE__, 0x3fe6bfcd, 0xcb101331, 0x3fe8f5c2, 0x8f5c2903}, /* 0.71091=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3fe685e6, 0x937f0fd2, 0x3fe947ae, 0x147ae155}, /* 0.70384=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3fe64b6b, 0xda1a09d4, 0x3fe99999, 0x999999a7}, /* 0.69670=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3fe6105f, 0x029c4897, 0x3fe9eb85, 0x1eb851f9}, /* 0.68949=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3fe5d4c1, 0x93909c56, 0x3fea3d70, 0xa3d70a4b}, /* 0.68222=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3fe59895, 0x1075f62e, 0x3fea8f5c, 0x28f5c29d}, /* 0.67487=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3fe55bdb, 0x08c37bdb, 0x3feae147, 0xae147aef}, /* 0.66746=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3fe51e94, 0xf15bcc5f, 0x3feb3333, 0x33333341}, /* 0.65998=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3fe4e0c4, 0x85c6d4e2, 0x3feb851e, 0xb851eb93}, /* 0.65243=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3fe4a26b, 0x46dce8de, 0x3febd70a, 0x3d70a3e5}, /* 0.64482=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3fe4638a, 0xccccaec9, 0x3fec28f5, 0xc28f5c37}, /* 0.63715=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3fe42424, 0xb55f3745, 0x3fec7ae1, 0x47ae1489}, /* 0.62941=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3fe3e43a, 0xa115e4b3, 0x3feccccc, 0xccccccdb}, /* 0.62160=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3fe3a3ce, 0x1571b662, 0x3fed1eb8, 0x51eb852d}, /* 0.61374=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3fe362e0, 0xee9020f0, 0x3fed70a3, 0xd70a3d7f}, /* 0.60582=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3fe32174, 0xb7b19b41, 0x3fedc28f, 0x5c28f5d1}, /* 0.59783=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3fe2df8b, 0x24080e04, 0x3fee147a, 0xe147ae23}, /* 0.58978=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3fe29d25, 0xdf140a48, 0x3fee6666, 0x66666675}, /* 0.58168=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3fe25a46, 0x9fc480b0, 0x3feeb851, 0xeb851ec7}, /* 0.57352=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3fe216ee, 0xfda37c59, 0x3fef0a3d, 0x70a3d719}, /* 0.56529=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3fe1d320, 0xeab1b237, 0x3fef5c28, 0xf5c28f6b}, /* 0.55702=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3fe18ede, 0x06194bac, 0x3fefae14, 0x7ae147bd}, /* 0.54868=f(0.99000)*/ +{11, 0,123,__LINE__, 0x3fe14a28, 0x109b247f, 0x3ff00000, 0x00000007}, /* 0.54030=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fe10500, 0xcb0bc271, 0x3ff028f5, 0xc28f5c30}, /* 0.53186=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3fe0bf69, 0xfc089254, 0x3ff051eb, 0x851eb859}, /* 0.52336=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fe07965, 0x6b578e35, 0x3ff07ae1, 0x47ae1482}, /* 0.51481=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fe032f4, 0xe5302499, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.50622=f(1.04000)*/ +{10, 0,123,__LINE__, 0x3fdfd834, 0x69a59055, 0x3ff0cccc, 0xccccccd4}, /* 0.49757=f(1.05000)*/ +{10, 0,123,__LINE__, 0x3fdf49ae, 0x55edce4d, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.48887=f(1.06000)*/ +{10, 0,123,__LINE__, 0x3fdeba5a, 0xc8481ce3, 0x3ff11eb8, 0x51eb8526}, /* 0.48012=f(1.07000)*/ +{10, 0,123,__LINE__, 0x3fde2a3e, 0x479b2dea, 0x3ff147ae, 0x147ae14f}, /* 0.47132=f(1.08000)*/ +{10, 0,123,__LINE__, 0x3fdd995c, 0x19b2b427, 0x3ff170a3, 0xd70a3d78}, /* 0.46248=f(1.09000)*/ +{10, 0,123,__LINE__, 0x3fdd07b7, 0xf0ca58aa, 0x3ff19999, 0x999999a1}, /* 0.45359=f(1.10000)*/ +{10, 0,123,__LINE__, 0x3fdc7555, 0x85478abd, 0x3ff1c28f, 0x5c28f5ca}, /* 0.44466=f(1.11000)*/ +{10, 0,123,__LINE__, 0x3fdbe238, 0x9aef2562, 0x3ff1eb85, 0x1eb851f3}, /* 0.43568=f(1.12000)*/ +{10, 0,123,__LINE__, 0x3fdb4e64, 0xf3c101c3, 0x3ff2147a, 0xe147ae1c}, /* 0.42665=f(1.13000)*/ +{10, 0,123,__LINE__, 0x3fdab9de, 0x5ae860cf, 0x3ff23d70, 0xa3d70a45}, /* 0.41759=f(1.14000)*/ +{10, 0,123,__LINE__, 0x3fda24a8, 0x99317fa1, 0x3ff26666, 0x6666666e}, /* 0.40848=f(1.15000)*/ +{10, 0,123,__LINE__, 0x3fd98ec7, 0x82e20910, 0x3ff28f5c, 0x28f5c297}, /* 0.39933=f(1.16000)*/ +{10, 0,123,__LINE__, 0x3fd8f83e, 0xeece9b82, 0x3ff2b851, 0xeb851ec0}, /* 0.39015=f(1.17000)*/ +{10, 0,123,__LINE__, 0x3fd86112, 0xb8048f74, 0x3ff2e147, 0xae147ae9}, /* 0.38092=f(1.18000)*/ +{10, 0,123,__LINE__, 0x3fd7c946, 0x44916898, 0x3ff30a3d, 0x70a3d712}, /* 0.37165=f(1.19000)*/ +{11, 0,123,__LINE__, 0x3fefffff, 0xff660711, 0xc01921fb, 0x54442d18}, /* 1.00000=f(-6.28318)*/ +{ 0, 0,123,__LINE__, 0xbfefffff, 0xf488d2e8, 0xc00921fb, 0x54442d18}, /* -1.00000=f(-3.14159)*/ +{ 0, 0,123,__LINE__, 0xbe6777a5, 0xbffffffe, 0xbff921fb, 0x54442d18}, /* -4.37114e-08=f(-1.57079)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x01bcb4a2, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0xbe6777a5, 0xcffffffe, 0x3ff921fb, 0x54442d18}, /* -4.37114e-08=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0xbfefffff, 0xfeba37c9, 0x400921fb, 0x54442d18}, /* -1.00000=f(3.14159)*/ +{ 2, 0,123,__LINE__, 0x00000000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 0.00000=f(4.71238)*/ +{10, 0,123,__LINE__, 0x3fc3be77, 0xd9039f8f, 0xc03e0000, 0x00000000}, /* 0.15425=f(-30.0000)*/ +{11, 0,123,__LINE__, 0xbfeffd4d, 0x66996f21, 0xc03c4ccc, 0xcccccccd}, /* -0.99967=f(-28.3000)*/ +{ 9, 0,123,__LINE__, 0x3fba755f, 0x155c7118, 0xc03a9999, 0x9999999a}, /* 0.10335=f(-26.6000)*/ +{ 0, 0,123,__LINE__, 0x3fef231f, 0x6f3f3ca0, 0xc038e666, 0x66666667}, /* 0.97303=f(-24.9000)*/ +{ 0, 0,123,__LINE__, 0xbfd6a97a, 0x962ef6e4, 0xc0373333, 0x33333334}, /* -0.35409=f(-23.2000)*/ +{ 0, 0,123,__LINE__, 0xbfec37a2, 0x1e9b4f00, 0xc0358000, 0x00000001}, /* -0.88179=f(-21.5000)*/ +{ 0, 0,123,__LINE__, 0x3fe29a33, 0x30ebb046, 0xc033cccc, 0xccccccce}, /* 0.58132=f(-19.8000)*/ +{11, 0,123,__LINE__, 0x3fe76c78, 0x93585ae8, 0xc0321999, 0x9999999b}, /* 0.73199=f(-18.1000)*/ +{11, 0,123,__LINE__, 0xbfe8a36a, 0x745f3a49, 0xc0306666, 0x66666668}, /* -0.76994=f(-16.4000)*/ +{ 0, 0,123,__LINE__, 0xbfe1131f, 0x28a6a080, 0xc02d6666, 0x6666666a}, /* -0.53358=f(-14.7000)*/ +{11, 0,123,__LINE__, 0x3fed09cd, 0xb9999ea0, 0xc02a0000, 0x00000004}, /* 0.90744=f(-13.0000)*/ +{10, 0,123,__LINE__, 0x3fd32f08, 0x6966ae1f, 0xc0269999, 0x9999999e}, /* 0.29974=f(-11.3000)*/ +{11, 0,123,__LINE__, 0xbfef828f, 0xec560908, 0xc0233333, 0x33333338}, /* -0.98468=f(-9.60000)*/ +{ 9, 0,123,__LINE__, 0xbfa78d8f, 0x1258fe1a, 0xc01f9999, 0x999999a3}, /* -0.04600=f(-7.90000)*/ +{ 0, 0,123,__LINE__, 0x3fefe3ac, 0x2775c725, 0xc018cccc, 0xccccccd6}, /* 0.99654=f(-6.20000)*/ +{ 0, 0,123,__LINE__, 0xbfcafb5a, 0xb5b1666e, 0xc0120000, 0x00000009}, /* -0.21079=f(-4.50000)*/ +{ 0, 0,123,__LINE__, 0xbfee26af, 0x70735450, 0xc0066666, 0x66666678}, /* -0.94222=f(-2.80000)*/ +{10, 0,123,__LINE__, 0x3fdd07b7, 0xf0ca58aa, 0xbff19999, 0x999999bd}, /* 0.45359=f(-1.10000)*/ +{11, 0,123,__LINE__, 0x3fea6926, 0x35185fe0, 0x3fe33333, 0x333332ec}, /* 0.82533=f(0.60000)*/ +{ 0, 0,123,__LINE__, 0xbfe55222, 0x04e9b384, 0x40026666, 0x66666654}, /* -0.66627=f(2.30000)*/ +{11, 0,123,__LINE__, 0xbfe4eaa6, 0x04ad05cd, 0x400fffff, 0xffffffee}, /* -0.65364=f(4.00000)*/ +{ 0, 0,123,__LINE__, 0x3feab5f7, 0x57340e80, 0x4016cccc, 0xccccccc4}, /* 0.83471=f(5.70000)*/ +{ 0, 0,123,__LINE__, 0x3fdc1128, 0x7ee705d3, 0x401d9999, 0x99999991}, /* 0.43854=f(7.40000)*/ +{11, 0,123,__LINE__, 0xbfee53bc, 0x2ba72cdc, 0x40223333, 0x3333332f}, /* -0.94772=f(9.10000)*/ +{10, 0,123,__LINE__, 0xbfc8dfcf, 0xdc490833, 0x40259999, 0x99999995}, /* -0.19433=f(10.8000)*/ +{11, 0,123,__LINE__, 0x3fefedf6, 0x9b59a000, 0x4028ffff, 0xfffffffb}, /* 0.99779=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0xbfb0130f, 0xfe49e1a7, 0x402c6666, 0x66666661}, /* -0.06279=f(14.2000)*/ +{ 0, 0,123,__LINE__, 0xbfef6969, 0x2efc6a80, 0x402fcccc, 0xccccccc7}, /* -0.98161=f(15.9000)*/ +{10, 0,123,__LINE__, 0x3fd43527, 0x45526310, 0x40319999, 0x99999997}, /* 0.31574=f(17.6000)*/ +{ 0, 0,123,__LINE__, 0x3feccee1, 0xc1484f2d, 0x40334ccc, 0xccccccca}, /* 0.90025=f(19.3000)*/ +{ 0, 0,123,__LINE__, 0xbfe186ff, 0xb77ac7fd, 0x4034ffff, 0xfffffffd}, /* -0.54772=f(21.0000)*/ +{11, 0,123,__LINE__, 0xbfe84a9f, 0xf8fc162d, 0x4036b333, 0x33333330}, /* -0.75910=f(22.7000)*/ +{11, 0,123,__LINE__, 0x3fe7c977, 0xd250fb00, 0x40386666, 0x66666663}, /* 0.74334=f(24.4000)*/ +{11, 0,123,__LINE__, 0x3fe22970, 0x1c349058, 0x403a1999, 0x99999996}, /* 0.56755=f(26.1000)*/ +{11, 0,123,__LINE__, 0xbfec7793, 0xaf30f05a, 0x403bcccc, 0xccccccc9}, /* -0.88959=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0xbfd5a705, 0xdb0448d3, 0x403d7fff, 0xfffffffc}, /* -0.33831=f(29.5000)*/ +0,}; +test_cosf(m) {run_vector_1(m,cosf_vec,(char *)(cosf),"cosf","ff"); } diff --git a/newlib/libm/test/cosh_vec.c b/newlib/libm/test/cosh_vec.c new file mode 100644 index 000000000..c8d47e398 --- /dev/null +++ b/newlib/libm/test/cosh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type cosh_vec[] = { +{63, 0,123,__LINE__, 0x3ffcf871, 0xf8dfa802, 0xbff33333, 0x33333333}, /* 1.81065=f(-1.20000)*/ +{58, 0,123,__LINE__, 0x3ffcbafc, 0xca475e1f, 0xbff30a3d, 0x70a3d70a}, /* 1.79565=f(-1.19000)*/ +{63, 0,123,__LINE__, 0x3ffc7e43, 0xe5bb3dd8, 0xbff2e147, 0xae147ae1}, /* 1.78082=f(-1.18000)*/ +{61, 0,123,__LINE__, 0x3ffc4245, 0xbd476b73, 0xbff2b851, 0xeb851eb8}, /* 1.76618=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3ffc0700, 0xc7bfd6ca, 0xbff28f5c, 0x28f5c28f}, /* 1.75171=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3ffbcc73, 0x80b62a84, 0xbff26666, 0x66666666}, /* 1.73741=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3ffb929c, 0x686fda70, 0xbff23d70, 0xa3d70a3d}, /* 1.72329=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3ffb597a, 0x03dc50b7, 0xbff2147a, 0xe147ae14}, /* 1.70934=f(-1.13000)*/ +{61, 0,123,__LINE__, 0x3ffb210a, 0xdc8b399b, 0xbff1eb85, 0x1eb851eb}, /* 1.69556=f(-1.12000)*/ +{63, 0,123,__LINE__, 0x3ffae94d, 0x80a2ed80, 0xbff1c28f, 0x5c28f5c2}, /* 1.68195=f(-1.11000)*/ +{59, 0,123,__LINE__, 0x3ffab240, 0x82d6f90f, 0xbff19999, 0x99999999}, /* 1.66851=f(-1.10000)*/ +{63, 0,123,__LINE__, 0x3ffa7be2, 0x7a5ec32e, 0xbff170a3, 0xd70a3d70}, /* 1.65524=f(-1.09000)*/ +{62, 0,123,__LINE__, 0x3ffa4632, 0x02ec508a, 0xbff147ae, 0x147ae147}, /* 1.64213=f(-1.08000)*/ +{62, 0,123,__LINE__, 0x3ffa112d, 0xbca32482, 0xbff11eb8, 0x51eb851e}, /* 1.62919=f(-1.07000)*/ +{63, 0,123,__LINE__, 0x3ff9dcd4, 0x4c0f3f1f, 0xbff0f5c2, 0x8f5c28f5}, /* 1.61641=f(-1.06000)*/ +{63, 0,123,__LINE__, 0x3ff9a924, 0x5a1c3817, 0xbff0cccc, 0xcccccccc}, /* 1.60379=f(-1.05000)*/ +{63, 0,123,__LINE__, 0x3ff9761c, 0x940c7647, 0xbff0a3d7, 0x0a3d70a3}, /* 1.59133=f(-1.04000)*/ +{62, 0,123,__LINE__, 0x3ff943bb, 0xab7083c1, 0xbff07ae1, 0x47ae147a}, /* 1.57903=f(-1.03000)*/ +{63, 0,123,__LINE__, 0x3ff91200, 0x561e7e0c, 0xbff051eb, 0x851eb851}, /* 1.56689=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3ff8e0e9, 0x4e29a24a, 0xbff028f5, 0xc28f5c28}, /* 1.55491=f(-1.01000)*/ +{59, 0,123,__LINE__, 0x3ff8b075, 0x51d9f54f, 0xbfefffff, 0xfffffffe}, /* 1.54308=f(-0.01000)*/ +{58, 0,123,__LINE__, 0x3ff880a3, 0x23a40720, 0xbfefae14, 0x7ae147ac}, /* 1.53140=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3ff85171, 0x8a20d1e6, 0xbfef5c28, 0xf5c28f5a}, /* 1.51988=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3ff822df, 0x5005b406, 0xbfef0a3d, 0x70a3d708}, /* 1.50851=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3ff7f4eb, 0x441c8516, 0xbfeeb851, 0xeb851eb6}, /* 1.49729=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x3ff7c794, 0x393bc5a6, 0xbfee6666, 0x66666664}, /* 1.48622=f(-0.95000)*/ +{63, 0,123,__LINE__, 0x3ff79ad9, 0x063ee989, 0xbfee147a, 0xe147ae12}, /* 1.47530=f(-0.94000)*/ +{61, 0,123,__LINE__, 0x3ff76eb8, 0x85febc75, 0xbfedc28f, 0x5c28f5c0}, /* 1.46453=f(-0.93000)*/ +{63, 0,123,__LINE__, 0x3ff74331, 0x9749e0c5, 0xbfed70a3, 0xd70a3d6e}, /* 1.45390=f(-0.92000)*/ +{61, 0,123,__LINE__, 0x3ff71843, 0x1cdd683c, 0xbfed1eb8, 0x51eb851c}, /* 1.44342=f(-0.91000)*/ +{62, 0,123,__LINE__, 0x3ff6edeb, 0xfd5d867d, 0xbfeccccc, 0xccccccca}, /* 1.43308=f(-0.90000)*/ +{61, 0,123,__LINE__, 0x3ff6c42b, 0x234e5d23, 0xbfec7ae1, 0x47ae1478}, /* 1.42289=f(-0.89000)*/ +{63, 0,123,__LINE__, 0x3ff69aff, 0x7d0ce134, 0xbfec28f5, 0xc28f5c26}, /* 1.41284=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3ff67267, 0xfcc7d9d2, 0xbfebd70a, 0x3d70a3d4}, /* 1.40293=f(-0.87000)*/ +{60, 0,123,__LINE__, 0x3ff64a63, 0x9878f7e8, 0xbfeb851e, 0xb851eb82}, /* 1.39316=f(-0.86000)*/ +{63, 0,123,__LINE__, 0x3ff622f1, 0x49de06d1, 0xbfeb3333, 0x33333330}, /* 1.38353=f(-0.85000)*/ +{63, 0,123,__LINE__, 0x3ff5fc10, 0x0e72357b, 0xbfeae147, 0xae147ade}, /* 1.37403=f(-0.84000)*/ +{57, 0,123,__LINE__, 0x3ff5d5be, 0xe7677840, 0xbfea8f5c, 0x28f5c28c}, /* 1.36468=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3ff5affc, 0xd9a002ef, 0xbfea3d70, 0xa3d70a3a}, /* 1.35546=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3ff58ac8, 0xeda7db19, 0xbfe9eb85, 0x1eb851e8}, /* 1.34638=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3ff56622, 0x2fae8258, 0xbfe99999, 0x99999996}, /* 1.33743=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3ff54207, 0xaf80b86e, 0xbfe947ae, 0x147ae144}, /* 1.32862=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3ff51e78, 0x80825514, 0xbfe8f5c2, 0x8f5c28f2}, /* 1.31993=f(-0.78000)*/ +{63, 0,123,__LINE__, 0x3ff4fb73, 0xb9a8394f, 0xbfe8a3d7, 0x0a3d70a0}, /* 1.31139=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3ff4d8f8, 0x7572582a, 0xbfe851eb, 0x851eb84e}, /* 1.30297=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x3ff4b705, 0xd1e5d6a5, 0xbfe7ffff, 0xfffffffc}, /* 1.29468=f(-0.75000)*/ +{63, 0,123,__LINE__, 0x3ff4959a, 0xf08742b7, 0xbfe7ae14, 0x7ae147aa}, /* 1.28652=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3ff474b6, 0xf654e136, 0xbfe75c28, 0xf5c28f58}, /* 1.27849=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3ff45459, 0x0bc11295, 0xbfe70a3d, 0x70a3d706}, /* 1.27059=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3ff43480, 0x5cacce30, 0xbfe6b851, 0xeb851eb4}, /* 1.26281=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3ff4152c, 0x1862342d, 0xbfe66666, 0x66666662}, /* 1.25516=f(-0.70000)*/ +{63, 0,123,__LINE__, 0x3ff3f65b, 0x718f359f, 0xbfe6147a, 0xe147ae10}, /* 1.24764=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3ff3d80d, 0x9e4052f4, 0xbfe5c28f, 0x5c28f5be}, /* 1.24024=f(-0.68000)*/ +{62, 0,123,__LINE__, 0x3ff3ba41, 0xd7db706d, 0xbfe570a3, 0xd70a3d6c}, /* 1.23297=f(-0.67000)*/ +{59, 0,123,__LINE__, 0x3ff39cf7, 0x5b1ac090, 0xbfe51eb8, 0x51eb851a}, /* 1.22582=f(-0.66000)*/ +{62, 0,123,__LINE__, 0x3ff3802d, 0x6807c462, 0xbfe4cccc, 0xccccccc8}, /* 1.21879=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x3ff363e3, 0x41f6615e, 0xbfe47ae1, 0x47ae1476}, /* 1.21188=f(-0.64000)*/ +{63, 0,123,__LINE__, 0x3ff34818, 0x2f800cf6, 0xbfe428f5, 0xc28f5c24}, /* 1.20510=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3ff32ccb, 0x7a7f0d82, 0xbfe3d70a, 0x3d70a3d2}, /* 1.19843=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3ff311fc, 0x7009d086, 0xbfe3851e, 0xb851eb80}, /* 1.19189=f(-0.61000)*/ +{63, 0,123,__LINE__, 0x3ff2f7aa, 0x606e562e, 0xbfe33333, 0x3333332e}, /* 1.18546=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3ff2ddd4, 0x9f2db1db, 0xbfe2e147, 0xae147adc}, /* 1.17915=f(-0.59000)*/ +{62, 0,123,__LINE__, 0x3ff2c47a, 0x82f79fa1, 0xbfe28f5c, 0x28f5c28a}, /* 1.17296=f(-0.58000)*/ +{61, 0,123,__LINE__, 0x3ff2ab9b, 0x65a62eb3, 0xbfe23d70, 0xa3d70a38}, /* 1.16689=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3ff29336, 0xa439807c, 0xbfe1eb85, 0x1eb851e6}, /* 1.16094=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3ff27b4b, 0x9ed39c60, 0xbfe19999, 0x99999994}, /* 1.15510=f(-0.55000)*/ +{60, 0,123,__LINE__, 0x3ff263d9, 0xb8b45807, 0xbfe147ae, 0x147ae142}, /* 1.14937=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3ff24ce0, 0x58355416, 0xbfe0f5c2, 0x8f5c28f0}, /* 1.14376=f(-0.53000)*/ +{62, 0,123,__LINE__, 0x3ff2365e, 0xe6c60d31, 0xbfe0a3d7, 0x0a3d709e}, /* 1.13827=f(-0.52000)*/ +{63, 0,123,__LINE__, 0x3ff22054, 0xd0e80140, 0xbfe051eb, 0x851eb84c}, /* 1.13289=f(-0.51000)*/ +{63, 0,123,__LINE__, 0x3ff20ac1, 0x862ae8ce, 0xbfdfffff, 0xfffffff4}, /* 1.12762=f(-0.50000)*/ +{63, 0,123,__LINE__, 0x3ff1f5a4, 0x7929046e, 0xbfdf5c28, 0xf5c28f50}, /* 1.12247=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x3ff1e0fd, 0x1f837e10, 0xbfdeb851, 0xeb851eac}, /* 1.11742=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3ff1ccca, 0xf1dede2c, 0xbfde147a, 0xe147ae08}, /* 1.11249=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3ff1b90d, 0x6bdf94ad, 0xbfdd70a3, 0xd70a3d64}, /* 1.10767=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x3ff1a5c4, 0x0c269582, 0xbfdccccc, 0xccccccc0}, /* 1.10297=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3ff192ee, 0x544e08c8, 0xbfdc28f5, 0xc28f5c1c}, /* 1.09837=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3ff1808b, 0xc8e60e64, 0xbfdb851e, 0xb851eb78}, /* 1.09388=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3ff16e9b, 0xf1719512, 0xbfdae147, 0xae147ad4}, /* 1.08950=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3ff15d1e, 0x586344c1, 0xbfda3d70, 0xa3d70a30}, /* 1.08523=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3ff14c12, 0x8b1a7c2a, 0xbfd99999, 0x9999998c}, /* 1.08107=f(-0.40000)*/ +{63, 0,123,__LINE__, 0x3ff13b78, 0x19e0619a, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.07701=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3ff12b4e, 0x97e506cd, 0xbfd851eb, 0x851eb844}, /* 1.07307=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3ff11b95, 0x9b3c9fcd, 0xbfd7ae14, 0x7ae147a0}, /* 1.06923=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3ff10c4c, 0xbcdcccca, 0xbfd70a3d, 0x70a3d6fc}, /* 1.06550=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3ff0fd73, 0x9899f6d1, 0xbfd66666, 0x66666658}, /* 1.06187=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3ff0ef09, 0xcd24bf4b, 0xbfd5c28f, 0x5c28f5b4}, /* 1.05835=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3ff0e10e, 0xfc078243, 0xbfd51eb8, 0x51eb8510}, /* 1.05494=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3ff0d382, 0xc9a3eb5c, 0xbfd47ae1, 0x47ae146c}, /* 1.05163=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3ff0c664, 0xdd309d5c, 0xbfd3d70a, 0x3d70a3c8}, /* 1.04843=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3ff0b9b4, 0xe0b6ec4a, 0xbfd33333, 0x33333324}, /* 1.04533=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3ff0ad72, 0x8110aa19, 0xbfd28f5c, 0x28f5c280}, /* 1.04234=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3ff0a19d, 0x6de605ab, 0xbfd1eb85, 0x1eb851dc}, /* 1.03945=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3ff09635, 0x59ab7c50, 0xbfd147ae, 0x147ae138}, /* 1.03667=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3ff08b39, 0xf99fdd92, 0xbfd0a3d7, 0x0a3d7094}, /* 1.03399=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3ff080ab, 0x05ca6145, 0xbfcfffff, 0xffffffe0}, /* 1.03141=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3ff07688, 0x38f8cfde, 0xbfceb851, 0xeb851e98}, /* 1.02893=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3ff06cd1, 0x50bdbcf5, 0xbfcd70a3, 0xd70a3d50}, /* 1.02656=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3ff06386, 0x0d6ed3ec, 0xbfcc28f5, 0xc28f5c08}, /* 1.02429=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3ff05aa6, 0x322336b4, 0xbfcae147, 0xae147ac0}, /* 1.02213=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3ff05231, 0x84b1ee9c, 0xbfc99999, 0x99999978}, /* 1.02006=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3ff04a27, 0xcdb06f29, 0xbfc851eb, 0x851eb830}, /* 1.01810=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3ff04288, 0xd8712ae7, 0xbfc70a3d, 0x70a3d6e8}, /* 1.01624=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3ff03b54, 0x73023a32, 0xbfc5c28f, 0x5c28f5a0}, /* 1.01448=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3ff0348a, 0x6e2c13de, 0xbfc47ae1, 0x47ae1458}, /* 1.01282=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3ff02e2a, 0x9d7057c8, 0xbfc33333, 0x33333310}, /* 1.01127=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3ff02834, 0xd708ab3d, 0xbfc1eb85, 0x1eb851c8}, /* 1.00981=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3ff022a8, 0xf3e5a732, 0xbfc0a3d7, 0x0a3d7080}, /* 1.00846=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3ff01d86, 0xcfadd84c, 0xbfbeb851, 0xeb851e71}, /* 1.00720=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3ff018ce, 0x48bcd09e, 0xbfbc28f5, 0xc28f5be2}, /* 1.00605=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3ff0147f, 0x40224b38, 0xbfb99999, 0x99999953}, /* 1.00500=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3ff01099, 0x99a16160, 0xbfb70a3d, 0x70a3d6c4}, /* 1.00405=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3ff00d1d, 0x3bafd17f, 0xbfb47ae1, 0x47ae1435}, /* 1.00320=f(-0.08000)*/ +{60, 0,123,__LINE__, 0x3ff00a0a, 0x0f7557c8, 0xbfb1eb85, 0x1eb851a6}, /* 1.00245=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3ff00760, 0x00cb1875, 0xbfaeb851, 0xeb851e2d}, /* 1.00180=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3ff0051e, 0xfe3b1bc2, 0xbfa99999, 0x9999990e}, /* 1.00125=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3ff00346, 0xf8ffdb76, 0xbfa47ae1, 0x47ae13ef}, /* 1.00080=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3ff001d7, 0xe503e214, 0xbf9eb851, 0xeb851da0}, /* 1.00045=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3ff000d1, 0xb8e17bb0, 0xbf947ae1, 0x47ae1362}, /* 1.00020=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3ff00034, 0x6de27852, 0xbf847ae1, 0x47ae1249}, /* 1.00005=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3ff00034, 0x6de27853, 0x3f847ae1, 0x47ae16ad}, /* 1.00005=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3ff000d1, 0xb8e17bb0, 0x3f947ae1, 0x47ae1594}, /* 1.00020=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3ff001d7, 0xe503e214, 0x3f9eb851, 0xeb851fd2}, /* 1.00045=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3ff00346, 0xf8ffdb76, 0x3fa47ae1, 0x47ae1508}, /* 1.00080=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3ff0051e, 0xfe3b1bc3, 0x3fa99999, 0x99999a27}, /* 1.00125=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3ff00760, 0x00cb1876, 0x3faeb851, 0xeb851f46}, /* 1.00180=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3ff00a0a, 0x0f7557c8, 0x3fb1eb85, 0x1eb85232}, /* 1.00245=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3ff00d1d, 0x3bafd180, 0x3fb47ae1, 0x47ae14c1}, /* 1.00320=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3ff01099, 0x99a16160, 0x3fb70a3d, 0x70a3d750}, /* 1.00405=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3ff0147f, 0x40224b39, 0x3fb99999, 0x999999df}, /* 1.00500=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3ff018ce, 0x48bcd09f, 0x3fbc28f5, 0xc28f5c6e}, /* 1.00605=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3ff01d86, 0xcfadd84c, 0x3fbeb851, 0xeb851efd}, /* 1.00720=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3ff022a8, 0xf3e5a734, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.00846=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3ff02834, 0xd708ab3e, 0x3fc1eb85, 0x1eb8520e}, /* 1.00981=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3ff02e2a, 0x9d7057ca, 0x3fc33333, 0x33333356}, /* 1.01127=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3ff0348a, 0x6e2c13e0, 0x3fc47ae1, 0x47ae149e}, /* 1.01282=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3ff03b54, 0x73023a34, 0x3fc5c28f, 0x5c28f5e6}, /* 1.01448=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3ff04288, 0xd8712ae9, 0x3fc70a3d, 0x70a3d72e}, /* 1.01624=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3ff04a27, 0xcdb06f2a, 0x3fc851eb, 0x851eb876}, /* 1.01810=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3ff05231, 0x84b1ee9e, 0x3fc99999, 0x999999be}, /* 1.02006=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3ff05aa6, 0x322336b6, 0x3fcae147, 0xae147b06}, /* 1.02213=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3ff06386, 0x0d6ed3ee, 0x3fcc28f5, 0xc28f5c4e}, /* 1.02429=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3ff06cd1, 0x50bdbcf7, 0x3fcd70a3, 0xd70a3d96}, /* 1.02656=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3ff07688, 0x38f8cfe0, 0x3fceb851, 0xeb851ede}, /* 1.02893=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3ff080ab, 0x05ca6147, 0x3fd00000, 0x00000013}, /* 1.03141=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3ff08b39, 0xf99fdd94, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.03399=f(0.26000)*/ +{63, 0,123,__LINE__, 0x3ff09635, 0x59ab7c53, 0x3fd147ae, 0x147ae15b}, /* 1.03667=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3ff0a19d, 0x6de605ad, 0x3fd1eb85, 0x1eb851ff}, /* 1.03945=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3ff0ad72, 0x8110aa1c, 0x3fd28f5c, 0x28f5c2a3}, /* 1.04234=f(0.29000)*/ +{62, 0,123,__LINE__, 0x3ff0b9b4, 0xe0b6ec4e, 0x3fd33333, 0x33333347}, /* 1.04533=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3ff0c664, 0xdd309d5e, 0x3fd3d70a, 0x3d70a3eb}, /* 1.04843=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3ff0d382, 0xc9a3eb60, 0x3fd47ae1, 0x47ae148f}, /* 1.05163=f(0.32000)*/ +{63, 0,123,__LINE__, 0x3ff0e10e, 0xfc078246, 0x3fd51eb8, 0x51eb8533}, /* 1.05494=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3ff0ef09, 0xcd24bf4e, 0x3fd5c28f, 0x5c28f5d7}, /* 1.05835=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3ff0fd73, 0x9899f6d4, 0x3fd66666, 0x6666667b}, /* 1.06187=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3ff10c4c, 0xbcdcccce, 0x3fd70a3d, 0x70a3d71f}, /* 1.06550=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3ff11b95, 0x9b3c9fd0, 0x3fd7ae14, 0x7ae147c3}, /* 1.06923=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3ff12b4e, 0x97e506d0, 0x3fd851eb, 0x851eb867}, /* 1.07307=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3ff13b78, 0x19e0619e, 0x3fd8f5c2, 0x8f5c290b}, /* 1.07701=f(0.39000)*/ +{62, 0,123,__LINE__, 0x3ff14c12, 0x8b1a7c2d, 0x3fd99999, 0x999999af}, /* 1.08107=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3ff15d1e, 0x586344c4, 0x3fda3d70, 0xa3d70a53}, /* 1.08523=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3ff16e9b, 0xf1719516, 0x3fdae147, 0xae147af7}, /* 1.08950=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3ff1808b, 0xc8e60e68, 0x3fdb851e, 0xb851eb9b}, /* 1.09388=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3ff192ee, 0x544e08cc, 0x3fdc28f5, 0xc28f5c3f}, /* 1.09837=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3ff1a5c4, 0x0c269587, 0x3fdccccc, 0xcccccce3}, /* 1.10297=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3ff1b90d, 0x6bdf94b1, 0x3fdd70a3, 0xd70a3d87}, /* 1.10767=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3ff1ccca, 0xf1dede30, 0x3fde147a, 0xe147ae2b}, /* 1.11249=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3ff1e0fd, 0x1f837e14, 0x3fdeb851, 0xeb851ecf}, /* 1.11742=f(0.48000)*/ +{63, 0,123,__LINE__, 0x3ff1f5a4, 0x79290472, 0x3fdf5c28, 0xf5c28f73}, /* 1.12247=f(0.49000)*/ +{61, 0,123,__LINE__, 0x3ff20ac1, 0x862ae8d3, 0x3fe00000, 0x0000000b}, /* 1.12762=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3ff22054, 0xd0e80146, 0x3fe051eb, 0x851eb85d}, /* 1.13289=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3ff2365e, 0xe6c60d36, 0x3fe0a3d7, 0x0a3d70af}, /* 1.13827=f(0.52000)*/ +{63, 0,123,__LINE__, 0x3ff24ce0, 0x5835541a, 0x3fe0f5c2, 0x8f5c2901}, /* 1.14376=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3ff263d9, 0xb8b4580c, 0x3fe147ae, 0x147ae153}, /* 1.14937=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3ff27b4b, 0x9ed39c65, 0x3fe19999, 0x999999a5}, /* 1.15510=f(0.55000)*/ +{62, 0,123,__LINE__, 0x3ff29336, 0xa4398081, 0x3fe1eb85, 0x1eb851f7}, /* 1.16094=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3ff2ab9b, 0x65a62eb8, 0x3fe23d70, 0xa3d70a49}, /* 1.16689=f(0.57000)*/ +{63, 0,123,__LINE__, 0x3ff2c47a, 0x82f79fa6, 0x3fe28f5c, 0x28f5c29b}, /* 1.17296=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3ff2ddd4, 0x9f2db1e0, 0x3fe2e147, 0xae147aed}, /* 1.17915=f(0.59000)*/ +{63, 0,123,__LINE__, 0x3ff2f7aa, 0x606e5634, 0x3fe33333, 0x3333333f}, /* 1.18546=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3ff311fc, 0x7009d08c, 0x3fe3851e, 0xb851eb91}, /* 1.19189=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3ff32ccb, 0x7a7f0d88, 0x3fe3d70a, 0x3d70a3e3}, /* 1.19843=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3ff34818, 0x2f800cfc, 0x3fe428f5, 0xc28f5c35}, /* 1.20510=f(0.63000)*/ +{63, 0,123,__LINE__, 0x3ff363e3, 0x41f66164, 0x3fe47ae1, 0x47ae1487}, /* 1.21188=f(0.64000)*/ +{63, 0,123,__LINE__, 0x3ff3802d, 0x6807c468, 0x3fe4cccc, 0xccccccd9}, /* 1.21879=f(0.65000)*/ +{62, 0,123,__LINE__, 0x3ff39cf7, 0x5b1ac095, 0x3fe51eb8, 0x51eb852b}, /* 1.22582=f(0.66000)*/ +{61, 0,123,__LINE__, 0x3ff3ba41, 0xd7db7073, 0x3fe570a3, 0xd70a3d7d}, /* 1.23297=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3ff3d80d, 0x9e4052fa, 0x3fe5c28f, 0x5c28f5cf}, /* 1.24024=f(0.68000)*/ +{62, 0,123,__LINE__, 0x3ff3f65b, 0x718f35a5, 0x3fe6147a, 0xe147ae21}, /* 1.24764=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3ff4152c, 0x18623434, 0x3fe66666, 0x66666673}, /* 1.25516=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3ff43480, 0x5cacce37, 0x3fe6b851, 0xeb851ec5}, /* 1.26281=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3ff45459, 0x0bc1129c, 0x3fe70a3d, 0x70a3d717}, /* 1.27059=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3ff474b6, 0xf654e13d, 0x3fe75c28, 0xf5c28f69}, /* 1.27849=f(0.73000)*/ +{62, 0,123,__LINE__, 0x3ff4959a, 0xf08742be, 0x3fe7ae14, 0x7ae147bb}, /* 1.28652=f(0.74000)*/ +{63, 0,123,__LINE__, 0x3ff4b705, 0xd1e5d6ad, 0x3fe80000, 0x0000000d}, /* 1.29468=f(0.75000)*/ +{63, 0,123,__LINE__, 0x3ff4d8f8, 0x75725831, 0x3fe851eb, 0x851eb85f}, /* 1.30297=f(0.76000)*/ +{63, 0,123,__LINE__, 0x3ff4fb73, 0xb9a83955, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.31139=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3ff51e78, 0x8082551c, 0x3fe8f5c2, 0x8f5c2903}, /* 1.31993=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3ff54207, 0xaf80b877, 0x3fe947ae, 0x147ae155}, /* 1.32862=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3ff56622, 0x2fae825f, 0x3fe99999, 0x999999a7}, /* 1.33743=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3ff58ac8, 0xeda7db20, 0x3fe9eb85, 0x1eb851f9}, /* 1.34638=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3ff5affc, 0xd9a002f6, 0x3fea3d70, 0xa3d70a4b}, /* 1.35546=f(0.82000)*/ +{60, 0,123,__LINE__, 0x3ff5d5be, 0xe7677848, 0x3fea8f5c, 0x28f5c29d}, /* 1.36468=f(0.83000)*/ +{61, 0,123,__LINE__, 0x3ff5fc10, 0x0e723584, 0x3feae147, 0xae147aef}, /* 1.37403=f(0.84000)*/ +{63, 0,123,__LINE__, 0x3ff622f1, 0x49de06d9, 0x3feb3333, 0x33333341}, /* 1.38353=f(0.85000)*/ +{62, 0,123,__LINE__, 0x3ff64a63, 0x9878f7f2, 0x3feb851e, 0xb851eb93}, /* 1.39316=f(0.86000)*/ +{63, 0,123,__LINE__, 0x3ff67267, 0xfcc7d9d8, 0x3febd70a, 0x3d70a3e5}, /* 1.40293=f(0.87000)*/ +{63, 0,123,__LINE__, 0x3ff69aff, 0x7d0ce13c, 0x3fec28f5, 0xc28f5c37}, /* 1.41284=f(0.88000)*/ +{63, 0,123,__LINE__, 0x3ff6c42b, 0x234e5d2c, 0x3fec7ae1, 0x47ae1489}, /* 1.42289=f(0.89000)*/ +{60, 0,123,__LINE__, 0x3ff6edeb, 0xfd5d8687, 0x3feccccc, 0xccccccdb}, /* 1.43308=f(0.90000)*/ +{61, 0,123,__LINE__, 0x3ff71843, 0x1cdd6844, 0x3fed1eb8, 0x51eb852d}, /* 1.44342=f(0.91000)*/ +{62, 0,123,__LINE__, 0x3ff74331, 0x9749e0ce, 0x3fed70a3, 0xd70a3d7f}, /* 1.45390=f(0.92000)*/ +{63, 0,123,__LINE__, 0x3ff76eb8, 0x85febc7f, 0x3fedc28f, 0x5c28f5d1}, /* 1.46453=f(0.93000)*/ +{61, 0,123,__LINE__, 0x3ff79ad9, 0x063ee994, 0x3fee147a, 0xe147ae23}, /* 1.47530=f(0.94000)*/ +{63, 0,123,__LINE__, 0x3ff7c794, 0x393bc5af, 0x3fee6666, 0x66666675}, /* 1.48622=f(0.95000)*/ +{58, 0,123,__LINE__, 0x3ff7f4eb, 0x441c8520, 0x3feeb851, 0xeb851ec7}, /* 1.49729=f(0.96000)*/ +{63, 0,123,__LINE__, 0x3ff822df, 0x5005b40f, 0x3fef0a3d, 0x70a3d719}, /* 1.50851=f(0.97000)*/ +{62, 0,123,__LINE__, 0x3ff85171, 0x8a20d1f2, 0x3fef5c28, 0xf5c28f6b}, /* 1.51988=f(0.98000)*/ +{62, 0,123,__LINE__, 0x3ff880a3, 0x23a4072a, 0x3fefae14, 0x7ae147bd}, /* 1.53140=f(0.99000)*/ +{63, 0,123,__LINE__, 0x3ff8b075, 0x51d9f558, 0x3ff00000, 0x00000007}, /* 1.54308=f(1.00000)*/ +{61, 0,123,__LINE__, 0x3ff8e0e9, 0x4e29a253, 0x3ff028f5, 0xc28f5c30}, /* 1.55491=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3ff91200, 0x561e7e16, 0x3ff051eb, 0x851eb859}, /* 1.56689=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ff943bb, 0xab7083ca, 0x3ff07ae1, 0x47ae1482}, /* 1.57903=f(1.03000)*/ +{59, 0,123,__LINE__, 0x3ff9761c, 0x940c7650, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.59133=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ff9a924, 0x5a1c3820, 0x3ff0cccc, 0xccccccd4}, /* 1.60379=f(1.05000)*/ +{62, 0,123,__LINE__, 0x3ff9dcd4, 0x4c0f3f2a, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.61641=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3ffa112d, 0xbca3248b, 0x3ff11eb8, 0x51eb8526}, /* 1.62919=f(1.07000)*/ +{63, 0,123,__LINE__, 0x3ffa4632, 0x02ec5097, 0x3ff147ae, 0x147ae14f}, /* 1.64213=f(1.08000)*/ +{62, 0,123,__LINE__, 0x3ffa7be2, 0x7a5ec339, 0x3ff170a3, 0xd70a3d78}, /* 1.65524=f(1.09000)*/ +{63, 0,123,__LINE__, 0x3ffab240, 0x82d6f91c, 0x3ff19999, 0x999999a1}, /* 1.66851=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3ffae94d, 0x80a2ed8b, 0x3ff1c28f, 0x5c28f5ca}, /* 1.68195=f(1.11000)*/ +{60, 0,123,__LINE__, 0x3ffb210a, 0xdc8b39a7, 0x3ff1eb85, 0x1eb851f3}, /* 1.69556=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ffb597a, 0x03dc50c2, 0x3ff2147a, 0xe147ae1c}, /* 1.70934=f(1.13000)*/ +{63, 0,123,__LINE__, 0x3ffb929c, 0x686fda7b, 0x3ff23d70, 0xa3d70a45}, /* 1.72329=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ffbcc73, 0x80b62a8f, 0x3ff26666, 0x6666666e}, /* 1.73741=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ffc0700, 0xc7bfd6d5, 0x3ff28f5c, 0x28f5c297}, /* 1.75171=f(1.16000)*/ +{62, 0,123,__LINE__, 0x3ffc4245, 0xbd476b80, 0x3ff2b851, 0xeb851ec0}, /* 1.76618=f(1.17000)*/ +{63, 0,123,__LINE__, 0x3ffc7e43, 0xe5bb3de2, 0x3ff2e147, 0xae147ae9}, /* 1.78082=f(1.18000)*/ +{61, 0,123,__LINE__, 0x3ffcbafc, 0xca475e2b, 0x3ff30a3d, 0x70a3d712}, /* 1.79565=f(1.19000)*/ +{60, 0,123,__LINE__, 0x4070bbf2, 0xbc2b69c8, 0xc01921fb, 0x54442d18}, /* 267.746=f(-6.28318)*/ +{62, 0,123,__LINE__, 0x404bd4e9, 0xaa3e9cdd, 0xc012d97c, 0x7f3321d2}, /* 55.6633=f(-4.71238)*/ +{63, 0,123,__LINE__, 0x40272f14, 0x7fee3fff, 0xc00921fb, 0x54442d18}, /* 11.5919=f(-3.14159)*/ +{58, 0,123,__LINE__, 0x400412cc, 0x2a8d4e9f, 0xbff921fb, 0x54442d18}, /* 2.50917=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{58, 0,123,__LINE__, 0x400412cc, 0x2a8d4e9f, 0x3ff921fb, 0x54442d18}, /* 2.50917=f(1.57079)*/ +{63, 0,123,__LINE__, 0x40272f14, 0x7fee3fff, 0x400921fb, 0x54442d18}, /* 11.5919=f(3.14159)*/ +{62, 0,123,__LINE__, 0x404bd4e9, 0xaa3e9cdd, 0x4012d97c, 0x7f3321d2}, /* 55.6633=f(4.71238)*/ +{63, 0,123,__LINE__, 0x42937047, 0x0aec28e4, 0xc03e0000, 0x00000000}, /* 5.34324e+12=f(-30.0000)*/ +{63, 0,123,__LINE__, 0x426c68ab, 0xda31cdb8, 0xc03c4ccc, 0xcccccccd}, /* 9.76121e+11=f(-28.3000)*/ +{60, 0,123,__LINE__, 0x4244c263, 0x8e2b5848, 0xc03a9999, 0x9999999a}, /* 1.78321e+11=f(-26.6000)*/ +{63, 0,123,__LINE__, 0x421e56cf, 0x7144c252, 0xc038e666, 0x66666667}, /* 3.25764e+10=f(-24.9000)*/ +{60, 0,123,__LINE__, 0x41f62b79, 0x1e77d137, 0xc0373333, 0x33333334}, /* 5.95116e+09=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x41d03343, 0x003272a8, 0xc0358000, 0x00000001}, /* 1.08718e+09=f(-21.5000)*/ +{62, 0,123,__LINE__, 0x41a7ad17, 0x51ce1a0d, 0xc033cccc, 0xccccccce}, /* 1.98610e+08=f(-19.8000)*/ +{61, 0,123,__LINE__, 0x41814d0b, 0xc17d4224, 0xc0321999, 0x9999999b}, /* 3.62827e+07=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x415948e8, 0xe47eadbc, 0xc0306666, 0x66666668}, /* 6.62826e+06=f(-16.4000)*/ +{63, 0,123,__LINE__, 0x413279f9, 0xd10e6ddb, 0xc02d6666, 0x6666666a}, /* 1.21087e+06=f(-14.7000)*/ +{63, 0,123,__LINE__, 0x410b00b5, 0x916b6132, 0xc02a0000, 0x00000004}, /* 221206=f(-13.0000)*/ +{63, 0,123,__LINE__, 0x40e3bb5a, 0x336a724a, 0xc0269999, 0x9999999e}, /* 40410=f(-11.3000)*/ +{63, 0,123,__LINE__, 0x40bcd664, 0x0c8f67aa, 0xc0233333, 0x33333338}, /* 7382.39=f(-9.60000)*/ +{62, 0,123,__LINE__, 0x40951290, 0xbdecc6ea, 0xc01f9999, 0x999999a3}, /* 1348.64=f(-7.90000)*/ +{62, 0,123,__LINE__, 0x406ecc04, 0x62869201, 0xc018cccc, 0xccccccd6}, /* 246.375=f(-6.20000)*/ +{62, 0,123,__LINE__, 0x404681ce, 0xb0641389, 0xc0120000, 0x00000009}, /* 45.0141=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x40208165, 0x9e7a609e, 0xc0066666, 0x66666678}, /* 8.25272=f(-2.80000)*/ +{62, 0,123,__LINE__, 0x3ffab240, 0x82d6f941, 0xbff19999, 0x999999bd}, /* 1.66851=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3ff2f7aa, 0x606e561a, 0x3fe33333, 0x333332ec}, /* 1.18546=f(0.60000)*/ +{62, 0,123,__LINE__, 0x4014261d, 0x2b7d6152, 0x40026666, 0x66666654}, /* 5.03722=f(2.30000)*/ +{61, 0,123,__LINE__, 0x403b4ee8, 0x58de3e43, 0x400fffff, 0xffffffee}, /* 27.3082=f(4.00000)*/ +{63, 0,123,__LINE__, 0x4062adee, 0x9455e3ef, 0x4016cccc, 0xccccccc4}, /* 149.435=f(5.70000)*/ +{64, 0,123,__LINE__, 0x40898ff0, 0xaea73114, 0x401d9999, 0x99999991}, /* 817.992=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40b17da5, 0x7af77ec3, 0x40223333, 0x3333332f}, /* 4477.64=f(9.10000)*/ +{63, 0,123,__LINE__, 0x40d7ef99, 0xa3138b94, 0x40259999, 0x99999995}, /* 24510=f(10.8000)*/ +{64, 0,123,__LINE__, 0x410060c5, 0x2566b454, 0x4028ffff, 0xfffffffb}, /* 134168=f(12.5000)*/ +{62, 0,123,__LINE__, 0x412669c0, 0x308d36dd, 0x402c6666, 0x66666661}, /* 734432=f(14.2000)*/ +{62, 0,123,__LINE__, 0x414eac09, 0x532f3e8a, 0x402fcccc, 0xccccccc7}, /* 4.02024e+06=f(15.9000)*/ +{62, 0,123,__LINE__, 0x4174fcb4, 0x4c4756da, 0x40319999, 0x99999997}, /* 2.20066e+07=f(17.6000)*/ +{63, 0,123,__LINE__, 0x419cb879, 0xa3e73668, 0x40334ccc, 0xccccccca}, /* 1.20463e+08=f(19.3000)*/ +{57, 0,123,__LINE__, 0x41c3a6e1, 0xfd9eecbf, 0x4034ffff, 0xfffffffd}, /* 6.59408e+08=f(21.0000)*/ +{60, 0,123,__LINE__, 0x41eae4b2, 0x68df16f6, 0x4036b333, 0x33333330}, /* 3.60956e+09=f(22.7000)*/ +{63, 0,123,__LINE__, 0x421266ce, 0xffa84595, 0x40386666, 0x66666663}, /* 1.97586e+10=f(24.4000)*/ +{64, 0,123,__LINE__, 0x42392ead, 0xfa09870a, 0x403a1999, 0x99999996}, /* 1.08157e+11=f(26.1000)*/ +{63, 0,123,__LINE__, 0x42613b19, 0x1e69fb25, 0x403bcccc, 0xccccccc9}, /* 5.92048e+11=f(27.8000)*/ +{61, 0,123,__LINE__, 0x42879487, 0x9e85b8dc, 0x403d7fff, 0xfffffffc}, /* 3.24084e+12=f(29.5000)*/ +0,}; +test_cosh(m) {run_vector_1(m,cosh_vec,(char *)(cosh),"cosh","dd"); } diff --git a/newlib/libm/test/coshf_vec.c b/newlib/libm/test/coshf_vec.c new file mode 100644 index 000000000..d8f96bb53 --- /dev/null +++ b/newlib/libm/test/coshf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type coshf_vec[] = { +{14, 0,123,__LINE__, 0x3ffcf872, 0x20000000, 0xbff33333, 0x33333333}, /* 1.81065=f(-1.20000)*/ +{14, 0,123,__LINE__, 0x3ffcbafc, 0xe0000000, 0xbff30a3d, 0x70a3d70a}, /* 1.79565=f(-1.19000)*/ +{14, 0,123,__LINE__, 0x3ffc7e43, 0xe0000000, 0xbff2e147, 0xae147ae1}, /* 1.78082=f(-1.18000)*/ +{14, 0,123,__LINE__, 0x3ffc4245, 0xa0000000, 0xbff2b851, 0xeb851eb8}, /* 1.76618=f(-1.17000)*/ +{14, 0,123,__LINE__, 0x3ffc0700, 0xa0000000, 0xbff28f5c, 0x28f5c28f}, /* 1.75171=f(-1.16000)*/ +{13, 0,123,__LINE__, 0x3ffbcc73, 0x80000000, 0xbff26666, 0x66666666}, /* 1.73741=f(-1.15000)*/ +{13, 0,123,__LINE__, 0x3ffb929c, 0x60000000, 0xbff23d70, 0xa3d70a3d}, /* 1.72329=f(-1.14000)*/ +{13, 0,123,__LINE__, 0x3ffb597a, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 1.70934=f(-1.13000)*/ +{13, 0,123,__LINE__, 0x3ffb210b, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 1.69556=f(-1.12000)*/ +{13, 0,123,__LINE__, 0x3ffae94d, 0x80000000, 0xbff1c28f, 0x5c28f5c2}, /* 1.68195=f(-1.11000)*/ +{13, 0,123,__LINE__, 0x3ffab240, 0xa0000000, 0xbff19999, 0x99999999}, /* 1.66851=f(-1.10000)*/ +{13, 0,123,__LINE__, 0x3ffa7be2, 0xa0000000, 0xbff170a3, 0xd70a3d70}, /* 1.65524=f(-1.09000)*/ +{13, 0,123,__LINE__, 0x3ffa4632, 0x20000000, 0xbff147ae, 0x147ae147}, /* 1.64213=f(-1.08000)*/ +{13, 0,123,__LINE__, 0x3ffa112d, 0xc0000000, 0xbff11eb8, 0x51eb851e}, /* 1.62919=f(-1.07000)*/ +{13, 0,123,__LINE__, 0x3ff9dcd4, 0x40000000, 0xbff0f5c2, 0x8f5c28f5}, /* 1.61641=f(-1.06000)*/ +{13, 0,123,__LINE__, 0x3ff9a924, 0x40000000, 0xbff0cccc, 0xcccccccc}, /* 1.60379=f(-1.05000)*/ +{13, 0,123,__LINE__, 0x3ff9761c, 0xa0000000, 0xbff0a3d7, 0x0a3d70a3}, /* 1.59133=f(-1.04000)*/ +{13, 0,123,__LINE__, 0x3ff943bb, 0xa0000000, 0xbff07ae1, 0x47ae147a}, /* 1.57903=f(-1.03000)*/ +{13, 0,123,__LINE__, 0x3ff91200, 0x60000000, 0xbff051eb, 0x851eb851}, /* 1.56689=f(-1.02000)*/ +{13, 0,123,__LINE__, 0x3ff8e0e9, 0x40000000, 0xbff028f5, 0xc28f5c28}, /* 1.55491=f(-1.01000)*/ +{13, 0,123,__LINE__, 0x3ff8b075, 0x40000000, 0xbfefffff, 0xfffffffe}, /* 1.54308=f(-0.01000)*/ +{13, 0,123,__LINE__, 0x3ff880a3, 0x40000000, 0xbfefae14, 0x7ae147ac}, /* 1.53140=f(-0.99000)*/ +{13, 0,123,__LINE__, 0x3ff85171, 0xa0000000, 0xbfef5c28, 0xf5c28f5a}, /* 1.51988=f(-0.98000)*/ +{13, 0,123,__LINE__, 0x3ff822df, 0x60000000, 0xbfef0a3d, 0x70a3d708}, /* 1.50851=f(-0.97000)*/ +{12, 0,123,__LINE__, 0x3ff7f4eb, 0x40000000, 0xbfeeb851, 0xeb851eb6}, /* 1.49729=f(-0.96000)*/ +{12, 0,123,__LINE__, 0x3ff7c794, 0x20000000, 0xbfee6666, 0x66666664}, /* 1.48622=f(-0.95000)*/ +{12, 0,123,__LINE__, 0x3ff79ad9, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 1.47530=f(-0.94000)*/ +{12, 0,123,__LINE__, 0x3ff76eb8, 0x80000000, 0xbfedc28f, 0x5c28f5c0}, /* 1.46453=f(-0.93000)*/ +{12, 0,123,__LINE__, 0x3ff74331, 0x80000000, 0xbfed70a3, 0xd70a3d6e}, /* 1.45390=f(-0.92000)*/ +{12, 0,123,__LINE__, 0x3ff71843, 0x20000000, 0xbfed1eb8, 0x51eb851c}, /* 1.44342=f(-0.91000)*/ +{12, 0,123,__LINE__, 0x3ff6edec, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 1.43308=f(-0.90000)*/ +{12, 0,123,__LINE__, 0x3ff6c42b, 0x20000000, 0xbfec7ae1, 0x47ae1478}, /* 1.42289=f(-0.89000)*/ +{12, 0,123,__LINE__, 0x3ff69aff, 0x80000000, 0xbfec28f5, 0xc28f5c26}, /* 1.41284=f(-0.88000)*/ +{12, 0,123,__LINE__, 0x3ff67268, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 1.40293=f(-0.87000)*/ +{12, 0,123,__LINE__, 0x3ff64a63, 0x80000000, 0xbfeb851e, 0xb851eb82}, /* 1.39316=f(-0.86000)*/ +{12, 0,123,__LINE__, 0x3ff622f1, 0x40000000, 0xbfeb3333, 0x33333330}, /* 1.38353=f(-0.85000)*/ +{12, 0,123,__LINE__, 0x3ff5fc0f, 0xe0000000, 0xbfeae147, 0xae147ade}, /* 1.37403=f(-0.84000)*/ +{12, 0,123,__LINE__, 0x3ff5d5be, 0xc0000000, 0xbfea8f5c, 0x28f5c28c}, /* 1.36468=f(-0.83000)*/ +{12, 0,123,__LINE__, 0x3ff5affc, 0xe0000000, 0xbfea3d70, 0xa3d70a3a}, /* 1.35546=f(-0.82000)*/ +{12, 0,123,__LINE__, 0x3ff58ac9, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 1.34638=f(-0.81000)*/ +{12, 0,123,__LINE__, 0x3ff56622, 0x40000000, 0xbfe99999, 0x99999996}, /* 1.33743=f(-0.80000)*/ +{12, 0,123,__LINE__, 0x3ff54207, 0xc0000000, 0xbfe947ae, 0x147ae144}, /* 1.32862=f(-0.79000)*/ +{12, 0,123,__LINE__, 0x3ff51e78, 0x80000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 1.31993=f(-0.78000)*/ +{12, 0,123,__LINE__, 0x3ff4fb73, 0xa0000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 1.31139=f(-0.77000)*/ +{12, 0,123,__LINE__, 0x3ff4d8f8, 0x60000000, 0xbfe851eb, 0x851eb84e}, /* 1.30297=f(-0.76000)*/ +{12, 0,123,__LINE__, 0x3ff4b705, 0xc0000000, 0xbfe7ffff, 0xfffffffc}, /* 1.29468=f(-0.75000)*/ +{12, 0,123,__LINE__, 0x3ff4959a, 0xe0000000, 0xbfe7ae14, 0x7ae147aa}, /* 1.28652=f(-0.74000)*/ +{12, 0,123,__LINE__, 0x3ff474b7, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 1.27849=f(-0.73000)*/ +{12, 0,123,__LINE__, 0x3ff45459, 0x20000000, 0xbfe70a3d, 0x70a3d706}, /* 1.27059=f(-0.72000)*/ +{12, 0,123,__LINE__, 0x3ff43480, 0x40000000, 0xbfe6b851, 0xeb851eb4}, /* 1.26281=f(-0.71000)*/ +{12, 0,123,__LINE__, 0x3ff4152c, 0x20000000, 0xbfe66666, 0x66666662}, /* 1.25516=f(-0.70000)*/ +{12, 0,123,__LINE__, 0x3ff3f65b, 0x80000000, 0xbfe6147a, 0xe147ae10}, /* 1.24764=f(-0.69000)*/ +{12, 0,123,__LINE__, 0x3ff3d80d, 0xa0000000, 0xbfe5c28f, 0x5c28f5be}, /* 1.24024=f(-0.68000)*/ +{12, 0,123,__LINE__, 0x3ff3ba41, 0xe0000000, 0xbfe570a3, 0xd70a3d6c}, /* 1.23297=f(-0.67000)*/ +{12, 0,123,__LINE__, 0x3ff39cf7, 0x60000000, 0xbfe51eb8, 0x51eb851a}, /* 1.22582=f(-0.66000)*/ +{12, 0,123,__LINE__, 0x3ff3802d, 0x60000000, 0xbfe4cccc, 0xccccccc8}, /* 1.21879=f(-0.65000)*/ +{12, 0,123,__LINE__, 0x3ff363e3, 0x40000000, 0xbfe47ae1, 0x47ae1476}, /* 1.21188=f(-0.64000)*/ +{12, 0,123,__LINE__, 0x3ff34818, 0x20000000, 0xbfe428f5, 0xc28f5c24}, /* 1.20510=f(-0.63000)*/ +{12, 0,123,__LINE__, 0x3ff32ccb, 0x80000000, 0xbfe3d70a, 0x3d70a3d2}, /* 1.19843=f(-0.62000)*/ +{12, 0,123,__LINE__, 0x3ff311fc, 0x80000000, 0xbfe3851e, 0xb851eb80}, /* 1.19189=f(-0.61000)*/ +{12, 0,123,__LINE__, 0x3ff2f7aa, 0x60000000, 0xbfe33333, 0x3333332e}, /* 1.18546=f(-0.60000)*/ +{12, 0,123,__LINE__, 0x3ff2ddd4, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* 1.17915=f(-0.59000)*/ +{12, 0,123,__LINE__, 0x3ff2c47a, 0x80000000, 0xbfe28f5c, 0x28f5c28a}, /* 1.17296=f(-0.58000)*/ +{12, 0,123,__LINE__, 0x3ff2ab9b, 0x60000000, 0xbfe23d70, 0xa3d70a38}, /* 1.16689=f(-0.57000)*/ +{12, 0,123,__LINE__, 0x3ff29336, 0xa0000000, 0xbfe1eb85, 0x1eb851e6}, /* 1.16094=f(-0.56000)*/ +{12, 0,123,__LINE__, 0x3ff27b4b, 0xa0000000, 0xbfe19999, 0x99999994}, /* 1.15510=f(-0.55000)*/ +{12, 0,123,__LINE__, 0x3ff263d9, 0xc0000000, 0xbfe147ae, 0x147ae142}, /* 1.14937=f(-0.54000)*/ +{12, 0,123,__LINE__, 0x3ff24ce0, 0x60000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 1.14376=f(-0.53000)*/ +{12, 0,123,__LINE__, 0x3ff2365e, 0xe0000000, 0xbfe0a3d7, 0x0a3d709e}, /* 1.13827=f(-0.52000)*/ +{12, 0,123,__LINE__, 0x3ff22054, 0xe0000000, 0xbfe051eb, 0x851eb84c}, /* 1.13289=f(-0.51000)*/ +{12, 0,123,__LINE__, 0x3ff20ac1, 0x80000000, 0xbfdfffff, 0xfffffff4}, /* 1.12762=f(-0.50000)*/ +{12, 0,123,__LINE__, 0x3ff1f5a4, 0x80000000, 0xbfdf5c28, 0xf5c28f50}, /* 1.12247=f(-0.49000)*/ +{12, 0,123,__LINE__, 0x3ff1e0fd, 0x20000000, 0xbfdeb851, 0xeb851eac}, /* 1.11742=f(-0.48000)*/ +{12, 0,123,__LINE__, 0x3ff1cccb, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 1.11249=f(-0.47000)*/ +{12, 0,123,__LINE__, 0x3ff1b90d, 0x60000000, 0xbfdd70a3, 0xd70a3d64}, /* 1.10767=f(-0.46000)*/ +{12, 0,123,__LINE__, 0x3ff1a5c4, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 1.10297=f(-0.45000)*/ +{12, 0,123,__LINE__, 0x3ff192ee, 0x60000000, 0xbfdc28f5, 0xc28f5c1c}, /* 1.09837=f(-0.44000)*/ +{12, 0,123,__LINE__, 0x3ff1808b, 0xc0000000, 0xbfdb851e, 0xb851eb78}, /* 1.09388=f(-0.43000)*/ +{12, 0,123,__LINE__, 0x3ff16e9c, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 1.08950=f(-0.42000)*/ +{12, 0,123,__LINE__, 0x3ff15d1e, 0x60000000, 0xbfda3d70, 0xa3d70a30}, /* 1.08523=f(-0.41000)*/ +{12, 0,123,__LINE__, 0x3ff14c12, 0x80000000, 0xbfd99999, 0x9999998c}, /* 1.08107=f(-0.40000)*/ +{12, 0,123,__LINE__, 0x3ff13b78, 0x20000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.07701=f(-0.39000)*/ +{12, 0,123,__LINE__, 0x3ff12b4e, 0xa0000000, 0xbfd851eb, 0x851eb844}, /* 1.07307=f(-0.38000)*/ +{12, 0,123,__LINE__, 0x3ff11b95, 0xa0000000, 0xbfd7ae14, 0x7ae147a0}, /* 1.06923=f(-0.37000)*/ +{12, 0,123,__LINE__, 0x3ff10c4c, 0xc0000000, 0xbfd70a3d, 0x70a3d6fc}, /* 1.06550=f(-0.36000)*/ +{12, 0,123,__LINE__, 0x3ff0fd73, 0xa0000000, 0xbfd66666, 0x66666658}, /* 1.06187=f(-0.35000)*/ +{12, 0,123,__LINE__, 0x3ff0ef09, 0xe0000000, 0xbfd5c28f, 0x5c28f5b4}, /* 1.05835=f(-0.34000)*/ +{12, 0,123,__LINE__, 0x3ff0e10f, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 1.05494=f(-0.33000)*/ +{12, 0,123,__LINE__, 0x3ff0d382, 0xc0000000, 0xbfd47ae1, 0x47ae146c}, /* 1.05163=f(-0.32000)*/ +{12, 0,123,__LINE__, 0x3ff0c664, 0xe0000000, 0xbfd3d70a, 0x3d70a3c8}, /* 1.04843=f(-0.31000)*/ +{12, 0,123,__LINE__, 0x3ff0b9b4, 0xe0000000, 0xbfd33333, 0x33333324}, /* 1.04533=f(-0.30000)*/ +{12, 0,123,__LINE__, 0x3ff0ad72, 0x80000000, 0xbfd28f5c, 0x28f5c280}, /* 1.04234=f(-0.29000)*/ +{12, 0,123,__LINE__, 0x3ff0a19d, 0x80000000, 0xbfd1eb85, 0x1eb851dc}, /* 1.03945=f(-0.28000)*/ +{12, 0,123,__LINE__, 0x3ff09635, 0x60000000, 0xbfd147ae, 0x147ae138}, /* 1.03667=f(-0.27000)*/ +{12, 0,123,__LINE__, 0x3ff08b3a, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 1.03399=f(-0.26000)*/ +{12, 0,123,__LINE__, 0x3ff080ab, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 1.03141=f(-0.25000)*/ +{12, 0,123,__LINE__, 0x3ff07688, 0x40000000, 0xbfceb851, 0xeb851e98}, /* 1.02893=f(-0.24000)*/ +{12, 0,123,__LINE__, 0x3ff06cd1, 0x60000000, 0xbfcd70a3, 0xd70a3d50}, /* 1.02656=f(-0.23000)*/ +{12, 0,123,__LINE__, 0x3ff06386, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 1.02429=f(-0.22000)*/ +{12, 0,123,__LINE__, 0x3ff05aa6, 0x20000000, 0xbfcae147, 0xae147ac0}, /* 1.02213=f(-0.21000)*/ +{12, 0,123,__LINE__, 0x3ff05231, 0x80000000, 0xbfc99999, 0x99999978}, /* 1.02006=f(-0.20000)*/ +{12, 0,123,__LINE__, 0x3ff04a27, 0xc0000000, 0xbfc851eb, 0x851eb830}, /* 1.01810=f(-0.19000)*/ +{12, 0,123,__LINE__, 0x3ff04288, 0xe0000000, 0xbfc70a3d, 0x70a3d6e8}, /* 1.01624=f(-0.18000)*/ +{12, 0,123,__LINE__, 0x3ff03b54, 0x60000000, 0xbfc5c28f, 0x5c28f5a0}, /* 1.01448=f(-0.17000)*/ +{12, 0,123,__LINE__, 0x3ff0348a, 0x60000000, 0xbfc47ae1, 0x47ae1458}, /* 1.01282=f(-0.16000)*/ +{12, 0,123,__LINE__, 0x3ff02e2a, 0xa0000000, 0xbfc33333, 0x33333310}, /* 1.01127=f(-0.15000)*/ +{12, 0,123,__LINE__, 0x3ff02834, 0xe0000000, 0xbfc1eb85, 0x1eb851c8}, /* 1.00981=f(-0.14000)*/ +{12, 0,123,__LINE__, 0x3ff022a9, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 1.00846=f(-0.13000)*/ +{12, 0,123,__LINE__, 0x3ff01d86, 0xc0000000, 0xbfbeb851, 0xeb851e71}, /* 1.00720=f(-0.12000)*/ +{12, 0,123,__LINE__, 0x3ff018ce, 0x40000000, 0xbfbc28f5, 0xc28f5be2}, /* 1.00605=f(-0.11000)*/ +{12, 0,123,__LINE__, 0x3ff0147f, 0x40000000, 0xbfb99999, 0x99999953}, /* 1.00500=f(-0.00100)*/ +{12, 0,123,__LINE__, 0x3ff01099, 0xa0000000, 0xbfb70a3d, 0x70a3d6c4}, /* 1.00405=f(-0.09000)*/ +{12, 0,123,__LINE__, 0x3ff00d1d, 0x40000000, 0xbfb47ae1, 0x47ae1435}, /* 1.00320=f(-0.08000)*/ +{12, 0,123,__LINE__, 0x3ff00a0a, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 1.00245=f(-0.07000)*/ +{12, 0,123,__LINE__, 0x3ff00760, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 1.00180=f(-0.06000)*/ +{12, 0,123,__LINE__, 0x3ff0051f, 0x00000000, 0xbfa99999, 0x9999990e}, /* 1.00125=f(-0.05000)*/ +{12, 0,123,__LINE__, 0x3ff00347, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 1.00080=f(-0.04000)*/ +{12, 0,123,__LINE__, 0x3ff001d7, 0xe0000000, 0xbf9eb851, 0xeb851da0}, /* 1.00045=f(-0.03000)*/ +{12, 0,123,__LINE__, 0x3ff000d1, 0xc0000000, 0xbf947ae1, 0x47ae1362}, /* 1.00020=f(-0.02000)*/ +{12, 0,123,__LINE__, 0x3ff00034, 0x60000000, 0xbf847ae1, 0x47ae1249}, /* 1.00005=f(-0.00010)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{12, 0,123,__LINE__, 0x3ff00034, 0x60000000, 0x3f847ae1, 0x47ae16ad}, /* 1.00005=f(0.01000)*/ +{12, 0,123,__LINE__, 0x3ff000d1, 0xc0000000, 0x3f947ae1, 0x47ae1594}, /* 1.00020=f(0.02000)*/ +{12, 0,123,__LINE__, 0x3ff001d7, 0xe0000000, 0x3f9eb851, 0xeb851fd2}, /* 1.00045=f(0.03000)*/ +{12, 0,123,__LINE__, 0x3ff00347, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 1.00080=f(0.04000)*/ +{12, 0,123,__LINE__, 0x3ff0051f, 0x00000000, 0x3fa99999, 0x99999a27}, /* 1.00125=f(0.05000)*/ +{12, 0,123,__LINE__, 0x3ff00760, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 1.00180=f(0.06000)*/ +{12, 0,123,__LINE__, 0x3ff00a0a, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 1.00245=f(0.07000)*/ +{12, 0,123,__LINE__, 0x3ff00d1d, 0x40000000, 0x3fb47ae1, 0x47ae14c1}, /* 1.00320=f(0.08000)*/ +{12, 0,123,__LINE__, 0x3ff01099, 0xa0000000, 0x3fb70a3d, 0x70a3d750}, /* 1.00405=f(0.09000)*/ +{12, 0,123,__LINE__, 0x3ff0147f, 0x40000000, 0x3fb99999, 0x999999df}, /* 1.00500=f(0.10000)*/ +{12, 0,123,__LINE__, 0x3ff018ce, 0x40000000, 0x3fbc28f5, 0xc28f5c6e}, /* 1.00605=f(0.11000)*/ +{12, 0,123,__LINE__, 0x3ff01d86, 0xc0000000, 0x3fbeb851, 0xeb851efd}, /* 1.00720=f(0.12000)*/ +{12, 0,123,__LINE__, 0x3ff022a9, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.00846=f(0.13000)*/ +{12, 0,123,__LINE__, 0x3ff02834, 0xe0000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.00981=f(0.14000)*/ +{12, 0,123,__LINE__, 0x3ff02e2a, 0xa0000000, 0x3fc33333, 0x33333356}, /* 1.01127=f(0.15000)*/ +{12, 0,123,__LINE__, 0x3ff0348a, 0x60000000, 0x3fc47ae1, 0x47ae149e}, /* 1.01282=f(0.16000)*/ +{12, 0,123,__LINE__, 0x3ff03b54, 0x60000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.01448=f(0.17000)*/ +{12, 0,123,__LINE__, 0x3ff04288, 0xe0000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.01624=f(0.18000)*/ +{12, 0,123,__LINE__, 0x3ff04a27, 0xc0000000, 0x3fc851eb, 0x851eb876}, /* 1.01810=f(0.19000)*/ +{12, 0,123,__LINE__, 0x3ff05231, 0x80000000, 0x3fc99999, 0x999999be}, /* 1.02006=f(0.20000)*/ +{12, 0,123,__LINE__, 0x3ff05aa6, 0x20000000, 0x3fcae147, 0xae147b06}, /* 1.02213=f(0.21000)*/ +{12, 0,123,__LINE__, 0x3ff06386, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.02429=f(0.22000)*/ +{12, 0,123,__LINE__, 0x3ff06cd1, 0x60000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.02656=f(0.23000)*/ +{12, 0,123,__LINE__, 0x3ff07688, 0x40000000, 0x3fceb851, 0xeb851ede}, /* 1.02893=f(0.24000)*/ +{12, 0,123,__LINE__, 0x3ff080ab, 0x00000000, 0x3fd00000, 0x00000013}, /* 1.03141=f(0.25000)*/ +{12, 0,123,__LINE__, 0x3ff08b3a, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.03399=f(0.26000)*/ +{12, 0,123,__LINE__, 0x3ff09635, 0x60000000, 0x3fd147ae, 0x147ae15b}, /* 1.03667=f(0.27000)*/ +{12, 0,123,__LINE__, 0x3ff0a19d, 0x80000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.03945=f(0.28000)*/ +{12, 0,123,__LINE__, 0x3ff0ad72, 0x80000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.04234=f(0.29000)*/ +{12, 0,123,__LINE__, 0x3ff0b9b4, 0xe0000000, 0x3fd33333, 0x33333347}, /* 1.04533=f(0.30000)*/ +{12, 0,123,__LINE__, 0x3ff0c664, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.04843=f(0.31000)*/ +{12, 0,123,__LINE__, 0x3ff0d382, 0xc0000000, 0x3fd47ae1, 0x47ae148f}, /* 1.05163=f(0.32000)*/ +{12, 0,123,__LINE__, 0x3ff0e10f, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 1.05494=f(0.33000)*/ +{12, 0,123,__LINE__, 0x3ff0ef09, 0xe0000000, 0x3fd5c28f, 0x5c28f5d7}, /* 1.05835=f(0.34000)*/ +{12, 0,123,__LINE__, 0x3ff0fd73, 0xa0000000, 0x3fd66666, 0x6666667b}, /* 1.06187=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3ff10c4c, 0xc0000000, 0x3fd70a3d, 0x70a3d71f}, /* 1.06550=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3ff11b95, 0xa0000000, 0x3fd7ae14, 0x7ae147c3}, /* 1.06923=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3ff12b4e, 0xa0000000, 0x3fd851eb, 0x851eb867}, /* 1.07307=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3ff13b78, 0x20000000, 0x3fd8f5c2, 0x8f5c290b}, /* 1.07701=f(0.39000)*/ +{12, 0,123,__LINE__, 0x3ff14c12, 0x80000000, 0x3fd99999, 0x999999af}, /* 1.08107=f(0.40000)*/ +{12, 0,123,__LINE__, 0x3ff15d1e, 0x60000000, 0x3fda3d70, 0xa3d70a53}, /* 1.08523=f(0.41000)*/ +{12, 0,123,__LINE__, 0x3ff16e9c, 0x00000000, 0x3fdae147, 0xae147af7}, /* 1.08950=f(0.42000)*/ +{12, 0,123,__LINE__, 0x3ff1808b, 0xc0000000, 0x3fdb851e, 0xb851eb9b}, /* 1.09388=f(0.43000)*/ +{12, 0,123,__LINE__, 0x3ff192ee, 0x60000000, 0x3fdc28f5, 0xc28f5c3f}, /* 1.09837=f(0.44000)*/ +{12, 0,123,__LINE__, 0x3ff1a5c4, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 1.10297=f(0.45000)*/ +{12, 0,123,__LINE__, 0x3ff1b90d, 0x60000000, 0x3fdd70a3, 0xd70a3d87}, /* 1.10767=f(0.46000)*/ +{12, 0,123,__LINE__, 0x3ff1cccb, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 1.11249=f(0.47000)*/ +{12, 0,123,__LINE__, 0x3ff1e0fd, 0x20000000, 0x3fdeb851, 0xeb851ecf}, /* 1.11742=f(0.48000)*/ +{12, 0,123,__LINE__, 0x3ff1f5a4, 0x80000000, 0x3fdf5c28, 0xf5c28f73}, /* 1.12247=f(0.49000)*/ +{12, 0,123,__LINE__, 0x3ff20ac1, 0x80000000, 0x3fe00000, 0x0000000b}, /* 1.12762=f(0.50000)*/ +{12, 0,123,__LINE__, 0x3ff22054, 0xe0000000, 0x3fe051eb, 0x851eb85d}, /* 1.13289=f(0.51000)*/ +{12, 0,123,__LINE__, 0x3ff2365e, 0xe0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 1.13827=f(0.52000)*/ +{12, 0,123,__LINE__, 0x3ff24ce0, 0x60000000, 0x3fe0f5c2, 0x8f5c2901}, /* 1.14376=f(0.53000)*/ +{12, 0,123,__LINE__, 0x3ff263d9, 0xc0000000, 0x3fe147ae, 0x147ae153}, /* 1.14937=f(0.54000)*/ +{12, 0,123,__LINE__, 0x3ff27b4b, 0xa0000000, 0x3fe19999, 0x999999a5}, /* 1.15510=f(0.55000)*/ +{12, 0,123,__LINE__, 0x3ff29336, 0xa0000000, 0x3fe1eb85, 0x1eb851f7}, /* 1.16094=f(0.56000)*/ +{12, 0,123,__LINE__, 0x3ff2ab9b, 0x60000000, 0x3fe23d70, 0xa3d70a49}, /* 1.16689=f(0.57000)*/ +{12, 0,123,__LINE__, 0x3ff2c47a, 0x80000000, 0x3fe28f5c, 0x28f5c29b}, /* 1.17296=f(0.58000)*/ +{12, 0,123,__LINE__, 0x3ff2ddd4, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 1.17915=f(0.59000)*/ +{12, 0,123,__LINE__, 0x3ff2f7aa, 0x60000000, 0x3fe33333, 0x3333333f}, /* 1.18546=f(0.60000)*/ +{12, 0,123,__LINE__, 0x3ff311fc, 0x80000000, 0x3fe3851e, 0xb851eb91}, /* 1.19189=f(0.61000)*/ +{12, 0,123,__LINE__, 0x3ff32ccb, 0x80000000, 0x3fe3d70a, 0x3d70a3e3}, /* 1.19843=f(0.62000)*/ +{12, 0,123,__LINE__, 0x3ff34818, 0x20000000, 0x3fe428f5, 0xc28f5c35}, /* 1.20510=f(0.63000)*/ +{12, 0,123,__LINE__, 0x3ff363e3, 0x40000000, 0x3fe47ae1, 0x47ae1487}, /* 1.21188=f(0.64000)*/ +{12, 0,123,__LINE__, 0x3ff3802d, 0x60000000, 0x3fe4cccc, 0xccccccd9}, /* 1.21879=f(0.65000)*/ +{12, 0,123,__LINE__, 0x3ff39cf7, 0x60000000, 0x3fe51eb8, 0x51eb852b}, /* 1.22582=f(0.66000)*/ +{12, 0,123,__LINE__, 0x3ff3ba41, 0xe0000000, 0x3fe570a3, 0xd70a3d7d}, /* 1.23297=f(0.67000)*/ +{12, 0,123,__LINE__, 0x3ff3d80d, 0xa0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 1.24024=f(0.68000)*/ +{12, 0,123,__LINE__, 0x3ff3f65b, 0x80000000, 0x3fe6147a, 0xe147ae21}, /* 1.24764=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3ff4152c, 0x20000000, 0x3fe66666, 0x66666673}, /* 1.25516=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3ff43480, 0x40000000, 0x3fe6b851, 0xeb851ec5}, /* 1.26281=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3ff45459, 0x20000000, 0x3fe70a3d, 0x70a3d717}, /* 1.27059=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3ff474b7, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 1.27849=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3ff4959a, 0xe0000000, 0x3fe7ae14, 0x7ae147bb}, /* 1.28652=f(0.74000)*/ +{12, 0,123,__LINE__, 0x3ff4b705, 0xc0000000, 0x3fe80000, 0x0000000d}, /* 1.29468=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3ff4d8f8, 0x60000000, 0x3fe851eb, 0x851eb85f}, /* 1.30297=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3ff4fb73, 0xa0000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 1.31139=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3ff51e78, 0x80000000, 0x3fe8f5c2, 0x8f5c2903}, /* 1.31993=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3ff54207, 0xc0000000, 0x3fe947ae, 0x147ae155}, /* 1.32862=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3ff56622, 0x40000000, 0x3fe99999, 0x999999a7}, /* 1.33743=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3ff58ac9, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 1.34638=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3ff5affc, 0xe0000000, 0x3fea3d70, 0xa3d70a4b}, /* 1.35546=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3ff5d5be, 0xc0000000, 0x3fea8f5c, 0x28f5c29d}, /* 1.36468=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3ff5fc0f, 0xe0000000, 0x3feae147, 0xae147aef}, /* 1.37403=f(0.84000)*/ +{12, 0,123,__LINE__, 0x3ff622f1, 0x40000000, 0x3feb3333, 0x33333341}, /* 1.38353=f(0.85000)*/ +{12, 0,123,__LINE__, 0x3ff64a63, 0x80000000, 0x3feb851e, 0xb851eb93}, /* 1.39316=f(0.86000)*/ +{12, 0,123,__LINE__, 0x3ff67268, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 1.40293=f(0.87000)*/ +{12, 0,123,__LINE__, 0x3ff69aff, 0x80000000, 0x3fec28f5, 0xc28f5c37}, /* 1.41284=f(0.88000)*/ +{12, 0,123,__LINE__, 0x3ff6c42b, 0x20000000, 0x3fec7ae1, 0x47ae1489}, /* 1.42289=f(0.89000)*/ +{12, 0,123,__LINE__, 0x3ff6edec, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 1.43308=f(0.90000)*/ +{12, 0,123,__LINE__, 0x3ff71843, 0x20000000, 0x3fed1eb8, 0x51eb852d}, /* 1.44342=f(0.91000)*/ +{12, 0,123,__LINE__, 0x3ff74331, 0x80000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.45390=f(0.92000)*/ +{12, 0,123,__LINE__, 0x3ff76eb8, 0x80000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.46453=f(0.93000)*/ +{12, 0,123,__LINE__, 0x3ff79ad9, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 1.47530=f(0.94000)*/ +{12, 0,123,__LINE__, 0x3ff7c794, 0x20000000, 0x3fee6666, 0x66666675}, /* 1.48622=f(0.95000)*/ +{12, 0,123,__LINE__, 0x3ff7f4eb, 0x40000000, 0x3feeb851, 0xeb851ec7}, /* 1.49729=f(0.96000)*/ +{13, 0,123,__LINE__, 0x3ff822df, 0x60000000, 0x3fef0a3d, 0x70a3d719}, /* 1.50851=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3ff85171, 0xa0000000, 0x3fef5c28, 0xf5c28f6b}, /* 1.51988=f(0.98000)*/ +{13, 0,123,__LINE__, 0x3ff880a3, 0x40000000, 0x3fefae14, 0x7ae147bd}, /* 1.53140=f(0.99000)*/ +{13, 0,123,__LINE__, 0x3ff8b075, 0x40000000, 0x3ff00000, 0x00000007}, /* 1.54308=f(1.00000)*/ +{13, 0,123,__LINE__, 0x3ff8e0e9, 0x40000000, 0x3ff028f5, 0xc28f5c30}, /* 1.55491=f(1.01000)*/ +{13, 0,123,__LINE__, 0x3ff91200, 0x60000000, 0x3ff051eb, 0x851eb859}, /* 1.56689=f(1.02000)*/ +{13, 0,123,__LINE__, 0x3ff943bb, 0xa0000000, 0x3ff07ae1, 0x47ae1482}, /* 1.57903=f(1.03000)*/ +{13, 0,123,__LINE__, 0x3ff9761c, 0xa0000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.59133=f(1.04000)*/ +{13, 0,123,__LINE__, 0x3ff9a924, 0x40000000, 0x3ff0cccc, 0xccccccd4}, /* 1.60379=f(1.05000)*/ +{13, 0,123,__LINE__, 0x3ff9dcd4, 0x40000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.61641=f(1.06000)*/ +{13, 0,123,__LINE__, 0x3ffa112d, 0xc0000000, 0x3ff11eb8, 0x51eb8526}, /* 1.62919=f(1.07000)*/ +{13, 0,123,__LINE__, 0x3ffa4632, 0x20000000, 0x3ff147ae, 0x147ae14f}, /* 1.64213=f(1.08000)*/ +{13, 0,123,__LINE__, 0x3ffa7be2, 0xa0000000, 0x3ff170a3, 0xd70a3d78}, /* 1.65524=f(1.09000)*/ +{13, 0,123,__LINE__, 0x3ffab240, 0xa0000000, 0x3ff19999, 0x999999a1}, /* 1.66851=f(1.10000)*/ +{13, 0,123,__LINE__, 0x3ffae94d, 0x80000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.68195=f(1.11000)*/ +{13, 0,123,__LINE__, 0x3ffb210b, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.69556=f(1.12000)*/ +{13, 0,123,__LINE__, 0x3ffb597a, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 1.70934=f(1.13000)*/ +{13, 0,123,__LINE__, 0x3ffb929c, 0x60000000, 0x3ff23d70, 0xa3d70a45}, /* 1.72329=f(1.14000)*/ +{13, 0,123,__LINE__, 0x3ffbcc73, 0x80000000, 0x3ff26666, 0x6666666e}, /* 1.73741=f(1.15000)*/ +{14, 0,123,__LINE__, 0x3ffc0700, 0xa0000000, 0x3ff28f5c, 0x28f5c297}, /* 1.75171=f(1.16000)*/ +{14, 0,123,__LINE__, 0x3ffc4245, 0xa0000000, 0x3ff2b851, 0xeb851ec0}, /* 1.76618=f(1.17000)*/ +{14, 0,123,__LINE__, 0x3ffc7e43, 0xe0000000, 0x3ff2e147, 0xae147ae9}, /* 1.78082=f(1.18000)*/ +{14, 0,123,__LINE__, 0x3ffcbafc, 0xe0000000, 0x3ff30a3d, 0x70a3d712}, /* 1.79565=f(1.19000)*/ +{ 9, 0,123,__LINE__, 0x4070bbf2, 0x80000000, 0xc01921fb, 0x54442d18}, /* 267.746=f(-6.28318)*/ +{ 9, 0,123,__LINE__, 0x404bd4e9, 0x80000000, 0xc012d97c, 0x7f3321d2}, /* 55.6633=f(-4.71238)*/ +{ 8, 0,123,__LINE__, 0x40272f14, 0x80000000, 0xc00921fb, 0x54442d18}, /* 11.5919=f(-3.14159)*/ +{ 1, 0,123,__LINE__, 0x400412cc, 0x40000000, 0xbff921fb, 0x54442d18}, /* 2.50917=f(-1.57079)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{ 1, 0,123,__LINE__, 0x400412cc, 0x40000000, 0x3ff921fb, 0x54442d18}, /* 2.50917=f(1.57079)*/ +{ 8, 0,123,__LINE__, 0x40272f14, 0x80000000, 0x400921fb, 0x54442d18}, /* 11.5919=f(3.14159)*/ +{ 9, 0,123,__LINE__, 0x404bd4e9, 0x80000000, 0x4012d97c, 0x7f3321d2}, /* 55.6633=f(4.71238)*/ +{ 6, 0,123,__LINE__, 0x42937046, 0x40000000, 0xc03e0000, 0x00000000}, /* 5.34323e+12=f(-30.0000)*/ +{ 6, 0,123,__LINE__, 0x426c68a8, 0x80000000, 0xc03c4ccc, 0xcccccccd}, /* 9.76120e+11=f(-28.3000)*/ +{ 6, 0,123,__LINE__, 0x4244c263, 0x20000000, 0xc03a9999, 0x9999999a}, /* 1.78321e+11=f(-26.6000)*/ +{ 6, 0,123,__LINE__, 0x421e56cc, 0x40000000, 0xc038e666, 0x66666667}, /* 3.25763e+10=f(-24.9000)*/ +{ 7, 0,123,__LINE__, 0x41f62b78, 0xe0000000, 0xc0373333, 0x33333334}, /* 5.95116e+09=f(-23.2000)*/ +{ 7, 0,123,__LINE__, 0x41d03342, 0xe0000000, 0xc0358000, 0x00000001}, /* 1.08718e+09=f(-21.5000)*/ +{ 7, 0,123,__LINE__, 0x41a7ad15, 0x80000000, 0xc033cccc, 0xccccccce}, /* 1.98610e+08=f(-19.8000)*/ +{ 7, 0,123,__LINE__, 0x41814d0b, 0xe0000000, 0xc0321999, 0x9999999b}, /* 3.62827e+07=f(-18.1000)*/ +{ 7, 0,123,__LINE__, 0x415948e7, 0x20000000, 0xc0306666, 0x66666668}, /* 6.62825e+06=f(-16.4000)*/ +{ 7, 0,123,__LINE__, 0x413279fa, 0x40000000, 0xc02d6666, 0x6666666a}, /* 1.21087e+06=f(-14.7000)*/ +{ 7, 0,123,__LINE__, 0x410b00b6, 0x80000000, 0xc02a0000, 0x00000004}, /* 221206=f(-13.0000)*/ +{ 8, 0,123,__LINE__, 0x40e3bb5a, 0x20000000, 0xc0269999, 0x9999999e}, /* 40410=f(-11.3000)*/ +{ 8, 0,123,__LINE__, 0x40bcd664, 0x40000000, 0xc0233333, 0x33333338}, /* 7382.39=f(-9.60000)*/ +{ 8, 0,123,__LINE__, 0x40951291, 0x20000000, 0xc01f9999, 0x999999a3}, /* 1348.64=f(-7.90000)*/ +{ 9, 0,123,__LINE__, 0x406ecc03, 0xa0000000, 0xc018cccc, 0xccccccd6}, /* 246.375=f(-6.20000)*/ +{ 9, 0,123,__LINE__, 0x404681ce, 0xc0000000, 0xc0120000, 0x00000009}, /* 45.0141=f(-4.50000)*/ +{11, 0,123,__LINE__, 0x40208165, 0xa0000000, 0xc0066666, 0x66666678}, /* 8.25272=f(-2.80000)*/ +{13, 0,123,__LINE__, 0x3ffab240, 0xa0000000, 0xbff19999, 0x999999bd}, /* 1.66851=f(-1.10000)*/ +{12, 0,123,__LINE__, 0x3ff2f7aa, 0x60000000, 0x3fe33333, 0x333332ec}, /* 1.18546=f(0.60000)*/ +{11, 0,123,__LINE__, 0x4014261d, 0x20000000, 0x40026666, 0x66666654}, /* 5.03722=f(2.30000)*/ +{10, 0,123,__LINE__, 0x403b4ee8, 0x20000000, 0x400fffff, 0xffffffee}, /* 27.3082=f(4.00000)*/ +{ 9, 0,123,__LINE__, 0x4062adee, 0x40000000, 0x4016cccc, 0xccccccc4}, /* 149.435=f(5.70000)*/ +{ 8, 0,123,__LINE__, 0x40898ff0, 0xa0000000, 0x401d9999, 0x99999991}, /* 817.992=f(7.40000)*/ +{ 8, 0,123,__LINE__, 0x40b17da6, 0x20000000, 0x40223333, 0x3333332f}, /* 4477.64=f(9.10000)*/ +{ 8, 0,123,__LINE__, 0x40d7ef9a, 0x60000000, 0x40259999, 0x99999995}, /* 24510=f(10.8000)*/ +{ 7, 0,123,__LINE__, 0x410060c5, 0x80000000, 0x4028ffff, 0xfffffffb}, /* 134168=f(12.5000)*/ +{ 7, 0,123,__LINE__, 0x412669c0, 0x80000000, 0x402c6666, 0x66666661}, /* 734432=f(14.2000)*/ +{ 7, 0,123,__LINE__, 0x414eac09, 0x80000000, 0x402fcccc, 0xccccccc7}, /* 4.02024e+06=f(15.9000)*/ +{ 7, 0,123,__LINE__, 0x4174fcb4, 0x40000000, 0x40319999, 0x99999997}, /* 2.20066e+07=f(17.6000)*/ +{ 7, 0,123,__LINE__, 0x419cb879, 0x60000000, 0x40334ccc, 0xccccccca}, /* 1.20463e+08=f(19.3000)*/ +{ 7, 0,123,__LINE__, 0x41c3a6e1, 0xa0000000, 0x4034ffff, 0xfffffffd}, /* 6.59408e+08=f(21.0000)*/ +{ 7, 0,123,__LINE__, 0x41eae4b4, 0x20000000, 0x4036b333, 0x33333330}, /* 3.60957e+09=f(22.7000)*/ +{ 6, 0,123,__LINE__, 0x421266cf, 0xe0000000, 0x40386666, 0x66666663}, /* 1.97586e+10=f(24.4000)*/ +{ 6, 0,123,__LINE__, 0x42392ead, 0x00000000, 0x403a1999, 0x99999996}, /* 1.08157e+11=f(26.1000)*/ +{ 6, 0,123,__LINE__, 0x42613b16, 0xc0000000, 0x403bcccc, 0xccccccc9}, /* 5.92046e+11=f(27.8000)*/ +{ 6, 0,123,__LINE__, 0x42879486, 0x60000000, 0x403d7fff, 0xfffffffc}, /* 3.24083e+12=f(29.5000)*/ +0,}; +test_coshf(m) {run_vector_1(m,coshf_vec,(char *)(coshf),"coshf","ff"); } diff --git a/newlib/libm/test/dcvt.c b/newlib/libm/test/dcvt.c new file mode 100644 index 000000000..2aaa1af28 --- /dev/null +++ b/newlib/libm/test/dcvt.c @@ -0,0 +1,605 @@ + + +#include <limits.h> +#include <math.h> +#include <stdio.h> +#include <float.h> +#include <ieeefp.h> +#include <stdlib.h> +#include <string.h> +#define _MAX_CHARS 512 + +static char *lcset = "0123456789abcdef"; + +static struct p { + double pvalue, nvalue; + int exp; +} powers[] = +{ +{ 1e32, 1e-32, 32}, +{ 1e16, 1e-16, 16}, +{ 1e8, 1e-8, 8}, +{ 1e4, 1e-4, 4}, +{ 1e2, 1e-2, 2}, +{ 1e1, 1e-1, 1 }, +{ 1e0, 1e-0, 0 } +}; + +#define _MAX_PREC 16 + +static char +_DEFUN(nextdigit,(value), +double *value) +{ + double tmp; + + *value = modf (*value * 10, &tmp) ; + return lcset[(int)tmp]; +} + + +static char * +_DEFUN(print_nan,(buffer, value, precision), + char *buffer _AND + double value _AND + int precision) +{ + size_t i; + + if (isnan(value)) + { + strcpy(buffer, "nan"); + i = 3; + + } + else + { + strcpy(buffer, "infinity"); + i = 8; + } + + while (i < precision) + { + buffer[i++] = ' '; + } + buffer[i++] = 0; + return buffer; + +} + +/* A convert info struct */ +typedef struct +{ + char *buffer ; /* Destination of conversion */ + double value; /* scratch Value to convert */ + double original_value; /* saved Value to convert */ + int value_neg; /* OUT: 1 if value initialiy neg */ + int abs_exp; /* abs Decimal exponent of value */ + int abs_exp_sign; /* + or - */ + int exp; /* exp not sgned */ + int type; /* fFeEgG used in printing before exp */ + + int print_trailing_zeros; /* Print 00's after a . */ + + int null_idx; /* Index of the null at the end */ + +/* These ones are read only */ + int decimal_places; /* the number of digits to print after + the decimal */ + int max_digits; /* total number of digits to print */ + int buffer_size; /* Size of output buffer */ + + /* Two sorts of dot ness. + 0 never ever print a dot + 1 print a dot if followed by a digit + 2 always print a dot, even if no digit following + */ + enum { dot_never, dot_sometimes, dot_always} dot; /* Print a decimal point, always */ + int dot_idx; /* where the dot went, or would have gone */ +} cvt_info_type; + + +void +_DEFUN(renormalize,(in), + cvt_info_type *in) +{ + + /* Make sure all numbers are less than 1 */ + + while (in->value >= 1.0) + { + in->value = in->value * 0.1; + in->exp++; + } + + /* Now we have only numbers between 0 and .9999.., and have adjusted + exp to account for the shift */ + + if (in->exp >= 0) + { + in->abs_exp_sign = '+'; + in->abs_exp = in->exp; + } + else + { + in->abs_exp_sign = '-'; + in->abs_exp = -in->exp; + } + +} + +/* This routine looks at original_value, and makes it between 0 and 1, + modifying exp as it goes + */ + +static void +_DEFUN(normalize,(value, in), + double value _AND + cvt_info_type *in) +{ + int j; + int texp; + if (value != 0) + { + texp = -1; + + + if (value < 0.0) + { + in->value_neg =1 ; + value = - value; + } + else + { + in->value_neg = 0; + } + + + /* Work out texponent & normalise value */ + + /* If value > 1, then shrink it */ + if (value >= 1.0) + { + for (j = 0; j < 6; j++) + { + while (value >= powers[j].pvalue) + { + value /= powers[j].pvalue; + texp += powers[j].exp; + } + } + } + else if (value != 0.0) + { + for (j = 0; j < 6; j++) + { + while (value <= powers[j].nvalue) + { + value *= powers[j].pvalue; + texp -= powers[j].exp; + } + } + } + } + + else + { + texp = 0; + } + + + in->exp = texp; + in->value = value; + in->original_value = value; + renormalize(in); + +} +int +_DEFUN(round,(in, start, now, ch), + cvt_info_type *in _AND + char *start _AND + char *now _AND + char ch) +{ + double rounder = 5.0; + + char *p; + int ok = 0; + + now --; + + /* If the next digit to output would have been a '5' run back and */ + /* see if we can create a more rounded number. If we can then do it. + If not (like when the number was 9.9 and the last char was + another 9), then we'll have to modify the number and try again */ + if (ch < '5') + return 0; + + + for (p = now;!ok && p >= start; p--) + { + switch (*p) + { + default: + abort(); + case '.': + break; + case '9': + rounder = rounder * 0.1; + break; + case '8': + case '7': + case '6': + case '5': + case '4': + case '3': + case '2': + case '1': + case '0': + p = now; + while (1) { + if (*p == '9') { + *p = '0'; + } + else if (*p != '.') { + (*p)++; + return 0; + } + p--; + } + } + + } + + /* Getting here means that we couldn't round the number in place + textually - there have been all nines. + We'll have to add to it and try the conversion again + eg + .99999[9] can't be rounded in place, so add + .000005 to it giving: + 1.000004 we notice that the result is > 1 so add to exp and + divide by 10 + .100004 + */ + + in->original_value = in->value = in->original_value + rounder; + normalize(in->original_value , in); + return 1; + + +} + + + +void +_DEFUN(_cvte,(in), + register cvt_info_type *in) +{ + int buffer_idx =0; + int digit = 0; + + int after_decimal =0; + + in->buffer[buffer_idx++] = nextdigit(&(in->value)); + digit++; + in->dot_idx = buffer_idx; + + + switch (in->dot) + { + case dot_never: + break; + case dot_sometimes: + if (in->decimal_places + && digit < in->max_digits) + { + in->buffer[buffer_idx++] = '.'; + } + break; + case dot_always: + in->buffer[buffer_idx++] = '.'; + } + + + while (buffer_idx < in->buffer_size + && after_decimal < in->decimal_places + && digit < in->max_digits) + { + in->buffer[buffer_idx] = nextdigit(&(in->value)); + after_decimal++; + buffer_idx++; + digit++; + + } + + if (round(in, + in->buffer, + in->buffer+buffer_idx, + nextdigit(&(in->value)))) + { + _cvte(in); + } + else + { + in->buffer[buffer_idx++] = in->type; + in->buffer[buffer_idx++] = in->abs_exp_sign; + + if (in->abs_exp >= 100) + { + in->buffer[buffer_idx++] = lcset[in->abs_exp / 100]; + in->abs_exp %= 100; + } + in->buffer[buffer_idx++] = lcset[in->abs_exp / 10]; + in->buffer[buffer_idx++] = lcset[in->abs_exp % 10]; + } + + in->buffer[buffer_idx++] = 0; +} + + + + +/* Produce NNNN.FFFF */ +void +_DEFUN(_cvtf,(in), + cvt_info_type *in) +{ + + int buffer_idx = 0; /* Current char being output */ + int after_decimal = 0; + int digit =0; + + + in->dot_idx = in->exp + 1; + + /* Two sorts of number, NNN.FFF and 0.0000...FFFF */ + + + /* Print all the digits up to the decimal point */ + + while (buffer_idx <= in->exp + && digit < in->max_digits + && buffer_idx < in->buffer_size) + { + in->buffer[buffer_idx] = nextdigit(&(in->value)); + buffer_idx++; + digit ++; + } + + + /* And the decimal point if we should */ + if (buffer_idx < in->buffer_size) + { + + switch (in->dot) + { + case dot_never: + break; + case dot_sometimes: + /* Only print a dot if following chars */ + if (in->decimal_places + && digit < in->max_digits ) + { + in->buffer[buffer_idx++] = '.'; + } + + break; + case dot_always: + in->buffer[buffer_idx++] = '.'; + } + + after_decimal = 0; + + /* And the digits following the point if necessary */ + + /* Only print the leading zeros if a dot was possible */ + if (in->dot || in->exp>0) + { + while (buffer_idx < in->buffer_size + && (in->abs_exp_sign == '-' && digit < in->abs_exp - 1) + && (after_decimal < in->decimal_places) + && (digit < in->max_digits)) + { + in->buffer[buffer_idx] = '0'; + buffer_idx++; + digit++; + after_decimal++; + } + } + + while (buffer_idx < in->buffer_size + && after_decimal < in->decimal_places + && digit < in->max_digits) + { + in->buffer[buffer_idx] = nextdigit(&(in->value)); + buffer_idx++; + digit++; + after_decimal++; + } + } + + in->null_idx = buffer_idx; + in->buffer[buffer_idx] = 0; + if (round(in, in->buffer, in->buffer+buffer_idx, + nextdigit(&(in->value)))) + { + _cvtf(in); + } + + + + +} + + + +char * +_DEFUN(_dcvt,(buffer, invalue, precision, width, type, dot), + char *buffer _AND + double invalue _AND + int precision _AND + int width _AND + char type _AND + int dot) +{ + cvt_info_type in; + + + + in.buffer = buffer; + in.buffer_size = 512; + + if (!finite(invalue)) + { + return print_nan(buffer, invalue, precision); + } + + + normalize(invalue, &in); + + in.type = type; + in.dot = dot? dot_always: dot_sometimes; + + switch (type) + { + + case 'g': + case 'G': + /* When formatting a g, the precision refers to the number of + char positions *total*, this leads to various off by ones */ + { + /* A precision of 0 means 1 */ + if (precision == 0) + precision = 1; + + /* A g turns into an e if there are more digits than the + precision, or it's smaller than e-4 */ + if (in.exp >= precision || in.exp < -4) + { + in.type = (type == 'g' ? 'e' : 'E'); + in.decimal_places = _MAX_CHARS; + in.max_digits = precision; + in.print_trailing_zeros = 1; + _cvte(&in); + } + else + { + /* G means total number of chars to print */ + in.decimal_places = _MAX_CHARS; + in.max_digits = precision; + in.type = (type == 'g' ? 'f' : 'F'); + in.print_trailing_zeros = 0; + _cvtf(&in); + + if (!dot) { + /* trim trailing zeros */ + int j = in.null_idx -1; + while (j > 0 && in.buffer[j] == '0') + { + in.buffer[j] = 0; + j--; + } + /* Stamp on a . if not followed by zeros */ + if (j > 0 && buffer[j] == '.') + in.buffer[j] = 0; + } + } + + + break; + case 'f': + case 'F': + in.decimal_places= precision; + in.max_digits = _MAX_CHARS; + in.print_trailing_zeros = 1; + _cvtf(&in); + break; + case 'e': + case 'E': + in.print_trailing_zeros = 1; + in.decimal_places = precision; + in.max_digits = _MAX_CHARS; + _cvte(&in); + break; + } + + } + + + return buffer; +} + + + + +char * +_DEFUN(fcvtbuf,(invalue,ndigit,decpt,sign, fcvt_buf), + double invalue _AND + int ndigit _AND + int *decpt _AND + int *sign _AND + char *fcvt_buf) +{ + cvt_info_type in; + in.buffer = fcvt_buf; + in.buffer_size = 512; + + if (!finite(invalue)) + { + return print_nan(fcvt_buf, invalue, ndigit); + } + + normalize(invalue, &in); + + in.dot = dot_never; /* Don't print a decimal point */ + in.max_digits = _MAX_CHARS; + in.buffer_size = _MAX_CHARS; /* Take as many as needed */ + in.decimal_places = ndigit; + _cvtf(&in); + *decpt = in.dot_idx; + *sign = in.value_neg; + return in.buffer; +} + + +char * +_DEFUN(ecvtbuf,(invalue,ndigit,decpt,sign, fcvt_buf), + double invalue _AND + int ndigit _AND + int *decpt _AND + int *sign _AND + char *fcvt_buf) +{ + cvt_info_type in; + in.buffer = fcvt_buf; + + if (!finite(invalue)) + { + return print_nan(fcvt_buf, invalue, ndigit); + } + + normalize(invalue, &in); + + + in.dot = dot_never; /* Don't print a decimal point */ +/* We can work out how many digits go after the decimal point */ + + in.buffer_size =_MAX_CHARS; + in.decimal_places = _MAX_CHARS; + in.max_digits = ndigit; /* Take as many as told */ + _cvtf(&in); + *decpt = in.dot_idx; + *sign = in.value_neg; + return in.buffer; +} + + + +char * +_DEFUN(gcvt,(d,ndigit,buf), + double d _AND + int ndigit _AND + char *buf) +{ + return _dcvt(buf, d, ndigit, 0, 'g', 1); +} diff --git a/newlib/libm/test/dvec.c b/newlib/libm/test/dvec.c new file mode 100644 index 000000000..198faa183 --- /dev/null +++ b/newlib/libm/test/dvec.c @@ -0,0 +1,602 @@ +#include "test.h" + +ddouble_type ddoubles[] = { +__LINE__, 7.411456790099004e+08,"7411",4,9,0,"7411456790099",4,9,0,"7.411e+08",4, + +__LINE__, 6.779433073319225e-23,"6779433",7,-22,0,"6779433",7,-22,0,"6.779433e-23",7, + +__LINE__, 5.888272965262503e-03,"5888273",7,-2,0,"5888273",7,-2,0,".0058883",7, + +__LINE__, 1.705972712393192e-26,"17059727",8,-25,0,"17059727",8,-25,0,"1.7059727e-26",8, + +__LINE__, 5.790100803298969e-15,"6",1,-14,0,"6",1,-14,0,"6e-15",1, + +__LINE__, 7.563575126808102e-08,"7564",4,-7,0,"7564",4,-7,0,"7.564e-08",4, + +__LINE__, 2.065340498087056e+25,"206534",6,26,0,"20653404980870559981553924444597",6,26,0,"2.06534e+25",6, + +__LINE__, 1.047038124260123e+02,"1",1,3,0,"1047",1,3,0,"1e+02",1, + +__LINE__, 4.970783404568945e+28,"497",3,29,0,"49707834045689445190419064601883",3,29,0,"4.97e+28",3, + +__LINE__, 6.188542454563260e+02,"6",1,3,0,"6189",1,3,0,"6e+02",1, + +__LINE__, 1.913780290320816e+17,"191",3,18,0,"191378029032081631300",3,18,0,"1.91e+17",3, + +__LINE__, 6.911970810510094e-03,"691197",6,-2,0,"691197",6,-2,0,".006912",6, + +__LINE__, 6.530901390373796e-19,"7",1,-18,0,"7",1,-18,0,"7e-19",1, + +__LINE__, 1.688357491215602e+02,"168836",6,3,0,"168835749",6,3,0,"168.836",6, + +__LINE__, 1.347202777558724e-28,"13472028",8,-27,0,"13472028",8,-27,0,"1.3472028e-28",8, + +__LINE__, 4.198600486581023e+23,"42",2,24,0,"41986004865810233610545765",2,24,0,"4.2e+23",2, + +__LINE__, 6.626748168931517e-22,"66",2,-21,0,"66",2,-21,0,"6.6e-22",2, + +__LINE__, 8.271145287633235e+21,"82711",5,22,0,"827114528763323519910954928",5,22,0,"8.2711e+21",5, + +__LINE__, 2.569163640433771e+25,"3",1,26,0,"256916364043377054571237750",1,26,0,"3e+25",1, + +__LINE__, 7.764533336462913e-13,"776",3,-12,0,"776",3,-12,0,"7.76e-13",3, + +__LINE__, 4.619473758301567e-22,"46195",5,-21,0,"46195",5,-21,0,"4.6195e-22",5, + +__LINE__, 2.067935943396911e-13,"20679359",8,-12,0,"20679359",8,-12,0,"2.0679359e-13",8, + +__LINE__, 1.011355042357299e+02,"1011355",7,3,0,"1011355042",7,3,0,"101.1355",7, + +__LINE__, 4.814049311025340e+28,"5",1,29,0,"481404931102533950593169720378",1,29,0,"5e+28",1, + +__LINE__, 1.337365076329700e-30,"1337365",7,-29,0,"1337365",7,-29,0,"1.337365e-30",7, + +__LINE__, 9.501916506313627e-25,"950",3,-24,0,"950",3,-24,0,"9.50e-25",3, + +__LINE__, 1.529207539606606e-03,"15292",5,-2,0,"15292",5,-2,0,".00153",5, + +__LINE__, 4.077501222009158e+26,"408",3,27,0,"407750122200915754433481197339",3,27,0,"4.08e+26",3, + +__LINE__, 8.713312243134940e+00,"87133",5,1,0,"871331",5,1,0,"8.7133",5, + +__LINE__, 9.958770493219248e+29,"99587705",8,30,0,"99587704932192480100638931617140769958",8,30,0,"9.9587705e+29",8, + +__LINE__, 3.906559442060730e+27,"391",3,28,0,"3906559442060730447110472596250",3,28,0,"3.91e+27",3, + +__LINE__, 4.596864377904587e+09,"45968644",8,10,0,"459686437790458680",8,10,0,"4.5968644e+09",8, + +__LINE__, 1.011374744602721e+09,"10113747",8,10,0,"101137474460272125",8,10,0,"1.0113747e+09",8, + +__LINE__, 7.368531155948668e-29,"736853",6,-28,0,"736853",6,-28,0,"7.36853e-29",6, + +__LINE__, 9.501263936830290e-30,"9501264",7,-29,0,"9501264",7,-29,0,"9.501264e-30",7, + +__LINE__, 1.022516585955060e-21,"10",2,-20,0,"10",2,-20,0,"1.0e-21",2, + +__LINE__, 1.749461134391626e+03,"1749461",7,4,0,"17494611344",7,4,0,"1749.461",7, + +__LINE__, 1.597416186584641e+25,"159742",6,26,0,"15974161865846405738977864530170",6,26,0,"1.59742e+25",6, + +__LINE__, 1.191930545842576e-02,"1",1,-1,0,"1",1,-1,0,"",1, + +__LINE__, 4.401707995092183e-10,"440",3,-9,0,"440",3,-9,0,"4.40e-10",3, + +__LINE__, 5.842911524915387e-20,"5842912",7,-19,0,"5842912",7,-19,0,"5.842912e-20",7, + +__LINE__, 4.763038868476586e-17,"5",1,-16,0,"5",1,-16,0,"5e-17",1, + +__LINE__, 2.711250050689824e+04,"27112501",8,5,0,"2711250050690",8,5,0,"27112.501",8, + +__LINE__, 1.586825853752952e-28,"2",1,-27,0,"2",1,-27,0,"2e-28",1, + +__LINE__, 2.692606047104273e+11,"269261",6,12,0,"269260604710427298",6,12,0,"2.69261e+11",6, + +__LINE__, 3.179150601523438e+07,"3",1,8,0,"31791506",1,8,0,"3e+07",1, + +__LINE__, 2.504660553392644e+28,"2504661",7,29,0,"250466055339264359602680087846238166",7,29,0,"2.504661e+28",7, + +__LINE__, 2.337051102431064e+03,"2",1,4,0,"23371",1,4,0,"2e+03",1, + +__LINE__, 1.178118953346745e-26,"117812",6,-25,0,"117812",6,-25,0,"1.17812e-26",6, + +__LINE__, 3.686404114505492e-28,"36864041",8,-27,0,"36864041",8,-27,0,"3.6864041e-28",8, + +__LINE__, 5.762313620432176e+15,"5762314",7,16,0,"57623136204321756537183",7,16,0,"5.762314e+15",7, + +__LINE__, 4.452493864611241e-14,"44525",5,-13,0,"44525",5,-13,0,"4.4525e-14",5, + +__LINE__, 3.389385718740431e-19,"33893857",8,-18,0,"33893857",8,-18,0,"3.3893857e-19",8, + +__LINE__, 2.391576379695071e-10,"239",3,-9,0,"239",3,-9,0,"2.39e-10",3, + +__LINE__, 4.775469136289389e+28,"477547",6,29,0,"47754691362893888495477767719421536",6,29,0,"4.77547e+28",6, + +__LINE__, 1.880103319851404e-22,"18801033",8,-21,0,"18801033",8,-21,0,"1.8801033e-22",8, + +__LINE__, 3.623855580649127e-15,"36239",5,-14,0,"36239",5,-14,0,"3.6239e-15",5, + +__LINE__, 1.632057742810541e-14,"2",1,-13,0,"2",1,-13,0,"2e-14",1, + +__LINE__, 6.692624092583789e-22,"7",1,-21,0,"7",1,-21,0,"7e-22",1, + +__LINE__, 1.252002726173413e-16,"1252",4,-15,0,"1252",4,-15,0,"1.252e-16",4, + +__LINE__, 1.462408181475922e+10,"1462",4,11,0,"146240818147592",4,11,0,"1.462e+10",4, + +__LINE__, 4.005562902861667e+12,"4006",4,13,0,"40055629028616666",4,13,0,"4.006e+12",4, + +__LINE__, 1.131067062565773e-17,"1",1,-16,0,"1",1,-16,0,"1e-17",1, + +__LINE__, 2.397292973376075e+16,"2397293",7,17,0,"239729297337607505369306",7,17,0,"2.397293e+16",7, + +__LINE__, 1.247021255449452e+05,"124702",6,6,0,"124702125545",6,6,0,"124702",6, + +__LINE__, 3.222697929297968e-16,"32226979",8,-15,0,"32226979",8,-15,0,"3.2226979e-16",8, + +__LINE__, 5.930401483195766e-22,"59304015",8,-21,0,"59304015",8,-21,0,"5.9304015e-22",8, + +__LINE__, 1.741790451299310e-05,"2",1,-4,0,"2",1,-4,0,"2e-05",1, + + +__LINE__, 5.560486576144616e-04,"56",2,-3,0,"56",2,-3,0,"",2, + +__LINE__, 3.721569132002345e+12,"4",1,13,0,"37215691320023",1,13,0,"4e+12",1, + +__LINE__, 5.602270485868007e+10,"56",2,11,0,"5602270485868",2,11,0,"5.6e+10",2, + +__LINE__, 1.872554953737922e-13,"187",3,-12,0,"187",3,-12,0,"1.87e-13",3, + +__LINE__, 3.078997528596941e+07,"308",3,8,0,"30789975286",3,8,0,"3.08e+07",3, + +__LINE__, 1.637490643914118e-06,"2",1,-5,0,"2",1,-5,0,"2e-06",1, + +__LINE__, 8.179181640418333e+24,"818",3,25,0,"8179181640418333287811947230",3,25,0,"8.18e+24",3, + +__LINE__, 6.171369234524714e-28,"6171",4,-27,0,"6171",4,-27,0,"6.171e-28",4, + +__LINE__, 1.791138795467072e+14,"18",2,15,0,"17911387954670723",2,15,0,"1.8e+14",2, + +__LINE__, 9.907740945357109e+25,"9907741",7,26,0,"990774094535710858622223895508796",7,26,0,"9.907741e+25",7, + +__LINE__, 2.530848135710619e-14,"253085",6,-13,0,"253085",6,-13,0,"2.53085e-14",6, + +__LINE__, 1.619815697846305e-25,"16198157",8,-24,0,"16198157",8,-24,0,"1.6198157e-25",8, + +__LINE__, 1.658806111939662e+06,"17",2,7,0,"165880611",2,7,0,"1.7e+06",2, + +__LINE__, 1.520841097485083e+25,"2",1,26,0,"152084109748508282677903480",1,26,0,"2e+25",1, + +__LINE__, 1.305213586757638e-18,"1305",4,-17,0,"1305",4,-17,0,"1.305e-18",4, + +__LINE__, 7.052058348992362e-12,"70520583",8,-11,0,"70520583",8,-11,0,"7.0520583e-12",8, + +__LINE__, 7.819308213692752e+20,"781931",6,21,0,"781930821369275186327740812",6,21,0,"7.81931e+20",6, + +__LINE__, 3.457215738335750e-13,"345722",6,-12,0,"345722",6,-12,0,"3.45722e-13",6, + +__LINE__, 5.673283287913788e+07,"56732833",8,8,0,"5673283287913788",8,8,0,"56732833",8, + +__LINE__, 1.471857261085004e+23,"1472",4,24,0,"1471857261085003809597537838",4,24,0,"1.472e+23",4, + +__LINE__, 1.793947117071970e+22,"17939471",8,23,0,"1793947117071969632462469235179",8,23,0,"1.7939471e+22",8, + +__LINE__, 5.121254629351260e-11,"51213",5,-10,0,"51213",5,-10,0,"5.1213e-11",5, + +__LINE__, 4.390732882355057e+16,"439073",6,17,0,"43907328823550573204670",6,17,0,"4.39073e+16",6, + +__LINE__, 2.427335872475672e+27,"24273359",8,28,0,"242733587247567239586487630731426179",8,28,0,"2.4273359e+27",8, + +__LINE__, 6.328085758887609e+19,"6328086",7,20,0,"632808575888760937999677481",7,20,0,"6.328086e+19",7, + +__LINE__, 7.399809184791178e+15,"7400",4,16,0,"73998091847911782182",4,16,0,"7.400e+15",4, + +__LINE__, 1.431701330887928e-11,"143",3,-10,0,"143",3,-10,0,"1.43e-11",3, + +__LINE__, 2.059594182326570e+24,"206",3,25,0,"2059594182326569988816800105",3,25,0,"2.06e+24",3, + +__LINE__, 1.754194250078728e-25,"175",3,-24,0,"175",3,-24,0,"1.75e-25",3, + +__LINE__, 4.941256641422608e-27,"494",3,-26,0,"494",3,-26,0,"4.94e-27",3, + +__LINE__, 2.206058544089213e-20,"22060585",8,-19,0,"22060585",8,-19,0,"2.2060585e-20",8, + +__LINE__, 6.994849795137307e+10,"699485",6,11,0,"69948497951373065",6,11,0,"6.99485e+10",6, + +__LINE__, 3.152798180026982e+28,"3153",4,29,0,"315279818002698153378560164128430",4,29,0,"3.153e+28",4, + + +__LINE__, 1.348325903318616e-24,"1348326",7,-23,0,"1348326",7,-23,0,"1.348326e-24",7, + +__LINE__, 2.113465893194608e-15,"21134659",8,-14,0,"21134659",8,-14,0,"2.1134659e-15",8, + +__LINE__, 4.073170124707854e+02,"407",3,3,0,"407317",3,3,0,"407",3, + +__LINE__, 2.181347299147143e-17,"218135",6,-16,0,"218135",6,-16,0,"2.18135e-17",6, + +__LINE__, 2.103271966376922e+03,"21",2,4,0,"210327",2,4,0,"2.1e+03",2, + +__LINE__, 2.286252208932191e-30,"229",3,-29,0,"229",3,-29,0,"2.29e-30",3, + +__LINE__, 5.624350974502655e+25,"6",1,26,0,"562435097450265519825052252",1,26,0,"6e+25",1, + +__LINE__, 4.453486178405307e+05,"4453",4,6,0,"4453486178",4,6,0,"4.453e+05",4, + +__LINE__, 1.555010610051608e+13,"156",3,14,0,"15550106100516081",3,14,0,"1.56e+13",3, + +__LINE__, 7.719959471762408e-11,"8",1,-10,0,"8",1,-10,0,"8e-11",1, + +__LINE__, 6.649313805526527e+04,"6649314",7,5,0,"664931380553",7,5,0,"66493.14",7, + +__LINE__, 2.736862165988477e-29,"2737",4,-28,0,"2737",4,-28,0,"2.737e-29",4, + +__LINE__, 8.961141449916591e+05,"8961141",7,6,0,"8961141449917",7,6,0,"896114.1",7, + +__LINE__, 3.743832253349299e+03,"37438323",8,4,0,"374383225335",8,4,0,"3743.8323",8, + +__LINE__, 4.616542199119112e-19,"5",1,-18,0,"5",1,-18,0,"5e-19",1, + +__LINE__, 2.141990110663772e-10,"214",3,-9,0,"214",3,-9,0,"2.14e-10",3, + +__LINE__, 4.087808591469674e-14,"40878086",8,-13,0,"40878086",8,-13,0,"4.0878086e-14",8, + + +__LINE__, 1.406420622355064e+19,"140642",6,20,0,"14064206223550643315434172",6,20,0,"1.40642e+19",6, + +__LINE__, 3.962213921914215e-30,"39622",5,-29,0,"39622",5,-29,0,"3.9622e-30",5, + +__LINE__, 1.851236839271498e-12,"19",2,-11,0,"19",2,-11,0,"1.9e-12",2, + +__LINE__, 1.752891467132837e-16,"1753",4,-15,0,"1753",4,-15,0,"1.753e-16",4, + +__LINE__, 1.313285975240631e+10,"1313286",7,11,0,"131328597524063095",7,11,0,"1.313286e+10",7, + +__LINE__, 4.797451776197904e-24,"480",3,-23,0,"480",3,-23,0,"4.80e-24",3, + +__LINE__, 5.632348260968011e+03,"6",1,4,0,"56323",1,4,0,"6e+03",1, + +__LINE__, 1.282189526481336e+17,"1282",4,18,0,"1282189526481336336872",4,18,0,"1.282e+17",4, + +__LINE__, 9.821689835700839e-26,"98217",5,-25,0,"98217",5,-25,0,"9.8217e-26",5, + +__LINE__, 3.380291727425090e-10,"3380",4,-9,0,"3380",4,-9,0,"3.380e-10",4, + +__LINE__, 4.869764742219911e-01,"4870",4,0,0,"4870",4,0,0,".487",4, + +__LINE__, 2.099154543729566e+23,"20992",5,24,0,"20991545437295662246413030516",5,24,0,"2.0992e+23",5, + +__LINE__, 1.768676806117752e+04,"17686768",8,5,0,"1768676806118",8,5,0,"17686.768",8, + +__LINE__, 4.303784934223482e-13,"4",1,-12,0,"4",1,-12,0,"4e-13",1, + +__LINE__, 6.523728950282939e+15,"65237290",8,16,0,"652372895028293875441250",8,16,0,"6.5237290e+15",8, + +__LINE__, 7.532898256664122e+08,"8",1,9,0,"7532898257",1,9,0,"8e+08",1, + +__LINE__, 1.442346036443942e+29,"1",1,30,0,"1442346036443941947879920917330",1,30,0,"1e+29",1, + +__LINE__, 2.594386109572275e+04,"259",3,5,0,"25943861",3,5,0,"2.59e+04",3, + +__LINE__, 6.254936126036594e+01,"6",1,2,0,"625",1,2,0,"6e+01",1, + +__LINE__, 1.009888981861756e+09,"100989",6,10,0,"1009888981861756",6,10,0,"1.00989e+09",6, + +__LINE__, 2.163578851988448e-16,"21635789",8,-15,0,"21635789",8,-15,0,"2.1635789e-16",8, + +__LINE__, 2.241242805107749e+14,"224124",6,15,0,"224124280510774864794",6,15,0,"2.24124e+14",6, + +__LINE__, 3.686520132725987e+17,"368652",6,18,0,"368652013272598733095720",6,18,0,"3.68652e+17",6, + +__LINE__, 1.249196467299682e-10,"1249",4,-9,0,"1249",4,-9,0,"1.249e-10",4, + +__LINE__, 2.235966135657711e-16,"224",3,-15,0,"224",3,-15,0,"2.24e-16",3, + +__LINE__, 7.281023867864680e+03,"7281",4,4,0,"72810239",4,4,0,"7281",4, + +__LINE__, 9.495208466038456e-04,"9495208",7,-3,0,"9495208",7,-3,0,".0009495",7, + +__LINE__, 1.909521167837320e+18,"190952",6,19,0,"1909521167837320376747812",6,19,0,"1.90952e+18",6, + +__LINE__, 1.595163045878173e-28,"16",2,-27,0,"16",2,-27,0,"1.6e-28",2, + +__LINE__, 8.333021482130567e+12,"83330215",8,13,0,"833302148213056703696",8,13,0,"8.3330215e+12",8, + +__LINE__, 2.661576028772926e-12,"266",3,-11,0,"266",3,-11,0,"2.66e-12",3, + +__LINE__, 3.333613056158649e-24,"333",3,-23,0,"333",3,-23,0,"3.33e-24",3, + +__LINE__, 6.968307583705560e+11,"696831",6,12,0,"696830758370555969",6,12,0,"6.96831e+11",6, + +__LINE__, 7.112095848565475e-19,"711",3,-18,0,"711",3,-18,0,"7.11e-19",3, + +__LINE__, 5.115369447807078e+21,"5115",4,22,0,"51153694478070779183553896",4,22,0,"5.115e+21",4, + +__LINE__, 1.127652589560061e+16,"112765",6,17,0,"11276525895600610915892",6,17,0,"1.12765e+16",6, + +__LINE__, 6.777084460845612e-18,"6777",4,-17,0,"6777",4,-17,0,"6.777e-18",4, + +__LINE__, 7.969183405862033e-02,"7969183",7,-1,0,"7969183",7,-1,0,".0796918",7, + +__LINE__, 4.497389494902805e-27,"449739",6,-26,0,"449739",6,-26,0,"4.49739e-27",6, + +__LINE__, 1.174283761330826e+27,"1174284",7,28,0,"11742837613308263478018034220440313",7,28,0,"1.174284e+27",7, + +__LINE__, 1.180289038670172e+06,"11803",5,7,0,"118028903867",5,7,0,"1.1803e+06",5, + +__LINE__, 1.373844082711513e+16,"137",3,17,0,"13738440827115125931",3,17,0,"1.37e+16",3, + +__LINE__, 1.080822334120836e+12,"1080822",7,13,0,"10808223341208362811",7,13,0,"1.080822e+12",7, + +__LINE__, 3.758397902350635e+20,"37584",5,21,0,"37583979023506346450744786",5,21,0,"3.7584e+20",5, + +__LINE__, 4.412285493952947e-11,"44",2,-10,0,"44",2,-10,0,"4.4e-11",2, + +__LINE__, 6.565101733527507e+17,"657",3,18,0,"656510173352750658893",3,18,0,"6.57e+17",3, + +__LINE__, 5.723516940272932e+08,"57",2,9,0,"57235169403",2,9,0,"5.7e+08",2, + +__LINE__, 5.330525090324728e-11,"53",2,-10,0,"53",2,-10,0,"5.3e-11",2, + +__LINE__, 6.915504868363691e+29,"691550",6,30,0,"691550486836369060483775683678686619",6,30,0,"6.91550e+29",6, + +__LINE__, 3.172898814737255e-01,"317290",6,0,0,"317290",6,0,0,".31729",6, + +__LINE__, 2.967012281733283e+11,"297",3,12,0,"296701228173328",3,12,0,"2.97e+11",3, + +__LINE__, 8.589210867009845e-29,"8589",4,-28,0,"8589",4,-28,0,"8.589e-29",4, + +__LINE__, 3.624557765318715e-26,"362",3,-25,0,"362",3,-25,0,"3.62e-26",3, + +__LINE__, 1.867754272422402e+27,"2",1,28,0,"18677542724224018400036584353",1,28,0,"2e+27",1, + +__LINE__, 5.150243379639871e-22,"5",1,-21,0,"5",1,-21,0,"5e-22",1, + +__LINE__, 1.190174047262241e+06,"119017",6,7,0,"1190174047262",6,7,0,"1.19017e+06",6, + +__LINE__, 5.502639082882342e-29,"550264",6,-28,0,"550264",6,-28,0,"5.50264e-29",6, + +__LINE__, 7.609168279063695e-08,"76091683",8,-7,0,"76091683",8,-7,0,"7.6091683e-08",8, + +__LINE__, 5.487757715406920e-12,"548776",6,-11,0,"548776",6,-11,0,"5.48776e-12",6, + +__LINE__, 8.221233434744608e+15,"822123",6,16,0,"8221233434744608103983",6,16,0,"8.22123e+15",6, + +__LINE__, 1.679041208804822e+22,"17",2,23,0,"1679041208804822105093990",2,23,0,"1.7e+22",2, + +__LINE__, 3.674074760085828e+11,"3674075",7,12,0,"3674074760085828117",7,12,0,"3.674075e+11",7, + +__LINE__, 9.707698305552812e+26,"9707698",7,27,0,"9707698305552812101382187393028289",7,27,0,"9.707698e+26",7, + +__LINE__, 3.290460821927777e+07,"329046",6,8,0,"32904608219278",6,8,0,"3.29046e+07",6, + +__LINE__, 1.921280148435649e-17,"1921280",7,-16,0,"1921280",7,-16,0,"1.921280e-17",7, + +__LINE__, 7.262738303068721e+09,"726274",6,10,0,"7262738303068721",6,10,0,"7.26274e+09",6, + +__LINE__, 4.917897575589579e-25,"4917898",7,-24,0,"4917898",7,-24,0,"4.917898e-25",7, + +__LINE__, 1.848626498191354e+08,"1849",4,9,0,"1848626498191",4,9,0,"1.849e+08",4, + +__LINE__, 2.820784720947056e+26,"2820785",7,27,0,"2820784720947055568274208781076595",7,27,0,"2.820785e+26",7, + +__LINE__, 2.127470079770766e+28,"21274701",8,29,0,"2127470079770765742921412311261519790",8,29,0,"2.1274701e+28",8, + +__LINE__, 6.873538587870355e+25,"6874",4,26,0,"687353858787035498778550390853",4,26,0,"6.874e+25",4, + +__LINE__, 6.454410097043550e-24,"64544101",8,-23,0,"64544101",8,-23,0,"6.4544101e-24",8, + +__LINE__, 2.213118618919111e-26,"22131",5,-25,0,"22131",5,-25,0,"2.2131e-26",5, + +__LINE__, 8.742226151396711e+18,"9",1,19,0,"87422261513967107760",1,19,0,"9e+18",1, + +__LINE__, 3.558503745388271e+20,"356",3,21,0,"355850374538827063375379",3,21,0,"3.56e+20",3, + +__LINE__, 1.553371837875792e-25,"15533718",8,-24,0,"15533718",8,-24,0,"1.5533718e-25",8, + +__LINE__, 2.939271130182748e+07,"3",1,8,0,"293927113",1,8,0,"3e+07",1, + +__LINE__, 6.541662345466598e+16,"6542",4,17,0,"654166234546659808302",4,17,0,"6.542e+16",4, + +__LINE__, 2.248170096684619e-07,"225",3,-6,0,"225",3,-6,0,"2.25e-07",3, + +__LINE__, 2.756161281996178e+00,"28",2,1,0,"276",2,1,0,"2.8",2, + +__LINE__, 5.239468978174450e+03,"5",1,4,0,"52395",1,4,0,"5e+03",1, + +__LINE__, 4.338762938029571e-17,"433876",6,-16,0,"433876",6,-16,0,"4.33876e-17",6, + +__LINE__, 3.017196887951920e+06,"3",1,7,0,"30171969",1,7,0,"3e+06",1, + +__LINE__, 3.150206780920639e-18,"32",2,-17,0,"32",2,-17,0,"3.2e-18",2, + +__LINE__, 7.446444859285637e+20,"74464449",8,21,0,"74464448592856369302239727404",8,21,0,"7.4464449e+20",8, + +__LINE__, 5.738871302601839e+07,"5738871",7,8,0,"573887130260184",7,8,0,"5.738871e+07",7, + +__LINE__, 1.237491441221398e-03,"12374914",8,-2,0,"12374914",8,-2,0,".00123749",8, + +__LINE__, 7.324627764516713e+09,"73246",5,10,0,"732462776451671",5,10,0,"7.3246e+09",5, + +__LINE__, 3.259418579308160e+15,"3",1,16,0,"32594185793081598",1,16,0,"3e+15",1, + +__LINE__, 1.405194834603686e-15,"1",1,-14,0,"1",1,-14,0,"1e-15",1, + +__LINE__, 3.011742184583622e-17,"301",3,-16,0,"301",3,-16,0,"3.01e-17",3, + +__LINE__, 1.106215706057235e-29,"1106216",7,-28,0,"1106216",7,-28,0,"1.106216e-29",7, + +__LINE__, 4.358471388308310e+16,"43585",5,17,0,"4358471388308309713011",5,17,0,"4.3585e+16",5, + +__LINE__, 2.072305531071263e-29,"2072",4,-28,0,"2072",4,-28,0,"2.072e-29",4, + +__LINE__, 1.986866126874383e-19,"19868661",8,-18,0,"19868661",8,-18,0,"1.9868661e-19",8, + +__LINE__, 1.428864728880793e-23,"14288647",8,-22,0,"14288647",8,-22,0,"1.4288647e-23",8, + +__LINE__, 5.262679202231463e+16,"5263",4,17,0,"526267920223146301595",4,17,0,"5.263e+16",4, + +__LINE__, 2.717198955673183e-15,"271720",6,-14,0,"271720",6,-14,0,"2.71720e-15",6, + +__LINE__, 5.150668549567997e-09,"515067",6,-8,0,"515067",6,-8,0,"5.15067e-09",6, + +__LINE__, 5.671830707040847e-22,"56718",5,-21,0,"56718",5,-21,0,"5.6718e-22",5, + +__LINE__, 1.032009065233582e-28,"1032",4,-27,0,"1032",4,-27,0,"1.032e-28",4, + +__LINE__, 3.256531418180773e+17,"32565",5,18,0,"32565314181807734073004",5,18,0,"3.2565e+17",5, + +__LINE__, 6.855618055697167e+13,"68556181",8,14,0,"6855618055697166646212",8,14,0,"6.8556181e+13",8, + +__LINE__, 1.838515126542337e-04,"183852",6,-3,0,"183852",6,-3,0,".000184",6, + +__LINE__, 3.269357648926951e+01,"326936",6,2,0,"32693576",6,2,0,"32.6936",6, + +__LINE__, 3.155127022134804e+00,"316",3,1,0,"3155",3,1,0,"3.16",3, + +__LINE__, 9.842427380306443e-11,"9842427",7,-10,0,"9842427",7,-10,0,"9.842427e-11",7, + +__LINE__, 1.170329127498228e-27,"117033",6,-26,0,"117033",6,-26,0,"1.17033e-27",6, + +__LINE__, 7.954489717411354e+25,"795449",6,26,0,"79544897174113540216922046965919",6,26,0,"7.95449e+25",6, + +__LINE__, 1.330137938788394e-21,"133014",6,-20,0,"133014",6,-20,0,"1.33014e-21",6, + +__LINE__, 1.263788120181220e+06,"13",2,7,0,"126378812",2,7,0,"1.3e+06",2, + +__LINE__, 1.017118108979511e+06,"10171181",8,7,0,"101711810897951",8,7,0,"1017118.1",8, + +__LINE__, 1.128387852183361e-22,"1128",4,-21,0,"1128",4,-21,0,"1.128e-22",4, + +__LINE__, 2.047687698869088e-07,"20477",5,-6,0,"20477",5,-6,0,"2.0477e-07",5, + +__LINE__, 9.216460471355292e+05,"92165",5,6,0,"92164604714",5,6,0,"9.2165e+05",5, + +__LINE__, 5.540246538793573e+07,"5540247",7,8,0,"554024653879357",7,8,0,"5.540247e+07",7, + +__LINE__, 6.986505945589122e-22,"6986506",7,-21,0,"6986506",7,-21,0,"6.986506e-22",7, + +__LINE__, 1.779386879779575e-18,"18",2,-17,0,"18",2,-17,0,"1.8e-18",2, + +__LINE__, 9.439044013853280e+08,"9439",4,9,0,"9439044013853",4,9,0,"9.439e+08",4, + +__LINE__, 1.981265125583486e+05,"2",1,6,0,"1981265",1,6,0,"2e+05",1, + +__LINE__, 5.674986230255942e+22,"6",1,23,0,"567498623025594195468102",1,23,0,"6e+22",1, + +__LINE__, 2.298864411716790e+15,"22989",5,16,0,"229886441171679001272",5,16,0,"2.2989e+15",5, + +__LINE__, 4.754726458107860e-26,"475473",6,-25,0,"475473",6,-25,0,"4.75473e-26",6, + +__LINE__, 7.998336968052068e-02,"80",2,-1,0,"80",2,-1,0,".08",2, + +__LINE__, 2.186697365330358e+25,"218670",6,26,0,"21866973653303576341500047419686",6,26,0,"2.18670e+25",6, + +__LINE__, 6.934807529104567e-22,"6935",4,-21,0,"6935",4,-21,0,"6.935e-22",4, + +__LINE__, 1.120569139248787e+18,"1120569",7,19,0,"11205691392487873159211631",7,19,0,"1.120569e+18",7, + +__LINE__, 1.579448259562240e+11,"1579448",7,12,0,"1579448259562239620",7,12,0,"1.579448e+11",7, + +__LINE__, 2.272794041158999e-21,"2272794",7,-20,0,"2272794",7,-20,0,"2.272794e-21",7, + +__LINE__, 1.627330067952862e-06,"1627330",7,-5,0,"1627330",7,-5,0,"1.627330e-06",7, + +__LINE__, 3.410001865714449e-30,"3410002",7,-29,0,"3410002",7,-29,0,"3.410002e-30",7, + +__LINE__, 5.061135631527160e+26,"506114",6,27,0,"506113563152715961734884331235662",6,27,0,"5.06114e+26",6, + +__LINE__, 1.500941743164653e+27,"1501",4,28,0,"15009417431646530083355628448771",4,28,0,"1.501e+27",4, + +__LINE__, 6.166170245590984e+24,"61661702",8,25,0,"616617024559098414471236537792720",8,25,0,"6.1661702e+24",8, + +__LINE__, 3.136978730888098e-24,"31",2,-23,0,"31",2,-23,0,"3.1e-24",2, + +__LINE__, 2.970061334090170e+21,"3",1,22,0,"29700613340901703907093",1,22,0,"3e+21",1, + +__LINE__, 3.291355984766073e-13,"32913560",8,-12,0,"32913560",8,-12,0,"3.2913560e-13",8, + +__LINE__, 9.303595796139161e+03,"93036",5,4,0,"93035958",5,4,0,"9303.6",5, + +__LINE__, 7.649624512400109e+09,"8",1,10,0,"76496245124",1,10,0,"8e+09",1, + +__LINE__, 1.390807673774886e-22,"13908",5,-21,0,"13908",5,-21,0,"1.3908e-22",5, + +__LINE__, 8.901090936921923e-21,"890",3,-20,0,"890",3,-20,0,"8.90e-21",3, + +__LINE__, 3.420609082386055e-04,"34206",5,-3,0,"34206",5,-3,0,".00034",5, + +__LINE__, 8.719476778541001e+18,"87",2,19,0,"871947677854100078321",2,19,0,"8.7e+18",2, + +__LINE__, 2.975167062429047e+07,"29751671",8,8,0,"2975167062429047",8,8,0,"29751671",8, + +__LINE__, 1.386895871501743e-02,"13868959",8,-1,0,"13868959",8,-1,0,".01386896",8, + +__LINE__, 1.249824679294188e-16,"12",2,-15,0,"12",2,-15,0,"1.2e-16",2, + +__LINE__, 8.835235425529023e-01,"88352354",8,0,0,"88352354",8,0,0,".88352354",8, + +__LINE__, 2.719226257905232e-01,"2719",4,0,0,"2719",4,0,0,".2719",4, + +__LINE__, 9.756572868832603e+17,"97565729",8,18,0,"97565728688326025519472751",8,18,0,"9.7565729e+17",8, + +__LINE__, 6.264826770146615e-01,"626",3,0,0,"626",3,0,0,".626",3, + +__LINE__, 2.972698423704301e-21,"3",1,-20,0,"3",1,-20,0,"3e-21",1, + +__LINE__, 2.176563709034982e-02,"22",2,-1,0,"22",2,-1,0,".02",2, + +__LINE__, 1.181023160092374e+11,"12",2,12,0,"11810231600924",2,12,0,"1.2e+11",2, + +__LINE__, 7.469767449800807e-04,"74697674",8,-3,0,"74697674",8,-3,0,".00074698",8, + +__LINE__, 1.457185871184082e+29,"1457186",7,30,0,"1457185871184081715767888454138301313",7,30,0,"1.457186e+29",7, + +__LINE__, 1.426297306275258e-19,"14263",5,-18,0,"14263",5,-18,0,"1.4263e-19",5, + +__LINE__, 2.457411275450009e+25,"24574",5,26,0,"2457411275450009036092069436563",5,26,0,"2.4574e+25",5, + +__LINE__, 8.249246277298404e-20,"82492",5,-19,0,"82492",5,-19,0,"8.2492e-20",5, + +__LINE__, 2.921055529607521e-08,"2921056",7,-7,0,"2921056",7,-7,0,"2.921056e-08",7, + +__LINE__, 4.976498203142557e-25,"50",2,-24,0,"50",2,-24,0,"5.0e-25",2, + +__LINE__, 2.483141865351692e-21,"25",2,-20,0,"25",2,-20,0,"2.5e-21",2, + +__LINE__, 1.027771450975839e+24,"10278",5,25,0,"102777145097583866295565258042",5,25,0,"1.0278e+24",5, + +__LINE__, 1.515030972674741e+01,"1515",4,2,0,"151503",4,2,0,"15.15",4, + +__LINE__, 5.248693720662853e+22,"5",1,23,0,"524869372066285322375734",1,23,0,"5e+22",1, + +__LINE__, 3.185373401105931e-01,"32",2,0,0,"32",2,0,0,".32",2, + +__LINE__, 1.024581294142808e-06,"10246",5,-5,0,"10246",5,-5,0,"1.0246e-06",5, + +__LINE__, 1.734965037632195e-07,"173",3,-6,0,"173",3,-6,0,"1.73e-07",3, + +__LINE__, 1.368662469019739e+03,"13686625",8,4,0,"136866246902",8,4,0,"1368.6625",8, + +__LINE__, 4.744768215108924e-02,"474477",6,-1,0,"474477",6,-1,0,".047448",6, + +__LINE__, 3.523947347400251e+10,"35",2,11,0,"3523947347400",2,11,0,"3.5e+10",2, + +__LINE__, 4.703989947348573e+08,"4704",4,9,0,"4703989947349",4,9,0,"4.704e+08",4, + +__LINE__, 3.334096615018971e+22,"333410",6,23,0,"33340966150189710326401382190",6,23,0,"3.33410e+22",6, + +__LINE__, 2.224344163719534e+19,"2224",4,20,0,"222434416371953380675563",4,20,0,"2.224e+19",4, + +__LINE__, 2.841077022740213e-09,"2841",4,-8,0,"2841",4,-8,0,"2.841e-09",4, + +__LINE__, 4.567747128685568e+04,"456775",6,5,0,"45677471287",6,5,0,"45677.5",6, + + +__LINE__, 4.463721781600269e-03,"4",1,-2,0,"4",1,-2,0,"",1, + +__LINE__, 1.581538540826530e+16,"15815385",8,17,0,"1581538540826530336858013",8,17,0,"1.5815385e+16",8, + +__LINE__, 2.407978509096453e+21,"2",1,22,0,"24079785090964529459256",1,22,0,"2e+21",1, + + +0, +}; diff --git a/newlib/libm/test/erf_vec.c b/newlib/libm/test/erf_vec.c new file mode 100644 index 000000000..893f9cc15 --- /dev/null +++ b/newlib/libm/test/erf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type erf_vec[] = { +{64, 0,123,__LINE__, 0xbfed214a, 0xc7b2d068, 0xbff33333, 0x33333333}, /* -0.91031=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbfed0b20, 0x883a76ce, 0xbff30a3d, 0x70a3d70a}, /* -0.90760=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbfecf46d, 0x9e998652, 0xbff2e147, 0xae147ae1}, /* -0.90483=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xbfecdd2f, 0xf0d13464, 0xbff2b851, 0xeb851eb8}, /* -0.90200=f(-1.17000)*/ +{62, 0,123,__LINE__, 0xbfecc565, 0x666a6fc6, 0xbff28f5c, 0x28f5c28f}, /* -0.89909=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfecad0b, 0xe8d28e76, 0xbff26666, 0x66666666}, /* -0.89612=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbfec9421, 0x63b9c90c, 0xbff23d70, 0xa3d70a3d}, /* -0.89308=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbfec7aa3, 0xc57375b7, 0xbff2147a, 0xe147ae14}, /* -0.88997=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbfec6090, 0xff57f49a, 0xbff1eb85, 0x1eb851eb}, /* -0.88678=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfec45e7, 0x06283e10, 0xbff1c28f, 0x5c28f5c2}, /* -0.88353=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfec2aa3, 0xd27302bf, 0xbff19999, 0x99999999}, /* -0.88020=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfec0ec5, 0x60fb4c70, 0xbff170a3, 0xd70a3d70}, /* -0.87680=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfebf249, 0xb3208dbc, 0xbff147ae, 0x147ae147}, /* -0.87332=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfebd52e, 0xcf480de0, 0xbff11eb8, 0x51eb851e}, /* -0.86977=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfebb772, 0xc1479d22, 0xbff0f5c2, 0x8f5c28f5}, /* -0.86614=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfeb9913, 0x9ad17d5a, 0xbff0cccc, 0xcccccccc}, /* -0.86243=f(-1.05000)*/ +{63, 0,123,__LINE__, 0xbfeb7a0f, 0x73e16967, 0xbff0a3d7, 0x0a3d70a3}, /* -0.85864=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbfeb5a64, 0x6b2aa59b, 0xbff07ae1, 0x47ae147a}, /* -0.85478=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfeb3a10, 0xa687022c, 0xbff051eb, 0x851eb851}, /* -0.85083=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbfeb1912, 0x5366b827, 0xbff028f5, 0xc28f5c28}, /* -0.84681=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfeaf767, 0xa7410889, 0xbfefffff, 0xfffffffe}, /* -0.84270=f(-0.01000)*/ +{62, 0,123,__LINE__, 0xbfead50e, 0xe0058459, 0xbfefae14, 0x7ae147ac}, /* -0.83850=f(-0.99000)*/ +{59, 0,123,__LINE__, 0xbfeab206, 0x448de3f0, 0xbfef5c28, 0xf5c28f5a}, /* -0.83423=f(-0.98000)*/ +{61, 0,123,__LINE__, 0xbfea8e4c, 0x251052f3, 0xbfef0a3d, 0x70a3d708}, /* -0.82987=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfea69de, 0xdb9215cc, 0xbfeeb851, 0xeb851eb6}, /* -0.82542=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfea44bc, 0xcc5a6caf, 0xbfee6666, 0x66666664}, /* -0.82089=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfea1ee4, 0x666597d2, 0xbfee147a, 0xe147ae12}, /* -0.81627=f(-0.94000)*/ +{63, 0,123,__LINE__, 0xbfe9f854, 0x23d7dfaf, 0xbfedc28f, 0x5c28f5c0}, /* -0.81156=f(-0.93000)*/ +{62, 0,123,__LINE__, 0xbfe9d10a, 0x8a7083a6, 0xbfed70a3, 0xd70a3d6e}, /* -0.80676=f(-0.92000)*/ +{63, 0,123,__LINE__, 0xbfe9a906, 0x2bfc70e9, 0xbfed1eb8, 0x51eb851c}, /* -0.80188=f(-0.91000)*/ +{61, 0,123,__LINE__, 0xbfe98045, 0xa6c8a2e4, 0xbfeccccc, 0xccccccca}, /* -0.79690=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfe956c7, 0xa6140e08, 0xbfec7ae1, 0x47ae1478}, /* -0.79184=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfe92c8a, 0xe280f560, 0xbfec28f5, 0xc28f5c26}, /* -0.78668=f(-0.88000)*/ +{63, 0,123,__LINE__, 0xbfe9018e, 0x22858aeb, 0xbfebd70a, 0x3d70a3d4}, /* -0.78143=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfe8d5d0, 0x3adbba5e, 0xbfeb851e, 0xb851eb82}, /* -0.77610=f(-0.86000)*/ +{59, 0,123,__LINE__, 0xbfe8a950, 0x0eeffdb0, 0xbfeb3333, 0x33333330}, /* -0.77066=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfe87c0c, 0x914f1a57, 0xbfeae147, 0xae147ade}, /* -0.76514=f(-0.84000)*/ +{62, 0,123,__LINE__, 0xbfe84e04, 0xc412a632, 0xbfea8f5c, 0x28f5c28c}, /* -0.75952=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfe81f37, 0xb94c3284, 0xbfea3d70, 0xa3d70a3a}, /* -0.75381=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe7efa4, 0x936efba2, 0xbfe9eb85, 0x1eb851e8}, /* -0.74800=f(-0.81000)*/ +{63, 0,123,__LINE__, 0xbfe7bf4a, 0x85b7fb81, 0xbfe99999, 0x99999996}, /* -0.74210=f(-0.80000)*/ +{63, 0,123,__LINE__, 0xbfe78e28, 0xd4943d8d, 0xbfe947ae, 0x147ae144}, /* -0.73610=f(-0.79000)*/ +{61, 0,123,__LINE__, 0xbfe75c3e, 0xd60551ec, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.73001=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe7298b, 0xf203be84, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.72382=f(-0.77000)*/ +{61, 0,123,__LINE__, 0xbfe6f60f, 0xa2df4c2c, 0xbfe851eb, 0x851eb84e}, /* -0.71753=f(-0.76000)*/ +{62, 0,123,__LINE__, 0xbfe6c1c9, 0x759d0e5d, 0xbfe7ffff, 0xfffffffc}, /* -0.71115=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe68cb9, 0x0a53044a, 0xbfe7ae14, 0x7ae147aa}, /* -0.70467=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe656de, 0x14813204, 0xbfe75c28, 0xf5c28f58}, /* -0.69810=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe62038, 0x5b681100, 0xbfe70a3d, 0x70a3d706}, /* -0.69143=f(-0.72000)*/ +{63, 0,123,__LINE__, 0xbfe5e8c7, 0xba5c3770, 0xbfe6b851, 0xeb851eb4}, /* -0.68466=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe5b08c, 0x21171644, 0xbfe66666, 0x66666662}, /* -0.67780=f(-0.70000)*/ +{63, 0,123,__LINE__, 0xbfe57785, 0x9404ae2e, 0xbfe6147a, 0xe147ae10}, /* -0.67084=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe53db4, 0x2c8e1c72, 0xbfe5c28f, 0x5c28f5be}, /* -0.66378=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe50318, 0x1960e0ba, 0xbfe570a3, 0xd70a3d6c}, /* -0.65662=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe4c7b1, 0x9eb2bdec, 0xbfe51eb8, 0x51eb851a}, /* -0.64937=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe48b81, 0x16821878, 0xbfe4cccc, 0xccccccc8}, /* -0.64202=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe44e86, 0xf0d2b55e, 0xbfe47ae1, 0x47ae1476}, /* -0.63458=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe410c3, 0xb3e6bdc6, 0xbfe428f5, 0xc28f5c24}, /* -0.62704=f(-0.63000)*/ +{63, 0,123,__LINE__, 0xbfe3d237, 0xfc73ebfa, 0xbfe3d70a, 0x3d70a3d2}, /* -0.61941=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe392e4, 0x7dd4c73e, 0xbfe3851e, 0xb851eb80}, /* -0.61168=f(-0.61000)*/ +{61, 0,123,__LINE__, 0xbfe352ca, 0x0235d4f4, 0xbfe33333, 0x3333332e}, /* -0.60385=f(-0.60000)*/ +{61, 0,123,__LINE__, 0xbfe311e9, 0x6abea663, 0xbfe2e147, 0xae147adc}, /* -0.59593=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe2d043, 0xafb6ab88, 0xbfe28f5c, 0x28f5c28a}, /* -0.58792=f(-0.58000)*/ +{61, 0,123,__LINE__, 0xbfe28dd9, 0xe0a5b41a, 0xbfe23d70, 0xa3d70a38}, /* -0.57981=f(-0.57000)*/ +{62, 0,123,__LINE__, 0xbfe24aad, 0x2470095e, 0xbfe1eb85, 0x1eb851e6}, /* -0.57161=f(-0.56000)*/ +{62, 0,123,__LINE__, 0xbfe206be, 0xb96e0c06, 0xbfe19999, 0x99999994}, /* -0.56332=f(-0.55000)*/ +{62, 0,123,__LINE__, 0xbfe1c20f, 0xf57f4326, 0xbfe147ae, 0x147ae142}, /* -0.55493=f(-0.54000)*/ +{59, 0,123,__LINE__, 0xbfe17ca2, 0x4618c990, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.54646=f(-0.53000)*/ +{63, 0,123,__LINE__, 0xbfe13677, 0x304f0925, 0xbfe0a3d7, 0x0a3d709e}, /* -0.53789=f(-0.52000)*/ +{62, 0,123,__LINE__, 0xbfe0ef90, 0x50dab412, 0xbfe051eb, 0x851eb84c}, /* -0.52924=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfe0a7ef, 0x5c18edcc, 0xbfdfffff, 0xfffffff4}, /* -0.52049=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfe05f96, 0x1e0696a6, 0xbfdf5c28, 0xf5c28f50}, /* -0.51166=f(-0.49000)*/ +{62, 0,123,__LINE__, 0xbfe01686, 0x7a36ae59, 0xbfdeb851, 0xeb851eac}, /* -0.50274=f(-0.48000)*/ +{58, 0,123,__LINE__, 0xbfdf9984, 0xd7878660, 0xbfde147a, 0xe147ae08}, /* -0.49374=f(-0.47000)*/ +{58, 0,123,__LINE__, 0xbfdf0498, 0x0a78ca1f, 0xbfdd70a3, 0xd70a3d64}, /* -0.48465=f(-0.46000)*/ +{59, 0,123,__LINE__, 0xbfde6e4a, 0xe11529b4, 0xbfdccccc, 0xccccccc0}, /* -0.47548=f(-0.45000)*/ +{59, 0,123,__LINE__, 0xbfddd6a1, 0xddac5474, 0xbfdc28f5, 0xc28f5c1c}, /* -0.46622=f(-0.44000)*/ +{59, 0,123,__LINE__, 0xbfdd3da1, 0xb0c45711, 0xbfdb851e, 0xb851eb78}, /* -0.45688=f(-0.43000)*/ +{61, 0,123,__LINE__, 0xbfdca34f, 0x38ca297f, 0xbfdae147, 0xae147ad4}, /* -0.44746=f(-0.42000)*/ +{61, 0,123,__LINE__, 0xbfdc07af, 0x81b81855, 0xbfda3d70, 0xa3d70a30}, /* -0.43796=f(-0.41000)*/ +{62, 0,123,__LINE__, 0xbfdb6ac7, 0xc4b209f7, 0xbfd99999, 0x9999998c}, /* -0.42839=f(-0.40000)*/ +{55, 0,123,__LINE__, 0xbfdacc9d, 0x6797a300, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41873=f(-0.39000)*/ +{59, 0,123,__LINE__, 0xbfda2d35, 0xfc8c5093, 0xbfd851eb, 0x851eb844}, /* -0.40900=f(-0.38000)*/ +{58, 0,123,__LINE__, 0xbfd98c97, 0x41754260, 0xbfd7ae14, 0x7ae147a0}, /* -0.39920=f(-0.37000)*/ +{60, 0,123,__LINE__, 0xbfd8eac7, 0x1f6d614c, 0xbfd70a3d, 0x70a3d6fc}, /* -0.38932=f(-0.36000)*/ +{60, 0,123,__LINE__, 0xbfd847cb, 0xaa2f52fb, 0xbfd66666, 0x66666658}, /* -0.37938=f(-0.35000)*/ +{61, 0,123,__LINE__, 0xbfd7a3ab, 0x1f759d7d, 0xbfd5c28f, 0x5c28f5b4}, /* -0.36936=f(-0.34000)*/ +{59, 0,123,__LINE__, 0xbfd6fe6b, 0xe65101d1, 0xbfd51eb8, 0x51eb8510}, /* -0.35927=f(-0.33000)*/ +{57, 0,123,__LINE__, 0xbfd65814, 0x8e7526c1, 0xbfd47ae1, 0x47ae146c}, /* -0.34912=f(-0.32000)*/ +{61, 0,123,__LINE__, 0xbfd5b0ab, 0xcf7bb13c, 0xbfd3d70a, 0x3d70a3c8}, /* -0.33890=f(-0.31000)*/ +{54, 0,123,__LINE__, 0xbfd50838, 0x881dea00, 0xbfd33333, 0x33333324}, /* -0.32862=f(-0.30000)*/ +{61, 0,123,__LINE__, 0xbfd45ec1, 0xbd6513dd, 0xbfd28f5c, 0x28f5c280}, /* -0.31828=f(-0.29000)*/ +{59, 0,123,__LINE__, 0xbfd3b44e, 0x99d198d1, 0xbfd1eb85, 0x1eb851dc}, /* -0.30788=f(-0.28000)*/ +{61, 0,123,__LINE__, 0xbfd308e6, 0x6c79373d, 0xbfd147ae, 0x147ae138}, /* -0.29741=f(-0.27000)*/ +{60, 0,123,__LINE__, 0xbfd25c90, 0xa81c5b98, 0xbfd0a3d7, 0x0a3d7094}, /* -0.28689=f(-0.26000)*/ +{62, 0,123,__LINE__, 0xbfd1af54, 0xe232d5f7, 0xbfcfffff, 0xffffffe0}, /* -0.27632=f(-0.25000)*/ +{59, 0,123,__LINE__, 0xbfd1013a, 0xd1f01d91, 0xbfceb851, 0xeb851e98}, /* -0.26570=f(-0.24000)*/ +{59, 0,123,__LINE__, 0xbfd0524a, 0x4f3f5771, 0xbfcd70a3, 0xd70a3d50}, /* -0.25502=f(-0.23000)*/ +{61, 0,123,__LINE__, 0xbfcf4516, 0xa36eb077, 0xbfcc28f5, 0xc28f5c08}, /* -0.24429=f(-0.22000)*/ +{61, 0,123,__LINE__, 0xbfcde40b, 0xdf0db776, 0xbfcae147, 0xae147ac0}, /* -0.23352=f(-0.21000)*/ +{61, 0,123,__LINE__, 0xbfcc8184, 0xb8b25ef6, 0xbfc99999, 0x99999978}, /* -0.22270=f(-0.20000)*/ +{60, 0,123,__LINE__, 0xbfcb1d91, 0xd0672118, 0xbfc851eb, 0x851eb830}, /* -0.21183=f(-0.19000)*/ +{61, 0,123,__LINE__, 0xbfc9b843, 0xfc96fd9c, 0xbfc70a3d, 0x70a3d6e8}, /* -0.20093=f(-0.18000)*/ +{61, 0,123,__LINE__, 0xbfc851ac, 0x47ac9586, 0xbfc5c28f, 0x5c28f5a0}, /* -0.18999=f(-0.17000)*/ +{61, 0,123,__LINE__, 0xbfc6e9db, 0xeda44a66, 0xbfc47ae1, 0x47ae1458}, /* -0.17901=f(-0.16000)*/ +{61, 0,123,__LINE__, 0xbfc580e4, 0x5991f46e, 0xbfc33333, 0x33333310}, /* -0.16799=f(-0.15000)*/ +{60, 0,123,__LINE__, 0xbfc416d7, 0x231ac6ca, 0xbfc1eb85, 0x1eb851c8}, /* -0.15694=f(-0.14000)*/ +{61, 0,123,__LINE__, 0xbfc2abc6, 0x0be3fddd, 0xbfc0a3d7, 0x0a3d7080}, /* -0.14586=f(-0.13000)*/ +{60, 0,123,__LINE__, 0xbfc13fc2, 0xfcf6f709, 0xbfbeb851, 0xeb851e71}, /* -0.13475=f(-0.12000)*/ +{59, 0,123,__LINE__, 0xbfbfa5c0, 0x0836aa91, 0xbfbc28f5, 0xc28f5be2}, /* -0.12362=f(-0.11000)*/ +{58, 0,123,__LINE__, 0xbfbcca5e, 0xa24fb2e3, 0xbfb99999, 0x99999953}, /* -0.11246=f(-0.00100)*/ +{59, 0,123,__LINE__, 0xbfb9ed86, 0x669530b2, 0xbfb70a3d, 0x70a3d6c4}, /* -0.10128=f(-0.09000)*/ +{59, 0,123,__LINE__, 0xbfb70f5c, 0x2c9277d1, 0xbfb47ae1, 0x47ae1435}, /* -0.09007=f(-0.08000)*/ +{60, 0,123,__LINE__, 0xbfb43004, 0xff73fe9b, 0xbfb1eb85, 0x1eb851a6}, /* -0.07885=f(-0.07000)*/ +{61, 0,123,__LINE__, 0xbfb14fa6, 0x186c319d, 0xbfaeb851, 0xeb851e2d}, /* -0.06762=f(-0.06000)*/ +{58, 0,123,__LINE__, 0xbfacdcc9, 0xb2191922, 0xbfa99999, 0x9999990e}, /* -0.05637=f(-0.05000)*/ +{60, 0,123,__LINE__, 0xbfa718cd, 0x8b28cd39, 0xbfa47ae1, 0x47ae13ef}, /* -0.04511=f(-0.04000)*/ +{62, 0,123,__LINE__, 0xbfa153a2, 0xfe6dc79b, 0xbf9eb851, 0xeb851da0}, /* -0.03384=f(-0.03000)*/ +{60, 0,123,__LINE__, 0xbf971b2a, 0xf966026a, 0xbf947ae1, 0x47ae1362}, /* -0.02256=f(-0.02000)*/ +{61, 0,123,__LINE__, 0xbf871bc2, 0x666578ec, 0xbf847ae1, 0x47ae1249}, /* -0.01128=f(-0.00010)*/ +{60, 0,123,__LINE__, 0x3cd3d131, 0x57191c9a, 0x3cd19000, 0x00000000}, /* 1.10007e-15=f(9.74915e-16)*/ +{61, 0,123,__LINE__, 0x3f871bc2, 0x66657ddf, 0x3f847ae1, 0x47ae16ad}, /* 0.01128=f(0.01000)*/ +{61, 0,123,__LINE__, 0x3f971b2a, 0xf96604e4, 0x3f947ae1, 0x47ae1594}, /* 0.02256=f(0.02000)*/ +{60, 0,123,__LINE__, 0x3fa153a2, 0xfe6dc8d8, 0x3f9eb851, 0xeb851fd2}, /* 0.03384=f(0.03000)*/ +{61, 0,123,__LINE__, 0x3fa718cd, 0x8b28ce75, 0x3fa47ae1, 0x47ae1508}, /* 0.04511=f(0.04000)*/ +{60, 0,123,__LINE__, 0x3facdcc9, 0xb2191a5d, 0x3fa99999, 0x99999a27}, /* 0.05637=f(0.05000)*/ +{60, 0,123,__LINE__, 0x3fb14fa6, 0x186c323a, 0x3faeb851, 0xeb851f46}, /* 0.06762=f(0.06000)*/ +{62, 0,123,__LINE__, 0x3fb43004, 0xff73ff37, 0x3fb1eb85, 0x1eb85232}, /* 0.07885=f(0.07000)*/ +{61, 0,123,__LINE__, 0x3fb70f5c, 0x2c92786f, 0x3fb47ae1, 0x47ae14c1}, /* 0.09007=f(0.08000)*/ +{59, 0,123,__LINE__, 0x3fb9ed86, 0x66953151, 0x3fb70a3d, 0x70a3d750}, /* 0.10128=f(0.09000)*/ +{56, 0,123,__LINE__, 0x3fbcca5e, 0xa24fb380, 0x3fb99999, 0x999999df}, /* 0.11246=f(0.10000)*/ +{60, 0,123,__LINE__, 0x3fbfa5c0, 0x0836ab2c, 0x3fbc28f5, 0xc28f5c6e}, /* 0.12362=f(0.11000)*/ +{60, 0,123,__LINE__, 0x3fc13fc2, 0xfcf6f758, 0x3fbeb851, 0xeb851efd}, /* 0.13475=f(0.12000)*/ +{62, 0,123,__LINE__, 0x3fc2abc6, 0x0be3fe2b, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.14586=f(0.13000)*/ +{60, 0,123,__LINE__, 0x3fc416d7, 0x231ac718, 0x3fc1eb85, 0x1eb8520e}, /* 0.15694=f(0.14000)*/ +{62, 0,123,__LINE__, 0x3fc580e4, 0x5991f4bb, 0x3fc33333, 0x33333356}, /* 0.16799=f(0.15000)*/ +{59, 0,123,__LINE__, 0x3fc6e9db, 0xeda44ab2, 0x3fc47ae1, 0x47ae149e}, /* 0.17901=f(0.16000)*/ +{59, 0,123,__LINE__, 0x3fc851ac, 0x47ac95d2, 0x3fc5c28f, 0x5c28f5e6}, /* 0.18999=f(0.17000)*/ +{60, 0,123,__LINE__, 0x3fc9b843, 0xfc96fde9, 0x3fc70a3d, 0x70a3d72e}, /* 0.20093=f(0.18000)*/ +{61, 0,123,__LINE__, 0x3fcb1d91, 0xd0672165, 0x3fc851eb, 0x851eb876}, /* 0.21183=f(0.19000)*/ +{57, 0,123,__LINE__, 0x3fcc8184, 0xb8b25f42, 0x3fc99999, 0x999999be}, /* 0.22270=f(0.20000)*/ +{57, 0,123,__LINE__, 0x3fcde40b, 0xdf0db7c1, 0x3fcae147, 0xae147b06}, /* 0.23352=f(0.21000)*/ +{57, 0,123,__LINE__, 0x3fcf4516, 0xa36eb0c2, 0x3fcc28f5, 0xc28f5c4e}, /* 0.24429=f(0.22000)*/ +{62, 0,123,__LINE__, 0x3fd0524a, 0x4f3f5797, 0x3fcd70a3, 0xd70a3d96}, /* 0.25502=f(0.23000)*/ +{61, 0,123,__LINE__, 0x3fd1013a, 0xd1f01db6, 0x3fceb851, 0xeb851ede}, /* 0.26570=f(0.24000)*/ +{61, 0,123,__LINE__, 0x3fd1af54, 0xe232d61c, 0x3fd00000, 0x00000013}, /* 0.27632=f(0.25000)*/ +{61, 0,123,__LINE__, 0x3fd25c90, 0xa81c5bbe, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.28689=f(0.26000)*/ +{58, 0,123,__LINE__, 0x3fd308e6, 0x6c793761, 0x3fd147ae, 0x147ae15b}, /* 0.29741=f(0.27000)*/ +{61, 0,123,__LINE__, 0x3fd3b44e, 0x99d198f6, 0x3fd1eb85, 0x1eb851ff}, /* 0.30788=f(0.28000)*/ +{53, 0,123,__LINE__, 0x3fd45ec1, 0xbd651401, 0x3fd28f5c, 0x28f5c2a3}, /* 0.31828=f(0.29000)*/ +{62, 0,123,__LINE__, 0x3fd50838, 0x881dea23, 0x3fd33333, 0x33333347}, /* 0.32862=f(0.30000)*/ +{58, 0,123,__LINE__, 0x3fd5b0ab, 0xcf7bb160, 0x3fd3d70a, 0x3d70a3eb}, /* 0.33890=f(0.31000)*/ +{61, 0,123,__LINE__, 0x3fd65814, 0x8e7526e5, 0x3fd47ae1, 0x47ae148f}, /* 0.34912=f(0.32000)*/ +{61, 0,123,__LINE__, 0x3fd6fe6b, 0xe65101f5, 0x3fd51eb8, 0x51eb8533}, /* 0.35927=f(0.33000)*/ +{58, 0,123,__LINE__, 0x3fd7a3ab, 0x1f759da1, 0x3fd5c28f, 0x5c28f5d7}, /* 0.36936=f(0.34000)*/ +{61, 0,123,__LINE__, 0x3fd847cb, 0xaa2f531d, 0x3fd66666, 0x6666667b}, /* 0.37938=f(0.35000)*/ +{61, 0,123,__LINE__, 0x3fd8eac7, 0x1f6d616e, 0x3fd70a3d, 0x70a3d71f}, /* 0.38932=f(0.36000)*/ +{56, 0,123,__LINE__, 0x3fd98c97, 0x41754282, 0x3fd7ae14, 0x7ae147c3}, /* 0.39920=f(0.37000)*/ +{61, 0,123,__LINE__, 0x3fda2d35, 0xfc8c50b4, 0x3fd851eb, 0x851eb867}, /* 0.40900=f(0.38000)*/ +{58, 0,123,__LINE__, 0x3fdacc9d, 0x6797a323, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41873=f(0.39000)*/ +{60, 0,123,__LINE__, 0x3fdb6ac7, 0xc4b20a19, 0x3fd99999, 0x999999af}, /* 0.42839=f(0.40000)*/ +{61, 0,123,__LINE__, 0x3fdc07af, 0x81b81876, 0x3fda3d70, 0xa3d70a53}, /* 0.43796=f(0.41000)*/ +{58, 0,123,__LINE__, 0x3fdca34f, 0x38ca29a0, 0x3fdae147, 0xae147af7}, /* 0.44746=f(0.42000)*/ +{59, 0,123,__LINE__, 0x3fdd3da1, 0xb0c45731, 0x3fdb851e, 0xb851eb9b}, /* 0.45688=f(0.43000)*/ +{59, 0,123,__LINE__, 0x3fddd6a1, 0xddac5494, 0x3fdc28f5, 0xc28f5c3f}, /* 0.46622=f(0.44000)*/ +{59, 0,123,__LINE__, 0x3fde6e4a, 0xe11529d3, 0x3fdccccc, 0xcccccce3}, /* 0.47548=f(0.45000)*/ +{61, 0,123,__LINE__, 0x3fdf0498, 0x0a78ca3e, 0x3fdd70a3, 0xd70a3d87}, /* 0.48465=f(0.46000)*/ +{56, 0,123,__LINE__, 0x3fdf9984, 0xd787867e, 0x3fde147a, 0xe147ae2b}, /* 0.49374=f(0.47000)*/ +{60, 0,123,__LINE__, 0x3fe01686, 0x7a36ae67, 0x3fdeb851, 0xeb851ecf}, /* 0.50274=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe05f96, 0x1e0696b6, 0x3fdf5c28, 0xf5c28f73}, /* 0.51166=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe0a7ef, 0x5c18eddc, 0x3fe00000, 0x0000000b}, /* 0.52049=f(0.50000)*/ +{62, 0,123,__LINE__, 0x3fe0ef90, 0x50dab421, 0x3fe051eb, 0x851eb85d}, /* 0.52924=f(0.51000)*/ +{61, 0,123,__LINE__, 0x3fe13677, 0x304f0933, 0x3fe0a3d7, 0x0a3d70af}, /* 0.53789=f(0.52000)*/ +{58, 0,123,__LINE__, 0x3fe17ca2, 0x4618c9a0, 0x3fe0f5c2, 0x8f5c2901}, /* 0.54646=f(0.53000)*/ +{63, 0,123,__LINE__, 0x3fe1c20f, 0xf57f4335, 0x3fe147ae, 0x147ae153}, /* 0.55493=f(0.54000)*/ +{63, 0,123,__LINE__, 0x3fe206be, 0xb96e0c15, 0x3fe19999, 0x999999a5}, /* 0.56332=f(0.55000)*/ +{62, 0,123,__LINE__, 0x3fe24aad, 0x2470096a, 0x3fe1eb85, 0x1eb851f7}, /* 0.57161=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe28dd9, 0xe0a5b42a, 0x3fe23d70, 0xa3d70a49}, /* 0.57981=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe2d043, 0xafb6ab96, 0x3fe28f5c, 0x28f5c29b}, /* 0.58792=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe311e9, 0x6abea670, 0x3fe2e147, 0xae147aed}, /* 0.59593=f(0.59000)*/ +{63, 0,123,__LINE__, 0x3fe352ca, 0x0235d4ff, 0x3fe33333, 0x3333333f}, /* 0.60385=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3fe392e4, 0x7dd4c74a, 0x3fe3851e, 0xb851eb91}, /* 0.61168=f(0.61000)*/ +{60, 0,123,__LINE__, 0x3fe3d237, 0xfc73ec06, 0x3fe3d70a, 0x3d70a3e3}, /* 0.61941=f(0.62000)*/ +{61, 0,123,__LINE__, 0x3fe410c3, 0xb3e6bdd3, 0x3fe428f5, 0xc28f5c35}, /* 0.62704=f(0.63000)*/ +{61, 0,123,__LINE__, 0x3fe44e86, 0xf0d2b56b, 0x3fe47ae1, 0x47ae1487}, /* 0.63458=f(0.64000)*/ +{62, 0,123,__LINE__, 0x3fe48b81, 0x16821885, 0x3fe4cccc, 0xccccccd9}, /* 0.64202=f(0.65000)*/ +{63, 0,123,__LINE__, 0x3fe4c7b1, 0x9eb2bdf8, 0x3fe51eb8, 0x51eb852b}, /* 0.64937=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe50318, 0x1960e0c6, 0x3fe570a3, 0xd70a3d7d}, /* 0.65662=f(0.67000)*/ +{63, 0,123,__LINE__, 0x3fe53db4, 0x2c8e1c7e, 0x3fe5c28f, 0x5c28f5cf}, /* 0.66378=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe57785, 0x9404ae3a, 0x3fe6147a, 0xe147ae21}, /* 0.67084=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe5b08c, 0x21171650, 0x3fe66666, 0x66666673}, /* 0.67780=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe5e8c7, 0xba5c377d, 0x3fe6b851, 0xeb851ec5}, /* 0.68466=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe62038, 0x5b68110c, 0x3fe70a3d, 0x70a3d717}, /* 0.69143=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe656de, 0x14813210, 0x3fe75c28, 0xf5c28f69}, /* 0.69810=f(0.73000)*/ +{62, 0,123,__LINE__, 0x3fe68cb9, 0x0a530456, 0x3fe7ae14, 0x7ae147bb}, /* 0.70467=f(0.74000)*/ +{63, 0,123,__LINE__, 0x3fe6c1c9, 0x759d0e67, 0x3fe80000, 0x0000000d}, /* 0.71115=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe6f60f, 0xa2df4c36, 0x3fe851eb, 0x851eb85f}, /* 0.71753=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe7298b, 0xf203be90, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.72382=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe75c3e, 0xd60551f6, 0x3fe8f5c2, 0x8f5c2903}, /* 0.73001=f(0.78000)*/ +{63, 0,123,__LINE__, 0x3fe78e28, 0xd4943d97, 0x3fe947ae, 0x147ae155}, /* 0.73610=f(0.79000)*/ +{63, 0,123,__LINE__, 0x3fe7bf4a, 0x85b7fb8b, 0x3fe99999, 0x999999a7}, /* 0.74210=f(0.80000)*/ +{63, 0,123,__LINE__, 0x3fe7efa4, 0x936efbaa, 0x3fe9eb85, 0x1eb851f9}, /* 0.74800=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe81f37, 0xb94c328e, 0x3fea3d70, 0xa3d70a4b}, /* 0.75381=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe84e04, 0xc412a63b, 0x3fea8f5c, 0x28f5c29d}, /* 0.75952=f(0.83000)*/ +{63, 0,123,__LINE__, 0x3fe87c0c, 0x914f1a61, 0x3feae147, 0xae147aef}, /* 0.76514=f(0.84000)*/ +{63, 0,123,__LINE__, 0x3fe8a950, 0x0eeffdb9, 0x3feb3333, 0x33333341}, /* 0.77066=f(0.85000)*/ +{63, 0,123,__LINE__, 0x3fe8d5d0, 0x3adbba67, 0x3feb851e, 0xb851eb93}, /* 0.77610=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe9018e, 0x22858af4, 0x3febd70a, 0x3d70a3e5}, /* 0.78143=f(0.87000)*/ +{62, 0,123,__LINE__, 0x3fe92c8a, 0xe280f56a, 0x3fec28f5, 0xc28f5c37}, /* 0.78668=f(0.88000)*/ +{62, 0,123,__LINE__, 0x3fe956c7, 0xa6140e12, 0x3fec7ae1, 0x47ae1489}, /* 0.79184=f(0.89000)*/ +{63, 0,123,__LINE__, 0x3fe98045, 0xa6c8a2ed, 0x3feccccc, 0xccccccdb}, /* 0.79690=f(0.90000)*/ +{62, 0,123,__LINE__, 0x3fe9a906, 0x2bfc70f2, 0x3fed1eb8, 0x51eb852d}, /* 0.80188=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe9d10a, 0x8a7083ae, 0x3fed70a3, 0xd70a3d7f}, /* 0.80676=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe9f854, 0x23d7dfb7, 0x3fedc28f, 0x5c28f5d1}, /* 0.81156=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fea1ee4, 0x666597da, 0x3fee147a, 0xe147ae23}, /* 0.81627=f(0.94000)*/ +{63, 0,123,__LINE__, 0x3fea44bc, 0xcc5a6cb6, 0x3fee6666, 0x66666675}, /* 0.82089=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fea69de, 0xdb9215d4, 0x3feeb851, 0xeb851ec7}, /* 0.82542=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fea8e4c, 0x251052fa, 0x3fef0a3d, 0x70a3d719}, /* 0.82987=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3feab206, 0x448de3f7, 0x3fef5c28, 0xf5c28f6b}, /* 0.83423=f(0.98000)*/ +{63, 0,123,__LINE__, 0x3fead50e, 0xe0058460, 0x3fefae14, 0x7ae147bd}, /* 0.83850=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3feaf767, 0xa7410890, 0x3ff00000, 0x00000007}, /* 0.84270=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3feb1912, 0x5366b82d, 0x3ff028f5, 0xc28f5c30}, /* 0.84681=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3feb3a10, 0xa6870232, 0x3ff051eb, 0x851eb859}, /* 0.85083=f(1.02000)*/ +{62, 0,123,__LINE__, 0x3feb5a64, 0x6b2aa5a2, 0x3ff07ae1, 0x47ae1482}, /* 0.85478=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3feb7a0f, 0x73e1696d, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.85864=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3feb9913, 0x9ad17d60, 0x3ff0cccc, 0xccccccd4}, /* 0.86243=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3febb772, 0xc1479d29, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.86614=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3febd52e, 0xcf480de6, 0x3ff11eb8, 0x51eb8526}, /* 0.86977=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3febf249, 0xb3208dc2, 0x3ff147ae, 0x147ae14f}, /* 0.87332=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fec0ec5, 0x60fb4c76, 0x3ff170a3, 0xd70a3d78}, /* 0.87680=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fec2aa3, 0xd27302c4, 0x3ff19999, 0x999999a1}, /* 0.88020=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fec45e7, 0x06283e15, 0x3ff1c28f, 0x5c28f5ca}, /* 0.88353=f(1.11000)*/ +{58, 0,123,__LINE__, 0x3fec6090, 0xff57f4a0, 0x3ff1eb85, 0x1eb851f3}, /* 0.88678=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fec7aa3, 0xc57375bc, 0x3ff2147a, 0xe147ae1c}, /* 0.88997=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fec9421, 0x63b9c910, 0x3ff23d70, 0xa3d70a45}, /* 0.89308=f(1.14000)*/ +{61, 0,123,__LINE__, 0x3fecad0b, 0xe8d28e7b, 0x3ff26666, 0x6666666e}, /* 0.89612=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fecc565, 0x666a6fca, 0x3ff28f5c, 0x28f5c297}, /* 0.89909=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fecdd2f, 0xf0d1346a, 0x3ff2b851, 0xeb851ec0}, /* 0.90200=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fecf46d, 0x9e998656, 0x3ff2e147, 0xae147ae9}, /* 0.90483=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fed0b20, 0x883a76d3, 0x3ff30a3d, 0x70a3d712}, /* 0.90760=f(1.19000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -1.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfff459c2, 0xc012d97c, 0x7f3321d2}, /* -0.01000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xbfefffed, 0x62a7bb7c, 0xc00921fb, 0x54442d18}, /* -0.99999=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xbfef2860, 0xb4807f6c, 0xbff921fb, 0x54442d18}, /* -0.97367=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3fef2860, 0xb4807f6c, 0x3ff921fb, 0x54442d18}, /* 0.97367=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3fefffed, 0x62a7bb7c, 0x400921fb, 0x54442d18}, /* 0.99999=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfff459c2, 0x4012d97c, 0x7f3321d2}, /* 0.01000=f(4.71238)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03e0000, 0x00000000}, /* -1.00000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -1.00000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -1.00000=f(-26.6000)*/ +{61,16, 40,__LINE__, 0x3fd3fc07, 0xd7b9d768, 0xc038e666, 0x66666667}, /* 0.31225=f(-24.9000)*/ +{60,16, 40,__LINE__, 0x3ffbcbd0, 0x29e037f4, 0xc0373333, 0x33333334}, /* 1.73725=f(-23.2000)*/ +{63,16, 40,__LINE__, 0x401118ea, 0x36ea6e76, 0xc0358000, 0x00000001}, /* 4.27433=f(-21.5000)*/ +{59,16, 40,__LINE__, 0xbfca8988, 0x7894ab50, 0xc033cccc, 0xccccccce}, /* -0.20732=f(-19.8000)*/ +{60,16, 40,__LINE__, 0x3fe3a675, 0x0e430856, 0xc0321999, 0x9999999b}, /* 0.61406=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0306666, 0x66666668}, /* -1.00000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -1.00000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02a0000, 0x00000004}, /* -1.00000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0269999, 0x9999999e}, /* -1.00000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0233333, 0x33333338}, /* -1.00000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -1.00000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -1.00000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffa9bd6a, 0xc0120000, 0x00000009}, /* -0.01000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbfefff62, 0xaf990752, 0xc0066666, 0x66666678}, /* -0.99992=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbfec2aa3, 0xd27302d7, 0xbff19999, 0x999999bd}, /* -0.88020=f(-1.10000)*/ +{63, 0,123,__LINE__, 0x3fe352ca, 0x0235d4be, 0x3fe33333, 0x333332ec}, /* 0.60385=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3feff6a2, 0x95bcd35c, 0x40026666, 0x66666654}, /* 0.99885=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xf7b91176, 0x400fffff, 0xffffffee}, /* 0.99999=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffffea, 0x4016cccc, 0xccccccc4}, /* 0.01000=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x401d9999, 0x99999991}, /* 1.00000=f(7.40000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40223333, 0x3333332f}, /* 1.00000=f(9.10000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40259999, 0x99999995}, /* 1.00000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 1.00000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402c6666, 0x66666661}, /* 1.00000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 1.00000=f(15.9000)*/ +{62,16, 40,__LINE__, 0xbfe72550, 0x5ab7d1b4, 0x40319999, 0x99999997}, /* -0.72330=f(17.6000)*/ +{61,16, 40,__LINE__, 0x3fc292f8, 0xb49b2624, 0x40334ccc, 0xccccccca}, /* 0.14511=f(19.3000)*/ +{63,16, 40,__LINE__, 0x3fe36f0f, 0xb6cd32cb, 0x4034ffff, 0xfffffffd}, /* 0.60730=f(21.0000)*/ +{59,16, 40,__LINE__, 0xbffd52c0, 0x3f2df2ee, 0x4036b333, 0x33333330}, /* -1.83270=f(22.7000)*/ +{60,16, 40,__LINE__, 0xbfd7dfcb, 0xce3843a0, 0x40386666, 0x66666663}, /* -0.37303=f(24.4000)*/ +{62,16, 40,__LINE__, 0x3fd8acb7, 0x085483b2, 0x403a1999, 0x99999996}, /* 0.38554=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 1.00000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 1.00000=f(29.5000)*/ +0,}; +test_erf(m) {run_vector_1(m,erf_vec,(char *)(erf),"erf","dd"); } diff --git a/newlib/libm/test/erfc_vec.c b/newlib/libm/test/erfc_vec.c new file mode 100644 index 000000000..4579d31fd --- /dev/null +++ b/newlib/libm/test/erfc_vec.c @@ -0,0 +1,286 @@ +#include "test.h" + one_line_type erfc_vec[] = { +{64, 0,123,__LINE__, 0x3ffe90a5, 0x63d96834, 0xbff33333, 0x33333333}, /* 1.91031=f(-1.20000)*/ +{64, 0,123,__LINE__, 0x3ffe8590, 0x441d3b67, 0xbff30a3d, 0x70a3d70a}, /* 1.90760=f(-1.19000)*/ +{64, 0,123,__LINE__, 0x3ffe7a36, 0xcf4cc329, 0xbff2e147, 0xae147ae1}, /* 1.90483=f(-1.18000)*/ +{64, 0,123,__LINE__, 0x3ffe6e97, 0xf8689a32, 0xbff2b851, 0xeb851eb8}, /* 1.90200=f(-1.17000)*/ +{63, 0,123,__LINE__, 0x3ffe62b2, 0xb33537e3, 0xbff28f5c, 0x28f5c28f}, /* 1.89909=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3ffe5685, 0xf469473b, 0xbff26666, 0x66666666}, /* 1.89612=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3ffe4a10, 0xb1dce486, 0xbff23d70, 0xa3d70a3d}, /* 1.89308=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3ffe3d51, 0xe2b9badb, 0xbff2147a, 0xe147ae14}, /* 1.88997=f(-1.13000)*/ +{64, 0,123,__LINE__, 0x3ffe3048, 0x7fabfa4d, 0xbff1eb85, 0x1eb851eb}, /* 1.88678=f(-1.12000)*/ +{64, 0,123,__LINE__, 0x3ffe22f3, 0x83141f08, 0xbff1c28f, 0x5c28f5c2}, /* 1.88353=f(-1.11000)*/ +{64, 0,123,__LINE__, 0x3ffe1551, 0xe9398160, 0xbff19999, 0x99999999}, /* 1.88020=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3ffe0762, 0xb07da638, 0xbff170a3, 0xd70a3d70}, /* 1.87680=f(-1.09000)*/ +{64, 0,123,__LINE__, 0x3ffdf924, 0xd99046de, 0xbff147ae, 0x147ae147}, /* 1.87332=f(-1.08000)*/ +{64, 0,123,__LINE__, 0x3ffdea97, 0x67a406f0, 0xbff11eb8, 0x51eb851e}, /* 1.86977=f(-1.07000)*/ +{64, 0,123,__LINE__, 0x3ffddbb9, 0x60a3ce91, 0xbff0f5c2, 0x8f5c28f5}, /* 1.86614=f(-1.06000)*/ +{64, 0,123,__LINE__, 0x3ffdcc89, 0xcd68bead, 0xbff0cccc, 0xcccccccc}, /* 1.86243=f(-1.05000)*/ +{64, 0,123,__LINE__, 0x3ffdbd07, 0xb9f0b4b3, 0xbff0a3d7, 0x0a3d70a3}, /* 1.85865=f(-1.04000)*/ +{62, 0,123,__LINE__, 0x3ffdad32, 0x359552ce, 0xbff07ae1, 0x47ae147a}, /* 1.85478=f(-1.03000)*/ +{64, 0,123,__LINE__, 0x3ffd9d08, 0x53438116, 0xbff051eb, 0x851eb851}, /* 1.85083=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3ffd8c89, 0x29b35c14, 0xbff028f5, 0xc28f5c28}, /* 1.84681=f(-1.01000)*/ +{63, 0,123,__LINE__, 0x3ffd7bb3, 0xd3a08445, 0xbfefffff, 0xfffffffe}, /* 1.84270=f(-0.01000)*/ +{63, 0,123,__LINE__, 0x3ffd6a87, 0x7002c22c, 0xbfefae14, 0x7ae147ac}, /* 1.83850=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3ffd5903, 0x2246f1f8, 0xbfef5c28, 0xf5c28f5a}, /* 1.83423=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3ffd4726, 0x1288297a, 0xbfef0a3d, 0x70a3d708}, /* 1.82987=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3ffd34ef, 0x6dc90ae6, 0xbfeeb851, 0xeb851eb6}, /* 1.82542=f(-0.96000)*/ +{60, 0,123,__LINE__, 0x3ffd225e, 0x662d3657, 0xbfee6666, 0x66666664}, /* 1.82089=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3ffcfc2a, 0x11ebefd7, 0xbfedc28f, 0x5c28f5c0}, /* 1.81156=f(-0.93000)*/ +{63, 0,123,__LINE__, 0x3ffce885, 0x453841d3, 0xbfed70a3, 0xd70a3d6e}, /* 1.80676=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x3ffcd483, 0x15fe3874, 0xbfed1eb8, 0x51eb851c}, /* 1.80188=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3ffcc022, 0xd3645172, 0xbfeccccc, 0xccccccca}, /* 1.79690=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x3ffcab63, 0xd30a0704, 0xbfec7ae1, 0x47ae1478}, /* 1.79184=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x3ffc9645, 0x71407ab0, 0xbfec28f5, 0xc28f5c26}, /* 1.78668=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3ffc80c7, 0x1142c575, 0xbfebd70a, 0x3d70a3d4}, /* 1.78144=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x3ffc6ae8, 0x1d6ddd2f, 0xbfeb851e, 0xb851eb82}, /* 1.77610=f(-0.86000)*/ +{60, 0,123,__LINE__, 0x3ffc54a8, 0x0777fed8, 0xbfeb3333, 0x33333330}, /* 1.77066=f(-0.85000)*/ +{61, 0,123,__LINE__, 0x3ffc3e06, 0x48a78d2c, 0xbfeae147, 0xae147ade}, /* 1.76514=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x3ffc2702, 0x62095319, 0xbfea8f5c, 0x28f5c28c}, /* 1.75952=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3ffc0f9b, 0xdca61942, 0xbfea3d70, 0xa3d70a3a}, /* 1.75381=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3ffbf7d2, 0x49b77dd1, 0xbfe9eb85, 0x1eb851e8}, /* 1.74800=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3ffbdfa5, 0x42dbfdc0, 0xbfe99999, 0x99999996}, /* 1.74210=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3ffbc714, 0x6a4a1ec6, 0xbfe947ae, 0x147ae144}, /* 1.73610=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3ffbae1f, 0x6b02a8f6, 0xbfe8f5c2, 0x8f5c28f2}, /* 1.73001=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3ffb94c5, 0xf901df42, 0xbfe8a3d7, 0x0a3d70a0}, /* 1.72382=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3ffb7b07, 0xd16fa616, 0xbfe851eb, 0x851eb84e}, /* 1.71753=f(-0.76000)*/ +{63, 0,123,__LINE__, 0x3ffb60e4, 0xbace872e, 0xbfe7ffff, 0xfffffffc}, /* 1.71115=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x3ffb465c, 0x85298225, 0xbfe7ae14, 0x7ae147aa}, /* 1.70467=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3ffb2b6f, 0x0a409902, 0xbfe75c28, 0xf5c28f58}, /* 1.69810=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3ffb101c, 0x2db40880, 0xbfe70a3d, 0x70a3d706}, /* 1.69143=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3ffaf463, 0xdd2e1bb8, 0xbfe6b851, 0xeb851eb4}, /* 1.68466=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3ffad846, 0x108b8b22, 0xbfe66666, 0x66666662}, /* 1.67780=f(-0.70000)*/ +{60, 0,123,__LINE__, 0x3ffabbc2, 0xca025717, 0xbfe6147a, 0xe147ae10}, /* 1.67084=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3ffa9eda, 0x16470e39, 0xbfe5c28f, 0x5c28f5be}, /* 1.66378=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3ffa818c, 0x0cb0705d, 0xbfe570a3, 0xd70a3d6c}, /* 1.65662=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3ffa63d8, 0xcf595ef6, 0xbfe51eb8, 0x51eb851a}, /* 1.64937=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x3ffa45c0, 0x8b410c3c, 0xbfe4cccc, 0xccccccc8}, /* 1.64202=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x3ffa2743, 0x78695aaf, 0xbfe47ae1, 0x47ae1476}, /* 1.63458=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3ffa0861, 0xd9f35ee3, 0xbfe428f5, 0xc28f5c24}, /* 1.62704=f(-0.63000)*/ +{62, 0,123,__LINE__, 0x3ff9e91b, 0xfe39f5fd, 0xbfe3d70a, 0x3d70a3d2}, /* 1.61941=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3ff9c972, 0x3eea639f, 0xbfe3851e, 0xb851eb80}, /* 1.61168=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3ff9a965, 0x011aea7a, 0xbfe33333, 0x3333332e}, /* 1.60385=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3ff988f4, 0xb55f5332, 0xbfe2e147, 0xae147adc}, /* 1.59593=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3ff96821, 0xd7db55c4, 0xbfe28f5c, 0x28f5c28a}, /* 1.58792=f(-0.58000)*/ +{62, 0,123,__LINE__, 0x3ff946ec, 0xf052da0d, 0xbfe23d70, 0xa3d70a38}, /* 1.57981=f(-0.57000)*/ +{63, 0,123,__LINE__, 0x3ff92556, 0x923804af, 0xbfe1eb85, 0x1eb851e6}, /* 1.57161=f(-0.56000)*/ +{63, 0,123,__LINE__, 0x3ff9035f, 0x5cb70603, 0xbfe19999, 0x99999994}, /* 1.56332=f(-0.55000)*/ +{63, 0,123,__LINE__, 0x3ff8e107, 0xfabfa193, 0xbfe147ae, 0x147ae142}, /* 1.55493=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3ff8be51, 0x230c64c8, 0xbfe0f5c2, 0x8f5c28f0}, /* 1.54646=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3ff89b3b, 0x98278492, 0xbfe0a3d7, 0x0a3d709e}, /* 1.53789=f(-0.52000)*/ +{63, 0,123,__LINE__, 0x3ff877c8, 0x286d5a09, 0xbfe051eb, 0x851eb84c}, /* 1.52924=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3ff853f7, 0xae0c76e6, 0xbfdfffff, 0xfffffff4}, /* 1.52050=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3ff82fcb, 0x0f034b53, 0xbfdf5c28, 0xf5c28f50}, /* 1.51166=f(-0.49000)*/ +{63, 0,123,__LINE__, 0x3ff80b43, 0x3d1b572c, 0xbfdeb851, 0xeb851eac}, /* 1.50275=f(-0.48000)*/ +{60, 0,123,__LINE__, 0x3ff7e661, 0x35e1e198, 0xbfde147a, 0xe147ae08}, /* 1.49374=f(-0.47000)*/ +{60, 0,123,__LINE__, 0x3ff7c126, 0x029e3288, 0xbfdd70a3, 0xd70a3d64}, /* 1.48465=f(-0.46000)*/ +{63, 0,123,__LINE__, 0x3ff79b92, 0xb8454a6d, 0xbfdccccc, 0xccccccc0}, /* 1.47548=f(-0.45000)*/ +{63, 0,123,__LINE__, 0x3ff775a8, 0x776b151d, 0xbfdc28f5, 0xc28f5c1c}, /* 1.46622=f(-0.44000)*/ +{61, 0,123,__LINE__, 0x3ff74f68, 0x6c3115c4, 0xbfdb851e, 0xb851eb78}, /* 1.45688=f(-0.43000)*/ +{58, 0,123,__LINE__, 0x3ff728d3, 0xce328a60, 0xbfdae147, 0xae147ad4}, /* 1.44746=f(-0.42000)*/ +{63, 0,123,__LINE__, 0x3ff701eb, 0xe06e0615, 0xbfda3d70, 0xa3d70a30}, /* 1.43796=f(-0.41000)*/ +{62, 0,123,__LINE__, 0x3ff6dab1, 0xf12c827e, 0xbfd99999, 0x9999998c}, /* 1.42839=f(-0.40000)*/ +{57, 0,123,__LINE__, 0x3ff6b327, 0x59e5e8c0, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.41873=f(-0.39000)*/ +{63, 0,123,__LINE__, 0x3ff68b4d, 0x7f231425, 0xbfd851eb, 0x851eb844}, /* 1.40900=f(-0.38000)*/ +{60, 0,123,__LINE__, 0x3ff66325, 0xd05d5098, 0xbfd7ae14, 0x7ae147a0}, /* 1.39920=f(-0.37000)*/ +{63, 0,123,__LINE__, 0x3ff63ab1, 0xc7db5853, 0xbfd70a3d, 0x70a3d6fc}, /* 1.38933=f(-0.36000)*/ +{63, 0,123,__LINE__, 0x3ff611f2, 0xea8bd4bf, 0xbfd66666, 0x66666658}, /* 1.37938=f(-0.35000)*/ +{63, 0,123,__LINE__, 0x3ff5e8ea, 0xc7dd675f, 0xbfd5c28f, 0x5c28f5b4}, /* 1.36936=f(-0.34000)*/ +{61, 0,123,__LINE__, 0x3ff5bf9a, 0xf9944074, 0xbfd51eb8, 0x51eb8510}, /* 1.35927=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3ff59605, 0x239d49b0, 0xbfd47ae1, 0x47ae146c}, /* 1.34912=f(-0.32000)*/ +{63, 0,123,__LINE__, 0x3ff56c2a, 0xf3deec4f, 0xbfd3d70a, 0x3d70a3c8}, /* 1.33890=f(-0.31000)*/ +{56, 0,123,__LINE__, 0x3ff5420e, 0x22077a80, 0xbfd33333, 0x33333324}, /* 1.32862=f(-0.30000)*/ +{63, 0,123,__LINE__, 0x3ff517b0, 0x6f5944f7, 0xbfd28f5c, 0x28f5c280}, /* 1.31828=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3ff4ed13, 0xa6746634, 0xbfd1eb85, 0x1eb851dc}, /* 1.30788=f(-0.28000)*/ +{63, 0,123,__LINE__, 0x3ff4c239, 0x9b1e4dcf, 0xbfd147ae, 0x147ae138}, /* 1.29741=f(-0.27000)*/ +{62, 0,123,__LINE__, 0x3ff49724, 0x2a0716e6, 0xbfd0a3d7, 0x0a3d7094}, /* 1.28690=f(-0.26000)*/ +{62, 0,123,__LINE__, 0x3ff46bd5, 0x388cb57e, 0xbfcfffff, 0xffffffe0}, /* 1.27632=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3ff4404e, 0xb47c0764, 0xbfceb851, 0xeb851e98}, /* 1.26570=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3ff41492, 0x93cfd5dc, 0xbfcd70a3, 0xd70a3d50}, /* 1.25502=f(-0.23000)*/ +{63, 0,123,__LINE__, 0x3ff3e8a2, 0xd46dd60f, 0xbfcc28f5, 0xc28f5c08}, /* 1.24429=f(-0.22000)*/ +{63, 0,123,__LINE__, 0x3ff3bc81, 0x7be1b6ef, 0xbfcae147, 0xae147ac0}, /* 1.23352=f(-0.21000)*/ +{63, 0,123,__LINE__, 0x3ff39030, 0x97164bdf, 0xbfc99999, 0x99999978}, /* 1.22270=f(-0.20000)*/ +{63, 0,123,__LINE__, 0x3ff363b2, 0x3a0ce423, 0xbfc851eb, 0x851eb830}, /* 1.21184=f(-0.19000)*/ +{61, 0,123,__LINE__, 0x3ff33708, 0x7f92dfb4, 0xbfc70a3d, 0x70a3d6e8}, /* 1.20093=f(-0.18000)*/ +{63, 0,123,__LINE__, 0x3ff30a35, 0x88f592b1, 0xbfc5c28f, 0x5c28f5a0}, /* 1.18999=f(-0.17000)*/ +{63, 0,123,__LINE__, 0x3ff2dd3b, 0x7db4894d, 0xbfc47ae1, 0x47ae1458}, /* 1.17901=f(-0.16000)*/ +{62, 0,123,__LINE__, 0x3ff2b01c, 0x8b323e8e, 0xbfc33333, 0x33333310}, /* 1.16799=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3ff282da, 0xe46358d9, 0xbfc1eb85, 0x1eb851c8}, /* 1.15694=f(-0.14000)*/ +{61, 0,123,__LINE__, 0x3ff25578, 0xc17c7fbc, 0xbfc0a3d7, 0x0a3d7080}, /* 1.14586=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3ff227f8, 0x5f9edee1, 0xbfbeb851, 0xeb851e71}, /* 1.13475=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3ff1fa5c, 0x00836aa9, 0xbfbc28f5, 0xc28f5be2}, /* 1.12362=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3ff1cca5, 0xea24fb2e, 0xbfb99999, 0x99999953}, /* 1.11246=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3ff19ed8, 0x6669530b, 0xbfb70a3d, 0x70a3d6c4}, /* 1.10128=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3ff170f5, 0xc2c9277d, 0xbfb47ae1, 0x47ae1435}, /* 1.09007=f(-0.08000)*/ +{62, 0,123,__LINE__, 0x3ff14300, 0x4ff73fea, 0xbfb1eb85, 0x1eb851a6}, /* 1.07885=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3ff114fa, 0x6186c31a, 0xbfaeb851, 0xeb851e2d}, /* 1.06762=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3ff0e6e6, 0x4d90c8c9, 0xbfa99999, 0x9999990e}, /* 1.05637=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3ff0b8c6, 0x6c59466a, 0xbfa47ae1, 0x47ae13ef}, /* 1.04511=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3ff08a9d, 0x17f36e3d, 0xbf9eb851, 0xeb851da0}, /* 1.03384=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3ff05c6c, 0xabe5980a, 0xbf947ae1, 0x47ae1362}, /* 1.02256=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3ff02e37, 0x84cccaf2, 0xbf847ae1, 0x47ae1249}, /* 1.01128=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfffffff6, 0x3cd19000, 0x00000000}, /* 0.01000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3fefa390, 0xf6666a09, 0x3f847ae1, 0x47ae16ad}, /* 0.98871=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3fef4726, 0xa834cfd9, 0x3f947ae1, 0x47ae1594}, /* 0.97743=f(0.02000)*/ +{63, 0,123,__LINE__, 0x3feeeac5, 0xd0192372, 0x3f9eb851, 0xeb851fd2}, /* 0.96615=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fee8e73, 0x274d7319, 0x3fa47ae1, 0x47ae1508}, /* 0.95488=f(0.04000)*/ +{63, 0,123,__LINE__, 0x3fee3233, 0x64de6e5a, 0x3fa99999, 0x99999a27}, /* 0.94362=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3fedd60b, 0x3cf279b9, 0x3faeb851, 0xeb851f46}, /* 0.93237=f(0.06000)*/ +{62, 0,123,__LINE__, 0x3fed79ff, 0x60118019, 0x3fb1eb85, 0x1eb85232}, /* 0.92114=f(0.07000)*/ +{63, 0,123,__LINE__, 0x3fed1e14, 0x7a6db0f2, 0x3fb47ae1, 0x47ae14c1}, /* 0.90992=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fecc24f, 0x332d59d6, 0x3fb70a3d, 0x70a3d750}, /* 0.89871=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fec66b4, 0x2bb60990, 0x3fb99999, 0x999999df}, /* 0.88753=f(0.10000)*/ +{63, 0,123,__LINE__, 0x3fec0b47, 0xfef92a9a, 0x3fbc28f5, 0xc28f5c6e}, /* 0.87637=f(0.11000)*/ +{63, 0,123,__LINE__, 0x3febb00f, 0x40c2422a, 0x3fbeb851, 0xeb851efd}, /* 0.86524=f(0.12000)*/ +{62, 0,123,__LINE__, 0x3feb550e, 0x7d070075, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.85413=f(0.13000)*/ +{63, 0,123,__LINE__, 0x3feafa4a, 0x37394e3a, 0x3fc1eb85, 0x1eb8520e}, /* 0.84305=f(0.14000)*/ +{62, 0,123,__LINE__, 0x3fea9fc6, 0xe99b82d1, 0x3fc33333, 0x33333356}, /* 0.83200=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fea4589, 0x0496ed54, 0x3fc47ae1, 0x47ae149e}, /* 0.82098=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fe9eb94, 0xee14da8c, 0x3fc5c28f, 0x5c28f5e6}, /* 0.81000=f(0.17000)*/ +{63, 0,123,__LINE__, 0x3fe991ef, 0x00da4086, 0x3fc70a3d, 0x70a3d72e}, /* 0.79906=f(0.18000)*/ +{60, 0,123,__LINE__, 0x3fe9389b, 0x8be637a7, 0x3fc851eb, 0x851eb876}, /* 0.78816=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fe8df9e, 0xd1d36830, 0x3fc99999, 0x999999be}, /* 0.77729=f(0.20000)*/ +{63, 0,123,__LINE__, 0x3fe886fd, 0x083c9210, 0x3fcae147, 0xae147b06}, /* 0.76647=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fe82eba, 0x572453d0, 0x3fcc28f5, 0xc28f5c4e}, /* 0.75570=f(0.22000)*/ +{62, 0,123,__LINE__, 0x3fe7d6da, 0xd8605434, 0x3fcd70a3, 0xd70a3d96}, /* 0.74497=f(0.23000)*/ +{62, 0,123,__LINE__, 0x3fe77f62, 0x9707f125, 0x3fceb851, 0xeb851ede}, /* 0.73429=f(0.24000)*/ +{61, 0,123,__LINE__, 0x3fe72855, 0x8ee694f2, 0x3fd00000, 0x00000013}, /* 0.72367=f(0.25000)*/ +{62, 0,123,__LINE__, 0x3fe6d1b7, 0xabf1d221, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.71310=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fe67b8c, 0xc9c36450, 0x3fd147ae, 0x147ae15b}, /* 0.70258=f(0.27000)*/ +{62, 0,123,__LINE__, 0x3fe625d8, 0xb3173385, 0x3fd1eb85, 0x1eb851ff}, /* 0.69211=f(0.28000)*/ +{63, 0,123,__LINE__, 0x3fe5d09f, 0x214d7600, 0x3fd28f5c, 0x28f5c2a3}, /* 0.68171=f(0.29000)*/ +{59, 0,123,__LINE__, 0x3fe57be3, 0xbbf10aee, 0x3fd33333, 0x33333347}, /* 0.67137=f(0.30000)*/ +{62, 0,123,__LINE__, 0x3fe527aa, 0x18422750, 0x3fd3d70a, 0x3d70a3eb}, /* 0.66109=f(0.31000)*/ +{63, 0,123,__LINE__, 0x3fe4d3f5, 0xb8c56c8e, 0x3fd47ae1, 0x47ae148f}, /* 0.65087=f(0.32000)*/ +{60, 0,123,__LINE__, 0x3fe480ca, 0x0cd77f06, 0x3fd51eb8, 0x51eb8533}, /* 0.64072=f(0.33000)*/ +{62, 0,123,__LINE__, 0x3fe42e2a, 0x70453130, 0x3fd5c28f, 0x5c28f5d7}, /* 0.63063=f(0.34000)*/ +{61, 0,123,__LINE__, 0x3fe3dc1a, 0x2ae85672, 0x3fd66666, 0x6666667b}, /* 0.62061=f(0.35000)*/ +{62, 0,123,__LINE__, 0x3fe38a9c, 0x70494f49, 0x3fd70a3d, 0x70a3d71f}, /* 0.61067=f(0.36000)*/ +{57, 0,123,__LINE__, 0x3fe339b4, 0x5f455ebf, 0x3fd7ae14, 0x7ae147c3}, /* 0.60079=f(0.37000)*/ +{60, 0,123,__LINE__, 0x3fe2e965, 0x01b9d7a6, 0x3fd851eb, 0x851eb867}, /* 0.59099=f(0.38000)*/ +{59, 0,123,__LINE__, 0x3fe299b1, 0x4c342e6e, 0x3fd8f5c2, 0x8f5c290b}, /* 0.58126=f(0.39000)*/ +{62, 0,123,__LINE__, 0x3fe24a9c, 0x1da6faf4, 0x3fd99999, 0x999999af}, /* 0.57160=f(0.40000)*/ +{62, 0,123,__LINE__, 0x3fe1fc28, 0x3f23f3c5, 0x3fda3d70, 0xa3d70a53}, /* 0.56203=f(0.41000)*/ +{62, 0,123,__LINE__, 0x3fe1ae58, 0x639aeb30, 0x3fdae147, 0xae147af7}, /* 0.55253=f(0.42000)*/ +{62, 0,123,__LINE__, 0x3fe1612f, 0x279dd468, 0x3fdb851e, 0xb851eb9b}, /* 0.54311=f(0.43000)*/ +{60, 0,123,__LINE__, 0x3fe114af, 0x1129d5b6, 0x3fdc28f5, 0xc28f5c3f}, /* 0.53377=f(0.44000)*/ +{60, 0,123,__LINE__, 0x3fe0c8da, 0x8f756b16, 0x3fdccccc, 0xcccccce3}, /* 0.52451=f(0.45000)*/ +{62, 0,123,__LINE__, 0x3fe07db3, 0xfac39ae1, 0x3fdd70a3, 0xd70a3d87}, /* 0.51534=f(0.46000)*/ +{63, 0,123,__LINE__, 0x3fe0333d, 0x943c3cc1, 0x3fde147a, 0xe147ae2b}, /* 0.50625=f(0.47000)*/ +{59, 0,123,__LINE__, 0x3fdfd2f3, 0x0b92a332, 0x3fdeb851, 0xeb851ecf}, /* 0.49725=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fdf40d3, 0xc3f2d293, 0x3fdf5c28, 0xf5c28f73}, /* 0.48833=f(0.49000)*/ +{63, 0,123,__LINE__, 0x3fdeb021, 0x47ce2448, 0x3fe00000, 0x0000000b}, /* 0.47950=f(0.50000)*/ +{57, 0,123,__LINE__, 0x3fde20df, 0x5e4a97be, 0x3fe051eb, 0x851eb85d}, /* 0.47075=f(0.51000)*/ +{62, 0,123,__LINE__, 0x3fdd9311, 0x9f61ed9a, 0x3fe0a3d7, 0x0a3d70af}, /* 0.46210=f(0.52000)*/ +{57, 0,123,__LINE__, 0x3fdd06bb, 0x73ce6cbf, 0x3fe0f5c2, 0x8f5c2901}, /* 0.45353=f(0.53000)*/ +{60, 0,123,__LINE__, 0x3fdc7be0, 0x15017996, 0x3fe147ae, 0x147ae153}, /* 0.44506=f(0.54000)*/ +{60, 0,123,__LINE__, 0x3fdbf282, 0x8d23e7d6, 0x3fe19999, 0x999999a5}, /* 0.43667=f(0.55000)*/ +{62, 0,123,__LINE__, 0x3fdb6aa5, 0xb71fed2c, 0x3fe1eb85, 0x1eb851f7}, /* 0.42838=f(0.56000)*/ +{61, 0,123,__LINE__, 0x3fdae44c, 0x3eb497ac, 0x3fe23d70, 0xa3d70a49}, /* 0.42018=f(0.57000)*/ +{61, 0,123,__LINE__, 0x3fda5f78, 0xa092a8d5, 0x3fe28f5c, 0x28f5c29b}, /* 0.41207=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fd9dc2d, 0x2a82b31f, 0x3fe2e147, 0xae147aed}, /* 0.40406=f(0.59000)*/ +{63, 0,123,__LINE__, 0x3fd95a6b, 0xfb945602, 0x3fe33333, 0x3333333f}, /* 0.39614=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3fd8da37, 0x0456716b, 0x3fe3851e, 0xb851eb91}, /* 0.38831=f(0.61000)*/ +{62, 0,123,__LINE__, 0x3fd85b90, 0x071827f3, 0x3fe3d70a, 0x3d70a3e3}, /* 0.38058=f(0.62000)*/ +{62, 0,123,__LINE__, 0x3fd7de78, 0x9832845a, 0x3fe428f5, 0xc28f5c35}, /* 0.37295=f(0.63000)*/ +{62, 0,123,__LINE__, 0x3fd762f2, 0x1e5a952a, 0x3fe47ae1, 0x47ae1487}, /* 0.36541=f(0.64000)*/ +{62, 0,123,__LINE__, 0x3fd6e8fd, 0xd2fbcef6, 0x3fe4cccc, 0xccccccd9}, /* 0.35797=f(0.65000)*/ +{59, 0,123,__LINE__, 0x3fd6709c, 0xc29a8410, 0x3fe51eb8, 0x51eb852b}, /* 0.35062=f(0.66000)*/ +{63, 0,123,__LINE__, 0x3fd5f9cf, 0xcd3e3e74, 0x3fe570a3, 0xd70a3d7d}, /* 0.34337=f(0.67000)*/ +{63, 0,123,__LINE__, 0x3fd58497, 0xa6e3c703, 0x3fe5c28f, 0x5c28f5cf}, /* 0.33621=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fd510f4, 0xd7f6a38b, 0x3fe6147a, 0xe147ae21}, /* 0.32915=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fd49ee7, 0xbdd1d361, 0x3fe66666, 0x66666673}, /* 0.32219=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fd42e70, 0x8b479106, 0x3fe6b851, 0xeb851ec5}, /* 0.31533=f(0.71000)*/ +{60, 0,123,__LINE__, 0x3fd3bf8f, 0x492fdde7, 0x3fe70a3d, 0x70a3d717}, /* 0.30856=f(0.72000)*/ +{63, 0,123,__LINE__, 0x3fd35243, 0xd6fd9be0, 0x3fe75c28, 0xf5c28f69}, /* 0.30189=f(0.73000)*/ +{62, 0,123,__LINE__, 0x3fd2e68d, 0xeb59f755, 0x3fe7ae14, 0x7ae147bb}, /* 0.29532=f(0.74000)*/ +{63, 0,123,__LINE__, 0x3fd27c6d, 0x14c5e332, 0x3fe80000, 0x0000000d}, /* 0.28884=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fd213e0, 0xba416795, 0x3fe851eb, 0x851eb85f}, /* 0.28246=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fd1ace8, 0x1bf882e0, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.27617=f(0.77000)*/ +{63, 0,123,__LINE__, 0x3fd14782, 0x53f55c14, 0x3fe8f5c2, 0x8f5c2903}, /* 0.26998=f(0.78000)*/ +{63, 0,123,__LINE__, 0x3fd0e3ae, 0x56d784d2, 0x3fe947ae, 0x147ae155}, /* 0.26389=f(0.79000)*/ +{63, 0,123,__LINE__, 0x3fd0816a, 0xf49008ea, 0x3fe99999, 0x999999a7}, /* 0.25789=f(0.80000)*/ +{63, 0,123,__LINE__, 0x3fd020b6, 0xd92208ab, 0x3fe9eb85, 0x1eb851f9}, /* 0.25199=f(0.81000)*/ +{60, 0,123,__LINE__, 0x3fcf8321, 0x1acf35c9, 0x3fea3d70, 0xa3d70a4b}, /* 0.24618=f(0.82000)*/ +{61, 0,123,__LINE__, 0x3fcec7ec, 0xefb56713, 0x3fea8f5c, 0x28f5c29d}, /* 0.24047=f(0.83000)*/ +{56, 0,123,__LINE__, 0x3fce0fcd, 0xbac3967c, 0x3feae147, 0xae147aef}, /* 0.23485=f(0.84000)*/ +{62, 0,123,__LINE__, 0x3fcd5abf, 0xc440091d, 0x3feb3333, 0x33333341}, /* 0.22933=f(0.85000)*/ +{62, 0,123,__LINE__, 0x3fcca8bf, 0x14911664, 0x3feb851e, 0xb851eb93}, /* 0.22389=f(0.86000)*/ +{59, 0,123,__LINE__, 0x3fcbf9c7, 0x75e9d42f, 0x3febd70a, 0x3d70a3e5}, /* 0.21856=f(0.87000)*/ +{61, 0,123,__LINE__, 0x3fcb4dd4, 0x75fc2a5a, 0x3fec28f5, 0xc28f5c37}, /* 0.21331=f(0.88000)*/ +{61, 0,123,__LINE__, 0x3fcaa4e1, 0x67afc7b9, 0x3fec7ae1, 0x47ae1489}, /* 0.20815=f(0.89000)*/ +{59, 0,123,__LINE__, 0x3fc9fee9, 0x64dd744c, 0x3feccccc, 0xccccccdb}, /* 0.20309=f(0.90000)*/ +{61, 0,123,__LINE__, 0x3fc95be7, 0x500e3c39, 0x3fed1eb8, 0x51eb852d}, /* 0.19811=f(0.91000)*/ +{60, 0,123,__LINE__, 0x3fc8bbd5, 0xd63df146, 0x3fed70a3, 0xd70a3d7f}, /* 0.19323=f(0.92000)*/ +{63, 0,123,__LINE__, 0x3fc81eaf, 0x70a08124, 0x3fedc28f, 0x5c28f5d1}, /* 0.18843=f(0.93000)*/ +{62, 0,123,__LINE__, 0x3fc6ed0c, 0xce964d27, 0x3fee6666, 0x66666675}, /* 0.17910=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fc65884, 0x91b7a8b1, 0x3feeb851, 0xeb851ec7}, /* 0.17457=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fc5c6cf, 0x6bbeb416, 0x3fef0a3d, 0x70a3d719}, /* 0.17012=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fc537e6, 0xedc87024, 0x3fef5c28, 0xf5c28f6b}, /* 0.16576=f(0.98000)*/ +{62, 0,123,__LINE__, 0x3fc4abc4, 0x7fe9ee7f, 0x3fefae14, 0x7ae147bd}, /* 0.16149=f(0.99000)*/ +{63, 0,123,__LINE__, 0x3fc42261, 0x62fbddbf, 0x3ff00000, 0x00000007}, /* 0.15729=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fc39bb6, 0xb2651f4b, 0x3ff028f5, 0xc28f5c30}, /* 0.15318=f(1.01000)*/ +{62, 0,123,__LINE__, 0x3fc317bd, 0x65e3f73a, 0x3ff051eb, 0x851eb859}, /* 0.14916=f(1.02000)*/ +{63, 0,123,__LINE__, 0x3fc2966e, 0x5355697a, 0x3ff07ae1, 0x47ae1482}, /* 0.14521=f(1.03000)*/ +{63, 0,123,__LINE__, 0x3fc217c2, 0x307a5a4c, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.14135=f(1.04000)*/ +{62, 0,123,__LINE__, 0x3fc19bb1, 0x94ba0a82, 0x3ff0cccc, 0xccccccd4}, /* 0.13756=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fc12234, 0xfae18b5c, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.13385=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fc0ab44, 0xc2dfc867, 0x3ff11eb8, 0x51eb8526}, /* 0.13022=f(1.07000)*/ +{62, 0,123,__LINE__, 0x3fc036d9, 0x337dc8fa, 0x3ff147ae, 0x147ae14f}, /* 0.12667=f(1.08000)*/ +{61, 0,123,__LINE__, 0x3fbf89d4, 0xf8259c51, 0x3ff170a3, 0xd70a3d78}, /* 0.12319=f(1.09000)*/ +{63, 0,123,__LINE__, 0x3fbeaae1, 0x6c67e9dc, 0x3ff19999, 0x999999a1}, /* 0.11979=f(1.10000)*/ +{62, 0,123,__LINE__, 0x3fbdd0c7, 0xcebe0f58, 0x3ff1c28f, 0x5c28f5ca}, /* 0.11646=f(1.11000)*/ +{62, 0,123,__LINE__, 0x3fbcfb78, 0x05405b04, 0x3ff1eb85, 0x1eb851f3}, /* 0.11321=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fbc2ae1, 0xd4645220, 0x3ff2147a, 0xe147ae1c}, /* 0.11002=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fbb5ef4, 0xe231b77c, 0x3ff23d70, 0xa3d70a45}, /* 0.10691=f(1.14000)*/ +{60, 0,123,__LINE__, 0x3fba97a0, 0xb96b8c26, 0x3ff26666, 0x6666666e}, /* 0.10387=f(1.15000)*/ +{63, 0,123,__LINE__, 0x3fb9d4d4, 0xccac81ae, 0x3ff28f5c, 0x28f5c297}, /* 0.10090=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fb91680, 0x79765cb4, 0x3ff2b851, 0xeb851ec0}, /* 0.09799=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fb85c93, 0x0b33cd4e, 0x3ff2e147, 0xae147ae9}, /* 0.09516=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fb7a6fb, 0xbe2c4968, 0x3ff30a3d, 0x70a3d712}, /* 0.09239=f(1.19000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 2.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x3fffffff, 0xfffa2ce1, 0xc012d97c, 0x7f3321d2}, /* 2.00000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0x3ffffff6, 0xb153ddbe, 0xc00921fb, 0x54442d18}, /* 1.99999=f(-3.14159)*/ +{64, 0,123,__LINE__, 0x3fff9430, 0x5a403fb6, 0xbff921fb, 0x54442d18}, /* 1.97367=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3f9af3e9, 0x6ff0126c, 0x3ff921fb, 0x54442d18}, /* 0.02632=f(1.57079)*/ +{63, 0,123,__LINE__, 0x3ee29d58, 0x448397f1, 0x400921fb, 0x54442d18}, /* 8.87615e-06=f(3.14159)*/ +{62, 0,123,__LINE__, 0x3dd74c7b, 0x3db71849, 0x4012d97c, 0x7f3321d2}, /* 8.47604e-11=f(4.71238)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03e0000, 0x00000000}, /* 2.00000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 2.00000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 2.00000=f(-26.6000)*/ +{61,16, 40,__LINE__, 0x3fe601fc, 0x1423144c, 0xc038e666, 0x66666667}, /* 0.68774=f(-24.9000)*/ +{59,16, 40,__LINE__, 0xbfe797a0, 0x53c06fe8, 0xc0373333, 0x33333334}, /* -0.73725=f(-23.2000)*/ +{62,16, 40,__LINE__, 0xc00a31d4, 0x6dd4dcec, 0xc0358000, 0x00000001}, /* -3.27433=f(-21.5000)*/ +{64,16, 40,__LINE__, 0x3ff35131, 0x0f12956a, 0xc033cccc, 0xccccccce}, /* 1.20732=f(-19.8000)*/ +{59,16, 40,__LINE__, 0x3fd8b315, 0xe379ef54, 0xc0321999, 0x9999999b}, /* 0.38593=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0306666, 0x66666668}, /* 2.00000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 2.00000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc02a0000, 0x00000004}, /* 2.00000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0269999, 0x9999999e}, /* 2.00000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0233333, 0x33333338}, /* 2.00000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 2.00000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 2.00000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x3fffffff, 0xffd4deb5, 0xc0120000, 0x00000009}, /* 2.00000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x3fffffb1, 0x57cc83a9, 0xc0066666, 0x66666678}, /* 1.99992=f(-2.80000)*/ +{61, 0,123,__LINE__, 0x3ffe1551, 0xe939816c, 0xbff19999, 0x999999bd}, /* 1.88020=f(-1.10000)*/ +{61, 0,123,__LINE__, 0x3fd95a6b, 0xfb945684, 0x3fe33333, 0x333332ec}, /* 0.39614=f(0.60000)*/ +{62, 0,123,__LINE__, 0x3f52bad4, 0x86594933, 0x40026666, 0x66666654}, /* 0.00114=f(2.30000)*/ +{62, 0,123,__LINE__, 0x3e508ddd, 0x13bd371c, 0x400fffff, 0xffffffee}, /* 1.54173e-08=f(4.00000)*/ +{61, 0,123,__LINE__, 0x3ce5a0d4, 0xb8764efa, 0x4016cccc, 0xccccccc4}, /* 2.40122e-15=f(5.70000)*/ +{61, 0,123,__LINE__, 0x3ade87aa, 0xf374c673, 0x401d9999, 0x99999991}, /* 3.94590e-25=f(7.40000)*/ +{63, 0,123,__LINE__, 0x3851f882, 0xfeb0e04c, 0x40223333, 0x3333332f}, /* 2.11245e-37=f(9.10000)*/ +{62, 0,123,__LINE__, 0x3541538a, 0x38316705, 0x40259999, 0x99999995}, /* 3.61791e-52=f(10.8000)*/ +{61, 0,123,__LINE__, 0x31ab1557, 0xbfbe624a, 0x4028ffff, 0xfffffffb}, /* 1.96207e-69=f(12.5000)*/ +{62, 0,123,__LINE__, 0x2d910d03, 0x4c705f74, 0x402c6666, 0x66666661}, /* 3.34817e-89=f(14.2000)*/ +{64, 0,123,__LINE__, 0x28f138c2, 0x2bf29f02, 0x402fcccc, 0xccccccc7}, /* 1.79027e-111=f(15.9000)*/ +{63,16, 40,__LINE__, 0x3ffb92a8, 0x2d5be8da, 0x40319999, 0x99999997}, /* 1.72330=f(17.6000)*/ +{60,16, 40,__LINE__, 0x3feb5b41, 0xd2d93677, 0x40334ccc, 0xccccccca}, /* 0.85488=f(19.3000)*/ +{63,16, 40,__LINE__, 0x3fd921e0, 0x92659a6a, 0x4034ffff, 0xfffffffd}, /* 0.39269=f(21.0000)*/ +{60,16, 40,__LINE__, 0x4006a960, 0x1f96f977, 0x4036b333, 0x33333330}, /* 2.83270=f(22.7000)*/ +{62,16, 40,__LINE__, 0x3ff5f7f2, 0xf38e10e8, 0x40386666, 0x66666663}, /* 1.37303=f(24.4000)*/ +{60,16, 40,__LINE__, 0x3fe3a9a4, 0x7bd5be27, 0x403a1999, 0x99999996}, /* 0.61445=f(26.1000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 0.00000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 0.00000=f(29.5000)*/ +0,}; +test_erfc(m) {run_vector_1(m,erfc_vec,(char *)(erfc),"erfc","dd"); } diff --git a/newlib/libm/test/erfcf_vec.c b/newlib/libm/test/erfcf_vec.c new file mode 100644 index 000000000..338321af9 --- /dev/null +++ b/newlib/libm/test/erfcf_vec.c @@ -0,0 +1,286 @@ +#include "test.h" + one_line_type erfcf_vec[] = { +{16, 0,123,__LINE__, 0x3ffe90a5, 0x60000000, 0xbff33333, 0x33333333}, /* 1.91031=f(-1.20000)*/ +{16, 0,123,__LINE__, 0x3ffe8590, 0x40000000, 0xbff30a3d, 0x70a3d70a}, /* 1.90760=f(-1.19000)*/ +{17, 0,123,__LINE__, 0x3ffe7a36, 0xc0000000, 0xbff2e147, 0xae147ae1}, /* 1.90483=f(-1.18000)*/ +{17, 0,123,__LINE__, 0x3ffe6e98, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 1.90200=f(-1.17000)*/ +{17, 0,123,__LINE__, 0x3ffe62b2, 0xc0000000, 0xbff28f5c, 0x28f5c28f}, /* 1.89909=f(-1.16000)*/ +{17, 0,123,__LINE__, 0x3ffe5686, 0x00000000, 0xbff26666, 0x66666666}, /* 1.89612=f(-1.15000)*/ +{17, 0,123,__LINE__, 0x3ffe4a10, 0xc0000000, 0xbff23d70, 0xa3d70a3d}, /* 1.89308=f(-1.14000)*/ +{18, 0,123,__LINE__, 0x3ffe3d51, 0xe0000000, 0xbff2147a, 0xe147ae14}, /* 1.88997=f(-1.13000)*/ +{18, 0,123,__LINE__, 0x3ffe3048, 0x80000000, 0xbff1eb85, 0x1eb851eb}, /* 1.88678=f(-1.12000)*/ +{18, 0,123,__LINE__, 0x3ffe22f3, 0x80000000, 0xbff1c28f, 0x5c28f5c2}, /* 1.88353=f(-1.11000)*/ +{19, 0,123,__LINE__, 0x3ffe1551, 0xe0000000, 0xbff19999, 0x99999999}, /* 1.88020=f(-1.10000)*/ +{24, 0,123,__LINE__, 0x3ffe0762, 0xc0000000, 0xbff170a3, 0xd70a3d70}, /* 1.87680=f(-1.09000)*/ +{14, 0,123,__LINE__, 0x3ffdf924, 0xe0000000, 0xbff147ae, 0x147ae147}, /* 1.87332=f(-1.08000)*/ +{14, 0,123,__LINE__, 0x3ffdea97, 0x60000000, 0xbff11eb8, 0x51eb851e}, /* 1.86977=f(-1.07000)*/ +{14, 0,123,__LINE__, 0x3ffddbb9, 0x60000000, 0xbff0f5c2, 0x8f5c28f5}, /* 1.86614=f(-1.06000)*/ +{14, 0,123,__LINE__, 0x3ffdcc89, 0xc0000000, 0xbff0cccc, 0xcccccccc}, /* 1.86243=f(-1.05000)*/ +{14, 0,123,__LINE__, 0x3ffdbd07, 0xc0000000, 0xbff0a3d7, 0x0a3d70a3}, /* 1.85865=f(-1.04000)*/ +{14, 0,123,__LINE__, 0x3ffdad32, 0x40000000, 0xbff07ae1, 0x47ae147a}, /* 1.85478=f(-1.03000)*/ +{14, 0,123,__LINE__, 0x3ffd9d08, 0x40000000, 0xbff051eb, 0x851eb851}, /* 1.85083=f(-1.02000)*/ +{14, 0,123,__LINE__, 0x3ffd8c89, 0x20000000, 0xbff028f5, 0xc28f5c28}, /* 1.84681=f(-1.01000)*/ +{14, 0,123,__LINE__, 0x3ffd7bb3, 0xc0000000, 0xbfefffff, 0xfffffffe}, /* 1.84270=f(-0.01000)*/ +{14, 0,123,__LINE__, 0x3ffd6a87, 0x80000000, 0xbfefae14, 0x7ae147ac}, /* 1.83850=f(-0.99000)*/ +{14, 0,123,__LINE__, 0x3ffd5903, 0x20000000, 0xbfef5c28, 0xf5c28f5a}, /* 1.83423=f(-0.98000)*/ +{14, 0,123,__LINE__, 0x3ffd4726, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 1.82987=f(-0.97000)*/ +{14, 0,123,__LINE__, 0x3ffd34ef, 0x60000000, 0xbfeeb851, 0xeb851eb6}, /* 1.82542=f(-0.96000)*/ +{14, 0,123,__LINE__, 0x3ffd225e, 0x60000000, 0xbfee6666, 0x66666664}, /* 1.82089=f(-0.95000)*/ +{14, 0,123,__LINE__, 0x3ffcfc2a, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 1.81156=f(-0.93000)*/ +{14, 0,123,__LINE__, 0x3ffce885, 0x40000000, 0xbfed70a3, 0xd70a3d6e}, /* 1.80676=f(-0.92000)*/ +{14, 0,123,__LINE__, 0x3ffcd483, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 1.80188=f(-0.91000)*/ +{14, 0,123,__LINE__, 0x3ffcc022, 0xc0000000, 0xbfeccccc, 0xccccccca}, /* 1.79690=f(-0.90000)*/ +{14, 0,123,__LINE__, 0x3ffcab63, 0xc0000000, 0xbfec7ae1, 0x47ae1478}, /* 1.79184=f(-0.89000)*/ +{14, 0,123,__LINE__, 0x3ffc9645, 0x60000000, 0xbfec28f5, 0xc28f5c26}, /* 1.78668=f(-0.88000)*/ +{14, 0,123,__LINE__, 0x3ffc80c7, 0x20000000, 0xbfebd70a, 0x3d70a3d4}, /* 1.78144=f(-0.87000)*/ +{14, 0,123,__LINE__, 0x3ffc6ae8, 0x20000000, 0xbfeb851e, 0xb851eb82}, /* 1.77610=f(-0.86000)*/ +{14, 0,123,__LINE__, 0x3ffc54a8, 0x00000000, 0xbfeb3333, 0x33333330}, /* 1.77066=f(-0.85000)*/ +{14, 0,123,__LINE__, 0x3ffc3e06, 0x40000000, 0xbfeae147, 0xae147ade}, /* 1.76514=f(-0.84000)*/ +{14, 0,123,__LINE__, 0x3ffc2702, 0x60000000, 0xbfea8f5c, 0x28f5c28c}, /* 1.75952=f(-0.83000)*/ +{14, 0,123,__LINE__, 0x3ffc0f9b, 0xe0000000, 0xbfea3d70, 0xa3d70a3a}, /* 1.75381=f(-0.82000)*/ +{13, 0,123,__LINE__, 0x3ffbf7d2, 0x40000000, 0xbfe9eb85, 0x1eb851e8}, /* 1.74800=f(-0.81000)*/ +{13, 0,123,__LINE__, 0x3ffbdfa5, 0x40000000, 0xbfe99999, 0x99999996}, /* 1.74210=f(-0.80000)*/ +{13, 0,123,__LINE__, 0x3ffbc714, 0x80000000, 0xbfe947ae, 0x147ae144}, /* 1.73610=f(-0.79000)*/ +{13, 0,123,__LINE__, 0x3ffbae1f, 0x60000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 1.73001=f(-0.78000)*/ +{13, 0,123,__LINE__, 0x3ffb94c6, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 1.72382=f(-0.77000)*/ +{13, 0,123,__LINE__, 0x3ffb7b07, 0xe0000000, 0xbfe851eb, 0x851eb84e}, /* 1.71753=f(-0.76000)*/ +{13, 0,123,__LINE__, 0x3ffb60e4, 0xc0000000, 0xbfe7ffff, 0xfffffffc}, /* 1.71115=f(-0.75000)*/ +{13, 0,123,__LINE__, 0x3ffb465c, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* 1.70467=f(-0.74000)*/ +{13, 0,123,__LINE__, 0x3ffb2b6f, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 1.69810=f(-0.73000)*/ +{13, 0,123,__LINE__, 0x3ffb101c, 0x40000000, 0xbfe70a3d, 0x70a3d706}, /* 1.69143=f(-0.72000)*/ +{13, 0,123,__LINE__, 0x3ffaf463, 0xe0000000, 0xbfe6b851, 0xeb851eb4}, /* 1.68466=f(-0.71000)*/ +{13, 0,123,__LINE__, 0x3ffad846, 0x00000000, 0xbfe66666, 0x66666662}, /* 1.67780=f(-0.70000)*/ +{13, 0,123,__LINE__, 0x3ffabbc2, 0xc0000000, 0xbfe6147a, 0xe147ae10}, /* 1.67084=f(-0.69000)*/ +{13, 0,123,__LINE__, 0x3ffa9eda, 0x20000000, 0xbfe5c28f, 0x5c28f5be}, /* 1.66378=f(-0.68000)*/ +{13, 0,123,__LINE__, 0x3ffa818c, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 1.65662=f(-0.67000)*/ +{13, 0,123,__LINE__, 0x3ffa63d8, 0xc0000000, 0xbfe51eb8, 0x51eb851a}, /* 1.64937=f(-0.66000)*/ +{13, 0,123,__LINE__, 0x3ffa45c0, 0x80000000, 0xbfe4cccc, 0xccccccc8}, /* 1.64202=f(-0.65000)*/ +{13, 0,123,__LINE__, 0x3ffa2743, 0x80000000, 0xbfe47ae1, 0x47ae1476}, /* 1.63458=f(-0.64000)*/ +{13, 0,123,__LINE__, 0x3ffa0861, 0xc0000000, 0xbfe428f5, 0xc28f5c24}, /* 1.62704=f(-0.63000)*/ +{13, 0,123,__LINE__, 0x3ff9e91c, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 1.61941=f(-0.62000)*/ +{13, 0,123,__LINE__, 0x3ff9c972, 0x40000000, 0xbfe3851e, 0xb851eb80}, /* 1.61168=f(-0.61000)*/ +{13, 0,123,__LINE__, 0x3ff9a965, 0x00000000, 0xbfe33333, 0x3333332e}, /* 1.60385=f(-0.60000)*/ +{13, 0,123,__LINE__, 0x3ff988f4, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* 1.59593=f(-0.59000)*/ +{13, 0,123,__LINE__, 0x3ff96821, 0xc0000000, 0xbfe28f5c, 0x28f5c28a}, /* 1.58792=f(-0.58000)*/ +{13, 0,123,__LINE__, 0x3ff946ed, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 1.57981=f(-0.57000)*/ +{13, 0,123,__LINE__, 0x3ff92556, 0x80000000, 0xbfe1eb85, 0x1eb851e6}, /* 1.57161=f(-0.56000)*/ +{13, 0,123,__LINE__, 0x3ff9035f, 0x60000000, 0xbfe19999, 0x99999994}, /* 1.56332=f(-0.55000)*/ +{13, 0,123,__LINE__, 0x3ff8e108, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 1.55493=f(-0.54000)*/ +{13, 0,123,__LINE__, 0x3ff8be51, 0x20000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 1.54646=f(-0.53000)*/ +{13, 0,123,__LINE__, 0x3ff89b3b, 0x80000000, 0xbfe0a3d7, 0x0a3d709e}, /* 1.53789=f(-0.52000)*/ +{13, 0,123,__LINE__, 0x3ff877c8, 0x20000000, 0xbfe051eb, 0x851eb84c}, /* 1.52924=f(-0.51000)*/ +{13, 0,123,__LINE__, 0x3ff853f7, 0xc0000000, 0xbfdfffff, 0xfffffff4}, /* 1.52050=f(-0.50000)*/ +{13, 0,123,__LINE__, 0x3ff82fcb, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 1.51166=f(-0.49000)*/ +{13, 0,123,__LINE__, 0x3ff80b43, 0x40000000, 0xbfdeb851, 0xeb851eac}, /* 1.50275=f(-0.48000)*/ +{12, 0,123,__LINE__, 0x3ff7e661, 0x40000000, 0xbfde147a, 0xe147ae08}, /* 1.49374=f(-0.47000)*/ +{12, 0,123,__LINE__, 0x3ff7c126, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 1.48465=f(-0.46000)*/ +{12, 0,123,__LINE__, 0x3ff79b92, 0xc0000000, 0xbfdccccc, 0xccccccc0}, /* 1.47548=f(-0.45000)*/ +{12, 0,123,__LINE__, 0x3ff775a8, 0x80000000, 0xbfdc28f5, 0xc28f5c1c}, /* 1.46622=f(-0.44000)*/ +{12, 0,123,__LINE__, 0x3ff74f68, 0x80000000, 0xbfdb851e, 0xb851eb78}, /* 1.45688=f(-0.43000)*/ +{12, 0,123,__LINE__, 0x3ff728d3, 0xc0000000, 0xbfdae147, 0xae147ad4}, /* 1.44746=f(-0.42000)*/ +{12, 0,123,__LINE__, 0x3ff701eb, 0xe0000000, 0xbfda3d70, 0xa3d70a30}, /* 1.43796=f(-0.41000)*/ +{12, 0,123,__LINE__, 0x3ff6dab2, 0x00000000, 0xbfd99999, 0x9999998c}, /* 1.42839=f(-0.40000)*/ +{12, 0,123,__LINE__, 0x3ff6b327, 0x60000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 1.41873=f(-0.39000)*/ +{12, 0,123,__LINE__, 0x3ff68b4d, 0x80000000, 0xbfd851eb, 0x851eb844}, /* 1.40900=f(-0.38000)*/ +{12, 0,123,__LINE__, 0x3ff66325, 0xc0000000, 0xbfd7ae14, 0x7ae147a0}, /* 1.39920=f(-0.37000)*/ +{12, 0,123,__LINE__, 0x3ff63ab1, 0xc0000000, 0xbfd70a3d, 0x70a3d6fc}, /* 1.38933=f(-0.36000)*/ +{12, 0,123,__LINE__, 0x3ff611f2, 0xe0000000, 0xbfd66666, 0x66666658}, /* 1.37938=f(-0.35000)*/ +{12, 0,123,__LINE__, 0x3ff5e8ea, 0xc0000000, 0xbfd5c28f, 0x5c28f5b4}, /* 1.36936=f(-0.34000)*/ +{12, 0,123,__LINE__, 0x3ff5bf9b, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 1.35927=f(-0.33000)*/ +{12, 0,123,__LINE__, 0x3ff59605, 0x20000000, 0xbfd47ae1, 0x47ae146c}, /* 1.34912=f(-0.32000)*/ +{12, 0,123,__LINE__, 0x3ff56c2b, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 1.33890=f(-0.31000)*/ +{12, 0,123,__LINE__, 0x3ff5420e, 0x20000000, 0xbfd33333, 0x33333324}, /* 1.32862=f(-0.30000)*/ +{12, 0,123,__LINE__, 0x3ff517b0, 0x80000000, 0xbfd28f5c, 0x28f5c280}, /* 1.31828=f(-0.29000)*/ +{12, 0,123,__LINE__, 0x3ff4ed13, 0xa0000000, 0xbfd1eb85, 0x1eb851dc}, /* 1.30788=f(-0.28000)*/ +{12, 0,123,__LINE__, 0x3ff4c239, 0xa0000000, 0xbfd147ae, 0x147ae138}, /* 1.29741=f(-0.27000)*/ +{12, 0,123,__LINE__, 0x3ff49724, 0x20000000, 0xbfd0a3d7, 0x0a3d7094}, /* 1.28690=f(-0.26000)*/ +{12, 0,123,__LINE__, 0x3ff46bd5, 0x40000000, 0xbfcfffff, 0xffffffe0}, /* 1.27632=f(-0.25000)*/ +{12, 0,123,__LINE__, 0x3ff4404e, 0xc0000000, 0xbfceb851, 0xeb851e98}, /* 1.26570=f(-0.24000)*/ +{12, 0,123,__LINE__, 0x3ff41492, 0xa0000000, 0xbfcd70a3, 0xd70a3d50}, /* 1.25502=f(-0.23000)*/ +{12, 0,123,__LINE__, 0x3ff3e8a2, 0xe0000000, 0xbfcc28f5, 0xc28f5c08}, /* 1.24429=f(-0.22000)*/ +{12, 0,123,__LINE__, 0x3ff3bc81, 0x80000000, 0xbfcae147, 0xae147ac0}, /* 1.23352=f(-0.21000)*/ +{12, 0,123,__LINE__, 0x3ff39030, 0xa0000000, 0xbfc99999, 0x99999978}, /* 1.22270=f(-0.20000)*/ +{12, 0,123,__LINE__, 0x3ff363b2, 0x40000000, 0xbfc851eb, 0x851eb830}, /* 1.21184=f(-0.19000)*/ +{12, 0,123,__LINE__, 0x3ff33708, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* 1.20093=f(-0.18000)*/ +{12, 0,123,__LINE__, 0x3ff30a35, 0x80000000, 0xbfc5c28f, 0x5c28f5a0}, /* 1.18999=f(-0.17000)*/ +{12, 0,123,__LINE__, 0x3ff2dd3b, 0x80000000, 0xbfc47ae1, 0x47ae1458}, /* 1.17901=f(-0.16000)*/ +{12, 0,123,__LINE__, 0x3ff2b01c, 0x80000000, 0xbfc33333, 0x33333310}, /* 1.16799=f(-0.15000)*/ +{12, 0,123,__LINE__, 0x3ff282da, 0xe0000000, 0xbfc1eb85, 0x1eb851c8}, /* 1.15694=f(-0.14000)*/ +{12, 0,123,__LINE__, 0x3ff25578, 0xc0000000, 0xbfc0a3d7, 0x0a3d7080}, /* 1.14586=f(-0.13000)*/ +{12, 0,123,__LINE__, 0x3ff227f8, 0x60000000, 0xbfbeb851, 0xeb851e71}, /* 1.13475=f(-0.12000)*/ +{12, 0,123,__LINE__, 0x3ff1fa5c, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 1.12362=f(-0.11000)*/ +{12, 0,123,__LINE__, 0x3ff1cca5, 0xe0000000, 0xbfb99999, 0x99999953}, /* 1.11246=f(-0.00100)*/ +{12, 0,123,__LINE__, 0x3ff19ed8, 0x60000000, 0xbfb70a3d, 0x70a3d6c4}, /* 1.10128=f(-0.09000)*/ +{12, 0,123,__LINE__, 0x3ff170f5, 0xc0000000, 0xbfb47ae1, 0x47ae1435}, /* 1.09007=f(-0.08000)*/ +{12, 0,123,__LINE__, 0x3ff14300, 0x40000000, 0xbfb1eb85, 0x1eb851a6}, /* 1.07885=f(-0.07000)*/ +{12, 0,123,__LINE__, 0x3ff114fa, 0x60000000, 0xbfaeb851, 0xeb851e2d}, /* 1.06762=f(-0.06000)*/ +{12, 0,123,__LINE__, 0x3ff0e6e6, 0x40000000, 0xbfa99999, 0x9999990e}, /* 1.05637=f(-0.05000)*/ +{12, 0,123,__LINE__, 0x3ff0b8c6, 0x60000000, 0xbfa47ae1, 0x47ae13ef}, /* 1.04511=f(-0.04000)*/ +{12, 0,123,__LINE__, 0x3ff08a9d, 0x20000000, 0xbf9eb851, 0xeb851da0}, /* 1.03384=f(-0.03000)*/ +{12, 0,123,__LINE__, 0x3ff05c6c, 0xa0000000, 0xbf947ae1, 0x47ae1362}, /* 1.02256=f(-0.02000)*/ +{12, 0,123,__LINE__, 0x3ff02e37, 0x80000000, 0xbf847ae1, 0x47ae1249}, /* 1.01128=f(-0.00010)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{11, 0,123,__LINE__, 0x3fefa391, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 0.98871=f(0.01000)*/ +{11, 0,123,__LINE__, 0x3fef4726, 0xa0000000, 0x3f947ae1, 0x47ae1594}, /* 0.97743=f(0.02000)*/ +{11, 0,123,__LINE__, 0x3feeeac5, 0xc0000000, 0x3f9eb851, 0xeb851fd2}, /* 0.96615=f(0.03000)*/ +{11, 0,123,__LINE__, 0x3fee8e73, 0x20000000, 0x3fa47ae1, 0x47ae1508}, /* 0.95488=f(0.04000)*/ +{11, 0,123,__LINE__, 0x3fee3233, 0x60000000, 0x3fa99999, 0x99999a27}, /* 0.94362=f(0.05000)*/ +{11, 0,123,__LINE__, 0x3fedd60b, 0x40000000, 0x3faeb851, 0xeb851f46}, /* 0.93237=f(0.06000)*/ +{11, 0,123,__LINE__, 0x3fed79ff, 0x60000000, 0x3fb1eb85, 0x1eb85232}, /* 0.92114=f(0.07000)*/ +{11, 0,123,__LINE__, 0x3fed1e14, 0x80000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.90992=f(0.08000)*/ +{11, 0,123,__LINE__, 0x3fecc24f, 0x40000000, 0x3fb70a3d, 0x70a3d750}, /* 0.89871=f(0.09000)*/ +{11, 0,123,__LINE__, 0x3fec66b4, 0x20000000, 0x3fb99999, 0x999999df}, /* 0.88753=f(0.10000)*/ +{11, 0,123,__LINE__, 0x3fec0b48, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.87637=f(0.11000)*/ +{11, 0,123,__LINE__, 0x3febb00f, 0x40000000, 0x3fbeb851, 0xeb851efd}, /* 0.86524=f(0.12000)*/ +{11, 0,123,__LINE__, 0x3feb550e, 0x80000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.85413=f(0.13000)*/ +{11, 0,123,__LINE__, 0x3feafa4a, 0x40000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.84305=f(0.14000)*/ +{11, 0,123,__LINE__, 0x3fea9fc6, 0xe0000000, 0x3fc33333, 0x33333356}, /* 0.83200=f(0.15000)*/ +{11, 0,123,__LINE__, 0x3fea4589, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 0.82098=f(0.16000)*/ +{11, 0,123,__LINE__, 0x3fe9eb95, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.81000=f(0.17000)*/ +{11, 0,123,__LINE__, 0x3fe991ef, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.79906=f(0.18000)*/ +{11, 0,123,__LINE__, 0x3fe9389b, 0x80000000, 0x3fc851eb, 0x851eb876}, /* 0.78816=f(0.19000)*/ +{11, 0,123,__LINE__, 0x3fe8df9e, 0xc0000000, 0x3fc99999, 0x999999be}, /* 0.77729=f(0.20000)*/ +{11, 0,123,__LINE__, 0x3fe886fd, 0x00000000, 0x3fcae147, 0xae147b06}, /* 0.76647=f(0.21000)*/ +{11, 0,123,__LINE__, 0x3fe82eba, 0x60000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.75570=f(0.22000)*/ +{11, 0,123,__LINE__, 0x3fe7d6da, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.74497=f(0.23000)*/ +{11, 0,123,__LINE__, 0x3fe77f62, 0xa0000000, 0x3fceb851, 0xeb851ede}, /* 0.73429=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fe72855, 0x80000000, 0x3fd00000, 0x00000013}, /* 0.72367=f(0.25000)*/ +{11, 0,123,__LINE__, 0x3fe6d1b7, 0xc0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.71310=f(0.26000)*/ +{11, 0,123,__LINE__, 0x3fe67b8c, 0xc0000000, 0x3fd147ae, 0x147ae15b}, /* 0.70258=f(0.27000)*/ +{11, 0,123,__LINE__, 0x3fe625d8, 0xc0000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.69211=f(0.28000)*/ +{11, 0,123,__LINE__, 0x3fe5d09f, 0x20000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.68171=f(0.29000)*/ +{11, 0,123,__LINE__, 0x3fe57be3, 0xc0000000, 0x3fd33333, 0x33333347}, /* 0.67137=f(0.30000)*/ +{11, 0,123,__LINE__, 0x3fe527aa, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.66109=f(0.31000)*/ +{11, 0,123,__LINE__, 0x3fe4d3f5, 0xc0000000, 0x3fd47ae1, 0x47ae148f}, /* 0.65087=f(0.32000)*/ +{11, 0,123,__LINE__, 0x3fe480ca, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.64072=f(0.33000)*/ +{11, 0,123,__LINE__, 0x3fe42e2a, 0x80000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.63063=f(0.34000)*/ +{11, 0,123,__LINE__, 0x3fe3dc1a, 0x40000000, 0x3fd66666, 0x6666667b}, /* 0.62061=f(0.35000)*/ +{11, 0,123,__LINE__, 0x3fe38a9c, 0x80000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.61067=f(0.36000)*/ +{11, 0,123,__LINE__, 0x3fe339b4, 0x60000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.60079=f(0.37000)*/ +{11, 0,123,__LINE__, 0x3fe2e965, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 0.59099=f(0.38000)*/ +{11, 0,123,__LINE__, 0x3fe299b1, 0x40000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.58126=f(0.39000)*/ +{11, 0,123,__LINE__, 0x3fe24a9c, 0x20000000, 0x3fd99999, 0x999999af}, /* 0.57160=f(0.40000)*/ +{11, 0,123,__LINE__, 0x3fe1fc28, 0x40000000, 0x3fda3d70, 0xa3d70a53}, /* 0.56203=f(0.41000)*/ +{11, 0,123,__LINE__, 0x3fe1ae58, 0x80000000, 0x3fdae147, 0xae147af7}, /* 0.55253=f(0.42000)*/ +{11, 0,123,__LINE__, 0x3fe1612f, 0x20000000, 0x3fdb851e, 0xb851eb9b}, /* 0.54311=f(0.43000)*/ +{11, 0,123,__LINE__, 0x3fe114af, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.53377=f(0.44000)*/ +{11, 0,123,__LINE__, 0x3fe0c8da, 0x80000000, 0x3fdccccc, 0xcccccce3}, /* 0.52451=f(0.45000)*/ +{11, 0,123,__LINE__, 0x3fe07db4, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.51534=f(0.46000)*/ +{11, 0,123,__LINE__, 0x3fe0333d, 0xa0000000, 0x3fde147a, 0xe147ae2b}, /* 0.50625=f(0.47000)*/ +{10, 0,123,__LINE__, 0x3fdfd2f3, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 0.49725=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fdf40d4, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.48833=f(0.49000)*/ +{10, 0,123,__LINE__, 0x3fdeb021, 0x40000000, 0x3fe00000, 0x0000000b}, /* 0.47950=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fde20df, 0x60000000, 0x3fe051eb, 0x851eb85d}, /* 0.47075=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fdd9311, 0xc0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.46210=f(0.52000)*/ +{10, 0,123,__LINE__, 0x3fdd06bb, 0x80000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.45353=f(0.53000)*/ +{10, 0,123,__LINE__, 0x3fdc7be0, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 0.44506=f(0.54000)*/ +{10, 0,123,__LINE__, 0x3fdbf282, 0x80000000, 0x3fe19999, 0x999999a5}, /* 0.43667=f(0.55000)*/ +{10, 0,123,__LINE__, 0x3fdb6aa5, 0xc0000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.42838=f(0.56000)*/ +{10, 0,123,__LINE__, 0x3fdae44c, 0x40000000, 0x3fe23d70, 0xa3d70a49}, /* 0.42018=f(0.57000)*/ +{10, 0,123,__LINE__, 0x3fda5f78, 0xc0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.41207=f(0.58000)*/ +{10, 0,123,__LINE__, 0x3fd9dc2d, 0x60000000, 0x3fe2e147, 0xae147aed}, /* 0.40406=f(0.59000)*/ +{10, 0,123,__LINE__, 0x3fd95a6c, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.39614=f(0.60000)*/ +{10, 0,123,__LINE__, 0x3fd8da37, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 0.38831=f(0.61000)*/ +{10, 0,123,__LINE__, 0x3fd85b90, 0x20000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.38058=f(0.62000)*/ +{10, 0,123,__LINE__, 0x3fd7de78, 0xc0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.37295=f(0.63000)*/ +{10, 0,123,__LINE__, 0x3fd762f2, 0x20000000, 0x3fe47ae1, 0x47ae1487}, /* 0.36541=f(0.64000)*/ +{10, 0,123,__LINE__, 0x3fd6e8fe, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.35797=f(0.65000)*/ +{10, 0,123,__LINE__, 0x3fd6709c, 0xc0000000, 0x3fe51eb8, 0x51eb852b}, /* 0.35062=f(0.66000)*/ +{10, 0,123,__LINE__, 0x3fd5f9cf, 0xc0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.34337=f(0.67000)*/ +{10, 0,123,__LINE__, 0x3fd58497, 0xa0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.33621=f(0.68000)*/ +{10, 0,123,__LINE__, 0x3fd510f4, 0xe0000000, 0x3fe6147a, 0xe147ae21}, /* 0.32915=f(0.69000)*/ +{10, 0,123,__LINE__, 0x3fd49ee7, 0xc0000000, 0x3fe66666, 0x66666673}, /* 0.32219=f(0.70000)*/ +{10, 0,123,__LINE__, 0x3fd42e70, 0xa0000000, 0x3fe6b851, 0xeb851ec5}, /* 0.31533=f(0.71000)*/ +{10, 0,123,__LINE__, 0x3fd3bf8f, 0x40000000, 0x3fe70a3d, 0x70a3d717}, /* 0.30856=f(0.72000)*/ +{10, 0,123,__LINE__, 0x3fd35243, 0xc0000000, 0x3fe75c28, 0xf5c28f69}, /* 0.30189=f(0.73000)*/ +{10, 0,123,__LINE__, 0x3fd2e68d, 0xe0000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.29532=f(0.74000)*/ +{10, 0,123,__LINE__, 0x3fd27c6d, 0x20000000, 0x3fe80000, 0x0000000d}, /* 0.28884=f(0.75000)*/ +{10, 0,123,__LINE__, 0x3fd213e0, 0xa0000000, 0x3fe851eb, 0x851eb85f}, /* 0.28246=f(0.76000)*/ +{10, 0,123,__LINE__, 0x3fd1ace8, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.27617=f(0.77000)*/ +{10, 0,123,__LINE__, 0x3fd14782, 0x60000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.26998=f(0.78000)*/ +{10, 0,123,__LINE__, 0x3fd0e3ae, 0x40000000, 0x3fe947ae, 0x147ae155}, /* 0.26389=f(0.79000)*/ +{10, 0,123,__LINE__, 0x3fd0816a, 0xe0000000, 0x3fe99999, 0x999999a7}, /* 0.25789=f(0.80000)*/ +{10, 0,123,__LINE__, 0x3fd020b6, 0xe0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.25199=f(0.81000)*/ +{10, 0,123,__LINE__, 0x3fcf8321, 0x60000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.24618=f(0.82000)*/ +{10, 0,123,__LINE__, 0x3fcec7ed, 0x40000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.24047=f(0.83000)*/ +{10, 0,123,__LINE__, 0x3fce0fce, 0x20000000, 0x3feae147, 0xae147aef}, /* 0.23485=f(0.84000)*/ +{10, 0,123,__LINE__, 0x3fcd5abf, 0xe0000000, 0x3feb3333, 0x33333341}, /* 0.22933=f(0.85000)*/ +{10, 0,123,__LINE__, 0x3fcca8bf, 0x40000000, 0x3feb851e, 0xb851eb93}, /* 0.22389=f(0.86000)*/ +{10, 0,123,__LINE__, 0x3fcbf9c7, 0x60000000, 0x3febd70a, 0x3d70a3e5}, /* 0.21856=f(0.87000)*/ +{10, 0,123,__LINE__, 0x3fcb4dd4, 0xa0000000, 0x3fec28f5, 0xc28f5c37}, /* 0.21331=f(0.88000)*/ +{10, 0,123,__LINE__, 0x3fcaa4e1, 0xa0000000, 0x3fec7ae1, 0x47ae1489}, /* 0.20815=f(0.89000)*/ +{10, 0,123,__LINE__, 0x3fc9fee9, 0xc0000000, 0x3feccccc, 0xccccccdb}, /* 0.20309=f(0.90000)*/ +{10, 0,123,__LINE__, 0x3fc95be7, 0xa0000000, 0x3fed1eb8, 0x51eb852d}, /* 0.19811=f(0.91000)*/ +{10, 0,123,__LINE__, 0x3fc8bbd6, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.19323=f(0.92000)*/ +{10, 0,123,__LINE__, 0x3fc81eaf, 0x80000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.18843=f(0.93000)*/ +{10, 0,123,__LINE__, 0x3fc6ed0c, 0xc0000000, 0x3fee6666, 0x66666675}, /* 0.17910=f(0.95000)*/ +{10, 0,123,__LINE__, 0x3fc65884, 0xa0000000, 0x3feeb851, 0xeb851ec7}, /* 0.17457=f(0.96000)*/ +{10, 0,123,__LINE__, 0x3fc5c6cf, 0x80000000, 0x3fef0a3d, 0x70a3d719}, /* 0.17012=f(0.97000)*/ +{10, 0,123,__LINE__, 0x3fc537e7, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.16576=f(0.98000)*/ +{10, 0,123,__LINE__, 0x3fc4abc4, 0x80000000, 0x3fefae14, 0x7ae147bd}, /* 0.16149=f(0.99000)*/ +{10, 0,123,__LINE__, 0x3fc42261, 0xa0000000, 0x3ff00000, 0x00000007}, /* 0.15729=f(1.00000)*/ +{10, 0,123,__LINE__, 0x3fc39bb6, 0xc0000000, 0x3ff028f5, 0xc28f5c30}, /* 0.15318=f(1.01000)*/ +{10, 0,123,__LINE__, 0x3fc317bd, 0x80000000, 0x3ff051eb, 0x851eb859}, /* 0.14916=f(1.02000)*/ +{10, 0,123,__LINE__, 0x3fc2966e, 0x80000000, 0x3ff07ae1, 0x47ae1482}, /* 0.14521=f(1.03000)*/ +{10, 0,123,__LINE__, 0x3fc217c2, 0x60000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.14135=f(1.04000)*/ +{10, 0,123,__LINE__, 0x3fc19bb1, 0xc0000000, 0x3ff0cccc, 0xccccccd4}, /* 0.13756=f(1.05000)*/ +{10, 0,123,__LINE__, 0x3fc12235, 0x20000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.13385=f(1.06000)*/ +{10, 0,123,__LINE__, 0x3fc0ab44, 0xa0000000, 0x3ff11eb8, 0x51eb8526}, /* 0.13022=f(1.07000)*/ +{10, 0,123,__LINE__, 0x3fc036d9, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 0.12667=f(1.08000)*/ +{ 9, 0,123,__LINE__, 0x3fbf89d5, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 0.12319=f(1.09000)*/ +{ 9, 0,123,__LINE__, 0x3fbeaae1, 0x40000000, 0x3ff19999, 0x999999a1}, /* 0.11979=f(1.10000)*/ +{ 9, 0,123,__LINE__, 0x3fbdd0c7, 0xe0000000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.11646=f(1.11000)*/ +{ 9, 0,123,__LINE__, 0x3fbcfb78, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 0.11321=f(1.12000)*/ +{ 9, 0,123,__LINE__, 0x3fbc2ae1, 0xa0000000, 0x3ff2147a, 0xe147ae1c}, /* 0.11002=f(1.13000)*/ +{ 9, 0,123,__LINE__, 0x3fbb5ef4, 0xc0000000, 0x3ff23d70, 0xa3d70a45}, /* 0.10691=f(1.14000)*/ +{ 9, 0,123,__LINE__, 0x3fba97a0, 0xe0000000, 0x3ff26666, 0x6666666e}, /* 0.10387=f(1.15000)*/ +{ 9, 0,123,__LINE__, 0x3fb9d4d5, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 0.10090=f(1.16000)*/ +{ 9, 0,123,__LINE__, 0x3fb91680, 0xc0000000, 0x3ff2b851, 0xeb851ec0}, /* 0.09799=f(1.17000)*/ +{ 9, 0,123,__LINE__, 0x3fb85c93, 0x60000000, 0x3ff2e147, 0xae147ae9}, /* 0.09516=f(1.18000)*/ +{ 9, 0,123,__LINE__, 0x3fb7a6fb, 0x80000000, 0x3ff30a3d, 0x70a3d712}, /* 0.09239=f(1.19000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 2.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 2.00000=f(-4.71238)*/ +{ 1, 0,123,__LINE__, 0x3ffffff6, 0xc0000000, 0xc00921fb, 0x54442d18}, /* 1.99999=f(-3.14159)*/ +{15, 0,123,__LINE__, 0x3fff9430, 0x60000000, 0xbff921fb, 0x54442d18}, /* 1.97367=f(-1.57079)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{ 9, 0,123,__LINE__, 0x3f9af3e9, 0x40000000, 0x3ff921fb, 0x54442d18}, /* 0.02632=f(1.57079)*/ +{ 2, 0,123,__LINE__, 0x3ee29d57, 0xc0000000, 0x400921fb, 0x54442d18}, /* 8.87614e-06=f(3.14159)*/ +{ 2, 0,123,__LINE__, 0x3dd74c7a, 0xc0000000, 0x4012d97c, 0x7f3321d2}, /* 8.47604e-11=f(4.71238)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03e0000, 0x00000000}, /* 2.00000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 2.00000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 2.00000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc038e666, 0x66666667}, /* 2.00000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0373333, 0x33333334}, /* 2.00000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0358000, 0x00000001}, /* 2.00000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 2.00000=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0321999, 0x9999999b}, /* 2.00000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0306666, 0x66666668}, /* 2.00000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 2.00000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc02a0000, 0x00000004}, /* 2.00000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0269999, 0x9999999e}, /* 2.00000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0233333, 0x33333338}, /* 2.00000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 2.00000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 2.00000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0xc0120000, 0x00000009}, /* 2.00000=f(-4.50000)*/ +{ 1, 0,123,__LINE__, 0x3fffffb1, 0x60000000, 0xc0066666, 0x66666678}, /* 1.99992=f(-2.80000)*/ +{19, 0,123,__LINE__, 0x3ffe1551, 0xe0000000, 0xbff19999, 0x999999bd}, /* 1.88020=f(-1.10000)*/ +{10, 0,123,__LINE__, 0x3fd95a6c, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.39614=f(0.60000)*/ +{ 8, 0,123,__LINE__, 0x3f52bad4, 0xe0000000, 0x40026666, 0x66666654}, /* 0.00114=f(2.30000)*/ +{ 2, 0,123,__LINE__, 0x3e508ddd, 0x60000000, 0x400fffff, 0xffffffee}, /* 1.54173e-08=f(4.00000)*/ +{ 2, 0,123,__LINE__, 0x3ce5a0d6, 0x80000000, 0x4016cccc, 0xccccccc4}, /* 2.40122e-15=f(5.70000)*/ +{ 2, 0,123,__LINE__, 0x3ade87a7, 0x20000000, 0x401d9999, 0x99999991}, /* 3.94590e-25=f(7.40000)*/ +{ 2, 0,123,__LINE__, 0x3851f878, 0x20000000, 0x40223333, 0x3333332f}, /* 2.11243e-37=f(9.10000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x40259999, 0x99999995}, /* 0.00000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 0.00000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x402c6666, 0x66666661}, /* 0.00000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 0.00000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x40319999, 0x99999997}, /* 0.00000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 0.00000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 0.00000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x4036b333, 0x33333330}, /* 0.00000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x40386666, 0x66666663}, /* 0.00000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x403a1999, 0x99999996}, /* 0.00000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 0.00000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 0.00000=f(29.5000)*/ +0,}; +test_erfcf(m) {run_vector_1(m,erfcf_vec,(char *)(erfcf),"erfcf","ff"); } diff --git a/newlib/libm/test/erff_vec.c b/newlib/libm/test/erff_vec.c new file mode 100644 index 000000000..f5223339a --- /dev/null +++ b/newlib/libm/test/erff_vec.c @@ -0,0 +1,286 @@ +#include "test.h" + one_line_type erff_vec[] = { +{11, 0,123,__LINE__, 0xbfed214a, 0xc0000000, 0xbff33333, 0x33333333}, /* -0.91031=f(-1.20000)*/ +{11, 0,123,__LINE__, 0xbfed0b20, 0x80000000, 0xbff30a3d, 0x70a3d70a}, /* -0.90760=f(-1.19000)*/ +{11, 0,123,__LINE__, 0xbfecf46d, 0xa0000000, 0xbff2e147, 0xae147ae1}, /* -0.90483=f(-1.18000)*/ +{11, 0,123,__LINE__, 0xbfecdd2f, 0xe0000000, 0xbff2b851, 0xeb851eb8}, /* -0.90200=f(-1.17000)*/ +{11, 0,123,__LINE__, 0xbfecc565, 0x60000000, 0xbff28f5c, 0x28f5c28f}, /* -0.89909=f(-1.16000)*/ +{11, 0,123,__LINE__, 0xbfecad0b, 0xe0000000, 0xbff26666, 0x66666666}, /* -0.89612=f(-1.15000)*/ +{11, 0,123,__LINE__, 0xbfec9421, 0x60000000, 0xbff23d70, 0xa3d70a3d}, /* -0.89308=f(-1.14000)*/ +{11, 0,123,__LINE__, 0xbfec7aa3, 0xc0000000, 0xbff2147a, 0xe147ae14}, /* -0.88997=f(-1.13000)*/ +{11, 0,123,__LINE__, 0xbfec6091, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -0.88678=f(-1.12000)*/ +{11, 0,123,__LINE__, 0xbfec45e7, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -0.88353=f(-1.11000)*/ +{11, 0,123,__LINE__, 0xbfec2aa3, 0xe0000000, 0xbff19999, 0x99999999}, /* -0.88020=f(-1.10000)*/ +{11, 0,123,__LINE__, 0xbfec0ec5, 0x60000000, 0xbff170a3, 0xd70a3d70}, /* -0.87680=f(-1.09000)*/ +{11, 0,123,__LINE__, 0xbfebf249, 0xc0000000, 0xbff147ae, 0x147ae147}, /* -0.87332=f(-1.08000)*/ +{11, 0,123,__LINE__, 0xbfebd52e, 0xe0000000, 0xbff11eb8, 0x51eb851e}, /* -0.86977=f(-1.07000)*/ +{11, 0,123,__LINE__, 0xbfebb772, 0xc0000000, 0xbff0f5c2, 0x8f5c28f5}, /* -0.86614=f(-1.06000)*/ +{11, 0,123,__LINE__, 0xbfeb9913, 0x80000000, 0xbff0cccc, 0xcccccccc}, /* -0.86243=f(-1.05000)*/ +{11, 0,123,__LINE__, 0xbfeb7a0f, 0x60000000, 0xbff0a3d7, 0x0a3d70a3}, /* -0.85864=f(-1.04000)*/ +{11, 0,123,__LINE__, 0xbfeb5a64, 0x60000000, 0xbff07ae1, 0x47ae147a}, /* -0.85478=f(-1.03000)*/ +{11, 0,123,__LINE__, 0xbfeb3a10, 0xa0000000, 0xbff051eb, 0x851eb851}, /* -0.85083=f(-1.02000)*/ +{11, 0,123,__LINE__, 0xbfeb1912, 0x40000000, 0xbff028f5, 0xc28f5c28}, /* -0.84681=f(-1.01000)*/ +{11, 0,123,__LINE__, 0xbfeaf767, 0xa0000000, 0xbfefffff, 0xfffffffe}, /* -0.84270=f(-0.01000)*/ +{11, 0,123,__LINE__, 0xbfead50e, 0xe0000000, 0xbfefae14, 0x7ae147ac}, /* -0.83850=f(-0.99000)*/ +{13, 0,123,__LINE__, 0xbfeab206, 0x40000000, 0xbfef5c28, 0xf5c28f5a}, /* -0.83423=f(-0.98000)*/ +{13, 0,123,__LINE__, 0xbfea8e4c, 0x20000000, 0xbfef0a3d, 0x70a3d708}, /* -0.82987=f(-0.97000)*/ +{13, 0,123,__LINE__, 0xbfea69de, 0xe0000000, 0xbfeeb851, 0xeb851eb6}, /* -0.82542=f(-0.96000)*/ +{13, 0,123,__LINE__, 0xbfea44bc, 0xc0000000, 0xbfee6666, 0x66666664}, /* -0.82089=f(-0.95000)*/ +{13, 0,123,__LINE__, 0xbfe9f854, 0x20000000, 0xbfedc28f, 0x5c28f5c0}, /* -0.81156=f(-0.93000)*/ +{13, 0,123,__LINE__, 0xbfe9d10a, 0x80000000, 0xbfed70a3, 0xd70a3d6e}, /* -0.80676=f(-0.92000)*/ +{13, 0,123,__LINE__, 0xbfe9a906, 0x20000000, 0xbfed1eb8, 0x51eb851c}, /* -0.80188=f(-0.91000)*/ +{13, 0,123,__LINE__, 0xbfe98045, 0x80000000, 0xbfeccccc, 0xccccccca}, /* -0.79690=f(-0.90000)*/ +{13, 0,123,__LINE__, 0xbfe956c7, 0xa0000000, 0xbfec7ae1, 0x47ae1478}, /* -0.79184=f(-0.89000)*/ +{13, 0,123,__LINE__, 0xbfe92c8a, 0xe0000000, 0xbfec28f5, 0xc28f5c26}, /* -0.78668=f(-0.88000)*/ +{13, 0,123,__LINE__, 0xbfe9018e, 0x20000000, 0xbfebd70a, 0x3d70a3d4}, /* -0.78143=f(-0.87000)*/ +{14, 0,123,__LINE__, 0xbfe8d5d0, 0x40000000, 0xbfeb851e, 0xb851eb82}, /* -0.77610=f(-0.86000)*/ +{14, 0,123,__LINE__, 0xbfe8a950, 0x00000000, 0xbfeb3333, 0x33333330}, /* -0.77066=f(-0.85000)*/ +{14, 0,123,__LINE__, 0xbfe87c0c, 0x80000000, 0xbfeae147, 0xae147ade}, /* -0.76514=f(-0.84000)*/ +{14, 0,123,__LINE__, 0xbfe84e04, 0xc0000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.75952=f(-0.83000)*/ +{14, 0,123,__LINE__, 0xbfe81f37, 0xa0000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.75381=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbfe7efa4, 0x80000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.74800=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbfe7bf4a, 0x80000000, 0xbfe99999, 0x99999996}, /* -0.74210=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbfe78e28, 0xe0000000, 0xbfe947ae, 0x147ae144}, /* -0.73610=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbfe75c3e, 0xc0000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.73001=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbfe7298c, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.72382=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbfe6f60f, 0xc0000000, 0xbfe851eb, 0x851eb84e}, /* -0.71753=f(-0.76000)*/ +{12, 0,123,__LINE__, 0xbfe6c1c9, 0x80000000, 0xbfe7ffff, 0xfffffffc}, /* -0.71115=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbfe68cb9, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.70467=f(-0.74000)*/ +{15, 0,123,__LINE__, 0xbfe656de, 0x20000000, 0xbfe75c28, 0xf5c28f58}, /* -0.69810=f(-0.73000)*/ +{15, 0,123,__LINE__, 0xbfe62038, 0x60000000, 0xbfe70a3d, 0x70a3d706}, /* -0.69143=f(-0.72000)*/ +{14, 0,123,__LINE__, 0xbfe5e8c7, 0xc0000000, 0xbfe6b851, 0xeb851eb4}, /* -0.68466=f(-0.71000)*/ +{14, 0,123,__LINE__, 0xbfe5b08c, 0x20000000, 0xbfe66666, 0x66666662}, /* -0.67780=f(-0.70000)*/ +{14, 0,123,__LINE__, 0xbfe57785, 0x80000000, 0xbfe6147a, 0xe147ae10}, /* -0.67084=f(-0.69000)*/ +{14, 0,123,__LINE__, 0xbfe53db4, 0x40000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.66378=f(-0.68000)*/ +{16, 0,123,__LINE__, 0xbfe50318, 0x20000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.65662=f(-0.67000)*/ +{15, 0,123,__LINE__, 0xbfe4c7b1, 0xa0000000, 0xbfe51eb8, 0x51eb851a}, /* -0.64937=f(-0.66000)*/ +{15, 0,123,__LINE__, 0xbfe48b81, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* -0.64202=f(-0.65000)*/ +{16, 0,123,__LINE__, 0xbfe44e87, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* -0.63458=f(-0.64000)*/ +{17, 0,123,__LINE__, 0xbfe410c3, 0xa0000000, 0xbfe428f5, 0xc28f5c24}, /* -0.62704=f(-0.63000)*/ +{13, 0,123,__LINE__, 0xbfe3d238, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.61941=f(-0.62000)*/ +{17, 0,123,__LINE__, 0xbfe392e4, 0x80000000, 0xbfe3851e, 0xb851eb80}, /* -0.61168=f(-0.61000)*/ +{16, 0,123,__LINE__, 0xbfe352ca, 0x00000000, 0xbfe33333, 0x3333332e}, /* -0.60385=f(-0.60000)*/ +{18, 0,123,__LINE__, 0xbfe311e9, 0x40000000, 0xbfe2e147, 0xae147adc}, /* -0.59593=f(-0.59000)*/ +{18, 0,123,__LINE__, 0xbfe2d043, 0xa0000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.58792=f(-0.58000)*/ +{20, 0,123,__LINE__, 0xbfe28dd9, 0xe0000000, 0xbfe23d70, 0xa3d70a38}, /* -0.57981=f(-0.57000)*/ +{17, 0,123,__LINE__, 0xbfe24aad, 0x20000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.57161=f(-0.56000)*/ +{23, 0,123,__LINE__, 0xbfe206be, 0xc0000000, 0xbfe19999, 0x99999994}, /* -0.56332=f(-0.55000)*/ +{17, 0,123,__LINE__, 0xbfe1c210, 0x00000000, 0xbfe147ae, 0x147ae142}, /* -0.55493=f(-0.54000)*/ +{18, 0,123,__LINE__, 0xbfe17ca2, 0x40000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.54646=f(-0.53000)*/ +{15, 0,123,__LINE__, 0xbfe13677, 0x20000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.53789=f(-0.52000)*/ +{17, 0,123,__LINE__, 0xbfe0ef90, 0x40000000, 0xbfe051eb, 0x851eb84c}, /* -0.52924=f(-0.51000)*/ +{16, 0,123,__LINE__, 0xbfe0a7ef, 0x60000000, 0xbfdfffff, 0xfffffff4}, /* -0.52049=f(-0.50000)*/ +{10, 0,123,__LINE__, 0xbfe05f96, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.51166=f(-0.49000)*/ +{10, 0,123,__LINE__, 0xbfe01686, 0x80000000, 0xbfdeb851, 0xeb851eac}, /* -0.50274=f(-0.48000)*/ +{15, 0,123,__LINE__, 0xbfdf9984, 0xc0000000, 0xbfde147a, 0xe147ae08}, /* -0.49374=f(-0.47000)*/ +{14, 0,123,__LINE__, 0xbfdf0498, 0x20000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.48465=f(-0.46000)*/ +{14, 0,123,__LINE__, 0xbfde6e4a, 0xe0000000, 0xbfdccccc, 0xccccccc0}, /* -0.47548=f(-0.45000)*/ +{15, 0,123,__LINE__, 0xbfddd6a1, 0xe0000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.46622=f(-0.44000)*/ +{13, 0,123,__LINE__, 0xbfdd3da1, 0xc0000000, 0xbfdb851e, 0xb851eb78}, /* -0.45688=f(-0.43000)*/ +{13, 0,123,__LINE__, 0xbfdca34f, 0x20000000, 0xbfdae147, 0xae147ad4}, /* -0.44746=f(-0.42000)*/ +{13, 0,123,__LINE__, 0xbfdc07af, 0x80000000, 0xbfda3d70, 0xa3d70a30}, /* -0.43796=f(-0.41000)*/ +{15, 0,123,__LINE__, 0xbfdb6ac7, 0xc0000000, 0xbfd99999, 0x9999998c}, /* -0.42839=f(-0.40000)*/ +{14, 0,123,__LINE__, 0xbfdacc9d, 0x60000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41873=f(-0.39000)*/ +{14, 0,123,__LINE__, 0xbfda2d36, 0x00000000, 0xbfd851eb, 0x851eb844}, /* -0.40900=f(-0.38000)*/ +{15, 0,123,__LINE__, 0xbfd98c97, 0x40000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.39920=f(-0.37000)*/ +{12, 0,123,__LINE__, 0xbfd8eac7, 0x20000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.38932=f(-0.36000)*/ +{12, 0,123,__LINE__, 0xbfd847cb, 0xa0000000, 0xbfd66666, 0x66666658}, /* -0.37938=f(-0.35000)*/ +{15, 0,123,__LINE__, 0xbfd7a3ab, 0x20000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.36936=f(-0.34000)*/ +{14, 0,123,__LINE__, 0xbfd6fe6c, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* -0.35927=f(-0.33000)*/ +{14, 0,123,__LINE__, 0xbfd65814, 0x80000000, 0xbfd47ae1, 0x47ae146c}, /* -0.34912=f(-0.32000)*/ +{15, 0,123,__LINE__, 0xbfd5b0ab, 0xe0000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.33890=f(-0.31000)*/ +{13, 0,123,__LINE__, 0xbfd50838, 0xa0000000, 0xbfd33333, 0x33333324}, /* -0.32862=f(-0.30000)*/ +{13, 0,123,__LINE__, 0xbfd45ec1, 0xc0000000, 0xbfd28f5c, 0x28f5c280}, /* -0.31828=f(-0.29000)*/ +{15, 0,123,__LINE__, 0xbfd3b44e, 0xa0000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.30788=f(-0.28000)*/ +{14, 0,123,__LINE__, 0xbfd308e6, 0x80000000, 0xbfd147ae, 0x147ae138}, /* -0.29741=f(-0.27000)*/ +{14, 0,123,__LINE__, 0xbfd25c90, 0xa0000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.28689=f(-0.26000)*/ +{15, 0,123,__LINE__, 0xbfd1af54, 0xe0000000, 0xbfcfffff, 0xffffffe0}, /* -0.27632=f(-0.25000)*/ +{11, 0,123,__LINE__, 0xbfd1013a, 0xc0000000, 0xbfceb851, 0xeb851e98}, /* -0.26570=f(-0.24000)*/ +{11, 0,123,__LINE__, 0xbfd0524a, 0x60000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.25502=f(-0.23000)*/ +{14, 0,123,__LINE__, 0xbfcf4516, 0xa0000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.24429=f(-0.22000)*/ +{13, 0,123,__LINE__, 0xbfcde40b, 0xc0000000, 0xbfcae147, 0xae147ac0}, /* -0.23352=f(-0.21000)*/ +{13, 0,123,__LINE__, 0xbfcc8184, 0xc0000000, 0xbfc99999, 0x99999978}, /* -0.22270=f(-0.20000)*/ +{14, 0,123,__LINE__, 0xbfcb1d91, 0xc0000000, 0xbfc851eb, 0x851eb830}, /* -0.21183=f(-0.19000)*/ +{12, 0,123,__LINE__, 0xbfc9b844, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.20093=f(-0.18000)*/ +{12, 0,123,__LINE__, 0xbfc851ac, 0x40000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.18999=f(-0.17000)*/ +{14, 0,123,__LINE__, 0xbfc6e9db, 0xe0000000, 0xbfc47ae1, 0x47ae1458}, /* -0.17901=f(-0.16000)*/ +{13, 0,123,__LINE__, 0xbfc580e4, 0x60000000, 0xbfc33333, 0x33333310}, /* -0.16799=f(-0.15000)*/ +{13, 0,123,__LINE__, 0xbfc416d7, 0x20000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.15694=f(-0.14000)*/ +{14, 0,123,__LINE__, 0xbfc2abc6, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.14586=f(-0.13000)*/ +{ 9, 0,123,__LINE__, 0xbfc13fc3, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* -0.13475=f(-0.12000)*/ +{14, 0,123,__LINE__, 0xbfbfa5c0, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.12362=f(-0.11000)*/ +{13, 0,123,__LINE__, 0xbfbcca5e, 0xa0000000, 0xbfb99999, 0x99999953}, /* -0.11246=f(-0.00100)*/ +{12, 0,123,__LINE__, 0xbfb9ed86, 0x80000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.10128=f(-0.09000)*/ +{14, 0,123,__LINE__, 0xbfb70f5c, 0x20000000, 0xbfb47ae1, 0x47ae1435}, /* -0.09007=f(-0.08000)*/ +{13, 0,123,__LINE__, 0xbfb43005, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.07885=f(-0.07000)*/ +{11, 0,123,__LINE__, 0xbfb14fa6, 0x20000000, 0xbfaeb851, 0xeb851e2d}, /* -0.06762=f(-0.06000)*/ +{13, 0,123,__LINE__, 0xbfacdcc9, 0xc0000000, 0xbfa99999, 0x9999990e}, /* -0.05637=f(-0.05000)*/ +{14, 0,123,__LINE__, 0xbfa718cd, 0x80000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.04511=f(-0.04000)*/ +{10, 0,123,__LINE__, 0xbfa153a3, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* -0.03384=f(-0.03000)*/ +{14, 0,123,__LINE__, 0xbf971b2b, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* -0.02256=f(-0.02000)*/ +{14, 0,123,__LINE__, 0xbf871bc2, 0x60000000, 0xbf847ae1, 0x47ae1249}, /* -0.01128=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd3d131, 0x60000000, 0x3cd19000, 0x00000000}, /* 1.10007e-15=f(9.74915e-16)*/ +{14, 0,123,__LINE__, 0x3f871bc2, 0x60000000, 0x3f847ae1, 0x47ae16ad}, /* 0.01128=f(0.01000)*/ +{14, 0,123,__LINE__, 0x3f971b2b, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 0.02256=f(0.02000)*/ +{10, 0,123,__LINE__, 0x3fa153a3, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 0.03384=f(0.03000)*/ +{14, 0,123,__LINE__, 0x3fa718cd, 0x80000000, 0x3fa47ae1, 0x47ae1508}, /* 0.04511=f(0.04000)*/ +{13, 0,123,__LINE__, 0x3facdcc9, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 0.05637=f(0.05000)*/ +{11, 0,123,__LINE__, 0x3fb14fa6, 0x20000000, 0x3faeb851, 0xeb851f46}, /* 0.06762=f(0.06000)*/ +{13, 0,123,__LINE__, 0x3fb43005, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 0.07885=f(0.07000)*/ +{14, 0,123,__LINE__, 0x3fb70f5c, 0x20000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.09007=f(0.08000)*/ +{12, 0,123,__LINE__, 0x3fb9ed86, 0x80000000, 0x3fb70a3d, 0x70a3d750}, /* 0.10128=f(0.09000)*/ +{13, 0,123,__LINE__, 0x3fbcca5e, 0xa0000000, 0x3fb99999, 0x999999df}, /* 0.11246=f(0.10000)*/ +{14, 0,123,__LINE__, 0x3fbfa5c0, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.12362=f(0.11000)*/ +{ 9, 0,123,__LINE__, 0x3fc13fc3, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 0.13475=f(0.12000)*/ +{14, 0,123,__LINE__, 0x3fc2abc6, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.14586=f(0.13000)*/ +{13, 0,123,__LINE__, 0x3fc416d7, 0x20000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.15694=f(0.14000)*/ +{13, 0,123,__LINE__, 0x3fc580e4, 0x60000000, 0x3fc33333, 0x33333356}, /* 0.16799=f(0.15000)*/ +{14, 0,123,__LINE__, 0x3fc6e9db, 0xe0000000, 0x3fc47ae1, 0x47ae149e}, /* 0.17901=f(0.16000)*/ +{12, 0,123,__LINE__, 0x3fc851ac, 0x40000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.18999=f(0.17000)*/ +{12, 0,123,__LINE__, 0x3fc9b844, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.20093=f(0.18000)*/ +{14, 0,123,__LINE__, 0x3fcb1d91, 0xc0000000, 0x3fc851eb, 0x851eb876}, /* 0.21183=f(0.19000)*/ +{13, 0,123,__LINE__, 0x3fcc8184, 0xc0000000, 0x3fc99999, 0x999999be}, /* 0.22270=f(0.20000)*/ +{13, 0,123,__LINE__, 0x3fcde40b, 0xc0000000, 0x3fcae147, 0xae147b06}, /* 0.23352=f(0.21000)*/ +{14, 0,123,__LINE__, 0x3fcf4516, 0xa0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.24429=f(0.22000)*/ +{11, 0,123,__LINE__, 0x3fd0524a, 0x60000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.25502=f(0.23000)*/ +{11, 0,123,__LINE__, 0x3fd1013a, 0xc0000000, 0x3fceb851, 0xeb851ede}, /* 0.26570=f(0.24000)*/ +{15, 0,123,__LINE__, 0x3fd1af54, 0xe0000000, 0x3fd00000, 0x00000013}, /* 0.27632=f(0.25000)*/ +{14, 0,123,__LINE__, 0x3fd25c90, 0xa0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.28689=f(0.26000)*/ +{14, 0,123,__LINE__, 0x3fd308e6, 0x80000000, 0x3fd147ae, 0x147ae15b}, /* 0.29741=f(0.27000)*/ +{15, 0,123,__LINE__, 0x3fd3b44e, 0xa0000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.30788=f(0.28000)*/ +{13, 0,123,__LINE__, 0x3fd45ec1, 0xc0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.31828=f(0.29000)*/ +{13, 0,123,__LINE__, 0x3fd50838, 0xa0000000, 0x3fd33333, 0x33333347}, /* 0.32862=f(0.30000)*/ +{15, 0,123,__LINE__, 0x3fd5b0ab, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.33890=f(0.31000)*/ +{14, 0,123,__LINE__, 0x3fd65814, 0x80000000, 0x3fd47ae1, 0x47ae148f}, /* 0.34912=f(0.32000)*/ +{14, 0,123,__LINE__, 0x3fd6fe6c, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.35927=f(0.33000)*/ +{15, 0,123,__LINE__, 0x3fd7a3ab, 0x20000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.36936=f(0.34000)*/ +{12, 0,123,__LINE__, 0x3fd847cb, 0xa0000000, 0x3fd66666, 0x6666667b}, /* 0.37938=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3fd8eac7, 0x20000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.38932=f(0.36000)*/ +{15, 0,123,__LINE__, 0x3fd98c97, 0x40000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.39920=f(0.37000)*/ +{14, 0,123,__LINE__, 0x3fda2d36, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 0.40900=f(0.38000)*/ +{14, 0,123,__LINE__, 0x3fdacc9d, 0x60000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41873=f(0.39000)*/ +{15, 0,123,__LINE__, 0x3fdb6ac7, 0xc0000000, 0x3fd99999, 0x999999af}, /* 0.42839=f(0.40000)*/ +{13, 0,123,__LINE__, 0x3fdc07af, 0x80000000, 0x3fda3d70, 0xa3d70a53}, /* 0.43796=f(0.41000)*/ +{13, 0,123,__LINE__, 0x3fdca34f, 0x20000000, 0x3fdae147, 0xae147af7}, /* 0.44746=f(0.42000)*/ +{13, 0,123,__LINE__, 0x3fdd3da1, 0xc0000000, 0x3fdb851e, 0xb851eb9b}, /* 0.45688=f(0.43000)*/ +{15, 0,123,__LINE__, 0x3fddd6a1, 0xe0000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.46622=f(0.44000)*/ +{14, 0,123,__LINE__, 0x3fde6e4a, 0xe0000000, 0x3fdccccc, 0xcccccce3}, /* 0.47548=f(0.45000)*/ +{14, 0,123,__LINE__, 0x3fdf0498, 0x20000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.48465=f(0.46000)*/ +{15, 0,123,__LINE__, 0x3fdf9984, 0xc0000000, 0x3fde147a, 0xe147ae2b}, /* 0.49374=f(0.47000)*/ +{10, 0,123,__LINE__, 0x3fe01686, 0x80000000, 0x3fdeb851, 0xeb851ecf}, /* 0.50274=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fe05f96, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.51166=f(0.49000)*/ +{16, 0,123,__LINE__, 0x3fe0a7ef, 0x60000000, 0x3fe00000, 0x0000000b}, /* 0.52049=f(0.50000)*/ +{17, 0,123,__LINE__, 0x3fe0ef90, 0x40000000, 0x3fe051eb, 0x851eb85d}, /* 0.52924=f(0.51000)*/ +{15, 0,123,__LINE__, 0x3fe13677, 0x20000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.53789=f(0.52000)*/ +{18, 0,123,__LINE__, 0x3fe17ca2, 0x40000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.54646=f(0.53000)*/ +{17, 0,123,__LINE__, 0x3fe1c210, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 0.55493=f(0.54000)*/ +{23, 0,123,__LINE__, 0x3fe206be, 0xc0000000, 0x3fe19999, 0x999999a5}, /* 0.56332=f(0.55000)*/ +{17, 0,123,__LINE__, 0x3fe24aad, 0x20000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.57161=f(0.56000)*/ +{20, 0,123,__LINE__, 0x3fe28dd9, 0xe0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.57981=f(0.57000)*/ +{18, 0,123,__LINE__, 0x3fe2d043, 0xa0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.58792=f(0.58000)*/ +{18, 0,123,__LINE__, 0x3fe311e9, 0x40000000, 0x3fe2e147, 0xae147aed}, /* 0.59593=f(0.59000)*/ +{16, 0,123,__LINE__, 0x3fe352ca, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.60385=f(0.60000)*/ +{17, 0,123,__LINE__, 0x3fe392e4, 0x80000000, 0x3fe3851e, 0xb851eb91}, /* 0.61168=f(0.61000)*/ +{13, 0,123,__LINE__, 0x3fe3d238, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.61941=f(0.62000)*/ +{17, 0,123,__LINE__, 0x3fe410c3, 0xa0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.62704=f(0.63000)*/ +{16, 0,123,__LINE__, 0x3fe44e87, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 0.63458=f(0.64000)*/ +{15, 0,123,__LINE__, 0x3fe48b81, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.64202=f(0.65000)*/ +{15, 0,123,__LINE__, 0x3fe4c7b1, 0xa0000000, 0x3fe51eb8, 0x51eb852b}, /* 0.64937=f(0.66000)*/ +{16, 0,123,__LINE__, 0x3fe50318, 0x20000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.65662=f(0.67000)*/ +{14, 0,123,__LINE__, 0x3fe53db4, 0x40000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.66378=f(0.68000)*/ +{14, 0,123,__LINE__, 0x3fe57785, 0x80000000, 0x3fe6147a, 0xe147ae21}, /* 0.67084=f(0.69000)*/ +{14, 0,123,__LINE__, 0x3fe5b08c, 0x20000000, 0x3fe66666, 0x66666673}, /* 0.67780=f(0.70000)*/ +{14, 0,123,__LINE__, 0x3fe5e8c7, 0xc0000000, 0x3fe6b851, 0xeb851ec5}, /* 0.68466=f(0.71000)*/ +{15, 0,123,__LINE__, 0x3fe62038, 0x60000000, 0x3fe70a3d, 0x70a3d717}, /* 0.69143=f(0.72000)*/ +{15, 0,123,__LINE__, 0x3fe656de, 0x20000000, 0x3fe75c28, 0xf5c28f69}, /* 0.69810=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3fe68cb9, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.70467=f(0.74000)*/ +{12, 0,123,__LINE__, 0x3fe6c1c9, 0x80000000, 0x3fe80000, 0x0000000d}, /* 0.71115=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe6f60f, 0xc0000000, 0x3fe851eb, 0x851eb85f}, /* 0.71753=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe7298c, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.72382=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe75c3e, 0xc0000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.73001=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe78e28, 0xe0000000, 0x3fe947ae, 0x147ae155}, /* 0.73610=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe7bf4a, 0x80000000, 0x3fe99999, 0x999999a7}, /* 0.74210=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe7efa4, 0x80000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.74800=f(0.81000)*/ +{14, 0,123,__LINE__, 0x3fe81f37, 0xa0000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.75381=f(0.82000)*/ +{14, 0,123,__LINE__, 0x3fe84e04, 0xc0000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.75952=f(0.83000)*/ +{14, 0,123,__LINE__, 0x3fe87c0c, 0x80000000, 0x3feae147, 0xae147aef}, /* 0.76514=f(0.84000)*/ +{14, 0,123,__LINE__, 0x3fe8a950, 0x00000000, 0x3feb3333, 0x33333341}, /* 0.77066=f(0.85000)*/ +{14, 0,123,__LINE__, 0x3fe8d5d0, 0x40000000, 0x3feb851e, 0xb851eb93}, /* 0.77610=f(0.86000)*/ +{13, 0,123,__LINE__, 0x3fe9018e, 0x20000000, 0x3febd70a, 0x3d70a3e5}, /* 0.78143=f(0.87000)*/ +{13, 0,123,__LINE__, 0x3fe92c8a, 0xe0000000, 0x3fec28f5, 0xc28f5c37}, /* 0.78668=f(0.88000)*/ +{13, 0,123,__LINE__, 0x3fe956c7, 0xa0000000, 0x3fec7ae1, 0x47ae1489}, /* 0.79184=f(0.89000)*/ +{13, 0,123,__LINE__, 0x3fe98045, 0x80000000, 0x3feccccc, 0xccccccdb}, /* 0.79690=f(0.90000)*/ +{13, 0,123,__LINE__, 0x3fe9a906, 0x20000000, 0x3fed1eb8, 0x51eb852d}, /* 0.80188=f(0.91000)*/ +{13, 0,123,__LINE__, 0x3fe9d10a, 0x80000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.80676=f(0.92000)*/ +{13, 0,123,__LINE__, 0x3fe9f854, 0x20000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.81156=f(0.93000)*/ +{13, 0,123,__LINE__, 0x3fea44bc, 0xc0000000, 0x3fee6666, 0x66666675}, /* 0.82089=f(0.95000)*/ +{13, 0,123,__LINE__, 0x3fea69de, 0xe0000000, 0x3feeb851, 0xeb851ec7}, /* 0.82542=f(0.96000)*/ +{13, 0,123,__LINE__, 0x3fea8e4c, 0x20000000, 0x3fef0a3d, 0x70a3d719}, /* 0.82987=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3feab206, 0x40000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.83423=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3fead50e, 0xe0000000, 0x3fefae14, 0x7ae147bd}, /* 0.83850=f(0.99000)*/ +{11, 0,123,__LINE__, 0x3feaf767, 0xa0000000, 0x3ff00000, 0x00000007}, /* 0.84270=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3feb1912, 0x40000000, 0x3ff028f5, 0xc28f5c30}, /* 0.84681=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3feb3a10, 0xa0000000, 0x3ff051eb, 0x851eb859}, /* 0.85083=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3feb5a64, 0x60000000, 0x3ff07ae1, 0x47ae1482}, /* 0.85478=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3feb7a0f, 0x60000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.85864=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3feb9913, 0x80000000, 0x3ff0cccc, 0xccccccd4}, /* 0.86243=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3febb772, 0xc0000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.86614=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3febd52e, 0xe0000000, 0x3ff11eb8, 0x51eb8526}, /* 0.86977=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3febf249, 0xc0000000, 0x3ff147ae, 0x147ae14f}, /* 0.87332=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fec0ec5, 0x60000000, 0x3ff170a3, 0xd70a3d78}, /* 0.87680=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fec2aa3, 0xe0000000, 0x3ff19999, 0x999999a1}, /* 0.88020=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3fec45e7, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.88353=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3fec6091, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 0.88678=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fec7aa3, 0xc0000000, 0x3ff2147a, 0xe147ae1c}, /* 0.88997=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fec9421, 0x60000000, 0x3ff23d70, 0xa3d70a45}, /* 0.89308=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fecad0b, 0xe0000000, 0x3ff26666, 0x6666666e}, /* 0.89612=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fecc565, 0x60000000, 0x3ff28f5c, 0x28f5c297}, /* 0.89909=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fecdd2f, 0xe0000000, 0x3ff2b851, 0xeb851ec0}, /* 0.90200=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3fecf46d, 0xa0000000, 0x3ff2e147, 0xae147ae9}, /* 0.90483=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3fed0b20, 0x80000000, 0x3ff30a3d, 0x70a3d712}, /* 0.90760=f(1.19000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -1.00000=f(-6.28318)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* -1.00000=f(-4.71238)*/ +{11, 0,123,__LINE__, 0xbfefffed, 0x60000000, 0xc00921fb, 0x54442d18}, /* -0.99999=f(-3.14159)*/ +{11, 0,123,__LINE__, 0xbfef2860, 0xc0000000, 0xbff921fb, 0x54442d18}, /* -0.97367=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{11, 0,123,__LINE__, 0x3fef2860, 0xc0000000, 0x3ff921fb, 0x54442d18}, /* 0.97367=f(1.57079)*/ +{11, 0,123,__LINE__, 0x3fefffed, 0x60000000, 0x400921fb, 0x54442d18}, /* 0.99999=f(3.14159)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 1.00000=f(4.71238)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03e0000, 0x00000000}, /* -1.00000=f(-30.0000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -1.00000=f(-28.3000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -1.00000=f(-26.6000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc038e666, 0x66666667}, /* -1.00000=f(-24.9000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0373333, 0x33333334}, /* -1.00000=f(-23.2000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0358000, 0x00000001}, /* -1.00000=f(-21.5000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -1.00000=f(-19.8000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0321999, 0x9999999b}, /* -1.00000=f(-18.1000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0306666, 0x66666668}, /* -1.00000=f(-16.4000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -1.00000=f(-14.7000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02a0000, 0x00000004}, /* -1.00000=f(-13.0000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0269999, 0x9999999e}, /* -1.00000=f(-11.3000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0233333, 0x33333338}, /* -1.00000=f(-9.60000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -1.00000=f(-7.90000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -1.00000=f(-6.20000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0120000, 0x00000009}, /* -1.00000=f(-4.50000)*/ +{11, 0,123,__LINE__, 0xbfefff62, 0xa0000000, 0xc0066666, 0x66666678}, /* -0.99992=f(-2.80000)*/ +{11, 0,123,__LINE__, 0xbfec2aa3, 0xe0000000, 0xbff19999, 0x999999bd}, /* -0.88020=f(-1.10000)*/ +{16, 0,123,__LINE__, 0x3fe352ca, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.60385=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3feff6a2, 0xa0000000, 0x40026666, 0x66666654}, /* 0.99885=f(2.30000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x400fffff, 0xffffffee}, /* 1.00000=f(4.00000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 1.00000=f(5.70000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x401d9999, 0x99999991}, /* 1.00000=f(7.40000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40223333, 0x3333332f}, /* 1.00000=f(9.10000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40259999, 0x99999995}, /* 1.00000=f(10.8000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 1.00000=f(12.5000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402c6666, 0x66666661}, /* 1.00000=f(14.2000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 1.00000=f(15.9000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40319999, 0x99999997}, /* 1.00000=f(17.6000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 1.00000=f(19.3000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 1.00000=f(21.0000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4036b333, 0x33333330}, /* 1.00000=f(22.7000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40386666, 0x66666663}, /* 1.00000=f(24.4000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403a1999, 0x99999996}, /* 1.00000=f(26.1000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 1.00000=f(27.8000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 1.00000=f(29.5000)*/ +0,}; +test_erff(m) {run_vector_1(m,erff_vec,(char *)(erff),"erff","ff"); } diff --git a/newlib/libm/test/exp_vec.c b/newlib/libm/test/exp_vec.c new file mode 100644 index 000000000..75adb9195 --- /dev/null +++ b/newlib/libm/test/exp_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type exp_vec[] = { +{63, 0,123,__LINE__, 0x3fd346c4, 0x167a12df, 0xbff33333, 0x33333333}, /* 0.30119=f(-1.20000)*/ +{60, 0,123,__LINE__, 0x3fd3785c, 0x76fa8378, 0xbff30a3d, 0x70a3d70a}, /* 0.30422=f(-1.19000)*/ +{63, 0,123,__LINE__, 0x3fd3aa74, 0x7143124b, 0xbff2e147, 0xae147ae1}, /* 0.30727=f(-1.18000)*/ +{63, 0,123,__LINE__, 0x3fd3dd0d, 0x4d9faafd, 0xbff2b851, 0xeb851eb8}, /* 0.31036=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3fd41028, 0x57a8e0f5, 0xbff28f5c, 0x28f5c28f}, /* 0.31348=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3fd443c6, 0xde4c6c97, 0xbff26666, 0x66666666}, /* 0.31663=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3fd477ea, 0x33d5be3b, 0xbff23d70, 0xa3d70a3d}, /* 0.31981=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3fd4ac93, 0xadf6a741, 0xbff2147a, 0xe147ae14}, /* 0.32303=f(-1.13000)*/ +{62, 0,123,__LINE__, 0x3fd4e1c4, 0xa5d0196a, 0xbff1eb85, 0x1eb851eb}, /* 0.32627=f(-1.12000)*/ +{63, 0,123,__LINE__, 0x3fd5177e, 0x77fafcb5, 0xbff1c28f, 0x5c28f5c2}, /* 0.32955=f(-1.11000)*/ +{62, 0,123,__LINE__, 0x3fd54dc2, 0x84911bf2, 0xbff19999, 0x99999999}, /* 0.33287=f(-1.10000)*/ +{61, 0,123,__LINE__, 0x3fd58492, 0x2f36284c, 0xbff170a3, 0xd70a3d70}, /* 0.33621=f(-1.09000)*/ +{59, 0,123,__LINE__, 0x3fd5bbee, 0xdf20d40e, 0xbff147ae, 0x147ae147}, /* 0.33959=f(-1.08000)*/ +{63, 0,123,__LINE__, 0x3fd5f3d9, 0xff2404c8, 0xbff11eb8, 0x51eb851e}, /* 0.34300=f(-1.07000)*/ +{63, 0,123,__LINE__, 0x3fd62c54, 0xfdb81d18, 0xbff0f5c2, 0x8f5c28f5}, /* 0.34645=f(-1.06000)*/ +{60, 0,123,__LINE__, 0x3fd66561, 0x4d045e77, 0xbff0cccc, 0xcccccccc}, /* 0.34993=f(-1.05000)*/ +{63, 0,123,__LINE__, 0x3fd69f00, 0x62e862fe, 0xbff0a3d7, 0x0a3d70a3}, /* 0.35345=f(-1.04000)*/ +{63, 0,123,__LINE__, 0x3fd6d933, 0xb905afb7, 0xbff07ae1, 0x47ae147a}, /* 0.35700=f(-1.03000)*/ +{63, 0,123,__LINE__, 0x3fd713fc, 0xccc95f69, 0xbff051eb, 0x851eb851}, /* 0.36059=f(-1.02000)*/ +{61, 0,123,__LINE__, 0x3fd74f5d, 0x1f75e65c, 0xbff028f5, 0xc28f5c28}, /* 0.36421=f(-1.01000)*/ +{62, 0,123,__LINE__, 0x3fd78b56, 0x362cef3a, 0xbfefffff, 0xfffffffe}, /* 0.36787=f(-0.01000)*/ +{62, 0,123,__LINE__, 0x3fd7c7e9, 0x99f9513d, 0xbfefae14, 0x7ae147ac}, /* 0.37157=f(-0.99000)*/ +{62, 0,123,__LINE__, 0x3fd80518, 0xd7d9201c, 0xbfef5c28, 0xf5c28f5a}, /* 0.37531=f(-0.98000)*/ +{61, 0,123,__LINE__, 0x3fd842e5, 0x80c7d5bb, 0xbfef0a3d, 0x70a3d708}, /* 0.37908=f(-0.97000)*/ +{61, 0,123,__LINE__, 0x3fd88151, 0x29c89622, 0xbfeeb851, 0xeb851eb6}, /* 0.38289=f(-0.96000)*/ +{62, 0,123,__LINE__, 0x3fd8c05d, 0x6bf08dc1, 0xbfee6666, 0x66666664}, /* 0.38674=f(-0.95000)*/ +{59, 0,123,__LINE__, 0x3fd9000b, 0xe4716a6f, 0xbfee147a, 0xe147ae12}, /* 0.39062=f(-0.94000)*/ +{62, 0,123,__LINE__, 0x3fd9405e, 0x34a3ef58, 0xbfedc28f, 0x5c28f5c0}, /* 0.39455=f(-0.93000)*/ +{62, 0,123,__LINE__, 0x3fd98156, 0x0212a428, 0xbfed70a3, 0xd70a3d6e}, /* 0.39851=f(-0.92000)*/ +{60, 0,123,__LINE__, 0x3fd9c2f4, 0xf6849fa6, 0xbfed1eb8, 0x51eb851c}, /* 0.40252=f(-0.91000)*/ +{62, 0,123,__LINE__, 0x3fda053c, 0xc0086e22, 0xbfeccccc, 0xccccccca}, /* 0.40656=f(-0.90000)*/ +{62, 0,123,__LINE__, 0x3fda482f, 0x10ff13db, 0xbfec7ae1, 0x47ae1478}, /* 0.41065=f(-0.89000)*/ +{59, 0,123,__LINE__, 0x3fda8bcd, 0xa0272bd0, 0xbfec28f5, 0xc28f5c26}, /* 0.41478=f(-0.88000)*/ +{62, 0,123,__LINE__, 0x3fdad01a, 0x28a8231e, 0xbfebd70a, 0x3d70a3d4}, /* 0.41895=f(-0.87000)*/ +{60, 0,123,__LINE__, 0x3fdb1516, 0x6a1d9147, 0xbfeb851e, 0xb851eb82}, /* 0.42316=f(-0.86000)*/ +{62, 0,123,__LINE__, 0x3fdb5ac4, 0x28a2ada1, 0xbfeb3333, 0x33333330}, /* 0.42741=f(-0.85000)*/ +{62, 0,123,__LINE__, 0x3fdba125, 0x2cdde259, 0xbfeae147, 0xae147ade}, /* 0.43171=f(-0.84000)*/ +{58, 0,123,__LINE__, 0x3fdbe83b, 0x440c7d1f, 0xbfea8f5c, 0x28f5c28c}, /* 0.43604=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fdc3008, 0x400e7df7, 0xbfea3d70, 0xa3d70a3a}, /* 0.44043=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3fdc788d, 0xf7728476, 0xbfe9eb85, 0x1eb851e8}, /* 0.44485=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3fdcc1ce, 0x4581db8b, 0xbfe99999, 0x99999996}, /* 0.44932=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3fdd0bcb, 0x0a4ca466, 0xbfe947ae, 0x147ae144}, /* 0.45384=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3fdd5686, 0x2ab620a4, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.45840=f(-0.78000)*/ +{60, 0,123,__LINE__, 0x3fdda201, 0x90811c17, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.46301=f(-0.77000)*/ +{62, 0,123,__LINE__, 0x3fddee3f, 0x2a5c767c, 0xbfe851eb, 0x851eb84e}, /* 0.46766=f(-0.76000)*/ +{61, 0,123,__LINE__, 0x3fde3b40, 0xebefcd83, 0xbfe7ffff, 0xfffffffc}, /* 0.47236=f(-0.75000)*/ +{60, 0,123,__LINE__, 0x3fde8908, 0xcde84747, 0xbfe7ae14, 0x7ae147aa}, /* 0.47711=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3fded798, 0xce057de4, 0xbfe75c28, 0xf5c28f58}, /* 0.48190=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3fdf26f2, 0xef268c17, 0xbfe70a3d, 0x70a3d706}, /* 0.48675=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3fdf7719, 0x39573b9a, 0xbfe6b851, 0xeb851eb4}, /* 0.49164=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3fdfc80d, 0xb9dd5547, 0xbfe66666, 0x66666662}, /* 0.49658=f(-0.70000)*/ +{63, 0,123,__LINE__, 0x3fe00ce9, 0x41a309ce, 0xbfe6147a, 0xe147ae10}, /* 0.50157=f(-0.69000)*/ +{58, 0,123,__LINE__, 0x3fe03634, 0xd6b9dbdf, 0xbfe5c28f, 0x5c28f5be}, /* 0.50661=f(-0.68000)*/ +{62, 0,123,__LINE__, 0x3fe05fea, 0xaad5a0c1, 0xbfe570a3, 0xd70a3d6c}, /* 0.51170=f(-0.67000)*/ +{63, 0,123,__LINE__, 0x3fe08a0b, 0xcf512552, 0xbfe51eb8, 0x51eb851a}, /* 0.51685=f(-0.66000)*/ +{63, 0,123,__LINE__, 0x3fe0b499, 0x584682ec, 0xbfe4cccc, 0xccccccc8}, /* 0.52204=f(-0.65000)*/ +{62, 0,123,__LINE__, 0x3fe0df94, 0x5c9630d2, 0xbfe47ae1, 0x47ae1476}, /* 0.52729=f(-0.64000)*/ +{63, 0,123,__LINE__, 0x3fe10afd, 0xf5ee27db, 0xbfe428f5, 0xc28f5c24}, /* 0.53259=f(-0.63000)*/ +{63, 0,123,__LINE__, 0x3fe136d7, 0x40d11881, 0xbfe3d70a, 0x3d70a3d2}, /* 0.53794=f(-0.62000)*/ +{61, 0,123,__LINE__, 0x3fe16321, 0x5c9db374, 0xbfe3851e, 0xb851eb80}, /* 0.54335=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3fe18fdd, 0x6b9604e6, 0xbfe33333, 0x3333332e}, /* 0.54881=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fe1bd0c, 0x92e6e2d3, 0xbfe2e147, 0xae147adc}, /* 0.55432=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3fe1eaaf, 0xfaaf6e5e, 0xbfe28f5c, 0x28f5c28a}, /* 0.55989=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x3fe218c8, 0xce08a87a, 0xbfe23d70, 0xa3d70a38}, /* 0.56552=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3fe24758, 0x3b0d1a1d, 0xbfe1eb85, 0x1eb851e6}, /* 0.57120=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3fe2765f, 0x72e09020, 0xbfe19999, 0x99999994}, /* 0.57694=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x3fe2a5df, 0xa9b7eb0a, 0xbfe147ae, 0x147ae142}, /* 0.58274=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3fe2d5da, 0x16e102f0, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.58860=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3fe3064f, 0xf4ca9fa0, 0xbfe0a3d7, 0x0a3d709e}, /* 0.59452=f(-0.52000)*/ +{62, 0,123,__LINE__, 0x3fe33742, 0x810c8552, 0xbfe051eb, 0x851eb84c}, /* 0.60049=f(-0.51000)*/ +{62, 0,123,__LINE__, 0x3fe368b2, 0xfc6f960e, 0xbfdfffff, 0xfffffff4}, /* 0.60653=f(-0.50000)*/ +{62, 0,123,__LINE__, 0x3fe39aa2, 0xaaf607fa, 0xbfdf5c28, 0xf5c28f50}, /* 0.61262=f(-0.49000)*/ +{63, 0,123,__LINE__, 0x3fe3cd12, 0xd3e3b0cb, 0xbfdeb851, 0xeb851eac}, /* 0.61878=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fe40004, 0xc1c66690, 0xbfde147a, 0xe147ae08}, /* 0.62500=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3fe43379, 0xc27e7604, 0xbfdd70a3, 0xd70a3d64}, /* 0.63128=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x3fe46773, 0x27472ead, 0xbfdccccc, 0xccccccc0}, /* 0.63762=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fe49bf2, 0x44bf84f3, 0xbfdc28f5, 0xc28f5c1c}, /* 0.64403=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3fe4d0f8, 0x72f2ca71, 0xbfdb851e, 0xb851eb78}, /* 0.65050=f(-0.43000)*/ +{63, 0,123,__LINE__, 0x3fe50687, 0x0d617cbb, 0xbfdae147, 0xae147ad4}, /* 0.65704=f(-0.42000)*/ +{61, 0,123,__LINE__, 0x3fe53c9f, 0x730a2ab4, 0xbfda3d70, 0xa3d70a30}, /* 0.66365=f(-0.41000)*/ +{62, 0,123,__LINE__, 0x3fe57343, 0x067270f2, 0xbfd99999, 0x9999998c}, /* 0.67032=f(-0.40000)*/ +{63, 0,123,__LINE__, 0x3fe5aa73, 0x2db00d13, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.67705=f(-0.39000)*/ +{61, 0,123,__LINE__, 0x3fe5e231, 0x5272088b, 0xbfd851eb, 0x851eb844}, /* 0.68386=f(-0.38000)*/ +{63, 0,123,__LINE__, 0x3fe61a7e, 0xe209fb02, 0xbfd7ae14, 0x7ae147a0}, /* 0.69073=f(-0.37000)*/ +{63, 0,123,__LINE__, 0x3fe6535d, 0x4d756476, 0xbfd70a3d, 0x70a3d6fc}, /* 0.69767=f(-0.36000)*/ +{62, 0,123,__LINE__, 0x3fe68cce, 0x09671f75, 0xbfd66666, 0x66666658}, /* 0.70468=f(-0.35000)*/ +{63, 0,123,__LINE__, 0x3fe6c6d2, 0x8e50ebbb, 0xbfd5c28f, 0x5c28f5b4}, /* 0.71177=f(-0.34000)*/ +{63, 0,123,__LINE__, 0x3fe7016c, 0x586d112f, 0xbfd51eb8, 0x51eb8510}, /* 0.71892=f(-0.33000)*/ +{61, 0,123,__LINE__, 0x3fe73c9c, 0xe7c81bd4, 0xbfd47ae1, 0x47ae146c}, /* 0.72614=f(-0.32000)*/ +{59, 0,123,__LINE__, 0x3fe77865, 0xc04ab0b0, 0xbfd3d70a, 0x3d70a3c8}, /* 0.73344=f(-0.31000)*/ +{63, 0,123,__LINE__, 0x3fe7b4c8, 0x69c37c0c, 0xbfd33333, 0x33333324}, /* 0.74081=f(-0.30000)*/ +{62, 0,123,__LINE__, 0x3fe7f1c6, 0x6ff13925, 0xbfd28f5c, 0x28f5c280}, /* 0.74826=f(-0.29000)*/ +{58, 0,123,__LINE__, 0x3fe82f61, 0x628cd3dd, 0xbfd1eb85, 0x1eb851dc}, /* 0.75578=f(-0.28000)*/ +{61, 0,123,__LINE__, 0x3fe86d9a, 0xd553a44a, 0xbfd147ae, 0x147ae138}, /* 0.76337=f(-0.27000)*/ +{61, 0,123,__LINE__, 0x3fe8ac74, 0x6011c4ab, 0xbfd0a3d7, 0x0a3d7094}, /* 0.77105=f(-0.26000)*/ +{62, 0,123,__LINE__, 0x3fe8ebef, 0x9eac8210, 0xbfcfffff, 0xffffffe0}, /* 0.77880=f(-0.25000)*/ +{62, 0,123,__LINE__, 0x3fe92c0e, 0x312ce7ad, 0xbfceb851, 0xeb851e98}, /* 0.78662=f(-0.24000)*/ +{62, 0,123,__LINE__, 0x3fe96cd1, 0xbbca6578, 0xbfcd70a3, 0xd70a3d50}, /* 0.79453=f(-0.23000)*/ +{59, 0,123,__LINE__, 0x3fe9ae3b, 0xe6f5920e, 0xbfcc28f5, 0xc28f5c08}, /* 0.80251=f(-0.22000)*/ +{62, 0,123,__LINE__, 0x3fe9f04e, 0x5f63086b, 0xbfcae147, 0xae147ac0}, /* 0.81058=f(-0.21000)*/ +{58, 0,123,__LINE__, 0x3fea330a, 0xd6166160, 0xbfc99999, 0x99999978}, /* 0.81873=f(-0.20000)*/ +{61, 0,123,__LINE__, 0x3fea7673, 0x006d498c, 0xbfc851eb, 0x851eb830}, /* 0.82695=f(-0.19000)*/ +{60, 0,123,__LINE__, 0x3feaba88, 0x982ab399, 0xbfc70a3d, 0x70a3d6e8}, /* 0.83527=f(-0.18000)*/ +{63, 0,123,__LINE__, 0x3feaff4d, 0x5b822768, 0xbfc5c28f, 0x5c28f5a0}, /* 0.84366=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3feb44c3, 0x0d232e59, 0xbfc47ae1, 0x47ae1458}, /* 0.85214=f(-0.16000)*/ +{63, 0,123,__LINE__, 0x3feb8aeb, 0x7444dce8, 0xbfc33333, 0x33333310}, /* 0.86070=f(-0.15000)*/ +{63, 0,123,__LINE__, 0x3febd1c8, 0x5cb17a06, 0xbfc1eb85, 0x1eb851c8}, /* 0.86935=f(-0.14000)*/ +{60, 0,123,__LINE__, 0x3fec195b, 0x96d24457, 0xbfc0a3d7, 0x0a3d7080}, /* 0.87809=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3fec61a6, 0xf7bb55df, 0xbfbeb851, 0xeb851e71}, /* 0.88692=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3fecaaac, 0x5937a626, 0xbfbc28f5, 0xc28f5be2}, /* 0.89583=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3fecf46d, 0x99d52b42, 0xbfb99999, 0x99999953}, /* 0.90483=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3fed3eec, 0x9cf11a2e, 0xbfb70a3d, 0x70a3d6c4}, /* 0.91393=f(-0.09000)*/ +{62, 0,123,__LINE__, 0x3fed8a2b, 0x4ac4468d, 0xbfb47ae1, 0x47ae1435}, /* 0.92311=f(-0.08000)*/ +{62, 0,123,__LINE__, 0x3fedd62b, 0x906fa255, 0xbfb1eb85, 0x1eb851a6}, /* 0.93239=f(-0.07000)*/ +{62, 0,123,__LINE__, 0x3fee22ef, 0x6008dd91, 0xbfaeb851, 0xeb851e2d}, /* 0.94176=f(-0.06000)*/ +{59, 0,123,__LINE__, 0x3fee7078, 0xb0a726af, 0xbfa99999, 0x9999990e}, /* 0.95122=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3feebec9, 0x7e700b96, 0xbfa47ae1, 0x47ae13ef}, /* 0.96078=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3fef0de3, 0xcaa47bd8, 0xbf9eb851, 0xeb851da0}, /* 0.97044=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3fef5dc9, 0x9badec63, 0xbf947ae1, 0x47ae1362}, /* 0.98019=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3fefae7c, 0xfd2b9d06, 0xbf847ae1, 0x47ae1249}, /* 0.99004=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000005, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3ff0292a, 0x5d2f222b, 0x3f847ae1, 0x47ae16ad}, /* 1.01005=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3ff052be, 0xa3ec0136, 0x3f947ae1, 0x47ae1594}, /* 1.02020=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3ff07cbd, 0xe4b58646, 0x3f9eb851, 0xeb851fd2}, /* 1.03045=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3ff0a729, 0x32c7b12a, 0x3fa47ae1, 0x47ae1508}, /* 1.04081=f(0.04000)*/ +{63, 0,123,__LINE__, 0x3ff0d201, 0xa422a437, 0x3fa99999, 0x99999a27}, /* 1.05127=f(0.05000)*/ +{61, 0,123,__LINE__, 0x3ff0fd48, 0x5191c22c, 0x3faeb851, 0xeb851f46}, /* 1.06183=f(0.06000)*/ +{62, 0,123,__LINE__, 0x3ff128fe, 0x56b2de6e, 0x3fb1eb85, 0x1eb85232}, /* 1.07250=f(0.07000)*/ +{57, 0,123,__LINE__, 0x3ff15524, 0xd1fd7fc0, 0x3fb47ae1, 0x47ae14c1}, /* 1.08328=f(0.08000)*/ +{62, 0,123,__LINE__, 0x3ff181bc, 0xe4ca35b2, 0x3fb70a3d, 0x70a3d750}, /* 1.09417=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3ff1aec7, 0xb35a00d9, 0x3fb99999, 0x999999df}, /* 1.10517=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3ff1dc46, 0x64ddce33, 0x3fbc28f5, 0xc28f5c6e}, /* 1.11627=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3ff20a3a, 0x237e05b0, 0x3fbeb851, 0xeb851efd}, /* 1.12749=f(0.12000)*/ +{61, 0,123,__LINE__, 0x3ff238a4, 0x1c622c44, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.13882=f(0.13000)*/ +{62, 0,123,__LINE__, 0x3ff26785, 0x7fb89982, 0x3fc1eb85, 0x1eb8520e}, /* 1.15027=f(0.14000)*/ +{63, 0,123,__LINE__, 0x3ff296df, 0x80be4127, 0x3fc33333, 0x33333356}, /* 1.16183=f(0.15000)*/ +{61, 0,123,__LINE__, 0x3ff2c6b3, 0x55c6909c, 0x3fc47ae1, 0x47ae149e}, /* 1.17351=f(0.16000)*/ +{61, 0,123,__LINE__, 0x3ff2f702, 0x384360bc, 0x3fc5c28f, 0x5c28f5e6}, /* 1.18530=f(0.17000)*/ +{63, 0,123,__LINE__, 0x3ff327cd, 0x64ccfc0e, 0x3fc70a3d, 0x70a3d72e}, /* 1.19721=f(0.18000)*/ +{63, 0,123,__LINE__, 0x3ff35916, 0x1b2a3994, 0x3fc851eb, 0x851eb876}, /* 1.20925=f(0.19000)*/ +{63, 0,123,__LINE__, 0x3ff38add, 0x9e58ac94, 0x3fc99999, 0x999999be}, /* 1.22140=f(0.20000)*/ +{57, 0,123,__LINE__, 0x3ff3bd25, 0x3494e93e, 0x3fcae147, 0xae147b06}, /* 1.23367=f(0.21000)*/ +{63, 0,123,__LINE__, 0x3ff3efee, 0x2762dedb, 0x3fcc28f5, 0xc28f5c4e}, /* 1.24607=f(0.22000)*/ +{60, 0,123,__LINE__, 0x3ff42339, 0xc3964738, 0x3fcd70a3, 0xd70a3d96}, /* 1.25860=f(0.23000)*/ +{63, 0,123,__LINE__, 0x3ff45709, 0x595b2bef, 0x3fceb851, 0xeb851ede}, /* 1.27124=f(0.24000)*/ +{61, 0,123,__LINE__, 0x3ff48b5e, 0x3c3e818c, 0x3fd00000, 0x00000013}, /* 1.28402=f(0.25000)*/ +{60, 0,123,__LINE__, 0x3ff4c039, 0xc336d8d8, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.29693=f(0.26000)*/ +{60, 0,123,__LINE__, 0x3ff4f59d, 0x48ad2688, 0x3fd147ae, 0x147ae15b}, /* 1.30996=f(0.27000)*/ +{63, 0,123,__LINE__, 0x3ff52b8a, 0x2a85a171, 0x3fd1eb85, 0x1eb851ff}, /* 1.32313=f(0.28000)*/ +{63, 0,123,__LINE__, 0x3ff56201, 0xca28b7ab, 0x3fd28f5c, 0x28f5c2a3}, /* 1.33642=f(0.29000)*/ +{61, 0,123,__LINE__, 0x3ff59905, 0x8c8c1a9c, 0x3fd33333, 0x33333347}, /* 1.34985=f(0.30000)*/ +{62, 0,123,__LINE__, 0x3ff5d096, 0xda3be269, 0x3fd3d70a, 0x3d70a3eb}, /* 1.36342=f(0.31000)*/ +{63, 0,123,__LINE__, 0x3ff608b7, 0x1f63c8dc, 0x3fd47ae1, 0x47ae148f}, /* 1.37712=f(0.32000)*/ +{63, 0,123,__LINE__, 0x3ff64167, 0xcbd87bfc, 0x3fd51eb8, 0x51eb8533}, /* 1.39096=f(0.33000)*/ +{63, 0,123,__LINE__, 0x3ff67aaa, 0x532108c5, 0x3fd5c28f, 0x5c28f5d7}, /* 1.40494=f(0.34000)*/ +{63, 0,123,__LINE__, 0x3ff6b480, 0x2c805df3, 0x3fd66666, 0x6666667b}, /* 1.41906=f(0.35000)*/ +{63, 0,123,__LINE__, 0x3ff6eeea, 0xd2fee767, 0x3fd70a3d, 0x70a3d71f}, /* 1.43332=f(0.36000)*/ +{61, 0,123,__LINE__, 0x3ff729eb, 0xc5744225, 0x3fd7ae14, 0x7ae147c3}, /* 1.44773=f(0.37000)*/ +{58, 0,123,__LINE__, 0x3ff76584, 0x86910960, 0x3fd851eb, 0x851eb867}, /* 1.46228=f(0.38000)*/ +{62, 0,123,__LINE__, 0x3ff7a1b6, 0x9ce8bcb9, 0x3fd8f5c2, 0x8f5c290b}, /* 1.47698=f(0.39000)*/ +{60, 0,123,__LINE__, 0x3ff7de83, 0x92fbbfe7, 0x3fd99999, 0x999999af}, /* 1.49182=f(0.40000)*/ +{61, 0,123,__LINE__, 0x3ff81bec, 0xf7417433, 0x3fda3d70, 0xa3d70a53}, /* 1.50681=f(0.41000)*/ +{62, 0,123,__LINE__, 0x3ff859f4, 0x5c326bd5, 0x3fdae147, 0xae147af7}, /* 1.52196=f(0.42000)*/ +{61, 0,123,__LINE__, 0x3ff8989b, 0x5852b79b, 0x3fdb851e, 0xb851eb9b}, /* 1.53725=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3ff8d7e3, 0x863c4f25, 0x3fdc28f5, 0xc28f5c3f}, /* 1.55270=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3ff917ce, 0x84a993bd, 0x3fdccccc, 0xcccccce3}, /* 1.56831=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3ff9585d, 0xf67fee66, 0x3fdd70a3, 0xd70a3d87}, /* 1.58407=f(0.46000)*/ +{62, 0,123,__LINE__, 0x3ff99993, 0x82da891e, 0x3fde147a, 0xe147ae2b}, /* 1.59999=f(0.47000)*/ +{60, 0,123,__LINE__, 0x3ff9db70, 0xd51523c7, 0x3fdeb851, 0xeb851ecf}, /* 1.61607=f(0.48000)*/ +{62, 0,123,__LINE__, 0x3ffa1df7, 0x9cd704ed, 0x3fdf5c28, 0xf5c28f73}, /* 1.63231=f(0.49000)*/ +{62, 0,123,__LINE__, 0x3ffa6129, 0x8e1e06a5, 0x3fe00000, 0x0000000b}, /* 1.64872=f(0.50000)*/ +{62, 0,123,__LINE__, 0x3ffaa508, 0x6149bfe8, 0x3fe051eb, 0x851eb85d}, /* 1.66529=f(0.51000)*/ +{62, 0,123,__LINE__, 0x3ffae995, 0xd326caa1, 0x3fe0a3d7, 0x0a3d70af}, /* 1.68202=f(0.52000)*/ +{62, 0,123,__LINE__, 0x3ffb2ed3, 0xa4fa26c1, 0x3fe0f5c2, 0x8f5c2901}, /* 1.69893=f(0.53000)*/ +{60, 0,123,__LINE__, 0x3ffb74c3, 0x9c8cba97, 0x3fe147ae, 0x147ae153}, /* 1.71600=f(0.54000)*/ +{57, 0,123,__LINE__, 0x3ffbbb67, 0x8436f0bf, 0x3fe19999, 0x999999a5}, /* 1.73325=f(0.55000)*/ +{62, 0,123,__LINE__, 0x3ffc02c1, 0x2aec73f9, 0x3fe1eb85, 0x1eb851f7}, /* 1.75067=f(0.56000)*/ +{60, 0,123,__LINE__, 0x3ffc4ad2, 0x64480937, 0x3fe23d70, 0xa3d70a49}, /* 1.76826=f(0.57000)*/ +{63, 0,123,__LINE__, 0x3ffc939d, 0x08978822, 0x3fe28f5c, 0x28f5c29b}, /* 1.78603=f(0.58000)*/ +{63, 0,123,__LINE__, 0x3ffcdd22, 0xf4e7f25a, 0x3fe2e147, 0xae147aed}, /* 1.80398=f(0.59000)*/ +{61, 0,123,__LINE__, 0x3ffd2766, 0x0b11a9fb, 0x3fe33333, 0x3333333f}, /* 1.82211=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3ffd7268, 0x31c4c764, 0x3fe3851e, 0xb851eb91}, /* 1.84043=f(0.61000)*/ +{63, 0,123,__LINE__, 0x3ffdbe2b, 0x54958ed4, 0x3fe3d70a, 0x3d70a3e3}, /* 1.85892=f(0.62000)*/ +{63, 0,123,__LINE__, 0x3ffe0ab1, 0x64090610, 0x3fe428f5, 0xc28f5c35}, /* 1.87761=f(0.63000)*/ +{62, 0,123,__LINE__, 0x3ffe57fc, 0x55a1aa65, 0x3fe47ae1, 0x47ae1487}, /* 1.89648=f(0.64000)*/ +{58, 0,123,__LINE__, 0x3ffea60e, 0x23ec4760, 0x3fe4cccc, 0xccccccd9}, /* 1.91554=f(0.65000)*/ +{62, 0,123,__LINE__, 0x3ffef4e8, 0xce8cee85, 0x3fe51eb8, 0x51eb852b}, /* 1.93479=f(0.66000)*/ +{61, 0,123,__LINE__, 0x3fff448e, 0x5a4c108b, 0x3fe570a3, 0xd70a3d7d}, /* 1.95423=f(0.67000)*/ +{60, 0,123,__LINE__, 0x3fff9500, 0xd123b808, 0x3fe5c28f, 0x5c28f5cf}, /* 1.97387=f(0.68000)*/ +{60, 0,123,__LINE__, 0x3fffe642, 0x424ce668, 0x3fe6147a, 0xe147ae21}, /* 1.99371=f(0.69000)*/ +{64, 0,123,__LINE__, 0x40001c2a, 0x6126898e, 0x3fe66666, 0x66666673}, /* 2.01375=f(0.70000)*/ +{64, 0,123,__LINE__, 0x4000459d, 0x3581e6c6, 0x3fe6b851, 0xeb851ec5}, /* 2.03399=f(0.71000)*/ +{64, 0,123,__LINE__, 0x40006f7a, 0xaddc411b, 0x3fe70a3d, 0x70a3d717}, /* 2.05443=f(0.72000)*/ +{64, 0,123,__LINE__, 0x400099c3, 0xdc943183, 0x3fe75c28, 0xf5c28f69}, /* 2.07508=f(0.73000)*/ +{63, 0,123,__LINE__, 0x4000c479, 0xd6ca39d7, 0x3fe7ae14, 0x7ae147bb}, /* 2.09593=f(0.74000)*/ +{63, 0,123,__LINE__, 0x4000ef9d, 0xb467dcff, 0x3fe80000, 0x0000000d}, /* 2.11700=f(0.75000)*/ +{63, 0,123,__LINE__, 0x40011b30, 0x9026c963, 0x3fe851eb, 0x851eb85f}, /* 2.13827=f(0.76000)*/ +{61, 0,123,__LINE__, 0x40014733, 0x879815d4, 0x3fe8a3d7, 0x0a3d70b1}, /* 2.15976=f(0.77000)*/ +{64, 0,123,__LINE__, 0x400173a7, 0xbb2b910a, 0x3fe8f5c2, 0x8f5c2903}, /* 2.18147=f(0.78000)*/ +{64, 0,123,__LINE__, 0x4001a08e, 0x4e3723ec, 0x3fe947ae, 0x147ae155}, /* 2.20339=f(0.79000)*/ +{64, 0,123,__LINE__, 0x4001cde8, 0x66fe46ef, 0x3fe99999, 0x999999a7}, /* 2.22554=f(0.80000)*/ +{64, 0,123,__LINE__, 0x4001fbb7, 0x2eb98a93, 0x3fe9eb85, 0x1eb851f9}, /* 2.24790=f(0.81000)*/ +{64, 0,123,__LINE__, 0x400229fb, 0xd19e3339, 0x3fea3d70, 0xa3d70a4b}, /* 2.27050=f(0.82000)*/ +{62, 0,123,__LINE__, 0x400258b7, 0x7ee5e8a6, 0x3fea8f5c, 0x28f5c29d}, /* 2.29331=f(0.83000)*/ +{63, 0,123,__LINE__, 0x400287eb, 0x68d6793b, 0x3feae147, 0xae147aef}, /* 2.31636=f(0.84000)*/ +{63, 0,123,__LINE__, 0x4002b798, 0xc4c9b127, 0x3feb3333, 0x33333341}, /* 2.33964=f(0.85000)*/ +{63, 0,123,__LINE__, 0x4002e7c0, 0xcb3545cb, 0x3feb851e, 0xb851eb93}, /* 2.36316=f(0.86000)*/ +{63, 0,123,__LINE__, 0x40031864, 0xb7b2d576, 0x3febd70a, 0x3d70a3e5}, /* 2.38691=f(0.87000)*/ +{63, 0,123,__LINE__, 0x40034985, 0xc907fbc4, 0x3fec28f5, 0xc28f5c37}, /* 2.41090=f(0.88000)*/ +{61, 0,123,__LINE__, 0x40037b25, 0x412e7ab3, 0x3fec7ae1, 0x47ae1489}, /* 2.43513=f(0.89000)*/ +{62, 0,123,__LINE__, 0x4003ad44, 0x655c78c5, 0x3feccccc, 0xccccccdb}, /* 2.45960=f(0.90000)*/ +{63, 0,123,__LINE__, 0x4003dfe4, 0x7e0cd451, 0x3fed1eb8, 0x51eb852d}, /* 2.48432=f(0.91000)*/ +{62, 0,123,__LINE__, 0x40041306, 0xd7078c4a, 0x3fed70a3, 0xd70a3d7f}, /* 2.50929=f(0.92000)*/ +{62, 0,123,__LINE__, 0x400446ac, 0xbf6a3e96, 0x3fedc28f, 0x5c28f5d1}, /* 2.53450=f(0.93000)*/ +{60, 0,123,__LINE__, 0x40047ad7, 0x89b0bc48, 0x3fee147a, 0xe147ae23}, /* 2.55998=f(0.94000)*/ +{60, 0,123,__LINE__, 0x4004af88, 0x8bbdb3f8, 0x3fee6666, 0x66666675}, /* 2.58571=f(0.95000)*/ +{61, 0,123,__LINE__, 0x4004e4c1, 0x1ee3725d, 0x3feeb851, 0xeb851ec7}, /* 2.61169=f(0.96000)*/ +{63, 0,123,__LINE__, 0x40051a82, 0x9fecb959, 0x3fef0a3d, 0x70a3d719}, /* 2.63794=f(0.97000)*/ +{59, 0,123,__LINE__, 0x400550ce, 0x6f25adf0, 0x3fef5c28, 0xf5c28f6b}, /* 2.66445=f(0.98000)*/ +{61, 0,123,__LINE__, 0x400587a5, 0xf064dd04, 0x3fefae14, 0x7ae147bd}, /* 2.69123=f(0.99000)*/ +{62, 0,123,__LINE__, 0x4005bf0a, 0x8b145771, 0x3ff00000, 0x00000007}, /* 2.71828=f(1.00000)*/ +{63, 0,123,__LINE__, 0x4005f6fd, 0xaa3ae58a, 0x3ff028f5, 0xc28f5c30}, /* 2.74560=f(1.01000)*/ +{62, 0,123,__LINE__, 0x40062f80, 0xbc855229, 0x3ff051eb, 0x851eb859}, /* 2.77319=f(1.02000)*/ +{63, 0,123,__LINE__, 0x40066895, 0x344fcdd6, 0x3ff07ae1, 0x47ae1482}, /* 2.80106=f(1.03000)*/ +{63, 0,123,__LINE__, 0x4006a23c, 0x87af69f1, 0x3ff0a3d7, 0x0a3d70ab}, /* 2.82921=f(1.04000)*/ +{63, 0,123,__LINE__, 0x4006dc78, 0x307bac53, 0x3ff0cccc, 0xccccccd4}, /* 2.85765=f(1.05000)*/ +{60, 0,123,__LINE__, 0x40071749, 0xac583b88, 0x3ff0f5c2, 0x8f5c28fd}, /* 2.88637=f(1.06000)*/ +{62, 0,123,__LINE__, 0x400752b2, 0x7cbea3f3, 0x3ff11eb8, 0x51eb8526}, /* 2.91537=f(1.07000)*/ +{63, 0,123,__LINE__, 0x40078eb4, 0x27083613, 0x3ff147ae, 0x147ae14f}, /* 2.94468=f(1.08000)*/ +{62, 0,123,__LINE__, 0x4007cb50, 0x3477fe31, 0x3ff170a3, 0xd70a3d78}, /* 2.97427=f(1.09000)*/ +{63, 0,123,__LINE__, 0x40080888, 0x3244d59c, 0x3ff19999, 0x999999a1}, /* 3.00416=f(1.10000)*/ +{60, 0,123,__LINE__, 0x4008465d, 0xb1a38df8, 0x3ff1c28f, 0x5c28f5ca}, /* 3.03435=f(1.11000)*/ +{61, 0,123,__LINE__, 0x400884d2, 0x47d1367b, 0x3ff1eb85, 0x1eb851f3}, /* 3.06485=f(1.12000)*/ +{64, 0,123,__LINE__, 0x4008c3e7, 0x8e1d7bdc, 0x3ff2147a, 0xe147ae1c}, /* 3.09565=f(1.13000)*/ +{64, 0,123,__LINE__, 0x4009039f, 0x21f522b4, 0x3ff23d70, 0xa3d70a45}, /* 3.12676=f(1.14000)*/ +{64, 0,123,__LINE__, 0x400943fa, 0xa4ec9cfd, 0x3ff26666, 0x6666666e}, /* 3.15819=f(1.15000)*/ +{64, 0,123,__LINE__, 0x400984fb, 0xbccababa, 0x3ff28f5c, 0x28f5c297}, /* 3.18993=f(1.16000)*/ +{61, 0,123,__LINE__, 0x4009c6a4, 0x13937622, 0x3ff2b851, 0xeb851ec0}, /* 3.22199=f(1.17000)*/ +{61, 0,123,__LINE__, 0x400a08f5, 0x5792db9a, 0x3ff2e147, 0xae147ae9}, /* 3.25437=f(1.18000)*/ +{57, 0,123,__LINE__, 0x400a4bf1, 0x3b680dbf, 0x3ff30a3d, 0x70a3d712}, /* 3.28708=f(1.19000)*/ +{62, 0,123,__LINE__, 0x3f5e989f, 0x5d6dff64, 0xc01921fb, 0x54442d18}, /* 0.00186=f(-6.28318)*/ +{62, 0,123,__LINE__, 0x3f8265d4, 0xe92b6b9d, 0xc012d97c, 0x7f3321d2}, /* 0.00898=f(-4.71238)*/ +{63, 0,123,__LINE__, 0x3fa62022, 0x7b598efa, 0xc00921fb, 0x54442d18}, /* 0.04321=f(-3.14159)*/ +{62, 0,123,__LINE__, 0x3fca9bcc, 0x46f767e2, 0xbff921fb, 0x54442d18}, /* 0.20787=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{63, 0,123,__LINE__, 0x40133ded, 0xc855935e, 0x3ff921fb, 0x54442d18}, /* 4.81047=f(1.57079)*/ +{60, 0,123,__LINE__, 0x40372404, 0x6eb09338, 0x400921fb, 0x54442d18}, /* 23.1406=f(3.14159)*/ +{62, 0,123,__LINE__, 0x405bd456, 0x7b97537d, 0x4012d97c, 0x7f3321d2}, /* 111.317=f(4.71238)*/ +{61, 0,123,__LINE__, 0x3d3a56e0, 0xc2ac7f7d, 0xc03e0000, 0x00000000}, /* 9.35762e-14=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x3d6205c5, 0x18d0dcc0, 0xc03c4ccc, 0xcccccccd}, /* 5.12231e-13=f(-28.3000)*/ +{62, 0,123,__LINE__, 0x3d88a9e2, 0x293214d1, 0xc03a9999, 0x9999999a}, /* 2.80393e-12=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x3db0e03b, 0xb495bb53, 0xc038e666, 0x66666667}, /* 1.53486e-11=f(-24.9000)*/ +{62, 0,123,__LINE__, 0x3dd7182e, 0xae519aee, 0xc0373333, 0x33333334}, /* 8.40172e-11=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x3dff9abe, 0x68b14e5f, 0xc0358000, 0x00000001}, /* 4.59906e-10=f(-21.5000)*/ +{63, 0,123,__LINE__, 0x3e25a009, 0xc96ebd17, 0xc033cccc, 0xccccccce}, /* 2.51750e-09=f(-19.8000)*/ +{62, 0,123,__LINE__, 0x3e4d97fe, 0xd98fac4d, 0xc0321999, 0x9999999b}, /* 1.37807e-08=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x3e743fd3, 0x3a226a2a, 0xc0306666, 0x66666668}, /* 7.54346e-08=f(-16.4000)*/ +{63, 0,123,__LINE__, 0x3e9bb5ff, 0x19442356, 0xc02d6666, 0x6666666a}, /* 4.12925e-07=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x3ec2f605, 0x3b981d77, 0xc02a0000, 0x00000004}, /* 2.26033e-06=f(-13.0000)*/ +{62, 0,123,__LINE__, 0x3ee9f2a9, 0xc30dbeaa, 0xc0269999, 0x9999999e}, /* 1.23729e-05=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x3f11c132, 0xd5399ecc, 0xc0233333, 0x33333338}, /* 6.77287e-05=f(-9.60000)*/ +{58, 0,123,__LINE__, 0x3f384c0b, 0x61a858df, 0xc01f9999, 0x999999a3}, /* 0.00037=f(-7.90000)*/ +{63, 0,123,__LINE__, 0x3f60a006, 0x46cbe754, 0xc018cccc, 0xccccccd6}, /* 0.00202=f(-6.20000)*/ +{63, 0,123,__LINE__, 0x3f86c050, 0x4695c3e3, 0xc0120000, 0x00000009}, /* 0.01110=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x3faf227f, 0x1c7c6d42, 0xc0066666, 0x66666678}, /* 0.06081=f(-2.80000)*/ +{64, 0,123,__LINE__, 0x3fd54dc2, 0x84911bc0, 0xbff19999, 0x999999bd}, /* 0.33287=f(-1.10000)*/ +{59, 0,123,__LINE__, 0x3ffd2766, 0x0b11a9af, 0x3fe33333, 0x333332ec}, /* 1.82211=f(0.60000)*/ +{63, 0,123,__LINE__, 0x4023f2c8, 0x0aef881f, 0x40026666, 0x66666654}, /* 9.97418=f(2.30000)*/ +{63, 0,123,__LINE__, 0x404b4c90, 0x2e273a1a, 0x400fffff, 0xffffffee}, /* 54.5981=f(4.00000)*/ +{63, 0,123,__LINE__, 0x4072ade0, 0xdfd62083, 0x4016cccc, 0xccccccc4}, /* 298.867=f(5.70000)*/ +{64, 0,123,__LINE__, 0x40998ff0, 0x0e6ab69c, 0x401d9999, 0x99999991}, /* 1635.98=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40c17da5, 0x774ec645, 0x40223333, 0x3333332f}, /* 8955.29=f(9.10000)*/ +{59, 0,123,__LINE__, 0x40e7ef99, 0xa2e8c3af, 0x40259999, 0x99999995}, /* 49020=f(10.8000)*/ +{64, 0,123,__LINE__, 0x411060c5, 0x2565ba3e, 0x4028ffff, 0xfffffffb}, /* 268337=f(12.5000)*/ +{62, 0,123,__LINE__, 0x413669c0, 0x308d2b75, 0x402c6666, 0x66666661}, /* 1.46886e+06=f(14.2000)*/ +{61, 0,123,__LINE__, 0x415eac09, 0x532f3e04, 0x402fcccc, 0xccccccc7}, /* 8.04049e+06=f(15.9000)*/ +{60, 0,123,__LINE__, 0x4184fcb4, 0x4c4756d8, 0x40319999, 0x99999997}, /* 4.40132e+07=f(17.6000)*/ +{61, 0,123,__LINE__, 0x41acb879, 0xa3e7366b, 0x40334ccc, 0xccccccca}, /* 2.40926e+08=f(19.3000)*/ +{63, 0,123,__LINE__, 0x41d3a6e1, 0xfd9eecc0, 0x4034ffff, 0xfffffffd}, /* 1.31882e+09=f(21.0000)*/ +{60, 0,123,__LINE__, 0x41fae4b2, 0x68df16e7, 0x4036b333, 0x33333330}, /* 7.21913e+09=f(22.7000)*/ +{63, 0,123,__LINE__, 0x422266ce, 0xffa84597, 0x40386666, 0x66666663}, /* 3.95171e+10=f(24.4000)*/ +{64, 0,123,__LINE__, 0x42492ead, 0xfa09870d, 0x403a1999, 0x99999996}, /* 2.16315e+11=f(26.1000)*/ +{60, 0,123,__LINE__, 0x42713b19, 0x1e69fb28, 0x403bcccc, 0xccccccc9}, /* 1.18410e+12=f(27.8000)*/ +{62, 0,123,__LINE__, 0x42979487, 0x9e85b8de, 0x403d7fff, 0xfffffffc}, /* 6.48167e+12=f(29.5000)*/ +0,}; +test_exp(m) {run_vector_1(m,exp_vec,(char *)(exp),"exp","dd"); } diff --git a/newlib/libm/test/expf_vec.c b/newlib/libm/test/expf_vec.c new file mode 100644 index 000000000..256310b8a --- /dev/null +++ b/newlib/libm/test/expf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type expf_vec[] = { +{32, 0,123,__LINE__, 0x3fd346c4, 0x20000000, 0xbff33333, 0x33333333}, /* 0.30119=f(-1.20000)*/ +{32, 0,123,__LINE__, 0x3fd3785c, 0x80000000, 0xbff30a3d, 0x70a3d70a}, /* 0.30422=f(-1.19000)*/ +{32, 0,123,__LINE__, 0x3fd3aa74, 0x80000000, 0xbff2e147, 0xae147ae1}, /* 0.30727=f(-1.18000)*/ +{32, 0,123,__LINE__, 0x3fd3dd0d, 0x60000000, 0xbff2b851, 0xeb851eb8}, /* 0.31036=f(-1.17000)*/ +{32, 0,123,__LINE__, 0x3fd41028, 0x60000000, 0xbff28f5c, 0x28f5c28f}, /* 0.31348=f(-1.16000)*/ +{32, 0,123,__LINE__, 0x3fd443c7, 0x00000000, 0xbff26666, 0x66666666}, /* 0.31663=f(-1.15000)*/ +{32, 0,123,__LINE__, 0x3fd477ea, 0x40000000, 0xbff23d70, 0xa3d70a3d}, /* 0.31981=f(-1.14000)*/ +{32, 0,123,__LINE__, 0x3fd4ac93, 0xa0000000, 0xbff2147a, 0xe147ae14}, /* 0.32303=f(-1.13000)*/ +{32, 0,123,__LINE__, 0x3fd4e1c4, 0x80000000, 0xbff1eb85, 0x1eb851eb}, /* 0.32627=f(-1.12000)*/ +{32, 0,123,__LINE__, 0x3fd5177e, 0x60000000, 0xbff1c28f, 0x5c28f5c2}, /* 0.32955=f(-1.11000)*/ +{32, 0,123,__LINE__, 0x3fd54dc2, 0x60000000, 0xbff19999, 0x99999999}, /* 0.33287=f(-1.10000)*/ +{32, 0,123,__LINE__, 0x3fd58492, 0x20000000, 0xbff170a3, 0xd70a3d70}, /* 0.33621=f(-1.09000)*/ +{32, 0,123,__LINE__, 0x3fd5bbee, 0xe0000000, 0xbff147ae, 0x147ae147}, /* 0.33959=f(-1.08000)*/ +{32, 0,123,__LINE__, 0x3fd5f3da, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 0.34300=f(-1.07000)*/ +{32, 0,123,__LINE__, 0x3fd62c55, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 0.34645=f(-1.06000)*/ +{32, 0,123,__LINE__, 0x3fd66561, 0x60000000, 0xbff0cccc, 0xcccccccc}, /* 0.34993=f(-1.05000)*/ +{32, 0,123,__LINE__, 0x3fd69f00, 0x80000000, 0xbff0a3d7, 0x0a3d70a3}, /* 0.35345=f(-1.04000)*/ +{32, 0,123,__LINE__, 0x3fd6d933, 0xc0000000, 0xbff07ae1, 0x47ae147a}, /* 0.35700=f(-1.03000)*/ +{32, 0,123,__LINE__, 0x3fd713fc, 0xe0000000, 0xbff051eb, 0x851eb851}, /* 0.36059=f(-1.02000)*/ +{32, 0,123,__LINE__, 0x3fd74f5d, 0x20000000, 0xbff028f5, 0xc28f5c28}, /* 0.36421=f(-1.01000)*/ +{32, 0,123,__LINE__, 0x3fd78b56, 0x40000000, 0xbfefffff, 0xfffffffe}, /* 0.36787=f(-0.01000)*/ +{32, 0,123,__LINE__, 0x3fd7c7e9, 0xa0000000, 0xbfefae14, 0x7ae147ac}, /* 0.37157=f(-0.99000)*/ +{32, 0,123,__LINE__, 0x3fd80518, 0xc0000000, 0xbfef5c28, 0xf5c28f5a}, /* 0.37531=f(-0.98000)*/ +{32, 0,123,__LINE__, 0x3fd842e5, 0x80000000, 0xbfef0a3d, 0x70a3d708}, /* 0.37908=f(-0.97000)*/ +{32, 0,123,__LINE__, 0x3fd88151, 0x20000000, 0xbfeeb851, 0xeb851eb6}, /* 0.38289=f(-0.96000)*/ +{32, 0,123,__LINE__, 0x3fd8c05d, 0x80000000, 0xbfee6666, 0x66666664}, /* 0.38674=f(-0.95000)*/ +{32, 0,123,__LINE__, 0x3fd9000c, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 0.39062=f(-0.94000)*/ +{32, 0,123,__LINE__, 0x3fd9405e, 0x40000000, 0xbfedc28f, 0x5c28f5c0}, /* 0.39455=f(-0.93000)*/ +{32, 0,123,__LINE__, 0x3fd98156, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 0.39851=f(-0.92000)*/ +{32, 0,123,__LINE__, 0x3fd9c2f5, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 0.40252=f(-0.91000)*/ +{32, 0,123,__LINE__, 0x3fda053c, 0xc0000000, 0xbfeccccc, 0xccccccca}, /* 0.40656=f(-0.90000)*/ +{32, 0,123,__LINE__, 0x3fda482f, 0x20000000, 0xbfec7ae1, 0x47ae1478}, /* 0.41065=f(-0.89000)*/ +{32, 0,123,__LINE__, 0x3fda8bcd, 0xa0000000, 0xbfec28f5, 0xc28f5c26}, /* 0.41478=f(-0.88000)*/ +{32, 0,123,__LINE__, 0x3fdad01a, 0x20000000, 0xbfebd70a, 0x3d70a3d4}, /* 0.41895=f(-0.87000)*/ +{32, 0,123,__LINE__, 0x3fdb1516, 0x80000000, 0xbfeb851e, 0xb851eb82}, /* 0.42316=f(-0.86000)*/ +{32, 0,123,__LINE__, 0x3fdb5ac4, 0x40000000, 0xbfeb3333, 0x33333330}, /* 0.42741=f(-0.85000)*/ +{32, 0,123,__LINE__, 0x3fdba125, 0x60000000, 0xbfeae147, 0xae147ade}, /* 0.43171=f(-0.84000)*/ +{32, 0,123,__LINE__, 0x3fdbe83b, 0x80000000, 0xbfea8f5c, 0x28f5c28c}, /* 0.43604=f(-0.83000)*/ +{32, 0,123,__LINE__, 0x3fdc3008, 0x20000000, 0xbfea3d70, 0xa3d70a3a}, /* 0.44043=f(-0.82000)*/ +{32, 0,123,__LINE__, 0x3fdc788d, 0xe0000000, 0xbfe9eb85, 0x1eb851e8}, /* 0.44485=f(-0.81000)*/ +{32, 0,123,__LINE__, 0x3fdcc1ce, 0x20000000, 0xbfe99999, 0x99999996}, /* 0.44932=f(-0.80000)*/ +{32, 0,123,__LINE__, 0x3fdd0bcb, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 0.45384=f(-0.79000)*/ +{32, 0,123,__LINE__, 0x3fdd5686, 0x40000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.45840=f(-0.78000)*/ +{32, 0,123,__LINE__, 0x3fdda201, 0xc0000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.46301=f(-0.77000)*/ +{32, 0,123,__LINE__, 0x3fddee3f, 0x60000000, 0xbfe851eb, 0x851eb84e}, /* 0.46766=f(-0.76000)*/ +{32, 0,123,__LINE__, 0x3fde3b41, 0x20000000, 0xbfe7ffff, 0xfffffffc}, /* 0.47236=f(-0.75000)*/ +{32, 0,123,__LINE__, 0x3fde8909, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 0.47711=f(-0.74000)*/ +{32, 0,123,__LINE__, 0x3fded798, 0xc0000000, 0xbfe75c28, 0xf5c28f58}, /* 0.48190=f(-0.73000)*/ +{32, 0,123,__LINE__, 0x3fdf26f2, 0xc0000000, 0xbfe70a3d, 0x70a3d706}, /* 0.48675=f(-0.72000)*/ +{32, 0,123,__LINE__, 0x3fdf7719, 0x40000000, 0xbfe6b851, 0xeb851eb4}, /* 0.49164=f(-0.71000)*/ +{32, 0,123,__LINE__, 0x3fdfc80d, 0xc0000000, 0xbfe66666, 0x66666662}, /* 0.49658=f(-0.70000)*/ +{32, 0,123,__LINE__, 0x3fe00ce9, 0x40000000, 0xbfe6147a, 0xe147ae10}, /* 0.50157=f(-0.69000)*/ +{32, 0,123,__LINE__, 0x3fe03634, 0xe0000000, 0xbfe5c28f, 0x5c28f5be}, /* 0.50661=f(-0.68000)*/ +{32, 0,123,__LINE__, 0x3fe05fea, 0xa0000000, 0xbfe570a3, 0xd70a3d6c}, /* 0.51170=f(-0.67000)*/ +{32, 0,123,__LINE__, 0x3fe08a0b, 0xc0000000, 0xbfe51eb8, 0x51eb851a}, /* 0.51685=f(-0.66000)*/ +{32, 0,123,__LINE__, 0x3fe0b499, 0x60000000, 0xbfe4cccc, 0xccccccc8}, /* 0.52204=f(-0.65000)*/ +{32, 0,123,__LINE__, 0x3fe0df94, 0x60000000, 0xbfe47ae1, 0x47ae1476}, /* 0.52729=f(-0.64000)*/ +{32, 0,123,__LINE__, 0x3fe10afe, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 0.53259=f(-0.63000)*/ +{32, 0,123,__LINE__, 0x3fe136d7, 0x40000000, 0xbfe3d70a, 0x3d70a3d2}, /* 0.53794=f(-0.62000)*/ +{32, 0,123,__LINE__, 0x3fe16321, 0x60000000, 0xbfe3851e, 0xb851eb80}, /* 0.54335=f(-0.61000)*/ +{32, 0,123,__LINE__, 0x3fe18fdd, 0x60000000, 0xbfe33333, 0x3333332e}, /* 0.54881=f(-0.60000)*/ +{32, 0,123,__LINE__, 0x3fe1bd0c, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* 0.55432=f(-0.59000)*/ +{32, 0,123,__LINE__, 0x3fe1eab0, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 0.55989=f(-0.58000)*/ +{32, 0,123,__LINE__, 0x3fe218c8, 0xe0000000, 0xbfe23d70, 0xa3d70a38}, /* 0.56552=f(-0.57000)*/ +{32, 0,123,__LINE__, 0x3fe24758, 0x40000000, 0xbfe1eb85, 0x1eb851e6}, /* 0.57120=f(-0.56000)*/ +{32, 0,123,__LINE__, 0x3fe2765f, 0x60000000, 0xbfe19999, 0x99999994}, /* 0.57694=f(-0.55000)*/ +{32, 0,123,__LINE__, 0x3fe2a5df, 0xa0000000, 0xbfe147ae, 0x147ae142}, /* 0.58274=f(-0.54000)*/ +{32, 0,123,__LINE__, 0x3fe2d5da, 0x20000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.58860=f(-0.53000)*/ +{32, 0,123,__LINE__, 0x3fe30650, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 0.59452=f(-0.52000)*/ +{32, 0,123,__LINE__, 0x3fe33742, 0x80000000, 0xbfe051eb, 0x851eb84c}, /* 0.60049=f(-0.51000)*/ +{32, 0,123,__LINE__, 0x3fe368b3, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 0.60653=f(-0.50000)*/ +{32, 0,123,__LINE__, 0x3fe39aa2, 0xa0000000, 0xbfdf5c28, 0xf5c28f50}, /* 0.61262=f(-0.49000)*/ +{32, 0,123,__LINE__, 0x3fe3cd12, 0xe0000000, 0xbfdeb851, 0xeb851eac}, /* 0.61878=f(-0.48000)*/ +{32, 0,123,__LINE__, 0x3fe40004, 0xc0000000, 0xbfde147a, 0xe147ae08}, /* 0.62500=f(-0.47000)*/ +{32, 0,123,__LINE__, 0x3fe43379, 0xc0000000, 0xbfdd70a3, 0xd70a3d64}, /* 0.63128=f(-0.46000)*/ +{32, 0,123,__LINE__, 0x3fe46773, 0x20000000, 0xbfdccccc, 0xccccccc0}, /* 0.63762=f(-0.45000)*/ +{32, 0,123,__LINE__, 0x3fe49bf2, 0x40000000, 0xbfdc28f5, 0xc28f5c1c}, /* 0.64403=f(-0.44000)*/ +{32, 0,123,__LINE__, 0x3fe4d0f8, 0x60000000, 0xbfdb851e, 0xb851eb78}, /* 0.65050=f(-0.43000)*/ +{32, 0,123,__LINE__, 0x3fe50687, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 0.65704=f(-0.42000)*/ +{32, 0,123,__LINE__, 0x3fe53c9f, 0x60000000, 0xbfda3d70, 0xa3d70a30}, /* 0.66365=f(-0.41000)*/ +{32, 0,123,__LINE__, 0x3fe57343, 0x00000000, 0xbfd99999, 0x9999998c}, /* 0.67032=f(-0.40000)*/ +{32, 0,123,__LINE__, 0x3fe5aa73, 0x20000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.67705=f(-0.39000)*/ +{32, 0,123,__LINE__, 0x3fe5e231, 0x60000000, 0xbfd851eb, 0x851eb844}, /* 0.68386=f(-0.38000)*/ +{32, 0,123,__LINE__, 0x3fe61a7e, 0xe0000000, 0xbfd7ae14, 0x7ae147a0}, /* 0.69073=f(-0.37000)*/ +{32, 0,123,__LINE__, 0x3fe6535d, 0x40000000, 0xbfd70a3d, 0x70a3d6fc}, /* 0.69767=f(-0.36000)*/ +{32, 0,123,__LINE__, 0x3fe68cce, 0x20000000, 0xbfd66666, 0x66666658}, /* 0.70468=f(-0.35000)*/ +{32, 0,123,__LINE__, 0x3fe6c6d2, 0x80000000, 0xbfd5c28f, 0x5c28f5b4}, /* 0.71177=f(-0.34000)*/ +{32, 0,123,__LINE__, 0x3fe7016c, 0x40000000, 0xbfd51eb8, 0x51eb8510}, /* 0.71892=f(-0.33000)*/ +{32, 0,123,__LINE__, 0x3fe73c9c, 0xe0000000, 0xbfd47ae1, 0x47ae146c}, /* 0.72614=f(-0.32000)*/ +{32, 0,123,__LINE__, 0x3fe77865, 0xc0000000, 0xbfd3d70a, 0x3d70a3c8}, /* 0.73344=f(-0.31000)*/ +{32, 0,123,__LINE__, 0x3fe7b4c8, 0x60000000, 0xbfd33333, 0x33333324}, /* 0.74081=f(-0.30000)*/ +{32, 0,123,__LINE__, 0x3fe7f1c6, 0x60000000, 0xbfd28f5c, 0x28f5c280}, /* 0.74826=f(-0.29000)*/ +{32, 0,123,__LINE__, 0x3fe82f61, 0x60000000, 0xbfd1eb85, 0x1eb851dc}, /* 0.75578=f(-0.28000)*/ +{32, 0,123,__LINE__, 0x3fe86d9a, 0xc0000000, 0xbfd147ae, 0x147ae138}, /* 0.76337=f(-0.27000)*/ +{32, 0,123,__LINE__, 0x3fe8ac74, 0x60000000, 0xbfd0a3d7, 0x0a3d7094}, /* 0.77105=f(-0.26000)*/ +{32, 0,123,__LINE__, 0x3fe8ebef, 0xa0000000, 0xbfcfffff, 0xffffffe0}, /* 0.77880=f(-0.25000)*/ +{32, 0,123,__LINE__, 0x3fe92c0e, 0x40000000, 0xbfceb851, 0xeb851e98}, /* 0.78662=f(-0.24000)*/ +{32, 0,123,__LINE__, 0x3fe96cd1, 0xc0000000, 0xbfcd70a3, 0xd70a3d50}, /* 0.79453=f(-0.23000)*/ +{32, 0,123,__LINE__, 0x3fe9ae3c, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 0.80251=f(-0.22000)*/ +{32, 0,123,__LINE__, 0x3fe9f04e, 0x80000000, 0xbfcae147, 0xae147ac0}, /* 0.81058=f(-0.21000)*/ +{32, 0,123,__LINE__, 0x3fea330a, 0xe0000000, 0xbfc99999, 0x99999978}, /* 0.81873=f(-0.20000)*/ +{32, 0,123,__LINE__, 0x3fea7673, 0x20000000, 0xbfc851eb, 0x851eb830}, /* 0.82695=f(-0.19000)*/ +{32, 0,123,__LINE__, 0x3feaba88, 0xa0000000, 0xbfc70a3d, 0x70a3d6e8}, /* 0.83527=f(-0.18000)*/ +{32, 0,123,__LINE__, 0x3feaff4d, 0x80000000, 0xbfc5c28f, 0x5c28f5a0}, /* 0.84366=f(-0.17000)*/ +{32, 0,123,__LINE__, 0x3feb44c3, 0x20000000, 0xbfc47ae1, 0x47ae1458}, /* 0.85214=f(-0.16000)*/ +{32, 0,123,__LINE__, 0x3feb8aeb, 0x80000000, 0xbfc33333, 0x33333310}, /* 0.86070=f(-0.15000)*/ +{32, 0,123,__LINE__, 0x3febd1c8, 0x80000000, 0xbfc1eb85, 0x1eb851c8}, /* 0.86935=f(-0.14000)*/ +{32, 0,123,__LINE__, 0x3fec195b, 0xa0000000, 0xbfc0a3d7, 0x0a3d7080}, /* 0.87809=f(-0.13000)*/ +{32, 0,123,__LINE__, 0x3fec61a7, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 0.88692=f(-0.12000)*/ +{32, 0,123,__LINE__, 0x3fecaaac, 0x60000000, 0xbfbc28f5, 0xc28f5be2}, /* 0.89583=f(-0.11000)*/ +{32, 0,123,__LINE__, 0x3fecf46d, 0xa0000000, 0xbfb99999, 0x99999953}, /* 0.90483=f(-0.00100)*/ +{32, 0,123,__LINE__, 0x3fed3eec, 0xa0000000, 0xbfb70a3d, 0x70a3d6c4}, /* 0.91393=f(-0.09000)*/ +{32, 0,123,__LINE__, 0x3fed8a2b, 0x60000000, 0xbfb47ae1, 0x47ae1435}, /* 0.92311=f(-0.08000)*/ +{32, 0,123,__LINE__, 0x3fedd62b, 0xa0000000, 0xbfb1eb85, 0x1eb851a6}, /* 0.93239=f(-0.07000)*/ +{32, 0,123,__LINE__, 0x3fee22ef, 0x80000000, 0xbfaeb851, 0xeb851e2d}, /* 0.94176=f(-0.06000)*/ +{32, 0,123,__LINE__, 0x3fee7078, 0xc0000000, 0xbfa99999, 0x9999990e}, /* 0.95122=f(-0.05000)*/ +{32, 0,123,__LINE__, 0x3feebec9, 0x80000000, 0xbfa47ae1, 0x47ae13ef}, /* 0.96078=f(-0.04000)*/ +{32, 0,123,__LINE__, 0x3fef0de3, 0xc0000000, 0xbf9eb851, 0xeb851da0}, /* 0.97044=f(-0.03000)*/ +{32, 0,123,__LINE__, 0x3fef5dc9, 0xa0000000, 0xbf947ae1, 0x47ae1362}, /* 0.98019=f(-0.02000)*/ +{32, 0,123,__LINE__, 0x3fefae7d, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 0.99004=f(-0.00010)*/ +{32, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{32, 0,123,__LINE__, 0x3ff0292a, 0x60000000, 0x3f847ae1, 0x47ae16ad}, /* 1.01005=f(0.01000)*/ +{32, 0,123,__LINE__, 0x3ff052be, 0xa0000000, 0x3f947ae1, 0x47ae1594}, /* 1.02020=f(0.02000)*/ +{32, 0,123,__LINE__, 0x3ff07cbd, 0xe0000000, 0x3f9eb851, 0xeb851fd2}, /* 1.03045=f(0.03000)*/ +{32, 0,123,__LINE__, 0x3ff0a729, 0x40000000, 0x3fa47ae1, 0x47ae1508}, /* 1.04081=f(0.04000)*/ +{32, 0,123,__LINE__, 0x3ff0d201, 0xa0000000, 0x3fa99999, 0x99999a27}, /* 1.05127=f(0.05000)*/ +{32, 0,123,__LINE__, 0x3ff0fd48, 0x40000000, 0x3faeb851, 0xeb851f46}, /* 1.06183=f(0.06000)*/ +{32, 0,123,__LINE__, 0x3ff128fe, 0x40000000, 0x3fb1eb85, 0x1eb85232}, /* 1.07250=f(0.07000)*/ +{32, 0,123,__LINE__, 0x3ff15524, 0xc0000000, 0x3fb47ae1, 0x47ae14c1}, /* 1.08328=f(0.08000)*/ +{32, 0,123,__LINE__, 0x3ff181bc, 0xe0000000, 0x3fb70a3d, 0x70a3d750}, /* 1.09417=f(0.09000)*/ +{32, 0,123,__LINE__, 0x3ff1aec7, 0xc0000000, 0x3fb99999, 0x999999df}, /* 1.10517=f(0.10000)*/ +{32, 0,123,__LINE__, 0x3ff1dc46, 0x60000000, 0x3fbc28f5, 0xc28f5c6e}, /* 1.11627=f(0.11000)*/ +{32, 0,123,__LINE__, 0x3ff20a3a, 0x20000000, 0x3fbeb851, 0xeb851efd}, /* 1.12749=f(0.12000)*/ +{32, 0,123,__LINE__, 0x3ff238a4, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.13882=f(0.13000)*/ +{32, 0,123,__LINE__, 0x3ff26785, 0x80000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.15027=f(0.14000)*/ +{32, 0,123,__LINE__, 0x3ff296df, 0x80000000, 0x3fc33333, 0x33333356}, /* 1.16183=f(0.15000)*/ +{32, 0,123,__LINE__, 0x3ff2c6b3, 0x40000000, 0x3fc47ae1, 0x47ae149e}, /* 1.17351=f(0.16000)*/ +{32, 0,123,__LINE__, 0x3ff2f702, 0x20000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.18530=f(0.17000)*/ +{32, 0,123,__LINE__, 0x3ff327cd, 0x60000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.19721=f(0.18000)*/ +{32, 0,123,__LINE__, 0x3ff35916, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 1.20924=f(0.19000)*/ +{32, 0,123,__LINE__, 0x3ff38add, 0xa0000000, 0x3fc99999, 0x999999be}, /* 1.22140=f(0.20000)*/ +{32, 0,123,__LINE__, 0x3ff3bd25, 0x20000000, 0x3fcae147, 0xae147b06}, /* 1.23367=f(0.21000)*/ +{32, 0,123,__LINE__, 0x3ff3efee, 0x20000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.24607=f(0.22000)*/ +{32, 0,123,__LINE__, 0x3ff42339, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.25860=f(0.23000)*/ +{32, 0,123,__LINE__, 0x3ff45709, 0x40000000, 0x3fceb851, 0xeb851ede}, /* 1.27124=f(0.24000)*/ +{32, 0,123,__LINE__, 0x3ff48b5e, 0x20000000, 0x3fd00000, 0x00000013}, /* 1.28402=f(0.25000)*/ +{32, 0,123,__LINE__, 0x3ff4c039, 0xc0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.29693=f(0.26000)*/ +{32, 0,123,__LINE__, 0x3ff4f59d, 0x60000000, 0x3fd147ae, 0x147ae15b}, /* 1.30996=f(0.27000)*/ +{32, 0,123,__LINE__, 0x3ff52b8a, 0x40000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.32313=f(0.28000)*/ +{32, 0,123,__LINE__, 0x3ff56201, 0xe0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.33642=f(0.29000)*/ +{32, 0,123,__LINE__, 0x3ff59905, 0xa0000000, 0x3fd33333, 0x33333347}, /* 1.34985=f(0.30000)*/ +{32, 0,123,__LINE__, 0x3ff5d096, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.36342=f(0.31000)*/ +{32, 0,123,__LINE__, 0x3ff608b7, 0x20000000, 0x3fd47ae1, 0x47ae148f}, /* 1.37712=f(0.32000)*/ +{32, 0,123,__LINE__, 0x3ff64167, 0xe0000000, 0x3fd51eb8, 0x51eb8533}, /* 1.39096=f(0.33000)*/ +{32, 0,123,__LINE__, 0x3ff67aaa, 0x60000000, 0x3fd5c28f, 0x5c28f5d7}, /* 1.40494=f(0.34000)*/ +{32, 0,123,__LINE__, 0x3ff6b480, 0x20000000, 0x3fd66666, 0x6666667b}, /* 1.41906=f(0.35000)*/ +{32, 0,123,__LINE__, 0x3ff6eeea, 0xe0000000, 0x3fd70a3d, 0x70a3d71f}, /* 1.43332=f(0.36000)*/ +{32, 0,123,__LINE__, 0x3ff729eb, 0xc0000000, 0x3fd7ae14, 0x7ae147c3}, /* 1.44773=f(0.37000)*/ +{32, 0,123,__LINE__, 0x3ff76584, 0x80000000, 0x3fd851eb, 0x851eb867}, /* 1.46228=f(0.38000)*/ +{32, 0,123,__LINE__, 0x3ff7a1b6, 0xa0000000, 0x3fd8f5c2, 0x8f5c290b}, /* 1.47698=f(0.39000)*/ +{32, 0,123,__LINE__, 0x3ff7de83, 0xa0000000, 0x3fd99999, 0x999999af}, /* 1.49182=f(0.40000)*/ +{32, 0,123,__LINE__, 0x3ff81bed, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 1.50681=f(0.41000)*/ +{32, 0,123,__LINE__, 0x3ff859f4, 0x60000000, 0x3fdae147, 0xae147af7}, /* 1.52196=f(0.42000)*/ +{32, 0,123,__LINE__, 0x3ff8989b, 0x60000000, 0x3fdb851e, 0xb851eb9b}, /* 1.53725=f(0.43000)*/ +{32, 0,123,__LINE__, 0x3ff8d7e3, 0x80000000, 0x3fdc28f5, 0xc28f5c3f}, /* 1.55270=f(0.44000)*/ +{32, 0,123,__LINE__, 0x3ff917ce, 0x80000000, 0x3fdccccc, 0xcccccce3}, /* 1.56831=f(0.45000)*/ +{32, 0,123,__LINE__, 0x3ff9585e, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 1.58407=f(0.46000)*/ +{32, 0,123,__LINE__, 0x3ff99993, 0x80000000, 0x3fde147a, 0xe147ae2b}, /* 1.59999=f(0.47000)*/ +{32, 0,123,__LINE__, 0x3ff9db70, 0xe0000000, 0x3fdeb851, 0xeb851ecf}, /* 1.61607=f(0.48000)*/ +{32, 0,123,__LINE__, 0x3ffa1df7, 0xa0000000, 0x3fdf5c28, 0xf5c28f73}, /* 1.63231=f(0.49000)*/ +{32, 0,123,__LINE__, 0x3ffa6129, 0x80000000, 0x3fe00000, 0x0000000b}, /* 1.64872=f(0.50000)*/ +{32, 0,123,__LINE__, 0x3ffaa508, 0x60000000, 0x3fe051eb, 0x851eb85d}, /* 1.66529=f(0.51000)*/ +{32, 0,123,__LINE__, 0x3ffae995, 0xe0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 1.68202=f(0.52000)*/ +{32, 0,123,__LINE__, 0x3ffb2ed3, 0xa0000000, 0x3fe0f5c2, 0x8f5c2901}, /* 1.69893=f(0.53000)*/ +{32, 0,123,__LINE__, 0x3ffb74c3, 0xa0000000, 0x3fe147ae, 0x147ae153}, /* 1.71600=f(0.54000)*/ +{32, 0,123,__LINE__, 0x3ffbbb67, 0xa0000000, 0x3fe19999, 0x999999a5}, /* 1.73325=f(0.55000)*/ +{32, 0,123,__LINE__, 0x3ffc02c1, 0x40000000, 0x3fe1eb85, 0x1eb851f7}, /* 1.75067=f(0.56000)*/ +{32, 0,123,__LINE__, 0x3ffc4ad2, 0x60000000, 0x3fe23d70, 0xa3d70a49}, /* 1.76826=f(0.57000)*/ +{32, 0,123,__LINE__, 0x3ffc939d, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 1.78603=f(0.58000)*/ +{32, 0,123,__LINE__, 0x3ffcdd22, 0xe0000000, 0x3fe2e147, 0xae147aed}, /* 1.80398=f(0.59000)*/ +{32, 0,123,__LINE__, 0x3ffd2766, 0x20000000, 0x3fe33333, 0x3333333f}, /* 1.82211=f(0.60000)*/ +{32, 0,123,__LINE__, 0x3ffd7268, 0x40000000, 0x3fe3851e, 0xb851eb91}, /* 1.84043=f(0.61000)*/ +{32, 0,123,__LINE__, 0x3ffdbe2b, 0x60000000, 0x3fe3d70a, 0x3d70a3e3}, /* 1.85892=f(0.62000)*/ +{32, 0,123,__LINE__, 0x3ffe0ab1, 0x60000000, 0x3fe428f5, 0xc28f5c35}, /* 1.87761=f(0.63000)*/ +{32, 0,123,__LINE__, 0x3ffe57fc, 0x60000000, 0x3fe47ae1, 0x47ae1487}, /* 1.89648=f(0.64000)*/ +{32, 0,123,__LINE__, 0x3ffea60e, 0x20000000, 0x3fe4cccc, 0xccccccd9}, /* 1.91554=f(0.65000)*/ +{32, 0,123,__LINE__, 0x3ffef4e8, 0xe0000000, 0x3fe51eb8, 0x51eb852b}, /* 1.93479=f(0.66000)*/ +{32, 0,123,__LINE__, 0x3fff448e, 0x60000000, 0x3fe570a3, 0xd70a3d7d}, /* 1.95423=f(0.67000)*/ +{32, 0,123,__LINE__, 0x3fff9500, 0xc0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 1.97387=f(0.68000)*/ +{32, 0,123,__LINE__, 0x3fffe642, 0x40000000, 0x3fe6147a, 0xe147ae21}, /* 1.99371=f(0.69000)*/ +{32, 0,123,__LINE__, 0x40001c2a, 0x60000000, 0x3fe66666, 0x66666673}, /* 2.01375=f(0.70000)*/ +{32, 0,123,__LINE__, 0x4000459d, 0x20000000, 0x3fe6b851, 0xeb851ec5}, /* 2.03399=f(0.71000)*/ +{32, 0,123,__LINE__, 0x40006f7a, 0xc0000000, 0x3fe70a3d, 0x70a3d717}, /* 2.05443=f(0.72000)*/ +{32, 0,123,__LINE__, 0x400099c3, 0xe0000000, 0x3fe75c28, 0xf5c28f69}, /* 2.07508=f(0.73000)*/ +{32, 0,123,__LINE__, 0x4000c479, 0xc0000000, 0x3fe7ae14, 0x7ae147bb}, /* 2.09593=f(0.74000)*/ +{32, 0,123,__LINE__, 0x4000ef9d, 0xa0000000, 0x3fe80000, 0x0000000d}, /* 2.11700=f(0.75000)*/ +{32, 0,123,__LINE__, 0x40011b30, 0x80000000, 0x3fe851eb, 0x851eb85f}, /* 2.13827=f(0.76000)*/ +{32, 0,123,__LINE__, 0x40014733, 0x60000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 2.15976=f(0.77000)*/ +{32, 0,123,__LINE__, 0x400173a7, 0xc0000000, 0x3fe8f5c2, 0x8f5c2903}, /* 2.18147=f(0.78000)*/ +{32, 0,123,__LINE__, 0x4001a08e, 0x60000000, 0x3fe947ae, 0x147ae155}, /* 2.20339=f(0.79000)*/ +{32, 0,123,__LINE__, 0x4001cde8, 0x80000000, 0x3fe99999, 0x999999a7}, /* 2.22554=f(0.80000)*/ +{32, 0,123,__LINE__, 0x4001fbb7, 0x40000000, 0x3fe9eb85, 0x1eb851f9}, /* 2.24790=f(0.81000)*/ +{32, 0,123,__LINE__, 0x400229fb, 0xe0000000, 0x3fea3d70, 0xa3d70a4b}, /* 2.27050=f(0.82000)*/ +{32, 0,123,__LINE__, 0x400258b7, 0x60000000, 0x3fea8f5c, 0x28f5c29d}, /* 2.29331=f(0.83000)*/ +{32, 0,123,__LINE__, 0x400287eb, 0x40000000, 0x3feae147, 0xae147aef}, /* 2.31636=f(0.84000)*/ +{32, 0,123,__LINE__, 0x4002b798, 0xc0000000, 0x3feb3333, 0x33333341}, /* 2.33964=f(0.85000)*/ +{32, 0,123,__LINE__, 0x4002e7c0, 0xc0000000, 0x3feb851e, 0xb851eb93}, /* 2.36316=f(0.86000)*/ +{32, 0,123,__LINE__, 0x40031864, 0xc0000000, 0x3febd70a, 0x3d70a3e5}, /* 2.38691=f(0.87000)*/ +{32, 0,123,__LINE__, 0x40034985, 0xc0000000, 0x3fec28f5, 0xc28f5c37}, /* 2.41090=f(0.88000)*/ +{32, 0,123,__LINE__, 0x40037b25, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 2.43513=f(0.89000)*/ +{32, 0,123,__LINE__, 0x4003ad44, 0x60000000, 0x3feccccc, 0xccccccdb}, /* 2.45960=f(0.90000)*/ +{32, 0,123,__LINE__, 0x4003dfe4, 0x80000000, 0x3fed1eb8, 0x51eb852d}, /* 2.48432=f(0.91000)*/ +{32, 0,123,__LINE__, 0x40041306, 0xc0000000, 0x3fed70a3, 0xd70a3d7f}, /* 2.50929=f(0.92000)*/ +{32, 0,123,__LINE__, 0x400446ac, 0xc0000000, 0x3fedc28f, 0x5c28f5d1}, /* 2.53450=f(0.93000)*/ +{32, 0,123,__LINE__, 0x40047ad7, 0x80000000, 0x3fee147a, 0xe147ae23}, /* 2.55998=f(0.94000)*/ +{32, 0,123,__LINE__, 0x4004af88, 0x80000000, 0x3fee6666, 0x66666675}, /* 2.58571=f(0.95000)*/ +{32, 0,123,__LINE__, 0x4004e4c1, 0x20000000, 0x3feeb851, 0xeb851ec7}, /* 2.61169=f(0.96000)*/ +{32, 0,123,__LINE__, 0x40051a82, 0xa0000000, 0x3fef0a3d, 0x70a3d719}, /* 2.63794=f(0.97000)*/ +{32, 0,123,__LINE__, 0x400550ce, 0x80000000, 0x3fef5c28, 0xf5c28f6b}, /* 2.66445=f(0.98000)*/ +{32, 0,123,__LINE__, 0x400587a6, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 2.69123=f(0.99000)*/ +{32, 0,123,__LINE__, 0x4005bf0a, 0x80000000, 0x3ff00000, 0x00000007}, /* 2.71828=f(1.00000)*/ +{32, 0,123,__LINE__, 0x4005f6fd, 0xa0000000, 0x3ff028f5, 0xc28f5c30}, /* 2.74560=f(1.01000)*/ +{32, 0,123,__LINE__, 0x40062f80, 0xc0000000, 0x3ff051eb, 0x851eb859}, /* 2.77319=f(1.02000)*/ +{32, 0,123,__LINE__, 0x40066895, 0x20000000, 0x3ff07ae1, 0x47ae1482}, /* 2.80106=f(1.03000)*/ +{32, 0,123,__LINE__, 0x4006a23c, 0x80000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 2.82921=f(1.04000)*/ +{32, 0,123,__LINE__, 0x4006dc78, 0x20000000, 0x3ff0cccc, 0xccccccd4}, /* 2.85765=f(1.05000)*/ +{32, 0,123,__LINE__, 0x40071749, 0xa0000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 2.88637=f(1.06000)*/ +{32, 0,123,__LINE__, 0x400752b2, 0x80000000, 0x3ff11eb8, 0x51eb8526}, /* 2.91538=f(1.07000)*/ +{32, 0,123,__LINE__, 0x40078eb4, 0x40000000, 0x3ff147ae, 0x147ae14f}, /* 2.94468=f(1.08000)*/ +{32, 0,123,__LINE__, 0x4007cb50, 0x60000000, 0x3ff170a3, 0xd70a3d78}, /* 2.97427=f(1.09000)*/ +{32, 0,123,__LINE__, 0x40080888, 0x40000000, 0x3ff19999, 0x999999a1}, /* 3.00416=f(1.10000)*/ +{32, 0,123,__LINE__, 0x4008465d, 0xc0000000, 0x3ff1c28f, 0x5c28f5ca}, /* 3.03435=f(1.11000)*/ +{32, 0,123,__LINE__, 0x400884d2, 0x60000000, 0x3ff1eb85, 0x1eb851f3}, /* 3.06485=f(1.12000)*/ +{32, 0,123,__LINE__, 0x4008c3e7, 0xa0000000, 0x3ff2147a, 0xe147ae1c}, /* 3.09565=f(1.13000)*/ +{32, 0,123,__LINE__, 0x4009039f, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 3.12676=f(1.14000)*/ +{32, 0,123,__LINE__, 0x400943fa, 0x80000000, 0x3ff26666, 0x6666666e}, /* 3.15819=f(1.15000)*/ +{32, 0,123,__LINE__, 0x400984fb, 0xa0000000, 0x3ff28f5c, 0x28f5c297}, /* 3.18993=f(1.16000)*/ +{32, 0,123,__LINE__, 0x4009c6a4, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 3.22199=f(1.17000)*/ +{32, 0,123,__LINE__, 0x400a08f5, 0x40000000, 0x3ff2e147, 0xae147ae9}, /* 3.25437=f(1.18000)*/ +{32, 0,123,__LINE__, 0x400a4bf1, 0x40000000, 0x3ff30a3d, 0x70a3d712}, /* 3.28708=f(1.19000)*/ +{32, 0,123,__LINE__, 0x3f5e989f, 0xa0000000, 0xc01921fb, 0x54442d18}, /* 0.00186=f(-6.28318)*/ +{32, 0,123,__LINE__, 0x3f8265d5, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 0.00898=f(-4.71238)*/ +{32, 0,123,__LINE__, 0x3fa62022, 0xa0000000, 0xc00921fb, 0x54442d18}, /* 0.04321=f(-3.14159)*/ +{32, 0,123,__LINE__, 0x3fca9bcc, 0x60000000, 0xbff921fb, 0x54442d18}, /* 0.20787=f(-1.57079)*/ +{32, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{32, 0,123,__LINE__, 0x40133ded, 0xc0000000, 0x3ff921fb, 0x54442d18}, /* 4.81047=f(1.57079)*/ +{32, 0,123,__LINE__, 0x40372404, 0x60000000, 0x400921fb, 0x54442d18}, /* 23.1406=f(3.14159)*/ +{32, 0,123,__LINE__, 0x405bd456, 0x60000000, 0x4012d97c, 0x7f3321d2}, /* 111.317=f(4.71238)*/ +{32, 0,123,__LINE__, 0x3d3a56e2, 0xe0000000, 0xc03e0000, 0x00000000}, /* 9.35763e-14=f(-30.0000)*/ +{32, 0,123,__LINE__, 0x3d6205c4, 0xe0000000, 0xc03c4ccc, 0xcccccccd}, /* 5.12231e-13=f(-28.3000)*/ +{32, 0,123,__LINE__, 0x3d88a9df, 0x80000000, 0xc03a9999, 0x9999999a}, /* 2.80392e-12=f(-26.6000)*/ +{32, 0,123,__LINE__, 0x3db0e03b, 0x40000000, 0xc038e666, 0x66666667}, /* 1.53485e-11=f(-24.9000)*/ +{32, 0,123,__LINE__, 0x3dd7182b, 0xe0000000, 0xc0373333, 0x33333334}, /* 8.40170e-11=f(-23.2000)*/ +{32, 0,123,__LINE__, 0x3dff9abf, 0xc0000000, 0xc0358000, 0x00000001}, /* 4.59906e-10=f(-21.5000)*/ +{32, 0,123,__LINE__, 0x3e25a00a, 0x80000000, 0xc033cccc, 0xccccccce}, /* 2.51750e-09=f(-19.8000)*/ +{32, 0,123,__LINE__, 0x3e4d97fd, 0x40000000, 0xc0321999, 0x9999999b}, /* 1.37806e-08=f(-18.1000)*/ +{32, 0,123,__LINE__, 0x3e743fd3, 0xa0000000, 0xc0306666, 0x66666668}, /* 7.54346e-08=f(-16.4000)*/ +{32, 0,123,__LINE__, 0x3e9bb5ff, 0x80000000, 0xc02d6666, 0x6666666a}, /* 4.12925e-07=f(-14.7000)*/ +{32, 0,123,__LINE__, 0x3ec2f605, 0x60000000, 0xc02a0000, 0x00000004}, /* 2.26033e-06=f(-13.0000)*/ +{32, 0,123,__LINE__, 0x3ee9f2a9, 0xc0000000, 0xc0269999, 0x9999999e}, /* 1.23729e-05=f(-11.3000)*/ +{32, 0,123,__LINE__, 0x3f11c132, 0xa0000000, 0xc0233333, 0x33333338}, /* 6.77287e-05=f(-9.60000)*/ +{32, 0,123,__LINE__, 0x3f384c0a, 0xe0000000, 0xc01f9999, 0x999999a3}, /* 0.00037=f(-7.90000)*/ +{32, 0,123,__LINE__, 0x3f60a006, 0xa0000000, 0xc018cccc, 0xccccccd6}, /* 0.00202=f(-6.20000)*/ +{32, 0,123,__LINE__, 0x3f86c050, 0x00000000, 0xc0120000, 0x00000009}, /* 0.01110=f(-4.50000)*/ +{32, 0,123,__LINE__, 0x3faf227f, 0x40000000, 0xc0066666, 0x66666678}, /* 0.06081=f(-2.80000)*/ +{32, 0,123,__LINE__, 0x3fd54dc2, 0x60000000, 0xbff19999, 0x999999bd}, /* 0.33287=f(-1.10000)*/ +{32, 0,123,__LINE__, 0x3ffd2766, 0x20000000, 0x3fe33333, 0x333332ec}, /* 1.82211=f(0.60000)*/ +{32, 0,123,__LINE__, 0x4023f2c7, 0xe0000000, 0x40026666, 0x66666654}, /* 9.97418=f(2.30000)*/ +{32, 0,123,__LINE__, 0x404b4c90, 0x20000000, 0x400fffff, 0xffffffee}, /* 54.5981=f(4.00000)*/ +{32, 0,123,__LINE__, 0x4072ade0, 0x40000000, 0x4016cccc, 0xccccccc4}, /* 298.867=f(5.70000)*/ +{32, 0,123,__LINE__, 0x40998ff0, 0x20000000, 0x401d9999, 0x99999991}, /* 1635.98=f(7.40000)*/ +{32, 0,123,__LINE__, 0x40c17da6, 0x20000000, 0x40223333, 0x3333332f}, /* 8955.29=f(9.10000)*/ +{32, 0,123,__LINE__, 0x40e7ef9a, 0x80000000, 0x40259999, 0x99999995}, /* 49020=f(10.8000)*/ +{32, 0,123,__LINE__, 0x411060c4, 0xe0000000, 0x4028ffff, 0xfffffffb}, /* 268337=f(12.5000)*/ +{32, 0,123,__LINE__, 0x413669bf, 0xa0000000, 0x402c6666, 0x66666661}, /* 1.46886e+06=f(14.2000)*/ +{32, 0,123,__LINE__, 0x415eac08, 0x40000000, 0x402fcccc, 0xccccccc7}, /* 8.04048e+06=f(15.9000)*/ +{32, 0,123,__LINE__, 0x4184fcb5, 0x40000000, 0x40319999, 0x99999997}, /* 4.40132e+07=f(17.6000)*/ +{32, 0,123,__LINE__, 0x41acb878, 0x40000000, 0x40334ccc, 0xccccccca}, /* 2.40926e+08=f(19.3000)*/ +{32, 0,123,__LINE__, 0x41d3a6e2, 0x80000000, 0x4034ffff, 0xfffffffd}, /* 1.31882e+09=f(21.0000)*/ +{32, 0,123,__LINE__, 0x41fae4b5, 0x60000000, 0x4036b333, 0x33333330}, /* 7.21914e+09=f(22.7000)*/ +{32, 0,123,__LINE__, 0x422266cf, 0x40000000, 0x40386666, 0x66666663}, /* 3.95171e+10=f(24.4000)*/ +{32, 0,123,__LINE__, 0x42492eb0, 0x60000000, 0x403a1999, 0x99999996}, /* 2.16315e+11=f(26.1000)*/ +{32, 0,123,__LINE__, 0x42713b19, 0x20000000, 0x403bcccc, 0xccccccc9}, /* 1.18410e+12=f(27.8000)*/ +{32, 0,123,__LINE__, 0x42979489, 0x80000000, 0x403d7fff, 0xfffffffc}, /* 6.48168e+12=f(29.5000)*/ +0,}; +void test_expf(m) { run_vector_1(m,expf_vec,(char *)(expf),"expf","ff"); } diff --git a/newlib/libm/test/fabs_vec.c b/newlib/libm/test/fabs_vec.c new file mode 100644 index 000000000..3c7fce71a --- /dev/null +++ b/newlib/libm/test/fabs_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type fabs_vec[] = { +{64, 0,123,__LINE__, 0x3ff33333, 0x33333333, 0xbff33333, 0x33333333}, /* 1.20000=f(-1.20000)*/ +{64, 0,123,__LINE__, 0x3ff30a3d, 0x70a3d70a, 0xbff30a3d, 0x70a3d70a}, /* 1.19000=f(-1.19000)*/ +{64, 0,123,__LINE__, 0x3ff2e147, 0xae147ae1, 0xbff2e147, 0xae147ae1}, /* 1.18000=f(-1.18000)*/ +{64, 0,123,__LINE__, 0x3ff2b851, 0xeb851eb8, 0xbff2b851, 0xeb851eb8}, /* 1.17000=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3ff28f5c, 0x28f5c28f, 0xbff28f5c, 0x28f5c28f}, /* 1.16000=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3ff26666, 0x66666666, 0xbff26666, 0x66666666}, /* 1.15000=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3ff23d70, 0xa3d70a3d, 0xbff23d70, 0xa3d70a3d}, /* 1.14000=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3ff2147a, 0xe147ae14, 0xbff2147a, 0xe147ae14}, /* 1.13000=f(-1.13000)*/ +{64, 0,123,__LINE__, 0x3ff1eb85, 0x1eb851eb, 0xbff1eb85, 0x1eb851eb}, /* 1.12000=f(-1.12000)*/ +{64, 0,123,__LINE__, 0x3ff1c28f, 0x5c28f5c2, 0xbff1c28f, 0x5c28f5c2}, /* 1.11000=f(-1.11000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0x99999999, 0xbff19999, 0x99999999}, /* 1.10000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3ff170a3, 0xd70a3d70, 0xbff170a3, 0xd70a3d70}, /* 1.09000=f(-1.09000)*/ +{64, 0,123,__LINE__, 0x3ff147ae, 0x147ae147, 0xbff147ae, 0x147ae147}, /* 1.08000=f(-1.08000)*/ +{64, 0,123,__LINE__, 0x3ff11eb8, 0x51eb851e, 0xbff11eb8, 0x51eb851e}, /* 1.07000=f(-1.07000)*/ +{64, 0,123,__LINE__, 0x3ff0f5c2, 0x8f5c28f5, 0xbff0f5c2, 0x8f5c28f5}, /* 1.06000=f(-1.06000)*/ +{64, 0,123,__LINE__, 0x3ff0cccc, 0xcccccccc, 0xbff0cccc, 0xcccccccc}, /* 1.05000=f(-1.05000)*/ +{64, 0,123,__LINE__, 0x3ff0a3d7, 0x0a3d70a3, 0xbff0a3d7, 0x0a3d70a3}, /* 1.04000=f(-1.04000)*/ +{64, 0,123,__LINE__, 0x3ff07ae1, 0x47ae147a, 0xbff07ae1, 0x47ae147a}, /* 1.03000=f(-1.03000)*/ +{64, 0,123,__LINE__, 0x3ff051eb, 0x851eb851, 0xbff051eb, 0x851eb851}, /* 1.02000=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3ff028f5, 0xc28f5c28, 0xbff028f5, 0xc28f5c28}, /* 1.01000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfffffffe, 0xbfefffff, 0xfffffffe}, /* 0.01000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x3fefae14, 0x7ae147ac, 0xbfefae14, 0x7ae147ac}, /* 0.99000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3fef5c28, 0xf5c28f5a, 0xbfef5c28, 0xf5c28f5a}, /* 0.98000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3fef0a3d, 0x70a3d708, 0xbfef0a3d, 0x70a3d708}, /* 0.97000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3feeb851, 0xeb851eb6, 0xbfeeb851, 0xeb851eb6}, /* 0.96000=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x3fee6666, 0x66666664, 0xbfee6666, 0x66666664}, /* 0.95000=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3fee147a, 0xe147ae12, 0xbfee147a, 0xe147ae12}, /* 0.94000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x3fedc28f, 0x5c28f5c0, 0xbfedc28f, 0x5c28f5c0}, /* 0.93000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x3fed70a3, 0xd70a3d6e, 0xbfed70a3, 0xd70a3d6e}, /* 0.92000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x3fed1eb8, 0x51eb851c, 0xbfed1eb8, 0x51eb851c}, /* 0.91000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xccccccca, 0xbfeccccc, 0xccccccca}, /* 0.90000=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x3fec7ae1, 0x47ae1478, 0xbfec7ae1, 0x47ae1478}, /* 0.89000=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x3fec28f5, 0xc28f5c26, 0xbfec28f5, 0xc28f5c26}, /* 0.88000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3febd70a, 0x3d70a3d4, 0xbfebd70a, 0x3d70a3d4}, /* 0.87000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x3feb851e, 0xb851eb82, 0xbfeb851e, 0xb851eb82}, /* 0.86000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x3feb3333, 0x33333330, 0xbfeb3333, 0x33333330}, /* 0.85000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x3feae147, 0xae147ade, 0xbfeae147, 0xae147ade}, /* 0.84000=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x3fea8f5c, 0x28f5c28c, 0xbfea8f5c, 0x28f5c28c}, /* 0.83000=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fea3d70, 0xa3d70a3a, 0xbfea3d70, 0xa3d70a3a}, /* 0.82000=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3fe9eb85, 0x1eb851e8, 0xbfe9eb85, 0x1eb851e8}, /* 0.81000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0x99999996, 0xbfe99999, 0x99999996}, /* 0.80000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3fe947ae, 0x147ae144, 0xbfe947ae, 0x147ae144}, /* 0.79000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3fe8f5c2, 0x8f5c28f2, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.78000=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3fe8a3d7, 0x0a3d70a0, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.77000=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3fe851eb, 0x851eb84e, 0xbfe851eb, 0x851eb84e}, /* 0.76000=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x3fe7ffff, 0xfffffffc, 0xbfe7ffff, 0xfffffffc}, /* 0.75000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x3fe7ae14, 0x7ae147aa, 0xbfe7ae14, 0x7ae147aa}, /* 0.74000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3fe75c28, 0xf5c28f58, 0xbfe75c28, 0xf5c28f58}, /* 0.73000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3fe70a3d, 0x70a3d706, 0xbfe70a3d, 0x70a3d706}, /* 0.72000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3fe6b851, 0xeb851eb4, 0xbfe6b851, 0xeb851eb4}, /* 0.71000=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x66666662, 0xbfe66666, 0x66666662}, /* 0.70000=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x3fe6147a, 0xe147ae10, 0xbfe6147a, 0xe147ae10}, /* 0.69000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3fe5c28f, 0x5c28f5be, 0xbfe5c28f, 0x5c28f5be}, /* 0.68000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3fe570a3, 0xd70a3d6c, 0xbfe570a3, 0xd70a3d6c}, /* 0.67000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3fe51eb8, 0x51eb851a, 0xbfe51eb8, 0x51eb851a}, /* 0.66000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x3fe4cccc, 0xccccccc8, 0xbfe4cccc, 0xccccccc8}, /* 0.65000=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x3fe47ae1, 0x47ae1476, 0xbfe47ae1, 0x47ae1476}, /* 0.64000=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3fe428f5, 0xc28f5c24, 0xbfe428f5, 0xc28f5c24}, /* 0.63000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3fe3d70a, 0x3d70a3d2, 0xbfe3d70a, 0x3d70a3d2}, /* 0.62000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3fe3851e, 0xb851eb80, 0xbfe3851e, 0xb851eb80}, /* 0.61000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x3333332e, 0xbfe33333, 0x3333332e}, /* 0.60000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fe2e147, 0xae147adc, 0xbfe2e147, 0xae147adc}, /* 0.59000=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3fe28f5c, 0x28f5c28a, 0xbfe28f5c, 0x28f5c28a}, /* 0.58000=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x3fe23d70, 0xa3d70a38, 0xbfe23d70, 0xa3d70a38}, /* 0.57000=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3fe1eb85, 0x1eb851e6, 0xbfe1eb85, 0x1eb851e6}, /* 0.56000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3fe19999, 0x99999994, 0xbfe19999, 0x99999994}, /* 0.55000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x3fe147ae, 0x147ae142, 0xbfe147ae, 0x147ae142}, /* 0.54000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3fe0f5c2, 0x8f5c28f0, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.53000=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3fe0a3d7, 0x0a3d709e, 0xbfe0a3d7, 0x0a3d709e}, /* 0.52000=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x3fe051eb, 0x851eb84c, 0xbfe051eb, 0x851eb84c}, /* 0.51000=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3fdfffff, 0xfffffff4, 0xbfdfffff, 0xfffffff4}, /* 0.50000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3fdf5c28, 0xf5c28f50, 0xbfdf5c28, 0xf5c28f50}, /* 0.49000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x3fdeb851, 0xeb851eac, 0xbfdeb851, 0xeb851eac}, /* 0.48000=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fde147a, 0xe147ae08, 0xbfde147a, 0xe147ae08}, /* 0.47000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3fdd70a3, 0xd70a3d64, 0xbfdd70a3, 0xd70a3d64}, /* 0.46000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x3fdccccc, 0xccccccc0, 0xbfdccccc, 0xccccccc0}, /* 0.45000=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fdc28f5, 0xc28f5c1c, 0xbfdc28f5, 0xc28f5c1c}, /* 0.44000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3fdb851e, 0xb851eb78, 0xbfdb851e, 0xb851eb78}, /* 0.43000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3fdae147, 0xae147ad4, 0xbfdae147, 0xae147ad4}, /* 0.42000=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3fda3d70, 0xa3d70a30, 0xbfda3d70, 0xa3d70a30}, /* 0.41000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0x9999998c, 0xbfd99999, 0x9999998c}, /* 0.40000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3fd8f5c2, 0x8f5c28e8, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.39000=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3fd851eb, 0x851eb844, 0xbfd851eb, 0x851eb844}, /* 0.38000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3fd7ae14, 0x7ae147a0, 0xbfd7ae14, 0x7ae147a0}, /* 0.37000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3fd70a3d, 0x70a3d6fc, 0xbfd70a3d, 0x70a3d6fc}, /* 0.36000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3fd66666, 0x66666658, 0xbfd66666, 0x66666658}, /* 0.35000=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3fd5c28f, 0x5c28f5b4, 0xbfd5c28f, 0x5c28f5b4}, /* 0.34000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3fd51eb8, 0x51eb8510, 0xbfd51eb8, 0x51eb8510}, /* 0.33000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3fd47ae1, 0x47ae146c, 0xbfd47ae1, 0x47ae146c}, /* 0.32000=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3fd3d70a, 0x3d70a3c8, 0xbfd3d70a, 0x3d70a3c8}, /* 0.31000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x33333324, 0xbfd33333, 0x33333324}, /* 0.30000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3fd28f5c, 0x28f5c280, 0xbfd28f5c, 0x28f5c280}, /* 0.29000=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3fd1eb85, 0x1eb851dc, 0xbfd1eb85, 0x1eb851dc}, /* 0.28000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3fd147ae, 0x147ae138, 0xbfd147ae, 0x147ae138}, /* 0.27000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3fd0a3d7, 0x0a3d7094, 0xbfd0a3d7, 0x0a3d7094}, /* 0.26000=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3fcfffff, 0xffffffe0, 0xbfcfffff, 0xffffffe0}, /* 0.25000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3fceb851, 0xeb851e98, 0xbfceb851, 0xeb851e98}, /* 0.24000=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3fcd70a3, 0xd70a3d50, 0xbfcd70a3, 0xd70a3d50}, /* 0.23000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3fcc28f5, 0xc28f5c08, 0xbfcc28f5, 0xc28f5c08}, /* 0.22000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3fcae147, 0xae147ac0, 0xbfcae147, 0xae147ac0}, /* 0.21000=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0x99999978, 0xbfc99999, 0x99999978}, /* 0.20000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3fc851eb, 0x851eb830, 0xbfc851eb, 0x851eb830}, /* 0.19000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3fc70a3d, 0x70a3d6e8, 0xbfc70a3d, 0x70a3d6e8}, /* 0.18000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3fc5c28f, 0x5c28f5a0, 0xbfc5c28f, 0x5c28f5a0}, /* 0.17000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3fc47ae1, 0x47ae1458, 0xbfc47ae1, 0x47ae1458}, /* 0.16000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3fc33333, 0x33333310, 0xbfc33333, 0x33333310}, /* 0.15000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3fc1eb85, 0x1eb851c8, 0xbfc1eb85, 0x1eb851c8}, /* 0.14000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3fc0a3d7, 0x0a3d7080, 0xbfc0a3d7, 0x0a3d7080}, /* 0.13000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3fbeb851, 0xeb851e71, 0xbfbeb851, 0xeb851e71}, /* 0.12000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3fbc28f5, 0xc28f5be2, 0xbfbc28f5, 0xc28f5be2}, /* 0.11000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0x99999953, 0xbfb99999, 0x99999953}, /* 0.00100=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3fb70a3d, 0x70a3d6c4, 0xbfb70a3d, 0x70a3d6c4}, /* 0.09000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3fb47ae1, 0x47ae1435, 0xbfb47ae1, 0x47ae1435}, /* 0.08000=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x3fb1eb85, 0x1eb851a6, 0xbfb1eb85, 0x1eb851a6}, /* 0.07000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3faeb851, 0xeb851e2d, 0xbfaeb851, 0xeb851e2d}, /* 0.06000=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3fa99999, 0x9999990e, 0xbfa99999, 0x9999990e}, /* 0.05000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3fa47ae1, 0x47ae13ef, 0xbfa47ae1, 0x47ae13ef}, /* 0.04000=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3f9eb851, 0xeb851da0, 0xbf9eb851, 0xeb851da0}, /* 0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3f947ae1, 0x47ae1362, 0xbf947ae1, 0x47ae1362}, /* 0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3f847ae1, 0x47ae1249, 0xbf847ae1, 0x47ae1249}, /* 0.00010=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847ae1, 0x47ae16ad, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947ae1, 0x47ae1594, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb851, 0xeb851fd2, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47ae1, 0x47ae1508, 0x3fa47ae1, 0x47ae1508}, /* 0.04000=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99999, 0x99999a27, 0x3fa99999, 0x99999a27}, /* 0.05000=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faeb851, 0xeb851f46, 0x3faeb851, 0xeb851f46}, /* 0.06000=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1eb85, 0x1eb85232, 0x3fb1eb85, 0x1eb85232}, /* 0.07000=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb47ae1, 0x47ae14c1, 0x3fb47ae1, 0x47ae14c1}, /* 0.08000=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb70a3d, 0x70a3d750, 0x3fb70a3d, 0x70a3d750}, /* 0.09000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0x999999df, 0x3fb99999, 0x999999df}, /* 0.10000=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc28f5, 0xc28f5c6e, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11000=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbeb851, 0xeb851efd, 0x3fbeb851, 0xeb851efd}, /* 0.12000=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0a3d7, 0x0a3d70c6, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13000=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1eb85, 0x1eb8520e, 0x3fc1eb85, 0x1eb8520e}, /* 0.14000=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc33333, 0x33333356, 0x3fc33333, 0x33333356}, /* 0.15000=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc47ae1, 0x47ae149e, 0x3fc47ae1, 0x47ae149e}, /* 0.16000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5c28f, 0x5c28f5e6, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17000=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc70a3d, 0x70a3d72e, 0x3fc70a3d, 0x70a3d72e}, /* 0.18000=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc851eb, 0x851eb876, 0x3fc851eb, 0x851eb876}, /* 0.19000=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0x999999be, 0x3fc99999, 0x999999be}, /* 0.20000=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcae147, 0xae147b06, 0x3fcae147, 0xae147b06}, /* 0.21000=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcc28f5, 0xc28f5c4e, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22000=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcd70a3, 0xd70a3d96, 0x3fcd70a3, 0xd70a3d96}, /* 0.23000=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fceb851, 0xeb851ede, 0x3fceb851, 0xeb851ede}, /* 0.24000=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd00000, 0x00000013, 0x3fd00000, 0x00000013}, /* 0.25000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd0a3d7, 0x0a3d70b7, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26000=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd147ae, 0x147ae15b, 0x3fd147ae, 0x147ae15b}, /* 0.27000=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd1eb85, 0x1eb851ff, 0x3fd1eb85, 0x1eb851ff}, /* 0.28000=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd28f5c, 0x28f5c2a3, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29000=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x33333347, 0x3fd33333, 0x33333347}, /* 0.30000=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd3d70a, 0x3d70a3eb, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31000=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd47ae1, 0x47ae148f, 0x3fd47ae1, 0x47ae148f}, /* 0.32000=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd51eb8, 0x51eb8533, 0x3fd51eb8, 0x51eb8533}, /* 0.33000=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd5c28f, 0x5c28f5d7, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34000=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd66666, 0x6666667b, 0x3fd66666, 0x6666667b}, /* 0.35000=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd70a3d, 0x70a3d71f, 0x3fd70a3d, 0x70a3d71f}, /* 0.36000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd7ae14, 0x7ae147c3, 0x3fd7ae14, 0x7ae147c3}, /* 0.37000=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd851eb, 0x851eb867, 0x3fd851eb, 0x851eb867}, /* 0.38000=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd8f5c2, 0x8f5c290b, 0x3fd8f5c2, 0x8f5c290b}, /* 0.39000=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0x999999af, 0x3fd99999, 0x999999af}, /* 0.40000=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fda3d70, 0xa3d70a53, 0x3fda3d70, 0xa3d70a53}, /* 0.41000=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fdae147, 0xae147af7, 0x3fdae147, 0xae147af7}, /* 0.42000=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdb851e, 0xb851eb9b, 0x3fdb851e, 0xb851eb9b}, /* 0.43000=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdc28f5, 0xc28f5c3f, 0x3fdc28f5, 0xc28f5c3f}, /* 0.44000=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdccccc, 0xcccccce3, 0x3fdccccc, 0xcccccce3}, /* 0.45000=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdd70a3, 0xd70a3d87, 0x3fdd70a3, 0xd70a3d87}, /* 0.46000=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fde147a, 0xe147ae2b, 0x3fde147a, 0xe147ae2b}, /* 0.47000=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdeb851, 0xeb851ecf, 0x3fdeb851, 0xeb851ecf}, /* 0.48000=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fdf5c28, 0xf5c28f73, 0x3fdf5c28, 0xf5c28f73}, /* 0.49000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe00000, 0x0000000b, 0x3fe00000, 0x0000000b}, /* 0.50000=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe051eb, 0x851eb85d, 0x3fe051eb, 0x851eb85d}, /* 0.51000=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe0a3d7, 0x0a3d70af, 0x3fe0a3d7, 0x0a3d70af}, /* 0.52000=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe0f5c2, 0x8f5c2901, 0x3fe0f5c2, 0x8f5c2901}, /* 0.53000=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe147ae, 0x147ae153, 0x3fe147ae, 0x147ae153}, /* 0.54000=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe19999, 0x999999a5, 0x3fe19999, 0x999999a5}, /* 0.55000=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe1eb85, 0x1eb851f7, 0x3fe1eb85, 0x1eb851f7}, /* 0.56000=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe23d70, 0xa3d70a49, 0x3fe23d70, 0xa3d70a49}, /* 0.57000=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe28f5c, 0x28f5c29b, 0x3fe28f5c, 0x28f5c29b}, /* 0.58000=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe2e147, 0xae147aed, 0x3fe2e147, 0xae147aed}, /* 0.59000=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x3333333f, 0x3fe33333, 0x3333333f}, /* 0.60000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe3851e, 0xb851eb91, 0x3fe3851e, 0xb851eb91}, /* 0.61000=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe3d70a, 0x3d70a3e3, 0x3fe3d70a, 0x3d70a3e3}, /* 0.62000=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe428f5, 0xc28f5c35, 0x3fe428f5, 0xc28f5c35}, /* 0.63000=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe47ae1, 0x47ae1487, 0x3fe47ae1, 0x47ae1487}, /* 0.64000=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe4cccc, 0xccccccd9, 0x3fe4cccc, 0xccccccd9}, /* 0.65000=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe51eb8, 0x51eb852b, 0x3fe51eb8, 0x51eb852b}, /* 0.66000=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe570a3, 0xd70a3d7d, 0x3fe570a3, 0xd70a3d7d}, /* 0.67000=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe5c28f, 0x5c28f5cf, 0x3fe5c28f, 0x5c28f5cf}, /* 0.68000=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe6147a, 0xe147ae21, 0x3fe6147a, 0xe147ae21}, /* 0.69000=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x66666673, 0x3fe66666, 0x66666673}, /* 0.70000=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe6b851, 0xeb851ec5, 0x3fe6b851, 0xeb851ec5}, /* 0.71000=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe70a3d, 0x70a3d717, 0x3fe70a3d, 0x70a3d717}, /* 0.72000=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe75c28, 0xf5c28f69, 0x3fe75c28, 0xf5c28f69}, /* 0.73000=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe7ae14, 0x7ae147bb, 0x3fe7ae14, 0x7ae147bb}, /* 0.74000=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe80000, 0x0000000d, 0x3fe80000, 0x0000000d}, /* 0.75000=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe851eb, 0x851eb85f, 0x3fe851eb, 0x851eb85f}, /* 0.76000=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe8a3d7, 0x0a3d70b1, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.77000=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe8f5c2, 0x8f5c2903, 0x3fe8f5c2, 0x8f5c2903}, /* 0.78000=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe947ae, 0x147ae155, 0x3fe947ae, 0x147ae155}, /* 0.79000=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0x999999a7, 0x3fe99999, 0x999999a7}, /* 0.80000=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe9eb85, 0x1eb851f9, 0x3fe9eb85, 0x1eb851f9}, /* 0.81000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fea3d70, 0xa3d70a4b, 0x3fea3d70, 0xa3d70a4b}, /* 0.82000=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fea8f5c, 0x28f5c29d, 0x3fea8f5c, 0x28f5c29d}, /* 0.83000=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3feae147, 0xae147aef, 0x3feae147, 0xae147aef}, /* 0.84000=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3feb3333, 0x33333341, 0x3feb3333, 0x33333341}, /* 0.85000=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3feb851e, 0xb851eb93, 0x3feb851e, 0xb851eb93}, /* 0.86000=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3febd70a, 0x3d70a3e5, 0x3febd70a, 0x3d70a3e5}, /* 0.87000=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fec28f5, 0xc28f5c37, 0x3fec28f5, 0xc28f5c37}, /* 0.88000=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fec7ae1, 0x47ae1489, 0x3fec7ae1, 0x47ae1489}, /* 0.89000=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xccccccdb, 0x3feccccc, 0xccccccdb}, /* 0.90000=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fed1eb8, 0x51eb852d, 0x3fed1eb8, 0x51eb852d}, /* 0.91000=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fed70a3, 0xd70a3d7f, 0x3fed70a3, 0xd70a3d7f}, /* 0.92000=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fedc28f, 0x5c28f5d1, 0x3fedc28f, 0x5c28f5d1}, /* 0.93000=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fee147a, 0xe147ae23, 0x3fee147a, 0xe147ae23}, /* 0.94000=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fee6666, 0x66666675, 0x3fee6666, 0x66666675}, /* 0.95000=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3feeb851, 0xeb851ec7, 0x3feeb851, 0xeb851ec7}, /* 0.96000=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fef0a3d, 0x70a3d719, 0x3fef0a3d, 0x70a3d719}, /* 0.97000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fef5c28, 0xf5c28f6b, 0x3fef5c28, 0xf5c28f6b}, /* 0.98000=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fefae14, 0x7ae147bd, 0x3fefae14, 0x7ae147bd}, /* 0.99000=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000007, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3ff028f5, 0xc28f5c30, 0x3ff028f5, 0xc28f5c30}, /* 1.01000=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3ff051eb, 0x851eb859, 0x3ff051eb, 0x851eb859}, /* 1.02000=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ff07ae1, 0x47ae1482, 0x3ff07ae1, 0x47ae1482}, /* 1.03000=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3ff0a3d7, 0x0a3d70ab, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.04000=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ff0cccc, 0xccccccd4, 0x3ff0cccc, 0xccccccd4}, /* 1.05000=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3ff0f5c2, 0x8f5c28fd, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.06000=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3ff11eb8, 0x51eb8526, 0x3ff11eb8, 0x51eb8526}, /* 1.07000=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3ff147ae, 0x147ae14f, 0x3ff147ae, 0x147ae14f}, /* 1.08000=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3ff170a3, 0xd70a3d78, 0x3ff170a3, 0xd70a3d78}, /* 1.09000=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0x999999a1, 0x3ff19999, 0x999999a1}, /* 1.10000=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3ff1c28f, 0x5c28f5ca, 0x3ff1c28f, 0x5c28f5ca}, /* 1.11000=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3ff1eb85, 0x1eb851f3, 0x3ff1eb85, 0x1eb851f3}, /* 1.12000=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ff2147a, 0xe147ae1c, 0x3ff2147a, 0xe147ae1c}, /* 1.13000=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3ff23d70, 0xa3d70a45, 0x3ff23d70, 0xa3d70a45}, /* 1.14000=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ff26666, 0x6666666e, 0x3ff26666, 0x6666666e}, /* 1.15000=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ff28f5c, 0x28f5c297, 0x3ff28f5c, 0x28f5c297}, /* 1.16000=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3ff2b851, 0xeb851ec0, 0x3ff2b851, 0xeb851ec0}, /* 1.17000=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3ff2e147, 0xae147ae9, 0x3ff2e147, 0xae147ae9}, /* 1.18000=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3ff30a3d, 0x70a3d712, 0x3ff30a3d, 0x70a3d712}, /* 1.19000=f(1.19000)*/ +{64, 0,123,__LINE__, 0x401921fb, 0x54442d18, 0xc01921fb, 0x54442d18}, /* 6.28318=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x4012d97c, 0x7f3321d2, 0xc012d97c, 0x7f3321d2}, /* 4.71238=f(-4.71238)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x54442d18, 0xc00921fb, 0x54442d18}, /* 3.14159=f(-3.14159)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x54442d18, 0xbff921fb, 0x54442d18}, /* 1.57079=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x54442d18, 0x3ff921fb, 0x54442d18}, /* 1.57079=f(1.57079)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x54442d18, 0x400921fb, 0x54442d18}, /* 3.14159=f(3.14159)*/ +{64, 0,123,__LINE__, 0x4012d97c, 0x7f3321d2, 0x4012d97c, 0x7f3321d2}, /* 4.71238=f(4.71238)*/ +{64, 0,123,__LINE__, 0x403e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* 30.0000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x403c4ccc, 0xcccccccd, 0xc03c4ccc, 0xcccccccd}, /* 28.3000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x403a9999, 0x9999999a, 0xc03a9999, 0x9999999a}, /* 26.6000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x4038e666, 0x66666667, 0xc038e666, 0x66666667}, /* 24.9000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x40373333, 0x33333334, 0xc0373333, 0x33333334}, /* 23.2000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x40358000, 0x00000001, 0xc0358000, 0x00000001}, /* 21.5000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0x4033cccc, 0xccccccce, 0xc033cccc, 0xccccccce}, /* 19.8000=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x40321999, 0x9999999b, 0xc0321999, 0x9999999b}, /* 18.1000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x40306666, 0x66666668, 0xc0306666, 0x66666668}, /* 16.4000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x402d6666, 0x6666666a, 0xc02d6666, 0x6666666a}, /* 14.7000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x402a0000, 0x00000004, 0xc02a0000, 0x00000004}, /* 13.0000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x40269999, 0x9999999e, 0xc0269999, 0x9999999e}, /* 11.3000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x40233333, 0x33333338, 0xc0233333, 0x33333338}, /* 9.60000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x401f9999, 0x999999a3, 0xc01f9999, 0x999999a3}, /* 7.90000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x4018cccc, 0xccccccd6, 0xc018cccc, 0xccccccd6}, /* 6.20000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x40120000, 0x00000009, 0xc0120000, 0x00000009}, /* 4.50000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x40066666, 0x66666678, 0xc0066666, 0x66666678}, /* 2.80000=f(-2.80000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0x999999bd, 0xbff19999, 0x999999bd}, /* 1.10000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x333332ec, 0x3fe33333, 0x333332ec}, /* 0.60000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x40026666, 0x66666654, 0x40026666, 0x66666654}, /* 2.30000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x400fffff, 0xffffffee, 0x400fffff, 0xffffffee}, /* 4.00000=f(4.00000)*/ +{64, 0,123,__LINE__, 0x4016cccc, 0xccccccc4, 0x4016cccc, 0xccccccc4}, /* 5.70000=f(5.70000)*/ +{64, 0,123,__LINE__, 0x401d9999, 0x99999991, 0x401d9999, 0x99999991}, /* 7.40000=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40223333, 0x3333332f, 0x40223333, 0x3333332f}, /* 9.10000=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40259999, 0x99999995, 0x40259999, 0x99999995}, /* 10.8000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x4028ffff, 0xfffffffb, 0x4028ffff, 0xfffffffb}, /* 12.5000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x402c6666, 0x66666661, 0x402c6666, 0x66666661}, /* 14.2000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x402fcccc, 0xccccccc7, 0x402fcccc, 0xccccccc7}, /* 15.9000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x40319999, 0x99999997, 0x40319999, 0x99999997}, /* 17.6000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x40334ccc, 0xccccccca, 0x40334ccc, 0xccccccca}, /* 19.3000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x4034ffff, 0xfffffffd, 0x4034ffff, 0xfffffffd}, /* 21.0000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x4036b333, 0x33333330, 0x4036b333, 0x33333330}, /* 22.7000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x40386666, 0x66666663, 0x40386666, 0x66666663}, /* 24.4000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x403a1999, 0x99999996, 0x403a1999, 0x99999996}, /* 26.1000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x403bcccc, 0xccccccc9, 0x403bcccc, 0xccccccc9}, /* 27.8000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x403d7fff, 0xfffffffc, 0x403d7fff, 0xfffffffc}, /* 29.5000=f(29.5000)*/ +0,}; +test_fabs(m) {run_vector_1(m,fabs_vec,(char *)(fabs),"fabs","dd"); } diff --git a/newlib/libm/test/fabsf_vec.c b/newlib/libm/test/fabsf_vec.c new file mode 100644 index 000000000..9c8e122ff --- /dev/null +++ b/newlib/libm/test/fabsf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type fabsf_vec[] = { +{64, 0,123,__LINE__, 0x3ff33333, 0x40000000, 0xbff33333, 0x33333333}, /* 1.20000=f(-1.20000)*/ +{64, 0,123,__LINE__, 0x3ff30a3d, 0x80000000, 0xbff30a3d, 0x70a3d70a}, /* 1.19000=f(-1.19000)*/ +{64, 0,123,__LINE__, 0x3ff2e147, 0xa0000000, 0xbff2e147, 0xae147ae1}, /* 1.18000=f(-1.18000)*/ +{64, 0,123,__LINE__, 0x3ff2b851, 0xe0000000, 0xbff2b851, 0xeb851eb8}, /* 1.17000=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3ff28f5c, 0x20000000, 0xbff28f5c, 0x28f5c28f}, /* 1.16000=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3ff26666, 0x60000000, 0xbff26666, 0x66666666}, /* 1.15000=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3ff23d70, 0xa0000000, 0xbff23d70, 0xa3d70a3d}, /* 1.14000=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3ff2147a, 0xe0000000, 0xbff2147a, 0xe147ae14}, /* 1.13000=f(-1.13000)*/ +{64, 0,123,__LINE__, 0x3ff1eb85, 0x20000000, 0xbff1eb85, 0x1eb851eb}, /* 1.12000=f(-1.12000)*/ +{64, 0,123,__LINE__, 0x3ff1c28f, 0x60000000, 0xbff1c28f, 0x5c28f5c2}, /* 1.11000=f(-1.11000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0xa0000000, 0xbff19999, 0x99999999}, /* 1.10000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3ff170a3, 0xe0000000, 0xbff170a3, 0xd70a3d70}, /* 1.09000=f(-1.09000)*/ +{64, 0,123,__LINE__, 0x3ff147ae, 0x20000000, 0xbff147ae, 0x147ae147}, /* 1.08000=f(-1.08000)*/ +{64, 0,123,__LINE__, 0x3ff11eb8, 0x60000000, 0xbff11eb8, 0x51eb851e}, /* 1.07000=f(-1.07000)*/ +{64, 0,123,__LINE__, 0x3ff0f5c2, 0x80000000, 0xbff0f5c2, 0x8f5c28f5}, /* 1.06000=f(-1.06000)*/ +{64, 0,123,__LINE__, 0x3ff0cccc, 0xc0000000, 0xbff0cccc, 0xcccccccc}, /* 1.05000=f(-1.05000)*/ +{64, 0,123,__LINE__, 0x3ff0a3d7, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 1.04000=f(-1.04000)*/ +{64, 0,123,__LINE__, 0x3ff07ae1, 0x40000000, 0xbff07ae1, 0x47ae147a}, /* 1.03000=f(-1.03000)*/ +{64, 0,123,__LINE__, 0x3ff051eb, 0x80000000, 0xbff051eb, 0x851eb851}, /* 1.02000=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3ff028f5, 0xc0000000, 0xbff028f5, 0xc28f5c28}, /* 1.01000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 1.00000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x3fefae14, 0x80000000, 0xbfefae14, 0x7ae147ac}, /* 0.99000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3fef5c29, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 0.98000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3fef0a3d, 0x80000000, 0xbfef0a3d, 0x70a3d708}, /* 0.97000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3feeb851, 0xe0000000, 0xbfeeb851, 0xeb851eb6}, /* 0.95999=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x3fee6666, 0x60000000, 0xbfee6666, 0x66666664}, /* 0.94999=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3fee147a, 0xe0000000, 0xbfee147a, 0xe147ae12}, /* 0.94000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x3fedc28f, 0x60000000, 0xbfedc28f, 0x5c28f5c0}, /* 0.93000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x3fed70a3, 0xe0000000, 0xbfed70a3, 0xd70a3d6e}, /* 0.92000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x3fed1eb8, 0x60000000, 0xbfed1eb8, 0x51eb851c}, /* 0.91000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xc0000000, 0xbfeccccc, 0xccccccca}, /* 0.89999=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x3fec7ae1, 0x40000000, 0xbfec7ae1, 0x47ae1478}, /* 0.88999=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x3fec28f5, 0xc0000000, 0xbfec28f5, 0xc28f5c26}, /* 0.88000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3febd70a, 0x40000000, 0xbfebd70a, 0x3d70a3d4}, /* 0.87000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x3feb851e, 0xc0000000, 0xbfeb851e, 0xb851eb82}, /* 0.86000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x3feb3333, 0x40000000, 0xbfeb3333, 0x33333330}, /* 0.85000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x3feae147, 0xa0000000, 0xbfeae147, 0xae147ade}, /* 0.83999=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x3fea8f5c, 0x20000000, 0xbfea8f5c, 0x28f5c28c}, /* 0.82999=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fea3d70, 0xa0000000, 0xbfea3d70, 0xa3d70a3a}, /* 0.81999=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3fe9eb85, 0x20000000, 0xbfe9eb85, 0x1eb851e8}, /* 0.81000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0xa0000000, 0xbfe99999, 0x99999996}, /* 0.80000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3fe947ae, 0x20000000, 0xbfe947ae, 0x147ae144}, /* 0.79000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3fe8f5c2, 0x80000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.77999=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3fe8a3d7, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.76999=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3fe851eb, 0x80000000, 0xbfe851eb, 0x851eb84e}, /* 0.75999=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x3fe80000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 0.75000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x3fe7ae14, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* 0.74000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3fe75c29, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 0.73000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3fe70a3d, 0x80000000, 0xbfe70a3d, 0x70a3d706}, /* 0.72000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3fe6b851, 0xe0000000, 0xbfe6b851, 0xeb851eb4}, /* 0.70999=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x60000000, 0xbfe66666, 0x66666662}, /* 0.69999=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x3fe6147a, 0xe0000000, 0xbfe6147a, 0xe147ae10}, /* 0.69000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3fe5c28f, 0x60000000, 0xbfe5c28f, 0x5c28f5be}, /* 0.68000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3fe570a3, 0xe0000000, 0xbfe570a3, 0xd70a3d6c}, /* 0.67000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3fe51eb8, 0x60000000, 0xbfe51eb8, 0x51eb851a}, /* 0.66000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x3fe4cccc, 0xc0000000, 0xbfe4cccc, 0xccccccc8}, /* 0.64999=f(-0.65000)*/ +{64, 0,123,__LINE__, 0x3fe47ae1, 0x40000000, 0xbfe47ae1, 0x47ae1476}, /* 0.63999=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3fe428f5, 0xc0000000, 0xbfe428f5, 0xc28f5c24}, /* 0.63000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3fe3d70a, 0x40000000, 0xbfe3d70a, 0x3d70a3d2}, /* 0.62000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3fe3851e, 0xc0000000, 0xbfe3851e, 0xb851eb80}, /* 0.61000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0xbfe33333, 0x3333332e}, /* 0.60000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fe2e147, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* 0.58999=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3fe28f5c, 0x20000000, 0xbfe28f5c, 0x28f5c28a}, /* 0.57999=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x3fe23d70, 0xa0000000, 0xbfe23d70, 0xa3d70a38}, /* 0.56999=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3fe1eb85, 0x20000000, 0xbfe1eb85, 0x1eb851e6}, /* 0.56000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3fe19999, 0xa0000000, 0xbfe19999, 0x99999994}, /* 0.55000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x3fe147ae, 0x20000000, 0xbfe147ae, 0x147ae142}, /* 0.54000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3fe0f5c2, 0x80000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.52999=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3fe0a3d7, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 0.51999=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x3fe051eb, 0x80000000, 0xbfe051eb, 0x851eb84c}, /* 0.50999=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3fe00000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 0.50000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3fdf5c29, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 0.49000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x3fdeb851, 0xe0000000, 0xbfdeb851, 0xeb851eac}, /* 0.47999=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fde147a, 0xe0000000, 0xbfde147a, 0xe147ae08}, /* 0.47000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3fdd70a3, 0xe0000000, 0xbfdd70a3, 0xd70a3d64}, /* 0.46000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0x3fdccccc, 0xc0000000, 0xbfdccccc, 0xccccccc0}, /* 0.44999=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fdc28f5, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c}, /* 0.44000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3fdb851e, 0xc0000000, 0xbfdb851e, 0xb851eb78}, /* 0.43000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3fdae147, 0xa0000000, 0xbfdae147, 0xae147ad4}, /* 0.41999=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3fda3d70, 0xa0000000, 0xbfda3d70, 0xa3d70a30}, /* 0.41000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0xa0000000, 0xbfd99999, 0x9999998c}, /* 0.40000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3fd8f5c2, 0x80000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.38999=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3fd851eb, 0x80000000, 0xbfd851eb, 0x851eb844}, /* 0.38000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3fd7ae14, 0x80000000, 0xbfd7ae14, 0x7ae147a0}, /* 0.37000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3fd70a3d, 0x80000000, 0xbfd70a3d, 0x70a3d6fc}, /* 0.36000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3fd66666, 0x60000000, 0xbfd66666, 0x66666658}, /* 0.34999=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3fd5c28f, 0x60000000, 0xbfd5c28f, 0x5c28f5b4}, /* 0.34000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3fd51eb8, 0x60000000, 0xbfd51eb8, 0x51eb8510}, /* 0.33000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3fd47ae1, 0x40000000, 0xbfd47ae1, 0x47ae146c}, /* 0.31999=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3fd3d70a, 0x40000000, 0xbfd3d70a, 0x3d70a3c8}, /* 0.31000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x40000000, 0xbfd33333, 0x33333324}, /* 0.30000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3fd28f5c, 0x20000000, 0xbfd28f5c, 0x28f5c280}, /* 0.28999=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3fd1eb85, 0x20000000, 0xbfd1eb85, 0x1eb851dc}, /* 0.28000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3fd147ae, 0x20000000, 0xbfd147ae, 0x147ae138}, /* 0.27000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3fd0a3d7, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 0.25999=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3fd00000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 0.25000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3fceb851, 0xe0000000, 0xbfceb851, 0xeb851e98}, /* 0.23999=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3fcd70a3, 0xe0000000, 0xbfcd70a3, 0xd70a3d50}, /* 0.23000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3fcc28f5, 0xc0000000, 0xbfcc28f5, 0xc28f5c08}, /* 0.22000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3fcae147, 0xa0000000, 0xbfcae147, 0xae147ac0}, /* 0.20999=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0xa0000000, 0xbfc99999, 0x99999978}, /* 0.20000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3fc851eb, 0x80000000, 0xbfc851eb, 0x851eb830}, /* 0.19000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3fc70a3d, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* 0.18000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3fc5c28f, 0x60000000, 0xbfc5c28f, 0x5c28f5a0}, /* 0.17000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3fc47ae1, 0x40000000, 0xbfc47ae1, 0x47ae1458}, /* 0.16000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3fc33333, 0x40000000, 0xbfc33333, 0x33333310}, /* 0.15000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3fc1eb85, 0x20000000, 0xbfc1eb85, 0x1eb851c8}, /* 0.14000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3fc0a3d7, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 0.13000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3fbeb851, 0xe0000000, 0xbfbeb851, 0xeb851e71}, /* 0.12000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3fbc28f5, 0xc0000000, 0xbfbc28f5, 0xc28f5be2}, /* 0.11000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0xa0000000, 0xbfb99999, 0x99999953}, /* 0.10000=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3fb70a3d, 0x80000000, 0xbfb70a3d, 0x70a3d6c4}, /* 0.09000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3fb47ae1, 0x40000000, 0xbfb47ae1, 0x47ae1435}, /* 0.07999=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x3fb1eb85, 0x20000000, 0xbfb1eb85, 0x1eb851a6}, /* 0.07000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3faeb851, 0xe0000000, 0xbfaeb851, 0xeb851e2d}, /* 0.05999=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3fa99999, 0xa0000000, 0xbfa99999, 0x9999990e}, /* 0.05000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3fa47ae1, 0x40000000, 0xbfa47ae1, 0x47ae13ef}, /* 0.03999=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3f9eb851, 0xe0000000, 0xbf9eb851, 0xeb851da0}, /* 0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3f947ae1, 0x40000000, 0xbf947ae1, 0x47ae1362}, /* 0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3f847ae1, 0x40000000, 0xbf847ae1, 0x47ae1249}, /* 0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847ae1, 0x40000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947ae1, 0x40000000, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb851, 0xe0000000, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47ae1, 0x40000000, 0x3fa47ae1, 0x47ae1508}, /* 0.03999=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99999, 0xa0000000, 0x3fa99999, 0x99999a27}, /* 0.05000=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faeb851, 0xe0000000, 0x3faeb851, 0xeb851f46}, /* 0.05999=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1eb85, 0x20000000, 0x3fb1eb85, 0x1eb85232}, /* 0.07000=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb47ae1, 0x40000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.07999=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb70a3d, 0x80000000, 0x3fb70a3d, 0x70a3d750}, /* 0.09000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0xa0000000, 0x3fb99999, 0x999999df}, /* 0.10000=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc28f5, 0xc0000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11000=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbeb851, 0xe0000000, 0x3fbeb851, 0xeb851efd}, /* 0.12000=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0a3d7, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13000=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1eb85, 0x20000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.14000=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc33333, 0x40000000, 0x3fc33333, 0x33333356}, /* 0.15000=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc47ae1, 0x40000000, 0x3fc47ae1, 0x47ae149e}, /* 0.16000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5c28f, 0x60000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17000=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc70a3d, 0x80000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.18000=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc851eb, 0x80000000, 0x3fc851eb, 0x851eb876}, /* 0.19000=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0xa0000000, 0x3fc99999, 0x999999be}, /* 0.20000=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcae147, 0xa0000000, 0x3fcae147, 0xae147b06}, /* 0.20999=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcc28f5, 0xc0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22000=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcd70a3, 0xe0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.23000=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fceb851, 0xe0000000, 0x3fceb851, 0xeb851ede}, /* 0.23999=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd00000, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.25000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd0a3d7, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25999=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd147ae, 0x20000000, 0x3fd147ae, 0x147ae15b}, /* 0.27000=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd1eb85, 0x20000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.28000=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd28f5c, 0x20000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28999=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x40000000, 0x3fd33333, 0x33333347}, /* 0.30000=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd3d70a, 0x40000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31000=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd47ae1, 0x40000000, 0x3fd47ae1, 0x47ae148f}, /* 0.31999=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd51eb8, 0x60000000, 0x3fd51eb8, 0x51eb8533}, /* 0.33000=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd5c28f, 0x60000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34000=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd66666, 0x60000000, 0x3fd66666, 0x6666667b}, /* 0.34999=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd70a3d, 0x80000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.36000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd7ae14, 0x80000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.37000=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd851eb, 0x80000000, 0x3fd851eb, 0x851eb867}, /* 0.38000=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd8f5c2, 0x80000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.38999=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0xa0000000, 0x3fd99999, 0x999999af}, /* 0.40000=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fda3d70, 0xa0000000, 0x3fda3d70, 0xa3d70a53}, /* 0.41000=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fdae147, 0xa0000000, 0x3fdae147, 0xae147af7}, /* 0.41999=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdb851e, 0xc0000000, 0x3fdb851e, 0xb851eb9b}, /* 0.43000=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdc28f5, 0xc0000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.44000=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdccccc, 0xc0000000, 0x3fdccccc, 0xcccccce3}, /* 0.44999=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdd70a3, 0xe0000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.46000=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fde147a, 0xe0000000, 0x3fde147a, 0xe147ae2b}, /* 0.47000=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdeb851, 0xe0000000, 0x3fdeb851, 0xeb851ecf}, /* 0.47999=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fdf5c29, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.49000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe00000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 0.50000=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe051eb, 0x80000000, 0x3fe051eb, 0x851eb85d}, /* 0.50999=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe0a3d7, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.51999=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe0f5c2, 0x80000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.52999=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe147ae, 0x20000000, 0x3fe147ae, 0x147ae153}, /* 0.54000=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe19999, 0xa0000000, 0x3fe19999, 0x999999a5}, /* 0.55000=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe1eb85, 0x20000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.56000=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe23d70, 0xa0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.56999=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe28f5c, 0x20000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.57999=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe2e147, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 0.58999=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0x3fe33333, 0x3333333f}, /* 0.60000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe3851e, 0xc0000000, 0x3fe3851e, 0xb851eb91}, /* 0.61000=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe3d70a, 0x40000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.62000=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe428f5, 0xc0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.63000=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe47ae1, 0x40000000, 0x3fe47ae1, 0x47ae1487}, /* 0.63999=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe4cccc, 0xc0000000, 0x3fe4cccc, 0xccccccd9}, /* 0.64999=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe51eb8, 0x60000000, 0x3fe51eb8, 0x51eb852b}, /* 0.66000=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe570a3, 0xe0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.67000=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe5c28f, 0x60000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.68000=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe6147a, 0xe0000000, 0x3fe6147a, 0xe147ae21}, /* 0.69000=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x60000000, 0x3fe66666, 0x66666673}, /* 0.69999=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe6b851, 0xe0000000, 0x3fe6b851, 0xeb851ec5}, /* 0.70999=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe70a3d, 0x80000000, 0x3fe70a3d, 0x70a3d717}, /* 0.72000=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe75c29, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 0.73000=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe7ae14, 0x80000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.74000=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe80000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 0.75000=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe851eb, 0x80000000, 0x3fe851eb, 0x851eb85f}, /* 0.75999=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe8a3d7, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.76999=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe8f5c2, 0x80000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.77999=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe947ae, 0x20000000, 0x3fe947ae, 0x147ae155}, /* 0.79000=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0xa0000000, 0x3fe99999, 0x999999a7}, /* 0.80000=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe9eb85, 0x20000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.81000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fea3d70, 0xa0000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.81999=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fea8f5c, 0x20000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.82999=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3feae147, 0xa0000000, 0x3feae147, 0xae147aef}, /* 0.83999=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3feb3333, 0x40000000, 0x3feb3333, 0x33333341}, /* 0.85000=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3feb851e, 0xc0000000, 0x3feb851e, 0xb851eb93}, /* 0.86000=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3febd70a, 0x40000000, 0x3febd70a, 0x3d70a3e5}, /* 0.87000=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fec28f5, 0xc0000000, 0x3fec28f5, 0xc28f5c37}, /* 0.88000=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fec7ae1, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 0.88999=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xc0000000, 0x3feccccc, 0xccccccdb}, /* 0.89999=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fed1eb8, 0x60000000, 0x3fed1eb8, 0x51eb852d}, /* 0.91000=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fed70a3, 0xe0000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.92000=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fedc28f, 0x60000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.93000=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fee147a, 0xe0000000, 0x3fee147a, 0xe147ae23}, /* 0.94000=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fee6666, 0x60000000, 0x3fee6666, 0x66666675}, /* 0.94999=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3feeb851, 0xe0000000, 0x3feeb851, 0xeb851ec7}, /* 0.95999=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fef0a3d, 0x80000000, 0x3fef0a3d, 0x70a3d719}, /* 0.97000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fef5c29, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.98000=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fefae14, 0x80000000, 0x3fefae14, 0x7ae147bd}, /* 0.99000=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3ff028f5, 0xc0000000, 0x3ff028f5, 0xc28f5c30}, /* 1.01000=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3ff051eb, 0x80000000, 0x3ff051eb, 0x851eb859}, /* 1.02000=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ff07ae1, 0x40000000, 0x3ff07ae1, 0x47ae1482}, /* 1.03000=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3ff0a3d7, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.04000=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ff0cccc, 0xc0000000, 0x3ff0cccc, 0xccccccd4}, /* 1.05000=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3ff0f5c2, 0x80000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.06000=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3ff11eb8, 0x60000000, 0x3ff11eb8, 0x51eb8526}, /* 1.07000=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3ff147ae, 0x20000000, 0x3ff147ae, 0x147ae14f}, /* 1.08000=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3ff170a3, 0xe0000000, 0x3ff170a3, 0xd70a3d78}, /* 1.09000=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0xa0000000, 0x3ff19999, 0x999999a1}, /* 1.10000=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3ff1c28f, 0x60000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.11000=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3ff1eb85, 0x20000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.12000=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ff2147a, 0xe0000000, 0x3ff2147a, 0xe147ae1c}, /* 1.13000=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3ff23d70, 0xa0000000, 0x3ff23d70, 0xa3d70a45}, /* 1.14000=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ff26666, 0x60000000, 0x3ff26666, 0x6666666e}, /* 1.15000=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ff28f5c, 0x20000000, 0x3ff28f5c, 0x28f5c297}, /* 1.16000=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3ff2b851, 0xe0000000, 0x3ff2b851, 0xeb851ec0}, /* 1.17000=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3ff2e147, 0xa0000000, 0x3ff2e147, 0xae147ae9}, /* 1.18000=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3ff30a3d, 0x80000000, 0x3ff30a3d, 0x70a3d712}, /* 1.19000=f(1.19000)*/ +{64, 0,123,__LINE__, 0x401921fb, 0x60000000, 0xc01921fb, 0x54442d18}, /* 6.28318=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x4012d97c, 0x80000000, 0xc012d97c, 0x7f3321d2}, /* 4.71238=f(-4.71238)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x60000000, 0xc00921fb, 0x54442d18}, /* 3.14159=f(-3.14159)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0xbff921fb, 0x54442d18}, /* 1.57079=f(-1.57079)*/ +{ 0, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0x3ff921fb, 0x54442d18}, /* 1.57079=f(1.57079)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x60000000, 0x400921fb, 0x54442d18}, /* 3.14159=f(3.14159)*/ +{64, 0,123,__LINE__, 0x4012d97c, 0x80000000, 0x4012d97c, 0x7f3321d2}, /* 4.71238=f(4.71238)*/ +{64, 0,123,__LINE__, 0x403e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* 30.0000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x403c4ccc, 0xc0000000, 0xc03c4ccc, 0xcccccccd}, /* 28.2999=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x403a9999, 0xa0000000, 0xc03a9999, 0x9999999a}, /* 26.6000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x4038e666, 0x60000000, 0xc038e666, 0x66666667}, /* 24.9000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x40373333, 0x40000000, 0xc0373333, 0x33333334}, /* 23.2000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x40358000, 0x00000000, 0xc0358000, 0x00000001}, /* 21.5000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0x4033cccc, 0xc0000000, 0xc033cccc, 0xccccccce}, /* 19.7999=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x40321999, 0xa0000000, 0xc0321999, 0x9999999b}, /* 18.1000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x40306666, 0x60000000, 0xc0306666, 0x66666668}, /* 16.4000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x402d6666, 0x60000000, 0xc02d6666, 0x6666666a}, /* 14.7000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x402a0000, 0x00000000, 0xc02a0000, 0x00000004}, /* 13.0000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x40269999, 0xa0000000, 0xc0269999, 0x9999999e}, /* 11.3000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x40233333, 0x40000000, 0xc0233333, 0x33333338}, /* 9.60000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x401f9999, 0xa0000000, 0xc01f9999, 0x999999a3}, /* 7.90000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x4018cccc, 0xc0000000, 0xc018cccc, 0xccccccd6}, /* 6.20000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x40120000, 0x00000000, 0xc0120000, 0x00000009}, /* 4.50000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x40066666, 0x60000000, 0xc0066666, 0x66666678}, /* 2.80000=f(-2.80000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0xa0000000, 0xbff19999, 0x999999bd}, /* 1.10000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0x3fe33333, 0x333332ec}, /* 0.60000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x40026666, 0x60000000, 0x40026666, 0x66666654}, /* 2.30000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400fffff, 0xffffffee}, /* 4.00000=f(4.00000)*/ +{64, 0,123,__LINE__, 0x4016cccc, 0xc0000000, 0x4016cccc, 0xccccccc4}, /* 5.70000=f(5.70000)*/ +{64, 0,123,__LINE__, 0x401d9999, 0xa0000000, 0x401d9999, 0x99999991}, /* 7.40000=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40223333, 0x40000000, 0x40223333, 0x3333332f}, /* 9.10000=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40259999, 0xa0000000, 0x40259999, 0x99999995}, /* 10.8000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x40290000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 12.5000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x402c6666, 0x60000000, 0x402c6666, 0x66666661}, /* 14.2000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x402fcccc, 0xc0000000, 0x402fcccc, 0xccccccc7}, /* 15.9000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x40319999, 0xa0000000, 0x40319999, 0x99999997}, /* 17.6000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x40334ccc, 0xc0000000, 0x40334ccc, 0xccccccca}, /* 19.2999=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40350000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 21.0000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x4036b333, 0x40000000, 0x4036b333, 0x33333330}, /* 22.7000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x40386666, 0x60000000, 0x40386666, 0x66666663}, /* 24.4000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x403a1999, 0xa0000000, 0x403a1999, 0x99999996}, /* 26.1000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x403bcccc, 0xc0000000, 0x403bcccc, 0xccccccc9}, /* 27.7999=f(27.8000)*/ +{64, 0,123,__LINE__, 0x403d8000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 29.5000=f(29.5000)*/ +0,}; +test_fabsf(m) {run_vector_1(m,fabsf_vec,(char *)(fabsf),"fabsf","ff"); } diff --git a/newlib/libm/test/floor_vec.c b/newlib/libm/test/floor_vec.c new file mode 100644 index 000000000..2272a7dfa --- /dev/null +++ b/newlib/libm/test/floor_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type floor_vec[] = { +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff33333, 0x33333333}, /* -2.00000=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* -2.00000=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* -2.00000=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -2.00000=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* -2.00000=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff26666, 0x66666666}, /* -2.00000=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* -2.00000=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* -2.00000=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -2.00000=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -2.00000=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff19999, 0x99999999}, /* -2.00000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* -2.00000=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff147ae, 0x147ae147}, /* -2.00000=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* -2.00000=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* -2.00000=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* -2.00000=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* -2.00000=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* -2.00000=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff051eb, 0x851eb851}, /* -2.00000=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -2.00000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* -1.00000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* -1.00000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* -1.00000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* -1.00000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* -1.00000=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfee6666, 0x66666664}, /* -1.00000=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* -1.00000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* -1.00000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* -1.00000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* -1.00000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* -1.00000=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* -1.00000=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* -1.00000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* -1.00000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* -1.00000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeb3333, 0x33333330}, /* -1.00000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeae147, 0xae147ade}, /* -1.00000=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* -1.00000=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* -1.00000=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* -1.00000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe99999, 0x99999996}, /* -1.00000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* -1.00000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -1.00000=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -1.00000=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* -1.00000=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* -1.00000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* -1.00000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* -1.00000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* -1.00000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* -1.00000=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe66666, 0x66666662}, /* -1.00000=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* -1.00000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* -1.00000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* -1.00000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* -1.00000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* -1.00000=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* -1.00000=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* -1.00000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* -1.00000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* -1.00000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe33333, 0x3333332e}, /* -1.00000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* -1.00000=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* -1.00000=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* -1.00000=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* -1.00000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe19999, 0x99999994}, /* -1.00000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* -1.00000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -1.00000=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* -1.00000=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* -1.00000=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* -1.00000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* -1.00000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* -1.00000=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* -1.00000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* -1.00000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* -1.00000=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* -1.00000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* -1.00000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* -1.00000=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* -1.00000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd99999, 0x9999998c}, /* -1.00000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -1.00000=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* -1.00000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* -1.00000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* -1.00000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd66666, 0x66666658}, /* -1.00000=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* -1.00000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* -1.00000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* -1.00000=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* -1.00000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd33333, 0x33333324}, /* -1.00000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* -1.00000=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* -1.00000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* -1.00000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* -1.00000=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* -1.00000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* -1.00000=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* -1.00000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* -1.00000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* -1.00000=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc99999, 0x99999978}, /* -1.00000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* -1.00000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* -1.00000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* -1.00000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* -1.00000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc33333, 0x33333310}, /* -1.00000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* -1.00000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* -1.00000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* -1.00000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* -1.00000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb99999, 0x99999953}, /* -1.00000=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* -1.00000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* -1.00000=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* -1.00000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* -1.00000=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfa99999, 0x9999990e}, /* -1.00000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* -1.00000=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* -1.00000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* -1.00000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* -1.00000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3cd19000, 0x00000000}, /* 0.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 0.00000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 0.00000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 0.00000=f(0.04000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 0.00000=f(0.05000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 0.00000=f(0.06000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 0.00000=f(0.07000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.00000=f(0.08000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 0.00000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb99999, 0x999999df}, /* 0.00000=f(0.10000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.00000=f(0.11000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 0.00000=f(0.12000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.00000=f(0.13000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.00000=f(0.14000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc33333, 0x33333356}, /* 0.00000=f(0.15000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 0.00000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.00000=f(0.17000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.00000=f(0.18000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 0.00000=f(0.19000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc99999, 0x999999be}, /* 0.00000=f(0.20000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 0.00000=f(0.21000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.00000=f(0.22000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.00000=f(0.23000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 0.00000=f(0.24000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.00000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.00000=f(0.26000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 0.00000=f(0.27000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.00000=f(0.28000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.00000=f(0.29000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd33333, 0x33333347}, /* 0.00000=f(0.30000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.00000=f(0.31000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 0.00000=f(0.32000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.00000=f(0.33000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.00000=f(0.34000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 0.00000=f(0.35000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.00000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.00000=f(0.37000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 0.00000=f(0.38000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.00000=f(0.39000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd99999, 0x999999af}, /* 0.00000=f(0.40000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 0.00000=f(0.41000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 0.00000=f(0.42000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 0.00000=f(0.43000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.00000=f(0.44000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 0.00000=f(0.45000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.00000=f(0.46000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 0.00000=f(0.47000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 0.00000=f(0.48000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.00000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 0.00000=f(0.50000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 0.00000=f(0.51000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.00000=f(0.52000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.00000=f(0.53000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 0.00000=f(0.54000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 0.00000=f(0.55000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.00000=f(0.56000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 0.00000=f(0.57000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.00000=f(0.58000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 0.00000=f(0.59000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.00000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 0.00000=f(0.61000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.00000=f(0.62000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 0.00000=f(0.63000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 0.00000=f(0.64000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.00000=f(0.65000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.00000=f(0.66000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.00000=f(0.67000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.00000=f(0.68000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 0.00000=f(0.69000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe66666, 0x66666673}, /* 0.00000=f(0.70000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 0.00000=f(0.71000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 0.00000=f(0.72000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 0.00000=f(0.73000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.00000=f(0.74000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 0.00000=f(0.75000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 0.00000=f(0.76000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.00000=f(0.77000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.00000=f(0.78000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 0.00000=f(0.79000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 0.00000=f(0.80000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.00000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.00000=f(0.82000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.00000=f(0.83000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feae147, 0xae147aef}, /* 0.00000=f(0.84000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feb3333, 0x33333341}, /* 0.00000=f(0.85000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 0.00000=f(0.86000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 0.00000=f(0.87000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 0.00000=f(0.88000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 0.00000=f(0.89000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 0.00000=f(0.90000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 0.00000=f(0.91000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.00000=f(0.92000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.00000=f(0.93000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 0.00000=f(0.94000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fee6666, 0x66666675}, /* 0.00000=f(0.95000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 0.00000=f(0.96000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 0.00000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.00000=f(0.98000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 0.00000=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 1.00000=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 1.00000=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 1.00000=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.00000=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 1.00000=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.00000=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 1.00000=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 1.00000=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 1.00000=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 1.00000=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.00000=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.00000=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 1.00000=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 1.00000=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 1.00000=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 1.00000=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 1.00000=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 1.00000=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 1.00000=f(1.19000)*/ +{64, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -7.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xc0140000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* -5.00000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc00921fb, 0x54442d18}, /* -4.00000=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff921fb, 0x54442d18}, /* -2.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 1.00000=f(1.57079)*/ +{64, 0,123,__LINE__, 0x40080000, 0x00000000, 0x400921fb, 0x54442d18}, /* 3.00000=f(3.14159)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 4.00000=f(4.71238)*/ +{64, 0,123,__LINE__, 0xc03e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* -30.0000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xc03d0000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -29.0000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xc03b0000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -27.0000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0xc0390000, 0x00000000, 0xc038e666, 0x66666667}, /* -25.0000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xc0380000, 0x00000000, 0xc0373333, 0x33333334}, /* -24.0000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xc0360000, 0x00000000, 0xc0358000, 0x00000001}, /* -22.0000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xc0340000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -20.0000=f(-19.8000)*/ +{64, 0,123,__LINE__, 0xc0330000, 0x00000000, 0xc0321999, 0x9999999b}, /* -19.0000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xc0310000, 0x00000000, 0xc0306666, 0x66666668}, /* -17.0000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xc02e0000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -15.0000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xc02c0000, 0x00000000, 0xc02a0000, 0x00000004}, /* -14.0000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xc0280000, 0x00000000, 0xc0269999, 0x9999999e}, /* -12.0000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xc0240000, 0x00000000, 0xc0233333, 0x33333338}, /* -10.0000=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xc0200000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -8.00000=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -7.00000=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xc0140000, 0x00000000, 0xc0120000, 0x00000009}, /* -5.00000=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xc0080000, 0x00000000, 0xc0066666, 0x66666678}, /* -3.00000=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff19999, 0x999999bd}, /* -2.00000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.00000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x40000000, 0x00000000, 0x40026666, 0x66666654}, /* 2.00000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x40080000, 0x00000000, 0x400fffff, 0xffffffee}, /* 3.00000=f(4.00000)*/ +{64, 0,123,__LINE__, 0x40140000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 5.00000=f(5.70000)*/ +{64, 0,123,__LINE__, 0x401c0000, 0x00000000, 0x401d9999, 0x99999991}, /* 7.00000=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40220000, 0x00000000, 0x40223333, 0x3333332f}, /* 9.00000=f(9.10000)*/ +{64, 0,123,__LINE__, 0x40240000, 0x00000000, 0x40259999, 0x99999995}, /* 10.0000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x40280000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 12.0000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x402c0000, 0x00000000, 0x402c6666, 0x66666661}, /* 14.0000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x402e0000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 15.0000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x40310000, 0x00000000, 0x40319999, 0x99999997}, /* 17.0000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x40330000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 19.0000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40340000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 20.0000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x40360000, 0x00000000, 0x4036b333, 0x33333330}, /* 22.0000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x40380000, 0x00000000, 0x40386666, 0x66666663}, /* 24.0000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x403a0000, 0x00000000, 0x403a1999, 0x99999996}, /* 26.0000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x403b0000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 27.0000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x403d0000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 29.0000=f(29.5000)*/ +0,}; +test_floor(m) {run_vector_1(m,floor_vec,(char *)(floor),"floor","dd"); } diff --git a/newlib/libm/test/floorf_vec.c b/newlib/libm/test/floorf_vec.c new file mode 100644 index 000000000..f01e1e6b8 --- /dev/null +++ b/newlib/libm/test/floorf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type floorf_vec[] = { +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff33333, 0x33333333}, /* -2.00000=f(-1.20000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* -2.00000=f(-1.19000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* -2.00000=f(-1.18000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -2.00000=f(-1.17000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* -2.00000=f(-1.16000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff26666, 0x66666666}, /* -2.00000=f(-1.15000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* -2.00000=f(-1.14000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* -2.00000=f(-1.13000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* -2.00000=f(-1.12000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -2.00000=f(-1.11000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff19999, 0x99999999}, /* -2.00000=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* -2.00000=f(-1.09000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff147ae, 0x147ae147}, /* -2.00000=f(-1.08000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* -2.00000=f(-1.07000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* -2.00000=f(-1.06000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* -2.00000=f(-1.05000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* -2.00000=f(-1.04000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* -2.00000=f(-1.03000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff051eb, 0x851eb851}, /* -2.00000=f(-1.02000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -2.00000=f(-1.01000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* -1.00000=f(-0.01000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* -1.00000=f(-0.99000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* -1.00000=f(-0.98000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* -1.00000=f(-0.97000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* -1.00000=f(-0.96000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfee6666, 0x66666664}, /* -1.00000=f(-0.95000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* -1.00000=f(-0.94000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* -1.00000=f(-0.93000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* -1.00000=f(-0.92000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* -1.00000=f(-0.91000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* -1.00000=f(-0.90000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* -1.00000=f(-0.89000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* -1.00000=f(-0.88000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* -1.00000=f(-0.87000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* -1.00000=f(-0.86000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeb3333, 0x33333330}, /* -1.00000=f(-0.85000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfeae147, 0xae147ade}, /* -1.00000=f(-0.84000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* -1.00000=f(-0.83000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* -1.00000=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* -1.00000=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe99999, 0x99999996}, /* -1.00000=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* -1.00000=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -1.00000=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -1.00000=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* -1.00000=f(-0.76000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* -1.00000=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* -1.00000=f(-0.74000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* -1.00000=f(-0.73000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* -1.00000=f(-0.72000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* -1.00000=f(-0.71000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe66666, 0x66666662}, /* -1.00000=f(-0.70000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* -1.00000=f(-0.69000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* -1.00000=f(-0.68000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* -1.00000=f(-0.67000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* -1.00000=f(-0.66000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* -1.00000=f(-0.65000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* -1.00000=f(-0.64000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* -1.00000=f(-0.63000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* -1.00000=f(-0.62000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* -1.00000=f(-0.61000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe33333, 0x3333332e}, /* -1.00000=f(-0.60000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* -1.00000=f(-0.59000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* -1.00000=f(-0.58000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* -1.00000=f(-0.57000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* -1.00000=f(-0.56000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe19999, 0x99999994}, /* -1.00000=f(-0.55000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* -1.00000=f(-0.54000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -1.00000=f(-0.53000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* -1.00000=f(-0.52000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* -1.00000=f(-0.51000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* -1.00000=f(-0.50000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* -1.00000=f(-0.49000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* -1.00000=f(-0.48000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* -1.00000=f(-0.47000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* -1.00000=f(-0.46000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* -1.00000=f(-0.45000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* -1.00000=f(-0.44000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* -1.00000=f(-0.43000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* -1.00000=f(-0.42000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* -1.00000=f(-0.41000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd99999, 0x9999998c}, /* -1.00000=f(-0.40000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -1.00000=f(-0.39000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* -1.00000=f(-0.38000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* -1.00000=f(-0.37000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* -1.00000=f(-0.36000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd66666, 0x66666658}, /* -1.00000=f(-0.35000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* -1.00000=f(-0.34000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* -1.00000=f(-0.33000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* -1.00000=f(-0.32000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* -1.00000=f(-0.31000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd33333, 0x33333324}, /* -1.00000=f(-0.30000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* -1.00000=f(-0.29000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* -1.00000=f(-0.28000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* -1.00000=f(-0.27000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* -1.00000=f(-0.26000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* -1.00000=f(-0.25000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* -1.00000=f(-0.24000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* -1.00000=f(-0.23000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* -1.00000=f(-0.22000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* -1.00000=f(-0.21000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc99999, 0x99999978}, /* -1.00000=f(-0.20000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* -1.00000=f(-0.19000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* -1.00000=f(-0.18000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* -1.00000=f(-0.17000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* -1.00000=f(-0.16000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc33333, 0x33333310}, /* -1.00000=f(-0.15000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* -1.00000=f(-0.14000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* -1.00000=f(-0.13000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* -1.00000=f(-0.12000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* -1.00000=f(-0.11000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb99999, 0x99999953}, /* -1.00000=f(-0.00100)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* -1.00000=f(-0.09000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* -1.00000=f(-0.08000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* -1.00000=f(-0.07000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* -1.00000=f(-0.06000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfa99999, 0x9999990e}, /* -1.00000=f(-0.05000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* -1.00000=f(-0.04000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* -1.00000=f(-0.03000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* -1.00000=f(-0.02000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* -1.00000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3cd19000, 0x00000000}, /* 0.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 0.00000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 0.00000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fa47ae1, 0x47ae1508}, /* 0.00000=f(0.04000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fa99999, 0x99999a27}, /* 0.00000=f(0.05000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 0.00000=f(0.06000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb1eb85, 0x1eb85232}, /* 0.00000=f(0.07000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.00000=f(0.08000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb70a3d, 0x70a3d750}, /* 0.00000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fb99999, 0x999999df}, /* 0.00000=f(0.10000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.00000=f(0.11000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fbeb851, 0xeb851efd}, /* 0.00000=f(0.12000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.00000=f(0.13000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.00000=f(0.14000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc33333, 0x33333356}, /* 0.00000=f(0.15000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 0.00000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.00000=f(0.17000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.00000=f(0.18000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc851eb, 0x851eb876}, /* 0.00000=f(0.19000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fc99999, 0x999999be}, /* 0.00000=f(0.20000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcae147, 0xae147b06}, /* 0.00000=f(0.21000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.00000=f(0.22000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.00000=f(0.23000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 0.00000=f(0.24000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.00000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.00000=f(0.26000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd147ae, 0x147ae15b}, /* 0.00000=f(0.27000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.00000=f(0.28000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.00000=f(0.29000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd33333, 0x33333347}, /* 0.00000=f(0.30000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.00000=f(0.31000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 0.00000=f(0.32000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.00000=f(0.33000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.00000=f(0.34000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd66666, 0x6666667b}, /* 0.00000=f(0.35000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.00000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.00000=f(0.37000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd851eb, 0x851eb867}, /* 0.00000=f(0.38000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.00000=f(0.39000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fd99999, 0x999999af}, /* 0.00000=f(0.40000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fda3d70, 0xa3d70a53}, /* 0.00000=f(0.41000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdae147, 0xae147af7}, /* 0.00000=f(0.42000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdb851e, 0xb851eb9b}, /* 0.00000=f(0.43000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.00000=f(0.44000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdccccc, 0xcccccce3}, /* 0.00000=f(0.45000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.00000=f(0.46000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 0.00000=f(0.47000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdeb851, 0xeb851ecf}, /* 0.00000=f(0.48000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.00000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe00000, 0x0000000b}, /* 0.00000=f(0.50000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 0.00000=f(0.51000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.00000=f(0.52000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.00000=f(0.53000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe147ae, 0x147ae153}, /* 0.00000=f(0.54000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe19999, 0x999999a5}, /* 0.00000=f(0.55000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.00000=f(0.56000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 0.00000=f(0.57000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.00000=f(0.58000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 0.00000=f(0.59000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.00000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe3851e, 0xb851eb91}, /* 0.00000=f(0.61000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.00000=f(0.62000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe428f5, 0xc28f5c35}, /* 0.00000=f(0.63000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe47ae1, 0x47ae1487}, /* 0.00000=f(0.64000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.00000=f(0.65000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.00000=f(0.66000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.00000=f(0.67000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.00000=f(0.68000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 0.00000=f(0.69000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe66666, 0x66666673}, /* 0.00000=f(0.70000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 0.00000=f(0.71000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 0.00000=f(0.72000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe75c28, 0xf5c28f69}, /* 0.00000=f(0.73000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.00000=f(0.74000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe80000, 0x0000000d}, /* 0.00000=f(0.75000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe851eb, 0x851eb85f}, /* 0.00000=f(0.76000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.00000=f(0.77000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.00000=f(0.78000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe947ae, 0x147ae155}, /* 0.00000=f(0.79000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe99999, 0x999999a7}, /* 0.00000=f(0.80000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.00000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.00000=f(0.82000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.00000=f(0.83000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feae147, 0xae147aef}, /* 0.00000=f(0.84000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feb3333, 0x33333341}, /* 0.00000=f(0.85000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 0.00000=f(0.86000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3febd70a, 0x3d70a3e5}, /* 0.00000=f(0.87000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 0.00000=f(0.88000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fec7ae1, 0x47ae1489}, /* 0.00000=f(0.89000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 0.00000=f(0.90000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 0.00000=f(0.91000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.00000=f(0.92000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.00000=f(0.93000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 0.00000=f(0.94000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fee6666, 0x66666675}, /* 0.00000=f(0.95000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 0.00000=f(0.96000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 0.00000=f(0.97000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.00000=f(0.98000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* 0.00000=f(0.99000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 1.00000=f(1.01000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff051eb, 0x851eb859}, /* 1.00000=f(1.02000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff07ae1, 0x47ae1482}, /* 1.00000=f(1.03000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.00000=f(1.04000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccd4}, /* 1.00000=f(1.05000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.00000=f(1.06000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff11eb8, 0x51eb8526}, /* 1.00000=f(1.07000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* 1.00000=f(1.08000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 1.00000=f(1.09000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff19999, 0x999999a1}, /* 1.00000=f(1.10000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.00000=f(1.11000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.00000=f(1.12000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* 1.00000=f(1.13000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff23d70, 0xa3d70a45}, /* 1.00000=f(1.14000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff26666, 0x6666666e}, /* 1.00000=f(1.15000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* 1.00000=f(1.16000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 1.00000=f(1.17000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff2e147, 0xae147ae9}, /* 1.00000=f(1.18000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff30a3d, 0x70a3d712}, /* 1.00000=f(1.19000)*/ +{13, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc01921fb, 0x54442d18}, /* -7.00000=f(-6.28318)*/ +{13, 0,123,__LINE__, 0xc0140000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* -5.00000=f(-4.71238)*/ +{11, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc00921fb, 0x54442d18}, /* -4.00000=f(-3.14159)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff921fb, 0x54442d18}, /* -2.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff921fb, 0x54442d18}, /* 1.00000=f(1.57079)*/ +{15, 0,123,__LINE__, 0x40080000, 0x00000000, 0x400921fb, 0x54442d18}, /* 3.00000=f(3.14159)*/ +{14, 0,123,__LINE__, 0x40100000, 0x00000000, 0x4012d97c, 0x7f3321d2}, /* 4.00000=f(4.71238)*/ +{64, 0,123,__LINE__, 0xc03e0000, 0x00000000, 0xc03e0000, 0x00000000}, /* -30.0000=f(-30.0000)*/ +{15, 0,123,__LINE__, 0xc03d0000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -29.0000=f(-28.3000)*/ +{15, 0,123,__LINE__, 0xc03b0000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -27.0000=f(-26.6000)*/ +{15, 0,123,__LINE__, 0xc0390000, 0x00000000, 0xc038e666, 0x66666667}, /* -25.0000=f(-24.9000)*/ +{12, 0,123,__LINE__, 0xc0380000, 0x00000000, 0xc0373333, 0x33333334}, /* -24.0000=f(-23.2000)*/ +{14, 0,123,__LINE__, 0xc0360000, 0x00000000, 0xc0358000, 0x00000001}, /* -22.0000=f(-21.5000)*/ +{13, 0,123,__LINE__, 0xc0340000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -20.0000=f(-19.8000)*/ +{15, 0,123,__LINE__, 0xc0330000, 0x00000000, 0xc0321999, 0x9999999b}, /* -19.0000=f(-18.1000)*/ +{15, 0,123,__LINE__, 0xc0310000, 0x00000000, 0xc0306666, 0x66666668}, /* -17.0000=f(-16.4000)*/ +{14, 0,123,__LINE__, 0xc02e0000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -15.0000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xc02a0000, 0x00000000, 0xc02a0000, 0x00000004}, /* -13.0000=f(-13.0000)*/ +{12, 0,123,__LINE__, 0xc0280000, 0x00000000, 0xc0269999, 0x9999999e}, /* -12.0000=f(-11.3000)*/ +{13, 0,123,__LINE__, 0xc0240000, 0x00000000, 0xc0233333, 0x33333338}, /* -10.0000=f(-9.60000)*/ +{10, 0,123,__LINE__, 0xc0200000, 0x00000000, 0xc01f9999, 0x999999a3}, /* -8.00000=f(-7.90000)*/ +{13, 0,123,__LINE__, 0xc01c0000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* -7.00000=f(-6.20000)*/ +{13, 0,123,__LINE__, 0xc0140000, 0x00000000, 0xc0120000, 0x00000009}, /* -5.00000=f(-4.50000)*/ +{12, 0,123,__LINE__, 0xc0080000, 0x00000000, 0xc0066666, 0x66666678}, /* -3.00000=f(-2.80000)*/ +{ 1, 0,123,__LINE__, 0xc0000000, 0x00000000, 0xbff19999, 0x999999bd}, /* -2.00000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.00000=f(0.60000)*/ +{14, 0,123,__LINE__, 0x40000000, 0x00000000, 0x40026666, 0x66666654}, /* 2.00000=f(2.30000)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400fffff, 0xffffffee}, /* 4.00000=f(4.00000)*/ +{14, 0,123,__LINE__, 0x40140000, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 5.00000=f(5.70000)*/ +{15, 0,123,__LINE__, 0x401c0000, 0x00000000, 0x401d9999, 0x99999991}, /* 7.00000=f(7.40000)*/ +{18, 0,123,__LINE__, 0x40220000, 0x00000000, 0x40223333, 0x3333332f}, /* 9.00000=f(9.10000)*/ +{15, 0,123,__LINE__, 0x40240000, 0x00000000, 0x40259999, 0x99999995}, /* 10.0000=f(10.8000)*/ +{15, 0,123,__LINE__, 0x40280000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 12.0000=f(12.5000)*/ +{17, 0,123,__LINE__, 0x402c0000, 0x00000000, 0x402c6666, 0x66666661}, /* 14.0000=f(14.2000)*/ +{15, 0,123,__LINE__, 0x402e0000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 15.0000=f(15.9000)*/ +{16, 0,123,__LINE__, 0x40310000, 0x00000000, 0x40319999, 0x99999997}, /* 17.0000=f(17.6000)*/ +{17, 0,123,__LINE__, 0x40330000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 19.0000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40350000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 21.0000=f(21.0000)*/ +{16, 0,123,__LINE__, 0x40360000, 0x00000000, 0x4036b333, 0x33333330}, /* 22.0000=f(22.7000)*/ +{17, 0,123,__LINE__, 0x40380000, 0x00000000, 0x40386666, 0x66666663}, /* 24.0000=f(24.4000)*/ +{19, 0,123,__LINE__, 0x403a0000, 0x00000000, 0x403a1999, 0x99999996}, /* 26.0000=f(26.1000)*/ +{16, 0,123,__LINE__, 0x403b0000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 27.0000=f(27.8000)*/ +{16, 0,123,__LINE__, 0x403d0000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 29.0000=f(29.5000)*/ +0,}; +test_floorf(m) {run_vector_1(m,floorf_vec,(char *)(floorf),"floorf","ff"); } diff --git a/newlib/libm/test/fmod_vec.c b/newlib/libm/test/fmod_vec.c new file mode 100644 index 000000000..4357c845b --- /dev/null +++ b/newlib/libm/test/fmod_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type fmod_vec[] = { +{64, 0,123,__LINE__, 0xbff33333, 0x33333333, 0xbff33333, 0x33333333, 0x40066666, 0x66666666}, /* -1.20000=f(-1.20000, v2.80000)*/ +{64, 0,123,__LINE__, 0xbff30a3d, 0x70a3d70a, 0xbff30a3d, 0x70a3d70a, 0x40067ae1, 0x47ae147b}, /* -1.19000=f(-1.19000, v2.81000)*/ +{64, 0,123,__LINE__, 0xbff2e147, 0xae147ae1, 0xbff2e147, 0xae147ae1, 0x40068f5c, 0x28f5c290}, /* -1.18000=f(-1.18000, v2.82000)*/ +{64, 0,123,__LINE__, 0xbff2b851, 0xeb851eb8, 0xbff2b851, 0xeb851eb8, 0x4006a3d7, 0x0a3d70a4}, /* -1.17000=f(-1.17000, v2.83000)*/ +{64, 0,123,__LINE__, 0xbff28f5c, 0x28f5c28f, 0xbff28f5c, 0x28f5c28f, 0x4006b851, 0xeb851eb8}, /* -1.16000=f(-1.16000, v2.84000)*/ +{64, 0,123,__LINE__, 0xbff26666, 0x66666666, 0xbff26666, 0x66666666, 0x4006cccc, 0xcccccccd}, /* -1.15000=f(-1.15000, v2.85000)*/ +{64, 0,123,__LINE__, 0xbff23d70, 0xa3d70a3d, 0xbff23d70, 0xa3d70a3d, 0x4006e147, 0xae147ae2}, /* -1.14000=f(-1.14000, v2.86000)*/ +{64, 0,123,__LINE__, 0xbff2147a, 0xe147ae14, 0xbff2147a, 0xe147ae14, 0x4006f5c2, 0x8f5c28f6}, /* -1.13000=f(-1.13000, v2.87000)*/ +{64, 0,123,__LINE__, 0xbff1eb85, 0x1eb851eb, 0xbff1eb85, 0x1eb851eb, 0x40070a3d, 0x70a3d70a}, /* -1.12000=f(-1.12000, v2.88000)*/ +{64, 0,123,__LINE__, 0xbff1c28f, 0x5c28f5c2, 0xbff1c28f, 0x5c28f5c2, 0x40071eb8, 0x51eb851f}, /* -1.11000=f(-1.11000, v2.89000)*/ +{64, 0,123,__LINE__, 0xbff19999, 0x99999999, 0xbff19999, 0x99999999, 0x40073333, 0x33333334}, /* -1.10000=f(-1.10000, v2.90000)*/ +{64, 0,123,__LINE__, 0xbff170a3, 0xd70a3d70, 0xbff170a3, 0xd70a3d70, 0x400747ae, 0x147ae148}, /* -1.09000=f(-1.09000, v2.91000)*/ +{64, 0,123,__LINE__, 0xbff147ae, 0x147ae147, 0xbff147ae, 0x147ae147, 0x40075c28, 0xf5c28f5c}, /* -1.08000=f(-1.08000, v2.92000)*/ +{64, 0,123,__LINE__, 0xbff11eb8, 0x51eb851e, 0xbff11eb8, 0x51eb851e, 0x400770a3, 0xd70a3d71}, /* -1.07000=f(-1.07000, v2.93000)*/ +{64, 0,123,__LINE__, 0xbff0f5c2, 0x8f5c28f5, 0xbff0f5c2, 0x8f5c28f5, 0x4007851e, 0xb851eb86}, /* -1.06000=f(-1.06000, v2.94000)*/ +{64, 0,123,__LINE__, 0xbff0cccc, 0xcccccccc, 0xbff0cccc, 0xcccccccc, 0x40079999, 0x9999999a}, /* -1.05000=f(-1.05000, v2.95000)*/ +{64, 0,123,__LINE__, 0xbff0a3d7, 0x0a3d70a3, 0xbff0a3d7, 0x0a3d70a3, 0x4007ae14, 0x7ae147ae}, /* -1.04000=f(-1.04000, v2.96000)*/ +{64, 0,123,__LINE__, 0xbff07ae1, 0x47ae147a, 0xbff07ae1, 0x47ae147a, 0x4007c28f, 0x5c28f5c3}, /* -1.03000=f(-1.03000, v2.97000)*/ +{64, 0,123,__LINE__, 0xbff051eb, 0x851eb851, 0xbff051eb, 0x851eb851, 0x4007d70a, 0x3d70a3d8}, /* -1.02000=f(-1.02000, v2.98000)*/ +{64, 0,123,__LINE__, 0xbff028f5, 0xc28f5c28, 0xbff028f5, 0xc28f5c28, 0x4007eb85, 0x1eb851ec}, /* -1.01000=f(-1.01000, v2.99000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfffffffe, 0xbfefffff, 0xfffffffe, 0x40080000, 0x00000000}, /* -0.01000=f(-0.01000, v3.00000)*/ +{64, 0,123,__LINE__, 0xbfefae14, 0x7ae147ac, 0xbfefae14, 0x7ae147ac, 0x4008147a, 0xe147ae15}, /* -0.99000=f(-0.99000, v3.01000)*/ +{64, 0,123,__LINE__, 0xbfef5c28, 0xf5c28f5a, 0xbfef5c28, 0xf5c28f5a, 0x400828f5, 0xc28f5c2a}, /* -0.98000=f(-0.98000, v3.02000)*/ +{64, 0,123,__LINE__, 0xbfef0a3d, 0x70a3d708, 0xbfef0a3d, 0x70a3d708, 0x40083d70, 0xa3d70a3e}, /* -0.97000=f(-0.97000, v3.03000)*/ +{64, 0,123,__LINE__, 0xbfeeb851, 0xeb851eb6, 0xbfeeb851, 0xeb851eb6, 0x400851eb, 0x851eb852}, /* -0.96000=f(-0.96000, v3.04000)*/ +{64, 0,123,__LINE__, 0xbfee6666, 0x66666664, 0xbfee6666, 0x66666664, 0x40086666, 0x66666667}, /* -0.95000=f(-0.95000, v3.05000)*/ +{64, 0,123,__LINE__, 0xbfee147a, 0xe147ae12, 0xbfee147a, 0xe147ae12, 0x40087ae1, 0x47ae147c}, /* -0.94000=f(-0.94000, v3.06000)*/ +{64, 0,123,__LINE__, 0xbfedc28f, 0x5c28f5c0, 0xbfedc28f, 0x5c28f5c0, 0x40088f5c, 0x28f5c290}, /* -0.93000=f(-0.93000, v3.07000)*/ +{64, 0,123,__LINE__, 0xbfed70a3, 0xd70a3d6e, 0xbfed70a3, 0xd70a3d6e, 0x4008a3d7, 0x0a3d70a4}, /* -0.92000=f(-0.92000, v3.08000)*/ +{64, 0,123,__LINE__, 0xbfed1eb8, 0x51eb851c, 0xbfed1eb8, 0x51eb851c, 0x4008b851, 0xeb851eb9}, /* -0.91000=f(-0.91000, v3.09000)*/ +{64, 0,123,__LINE__, 0xbfeccccc, 0xccccccca, 0xbfeccccc, 0xccccccca, 0x4008cccc, 0xccccccce}, /* -0.90000=f(-0.90000, v3.10000)*/ +{64, 0,123,__LINE__, 0xbfec7ae1, 0x47ae1478, 0xbfec7ae1, 0x47ae1478, 0x4008e147, 0xae147ae2}, /* -0.89000=f(-0.89000, v3.11000)*/ +{64, 0,123,__LINE__, 0xbfec28f5, 0xc28f5c26, 0xbfec28f5, 0xc28f5c26, 0x4008f5c2, 0x8f5c28f6}, /* -0.88000=f(-0.88000, v3.12000)*/ +{64, 0,123,__LINE__, 0xbfebd70a, 0x3d70a3d4, 0xbfebd70a, 0x3d70a3d4, 0x40090a3d, 0x70a3d70b}, /* -0.87000=f(-0.87000, v3.13000)*/ +{64, 0,123,__LINE__, 0xbfeb851e, 0xb851eb82, 0xbfeb851e, 0xb851eb82, 0x40091eb8, 0x51eb8520}, /* -0.86000=f(-0.86000, v3.14000)*/ +{64, 0,123,__LINE__, 0xbfeb3333, 0x33333330, 0xbfeb3333, 0x33333330, 0x40093333, 0x33333334}, /* -0.85000=f(-0.85000, v3.15000)*/ +{64, 0,123,__LINE__, 0xbfeae147, 0xae147ade, 0xbfeae147, 0xae147ade, 0x400947ae, 0x147ae148}, /* -0.84000=f(-0.84000, v3.16000)*/ +{64, 0,123,__LINE__, 0xbfea8f5c, 0x28f5c28c, 0xbfea8f5c, 0x28f5c28c, 0x40095c28, 0xf5c28f5d}, /* -0.83000=f(-0.83000, v3.17000)*/ +{64, 0,123,__LINE__, 0xbfea3d70, 0xa3d70a3a, 0xbfea3d70, 0xa3d70a3a, 0x400970a3, 0xd70a3d72}, /* -0.82000=f(-0.82000, v3.18000)*/ +{64, 0,123,__LINE__, 0xbfe9eb85, 0x1eb851e8, 0xbfe9eb85, 0x1eb851e8, 0x4009851e, 0xb851eb86}, /* -0.81000=f(-0.81000, v3.19000)*/ +{64, 0,123,__LINE__, 0xbfe99999, 0x99999996, 0xbfe99999, 0x99999996, 0x40099999, 0x9999999a}, /* -0.80000=f(-0.80000, v3.20000)*/ +{64, 0,123,__LINE__, 0xbfe947ae, 0x147ae144, 0xbfe947ae, 0x147ae144, 0x4009ae14, 0x7ae147af}, /* -0.79000=f(-0.79000, v3.21000)*/ +{64, 0,123,__LINE__, 0xbfe8f5c2, 0x8f5c28f2, 0xbfe8f5c2, 0x8f5c28f2, 0x4009c28f, 0x5c28f5c4}, /* -0.78000=f(-0.78000, v3.22000)*/ +{64, 0,123,__LINE__, 0xbfe8a3d7, 0x0a3d70a0, 0xbfe8a3d7, 0x0a3d70a0, 0x4009d70a, 0x3d70a3d8}, /* -0.77000=f(-0.77000, v3.23000)*/ +{64, 0,123,__LINE__, 0xbfe851eb, 0x851eb84e, 0xbfe851eb, 0x851eb84e, 0x4009eb85, 0x1eb851ec}, /* -0.76000=f(-0.76000, v3.24000)*/ +{64, 0,123,__LINE__, 0xbfe7ffff, 0xfffffffc, 0xbfe7ffff, 0xfffffffc, 0x400a0000, 0x00000001}, /* -0.75000=f(-0.75000, v3.25000)*/ +{64, 0,123,__LINE__, 0xbfe7ae14, 0x7ae147aa, 0xbfe7ae14, 0x7ae147aa, 0x400a147a, 0xe147ae16}, /* -0.74000=f(-0.74000, v3.26000)*/ +{64, 0,123,__LINE__, 0xbfe75c28, 0xf5c28f58, 0xbfe75c28, 0xf5c28f58, 0x400a28f5, 0xc28f5c2a}, /* -0.73000=f(-0.73000, v3.27000)*/ +{64, 0,123,__LINE__, 0xbfe70a3d, 0x70a3d706, 0xbfe70a3d, 0x70a3d706, 0x400a3d70, 0xa3d70a3e}, /* -0.72000=f(-0.72000, v3.28000)*/ +{64, 0,123,__LINE__, 0xbfe6b851, 0xeb851eb4, 0xbfe6b851, 0xeb851eb4, 0x400a51eb, 0x851eb853}, /* -0.71000=f(-0.71000, v3.29000)*/ +{64, 0,123,__LINE__, 0xbfe66666, 0x66666662, 0xbfe66666, 0x66666662, 0x400a6666, 0x66666668}, /* -0.70000=f(-0.70000, v3.30000)*/ +{64, 0,123,__LINE__, 0xbfe6147a, 0xe147ae10, 0xbfe6147a, 0xe147ae10, 0x400a7ae1, 0x47ae147c}, /* -0.69000=f(-0.69000, v3.31000)*/ +{64, 0,123,__LINE__, 0xbfe5c28f, 0x5c28f5be, 0xbfe5c28f, 0x5c28f5be, 0x400a8f5c, 0x28f5c290}, /* -0.68000=f(-0.68000, v3.32000)*/ +{64, 0,123,__LINE__, 0xbfe570a3, 0xd70a3d6c, 0xbfe570a3, 0xd70a3d6c, 0x400aa3d7, 0x0a3d70a5}, /* -0.67000=f(-0.67000, v3.33000)*/ +{64, 0,123,__LINE__, 0xbfe51eb8, 0x51eb851a, 0xbfe51eb8, 0x51eb851a, 0x400ab851, 0xeb851eba}, /* -0.66000=f(-0.66000, v3.34000)*/ +{64, 0,123,__LINE__, 0xbfe4cccc, 0xccccccc8, 0xbfe4cccc, 0xccccccc8, 0x400acccc, 0xccccccce}, /* -0.65000=f(-0.65000, v3.35000)*/ +{64, 0,123,__LINE__, 0xbfe47ae1, 0x47ae1476, 0xbfe47ae1, 0x47ae1476, 0x400ae147, 0xae147ae2}, /* -0.64000=f(-0.64000, v3.36000)*/ +{64, 0,123,__LINE__, 0xbfe428f5, 0xc28f5c24, 0xbfe428f5, 0xc28f5c24, 0x400af5c2, 0x8f5c28f7}, /* -0.63000=f(-0.63000, v3.37000)*/ +{64, 0,123,__LINE__, 0xbfe3d70a, 0x3d70a3d2, 0xbfe3d70a, 0x3d70a3d2, 0x400b0a3d, 0x70a3d70c}, /* -0.62000=f(-0.62000, v3.38000)*/ +{64, 0,123,__LINE__, 0xbfe3851e, 0xb851eb80, 0xbfe3851e, 0xb851eb80, 0x400b1eb8, 0x51eb8520}, /* -0.61000=f(-0.61000, v3.39000)*/ +{64, 0,123,__LINE__, 0xbfe33333, 0x3333332e, 0xbfe33333, 0x3333332e, 0x400b3333, 0x33333334}, /* -0.60000=f(-0.60000, v3.40000)*/ +{64, 0,123,__LINE__, 0xbfe2e147, 0xae147adc, 0xbfe2e147, 0xae147adc, 0x400b47ae, 0x147ae149}, /* -0.59000=f(-0.59000, v3.41000)*/ +{64, 0,123,__LINE__, 0xbfe28f5c, 0x28f5c28a, 0xbfe28f5c, 0x28f5c28a, 0x400b5c28, 0xf5c28f5e}, /* -0.58000=f(-0.58000, v3.42000)*/ +{64, 0,123,__LINE__, 0xbfe23d70, 0xa3d70a38, 0xbfe23d70, 0xa3d70a38, 0x400b70a3, 0xd70a3d72}, /* -0.57000=f(-0.57000, v3.43000)*/ +{64, 0,123,__LINE__, 0xbfe1eb85, 0x1eb851e6, 0xbfe1eb85, 0x1eb851e6, 0x400b851e, 0xb851eb86}, /* -0.56000=f(-0.56000, v3.44000)*/ +{64, 0,123,__LINE__, 0xbfe19999, 0x99999994, 0xbfe19999, 0x99999994, 0x400b9999, 0x9999999b}, /* -0.55000=f(-0.55000, v3.45000)*/ +{64, 0,123,__LINE__, 0xbfe147ae, 0x147ae142, 0xbfe147ae, 0x147ae142, 0x400bae14, 0x7ae147b0}, /* -0.54000=f(-0.54000, v3.46000)*/ +{64, 0,123,__LINE__, 0xbfe0f5c2, 0x8f5c28f0, 0xbfe0f5c2, 0x8f5c28f0, 0x400bc28f, 0x5c28f5c4}, /* -0.53000=f(-0.53000, v3.47000)*/ +{64, 0,123,__LINE__, 0xbfe0a3d7, 0x0a3d709e, 0xbfe0a3d7, 0x0a3d709e, 0x400bd70a, 0x3d70a3d8}, /* -0.52000=f(-0.52000, v3.48000)*/ +{64, 0,123,__LINE__, 0xbfe051eb, 0x851eb84c, 0xbfe051eb, 0x851eb84c, 0x400beb85, 0x1eb851ed}, /* -0.51000=f(-0.51000, v3.49000)*/ +{64, 0,123,__LINE__, 0xbfdfffff, 0xfffffff4, 0xbfdfffff, 0xfffffff4, 0x400c0000, 0x00000002}, /* -0.50000=f(-0.50000, v3.50000)*/ +{64, 0,123,__LINE__, 0xbfdf5c28, 0xf5c28f50, 0xbfdf5c28, 0xf5c28f50, 0x400c147a, 0xe147ae16}, /* -0.49000=f(-0.49000, v3.51000)*/ +{64, 0,123,__LINE__, 0xbfdeb851, 0xeb851eac, 0xbfdeb851, 0xeb851eac, 0x400c28f5, 0xc28f5c2a}, /* -0.48000=f(-0.48000, v3.52000)*/ +{64, 0,123,__LINE__, 0xbfde147a, 0xe147ae08, 0xbfde147a, 0xe147ae08, 0x400c3d70, 0xa3d70a3f}, /* -0.47000=f(-0.47000, v3.53000)*/ +{64, 0,123,__LINE__, 0xbfdd70a3, 0xd70a3d64, 0xbfdd70a3, 0xd70a3d64, 0x400c51eb, 0x851eb854}, /* -0.46000=f(-0.46000, v3.54000)*/ +{64, 0,123,__LINE__, 0xbfdccccc, 0xccccccc0, 0xbfdccccc, 0xccccccc0, 0x400c6666, 0x66666668}, /* -0.45000=f(-0.45000, v3.55000)*/ +{64, 0,123,__LINE__, 0xbfdc28f5, 0xc28f5c1c, 0xbfdc28f5, 0xc28f5c1c, 0x400c7ae1, 0x47ae147c}, /* -0.44000=f(-0.44000, v3.56000)*/ +{64, 0,123,__LINE__, 0xbfdb851e, 0xb851eb78, 0xbfdb851e, 0xb851eb78, 0x400c8f5c, 0x28f5c291}, /* -0.43000=f(-0.43000, v3.57000)*/ +{64, 0,123,__LINE__, 0xbfdae147, 0xae147ad4, 0xbfdae147, 0xae147ad4, 0x400ca3d7, 0x0a3d70a6}, /* -0.42000=f(-0.42000, v3.58000)*/ +{64, 0,123,__LINE__, 0xbfda3d70, 0xa3d70a30, 0xbfda3d70, 0xa3d70a30, 0x400cb851, 0xeb851eba}, /* -0.41000=f(-0.41000, v3.59000)*/ +{64, 0,123,__LINE__, 0xbfd99999, 0x9999998c, 0xbfd99999, 0x9999998c, 0x400ccccc, 0xccccccce}, /* -0.40000=f(-0.40000, v3.60000)*/ +{64, 0,123,__LINE__, 0xbfd8f5c2, 0x8f5c28e8, 0xbfd8f5c2, 0x8f5c28e8, 0x400ce147, 0xae147ae3}, /* -0.39000=f(-0.39000, v3.61000)*/ +{64, 0,123,__LINE__, 0xbfd851eb, 0x851eb844, 0xbfd851eb, 0x851eb844, 0x400cf5c2, 0x8f5c28f8}, /* -0.38000=f(-0.38000, v3.62000)*/ +{64, 0,123,__LINE__, 0xbfd7ae14, 0x7ae147a0, 0xbfd7ae14, 0x7ae147a0, 0x400d0a3d, 0x70a3d70c}, /* -0.37000=f(-0.37000, v3.63000)*/ +{64, 0,123,__LINE__, 0xbfd70a3d, 0x70a3d6fc, 0xbfd70a3d, 0x70a3d6fc, 0x400d1eb8, 0x51eb8520}, /* -0.36000=f(-0.36000, v3.64000)*/ +{64, 0,123,__LINE__, 0xbfd66666, 0x66666658, 0xbfd66666, 0x66666658, 0x400d3333, 0x33333335}, /* -0.35000=f(-0.35000, v3.65000)*/ +{64, 0,123,__LINE__, 0xbfd5c28f, 0x5c28f5b4, 0xbfd5c28f, 0x5c28f5b4, 0x400d47ae, 0x147ae14a}, /* -0.34000=f(-0.34000, v3.66000)*/ +{64, 0,123,__LINE__, 0xbfd51eb8, 0x51eb8510, 0xbfd51eb8, 0x51eb8510, 0x400d5c28, 0xf5c28f5e}, /* -0.33000=f(-0.33000, v3.67000)*/ +{64, 0,123,__LINE__, 0xbfd47ae1, 0x47ae146c, 0xbfd47ae1, 0x47ae146c, 0x400d70a3, 0xd70a3d72}, /* -0.32000=f(-0.32000, v3.68000)*/ +{64, 0,123,__LINE__, 0xbfd3d70a, 0x3d70a3c8, 0xbfd3d70a, 0x3d70a3c8, 0x400d851e, 0xb851eb87}, /* -0.31000=f(-0.31000, v3.69000)*/ +{64, 0,123,__LINE__, 0xbfd33333, 0x33333324, 0xbfd33333, 0x33333324, 0x400d9999, 0x9999999c}, /* -0.30000=f(-0.30000, v3.70000)*/ +{64, 0,123,__LINE__, 0xbfd28f5c, 0x28f5c280, 0xbfd28f5c, 0x28f5c280, 0x400dae14, 0x7ae147b0}, /* -0.29000=f(-0.29000, v3.71000)*/ +{64, 0,123,__LINE__, 0xbfd1eb85, 0x1eb851dc, 0xbfd1eb85, 0x1eb851dc, 0x400dc28f, 0x5c28f5c4}, /* -0.28000=f(-0.28000, v3.72000)*/ +{64, 0,123,__LINE__, 0xbfd147ae, 0x147ae138, 0xbfd147ae, 0x147ae138, 0x400dd70a, 0x3d70a3d9}, /* -0.27000=f(-0.27000, v3.73000)*/ +{64, 0,123,__LINE__, 0xbfd0a3d7, 0x0a3d7094, 0xbfd0a3d7, 0x0a3d7094, 0x400deb85, 0x1eb851ee}, /* -0.26000=f(-0.26000, v3.74000)*/ +{64, 0,123,__LINE__, 0xbfcfffff, 0xffffffe0, 0xbfcfffff, 0xffffffe0, 0x400e0000, 0x00000002}, /* -0.25000=f(-0.25000, v3.75000)*/ +{64, 0,123,__LINE__, 0xbfceb851, 0xeb851e98, 0xbfceb851, 0xeb851e98, 0x400e147a, 0xe147ae16}, /* -0.24000=f(-0.24000, v3.76000)*/ +{64, 0,123,__LINE__, 0xbfcd70a3, 0xd70a3d50, 0xbfcd70a3, 0xd70a3d50, 0x400e28f5, 0xc28f5c2b}, /* -0.23000=f(-0.23000, v3.77000)*/ +{64, 0,123,__LINE__, 0xbfcc28f5, 0xc28f5c08, 0xbfcc28f5, 0xc28f5c08, 0x400e3d70, 0xa3d70a40}, /* -0.22000=f(-0.22000, v3.78000)*/ +{64, 0,123,__LINE__, 0xbfcae147, 0xae147ac0, 0xbfcae147, 0xae147ac0, 0x400e51eb, 0x851eb854}, /* -0.21000=f(-0.21000, v3.79000)*/ +{64, 0,123,__LINE__, 0xbfc99999, 0x99999978, 0xbfc99999, 0x99999978, 0x400e6666, 0x66666668}, /* -0.20000=f(-0.20000, v3.80000)*/ +{64, 0,123,__LINE__, 0xbfc851eb, 0x851eb830, 0xbfc851eb, 0x851eb830, 0x400e7ae1, 0x47ae147d}, /* -0.19000=f(-0.19000, v3.81000)*/ +{64, 0,123,__LINE__, 0xbfc70a3d, 0x70a3d6e8, 0xbfc70a3d, 0x70a3d6e8, 0x400e8f5c, 0x28f5c292}, /* -0.18000=f(-0.18000, v3.82000)*/ +{64, 0,123,__LINE__, 0xbfc5c28f, 0x5c28f5a0, 0xbfc5c28f, 0x5c28f5a0, 0x400ea3d7, 0x0a3d70a6}, /* -0.17000=f(-0.17000, v3.83000)*/ +{64, 0,123,__LINE__, 0xbfc47ae1, 0x47ae1458, 0xbfc47ae1, 0x47ae1458, 0x400eb851, 0xeb851eba}, /* -0.16000=f(-0.16000, v3.84000)*/ +{64, 0,123,__LINE__, 0xbfc33333, 0x33333310, 0xbfc33333, 0x33333310, 0x400ecccc, 0xcccccccf}, /* -0.15000=f(-0.15000, v3.85000)*/ +{64, 0,123,__LINE__, 0xbfc1eb85, 0x1eb851c8, 0xbfc1eb85, 0x1eb851c8, 0x400ee147, 0xae147ae4}, /* -0.14000=f(-0.14000, v3.86000)*/ +{64, 0,123,__LINE__, 0xbfc0a3d7, 0x0a3d7080, 0xbfc0a3d7, 0x0a3d7080, 0x400ef5c2, 0x8f5c28f8}, /* -0.13000=f(-0.13000, v3.87000)*/ +{64, 0,123,__LINE__, 0xbfbeb851, 0xeb851e71, 0xbfbeb851, 0xeb851e71, 0x400f0a3d, 0x70a3d70c}, /* -0.12000=f(-0.12000, v3.88000)*/ +{64, 0,123,__LINE__, 0xbfbc28f5, 0xc28f5be2, 0xbfbc28f5, 0xc28f5be2, 0x400f1eb8, 0x51eb8521}, /* -0.11000=f(-0.11000, v3.89000)*/ +{64, 0,123,__LINE__, 0xbfb99999, 0x99999953, 0xbfb99999, 0x99999953, 0x400f3333, 0x33333335}, /* -0.00100=f(-0.00100, v3.90000)*/ +{64, 0,123,__LINE__, 0xbfb70a3d, 0x70a3d6c4, 0xbfb70a3d, 0x70a3d6c4, 0x400f47ae, 0x147ae14a}, /* -0.09000=f(-0.09000, v3.91000)*/ +{64, 0,123,__LINE__, 0xbfb47ae1, 0x47ae1435, 0xbfb47ae1, 0x47ae1435, 0x400f5c28, 0xf5c28f5e}, /* -0.08000=f(-0.08000, v3.92000)*/ +{64, 0,123,__LINE__, 0xbfb1eb85, 0x1eb851a6, 0xbfb1eb85, 0x1eb851a6, 0x400f70a3, 0xd70a3d73}, /* -0.07000=f(-0.07000, v3.93000)*/ +{64, 0,123,__LINE__, 0xbfaeb851, 0xeb851e2d, 0xbfaeb851, 0xeb851e2d, 0x400f851e, 0xb851eb87}, /* -0.06000=f(-0.06000, v3.94000)*/ +{64, 0,123,__LINE__, 0xbfa99999, 0x9999990e, 0xbfa99999, 0x9999990e, 0x400f9999, 0x9999999c}, /* -0.05000=f(-0.05000, v3.95000)*/ +{64, 0,123,__LINE__, 0xbfa47ae1, 0x47ae13ef, 0xbfa47ae1, 0x47ae13ef, 0x400fae14, 0x7ae147b0}, /* -0.04000=f(-0.04000, v3.96000)*/ +{64, 0,123,__LINE__, 0xbf9eb851, 0xeb851da0, 0xbf9eb851, 0xeb851da0, 0x400fc28f, 0x5c28f5c5}, /* -0.03000=f(-0.03000, v3.97000)*/ +{64, 0,123,__LINE__, 0xbf947ae1, 0x47ae1362, 0xbf947ae1, 0x47ae1362, 0x400fd70a, 0x3d70a3d9}, /* -0.02000=f(-0.02000, v3.98000)*/ +{64, 0,123,__LINE__, 0xbf847ae1, 0x47ae1249, 0xbf847ae1, 0x47ae1249, 0x400feb85, 0x1eb851ee}, /* -0.00010=f(-0.00010, v3.99000)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000, 0x40100000, 0x00000001}, /* 9.74915e-16=f(9.74915e-16, v4.00000)*/ +{64, 0,123,__LINE__, 0x3f847ae1, 0x47ae16ad, 0x3f847ae1, 0x47ae16ad, 0x40100a3d, 0x70a3d70b}, /* 0.01000=f(0.01000, v4.01000)*/ +{64, 0,123,__LINE__, 0x3f947ae1, 0x47ae1594, 0x3f947ae1, 0x47ae1594, 0x4010147a, 0xe147ae16}, /* 0.02000=f(0.02000, v4.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb851, 0xeb851fd2, 0x3f9eb851, 0xeb851fd2, 0x40101eb8, 0x51eb8520}, /* 0.03000=f(0.03000, v4.03000)*/ +{64, 0,123,__LINE__, 0x3fa47ae1, 0x47ae1508, 0x3fa47ae1, 0x47ae1508, 0x401028f5, 0xc28f5c2a}, /* 0.04000=f(0.04000, v4.04000)*/ +{64, 0,123,__LINE__, 0x3fa99999, 0x99999a27, 0x3fa99999, 0x99999a27, 0x40103333, 0x33333334}, /* 0.05000=f(0.05000, v4.05000)*/ +{64, 0,123,__LINE__, 0x3faeb851, 0xeb851f46, 0x3faeb851, 0xeb851f46, 0x40103d70, 0xa3d70a3f}, /* 0.06000=f(0.06000, v4.06000)*/ +{64, 0,123,__LINE__, 0x3fb1eb85, 0x1eb85232, 0x3fb1eb85, 0x1eb85232, 0x401047ae, 0x147ae149}, /* 0.07000=f(0.07000, v4.07000)*/ +{64, 0,123,__LINE__, 0x3fb47ae1, 0x47ae14c1, 0x3fb47ae1, 0x47ae14c1, 0x401051eb, 0x851eb853}, /* 0.08000=f(0.08000, v4.08000)*/ +{64, 0,123,__LINE__, 0x3fb70a3d, 0x70a3d750, 0x3fb70a3d, 0x70a3d750, 0x40105c28, 0xf5c28f5d}, /* 0.09000=f(0.09000, v4.09000)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0x999999df, 0x3fb99999, 0x999999df, 0x40106666, 0x66666667}, /* 0.10000=f(0.10000, v4.10000)*/ +{64, 0,123,__LINE__, 0x3fbc28f5, 0xc28f5c6e, 0x3fbc28f5, 0xc28f5c6e, 0x401070a3, 0xd70a3d72}, /* 0.11000=f(0.11000, v4.11000)*/ +{64, 0,123,__LINE__, 0x3fbeb851, 0xeb851efd, 0x3fbeb851, 0xeb851efd, 0x40107ae1, 0x47ae147c}, /* 0.12000=f(0.12000, v4.12000)*/ +{64, 0,123,__LINE__, 0x3fc0a3d7, 0x0a3d70c6, 0x3fc0a3d7, 0x0a3d70c6, 0x4010851e, 0xb851eb86}, /* 0.13000=f(0.13000, v4.13000)*/ +{64, 0,123,__LINE__, 0x3fc1eb85, 0x1eb8520e, 0x3fc1eb85, 0x1eb8520e, 0x40108f5c, 0x28f5c290}, /* 0.14000=f(0.14000, v4.14000)*/ +{64, 0,123,__LINE__, 0x3fc33333, 0x33333356, 0x3fc33333, 0x33333356, 0x40109999, 0x9999999b}, /* 0.15000=f(0.15000, v4.15000)*/ +{64, 0,123,__LINE__, 0x3fc47ae1, 0x47ae149e, 0x3fc47ae1, 0x47ae149e, 0x4010a3d7, 0x0a3d70a5}, /* 0.16000=f(0.16000, v4.16000)*/ +{64, 0,123,__LINE__, 0x3fc5c28f, 0x5c28f5e6, 0x3fc5c28f, 0x5c28f5e6, 0x4010ae14, 0x7ae147af}, /* 0.17000=f(0.17000, v4.17000)*/ +{64, 0,123,__LINE__, 0x3fc70a3d, 0x70a3d72e, 0x3fc70a3d, 0x70a3d72e, 0x4010b851, 0xeb851eb9}, /* 0.18000=f(0.18000, v4.18000)*/ +{64, 0,123,__LINE__, 0x3fc851eb, 0x851eb876, 0x3fc851eb, 0x851eb876, 0x4010c28f, 0x5c28f5c4}, /* 0.19000=f(0.19000, v4.19000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0x999999be, 0x3fc99999, 0x999999be, 0x4010cccc, 0xccccccce}, /* 0.20000=f(0.20000, v4.20000)*/ +{64, 0,123,__LINE__, 0x3fcae147, 0xae147b06, 0x3fcae147, 0xae147b06, 0x4010d70a, 0x3d70a3d8}, /* 0.21000=f(0.21000, v4.21000)*/ +{64, 0,123,__LINE__, 0x3fcc28f5, 0xc28f5c4e, 0x3fcc28f5, 0xc28f5c4e, 0x4010e147, 0xae147ae2}, /* 0.22000=f(0.22000, v4.22000)*/ +{64, 0,123,__LINE__, 0x3fcd70a3, 0xd70a3d96, 0x3fcd70a3, 0xd70a3d96, 0x4010eb85, 0x1eb851ed}, /* 0.23000=f(0.23000, v4.23000)*/ +{64, 0,123,__LINE__, 0x3fceb851, 0xeb851ede, 0x3fceb851, 0xeb851ede, 0x4010f5c2, 0x8f5c28f7}, /* 0.24000=f(0.24000, v4.24000)*/ +{64, 0,123,__LINE__, 0x3fd00000, 0x00000013, 0x3fd00000, 0x00000013, 0x40110000, 0x00000001}, /* 0.25000=f(0.25000, v4.25000)*/ +{64, 0,123,__LINE__, 0x3fd0a3d7, 0x0a3d70b7, 0x3fd0a3d7, 0x0a3d70b7, 0x40110a3d, 0x70a3d70b}, /* 0.26000=f(0.26000, v4.26000)*/ +{64, 0,123,__LINE__, 0x3fd147ae, 0x147ae15b, 0x3fd147ae, 0x147ae15b, 0x4011147a, 0xe147ae16}, /* 0.27000=f(0.27000, v4.27000)*/ +{64, 0,123,__LINE__, 0x3fd1eb85, 0x1eb851ff, 0x3fd1eb85, 0x1eb851ff, 0x40111eb8, 0x51eb8520}, /* 0.28000=f(0.28000, v4.28000)*/ +{64, 0,123,__LINE__, 0x3fd28f5c, 0x28f5c2a3, 0x3fd28f5c, 0x28f5c2a3, 0x401128f5, 0xc28f5c2a}, /* 0.29000=f(0.29000, v4.29000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x33333347, 0x3fd33333, 0x33333347, 0x40113333, 0x33333334}, /* 0.30000=f(0.30000, v4.30000)*/ +{64, 0,123,__LINE__, 0x3fd3d70a, 0x3d70a3eb, 0x3fd3d70a, 0x3d70a3eb, 0x40113d70, 0xa3d70a3f}, /* 0.31000=f(0.31000, v4.31000)*/ +{64, 0,123,__LINE__, 0x3fd47ae1, 0x47ae148f, 0x3fd47ae1, 0x47ae148f, 0x401147ae, 0x147ae149}, /* 0.32000=f(0.32000, v4.32000)*/ +{64, 0,123,__LINE__, 0x3fd51eb8, 0x51eb8533, 0x3fd51eb8, 0x51eb8533, 0x401151eb, 0x851eb853}, /* 0.33000=f(0.33000, v4.33000)*/ +{64, 0,123,__LINE__, 0x3fd5c28f, 0x5c28f5d7, 0x3fd5c28f, 0x5c28f5d7, 0x40115c28, 0xf5c28f5d}, /* 0.34000=f(0.34000, v4.34000)*/ +{64, 0,123,__LINE__, 0x3fd66666, 0x6666667b, 0x3fd66666, 0x6666667b, 0x40116666, 0x66666668}, /* 0.35000=f(0.35000, v4.35000)*/ +{64, 0,123,__LINE__, 0x3fd70a3d, 0x70a3d71f, 0x3fd70a3d, 0x70a3d71f, 0x401170a3, 0xd70a3d72}, /* 0.36000=f(0.36000, v4.36000)*/ +{64, 0,123,__LINE__, 0x3fd7ae14, 0x7ae147c3, 0x3fd7ae14, 0x7ae147c3, 0x40117ae1, 0x47ae147c}, /* 0.37000=f(0.37000, v4.37000)*/ +{64, 0,123,__LINE__, 0x3fd851eb, 0x851eb867, 0x3fd851eb, 0x851eb867, 0x4011851e, 0xb851eb86}, /* 0.38000=f(0.38000, v4.38000)*/ +{64, 0,123,__LINE__, 0x3fd8f5c2, 0x8f5c290b, 0x3fd8f5c2, 0x8f5c290b, 0x40118f5c, 0x28f5c291}, /* 0.39000=f(0.39000, v4.39000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0x999999af, 0x3fd99999, 0x999999af, 0x40119999, 0x9999999b}, /* 0.40000=f(0.40000, v4.40000)*/ +{64, 0,123,__LINE__, 0x3fda3d70, 0xa3d70a53, 0x3fda3d70, 0xa3d70a53, 0x4011a3d7, 0x0a3d70a5}, /* 0.41000=f(0.41000, v4.41000)*/ +{64, 0,123,__LINE__, 0x3fdae147, 0xae147af7, 0x3fdae147, 0xae147af7, 0x4011ae14, 0x7ae147af}, /* 0.42000=f(0.42000, v4.42000)*/ +{64, 0,123,__LINE__, 0x3fdb851e, 0xb851eb9b, 0x3fdb851e, 0xb851eb9b, 0x4011b851, 0xeb851eba}, /* 0.43000=f(0.43000, v4.43000)*/ +{64, 0,123,__LINE__, 0x3fdc28f5, 0xc28f5c3f, 0x3fdc28f5, 0xc28f5c3f, 0x4011c28f, 0x5c28f5c4}, /* 0.44000=f(0.44000, v4.44000)*/ +{64, 0,123,__LINE__, 0x3fdccccc, 0xcccccce3, 0x3fdccccc, 0xcccccce3, 0x4011cccc, 0xccccccce}, /* 0.45000=f(0.45000, v4.45000)*/ +{64, 0,123,__LINE__, 0x3fdd70a3, 0xd70a3d87, 0x3fdd70a3, 0xd70a3d87, 0x4011d70a, 0x3d70a3d8}, /* 0.46000=f(0.46000, v4.46000)*/ +{64, 0,123,__LINE__, 0x3fde147a, 0xe147ae2b, 0x3fde147a, 0xe147ae2b, 0x4011e147, 0xae147ae3}, /* 0.47000=f(0.47000, v4.47000)*/ +{64, 0,123,__LINE__, 0x3fdeb851, 0xeb851ecf, 0x3fdeb851, 0xeb851ecf, 0x4011eb85, 0x1eb851ed}, /* 0.48000=f(0.48000, v4.48000)*/ +{64, 0,123,__LINE__, 0x3fdf5c28, 0xf5c28f73, 0x3fdf5c28, 0xf5c28f73, 0x4011f5c2, 0x8f5c28f7}, /* 0.49000=f(0.49000, v4.49000)*/ +{64, 0,123,__LINE__, 0x3fe00000, 0x0000000b, 0x3fe00000, 0x0000000b, 0x40120000, 0x00000001}, /* 0.50000=f(0.50000, v4.50000)*/ +{64, 0,123,__LINE__, 0x3fe051eb, 0x851eb85d, 0x3fe051eb, 0x851eb85d, 0x40120a3d, 0x70a3d70c}, /* 0.51000=f(0.51000, v4.51000)*/ +{64, 0,123,__LINE__, 0x3fe0a3d7, 0x0a3d70af, 0x3fe0a3d7, 0x0a3d70af, 0x4012147a, 0xe147ae16}, /* 0.52000=f(0.52000, v4.52000)*/ +{64, 0,123,__LINE__, 0x3fe0f5c2, 0x8f5c2901, 0x3fe0f5c2, 0x8f5c2901, 0x40121eb8, 0x51eb8520}, /* 0.53000=f(0.53000, v4.53000)*/ +{64, 0,123,__LINE__, 0x3fe147ae, 0x147ae153, 0x3fe147ae, 0x147ae153, 0x401228f5, 0xc28f5c2a}, /* 0.54000=f(0.54000, v4.54000)*/ +{64, 0,123,__LINE__, 0x3fe19999, 0x999999a5, 0x3fe19999, 0x999999a5, 0x40123333, 0x33333335}, /* 0.55000=f(0.55000, v4.55000)*/ +{64, 0,123,__LINE__, 0x3fe1eb85, 0x1eb851f7, 0x3fe1eb85, 0x1eb851f7, 0x40123d70, 0xa3d70a3f}, /* 0.56000=f(0.56000, v4.56000)*/ +{64, 0,123,__LINE__, 0x3fe23d70, 0xa3d70a49, 0x3fe23d70, 0xa3d70a49, 0x401247ae, 0x147ae149}, /* 0.57000=f(0.57000, v4.57000)*/ +{64, 0,123,__LINE__, 0x3fe28f5c, 0x28f5c29b, 0x3fe28f5c, 0x28f5c29b, 0x401251eb, 0x851eb853}, /* 0.58000=f(0.58000, v4.58000)*/ +{64, 0,123,__LINE__, 0x3fe2e147, 0xae147aed, 0x3fe2e147, 0xae147aed, 0x40125c28, 0xf5c28f5e}, /* 0.59000=f(0.59000, v4.59000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x3333333f, 0x3fe33333, 0x3333333f, 0x40126666, 0x66666668}, /* 0.60000=f(0.60000, v4.60000)*/ +{64, 0,123,__LINE__, 0x3fe3851e, 0xb851eb91, 0x3fe3851e, 0xb851eb91, 0x401270a3, 0xd70a3d72}, /* 0.61000=f(0.61000, v4.61000)*/ +{64, 0,123,__LINE__, 0x3fe3d70a, 0x3d70a3e3, 0x3fe3d70a, 0x3d70a3e3, 0x40127ae1, 0x47ae147c}, /* 0.62000=f(0.62000, v4.62000)*/ +{64, 0,123,__LINE__, 0x3fe428f5, 0xc28f5c35, 0x3fe428f5, 0xc28f5c35, 0x4012851e, 0xb851eb87}, /* 0.63000=f(0.63000, v4.63000)*/ +{64, 0,123,__LINE__, 0x3fe47ae1, 0x47ae1487, 0x3fe47ae1, 0x47ae1487, 0x40128f5c, 0x28f5c291}, /* 0.64000=f(0.64000, v4.64000)*/ +{64, 0,123,__LINE__, 0x3fe4cccc, 0xccccccd9, 0x3fe4cccc, 0xccccccd9, 0x40129999, 0x9999999b}, /* 0.65000=f(0.65000, v4.65000)*/ +{64, 0,123,__LINE__, 0x3fe51eb8, 0x51eb852b, 0x3fe51eb8, 0x51eb852b, 0x4012a3d7, 0x0a3d70a5}, /* 0.66000=f(0.66000, v4.66000)*/ +{64, 0,123,__LINE__, 0x3fe570a3, 0xd70a3d7d, 0x3fe570a3, 0xd70a3d7d, 0x4012ae14, 0x7ae147b0}, /* 0.67000=f(0.67000, v4.67000)*/ +{64, 0,123,__LINE__, 0x3fe5c28f, 0x5c28f5cf, 0x3fe5c28f, 0x5c28f5cf, 0x4012b851, 0xeb851eba}, /* 0.68000=f(0.68000, v4.68000)*/ +{64, 0,123,__LINE__, 0x3fe6147a, 0xe147ae21, 0x3fe6147a, 0xe147ae21, 0x4012c28f, 0x5c28f5c4}, /* 0.69000=f(0.69000, v4.69000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x66666673, 0x3fe66666, 0x66666673, 0x4012cccc, 0xccccccce}, /* 0.70000=f(0.70000, v4.70000)*/ +{64, 0,123,__LINE__, 0x3fe6b851, 0xeb851ec5, 0x3fe6b851, 0xeb851ec5, 0x4012d70a, 0x3d70a3d9}, /* 0.71000=f(0.71000, v4.71000)*/ +{64, 0,123,__LINE__, 0x3fe70a3d, 0x70a3d717, 0x3fe70a3d, 0x70a3d717, 0x4012e147, 0xae147ae3}, /* 0.72000=f(0.72000, v4.72000)*/ +{64, 0,123,__LINE__, 0x3fe75c28, 0xf5c28f69, 0x3fe75c28, 0xf5c28f69, 0x4012eb85, 0x1eb851ed}, /* 0.73000=f(0.73000, v4.73000)*/ +{64, 0,123,__LINE__, 0x3fe7ae14, 0x7ae147bb, 0x3fe7ae14, 0x7ae147bb, 0x4012f5c2, 0x8f5c28f7}, /* 0.74000=f(0.74000, v4.74000)*/ +{64, 0,123,__LINE__, 0x3fe80000, 0x0000000d, 0x3fe80000, 0x0000000d, 0x40130000, 0x00000002}, /* 0.75000=f(0.75000, v4.75000)*/ +{64, 0,123,__LINE__, 0x3fe851eb, 0x851eb85f, 0x3fe851eb, 0x851eb85f, 0x40130a3d, 0x70a3d70c}, /* 0.76000=f(0.76000, v4.76000)*/ +{64, 0,123,__LINE__, 0x3fe8a3d7, 0x0a3d70b1, 0x3fe8a3d7, 0x0a3d70b1, 0x4013147a, 0xe147ae16}, /* 0.77000=f(0.77000, v4.77000)*/ +{64, 0,123,__LINE__, 0x3fe8f5c2, 0x8f5c2903, 0x3fe8f5c2, 0x8f5c2903, 0x40131eb8, 0x51eb8520}, /* 0.78000=f(0.78000, v4.78000)*/ +{64, 0,123,__LINE__, 0x3fe947ae, 0x147ae155, 0x3fe947ae, 0x147ae155, 0x401328f5, 0xc28f5c2b}, /* 0.79000=f(0.79000, v4.79000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0x999999a7, 0x3fe99999, 0x999999a7, 0x40133333, 0x33333335}, /* 0.80000=f(0.80000, v4.80000)*/ +{64, 0,123,__LINE__, 0x3fe9eb85, 0x1eb851f9, 0x3fe9eb85, 0x1eb851f9, 0x40133d70, 0xa3d70a3f}, /* 0.81000=f(0.81000, v4.81000)*/ +{64, 0,123,__LINE__, 0x3fea3d70, 0xa3d70a4b, 0x3fea3d70, 0xa3d70a4b, 0x401347ae, 0x147ae149}, /* 0.82000=f(0.82000, v4.82000)*/ +{64, 0,123,__LINE__, 0x3fea8f5c, 0x28f5c29d, 0x3fea8f5c, 0x28f5c29d, 0x401351eb, 0x851eb854}, /* 0.83000=f(0.83000, v4.83000)*/ +{64, 0,123,__LINE__, 0x3feae147, 0xae147aef, 0x3feae147, 0xae147aef, 0x40135c28, 0xf5c28f5e}, /* 0.84000=f(0.84000, v4.84000)*/ +{64, 0,123,__LINE__, 0x3feb3333, 0x33333341, 0x3feb3333, 0x33333341, 0x40136666, 0x66666668}, /* 0.85000=f(0.85000, v4.85000)*/ +{64, 0,123,__LINE__, 0x3feb851e, 0xb851eb93, 0x3feb851e, 0xb851eb93, 0x401370a3, 0xd70a3d72}, /* 0.86000=f(0.86000, v4.86000)*/ +{64, 0,123,__LINE__, 0x3febd70a, 0x3d70a3e5, 0x3febd70a, 0x3d70a3e5, 0x40137ae1, 0x47ae147d}, /* 0.87000=f(0.87000, v4.87000)*/ +{64, 0,123,__LINE__, 0x3fec28f5, 0xc28f5c37, 0x3fec28f5, 0xc28f5c37, 0x4013851e, 0xb851eb87}, /* 0.88000=f(0.88000, v4.88000)*/ +{64, 0,123,__LINE__, 0x3fec7ae1, 0x47ae1489, 0x3fec7ae1, 0x47ae1489, 0x40138f5c, 0x28f5c291}, /* 0.89000=f(0.89000, v4.89000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xccccccdb, 0x3feccccc, 0xccccccdb, 0x40139999, 0x9999999b}, /* 0.90000=f(0.90000, v4.90000)*/ +{64, 0,123,__LINE__, 0x3fed1eb8, 0x51eb852d, 0x3fed1eb8, 0x51eb852d, 0x4013a3d7, 0x0a3d70a6}, /* 0.91000=f(0.91000, v4.91000)*/ +{64, 0,123,__LINE__, 0x3fed70a3, 0xd70a3d7f, 0x3fed70a3, 0xd70a3d7f, 0x4013ae14, 0x7ae147b0}, /* 0.92000=f(0.92000, v4.92000)*/ +{64, 0,123,__LINE__, 0x3fedc28f, 0x5c28f5d1, 0x3fedc28f, 0x5c28f5d1, 0x4013b851, 0xeb851eba}, /* 0.93000=f(0.93000, v4.93000)*/ +{64, 0,123,__LINE__, 0x3fee147a, 0xe147ae23, 0x3fee147a, 0xe147ae23, 0x4013c28f, 0x5c28f5c4}, /* 0.94000=f(0.94000, v4.94000)*/ +{64, 0,123,__LINE__, 0x3fee6666, 0x66666675, 0x3fee6666, 0x66666675, 0x4013cccc, 0xcccccccf}, /* 0.95000=f(0.95000, v4.95000)*/ +{64, 0,123,__LINE__, 0x3feeb851, 0xeb851ec7, 0x3feeb851, 0xeb851ec7, 0x4013d70a, 0x3d70a3d9}, /* 0.96000=f(0.96000, v4.96000)*/ +{64, 0,123,__LINE__, 0x3fef0a3d, 0x70a3d719, 0x3fef0a3d, 0x70a3d719, 0x4013e147, 0xae147ae3}, /* 0.97000=f(0.97000, v4.97000)*/ +{64, 0,123,__LINE__, 0x3fef5c28, 0xf5c28f6b, 0x3fef5c28, 0xf5c28f6b, 0x4013eb85, 0x1eb851ed}, /* 0.98000=f(0.98000, v4.98000)*/ +{64, 0,123,__LINE__, 0x3fefae14, 0x7ae147bd, 0x3fefae14, 0x7ae147bd, 0x4013f5c2, 0x8f5c28f8}, /* 0.99000=f(0.99000, v4.99000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000007, 0x3ff00000, 0x00000007, 0x40140000, 0x00000002}, /* 1.00000=f(1.00000, v5.00000)*/ +{64, 0,123,__LINE__, 0x3ff028f5, 0xc28f5c30, 0x3ff028f5, 0xc28f5c30, 0x40140a3d, 0x70a3d70c}, /* 1.01000=f(1.01000, v5.01000)*/ +{64, 0,123,__LINE__, 0x3ff051eb, 0x851eb859, 0x3ff051eb, 0x851eb859, 0x4014147a, 0xe147ae16}, /* 1.02000=f(1.02000, v5.02000)*/ +{64, 0,123,__LINE__, 0x3ff07ae1, 0x47ae1482, 0x3ff07ae1, 0x47ae1482, 0x40141eb8, 0x51eb8520}, /* 1.03000=f(1.03000, v5.03000)*/ +{64, 0,123,__LINE__, 0x3ff0a3d7, 0x0a3d70ab, 0x3ff0a3d7, 0x0a3d70ab, 0x401428f5, 0xc28f5c2b}, /* 1.04000=f(1.04000, v5.04000)*/ +{64, 0,123,__LINE__, 0x3ff0cccc, 0xccccccd4, 0x3ff0cccc, 0xccccccd4, 0x40143333, 0x33333335}, /* 1.05000=f(1.05000, v5.05000)*/ +{64, 0,123,__LINE__, 0x3ff0f5c2, 0x8f5c28fd, 0x3ff0f5c2, 0x8f5c28fd, 0x40143d70, 0xa3d70a3f}, /* 1.06000=f(1.06000, v5.06000)*/ +{64, 0,123,__LINE__, 0x3ff11eb8, 0x51eb8526, 0x3ff11eb8, 0x51eb8526, 0x401447ae, 0x147ae14a}, /* 1.07000=f(1.07000, v5.07000)*/ +{64, 0,123,__LINE__, 0x3ff147ae, 0x147ae14f, 0x3ff147ae, 0x147ae14f, 0x401451eb, 0x851eb854}, /* 1.08000=f(1.08000, v5.08000)*/ +{64, 0,123,__LINE__, 0x3ff170a3, 0xd70a3d78, 0x3ff170a3, 0xd70a3d78, 0x40145c28, 0xf5c28f5e}, /* 1.09000=f(1.09000, v5.09000)*/ +{64, 0,123,__LINE__, 0x3ff19999, 0x999999a1, 0x3ff19999, 0x999999a1, 0x40146666, 0x66666668}, /* 1.10000=f(1.10000, v5.10000)*/ +{64, 0,123,__LINE__, 0x3ff1c28f, 0x5c28f5ca, 0x3ff1c28f, 0x5c28f5ca, 0x401470a3, 0xd70a3d72}, /* 1.11000=f(1.11000, v5.11000)*/ +{64, 0,123,__LINE__, 0x3ff1eb85, 0x1eb851f3, 0x3ff1eb85, 0x1eb851f3, 0x40147ae1, 0x47ae147d}, /* 1.12000=f(1.12000, v5.12000)*/ +{64, 0,123,__LINE__, 0x3ff2147a, 0xe147ae1c, 0x3ff2147a, 0xe147ae1c, 0x4014851e, 0xb851eb87}, /* 1.13000=f(1.13000, v5.13000)*/ +{64, 0,123,__LINE__, 0x3ff23d70, 0xa3d70a45, 0x3ff23d70, 0xa3d70a45, 0x40148f5c, 0x28f5c291}, /* 1.14000=f(1.14000, v5.14000)*/ +{64, 0,123,__LINE__, 0x3ff26666, 0x6666666e, 0x3ff26666, 0x6666666e, 0x40149999, 0x9999999c}, /* 1.15000=f(1.15000, v5.15000)*/ +{64, 0,123,__LINE__, 0x3ff28f5c, 0x28f5c297, 0x3ff28f5c, 0x28f5c297, 0x4014a3d7, 0x0a3d70a6}, /* 1.16000=f(1.16000, v5.16000)*/ +{64, 0,123,__LINE__, 0x3ff2b851, 0xeb851ec0, 0x3ff2b851, 0xeb851ec0, 0x4014ae14, 0x7ae147b0}, /* 1.17000=f(1.17000, v5.17000)*/ +{64, 0,123,__LINE__, 0x3ff2e147, 0xae147ae9, 0x3ff2e147, 0xae147ae9, 0x4014b851, 0xeb851eba}, /* 1.18000=f(1.18000, v5.18000)*/ +{64, 0,123,__LINE__, 0x3ff30a3d, 0x70a3d712, 0x3ff30a3d, 0x70a3d712, 0x4014c28f, 0x5c28f5c4}, /* 1.19000=f(1.19000, v5.19000)*/ +{64, 0,123,__LINE__, 0xbffb7812, 0xaeef4ba0, 0xc01921fb, 0x54442d18, 0xc00243f6, 0xa8885a30}, /* -1.71681=f(-6.28318, v-2.28318)*/ +{64, 0,123,__LINE__, 0xbfdc0918, 0x40056e60, 0xc012d97c, 0x7f3321d2, 0xbfe6cbe3, 0xf9990e90}, /* -0.43805=f(-4.71238, v-0.71238)*/ +{64, 0,123,__LINE__, 0xbfe21fb5, 0x4442d180, 0xc00921fb, 0x54442d18, 0x3feb7812, 0xaeef4ba0}, /* -0.56637=f(-3.14159, v0.85840)*/ +{64, 0,123,__LINE__, 0xbff921fb, 0x54442d18, 0xbff921fb, 0x54442d18, 0x40036f02, 0x55dde974}, /* -1.57079=f(-1.57079, v2.42920)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x40100000, 0x00000000}, /* 0.00000=f(0.00000, v4.00000)*/ +{64, 0,123,__LINE__, 0x3ff921fb, 0x54442d18, 0x3ff921fb, 0x54442d18, 0x4016487e, 0xd5110b46}, /* 1.57079=f(1.57079, v5.57079)*/ +{64, 0,123,__LINE__, 0x400921fb, 0x54442d18, 0x400921fb, 0x54442d18, 0x401c90fd, 0xaa22168c}, /* 3.14159=f(3.14159, v7.14159)*/ +{64, 0,123,__LINE__, 0x4012d97c, 0x7f3321d2, 0x4012d97c, 0x7f3321d2, 0x40216cbe, 0x3f9990e9}, /* 4.71238=f(4.71238, v8.71238)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03e0000, 0x00000000, 0xc03a0000, 0x00000000}, /* -4.00000=f(-30.0000, v-26.0000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03c4ccc, 0xcccccccd, 0xc0384ccc, 0xcccccccd}, /* -4.00000=f(-28.3000, v-24.3000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03a9999, 0x9999999a, 0xc0369999, 0x9999999a}, /* -4.00000=f(-26.6000, v-22.6000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc038e666, 0x66666667, 0xc034e666, 0x66666667}, /* -4.00000=f(-24.9000, v-20.9000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0373333, 0x33333334, 0xc0333333, 0x33333334}, /* -4.00000=f(-23.2000, v-19.2000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0358000, 0x00000001, 0xc0318000, 0x00000001}, /* -4.00000=f(-21.5000, v-17.5000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc033cccc, 0xccccccce, 0xc02f9999, 0x9999999c}, /* -4.00000=f(-19.8000, v-15.8000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0321999, 0x9999999b, 0xc02c3333, 0x33333336}, /* -4.00000=f(-18.1000, v-14.1000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0306666, 0x66666668, 0xc028cccc, 0xccccccd0}, /* -4.00000=f(-16.4000, v-12.4000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc02d6666, 0x6666666a, 0xc0256666, 0x6666666a}, /* -4.00000=f(-14.7000, v-10.7000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc02a0000, 0x00000004, 0xc0220000, 0x00000004}, /* -4.00000=f(-13.0000, v-9.00000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0269999, 0x9999999e, 0xc01d3333, 0x3333333c}, /* -4.00000=f(-11.3000, v-7.30000)*/ +{64, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0233333, 0x33333338, 0xc0166666, 0x66666670}, /* -4.00000=f(-9.60000, v-5.60000)*/ +{64, 0,123,__LINE__, 0xbfb99999, 0x99999740, 0xc01f9999, 0x999999a3, 0xc00f3333, 0x33333346}, /* -0.00100=f(-7.90000, v-3.90000)*/ +{64, 0,123,__LINE__, 0xbffccccc, 0xcccccca8, 0xc018cccc, 0xccccccd6, 0xc0019999, 0x999999ac}, /* -1.80000=f(-6.20000, v-2.20000)*/ +{64, 0,123,__LINE__, 0xbfdfffff, 0xfffffc10, 0xc0120000, 0x00000009, 0xbfe00000, 0x00000048}, /* -0.50000=f(-4.50000, v-0.50000)*/ +{64, 0,123,__LINE__, 0xbfd99999, 0x99999b40, 0xc0066666, 0x66666678, 0x3ff33333, 0x33333310}, /* -0.40000=f(-2.80000, v1.20000)*/ +{64, 0,123,__LINE__, 0xbff19999, 0x999999bd, 0xbff19999, 0x999999bd, 0x40073333, 0x33333322}, /* -1.10000=f(-1.10000, v2.90000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x333332ec, 0x3fe33333, 0x333332ec, 0x40126666, 0x6666665e}, /* 0.60000=f(0.60000, v4.60000)*/ +{64, 0,123,__LINE__, 0x40026666, 0x66666654, 0x40026666, 0x66666654, 0x40193333, 0x3333332a}, /* 2.30000=f(2.30000, v6.30000)*/ +{64, 0,123,__LINE__, 0x400fffff, 0xffffffee, 0x400fffff, 0xffffffee, 0x401fffff, 0xfffffff7}, /* 4.00000=f(4.00000, v8.00000)*/ +{64, 0,123,__LINE__, 0x4016cccc, 0xccccccc4, 0x4016cccc, 0xccccccc4, 0x40236666, 0x66666662}, /* 5.70000=f(5.70000, v9.70000)*/ +{64, 0,123,__LINE__, 0x401d9999, 0x99999991, 0x401d9999, 0x99999991, 0x4026cccc, 0xccccccc8}, /* 7.40000=f(7.40000, v11.4000)*/ +{64, 0,123,__LINE__, 0x40223333, 0x3333332f, 0x40223333, 0x3333332f, 0x402a3333, 0x3333332f}, /* 9.10000=f(9.10000, v13.1000)*/ +{64, 0,123,__LINE__, 0x40259999, 0x99999995, 0x40259999, 0x99999995, 0x402d9999, 0x99999995}, /* 10.8000=f(10.8000, v14.8000)*/ +{64, 0,123,__LINE__, 0x4028ffff, 0xfffffffb, 0x4028ffff, 0xfffffffb, 0x40307fff, 0xfffffffe}, /* 12.5000=f(12.5000, v16.5000)*/ +{64, 0,123,__LINE__, 0x402c6666, 0x66666661, 0x402c6666, 0x66666661, 0x40323333, 0x33333330}, /* 14.2000=f(14.2000, v18.2000)*/ +{64, 0,123,__LINE__, 0x402fcccc, 0xccccccc7, 0x402fcccc, 0xccccccc7, 0x4033e666, 0x66666664}, /* 15.9000=f(15.9000, v19.9000)*/ +{64, 0,123,__LINE__, 0x40319999, 0x99999997, 0x40319999, 0x99999997, 0x40359999, 0x99999997}, /* 17.6000=f(17.6000, v21.6000)*/ +{64, 0,123,__LINE__, 0x40334ccc, 0xccccccca, 0x40334ccc, 0xccccccca, 0x40374ccc, 0xccccccca}, /* 19.3000=f(19.3000, v23.3000)*/ +{64, 0,123,__LINE__, 0x4034ffff, 0xfffffffd, 0x4034ffff, 0xfffffffd, 0x4038ffff, 0xfffffffd}, /* 21.0000=f(21.0000, v25.0000)*/ +{64, 0,123,__LINE__, 0x4036b333, 0x33333330, 0x4036b333, 0x33333330, 0x403ab333, 0x33333330}, /* 22.7000=f(22.7000, v26.7000)*/ +{64, 0,123,__LINE__, 0x40386666, 0x66666663, 0x40386666, 0x66666663, 0x403c6666, 0x66666663}, /* 24.4000=f(24.4000, v28.4000)*/ +{64, 0,123,__LINE__, 0x403a1999, 0x99999996, 0x403a1999, 0x99999996, 0x403e1999, 0x99999996}, /* 26.1000=f(26.1000, v30.1000)*/ +{64, 0,123,__LINE__, 0x403bcccc, 0xccccccc9, 0x403bcccc, 0xccccccc9, 0x403fcccc, 0xccccccc9}, /* 27.8000=f(27.8000, v31.8000)*/ +{64, 0,123,__LINE__, 0x403d7fff, 0xfffffffc, 0x403d7fff, 0xfffffffc, 0x4040bfff, 0xfffffffe}, /* 29.5000=f(29.5000, v33.5000)*/ +0,}; +test_fmod(m) {run_vector_1(m,fmod_vec,(char *)(fmod),"fmod","ddd"); } diff --git a/newlib/libm/test/fmodf_vec.c b/newlib/libm/test/fmodf_vec.c new file mode 100644 index 000000000..f50eeda76 --- /dev/null +++ b/newlib/libm/test/fmodf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type fmodf_vec[] = { +{ 0, 0,123,__LINE__, 0xbff33333, 0x40000000, 0xbff33333, 0x33333333, 0x40066666, 0x66666666}, /* -1.20000=f(-1.20000, v2.80000)*/ +{ 0, 0,123,__LINE__, 0xbff30a3d, 0x80000000, 0xbff30a3d, 0x70a3d70a, 0x40067ae1, 0x47ae147b}, /* -1.19000=f(-1.19000, v2.81000)*/ +{ 0, 0,123,__LINE__, 0xbff2e147, 0xa0000000, 0xbff2e147, 0xae147ae1, 0x40068f5c, 0x28f5c290}, /* -1.18000=f(-1.18000, v2.82000)*/ +{ 0, 0,123,__LINE__, 0xbff2b851, 0xe0000000, 0xbff2b851, 0xeb851eb8, 0x4006a3d7, 0x0a3d70a4}, /* -1.17000=f(-1.17000, v2.83000)*/ +{ 0, 0,123,__LINE__, 0xbff28f5c, 0x20000000, 0xbff28f5c, 0x28f5c28f, 0x4006b851, 0xeb851eb8}, /* -1.16000=f(-1.16000, v2.84000)*/ +{ 0, 0,123,__LINE__, 0xbff26666, 0x60000000, 0xbff26666, 0x66666666, 0x4006cccc, 0xcccccccd}, /* -1.15000=f(-1.15000, v2.85000)*/ +{ 0, 0,123,__LINE__, 0xbff23d70, 0xa0000000, 0xbff23d70, 0xa3d70a3d, 0x4006e147, 0xae147ae2}, /* -1.14000=f(-1.14000, v2.86000)*/ +{ 0, 0,123,__LINE__, 0xbff2147a, 0xe0000000, 0xbff2147a, 0xe147ae14, 0x4006f5c2, 0x8f5c28f6}, /* -1.13000=f(-1.13000, v2.87000)*/ +{ 0, 0,123,__LINE__, 0xbff1eb85, 0x20000000, 0xbff1eb85, 0x1eb851eb, 0x40070a3d, 0x70a3d70a}, /* -1.12000=f(-1.12000, v2.88000)*/ +{ 0, 0,123,__LINE__, 0xbff1c28f, 0x60000000, 0xbff1c28f, 0x5c28f5c2, 0x40071eb8, 0x51eb851f}, /* -1.11000=f(-1.11000, v2.89000)*/ +{ 0, 0,123,__LINE__, 0xbff19999, 0xa0000000, 0xbff19999, 0x99999999, 0x40073333, 0x33333334}, /* -1.10000=f(-1.10000, v2.90000)*/ +{ 0, 0,123,__LINE__, 0xbff170a3, 0xe0000000, 0xbff170a3, 0xd70a3d70, 0x400747ae, 0x147ae148}, /* -1.09000=f(-1.09000, v2.91000)*/ +{ 0, 0,123,__LINE__, 0xbff147ae, 0x20000000, 0xbff147ae, 0x147ae147, 0x40075c28, 0xf5c28f5c}, /* -1.08000=f(-1.08000, v2.92000)*/ +{ 0, 0,123,__LINE__, 0xbff11eb8, 0x60000000, 0xbff11eb8, 0x51eb851e, 0x400770a3, 0xd70a3d71}, /* -1.07000=f(-1.07000, v2.93000)*/ +{ 0, 0,123,__LINE__, 0xbff0f5c2, 0x80000000, 0xbff0f5c2, 0x8f5c28f5, 0x4007851e, 0xb851eb86}, /* -1.06000=f(-1.06000, v2.94000)*/ +{ 0, 0,123,__LINE__, 0xbff0cccc, 0xc0000000, 0xbff0cccc, 0xcccccccc, 0x40079999, 0x9999999a}, /* -1.05000=f(-1.05000, v2.95000)*/ +{ 0, 0,123,__LINE__, 0xbff0a3d7, 0x00000000, 0xbff0a3d7, 0x0a3d70a3, 0x4007ae14, 0x7ae147ae}, /* -1.04000=f(-1.04000, v2.96000)*/ +{ 0, 0,123,__LINE__, 0xbff07ae1, 0x40000000, 0xbff07ae1, 0x47ae147a, 0x4007c28f, 0x5c28f5c3}, /* -1.03000=f(-1.03000, v2.97000)*/ +{ 0, 0,123,__LINE__, 0xbff051eb, 0x80000000, 0xbff051eb, 0x851eb851, 0x4007d70a, 0x3d70a3d8}, /* -1.02000=f(-1.02000, v2.98000)*/ +{ 0, 0,123,__LINE__, 0xbff028f5, 0xc0000000, 0xbff028f5, 0xc28f5c28, 0x4007eb85, 0x1eb851ec}, /* -1.01000=f(-1.01000, v2.99000)*/ +{ 0, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xbfefffff, 0xfffffffe, 0x40080000, 0x00000000}, /* -1.00000=f(-0.01000, v3.00000)*/ +{ 0, 0,123,__LINE__, 0xbfefae14, 0x80000000, 0xbfefae14, 0x7ae147ac, 0x4008147a, 0xe147ae15}, /* -0.99000=f(-0.99000, v3.01000)*/ +{ 0, 0,123,__LINE__, 0xbfef5c29, 0x00000000, 0xbfef5c28, 0xf5c28f5a, 0x400828f5, 0xc28f5c2a}, /* -0.98000=f(-0.98000, v3.02000)*/ +{ 0, 0,123,__LINE__, 0xbfef0a3d, 0x80000000, 0xbfef0a3d, 0x70a3d708, 0x40083d70, 0xa3d70a3e}, /* -0.97000=f(-0.97000, v3.03000)*/ +{ 0, 0,123,__LINE__, 0xbfeeb851, 0xe0000000, 0xbfeeb851, 0xeb851eb6, 0x400851eb, 0x851eb852}, /* -0.95999=f(-0.96000, v3.04000)*/ +{ 0, 0,123,__LINE__, 0xbfee6666, 0x60000000, 0xbfee6666, 0x66666664, 0x40086666, 0x66666667}, /* -0.94999=f(-0.95000, v3.05000)*/ +{ 0, 0,123,__LINE__, 0xbfee147a, 0xe0000000, 0xbfee147a, 0xe147ae12, 0x40087ae1, 0x47ae147c}, /* -0.94000=f(-0.94000, v3.06000)*/ +{ 0, 0,123,__LINE__, 0xbfedc28f, 0x60000000, 0xbfedc28f, 0x5c28f5c0, 0x40088f5c, 0x28f5c290}, /* -0.93000=f(-0.93000, v3.07000)*/ +{ 0, 0,123,__LINE__, 0xbfed70a3, 0xe0000000, 0xbfed70a3, 0xd70a3d6e, 0x4008a3d7, 0x0a3d70a4}, /* -0.92000=f(-0.92000, v3.08000)*/ +{ 0, 0,123,__LINE__, 0xbfed1eb8, 0x60000000, 0xbfed1eb8, 0x51eb851c, 0x4008b851, 0xeb851eb9}, /* -0.91000=f(-0.91000, v3.09000)*/ +{ 0, 0,123,__LINE__, 0xbfeccccc, 0xc0000000, 0xbfeccccc, 0xccccccca, 0x4008cccc, 0xccccccce}, /* -0.89999=f(-0.90000, v3.10000)*/ +{ 0, 0,123,__LINE__, 0xbfec7ae1, 0x40000000, 0xbfec7ae1, 0x47ae1478, 0x4008e147, 0xae147ae2}, /* -0.88999=f(-0.89000, v3.11000)*/ +{ 0, 0,123,__LINE__, 0xbfec28f5, 0xc0000000, 0xbfec28f5, 0xc28f5c26, 0x4008f5c2, 0x8f5c28f6}, /* -0.88000=f(-0.88000, v3.12000)*/ +{ 0, 0,123,__LINE__, 0xbfebd70a, 0x40000000, 0xbfebd70a, 0x3d70a3d4, 0x40090a3d, 0x70a3d70b}, /* -0.87000=f(-0.87000, v3.13000)*/ +{ 0, 0,123,__LINE__, 0xbfeb851e, 0xc0000000, 0xbfeb851e, 0xb851eb82, 0x40091eb8, 0x51eb8520}, /* -0.86000=f(-0.86000, v3.14000)*/ +{ 0, 0,123,__LINE__, 0xbfeb3333, 0x40000000, 0xbfeb3333, 0x33333330, 0x40093333, 0x33333334}, /* -0.85000=f(-0.85000, v3.15000)*/ +{ 0, 0,123,__LINE__, 0xbfeae147, 0xa0000000, 0xbfeae147, 0xae147ade, 0x400947ae, 0x147ae148}, /* -0.83999=f(-0.84000, v3.16000)*/ +{ 0, 0,123,__LINE__, 0xbfea8f5c, 0x20000000, 0xbfea8f5c, 0x28f5c28c, 0x40095c28, 0xf5c28f5d}, /* -0.82999=f(-0.83000, v3.17000)*/ +{ 0, 0,123,__LINE__, 0xbfea3d70, 0xa0000000, 0xbfea3d70, 0xa3d70a3a, 0x400970a3, 0xd70a3d72}, /* -0.81999=f(-0.82000, v3.18000)*/ +{ 0, 0,123,__LINE__, 0xbfe9eb85, 0x20000000, 0xbfe9eb85, 0x1eb851e8, 0x4009851e, 0xb851eb86}, /* -0.81000=f(-0.81000, v3.19000)*/ +{ 0, 0,123,__LINE__, 0xbfe99999, 0xa0000000, 0xbfe99999, 0x99999996, 0x40099999, 0x9999999a}, /* -0.80000=f(-0.80000, v3.20000)*/ +{ 0, 0,123,__LINE__, 0xbfe947ae, 0x20000000, 0xbfe947ae, 0x147ae144, 0x4009ae14, 0x7ae147af}, /* -0.79000=f(-0.79000, v3.21000)*/ +{ 0, 0,123,__LINE__, 0xbfe8f5c2, 0x80000000, 0xbfe8f5c2, 0x8f5c28f2, 0x4009c28f, 0x5c28f5c4}, /* -0.77999=f(-0.78000, v3.22000)*/ +{ 0, 0,123,__LINE__, 0xbfe8a3d7, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0, 0x4009d70a, 0x3d70a3d8}, /* -0.76999=f(-0.77000, v3.23000)*/ +{ 0, 0,123,__LINE__, 0xbfe851eb, 0x80000000, 0xbfe851eb, 0x851eb84e, 0x4009eb85, 0x1eb851ec}, /* -0.75999=f(-0.76000, v3.24000)*/ +{ 0, 0,123,__LINE__, 0xbfe80000, 0x00000000, 0xbfe7ffff, 0xfffffffc, 0x400a0000, 0x00000001}, /* -0.75000=f(-0.75000, v3.25000)*/ +{ 0, 0,123,__LINE__, 0xbfe7ae14, 0x80000000, 0xbfe7ae14, 0x7ae147aa, 0x400a147a, 0xe147ae16}, /* -0.74000=f(-0.74000, v3.26000)*/ +{ 0, 0,123,__LINE__, 0xbfe75c29, 0x00000000, 0xbfe75c28, 0xf5c28f58, 0x400a28f5, 0xc28f5c2a}, /* -0.73000=f(-0.73000, v3.27000)*/ +{ 0, 0,123,__LINE__, 0xbfe70a3d, 0x80000000, 0xbfe70a3d, 0x70a3d706, 0x400a3d70, 0xa3d70a3e}, /* -0.72000=f(-0.72000, v3.28000)*/ +{ 0, 0,123,__LINE__, 0xbfe6b851, 0xe0000000, 0xbfe6b851, 0xeb851eb4, 0x400a51eb, 0x851eb853}, /* -0.70999=f(-0.71000, v3.29000)*/ +{ 0, 0,123,__LINE__, 0xbfe66666, 0x60000000, 0xbfe66666, 0x66666662, 0x400a6666, 0x66666668}, /* -0.69999=f(-0.70000, v3.30000)*/ +{ 0, 0,123,__LINE__, 0xbfe6147a, 0xe0000000, 0xbfe6147a, 0xe147ae10, 0x400a7ae1, 0x47ae147c}, /* -0.69000=f(-0.69000, v3.31000)*/ +{ 0, 0,123,__LINE__, 0xbfe5c28f, 0x60000000, 0xbfe5c28f, 0x5c28f5be, 0x400a8f5c, 0x28f5c290}, /* -0.68000=f(-0.68000, v3.32000)*/ +{ 0, 0,123,__LINE__, 0xbfe570a3, 0xe0000000, 0xbfe570a3, 0xd70a3d6c, 0x400aa3d7, 0x0a3d70a5}, /* -0.67000=f(-0.67000, v3.33000)*/ +{ 0, 0,123,__LINE__, 0xbfe51eb8, 0x60000000, 0xbfe51eb8, 0x51eb851a, 0x400ab851, 0xeb851eba}, /* -0.66000=f(-0.66000, v3.34000)*/ +{ 0, 0,123,__LINE__, 0xbfe4cccc, 0xc0000000, 0xbfe4cccc, 0xccccccc8, 0x400acccc, 0xccccccce}, /* -0.64999=f(-0.65000, v3.35000)*/ +{ 0, 0,123,__LINE__, 0xbfe47ae1, 0x40000000, 0xbfe47ae1, 0x47ae1476, 0x400ae147, 0xae147ae2}, /* -0.63999=f(-0.64000, v3.36000)*/ +{ 0, 0,123,__LINE__, 0xbfe428f5, 0xc0000000, 0xbfe428f5, 0xc28f5c24, 0x400af5c2, 0x8f5c28f7}, /* -0.63000=f(-0.63000, v3.37000)*/ +{ 0, 0,123,__LINE__, 0xbfe3d70a, 0x40000000, 0xbfe3d70a, 0x3d70a3d2, 0x400b0a3d, 0x70a3d70c}, /* -0.62000=f(-0.62000, v3.38000)*/ +{ 0, 0,123,__LINE__, 0xbfe3851e, 0xc0000000, 0xbfe3851e, 0xb851eb80, 0x400b1eb8, 0x51eb8520}, /* -0.61000=f(-0.61000, v3.39000)*/ +{ 0, 0,123,__LINE__, 0xbfe33333, 0x40000000, 0xbfe33333, 0x3333332e, 0x400b3333, 0x33333334}, /* -0.60000=f(-0.60000, v3.40000)*/ +{ 0, 0,123,__LINE__, 0xbfe2e147, 0xa0000000, 0xbfe2e147, 0xae147adc, 0x400b47ae, 0x147ae149}, /* -0.58999=f(-0.59000, v3.41000)*/ +{ 0, 0,123,__LINE__, 0xbfe28f5c, 0x20000000, 0xbfe28f5c, 0x28f5c28a, 0x400b5c28, 0xf5c28f5e}, /* -0.57999=f(-0.58000, v3.42000)*/ +{ 0, 0,123,__LINE__, 0xbfe23d70, 0xa0000000, 0xbfe23d70, 0xa3d70a38, 0x400b70a3, 0xd70a3d72}, /* -0.56999=f(-0.57000, v3.43000)*/ +{ 0, 0,123,__LINE__, 0xbfe1eb85, 0x20000000, 0xbfe1eb85, 0x1eb851e6, 0x400b851e, 0xb851eb86}, /* -0.56000=f(-0.56000, v3.44000)*/ +{ 0, 0,123,__LINE__, 0xbfe19999, 0xa0000000, 0xbfe19999, 0x99999994, 0x400b9999, 0x9999999b}, /* -0.55000=f(-0.55000, v3.45000)*/ +{ 0, 0,123,__LINE__, 0xbfe147ae, 0x20000000, 0xbfe147ae, 0x147ae142, 0x400bae14, 0x7ae147b0}, /* -0.54000=f(-0.54000, v3.46000)*/ +{ 0, 0,123,__LINE__, 0xbfe0f5c2, 0x80000000, 0xbfe0f5c2, 0x8f5c28f0, 0x400bc28f, 0x5c28f5c4}, /* -0.52999=f(-0.53000, v3.47000)*/ +{ 0, 0,123,__LINE__, 0xbfe0a3d7, 0x00000000, 0xbfe0a3d7, 0x0a3d709e, 0x400bd70a, 0x3d70a3d8}, /* -0.51999=f(-0.52000, v3.48000)*/ +{ 0, 0,123,__LINE__, 0xbfe051eb, 0x80000000, 0xbfe051eb, 0x851eb84c, 0x400beb85, 0x1eb851ed}, /* -0.50999=f(-0.51000, v3.49000)*/ +{ 0, 0,123,__LINE__, 0xbfe00000, 0x00000000, 0xbfdfffff, 0xfffffff4, 0x400c0000, 0x00000002}, /* -0.50000=f(-0.50000, v3.50000)*/ +{ 0, 0,123,__LINE__, 0xbfdf5c29, 0x00000000, 0xbfdf5c28, 0xf5c28f50, 0x400c147a, 0xe147ae16}, /* -0.49000=f(-0.49000, v3.51000)*/ +{ 0, 0,123,__LINE__, 0xbfdeb851, 0xe0000000, 0xbfdeb851, 0xeb851eac, 0x400c28f5, 0xc28f5c2a}, /* -0.47999=f(-0.48000, v3.52000)*/ +{ 0, 0,123,__LINE__, 0xbfde147a, 0xe0000000, 0xbfde147a, 0xe147ae08, 0x400c3d70, 0xa3d70a3f}, /* -0.47000=f(-0.47000, v3.53000)*/ +{ 0, 0,123,__LINE__, 0xbfdd70a3, 0xe0000000, 0xbfdd70a3, 0xd70a3d64, 0x400c51eb, 0x851eb854}, /* -0.46000=f(-0.46000, v3.54000)*/ +{ 0, 0,123,__LINE__, 0xbfdccccc, 0xc0000000, 0xbfdccccc, 0xccccccc0, 0x400c6666, 0x66666668}, /* -0.44999=f(-0.45000, v3.55000)*/ +{ 0, 0,123,__LINE__, 0xbfdc28f5, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c, 0x400c7ae1, 0x47ae147c}, /* -0.44000=f(-0.44000, v3.56000)*/ +{ 0, 0,123,__LINE__, 0xbfdb851e, 0xc0000000, 0xbfdb851e, 0xb851eb78, 0x400c8f5c, 0x28f5c291}, /* -0.43000=f(-0.43000, v3.57000)*/ +{ 0, 0,123,__LINE__, 0xbfdae147, 0xa0000000, 0xbfdae147, 0xae147ad4, 0x400ca3d7, 0x0a3d70a6}, /* -0.41999=f(-0.42000, v3.58000)*/ +{ 0, 0,123,__LINE__, 0xbfda3d70, 0xa0000000, 0xbfda3d70, 0xa3d70a30, 0x400cb851, 0xeb851eba}, /* -0.41000=f(-0.41000, v3.59000)*/ +{ 0, 0,123,__LINE__, 0xbfd99999, 0xa0000000, 0xbfd99999, 0x9999998c, 0x400ccccc, 0xccccccce}, /* -0.40000=f(-0.40000, v3.60000)*/ +{ 0, 0,123,__LINE__, 0xbfd8f5c2, 0x80000000, 0xbfd8f5c2, 0x8f5c28e8, 0x400ce147, 0xae147ae3}, /* -0.38999=f(-0.39000, v3.61000)*/ +{ 0, 0,123,__LINE__, 0xbfd851eb, 0x80000000, 0xbfd851eb, 0x851eb844, 0x400cf5c2, 0x8f5c28f8}, /* -0.38000=f(-0.38000, v3.62000)*/ +{ 0, 0,123,__LINE__, 0xbfd7ae14, 0x80000000, 0xbfd7ae14, 0x7ae147a0, 0x400d0a3d, 0x70a3d70c}, /* -0.37000=f(-0.37000, v3.63000)*/ +{ 0, 0,123,__LINE__, 0xbfd70a3d, 0x80000000, 0xbfd70a3d, 0x70a3d6fc, 0x400d1eb8, 0x51eb8520}, /* -0.36000=f(-0.36000, v3.64000)*/ +{ 0, 0,123,__LINE__, 0xbfd66666, 0x60000000, 0xbfd66666, 0x66666658, 0x400d3333, 0x33333335}, /* -0.34999=f(-0.35000, v3.65000)*/ +{ 0, 0,123,__LINE__, 0xbfd5c28f, 0x60000000, 0xbfd5c28f, 0x5c28f5b4, 0x400d47ae, 0x147ae14a}, /* -0.34000=f(-0.34000, v3.66000)*/ +{ 0, 0,123,__LINE__, 0xbfd51eb8, 0x60000000, 0xbfd51eb8, 0x51eb8510, 0x400d5c28, 0xf5c28f5e}, /* -0.33000=f(-0.33000, v3.67000)*/ +{ 0, 0,123,__LINE__, 0xbfd47ae1, 0x40000000, 0xbfd47ae1, 0x47ae146c, 0x400d70a3, 0xd70a3d72}, /* -0.31999=f(-0.32000, v3.68000)*/ +{ 0, 0,123,__LINE__, 0xbfd3d70a, 0x40000000, 0xbfd3d70a, 0x3d70a3c8, 0x400d851e, 0xb851eb87}, /* -0.31000=f(-0.31000, v3.69000)*/ +{ 0, 0,123,__LINE__, 0xbfd33333, 0x40000000, 0xbfd33333, 0x33333324, 0x400d9999, 0x9999999c}, /* -0.30000=f(-0.30000, v3.70000)*/ +{ 0, 0,123,__LINE__, 0xbfd28f5c, 0x20000000, 0xbfd28f5c, 0x28f5c280, 0x400dae14, 0x7ae147b0}, /* -0.28999=f(-0.29000, v3.71000)*/ +{ 0, 0,123,__LINE__, 0xbfd1eb85, 0x20000000, 0xbfd1eb85, 0x1eb851dc, 0x400dc28f, 0x5c28f5c4}, /* -0.28000=f(-0.28000, v3.72000)*/ +{ 0, 0,123,__LINE__, 0xbfd147ae, 0x20000000, 0xbfd147ae, 0x147ae138, 0x400dd70a, 0x3d70a3d9}, /* -0.27000=f(-0.27000, v3.73000)*/ +{ 0, 0,123,__LINE__, 0xbfd0a3d7, 0x00000000, 0xbfd0a3d7, 0x0a3d7094, 0x400deb85, 0x1eb851ee}, /* -0.25999=f(-0.26000, v3.74000)*/ +{ 0, 0,123,__LINE__, 0xbfd00000, 0x00000000, 0xbfcfffff, 0xffffffe0, 0x400e0000, 0x00000002}, /* -0.25000=f(-0.25000, v3.75000)*/ +{ 0, 0,123,__LINE__, 0xbfceb851, 0xe0000000, 0xbfceb851, 0xeb851e98, 0x400e147a, 0xe147ae16}, /* -0.23999=f(-0.24000, v3.76000)*/ +{ 0, 0,123,__LINE__, 0xbfcd70a3, 0xe0000000, 0xbfcd70a3, 0xd70a3d50, 0x400e28f5, 0xc28f5c2b}, /* -0.23000=f(-0.23000, v3.77000)*/ +{ 0, 0,123,__LINE__, 0xbfcc28f5, 0xc0000000, 0xbfcc28f5, 0xc28f5c08, 0x400e3d70, 0xa3d70a40}, /* -0.22000=f(-0.22000, v3.78000)*/ +{ 0, 0,123,__LINE__, 0xbfcae147, 0xa0000000, 0xbfcae147, 0xae147ac0, 0x400e51eb, 0x851eb854}, /* -0.20999=f(-0.21000, v3.79000)*/ +{ 0, 0,123,__LINE__, 0xbfc99999, 0xa0000000, 0xbfc99999, 0x99999978, 0x400e6666, 0x66666668}, /* -0.20000=f(-0.20000, v3.80000)*/ +{ 0, 0,123,__LINE__, 0xbfc851eb, 0x80000000, 0xbfc851eb, 0x851eb830, 0x400e7ae1, 0x47ae147d}, /* -0.19000=f(-0.19000, v3.81000)*/ +{ 0, 0,123,__LINE__, 0xbfc70a3d, 0x80000000, 0xbfc70a3d, 0x70a3d6e8, 0x400e8f5c, 0x28f5c292}, /* -0.18000=f(-0.18000, v3.82000)*/ +{ 0, 0,123,__LINE__, 0xbfc5c28f, 0x60000000, 0xbfc5c28f, 0x5c28f5a0, 0x400ea3d7, 0x0a3d70a6}, /* -0.17000=f(-0.17000, v3.83000)*/ +{ 0, 0,123,__LINE__, 0xbfc47ae1, 0x40000000, 0xbfc47ae1, 0x47ae1458, 0x400eb851, 0xeb851eba}, /* -0.16000=f(-0.16000, v3.84000)*/ +{ 0, 0,123,__LINE__, 0xbfc33333, 0x40000000, 0xbfc33333, 0x33333310, 0x400ecccc, 0xcccccccf}, /* -0.15000=f(-0.15000, v3.85000)*/ +{ 0, 0,123,__LINE__, 0xbfc1eb85, 0x20000000, 0xbfc1eb85, 0x1eb851c8, 0x400ee147, 0xae147ae4}, /* -0.14000=f(-0.14000, v3.86000)*/ +{ 0, 0,123,__LINE__, 0xbfc0a3d7, 0x00000000, 0xbfc0a3d7, 0x0a3d7080, 0x400ef5c2, 0x8f5c28f8}, /* -0.13000=f(-0.13000, v3.87000)*/ +{ 0, 0,123,__LINE__, 0xbfbeb851, 0xe0000000, 0xbfbeb851, 0xeb851e71, 0x400f0a3d, 0x70a3d70c}, /* -0.12000=f(-0.12000, v3.88000)*/ +{ 0, 0,123,__LINE__, 0xbfbc28f5, 0xc0000000, 0xbfbc28f5, 0xc28f5be2, 0x400f1eb8, 0x51eb8521}, /* -0.11000=f(-0.11000, v3.89000)*/ +{ 0, 0,123,__LINE__, 0xbfb99999, 0xa0000000, 0xbfb99999, 0x99999953, 0x400f3333, 0x33333335}, /* -0.10000=f(-0.00100, v3.90000)*/ +{ 0, 0,123,__LINE__, 0xbfb70a3d, 0x80000000, 0xbfb70a3d, 0x70a3d6c4, 0x400f47ae, 0x147ae14a}, /* -0.09000=f(-0.09000, v3.91000)*/ +{ 0, 0,123,__LINE__, 0xbfb47ae1, 0x40000000, 0xbfb47ae1, 0x47ae1435, 0x400f5c28, 0xf5c28f5e}, /* -0.07999=f(-0.08000, v3.92000)*/ +{ 0, 0,123,__LINE__, 0xbfb1eb85, 0x20000000, 0xbfb1eb85, 0x1eb851a6, 0x400f70a3, 0xd70a3d73}, /* -0.07000=f(-0.07000, v3.93000)*/ +{ 0, 0,123,__LINE__, 0xbfaeb851, 0xe0000000, 0xbfaeb851, 0xeb851e2d, 0x400f851e, 0xb851eb87}, /* -0.05999=f(-0.06000, v3.94000)*/ +{ 0, 0,123,__LINE__, 0xbfa99999, 0xa0000000, 0xbfa99999, 0x9999990e, 0x400f9999, 0x9999999c}, /* -0.05000=f(-0.05000, v3.95000)*/ +{ 0, 0,123,__LINE__, 0xbfa47ae1, 0x40000000, 0xbfa47ae1, 0x47ae13ef, 0x400fae14, 0x7ae147b0}, /* -0.03999=f(-0.04000, v3.96000)*/ +{ 0, 0,123,__LINE__, 0xbf9eb851, 0xe0000000, 0xbf9eb851, 0xeb851da0, 0x400fc28f, 0x5c28f5c5}, /* -0.02999=f(-0.03000, v3.97000)*/ +{ 0, 0,123,__LINE__, 0xbf947ae1, 0x40000000, 0xbf947ae1, 0x47ae1362, 0x400fd70a, 0x3d70a3d9}, /* -0.01999=f(-0.02000, v3.98000)*/ +{ 0, 0,123,__LINE__, 0xbf847ae1, 0x40000000, 0xbf847ae1, 0x47ae1249, 0x400feb85, 0x1eb851ee}, /* -0.00999=f(-0.00010, v3.99000)*/ +{ 1, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000, 0x40100000, 0x00000001}, /* 9.74915e-16=f(9.74915e-16, v4.00000)*/ +{ 1, 0,123,__LINE__, 0x3f847ae1, 0x40000000, 0x3f847ae1, 0x47ae16ad, 0x40100a3d, 0x70a3d70b}, /* 0.00999=f(0.01000, v4.01000)*/ +{ 1, 0,123,__LINE__, 0x3f947ae1, 0x40000000, 0x3f947ae1, 0x47ae1594, 0x4010147a, 0xe147ae16}, /* 0.01999=f(0.02000, v4.02000)*/ +{ 1, 0,123,__LINE__, 0x3f9eb851, 0xe0000000, 0x3f9eb851, 0xeb851fd2, 0x40101eb8, 0x51eb8520}, /* 0.02999=f(0.03000, v4.03000)*/ +{ 1, 0,123,__LINE__, 0x3fa47ae1, 0x40000000, 0x3fa47ae1, 0x47ae1508, 0x401028f5, 0xc28f5c2a}, /* 0.03999=f(0.04000, v4.04000)*/ +{ 1, 0,123,__LINE__, 0x3fa99999, 0xa0000000, 0x3fa99999, 0x99999a27, 0x40103333, 0x33333334}, /* 0.05000=f(0.05000, v4.05000)*/ +{ 1, 0,123,__LINE__, 0x3faeb851, 0xe0000000, 0x3faeb851, 0xeb851f46, 0x40103d70, 0xa3d70a3f}, /* 0.05999=f(0.06000, v4.06000)*/ +{ 1, 0,123,__LINE__, 0x3fb1eb85, 0x20000000, 0x3fb1eb85, 0x1eb85232, 0x401047ae, 0x147ae149}, /* 0.07000=f(0.07000, v4.07000)*/ +{ 1, 0,123,__LINE__, 0x3fb47ae1, 0x40000000, 0x3fb47ae1, 0x47ae14c1, 0x401051eb, 0x851eb853}, /* 0.07999=f(0.08000, v4.08000)*/ +{ 1, 0,123,__LINE__, 0x3fb70a3d, 0x80000000, 0x3fb70a3d, 0x70a3d750, 0x40105c28, 0xf5c28f5d}, /* 0.09000=f(0.09000, v4.09000)*/ +{ 1, 0,123,__LINE__, 0x3fb99999, 0xa0000000, 0x3fb99999, 0x999999df, 0x40106666, 0x66666667}, /* 0.10000=f(0.10000, v4.10000)*/ +{ 1, 0,123,__LINE__, 0x3fbc28f5, 0xc0000000, 0x3fbc28f5, 0xc28f5c6e, 0x401070a3, 0xd70a3d72}, /* 0.11000=f(0.11000, v4.11000)*/ +{ 1, 0,123,__LINE__, 0x3fbeb851, 0xe0000000, 0x3fbeb851, 0xeb851efd, 0x40107ae1, 0x47ae147c}, /* 0.12000=f(0.12000, v4.12000)*/ +{ 1, 0,123,__LINE__, 0x3fc0a3d7, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6, 0x4010851e, 0xb851eb86}, /* 0.13000=f(0.13000, v4.13000)*/ +{ 1, 0,123,__LINE__, 0x3fc1eb85, 0x20000000, 0x3fc1eb85, 0x1eb8520e, 0x40108f5c, 0x28f5c290}, /* 0.14000=f(0.14000, v4.14000)*/ +{ 1, 0,123,__LINE__, 0x3fc33333, 0x40000000, 0x3fc33333, 0x33333356, 0x40109999, 0x9999999b}, /* 0.15000=f(0.15000, v4.15000)*/ +{ 1, 0,123,__LINE__, 0x3fc47ae1, 0x40000000, 0x3fc47ae1, 0x47ae149e, 0x4010a3d7, 0x0a3d70a5}, /* 0.16000=f(0.16000, v4.16000)*/ +{ 1, 0,123,__LINE__, 0x3fc5c28f, 0x60000000, 0x3fc5c28f, 0x5c28f5e6, 0x4010ae14, 0x7ae147af}, /* 0.17000=f(0.17000, v4.17000)*/ +{ 1, 0,123,__LINE__, 0x3fc70a3d, 0x80000000, 0x3fc70a3d, 0x70a3d72e, 0x4010b851, 0xeb851eb9}, /* 0.18000=f(0.18000, v4.18000)*/ +{ 1, 0,123,__LINE__, 0x3fc851eb, 0x80000000, 0x3fc851eb, 0x851eb876, 0x4010c28f, 0x5c28f5c4}, /* 0.19000=f(0.19000, v4.19000)*/ +{ 1, 0,123,__LINE__, 0x3fc99999, 0xa0000000, 0x3fc99999, 0x999999be, 0x4010cccc, 0xccccccce}, /* 0.20000=f(0.20000, v4.20000)*/ +{ 1, 0,123,__LINE__, 0x3fcae147, 0xa0000000, 0x3fcae147, 0xae147b06, 0x4010d70a, 0x3d70a3d8}, /* 0.20999=f(0.21000, v4.21000)*/ +{ 1, 0,123,__LINE__, 0x3fcc28f5, 0xc0000000, 0x3fcc28f5, 0xc28f5c4e, 0x4010e147, 0xae147ae2}, /* 0.22000=f(0.22000, v4.22000)*/ +{ 1, 0,123,__LINE__, 0x3fcd70a3, 0xe0000000, 0x3fcd70a3, 0xd70a3d96, 0x4010eb85, 0x1eb851ed}, /* 0.23000=f(0.23000, v4.23000)*/ +{ 1, 0,123,__LINE__, 0x3fceb851, 0xe0000000, 0x3fceb851, 0xeb851ede, 0x4010f5c2, 0x8f5c28f7}, /* 0.23999=f(0.24000, v4.24000)*/ +{ 1, 0,123,__LINE__, 0x3fd00000, 0x00000000, 0x3fd00000, 0x00000013, 0x40110000, 0x00000001}, /* 0.25000=f(0.25000, v4.25000)*/ +{ 1, 0,123,__LINE__, 0x3fd0a3d7, 0x00000000, 0x3fd0a3d7, 0x0a3d70b7, 0x40110a3d, 0x70a3d70b}, /* 0.25999=f(0.26000, v4.26000)*/ +{ 1, 0,123,__LINE__, 0x3fd147ae, 0x20000000, 0x3fd147ae, 0x147ae15b, 0x4011147a, 0xe147ae16}, /* 0.27000=f(0.27000, v4.27000)*/ +{ 1, 0,123,__LINE__, 0x3fd1eb85, 0x20000000, 0x3fd1eb85, 0x1eb851ff, 0x40111eb8, 0x51eb8520}, /* 0.28000=f(0.28000, v4.28000)*/ +{ 1, 0,123,__LINE__, 0x3fd28f5c, 0x20000000, 0x3fd28f5c, 0x28f5c2a3, 0x401128f5, 0xc28f5c2a}, /* 0.28999=f(0.29000, v4.29000)*/ +{ 1, 0,123,__LINE__, 0x3fd33333, 0x40000000, 0x3fd33333, 0x33333347, 0x40113333, 0x33333334}, /* 0.30000=f(0.30000, v4.30000)*/ +{ 1, 0,123,__LINE__, 0x3fd3d70a, 0x40000000, 0x3fd3d70a, 0x3d70a3eb, 0x40113d70, 0xa3d70a3f}, /* 0.31000=f(0.31000, v4.31000)*/ +{ 1, 0,123,__LINE__, 0x3fd47ae1, 0x40000000, 0x3fd47ae1, 0x47ae148f, 0x401147ae, 0x147ae149}, /* 0.31999=f(0.32000, v4.32000)*/ +{ 1, 0,123,__LINE__, 0x3fd51eb8, 0x60000000, 0x3fd51eb8, 0x51eb8533, 0x401151eb, 0x851eb853}, /* 0.33000=f(0.33000, v4.33000)*/ +{ 1, 0,123,__LINE__, 0x3fd5c28f, 0x60000000, 0x3fd5c28f, 0x5c28f5d7, 0x40115c28, 0xf5c28f5d}, /* 0.34000=f(0.34000, v4.34000)*/ +{ 1, 0,123,__LINE__, 0x3fd66666, 0x60000000, 0x3fd66666, 0x6666667b, 0x40116666, 0x66666668}, /* 0.34999=f(0.35000, v4.35000)*/ +{ 1, 0,123,__LINE__, 0x3fd70a3d, 0x80000000, 0x3fd70a3d, 0x70a3d71f, 0x401170a3, 0xd70a3d72}, /* 0.36000=f(0.36000, v4.36000)*/ +{ 1, 0,123,__LINE__, 0x3fd7ae14, 0x80000000, 0x3fd7ae14, 0x7ae147c3, 0x40117ae1, 0x47ae147c}, /* 0.37000=f(0.37000, v4.37000)*/ +{ 1, 0,123,__LINE__, 0x3fd851eb, 0x80000000, 0x3fd851eb, 0x851eb867, 0x4011851e, 0xb851eb86}, /* 0.38000=f(0.38000, v4.38000)*/ +{ 1, 0,123,__LINE__, 0x3fd8f5c2, 0x80000000, 0x3fd8f5c2, 0x8f5c290b, 0x40118f5c, 0x28f5c291}, /* 0.38999=f(0.39000, v4.39000)*/ +{ 1, 0,123,__LINE__, 0x3fd99999, 0xa0000000, 0x3fd99999, 0x999999af, 0x40119999, 0x9999999b}, /* 0.40000=f(0.40000, v4.40000)*/ +{ 1, 0,123,__LINE__, 0x3fda3d70, 0xa0000000, 0x3fda3d70, 0xa3d70a53, 0x4011a3d7, 0x0a3d70a5}, /* 0.41000=f(0.41000, v4.41000)*/ +{ 1, 0,123,__LINE__, 0x3fdae147, 0xa0000000, 0x3fdae147, 0xae147af7, 0x4011ae14, 0x7ae147af}, /* 0.41999=f(0.42000, v4.42000)*/ +{ 1, 0,123,__LINE__, 0x3fdb851e, 0xc0000000, 0x3fdb851e, 0xb851eb9b, 0x4011b851, 0xeb851eba}, /* 0.43000=f(0.43000, v4.43000)*/ +{ 1, 0,123,__LINE__, 0x3fdc28f5, 0xc0000000, 0x3fdc28f5, 0xc28f5c3f, 0x4011c28f, 0x5c28f5c4}, /* 0.44000=f(0.44000, v4.44000)*/ +{ 1, 0,123,__LINE__, 0x3fdccccc, 0xc0000000, 0x3fdccccc, 0xcccccce3, 0x4011cccc, 0xccccccce}, /* 0.44999=f(0.45000, v4.45000)*/ +{ 1, 0,123,__LINE__, 0x3fdd70a3, 0xe0000000, 0x3fdd70a3, 0xd70a3d87, 0x4011d70a, 0x3d70a3d8}, /* 0.46000=f(0.46000, v4.46000)*/ +{ 1, 0,123,__LINE__, 0x3fde147a, 0xe0000000, 0x3fde147a, 0xe147ae2b, 0x4011e147, 0xae147ae3}, /* 0.47000=f(0.47000, v4.47000)*/ +{ 1, 0,123,__LINE__, 0x3fdeb851, 0xe0000000, 0x3fdeb851, 0xeb851ecf, 0x4011eb85, 0x1eb851ed}, /* 0.47999=f(0.48000, v4.48000)*/ +{ 1, 0,123,__LINE__, 0x3fdf5c29, 0x00000000, 0x3fdf5c28, 0xf5c28f73, 0x4011f5c2, 0x8f5c28f7}, /* 0.49000=f(0.49000, v4.49000)*/ +{ 1, 0,123,__LINE__, 0x3fe00000, 0x00000000, 0x3fe00000, 0x0000000b, 0x40120000, 0x00000001}, /* 0.50000=f(0.50000, v4.50000)*/ +{ 1, 0,123,__LINE__, 0x3fe051eb, 0x80000000, 0x3fe051eb, 0x851eb85d, 0x40120a3d, 0x70a3d70c}, /* 0.50999=f(0.51000, v4.51000)*/ +{ 1, 0,123,__LINE__, 0x3fe0a3d7, 0x00000000, 0x3fe0a3d7, 0x0a3d70af, 0x4012147a, 0xe147ae16}, /* 0.51999=f(0.52000, v4.52000)*/ +{ 1, 0,123,__LINE__, 0x3fe0f5c2, 0x80000000, 0x3fe0f5c2, 0x8f5c2901, 0x40121eb8, 0x51eb8520}, /* 0.52999=f(0.53000, v4.53000)*/ +{ 1, 0,123,__LINE__, 0x3fe147ae, 0x20000000, 0x3fe147ae, 0x147ae153, 0x401228f5, 0xc28f5c2a}, /* 0.54000=f(0.54000, v4.54000)*/ +{ 1, 0,123,__LINE__, 0x3fe19999, 0xa0000000, 0x3fe19999, 0x999999a5, 0x40123333, 0x33333335}, /* 0.55000=f(0.55000, v4.55000)*/ +{ 1, 0,123,__LINE__, 0x3fe1eb85, 0x20000000, 0x3fe1eb85, 0x1eb851f7, 0x40123d70, 0xa3d70a3f}, /* 0.56000=f(0.56000, v4.56000)*/ +{ 1, 0,123,__LINE__, 0x3fe23d70, 0xa0000000, 0x3fe23d70, 0xa3d70a49, 0x401247ae, 0x147ae149}, /* 0.56999=f(0.57000, v4.57000)*/ +{ 1, 0,123,__LINE__, 0x3fe28f5c, 0x20000000, 0x3fe28f5c, 0x28f5c29b, 0x401251eb, 0x851eb853}, /* 0.57999=f(0.58000, v4.58000)*/ +{ 1, 0,123,__LINE__, 0x3fe2e147, 0xa0000000, 0x3fe2e147, 0xae147aed, 0x40125c28, 0xf5c28f5e}, /* 0.58999=f(0.59000, v4.59000)*/ +{ 1, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0x3fe33333, 0x3333333f, 0x40126666, 0x66666668}, /* 0.60000=f(0.60000, v4.60000)*/ +{ 1, 0,123,__LINE__, 0x3fe3851e, 0xc0000000, 0x3fe3851e, 0xb851eb91, 0x401270a3, 0xd70a3d72}, /* 0.61000=f(0.61000, v4.61000)*/ +{ 1, 0,123,__LINE__, 0x3fe3d70a, 0x40000000, 0x3fe3d70a, 0x3d70a3e3, 0x40127ae1, 0x47ae147c}, /* 0.62000=f(0.62000, v4.62000)*/ +{ 1, 0,123,__LINE__, 0x3fe428f5, 0xc0000000, 0x3fe428f5, 0xc28f5c35, 0x4012851e, 0xb851eb87}, /* 0.63000=f(0.63000, v4.63000)*/ +{ 1, 0,123,__LINE__, 0x3fe47ae1, 0x40000000, 0x3fe47ae1, 0x47ae1487, 0x40128f5c, 0x28f5c291}, /* 0.63999=f(0.64000, v4.64000)*/ +{ 1, 0,123,__LINE__, 0x3fe4cccc, 0xc0000000, 0x3fe4cccc, 0xccccccd9, 0x40129999, 0x9999999b}, /* 0.64999=f(0.65000, v4.65000)*/ +{ 1, 0,123,__LINE__, 0x3fe51eb8, 0x60000000, 0x3fe51eb8, 0x51eb852b, 0x4012a3d7, 0x0a3d70a5}, /* 0.66000=f(0.66000, v4.66000)*/ +{ 1, 0,123,__LINE__, 0x3fe570a3, 0xe0000000, 0x3fe570a3, 0xd70a3d7d, 0x4012ae14, 0x7ae147b0}, /* 0.67000=f(0.67000, v4.67000)*/ +{ 1, 0,123,__LINE__, 0x3fe5c28f, 0x60000000, 0x3fe5c28f, 0x5c28f5cf, 0x4012b851, 0xeb851eba}, /* 0.68000=f(0.68000, v4.68000)*/ +{ 1, 0,123,__LINE__, 0x3fe6147a, 0xe0000000, 0x3fe6147a, 0xe147ae21, 0x4012c28f, 0x5c28f5c4}, /* 0.69000=f(0.69000, v4.69000)*/ +{ 1, 0,123,__LINE__, 0x3fe66666, 0x60000000, 0x3fe66666, 0x66666673, 0x4012cccc, 0xccccccce}, /* 0.69999=f(0.70000, v4.70000)*/ +{ 1, 0,123,__LINE__, 0x3fe6b851, 0xe0000000, 0x3fe6b851, 0xeb851ec5, 0x4012d70a, 0x3d70a3d9}, /* 0.70999=f(0.71000, v4.71000)*/ +{ 1, 0,123,__LINE__, 0x3fe70a3d, 0x80000000, 0x3fe70a3d, 0x70a3d717, 0x4012e147, 0xae147ae3}, /* 0.72000=f(0.72000, v4.72000)*/ +{ 1, 0,123,__LINE__, 0x3fe75c29, 0x00000000, 0x3fe75c28, 0xf5c28f69, 0x4012eb85, 0x1eb851ed}, /* 0.73000=f(0.73000, v4.73000)*/ +{ 1, 0,123,__LINE__, 0x3fe7ae14, 0x80000000, 0x3fe7ae14, 0x7ae147bb, 0x4012f5c2, 0x8f5c28f7}, /* 0.74000=f(0.74000, v4.74000)*/ +{ 1, 0,123,__LINE__, 0x3fe80000, 0x00000000, 0x3fe80000, 0x0000000d, 0x40130000, 0x00000002}, /* 0.75000=f(0.75000, v4.75000)*/ +{ 1, 0,123,__LINE__, 0x3fe851eb, 0x80000000, 0x3fe851eb, 0x851eb85f, 0x40130a3d, 0x70a3d70c}, /* 0.75999=f(0.76000, v4.76000)*/ +{ 1, 0,123,__LINE__, 0x3fe8a3d7, 0x00000000, 0x3fe8a3d7, 0x0a3d70b1, 0x4013147a, 0xe147ae16}, /* 0.76999=f(0.77000, v4.77000)*/ +{ 1, 0,123,__LINE__, 0x3fe8f5c2, 0x80000000, 0x3fe8f5c2, 0x8f5c2903, 0x40131eb8, 0x51eb8520}, /* 0.77999=f(0.78000, v4.78000)*/ +{ 1, 0,123,__LINE__, 0x3fe947ae, 0x20000000, 0x3fe947ae, 0x147ae155, 0x401328f5, 0xc28f5c2b}, /* 0.79000=f(0.79000, v4.79000)*/ +{ 1, 0,123,__LINE__, 0x3fe99999, 0xa0000000, 0x3fe99999, 0x999999a7, 0x40133333, 0x33333335}, /* 0.80000=f(0.80000, v4.80000)*/ +{ 1, 0,123,__LINE__, 0x3fe9eb85, 0x20000000, 0x3fe9eb85, 0x1eb851f9, 0x40133d70, 0xa3d70a3f}, /* 0.81000=f(0.81000, v4.81000)*/ +{ 1, 0,123,__LINE__, 0x3fea3d70, 0xa0000000, 0x3fea3d70, 0xa3d70a4b, 0x401347ae, 0x147ae149}, /* 0.81999=f(0.82000, v4.82000)*/ +{ 1, 0,123,__LINE__, 0x3fea8f5c, 0x20000000, 0x3fea8f5c, 0x28f5c29d, 0x401351eb, 0x851eb854}, /* 0.82999=f(0.83000, v4.83000)*/ +{ 1, 0,123,__LINE__, 0x3feae147, 0xa0000000, 0x3feae147, 0xae147aef, 0x40135c28, 0xf5c28f5e}, /* 0.83999=f(0.84000, v4.84000)*/ +{ 1, 0,123,__LINE__, 0x3feb3333, 0x40000000, 0x3feb3333, 0x33333341, 0x40136666, 0x66666668}, /* 0.85000=f(0.85000, v4.85000)*/ +{ 1, 0,123,__LINE__, 0x3feb851e, 0xc0000000, 0x3feb851e, 0xb851eb93, 0x401370a3, 0xd70a3d72}, /* 0.86000=f(0.86000, v4.86000)*/ +{ 1, 0,123,__LINE__, 0x3febd70a, 0x40000000, 0x3febd70a, 0x3d70a3e5, 0x40137ae1, 0x47ae147d}, /* 0.87000=f(0.87000, v4.87000)*/ +{ 1, 0,123,__LINE__, 0x3fec28f5, 0xc0000000, 0x3fec28f5, 0xc28f5c37, 0x4013851e, 0xb851eb87}, /* 0.88000=f(0.88000, v4.88000)*/ +{ 1, 0,123,__LINE__, 0x3fec7ae1, 0x40000000, 0x3fec7ae1, 0x47ae1489, 0x40138f5c, 0x28f5c291}, /* 0.88999=f(0.89000, v4.89000)*/ +{ 1, 0,123,__LINE__, 0x3feccccc, 0xc0000000, 0x3feccccc, 0xccccccdb, 0x40139999, 0x9999999b}, /* 0.89999=f(0.90000, v4.90000)*/ +{ 1, 0,123,__LINE__, 0x3fed1eb8, 0x60000000, 0x3fed1eb8, 0x51eb852d, 0x4013a3d7, 0x0a3d70a6}, /* 0.91000=f(0.91000, v4.91000)*/ +{ 1, 0,123,__LINE__, 0x3fed70a3, 0xe0000000, 0x3fed70a3, 0xd70a3d7f, 0x4013ae14, 0x7ae147b0}, /* 0.92000=f(0.92000, v4.92000)*/ +{ 1, 0,123,__LINE__, 0x3fedc28f, 0x60000000, 0x3fedc28f, 0x5c28f5d1, 0x4013b851, 0xeb851eba}, /* 0.93000=f(0.93000, v4.93000)*/ +{ 1, 0,123,__LINE__, 0x3fee147a, 0xe0000000, 0x3fee147a, 0xe147ae23, 0x4013c28f, 0x5c28f5c4}, /* 0.94000=f(0.94000, v4.94000)*/ +{ 1, 0,123,__LINE__, 0x3fee6666, 0x60000000, 0x3fee6666, 0x66666675, 0x4013cccc, 0xcccccccf}, /* 0.94999=f(0.95000, v4.95000)*/ +{ 1, 0,123,__LINE__, 0x3feeb851, 0xe0000000, 0x3feeb851, 0xeb851ec7, 0x4013d70a, 0x3d70a3d9}, /* 0.95999=f(0.96000, v4.96000)*/ +{ 1, 0,123,__LINE__, 0x3fef0a3d, 0x80000000, 0x3fef0a3d, 0x70a3d719, 0x4013e147, 0xae147ae3}, /* 0.97000=f(0.97000, v4.97000)*/ +{ 1, 0,123,__LINE__, 0x3fef5c29, 0x00000000, 0x3fef5c28, 0xf5c28f6b, 0x4013eb85, 0x1eb851ed}, /* 0.98000=f(0.98000, v4.98000)*/ +{ 1, 0,123,__LINE__, 0x3fefae14, 0x80000000, 0x3fefae14, 0x7ae147bd, 0x4013f5c2, 0x8f5c28f8}, /* 0.99000=f(0.99000, v4.99000)*/ +{ 1, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007, 0x40140000, 0x00000002}, /* 1.00000=f(1.00000, v5.00000)*/ +{ 1, 0,123,__LINE__, 0x3ff028f5, 0xc0000000, 0x3ff028f5, 0xc28f5c30, 0x40140a3d, 0x70a3d70c}, /* 1.01000=f(1.01000, v5.01000)*/ +{ 1, 0,123,__LINE__, 0x3ff051eb, 0x80000000, 0x3ff051eb, 0x851eb859, 0x4014147a, 0xe147ae16}, /* 1.02000=f(1.02000, v5.02000)*/ +{ 1, 0,123,__LINE__, 0x3ff07ae1, 0x40000000, 0x3ff07ae1, 0x47ae1482, 0x40141eb8, 0x51eb8520}, /* 1.03000=f(1.03000, v5.03000)*/ +{ 1, 0,123,__LINE__, 0x3ff0a3d7, 0x00000000, 0x3ff0a3d7, 0x0a3d70ab, 0x401428f5, 0xc28f5c2b}, /* 1.04000=f(1.04000, v5.04000)*/ +{ 1, 0,123,__LINE__, 0x3ff0cccc, 0xc0000000, 0x3ff0cccc, 0xccccccd4, 0x40143333, 0x33333335}, /* 1.05000=f(1.05000, v5.05000)*/ +{ 1, 0,123,__LINE__, 0x3ff0f5c2, 0x80000000, 0x3ff0f5c2, 0x8f5c28fd, 0x40143d70, 0xa3d70a3f}, /* 1.06000=f(1.06000, v5.06000)*/ +{ 1, 0,123,__LINE__, 0x3ff11eb8, 0x60000000, 0x3ff11eb8, 0x51eb8526, 0x401447ae, 0x147ae14a}, /* 1.07000=f(1.07000, v5.07000)*/ +{ 1, 0,123,__LINE__, 0x3ff147ae, 0x20000000, 0x3ff147ae, 0x147ae14f, 0x401451eb, 0x851eb854}, /* 1.08000=f(1.08000, v5.08000)*/ +{ 1, 0,123,__LINE__, 0x3ff170a3, 0xe0000000, 0x3ff170a3, 0xd70a3d78, 0x40145c28, 0xf5c28f5e}, /* 1.09000=f(1.09000, v5.09000)*/ +{ 1, 0,123,__LINE__, 0x3ff19999, 0xa0000000, 0x3ff19999, 0x999999a1, 0x40146666, 0x66666668}, /* 1.10000=f(1.10000, v5.10000)*/ +{ 1, 0,123,__LINE__, 0x3ff1c28f, 0x60000000, 0x3ff1c28f, 0x5c28f5ca, 0x401470a3, 0xd70a3d72}, /* 1.11000=f(1.11000, v5.11000)*/ +{ 1, 0,123,__LINE__, 0x3ff1eb85, 0x20000000, 0x3ff1eb85, 0x1eb851f3, 0x40147ae1, 0x47ae147d}, /* 1.12000=f(1.12000, v5.12000)*/ +{ 1, 0,123,__LINE__, 0x3ff2147a, 0xe0000000, 0x3ff2147a, 0xe147ae1c, 0x4014851e, 0xb851eb87}, /* 1.13000=f(1.13000, v5.13000)*/ +{ 1, 0,123,__LINE__, 0x3ff23d70, 0xa0000000, 0x3ff23d70, 0xa3d70a45, 0x40148f5c, 0x28f5c291}, /* 1.14000=f(1.14000, v5.14000)*/ +{ 1, 0,123,__LINE__, 0x3ff26666, 0x60000000, 0x3ff26666, 0x6666666e, 0x40149999, 0x9999999c}, /* 1.15000=f(1.15000, v5.15000)*/ +{ 1, 0,123,__LINE__, 0x3ff28f5c, 0x20000000, 0x3ff28f5c, 0x28f5c297, 0x4014a3d7, 0x0a3d70a6}, /* 1.16000=f(1.16000, v5.16000)*/ +{ 1, 0,123,__LINE__, 0x3ff2b851, 0xe0000000, 0x3ff2b851, 0xeb851ec0, 0x4014ae14, 0x7ae147b0}, /* 1.17000=f(1.17000, v5.17000)*/ +{ 1, 0,123,__LINE__, 0x3ff2e147, 0xa0000000, 0x3ff2e147, 0xae147ae9, 0x4014b851, 0xeb851eba}, /* 1.18000=f(1.18000, v5.18000)*/ +{ 1, 0,123,__LINE__, 0x3ff30a3d, 0x80000000, 0x3ff30a3d, 0x70a3d712, 0x4014c28f, 0x5c28f5c4}, /* 1.19000=f(1.19000, v5.19000)*/ +{ 0, 0,123,__LINE__, 0xbffb7813, 0x00000000, 0xc01921fb, 0x54442d18, 0xc00243f6, 0xa8885a30}, /* -1.71681=f(-6.28318, v-2.28318)*/ +{ 0, 0,123,__LINE__, 0xbfdc0918, 0x00000000, 0xc012d97c, 0x7f3321d2, 0xbfe6cbe3, 0xf9990e90}, /* -0.43805=f(-4.71238, v-0.71238)*/ +{ 0, 0,123,__LINE__, 0xbfe21fb5, 0xa0000000, 0xc00921fb, 0x54442d18, 0x3feb7812, 0xaeef4ba0}, /* -0.56637=f(-3.14159, v0.85840)*/ +{ 0, 0,123,__LINE__, 0xbff921fb, 0x60000000, 0xbff921fb, 0x54442d18, 0x40036f02, 0x55dde974}, /* -1.57079=f(-1.57079, v2.42920)*/ +{ 0, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x40100000, 0x00000000}, /* 0.00000=f(0.00000, v4.00000)*/ +{ 1, 0,123,__LINE__, 0x3ff921fb, 0x60000000, 0x3ff921fb, 0x54442d18, 0x4016487e, 0xd5110b46}, /* 1.57079=f(1.57079, v5.57079)*/ +{14, 0,123,__LINE__, 0x400921fb, 0x60000000, 0x400921fb, 0x54442d18, 0x401c90fd, 0xaa22168c}, /* 3.14159=f(3.14159, v7.14159)*/ +{11, 0,123,__LINE__, 0x4012d97c, 0x80000000, 0x4012d97c, 0x7f3321d2, 0x40216cbe, 0x3f9990e9}, /* 4.71238=f(4.71238, v8.71238)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03e0000, 0x00000000, 0xc03a0000, 0x00000000}, /* -4.00000=f(-30.0000, v-26.0000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03c4ccc, 0xcccccccd, 0xc0384ccc, 0xcccccccd}, /* -4.00000=f(-28.3000, v-24.3000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc03a9999, 0x9999999a, 0xc0369999, 0x9999999a}, /* -4.00000=f(-26.6000, v-22.6000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc038e666, 0x66666667, 0xc034e666, 0x66666667}, /* -4.00000=f(-24.9000, v-20.9000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0373333, 0x33333334, 0xc0333333, 0x33333334}, /* -4.00000=f(-23.2000, v-19.2000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0358000, 0x00000001, 0xc0318000, 0x00000001}, /* -4.00000=f(-21.5000, v-17.5000)*/ +{ 0, 0,123,__LINE__, 0xc00fffff, 0x80000000, 0xc033cccc, 0xccccccce, 0xc02f9999, 0x9999999c}, /* -3.99999=f(-19.8000, v-15.8000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0321999, 0x9999999b, 0xc02c3333, 0x33333336}, /* -4.00000=f(-18.1000, v-14.1000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0306666, 0x66666668, 0xc028cccc, 0xccccccd0}, /* -4.00000=f(-16.4000, v-12.4000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc02d6666, 0x6666666a, 0xc0256666, 0x6666666a}, /* -4.00000=f(-14.7000, v-10.7000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc02a0000, 0x00000004, 0xc0220000, 0x00000004}, /* -4.00000=f(-13.0000, v-9.00000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x00000000, 0xc0269999, 0x9999999e, 0xc01d3333, 0x3333333c}, /* -4.00000=f(-11.3000, v-7.30000)*/ +{ 0, 0,123,__LINE__, 0xc0100000, 0x20000000, 0xc0233333, 0x33333338, 0xc0166666, 0x66666670}, /* -4.00000=f(-9.60000, v-5.60000)*/ +{ 0, 0,123,__LINE__, 0xbfb99998, 0x00000000, 0xc01f9999, 0x999999a3, 0xc00f3333, 0x33333346}, /* -0.09999=f(-7.90000, v-3.90000)*/ +{ 0, 0,123,__LINE__, 0xbffccccc, 0x80000000, 0xc018cccc, 0xccccccd6, 0xc0019999, 0x999999ac}, /* -1.80000=f(-6.20000, v-2.20000)*/ +{ 0, 0,123,__LINE__, 0x80000000, 0x00000000, 0xc0120000, 0x00000009, 0xbfe00000, 0x00000048}, /* 0.00000=f(-4.50000, v-0.50000)*/ +{ 0, 0,123,__LINE__, 0xbfd99999, 0x00000000, 0xc0066666, 0x66666678, 0x3ff33333, 0x33333310}, /* -0.39999=f(-2.80000, v1.20000)*/ +{ 0, 0,123,__LINE__, 0xbff19999, 0xa0000000, 0xbff19999, 0x999999bd, 0x40073333, 0x33333322}, /* -1.10000=f(-1.10000, v2.90000)*/ +{ 1, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0x3fe33333, 0x333332ec, 0x40126666, 0x6666665e}, /* 0.60000=f(0.60000, v4.60000)*/ +{12, 0,123,__LINE__, 0x40026666, 0x60000000, 0x40026666, 0x66666654, 0x40193333, 0x3333332a}, /* 2.30000=f(2.30000, v6.30000)*/ +{11, 0,123,__LINE__, 0x40100000, 0x00000000, 0x400fffff, 0xffffffee, 0x401fffff, 0xfffffff7}, /* 4.00000=f(4.00000, v8.00000)*/ +{11, 0,123,__LINE__, 0x4016cccc, 0xc0000000, 0x4016cccc, 0xccccccc4, 0x40236666, 0x66666662}, /* 5.70000=f(5.70000, v9.70000)*/ +{11, 0,123,__LINE__, 0x401d9999, 0xa0000000, 0x401d9999, 0x99999991, 0x4026cccc, 0xccccccc8}, /* 7.40000=f(7.40000, v11.4000)*/ +{10, 0,123,__LINE__, 0x40223333, 0x40000000, 0x40223333, 0x3333332f, 0x402a3333, 0x3333332f}, /* 9.10000=f(9.10000, v13.1000)*/ +{10, 0,123,__LINE__, 0x40259999, 0xa0000000, 0x40259999, 0x99999995, 0x402d9999, 0x99999995}, /* 10.8000=f(10.8000, v14.8000)*/ +{10, 0,123,__LINE__, 0x40290000, 0x00000000, 0x4028ffff, 0xfffffffb, 0x40307fff, 0xfffffffe}, /* 12.5000=f(12.5000, v16.5000)*/ +{10, 0,123,__LINE__, 0x402c6666, 0x60000000, 0x402c6666, 0x66666661, 0x40323333, 0x33333330}, /* 14.2000=f(14.2000, v18.2000)*/ +{10, 0,123,__LINE__, 0x402fcccc, 0xc0000000, 0x402fcccc, 0xccccccc7, 0x4033e666, 0x66666664}, /* 15.9000=f(15.9000, v19.9000)*/ +{10, 0,123,__LINE__, 0x40319999, 0xa0000000, 0x40319999, 0x99999997, 0x40359999, 0x99999997}, /* 17.6000=f(17.6000, v21.6000)*/ +{10, 0,123,__LINE__, 0x40334ccc, 0xc0000000, 0x40334ccc, 0xccccccca, 0x40374ccc, 0xccccccca}, /* 19.2999=f(19.3000, v23.3000)*/ +{10, 0,123,__LINE__, 0x40350000, 0x00000000, 0x4034ffff, 0xfffffffd, 0x4038ffff, 0xfffffffd}, /* 21.0000=f(21.0000, v25.0000)*/ +{10, 0,123,__LINE__, 0x4036b333, 0x40000000, 0x4036b333, 0x33333330, 0x403ab333, 0x33333330}, /* 22.7000=f(22.7000, v26.7000)*/ +{10, 0,123,__LINE__, 0x40386666, 0x60000000, 0x40386666, 0x66666663, 0x403c6666, 0x66666663}, /* 24.4000=f(24.4000, v28.4000)*/ +{10, 0,123,__LINE__, 0x403a1999, 0xa0000000, 0x403a1999, 0x99999996, 0x403e1999, 0x99999996}, /* 26.1000=f(26.1000, v30.1000)*/ +{10, 0,123,__LINE__, 0x403bcccc, 0xc0000000, 0x403bcccc, 0xccccccc9, 0x403fcccc, 0xccccccc9}, /* 27.7999=f(27.8000, v31.8000)*/ +{10, 0,123,__LINE__, 0x403d8000, 0x00000000, 0x403d7fff, 0xfffffffc, 0x4040bfff, 0xfffffffe}, /* 29.5000=f(29.5000, v33.5000)*/ +0,}; +test_fmodf(m) {run_vector_1(m,fmodf_vec,(char *)(fmodf),"fmodf","fff"); } diff --git a/newlib/libm/test/gamma_vec.c b/newlib/libm/test/gamma_vec.c new file mode 100644 index 000000000..119efe6f6 --- /dev/null +++ b/newlib/libm/test/gamma_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type gamma_vec[] = { +{60, 0,123,__LINE__, 0xbfb5db13, 0x8c7d70c7, 0xbff33333, 0x33333333}, /* -0.08537=f(-1.20000)*/ +{62, 0,123,__LINE__, 0xbfb5197b, 0x6469c221, 0xbff30a3d, 0x70a3d70a}, /* -0.08242=f(-1.19000)*/ +{63, 0,123,__LINE__, 0xbfb44f7b, 0xcf714466, 0xbff2e147, 0xae147ae1}, /* -0.07933=f(-1.18000)*/ +{60, 0,123,__LINE__, 0xbfb37cfb, 0x2ac8e137, 0xbff2b851, 0xeb851eb8}, /* -0.07612=f(-1.17000)*/ +{60, 0,123,__LINE__, 0xbfb2a1df, 0x3f1a2ee7, 0xbff28f5c, 0x28f5c28f}, /* -0.07278=f(-1.16000)*/ +{60, 0,123,__LINE__, 0xbfb1be0d, 0x3ba6e2c7, 0xbff26666, 0x66666666}, /* -0.06930=f(-1.15000)*/ +{62, 0,123,__LINE__, 0xbfb0d169, 0xb1375ba9, 0xbff23d70, 0xa3d70a3d}, /* -0.06569=f(-1.14000)*/ +{62, 0,123,__LINE__, 0xbfafb7b1, 0x19a303f8, 0xbff2147a, 0xe147ae14}, /* -0.06194=f(-1.13000)*/ +{60, 0,123,__LINE__, 0xbfadba7a, 0x246a1ed7, 0xbff1eb85, 0x1eb851eb}, /* -0.05806=f(-1.12000)*/ +{61, 0,123,__LINE__, 0xbfabaaf3, 0xac34421a, 0xbff1c28f, 0x5c28f5c2}, /* -0.05403=f(-1.11000)*/ +{62, 0,123,__LINE__, 0xbfa988e1, 0x705d89dc, 0xbff19999, 0x99999999}, /* -0.04987=f(-1.10000)*/ +{61, 0,123,__LINE__, 0xbfa75405, 0xb99ffc53, 0xbff170a3, 0xd70a3d70}, /* -0.04556=f(-1.09000)*/ +{62, 0,123,__LINE__, 0xbfa50c21, 0x4cf50179, 0xbff147ae, 0x147ae147}, /* -0.04110=f(-1.08000)*/ +{62, 0,123,__LINE__, 0xbfa2b0f3, 0x5dde50c1, 0xbff11eb8, 0x51eb851e}, /* -0.03650=f(-1.07000)*/ +{62, 0,123,__LINE__, 0xbfa04239, 0x800dd5e9, 0xbff0f5c2, 0x8f5c28f5}, /* -0.03175=f(-1.06000)*/ +{61, 0,123,__LINE__, 0xbf9b7f5f, 0x30c6fcdb, 0xbff0cccc, 0xcccccccc}, /* -0.02685=f(-1.05000)*/ +{62, 0,123,__LINE__, 0xbf96521f, 0x9a6e8d78, 0xbff0a3d7, 0x0a3d70a3}, /* -0.02179=f(-1.04000)*/ +{62, 0,123,__LINE__, 0xbf90fc24, 0xebca6fe5, 0xbff07ae1, 0x47ae147a}, /* -0.01658=f(-1.03000)*/ +{62, 0,123,__LINE__, 0xbf86f9b8, 0x26414df9, 0xbff051eb, 0x851eb851}, /* -0.01121=f(-1.02000)*/ +{60, 0,123,__LINE__, 0xbf774eb8, 0x68854617, 0xbff028f5, 0xc28f5c28}, /* -0.00569=f(-1.01000)*/ +{61, 0,123,__LINE__, 0x3ca2788c, 0xfc6fb61b, 0xbfefffff, 0xfffffffe}, /* 1.28168e-16=f(-0.01000)*/ +{61, 0,123,__LINE__, 0x3f77fb35, 0xb942e1d3, 0xbfefae14, 0x7ae147ac}, /* 0.00585=f(-0.99000)*/ +{62, 0,123,__LINE__, 0x3f8852bb, 0x7fbc7e61, 0xbfef5c28, 0xf5c28f5a}, /* 0.01187=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3f928059, 0x0b8e75bb, 0xbfef0a3d, 0x70a3d708}, /* 0.01806=f(-0.97000)*/ +{63, 0,123,__LINE__, 0x3f99046c, 0x1e32cbca, 0xbfeeb851, 0xeb851eb6}, /* 0.02443=f(-0.96000)*/ +{59, 0,123,__LINE__, 0x3f9fb648, 0xaaf9762e, 0xbfee6666, 0x66666664}, /* 0.03096=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3fa34b52, 0xbf317833, 0xbfee147a, 0xe147ae12}, /* 0.03768=f(-0.94000)*/ +{58, 0,123,__LINE__, 0x3fa6d31f, 0x59f2651f, 0xbfedc28f, 0x5c28f5c0}, /* 0.04457=f(-0.93000)*/ +{63, 0,123,__LINE__, 0x3faa72ea, 0xf732ed14, 0xbfed70a3, 0xd70a3d6e}, /* 0.05165=f(-0.92000)*/ +{63, 0,123,__LINE__, 0x3fae2b19, 0x49e1a4ac, 0xbfed1eb8, 0x51eb851c}, /* 0.05892=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3fb0fe08, 0x82e465c4, 0xbfeccccc, 0xccccccca}, /* 0.06637=f(-0.90000)*/ +{63, 0,123,__LINE__, 0x3fb2f31e, 0x00542b2a, 0xbfec7ae1, 0x47ae1478}, /* 0.07402=f(-0.89000)*/ +{62, 0,123,__LINE__, 0x3fb4f503, 0xaa939ced, 0xbfec28f5, 0xc28f5c26}, /* 0.08186=f(-0.88000)*/ +{63, 0,123,__LINE__, 0x3fb703f1, 0xc3de0746, 0xbfebd70a, 0x3d70a3d4}, /* 0.08990=f(-0.87000)*/ +{63, 0,123,__LINE__, 0x3fb92022, 0x56d7dd76, 0xbfeb851e, 0xb851eb82}, /* 0.09814=f(-0.86000)*/ +{62, 0,123,__LINE__, 0x3fbb49d1, 0x4b2fd3e9, 0xbfeb3333, 0x33333330}, /* 0.10659=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x3fbd813c, 0x7b740d65, 0xbfeae147, 0xae147ade}, /* 0.11525=f(-0.84000)*/ +{63, 0,123,__LINE__, 0x3fbfc6a3, 0xcc315c0a, 0xbfea8f5c, 0x28f5c28c}, /* 0.12412=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fc10d24, 0xa23a39c9, 0xbfea3d70, 0xa3d70a3a}, /* 0.13321=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3fc23e38, 0x93e37acd, 0xbfe9eb85, 0x1eb851e8}, /* 0.14252=f(-0.81000)*/ +{62, 0,123,__LINE__, 0x3fc376b1, 0x08e2401e, 0xbfe99999, 0x99999996}, /* 0.15205=f(-0.80000)*/ +{64, 0,123,__LINE__, 0x3fc4b6b2, 0x89b33032, 0xbfe947ae, 0x147ae144}, /* 0.16182=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3fc5fe62, 0xe913a18d, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.17182=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3fc74de9, 0x5491a139, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.18206=f(-0.77000)*/ +{62, 0,123,__LINE__, 0x3fc8a56e, 0x662dfe9a, 0xbfe851eb, 0x851eb84e}, /* 0.19254=f(-0.76000)*/ +{63, 0,123,__LINE__, 0x3fca051c, 0x372609ff, 0xbfe7ffff, 0xfffffffc}, /* 0.20328=f(-0.75000)*/ +{59, 0,123,__LINE__, 0x3fcb6d1e, 0x73fcbc11, 0xbfe7ae14, 0x7ae147aa}, /* 0.21426=f(-0.74000)*/ +{61, 0,123,__LINE__, 0x3fccdda2, 0x71dd3d05, 0xbfe75c28, 0xf5c28f58}, /* 0.22551=f(-0.73000)*/ +{61, 0,123,__LINE__, 0x3fce56d7, 0x4573437c, 0xbfe70a3d, 0x70a3d706}, /* 0.23702=f(-0.72000)*/ +{62, 0,123,__LINE__, 0x3fcfd8ed, 0xdb588b3b, 0xbfe6b851, 0xeb851eb4}, /* 0.24880=f(-0.71000)*/ +{61, 0,123,__LINE__, 0x3fd0b20c, 0x891cde7c, 0xbfe66666, 0x66666662}, /* 0.26086=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x3fd17c46, 0xeb6c4aa1, 0xbfe6147a, 0xe147ae10}, /* 0.27321=f(-0.69000)*/ +{64, 0,123,__LINE__, 0x3fd24b41, 0xa10a79d5, 0xbfe5c28f, 0x5c28f5be}, /* 0.28584=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3fd31f19, 0x5c956644, 0xbfe570a3, 0xd70a3d6c}, /* 0.29877=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3fd3f7ec, 0x082be675, 0xbfe51eb8, 0x51eb851a}, /* 0.31200=f(-0.66000)*/ +{64, 0,123,__LINE__, 0x3fd4d5d8, 0xd810767e, 0xbfe4cccc, 0xccccccc8}, /* 0.32555=f(-0.65000)*/ +{62, 0,123,__LINE__, 0x3fd5b900, 0x5ebb22fa, 0xbfe47ae1, 0x47ae1476}, /* 0.33941=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3fd6a184, 0xa27d2ee8, 0xbfe428f5, 0xc28f5c24}, /* 0.35360=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3fd78f89, 0x34dcecf5, 0xbfe3d70a, 0x3d70a3d2}, /* 0.36813=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3fd88333, 0x4bd4a467, 0xbfe3851e, 0xb851eb80}, /* 0.38300=f(-0.61000)*/ +{63, 0,123,__LINE__, 0x3fd97ca9, 0xdd244e35, 0xbfe33333, 0x3333332e}, /* 0.39823=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fda7c15, 0xbbeb9574, 0xbfe2e147, 0xae147adc}, /* 0.41382=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3fdb81a1, 0xb8c7e94e, 0xbfe28f5c, 0x28f5c28a}, /* 0.42978=f(-0.58000)*/ +{63, 0,123,__LINE__, 0x3fdc8d7a, 0xc4b9b5de, 0xbfe23d70, 0xa3d70a38}, /* 0.44613=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3fdd9fd0, 0x171c276a, 0xbfe1eb85, 0x1eb851e6}, /* 0.46287=f(-0.56000)*/ +{62, 0,123,__LINE__, 0x3fdeb8d3, 0x57045cf2, 0xbfe19999, 0x99999994}, /* 0.48003=f(-0.55000)*/ +{62, 0,123,__LINE__, 0x3fdfd8b8, 0xc867d4de, 0xbfe147ae, 0x147ae142}, /* 0.49760=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3fe07fdb, 0xbebb3326, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.51560=f(-0.53000)*/ +{62, 0,123,__LINE__, 0x3fe11704, 0xc65144be, 0xbfe0a3d7, 0x0a3d709e}, /* 0.53405=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x3fe1b1f6, 0x25f1b031, 0xbfe051eb, 0x851eb84c}, /* 0.55297=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3fe250d0, 0x48e7a1c8, 0xbfdfffff, 0xfffffff4}, /* 0.57236=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3fe2f3b5, 0x7ea204ea, 0xbfdf5c28, 0xf5c28f50}, /* 0.59224=f(-0.49000)*/ +{63, 0,123,__LINE__, 0x3fe39aca, 0x22363405, 0xbfdeb851, 0xeb851eac}, /* 0.61264=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fe44634, 0xc6082a61, 0xbfde147a, 0xe147ae08}, /* 0.63357=f(-0.47000)*/ +{62, 0,123,__LINE__, 0x3fe4f61e, 0x642115ea, 0xbfdd70a3, 0xd70a3d64}, /* 0.65504=f(-0.46000)*/ +{62, 0,123,__LINE__, 0x3fe5aab2, 0x93d2356a, 0xbfdccccc, 0xccccccc0}, /* 0.67708=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fe6641f, 0xc55ac769, 0xbfdc28f5, 0xc28f5c1c}, /* 0.69972=f(-0.44000)*/ +{63, 0,123,__LINE__, 0x3fe72297, 0x84653797, 0xbfdb851e, 0xb851eb78}, /* 0.72297=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3fe7e64e, 0xc252ac01, 0xbfdae147, 0xae147ad4}, /* 0.74686=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3fe8af7e, 0x2975c439, 0xbfda3d70, 0xa3d70a30}, /* 0.77142=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3fe97e62, 0x7a8f4a4c, 0xbfd99999, 0x9999998c}, /* 0.79667=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3fea533c, 0xf61ba0e7, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.82266=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3feb2e53, 0xd34840dc, 0xbfd851eb, 0x851eb844}, /* 0.84940=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3fec0ff2, 0xc6c099db, 0xbfd7ae14, 0x7ae147a0}, /* 0.87694=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3fecf86b, 0x9becf7dd, 0xbfd70a3d, 0x70a3d6fc}, /* 0.90532=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3fede816, 0xe3c18e5a, 0xbfd66666, 0x66666658}, /* 0.93458=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3feedf54, 0xbcddcbc3, 0xbfd5c28f, 0x5c28f5b4}, /* 0.96476=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3fefde8d, 0xb984cf28, 0xbfd51eb8, 0x51eb8510}, /* 0.99591=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3ff07319, 0xf47900b3, 0xbfd47ae1, 0x47ae146c}, /* 1.02810=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3ff0fb62, 0x05634687, 0xbfd3d70a, 0x3d70a3c8}, /* 1.06137=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3ff18863, 0x7a6c41a3, 0xbfd33333, 0x33333324}, /* 1.09579=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3ff21a69, 0x9ad205dd, 0xbfd28f5c, 0x28f5c280}, /* 1.13144=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3ff2b1c7, 0x801202ae, 0xbfd1eb85, 0x1eb851dc}, /* 1.16840=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3ff34ed9, 0x388c298c, 0xbfd147ae, 0x147ae138}, /* 1.20675=f(-0.27000)*/ +{62, 0,123,__LINE__, 0x3ff3f205, 0x20fe467e, 0xbfd0a3d7, 0x0a3d7094}, /* 1.24658=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3ff49bbd, 0x81c16f0c, 0xbfcfffff, 0xffffffe0}, /* 1.28802=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3ff54c82, 0x8064dd5e, 0xbfceb851, 0xeb851e98}, /* 1.33117=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3ff604e4, 0x7b3539a8, 0xbfcd70a3, 0xd70a3d50}, /* 1.37619=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3ff6c586, 0xeaf64d0f, 0xbfcc28f5, 0xc28f5c08}, /* 1.42322=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3ff78f23, 0xf04c91d9, 0xbfcae147, 0xae147ac0}, /* 1.47244=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3ff86290, 0xbf25b63d, 0xbfc99999, 0x99999978}, /* 1.52406=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3ff940c3, 0x2c8551f3, 0xbfc851eb, 0x851eb830}, /* 1.57831=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3ffa2ad8, 0xbd071d1c, 0xbfc70a3d, 0x70a3d6e8}, /* 1.63546=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3ffb221f, 0xb833c76a, 0xbfc5c28f, 0x5c28f5a0}, /* 1.69583=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3ffc2822, 0xfcef3da6, 0xbfc47ae1, 0x47ae1458}, /* 1.75979=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3ffd3eb9, 0xa880560b, 0xbfc33333, 0x33333310}, /* 1.82781=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3ffe681c, 0x2612676e, 0xbfc1eb85, 0x1eb851c8}, /* 1.90041=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3fffa701, 0x0fa523b8, 0xbfc0a3d7, 0x0a3d7080}, /* 1.97827=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x40007f62, 0xd2056346, 0xbfbeb851, 0xeb851e71}, /* 2.06220=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x400139d3, 0xf13aa1ec, 0xbfbc28f5, 0xc28f5be2}, /* 2.15323=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x4002058e, 0x35f3df05, 0xbfb99999, 0x99999953}, /* 2.25271=f(-0.00100)*/ +{63, 0,123,__LINE__, 0x4002e628, 0xe5d72749, 0xbfb70a3d, 0x70a3d6c4}, /* 2.36238=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x4003e080, 0xb2fb2ace, 0xbfb47ae1, 0x47ae1435}, /* 2.48462=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x4004fb66, 0x52da03dc, 0xbfb1eb85, 0x1eb851a6}, /* 2.62275=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x400640d4, 0x945562f7, 0xbfaeb851, 0xeb851e2d}, /* 2.78165=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x4007c043, 0xbd1255c4, 0xbfa99999, 0x9999990e}, /* 2.96887=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x4009939d, 0xb8b8b050, 0xbfa47ae1, 0x47ae13ef}, /* 3.19707=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x400beb75, 0xf03c9410, 0xbf9eb851, 0xeb851da0}, /* 3.48997=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x400f34d8, 0xff85dad0, 0xbf947ae1, 0x47ae1362}, /* 3.90080=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x401265de, 0x0d9b3432, 0xbf847ae1, 0x47ae1249}, /* 4.59948=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x40414837, 0x1bfcbfb9, 0x3cd19000, 0x00000000}, /* 34.5641=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x401265de, 0x0d9b3356, 0x3f847ae1, 0x47ae16ad}, /* 4.59948=f(0.01000)*/ +{64, 0,123,__LINE__, 0x400f34d8, 0xff85d9f2, 0x3f947ae1, 0x47ae1594}, /* 3.90080=f(0.02000)*/ +{64, 0,123,__LINE__, 0x400beb75, 0xf03c937b, 0x3f9eb851, 0xeb851fd2}, /* 3.48997=f(0.03000)*/ +{64, 0,123,__LINE__, 0x4009939d, 0xb8b8afe0, 0x3fa47ae1, 0x47ae1508}, /* 3.19707=f(0.04000)*/ +{64, 0,123,__LINE__, 0x4007c043, 0xbd12556a, 0x3fa99999, 0x99999a27}, /* 2.96887=f(0.05000)*/ +{64, 0,123,__LINE__, 0x400640d4, 0x945562ac, 0x3faeb851, 0xeb851f46}, /* 2.78165=f(0.06000)*/ +{64, 0,123,__LINE__, 0x4004fb66, 0x52da039c, 0x3fb1eb85, 0x1eb85232}, /* 2.62275=f(0.07000)*/ +{64, 0,123,__LINE__, 0x4003e080, 0xb2fb2a95, 0x3fb47ae1, 0x47ae14c1}, /* 2.48462=f(0.08000)*/ +{64, 0,123,__LINE__, 0x4002e628, 0xe5d72716, 0x3fb70a3d, 0x70a3d750}, /* 2.36238=f(0.09000)*/ +{64, 0,123,__LINE__, 0x4002058e, 0x35f3ded8, 0x3fb99999, 0x999999df}, /* 2.25271=f(0.10000)*/ +{64, 0,123,__LINE__, 0x400139d3, 0xf13aa1c3, 0x3fbc28f5, 0xc28f5c6e}, /* 2.15323=f(0.11000)*/ +{64, 0,123,__LINE__, 0x40007f62, 0xd2056320, 0x3fbeb851, 0xeb851efd}, /* 2.06220=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fffa701, 0x0fa52372, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.97827=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3ffe681c, 0x2612672c, 0x3fc1eb85, 0x1eb8520e}, /* 1.90041=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3ffd3eb9, 0xa88055cd, 0x3fc33333, 0x33333356}, /* 1.82781=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3ffc2822, 0xfcef3d6c, 0x3fc47ae1, 0x47ae149e}, /* 1.75979=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3ffb221f, 0xb833c733, 0x3fc5c28f, 0x5c28f5e6}, /* 1.69583=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3ffa2ad8, 0xbd071ce8, 0x3fc70a3d, 0x70a3d72e}, /* 1.63546=f(0.18000)*/ +{63, 0,123,__LINE__, 0x3ff940c3, 0x2c8551c3, 0x3fc851eb, 0x851eb876}, /* 1.57831=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3ff86290, 0xbf25b60f, 0x3fc99999, 0x999999be}, /* 1.52406=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3ff78f23, 0xf04c91ad, 0x3fcae147, 0xae147b06}, /* 1.47244=f(0.21000)*/ +{63, 0,123,__LINE__, 0x3ff6c586, 0xeaf64ce5, 0x3fcc28f5, 0xc28f5c4e}, /* 1.42322=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3ff604e4, 0x7b353980, 0x3fcd70a3, 0xd70a3d96}, /* 1.37619=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3ff54c82, 0x8064dd37, 0x3fceb851, 0xeb851ede}, /* 1.33117=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3ff49bbd, 0x81c16ee7, 0x3fd00000, 0x00000013}, /* 1.28802=f(0.25000)*/ +{62, 0,123,__LINE__, 0x3ff3f205, 0x20fe465a, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.24658=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3ff34ed9, 0x388c2969, 0x3fd147ae, 0x147ae15b}, /* 1.20675=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3ff2b1c7, 0x8012028d, 0x3fd1eb85, 0x1eb851ff}, /* 1.16840=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3ff21a69, 0x9ad205bd, 0x3fd28f5c, 0x28f5c2a3}, /* 1.13144=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3ff18863, 0x7a6c4184, 0x3fd33333, 0x33333347}, /* 1.09579=f(0.30000)*/ +{62, 0,123,__LINE__, 0x3ff0fb62, 0x0563466a, 0x3fd3d70a, 0x3d70a3eb}, /* 1.06137=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3ff07319, 0xf4790096, 0x3fd47ae1, 0x47ae148f}, /* 1.02810=f(0.32000)*/ +{62, 0,123,__LINE__, 0x3fefde8d, 0xb984cef2, 0x3fd51eb8, 0x51eb8533}, /* 0.99591=f(0.33000)*/ +{63, 0,123,__LINE__, 0x3feedf54, 0xbcddcb8d, 0x3fd5c28f, 0x5c28f5d7}, /* 0.96476=f(0.34000)*/ +{62, 0,123,__LINE__, 0x3fede816, 0xe3c18e26, 0x3fd66666, 0x6666667b}, /* 0.93458=f(0.35000)*/ +{62, 0,123,__LINE__, 0x3fecf86b, 0x9becf7aa, 0x3fd70a3d, 0x70a3d71f}, /* 0.90532=f(0.36000)*/ +{62, 0,123,__LINE__, 0x3fec0ff2, 0xc6c099aa, 0x3fd7ae14, 0x7ae147c3}, /* 0.87694=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3feb2e53, 0xd34840ad, 0x3fd851eb, 0x851eb867}, /* 0.84940=f(0.38000)*/ +{63, 0,123,__LINE__, 0x3fea533c, 0xf61ba0b9, 0x3fd8f5c2, 0x8f5c290b}, /* 0.82266=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fe97e62, 0x7a8f4a1f, 0x3fd99999, 0x999999af}, /* 0.79667=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fe8af7e, 0x2975c40d, 0x3fda3d70, 0xa3d70a53}, /* 0.77142=f(0.41000)*/ +{63, 0,123,__LINE__, 0x3fe7e64e, 0xc252abd7, 0x3fdae147, 0xae147af7}, /* 0.74686=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fe72297, 0x8465376d, 0x3fdb851e, 0xb851eb9b}, /* 0.72297=f(0.43000)*/ +{63, 0,123,__LINE__, 0x3fe6641f, 0xc55ac741, 0x3fdc28f5, 0xc28f5c3f}, /* 0.69972=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fe5aab2, 0x93d23542, 0x3fdccccc, 0xcccccce3}, /* 0.67708=f(0.45000)*/ +{61, 0,123,__LINE__, 0x3fe4f61e, 0x642115c4, 0x3fdd70a3, 0xd70a3d87}, /* 0.65504=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fe44634, 0xc6082a3c, 0x3fde147a, 0xe147ae2b}, /* 0.63357=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fe39aca, 0x223633e0, 0x3fdeb851, 0xeb851ecf}, /* 0.61264=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe2f3b5, 0x7ea204c6, 0x3fdf5c28, 0xf5c28f73}, /* 0.59224=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe250d0, 0x48e7a1a7, 0x3fe00000, 0x0000000b}, /* 0.57236=f(0.50000)*/ +{63, 0,123,__LINE__, 0x3fe1b1f6, 0x25f1b011, 0x3fe051eb, 0x851eb85d}, /* 0.55297=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe11704, 0xc651449e, 0x3fe0a3d7, 0x0a3d70af}, /* 0.53405=f(0.52000)*/ +{60, 0,123,__LINE__, 0x3fe07fdb, 0xbebb3308, 0x3fe0f5c2, 0x8f5c2901}, /* 0.51560=f(0.53000)*/ +{63, 0,123,__LINE__, 0x3fdfd8b8, 0xc867d4a0, 0x3fe147ae, 0x147ae153}, /* 0.49760=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fdeb8d3, 0x57045cb6, 0x3fe19999, 0x999999a5}, /* 0.48003=f(0.55000)*/ +{63, 0,123,__LINE__, 0x3fdd9fd0, 0x171c2731, 0x3fe1eb85, 0x1eb851f7}, /* 0.46287=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fdc8d7a, 0xc4b9b5a6, 0x3fe23d70, 0xa3d70a49}, /* 0.44613=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fdb81a1, 0xb8c7e918, 0x3fe28f5c, 0x28f5c29b}, /* 0.42978=f(0.58000)*/ +{63, 0,123,__LINE__, 0x3fda7c15, 0xbbeb953c, 0x3fe2e147, 0xae147aed}, /* 0.41382=f(0.59000)*/ +{63, 0,123,__LINE__, 0x3fd97ca9, 0xdd244e01, 0x3fe33333, 0x3333333f}, /* 0.39823=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3fd88333, 0x4bd4a433, 0x3fe3851e, 0xb851eb91}, /* 0.38300=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fd78f89, 0x34dcecc4, 0x3fe3d70a, 0x3d70a3e3}, /* 0.36813=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fd6a184, 0xa27d2eb7, 0x3fe428f5, 0xc28f5c35}, /* 0.35360=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fd5b900, 0x5ebb22ca, 0x3fe47ae1, 0x47ae1487}, /* 0.33941=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fd4d5d8, 0xd8107650, 0x3fe4cccc, 0xccccccd9}, /* 0.32555=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fd3f7ec, 0x082be648, 0x3fe51eb8, 0x51eb852b}, /* 0.31200=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fd31f19, 0x5c956618, 0x3fe570a3, 0xd70a3d7d}, /* 0.29877=f(0.67000)*/ +{60, 0,123,__LINE__, 0x3fd24b41, 0xa10a79a8, 0x3fe5c28f, 0x5c28f5cf}, /* 0.28584=f(0.68000)*/ +{62, 0,123,__LINE__, 0x3fd17c46, 0xeb6c4a77, 0x3fe6147a, 0xe147ae21}, /* 0.27321=f(0.69000)*/ +{63, 0,123,__LINE__, 0x3fd0b20c, 0x891cde53, 0x3fe66666, 0x66666673}, /* 0.26086=f(0.70000)*/ +{60, 0,123,__LINE__, 0x3fcfd8ed, 0xdb588ae9, 0x3fe6b851, 0xeb851ec5}, /* 0.24880=f(0.71000)*/ +{61, 0,123,__LINE__, 0x3fce56d7, 0x4573432e, 0x3fe70a3d, 0x70a3d717}, /* 0.23702=f(0.72000)*/ +{63, 0,123,__LINE__, 0x3fccdda2, 0x71dd3cb6, 0x3fe75c28, 0xf5c28f69}, /* 0.22551=f(0.73000)*/ +{63, 0,123,__LINE__, 0x3fcb6d1e, 0x73fcbbc5, 0x3fe7ae14, 0x7ae147bb}, /* 0.21426=f(0.74000)*/ +{63, 0,123,__LINE__, 0x3fca051c, 0x372609b5, 0x3fe80000, 0x0000000d}, /* 0.20328=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fc8a56e, 0x662dfe50, 0x3fe851eb, 0x851eb85f}, /* 0.19254=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fc74de9, 0x5491a0f3, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.18206=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fc5fe62, 0xe913a148, 0x3fe8f5c2, 0x8f5c2903}, /* 0.17182=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fc4b6b2, 0x89b32fee, 0x3fe947ae, 0x147ae155}, /* 0.16182=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fc376b1, 0x08e23fdc, 0x3fe99999, 0x999999a7}, /* 0.15205=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fc23e38, 0x93e37a8d, 0x3fe9eb85, 0x1eb851f9}, /* 0.14252=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fc10d24, 0xa23a398b, 0x3fea3d70, 0xa3d70a4b}, /* 0.13321=f(0.82000)*/ +{59, 0,123,__LINE__, 0x3fbfc6a3, 0xcc315b8f, 0x3fea8f5c, 0x28f5c29d}, /* 0.12412=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fbd813c, 0x7b740ced, 0x3feae147, 0xae147aef}, /* 0.11525=f(0.84000)*/ +{63, 0,123,__LINE__, 0x3fbb49d1, 0x4b2fd374, 0x3feb3333, 0x33333341}, /* 0.10659=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fb92022, 0x56d7dd05, 0x3feb851e, 0xb851eb93}, /* 0.09814=f(0.86000)*/ +{60, 0,123,__LINE__, 0x3fb703f1, 0xc3de06d7, 0x3febd70a, 0x3d70a3e5}, /* 0.08990=f(0.87000)*/ +{62, 0,123,__LINE__, 0x3fb4f503, 0xaa939c81, 0x3fec28f5, 0xc28f5c37}, /* 0.08186=f(0.88000)*/ +{62, 0,123,__LINE__, 0x3fb2f31e, 0x00542ac1, 0x3fec7ae1, 0x47ae1489}, /* 0.07402=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fb0fe08, 0x82e4655d, 0x3feccccc, 0xccccccdb}, /* 0.06637=f(0.90000)*/ +{61, 0,123,__LINE__, 0x3fae2b19, 0x49e1a3e3, 0x3fed1eb8, 0x51eb852d}, /* 0.05892=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3faa72ea, 0xf732ec52, 0x3fed70a3, 0xd70a3d7f}, /* 0.05165=f(0.92000)*/ +{62, 0,123,__LINE__, 0x3fa6d31f, 0x59f26461, 0x3fedc28f, 0x5c28f5d1}, /* 0.04457=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fa34b52, 0xbf31777a, 0x3fee147a, 0xe147ae23}, /* 0.03768=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3f9fb648, 0xaaf974c7, 0x3fee6666, 0x66666675}, /* 0.03096=f(0.95000)*/ +{61, 0,123,__LINE__, 0x3f99046c, 0x1e32ca6b, 0x3feeb851, 0xeb851ec7}, /* 0.02443=f(0.96000)*/ +{62, 0,123,__LINE__, 0x3f928059, 0x0b8e7465, 0x3fef0a3d, 0x70a3d719}, /* 0.01806=f(0.97000)*/ +{62, 0,123,__LINE__, 0x3f8852bb, 0x7fbc7bc9, 0x3fef5c28, 0xf5c28f6b}, /* 0.01187=f(0.98000)*/ +{60, 0,123,__LINE__, 0x3f77fb35, 0xb942dcc7, 0x3fefae14, 0x7ae147bd}, /* 0.00585=f(0.99000)*/ +{61, 0,123,__LINE__, 0xbcd0297b, 0x5ce1bf4b, 0x3ff00000, 0x00000007}, /* -8.97173e-16=f(1.00000)*/ +{61, 0,123,__LINE__, 0xbf774eb8, 0x68854a93, 0x3ff028f5, 0xc28f5c30}, /* -0.00569=f(1.01000)*/ +{60, 0,123,__LINE__, 0xbf86f9b8, 0x26415027, 0x3ff051eb, 0x851eb859}, /* -0.01121=f(1.02000)*/ +{63, 0,123,__LINE__, 0xbf90fc24, 0xebca70f4, 0x3ff07ae1, 0x47ae1482}, /* -0.01658=f(1.03000)*/ +{63, 0,123,__LINE__, 0xbf96521f, 0x9a6e8e80, 0x3ff0a3d7, 0x0a3d70ab}, /* -0.02179=f(1.04000)*/ +{62, 0,123,__LINE__, 0xbf9b7f5f, 0x30c6fdd9, 0x3ff0cccc, 0xccccccd4}, /* -0.02685=f(1.05000)*/ +{63, 0,123,__LINE__, 0xbfa04239, 0x800dd664, 0x3ff0f5c2, 0x8f5c28fd}, /* -0.03175=f(1.06000)*/ +{63, 0,123,__LINE__, 0xbfa2b0f3, 0x5dde5138, 0x3ff11eb8, 0x51eb8526}, /* -0.03650=f(1.07000)*/ +{62, 0,123,__LINE__, 0xbfa50c21, 0x4cf501ed, 0x3ff147ae, 0x147ae14f}, /* -0.04110=f(1.08000)*/ +{61, 0,123,__LINE__, 0xbfa75405, 0xb99ffcc3, 0x3ff170a3, 0xd70a3d78}, /* -0.04556=f(1.09000)*/ +{62, 0,123,__LINE__, 0xbfa988e1, 0x705d8a48, 0x3ff19999, 0x999999a1}, /* -0.04987=f(1.10000)*/ +{61, 0,123,__LINE__, 0xbfabaaf3, 0xac344283, 0x3ff1c28f, 0x5c28f5ca}, /* -0.05403=f(1.11000)*/ +{62, 0,123,__LINE__, 0xbfadba7a, 0x246a1f3d, 0x3ff1eb85, 0x1eb851f3}, /* -0.05806=f(1.12000)*/ +{62, 0,123,__LINE__, 0xbfafb7b1, 0x19a30459, 0x3ff2147a, 0xe147ae1c}, /* -0.06194=f(1.13000)*/ +{63, 0,123,__LINE__, 0xbfb0d169, 0xb1375bd8, 0x3ff23d70, 0xa3d70a45}, /* -0.06569=f(1.14000)*/ +{62, 0,123,__LINE__, 0xbfb1be0d, 0x3ba6e2f4, 0x3ff26666, 0x6666666e}, /* -0.06930=f(1.15000)*/ +{61, 0,123,__LINE__, 0xbfb2a1df, 0x3f1a2f12, 0x3ff28f5c, 0x28f5c297}, /* -0.07278=f(1.16000)*/ +{63, 0,123,__LINE__, 0xbfb37cfb, 0x2ac8e162, 0x3ff2b851, 0xeb851ec0}, /* -0.07612=f(1.17000)*/ +{59, 0,123,__LINE__, 0xbfb44f7b, 0xcf71448f, 0x3ff2e147, 0xae147ae9}, /* -0.07933=f(1.18000)*/ +{63, 0,123,__LINE__, 0xbfb5197b, 0x6469c248, 0x3ff30a3d, 0x70a3d712}, /* -0.08242=f(1.19000)*/ +{62, 0,123,__LINE__, 0x40151c74, 0xa1cd4989, 0xc01921fb, 0x54442d18}, /* 5.27778=f(-6.28318)*/ +{59, 0,123,__LINE__, 0x400608aa, 0x8a8d8d2f, 0xc012d97c, 0x7f3321d2}, /* 2.75423=f(-4.71238)*/ +{62, 0,123,__LINE__, 0x3fea7c79, 0x5ea35deb, 0xc00921fb, 0x54442d18}, /* 0.82769=f(-3.14159)*/ +{63, 0,123,__LINE__, 0xbfbdabdf, 0x1a1d104e, 0xbff921fb, 0x54442d18}, /* -0.11590=f(-1.57079)*/ +{64,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{63, 0,123,__LINE__, 0xbfbdabdf, 0x1a1d104e, 0x3ff921fb, 0x54442d18}, /* -0.11590=f(1.57079)*/ +{62, 0,123,__LINE__, 0x3fea7c79, 0x5ea35deb, 0x400921fb, 0x54442d18}, /* 0.82769=f(3.14159)*/ +{59, 0,123,__LINE__, 0x400608aa, 0x8a8d8d2f, 0x4012d97c, 0x7f3321d2}, /* 2.75423=f(4.71238)*/ +{64, 0,123,__LINE__, 0x4051d073, 0x53917230, 0xc03e0000, 0x00000000}, /* 71.2570=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x4050636b, 0x94b9c88a, 0xc03c4ccc, 0xcccccccd}, /* 65.5534=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x404dfa17, 0xe2dfce14, 0xc03a9999, 0x9999999a}, /* 59.9538=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x404b3b87, 0x11a8e7ce, 0xc038e666, 0x66666667}, /* 54.4650=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x40488c21, 0xfae8b0bc, 0xc0373333, 0x33333334}, /* 49.0947=f(-23.2000)*/ +{64, 0,123,__LINE__, 0x4045ed0b, 0xe8171bb8, 0xc0358000, 0x00000001}, /* 43.8519=f(-21.5000)*/ +{64, 0,123,__LINE__, 0x40435f97, 0x6a4f5f75, 0xc033cccc, 0xccccccce}, /* 38.7468=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x4040e552, 0xe4ea7aea, 0xc0321999, 0x9999999b}, /* 33.7915=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x403d0033, 0xeebf8308, 0xc0306666, 0x66666668}, /* 29.0007=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x4038645c, 0xcca2e5ab, 0xc02d6666, 0x6666666a}, /* 24.3920=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x4033fcba, 0x16d50148, 0xc02a0000, 0x00000004}, /* 19.9872=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x402fa0dc, 0x4a4f1284, 0xc0269999, 0x9999999e}, /* 15.8141=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x4027d1be, 0xf9cf2f7e, 0xc0233333, 0x33333338}, /* 11.9096=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x4020a606, 0x2d049d2a, 0xc01f9999, 0x999999a3}, /* 8.32426=f(-7.90000)*/ +{62, 0,123,__LINE__, 0x40148779, 0x555c3f28, 0xc018cccc, 0xccccccd6}, /* 5.13229=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x4003a140, 0xa3a623e4, 0xc0120000, 0x00000009}, /* 2.45373=f(-4.50000)*/ +{62, 0,123,__LINE__, 0x3fe088d4, 0x4b2adb7a, 0xc0066666, 0x66666678}, /* 0.51670=f(-2.80000)*/ +{62, 0,123,__LINE__, 0xbfa988e1, 0x705d8bc4, 0xbff19999, 0x999999bd}, /* -0.04987=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fd97ca9, 0xdd244f00, 0x3fe33333, 0x333332ec}, /* 0.39823=f(0.60000)*/ +{59, 0,123,__LINE__, 0x3fc3bc7a, 0xe53846b0, 0x40026666, 0x66666654}, /* 0.15418=f(2.30000)*/ +{62, 0,123,__LINE__, 0x3ffcab0b, 0xfa2a1fd6, 0x400fffff, 0xffffffee}, /* 1.79175=f(4.00000)*/ +{64, 0,123,__LINE__, 0x401122c8, 0x6abdedf8, 0x4016cccc, 0xccccccc4}, /* 4.28396=f(5.70000)*/ +{63, 0,123,__LINE__, 0x401d5c93, 0x1f42284e, 0x401d9999, 0x99999991}, /* 7.34040=f(7.40000)*/ +{64, 0,123,__LINE__, 0x4025a375, 0x0a6f0ada, 0x40223333, 0x3333332f}, /* 10.8192=f(9.10000)*/ +{64, 0,123,__LINE__, 0x402d459e, 0xd9f0398a, 0x40259999, 0x99999995}, /* 14.6359=f(10.8000)*/ +{64, 0,123,__LINE__, 0x4032bbfe, 0x32d3aa79, 0x4028ffff, 0xfffffffb}, /* 18.7343=f(12.5000)*/ +{64, 0,123,__LINE__, 0x40371300, 0x26276f8a, 0x402c6666, 0x66666661}, /* 23.0742=f(14.2000)*/ +{64, 0,123,__LINE__, 0x403ba020, 0x52c704f0, 0x402fcccc, 0xccccccc7}, /* 27.6254=f(15.9000)*/ +{64, 0,123,__LINE__, 0x40402eaf, 0xef4149f4, 0x40319999, 0x99999997}, /* 32.3647=f(17.6000)*/ +{64, 0,123,__LINE__, 0x4042a2f9, 0x41f4bf5a, 0x40334ccc, 0xccccccca}, /* 37.2732=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40452af5, 0x7aed77ba, 0x4034ffff, 0xfffffffd}, /* 42.3356=f(21.0000)*/ +{64, 0,123,__LINE__, 0x4047c501, 0x9442501c, 0x4036b333, 0x33333330}, /* 47.5391=f(22.7000)*/ +{64, 0,123,__LINE__, 0x404a6fba, 0xe04511ae, 0x40386666, 0x66666663}, /* 52.8728=f(24.4000)*/ +{64, 0,123,__LINE__, 0x404d29f1, 0x436831ba, 0x403a1999, 0x99999996}, /* 58.3276=f(26.1000)*/ +{64, 0,123,__LINE__, 0x404ff29d, 0x1a191b4b, 0x403bcccc, 0xccccccc9}, /* 63.8954=f(27.8000)*/ +{64, 0,123,__LINE__, 0x4051646b, 0xd261edc0, 0x403d7fff, 0xfffffffc}, /* 69.5690=f(29.5000)*/ +0,}; +test_gamma(m) {run_vector_1(m,gamma_vec,(char *)(gamma),"gamma","dd"); } diff --git a/newlib/libm/test/gammaf_vec.c b/newlib/libm/test/gammaf_vec.c new file mode 100644 index 000000000..3210f14c4 --- /dev/null +++ b/newlib/libm/test/gammaf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type gammaf_vec[] = { +{ 0, 0,123,__LINE__, 0xbfb5db13, 0xc0000000, 0xbff33333, 0x33333333}, /* -0.08537=f(-1.20000)*/ +{ 0, 0,123,__LINE__, 0xbfb5197b, 0xc0000000, 0xbff30a3d, 0x70a3d70a}, /* -0.08242=f(-1.19000)*/ +{ 0, 0,123,__LINE__, 0xbfb44f7b, 0x80000000, 0xbff2e147, 0xae147ae1}, /* -0.07933=f(-1.18000)*/ +{ 0, 0,123,__LINE__, 0xbfb37cfb, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -0.07612=f(-1.17000)*/ +{ 0, 0,123,__LINE__, 0xbfb2a1df, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* -0.07278=f(-1.16000)*/ +{ 0, 0,123,__LINE__, 0xbfb1be0d, 0x20000000, 0xbff26666, 0x66666666}, /* -0.06930=f(-1.15000)*/ +{ 0, 0,123,__LINE__, 0xbfb0d169, 0xa0000000, 0xbff23d70, 0xa3d70a3d}, /* -0.06569=f(-1.14000)*/ +{ 0, 0,123,__LINE__, 0xbfafb7b1, 0x00000000, 0xbff2147a, 0xe147ae14}, /* -0.06194=f(-1.13000)*/ +{ 0, 0,123,__LINE__, 0xbfadba7a, 0x40000000, 0xbff1eb85, 0x1eb851eb}, /* -0.05806=f(-1.12000)*/ +{ 0, 0,123,__LINE__, 0xbfabaaf3, 0xe0000000, 0xbff1c28f, 0x5c28f5c2}, /* -0.05403=f(-1.11000)*/ +{ 0, 0,123,__LINE__, 0xbfa988e1, 0xc0000000, 0xbff19999, 0x99999999}, /* -0.04987=f(-1.10000)*/ +{ 0, 0,123,__LINE__, 0xbfa75406, 0x40000000, 0xbff170a3, 0xd70a3d70}, /* -0.04556=f(-1.09000)*/ +{ 0, 0,123,__LINE__, 0xbfa50c22, 0x00000000, 0xbff147ae, 0x147ae147}, /* -0.04110=f(-1.08000)*/ +{ 0, 0,123,__LINE__, 0xbfa2b0f4, 0x40000000, 0xbff11eb8, 0x51eb851e}, /* -0.03650=f(-1.07000)*/ +{ 0, 0,123,__LINE__, 0xbfa04238, 0xa0000000, 0xbff0f5c2, 0x8f5c28f5}, /* -0.03175=f(-1.06000)*/ +{ 0, 0,123,__LINE__, 0xbf9b7f5d, 0xa0000000, 0xbff0cccc, 0xcccccccc}, /* -0.02685=f(-1.05000)*/ +{ 0, 0,123,__LINE__, 0xbf96521e, 0x40000000, 0xbff0a3d7, 0x0a3d70a3}, /* -0.02179=f(-1.04000)*/ +{ 0, 0,123,__LINE__, 0xbf90fc23, 0xe0000000, 0xbff07ae1, 0x47ae147a}, /* -0.01658=f(-1.03000)*/ +{ 0, 0,123,__LINE__, 0xbf86f9b6, 0xc0000000, 0xbff051eb, 0x851eb851}, /* -0.01121=f(-1.02000)*/ +{ 0, 0,123,__LINE__, 0xbf774eb7, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -0.00569=f(-1.01000)*/ +{ 1, 0,123,__LINE__, 0x00000000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 0.00000=f(-0.01000)*/ +{ 1, 0,123,__LINE__, 0x3f77fb34, 0x40000000, 0xbfefae14, 0x7ae147ac}, /* 0.00585=f(-0.99000)*/ +{ 1, 0,123,__LINE__, 0x3f8852ba, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 0.01187=f(-0.98000)*/ +{ 1, 0,123,__LINE__, 0x3f928057, 0xe0000000, 0xbfef0a3d, 0x70a3d708}, /* 0.01806=f(-0.97000)*/ +{ 1, 0,123,__LINE__, 0x3f99046d, 0x20000000, 0xbfeeb851, 0xeb851eb6}, /* 0.02443=f(-0.96000)*/ +{ 1, 0,123,__LINE__, 0x3f9fb649, 0x40000000, 0xbfee6666, 0x66666664}, /* 0.03096=f(-0.95000)*/ +{ 1, 0,123,__LINE__, 0x3fa34b52, 0xe0000000, 0xbfee147a, 0xe147ae12}, /* 0.03768=f(-0.94000)*/ +{ 1, 0,123,__LINE__, 0x3fa6d31f, 0x40000000, 0xbfedc28f, 0x5c28f5c0}, /* 0.04457=f(-0.93000)*/ +{ 1, 0,123,__LINE__, 0x3faa72ea, 0xa0000000, 0xbfed70a3, 0xd70a3d6e}, /* 0.05165=f(-0.92000)*/ +{ 1, 0,123,__LINE__, 0x3fae2b18, 0xa0000000, 0xbfed1eb8, 0x51eb851c}, /* 0.05892=f(-0.91000)*/ +{ 1, 0,123,__LINE__, 0x3fb0fe08, 0xe0000000, 0xbfeccccc, 0xccccccca}, /* 0.06637=f(-0.90000)*/ +{ 1, 0,123,__LINE__, 0x3fb2f31e, 0x40000000, 0xbfec7ae1, 0x47ae1478}, /* 0.07402=f(-0.89000)*/ +{ 1, 0,123,__LINE__, 0x3fb4f503, 0xc0000000, 0xbfec28f5, 0xc28f5c26}, /* 0.08186=f(-0.88000)*/ +{ 1, 0,123,__LINE__, 0x3fb703f1, 0xc0000000, 0xbfebd70a, 0x3d70a3d4}, /* 0.08990=f(-0.87000)*/ +{ 1, 0,123,__LINE__, 0x3fb92022, 0x20000000, 0xbfeb851e, 0xb851eb82}, /* 0.09814=f(-0.86000)*/ +{ 1, 0,123,__LINE__, 0x3fbb49d1, 0x00000000, 0xbfeb3333, 0x33333330}, /* 0.10659=f(-0.85000)*/ +{ 1, 0,123,__LINE__, 0x3fbd813c, 0xe0000000, 0xbfeae147, 0xae147ade}, /* 0.11525=f(-0.84000)*/ +{ 1, 0,123,__LINE__, 0x3fbfc6a4, 0x20000000, 0xbfea8f5c, 0x28f5c28c}, /* 0.12412=f(-0.83000)*/ +{ 1, 0,123,__LINE__, 0x3fc10d24, 0xc0000000, 0xbfea3d70, 0xa3d70a3a}, /* 0.13321=f(-0.82000)*/ +{ 1, 0,123,__LINE__, 0x3fc23e38, 0xa0000000, 0xbfe9eb85, 0x1eb851e8}, /* 0.14252=f(-0.81000)*/ +{ 1, 0,123,__LINE__, 0x3fc376b1, 0x00000000, 0xbfe99999, 0x99999996}, /* 0.15205=f(-0.80000)*/ +{ 1, 0,123,__LINE__, 0x3fc4b6b2, 0x60000000, 0xbfe947ae, 0x147ae144}, /* 0.16182=f(-0.79000)*/ +{ 1, 0,123,__LINE__, 0x3fc5fe63, 0x40000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.17182=f(-0.78000)*/ +{ 1, 0,123,__LINE__, 0x3fc74de9, 0xa0000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.18206=f(-0.77000)*/ +{ 1, 0,123,__LINE__, 0x3fc8a56e, 0x80000000, 0xbfe851eb, 0x851eb84e}, /* 0.19254=f(-0.76000)*/ +{ 1, 0,123,__LINE__, 0x3fca051c, 0x40000000, 0xbfe7ffff, 0xfffffffc}, /* 0.20328=f(-0.75000)*/ +{ 1, 0,123,__LINE__, 0x3fcb6d1e, 0x60000000, 0xbfe7ae14, 0x7ae147aa}, /* 0.21426=f(-0.74000)*/ +{ 1, 0,123,__LINE__, 0x3fccdda2, 0x60000000, 0xbfe75c28, 0xf5c28f58}, /* 0.22551=f(-0.73000)*/ +{ 1, 0,123,__LINE__, 0x3fce56d7, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 0.23702=f(-0.72000)*/ +{ 1, 0,123,__LINE__, 0x3fcfd8ee, 0x40000000, 0xbfe6b851, 0xeb851eb4}, /* 0.24880=f(-0.71000)*/ +{ 1, 0,123,__LINE__, 0x3fd0b20c, 0xa0000000, 0xbfe66666, 0x66666662}, /* 0.26086=f(-0.70000)*/ +{ 1, 0,123,__LINE__, 0x3fd17c47, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 0.27321=f(-0.69000)*/ +{ 1, 0,123,__LINE__, 0x3fd24b41, 0xc0000000, 0xbfe5c28f, 0x5c28f5be}, /* 0.28584=f(-0.68000)*/ +{ 1, 0,123,__LINE__, 0x3fd31f19, 0x60000000, 0xbfe570a3, 0xd70a3d6c}, /* 0.29877=f(-0.67000)*/ +{ 1, 0,123,__LINE__, 0x3fd3f7ec, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 0.31200=f(-0.66000)*/ +{ 1, 0,123,__LINE__, 0x3fd4d5d9, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 0.32555=f(-0.65000)*/ +{ 1, 0,123,__LINE__, 0x3fd5b900, 0x80000000, 0xbfe47ae1, 0x47ae1476}, /* 0.33941=f(-0.64000)*/ +{ 1, 0,123,__LINE__, 0x3fd6a184, 0xc0000000, 0xbfe428f5, 0xc28f5c24}, /* 0.35360=f(-0.63000)*/ +{ 1, 0,123,__LINE__, 0x3fd78f89, 0x40000000, 0xbfe3d70a, 0x3d70a3d2}, /* 0.36813=f(-0.62000)*/ +{ 1, 0,123,__LINE__, 0x3fd88333, 0x40000000, 0xbfe3851e, 0xb851eb80}, /* 0.38300=f(-0.61000)*/ +{ 1, 0,123,__LINE__, 0x3fd97ca9, 0xa0000000, 0xbfe33333, 0x3333332e}, /* 0.39823=f(-0.60000)*/ +{ 1, 0,123,__LINE__, 0x3fda7c15, 0xe0000000, 0xbfe2e147, 0xae147adc}, /* 0.41382=f(-0.59000)*/ +{ 1, 0,123,__LINE__, 0x3fdb81a1, 0xe0000000, 0xbfe28f5c, 0x28f5c28a}, /* 0.42978=f(-0.58000)*/ +{ 1, 0,123,__LINE__, 0x3fdc8d7a, 0xa0000000, 0xbfe23d70, 0xa3d70a38}, /* 0.44613=f(-0.57000)*/ +{ 1, 0,123,__LINE__, 0x3fdd9fd0, 0x20000000, 0xbfe1eb85, 0x1eb851e6}, /* 0.46287=f(-0.56000)*/ +{ 1, 0,123,__LINE__, 0x3fdeb8d3, 0x40000000, 0xbfe19999, 0x99999994}, /* 0.48003=f(-0.55000)*/ +{ 1, 0,123,__LINE__, 0x3fdfd8b8, 0xa0000000, 0xbfe147ae, 0x147ae142}, /* 0.49760=f(-0.54000)*/ +{ 1, 0,123,__LINE__, 0x3fe07fdb, 0xe0000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.51560=f(-0.53000)*/ +{ 1, 0,123,__LINE__, 0x3fe11704, 0xe0000000, 0xbfe0a3d7, 0x0a3d709e}, /* 0.53405=f(-0.52000)*/ +{ 1, 0,123,__LINE__, 0x3fe1b1f6, 0x20000000, 0xbfe051eb, 0x851eb84c}, /* 0.55297=f(-0.51000)*/ +{ 1, 0,123,__LINE__, 0x3fe250d0, 0x40000000, 0xbfdfffff, 0xfffffff4}, /* 0.57236=f(-0.50000)*/ +{ 1, 0,123,__LINE__, 0x3fe2f3b5, 0x80000000, 0xbfdf5c28, 0xf5c28f50}, /* 0.59224=f(-0.49000)*/ +{ 1, 0,123,__LINE__, 0x3fe39aca, 0x40000000, 0xbfdeb851, 0xeb851eac}, /* 0.61264=f(-0.48000)*/ +{ 1, 0,123,__LINE__, 0x3fe44634, 0xc0000000, 0xbfde147a, 0xe147ae08}, /* 0.63357=f(-0.47000)*/ +{ 1, 0,123,__LINE__, 0x3fe4f61e, 0x60000000, 0xbfdd70a3, 0xd70a3d64}, /* 0.65504=f(-0.46000)*/ +{ 1, 0,123,__LINE__, 0x3fe5aab2, 0x80000000, 0xbfdccccc, 0xccccccc0}, /* 0.67708=f(-0.45000)*/ +{ 1, 0,123,__LINE__, 0x3fe6641f, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c}, /* 0.69972=f(-0.44000)*/ +{ 1, 0,123,__LINE__, 0x3fe72297, 0x80000000, 0xbfdb851e, 0xb851eb78}, /* 0.72297=f(-0.43000)*/ +{ 1, 0,123,__LINE__, 0x3fe7e64e, 0xe0000000, 0xbfdae147, 0xae147ad4}, /* 0.74686=f(-0.42000)*/ +{ 1, 0,123,__LINE__, 0x3fe8af7e, 0x20000000, 0xbfda3d70, 0xa3d70a30}, /* 0.77142=f(-0.41000)*/ +{ 1, 0,123,__LINE__, 0x3fe97e62, 0x60000000, 0xbfd99999, 0x9999998c}, /* 0.79667=f(-0.40000)*/ +{ 1, 0,123,__LINE__, 0x3fea533d, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.82266=f(-0.39000)*/ +{ 1, 0,123,__LINE__, 0x3feb2e53, 0xc0000000, 0xbfd851eb, 0x851eb844}, /* 0.84940=f(-0.38000)*/ +{ 1, 0,123,__LINE__, 0x3fec0ff2, 0xc0000000, 0xbfd7ae14, 0x7ae147a0}, /* 0.87694=f(-0.37000)*/ +{ 1, 0,123,__LINE__, 0x3fecf86b, 0x60000000, 0xbfd70a3d, 0x70a3d6fc}, /* 0.90532=f(-0.36000)*/ +{ 1, 0,123,__LINE__, 0x3fede816, 0xc0000000, 0xbfd66666, 0x66666658}, /* 0.93458=f(-0.35000)*/ +{ 1, 0,123,__LINE__, 0x3feedf54, 0xa0000000, 0xbfd5c28f, 0x5c28f5b4}, /* 0.96476=f(-0.34000)*/ +{ 1, 0,123,__LINE__, 0x3fefde8d, 0xa0000000, 0xbfd51eb8, 0x51eb8510}, /* 0.99591=f(-0.33000)*/ +{ 1, 0,123,__LINE__, 0x3ff0731a, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 1.02810=f(-0.32000)*/ +{ 1, 0,123,__LINE__, 0x3ff0fb62, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 1.06137=f(-0.31000)*/ +{ 1, 0,123,__LINE__, 0x3ff18863, 0x80000000, 0xbfd33333, 0x33333324}, /* 1.09579=f(-0.30000)*/ +{ 1, 0,123,__LINE__, 0x3ff21a69, 0xa0000000, 0xbfd28f5c, 0x28f5c280}, /* 1.13144=f(-0.29000)*/ +{ 1, 0,123,__LINE__, 0x3ff2b1c7, 0x80000000, 0xbfd1eb85, 0x1eb851dc}, /* 1.16840=f(-0.28000)*/ +{ 1, 0,123,__LINE__, 0x3ff34ed9, 0x40000000, 0xbfd147ae, 0x147ae138}, /* 1.20675=f(-0.27000)*/ +{ 1, 0,123,__LINE__, 0x3ff3f205, 0x20000000, 0xbfd0a3d7, 0x0a3d7094}, /* 1.24658=f(-0.26000)*/ +{ 1, 0,123,__LINE__, 0x3ff49bbd, 0x80000000, 0xbfcfffff, 0xffffffe0}, /* 1.28802=f(-0.25000)*/ +{ 1, 0,123,__LINE__, 0x3ff54c82, 0x80000000, 0xbfceb851, 0xeb851e98}, /* 1.33117=f(-0.24000)*/ +{ 1, 0,123,__LINE__, 0x3ff604e4, 0x60000000, 0xbfcd70a3, 0xd70a3d50}, /* 1.37619=f(-0.23000)*/ +{ 1, 0,123,__LINE__, 0x3ff6c586, 0xe0000000, 0xbfcc28f5, 0xc28f5c08}, /* 1.42322=f(-0.22000)*/ +{ 1, 0,123,__LINE__, 0x3ff78f23, 0xe0000000, 0xbfcae147, 0xae147ac0}, /* 1.47244=f(-0.21000)*/ +{ 1, 0,123,__LINE__, 0x3ff86290, 0xc0000000, 0xbfc99999, 0x99999978}, /* 1.52406=f(-0.20000)*/ +{ 1, 0,123,__LINE__, 0x3ff940c3, 0x20000000, 0xbfc851eb, 0x851eb830}, /* 1.57831=f(-0.19000)*/ +{ 1, 0,123,__LINE__, 0x3ffa2ad8, 0xa0000000, 0xbfc70a3d, 0x70a3d6e8}, /* 1.63546=f(-0.18000)*/ +{ 1, 0,123,__LINE__, 0x3ffb221f, 0xa0000000, 0xbfc5c28f, 0x5c28f5a0}, /* 1.69583=f(-0.17000)*/ +{ 1, 0,123,__LINE__, 0x3ffc2823, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 1.75979=f(-0.16000)*/ +{ 1, 0,123,__LINE__, 0x3ffd3eb9, 0xa0000000, 0xbfc33333, 0x33333310}, /* 1.82781=f(-0.15000)*/ +{ 1, 0,123,__LINE__, 0x3ffe681c, 0x20000000, 0xbfc1eb85, 0x1eb851c8}, /* 1.90041=f(-0.14000)*/ +{ 1, 0,123,__LINE__, 0x3fffa701, 0x40000000, 0xbfc0a3d7, 0x0a3d7080}, /* 1.97827=f(-0.13000)*/ +{13, 0,123,__LINE__, 0x40007f62, 0xe0000000, 0xbfbeb851, 0xeb851e71}, /* 2.06220=f(-0.12000)*/ +{13, 0,123,__LINE__, 0x400139d4, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 2.15323=f(-0.11000)*/ +{13, 0,123,__LINE__, 0x4002058e, 0x40000000, 0xbfb99999, 0x99999953}, /* 2.25271=f(-0.00100)*/ +{13, 0,123,__LINE__, 0x4002e628, 0xe0000000, 0xbfb70a3d, 0x70a3d6c4}, /* 2.36238=f(-0.09000)*/ +{13, 0,123,__LINE__, 0x4003e080, 0xc0000000, 0xbfb47ae1, 0x47ae1435}, /* 2.48462=f(-0.08000)*/ +{14, 0,123,__LINE__, 0x4004fb66, 0x60000000, 0xbfb1eb85, 0x1eb851a6}, /* 2.62275=f(-0.07000)*/ +{15, 0,123,__LINE__, 0x400640d4, 0xa0000000, 0xbfaeb851, 0xeb851e2d}, /* 2.78165=f(-0.06000)*/ +{17, 0,123,__LINE__, 0x4007c043, 0xc0000000, 0xbfa99999, 0x9999990e}, /* 2.96887=f(-0.05000)*/ +{12, 0,123,__LINE__, 0x4009939d, 0xc0000000, 0xbfa47ae1, 0x47ae13ef}, /* 3.19707=f(-0.04000)*/ +{14, 0,123,__LINE__, 0x400beb76, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 3.48997=f(-0.03000)*/ +{13, 0,123,__LINE__, 0x400f34d9, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 3.90080=f(-0.02000)*/ +{11, 0,123,__LINE__, 0x401265de, 0x20000000, 0xbf847ae1, 0x47ae1249}, /* 4.59948=f(-0.00010)*/ +{ 0, 0,123,__LINE__, 0x40414837, 0x20000000, 0x3cd19000, 0x00000000}, /* 34.5641=f(9.74915e-16)*/ +{11, 0,123,__LINE__, 0x401265de, 0x20000000, 0x3f847ae1, 0x47ae16ad}, /* 4.59948=f(0.01000)*/ +{13, 0,123,__LINE__, 0x400f34d9, 0x00000000, 0x3f947ae1, 0x47ae1594}, /* 3.90080=f(0.02000)*/ +{14, 0,123,__LINE__, 0x400beb76, 0x00000000, 0x3f9eb851, 0xeb851fd2}, /* 3.48997=f(0.03000)*/ +{12, 0,123,__LINE__, 0x4009939d, 0xc0000000, 0x3fa47ae1, 0x47ae1508}, /* 3.19707=f(0.04000)*/ +{17, 0,123,__LINE__, 0x4007c043, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 2.96887=f(0.05000)*/ +{15, 0,123,__LINE__, 0x400640d4, 0xa0000000, 0x3faeb851, 0xeb851f46}, /* 2.78165=f(0.06000)*/ +{14, 0,123,__LINE__, 0x4004fb66, 0x60000000, 0x3fb1eb85, 0x1eb85232}, /* 2.62275=f(0.07000)*/ +{13, 0,123,__LINE__, 0x4003e080, 0xc0000000, 0x3fb47ae1, 0x47ae14c1}, /* 2.48462=f(0.08000)*/ +{13, 0,123,__LINE__, 0x4002e628, 0xe0000000, 0x3fb70a3d, 0x70a3d750}, /* 2.36238=f(0.09000)*/ +{13, 0,123,__LINE__, 0x4002058e, 0x40000000, 0x3fb99999, 0x999999df}, /* 2.25271=f(0.10000)*/ +{13, 0,123,__LINE__, 0x400139d4, 0x00000000, 0x3fbc28f5, 0xc28f5c6e}, /* 2.15323=f(0.11000)*/ +{13, 0,123,__LINE__, 0x40007f62, 0xe0000000, 0x3fbeb851, 0xeb851efd}, /* 2.06220=f(0.12000)*/ +{ 1, 0,123,__LINE__, 0x3fffa701, 0x40000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 1.97827=f(0.13000)*/ +{ 1, 0,123,__LINE__, 0x3ffe681c, 0x20000000, 0x3fc1eb85, 0x1eb8520e}, /* 1.90041=f(0.14000)*/ +{ 1, 0,123,__LINE__, 0x3ffd3eb9, 0xa0000000, 0x3fc33333, 0x33333356}, /* 1.82781=f(0.15000)*/ +{ 1, 0,123,__LINE__, 0x3ffc2823, 0x00000000, 0x3fc47ae1, 0x47ae149e}, /* 1.75979=f(0.16000)*/ +{ 1, 0,123,__LINE__, 0x3ffb221f, 0xa0000000, 0x3fc5c28f, 0x5c28f5e6}, /* 1.69583=f(0.17000)*/ +{ 1, 0,123,__LINE__, 0x3ffa2ad8, 0xa0000000, 0x3fc70a3d, 0x70a3d72e}, /* 1.63546=f(0.18000)*/ +{ 1, 0,123,__LINE__, 0x3ff940c3, 0x20000000, 0x3fc851eb, 0x851eb876}, /* 1.57831=f(0.19000)*/ +{ 1, 0,123,__LINE__, 0x3ff86290, 0xc0000000, 0x3fc99999, 0x999999be}, /* 1.52406=f(0.20000)*/ +{ 1, 0,123,__LINE__, 0x3ff78f23, 0xe0000000, 0x3fcae147, 0xae147b06}, /* 1.47244=f(0.21000)*/ +{ 1, 0,123,__LINE__, 0x3ff6c586, 0xe0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 1.42322=f(0.22000)*/ +{ 1, 0,123,__LINE__, 0x3ff604e4, 0x60000000, 0x3fcd70a3, 0xd70a3d96}, /* 1.37619=f(0.23000)*/ +{ 1, 0,123,__LINE__, 0x3ff54c82, 0x80000000, 0x3fceb851, 0xeb851ede}, /* 1.33117=f(0.24000)*/ +{ 1, 0,123,__LINE__, 0x3ff49bbd, 0x80000000, 0x3fd00000, 0x00000013}, /* 1.28802=f(0.25000)*/ +{ 1, 0,123,__LINE__, 0x3ff3f205, 0x20000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 1.24658=f(0.26000)*/ +{ 1, 0,123,__LINE__, 0x3ff34ed9, 0x40000000, 0x3fd147ae, 0x147ae15b}, /* 1.20675=f(0.27000)*/ +{ 1, 0,123,__LINE__, 0x3ff2b1c7, 0x80000000, 0x3fd1eb85, 0x1eb851ff}, /* 1.16840=f(0.28000)*/ +{ 1, 0,123,__LINE__, 0x3ff21a69, 0xa0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 1.13144=f(0.29000)*/ +{ 1, 0,123,__LINE__, 0x3ff18863, 0x80000000, 0x3fd33333, 0x33333347}, /* 1.09579=f(0.30000)*/ +{ 1, 0,123,__LINE__, 0x3ff0fb62, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 1.06137=f(0.31000)*/ +{ 1, 0,123,__LINE__, 0x3ff0731a, 0x00000000, 0x3fd47ae1, 0x47ae148f}, /* 1.02810=f(0.32000)*/ +{ 1, 0,123,__LINE__, 0x3fefde8d, 0xa0000000, 0x3fd51eb8, 0x51eb8533}, /* 0.99591=f(0.33000)*/ +{ 1, 0,123,__LINE__, 0x3feedf54, 0xa0000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.96476=f(0.34000)*/ +{ 1, 0,123,__LINE__, 0x3fede816, 0xc0000000, 0x3fd66666, 0x6666667b}, /* 0.93458=f(0.35000)*/ +{ 1, 0,123,__LINE__, 0x3fecf86b, 0x60000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.90532=f(0.36000)*/ +{ 1, 0,123,__LINE__, 0x3fec0ff2, 0xc0000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.87694=f(0.37000)*/ +{ 1, 0,123,__LINE__, 0x3feb2e53, 0xc0000000, 0x3fd851eb, 0x851eb867}, /* 0.84940=f(0.38000)*/ +{ 1, 0,123,__LINE__, 0x3fea533d, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.82266=f(0.39000)*/ +{ 1, 0,123,__LINE__, 0x3fe97e62, 0x60000000, 0x3fd99999, 0x999999af}, /* 0.79667=f(0.40000)*/ +{ 1, 0,123,__LINE__, 0x3fe8af7e, 0x20000000, 0x3fda3d70, 0xa3d70a53}, /* 0.77142=f(0.41000)*/ +{ 1, 0,123,__LINE__, 0x3fe7e64e, 0xe0000000, 0x3fdae147, 0xae147af7}, /* 0.74686=f(0.42000)*/ +{ 1, 0,123,__LINE__, 0x3fe72297, 0x80000000, 0x3fdb851e, 0xb851eb9b}, /* 0.72297=f(0.43000)*/ +{ 1, 0,123,__LINE__, 0x3fe6641f, 0xc0000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.69972=f(0.44000)*/ +{ 1, 0,123,__LINE__, 0x3fe5aab2, 0x80000000, 0x3fdccccc, 0xcccccce3}, /* 0.67708=f(0.45000)*/ +{ 1, 0,123,__LINE__, 0x3fe4f61e, 0x60000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.65504=f(0.46000)*/ +{ 1, 0,123,__LINE__, 0x3fe44634, 0xc0000000, 0x3fde147a, 0xe147ae2b}, /* 0.63357=f(0.47000)*/ +{ 1, 0,123,__LINE__, 0x3fe39aca, 0x40000000, 0x3fdeb851, 0xeb851ecf}, /* 0.61264=f(0.48000)*/ +{ 1, 0,123,__LINE__, 0x3fe2f3b5, 0x80000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.59224=f(0.49000)*/ +{ 1, 0,123,__LINE__, 0x3fe250d0, 0x40000000, 0x3fe00000, 0x0000000b}, /* 0.57236=f(0.50000)*/ +{ 1, 0,123,__LINE__, 0x3fe1b1f6, 0x20000000, 0x3fe051eb, 0x851eb85d}, /* 0.55297=f(0.51000)*/ +{ 1, 0,123,__LINE__, 0x3fe11704, 0xe0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.53405=f(0.52000)*/ +{ 1, 0,123,__LINE__, 0x3fe07fdb, 0xe0000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.51560=f(0.53000)*/ +{ 1, 0,123,__LINE__, 0x3fdfd8b8, 0xa0000000, 0x3fe147ae, 0x147ae153}, /* 0.49760=f(0.54000)*/ +{ 1, 0,123,__LINE__, 0x3fdeb8d3, 0x40000000, 0x3fe19999, 0x999999a5}, /* 0.48003=f(0.55000)*/ +{ 1, 0,123,__LINE__, 0x3fdd9fd0, 0x20000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.46287=f(0.56000)*/ +{ 1, 0,123,__LINE__, 0x3fdc8d7a, 0xa0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.44613=f(0.57000)*/ +{ 1, 0,123,__LINE__, 0x3fdb81a1, 0xe0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.42978=f(0.58000)*/ +{ 1, 0,123,__LINE__, 0x3fda7c15, 0xe0000000, 0x3fe2e147, 0xae147aed}, /* 0.41382=f(0.59000)*/ +{ 1, 0,123,__LINE__, 0x3fd97ca9, 0xa0000000, 0x3fe33333, 0x3333333f}, /* 0.39823=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0x3fd88333, 0x40000000, 0x3fe3851e, 0xb851eb91}, /* 0.38300=f(0.61000)*/ +{ 1, 0,123,__LINE__, 0x3fd78f89, 0x40000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.36813=f(0.62000)*/ +{ 1, 0,123,__LINE__, 0x3fd6a184, 0xc0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.35360=f(0.63000)*/ +{ 1, 0,123,__LINE__, 0x3fd5b900, 0x80000000, 0x3fe47ae1, 0x47ae1487}, /* 0.33941=f(0.64000)*/ +{ 1, 0,123,__LINE__, 0x3fd4d5d9, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.32555=f(0.65000)*/ +{ 1, 0,123,__LINE__, 0x3fd3f7ec, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.31200=f(0.66000)*/ +{ 1, 0,123,__LINE__, 0x3fd31f19, 0x60000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.29877=f(0.67000)*/ +{ 1, 0,123,__LINE__, 0x3fd24b41, 0xc0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.28584=f(0.68000)*/ +{ 1, 0,123,__LINE__, 0x3fd17c47, 0x00000000, 0x3fe6147a, 0xe147ae21}, /* 0.27321=f(0.69000)*/ +{ 1, 0,123,__LINE__, 0x3fd0b20c, 0xa0000000, 0x3fe66666, 0x66666673}, /* 0.26086=f(0.70000)*/ +{ 1, 0,123,__LINE__, 0x3fcfd8ee, 0x40000000, 0x3fe6b851, 0xeb851ec5}, /* 0.24880=f(0.71000)*/ +{ 1, 0,123,__LINE__, 0x3fce56d7, 0x00000000, 0x3fe70a3d, 0x70a3d717}, /* 0.23702=f(0.72000)*/ +{ 1, 0,123,__LINE__, 0x3fccdda2, 0x60000000, 0x3fe75c28, 0xf5c28f69}, /* 0.22551=f(0.73000)*/ +{ 1, 0,123,__LINE__, 0x3fcb6d1e, 0x60000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.21426=f(0.74000)*/ +{ 1, 0,123,__LINE__, 0x3fca051c, 0x40000000, 0x3fe80000, 0x0000000d}, /* 0.20328=f(0.75000)*/ +{ 1, 0,123,__LINE__, 0x3fc8a56e, 0x80000000, 0x3fe851eb, 0x851eb85f}, /* 0.19254=f(0.76000)*/ +{ 1, 0,123,__LINE__, 0x3fc74de9, 0xa0000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.18206=f(0.77000)*/ +{ 1, 0,123,__LINE__, 0x3fc5fe63, 0x40000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.17182=f(0.78000)*/ +{ 1, 0,123,__LINE__, 0x3fc4b6b2, 0x60000000, 0x3fe947ae, 0x147ae155}, /* 0.16182=f(0.79000)*/ +{ 1, 0,123,__LINE__, 0x3fc376b1, 0x00000000, 0x3fe99999, 0x999999a7}, /* 0.15205=f(0.80000)*/ +{ 1, 0,123,__LINE__, 0x3fc23e38, 0xa0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.14252=f(0.81000)*/ +{ 1, 0,123,__LINE__, 0x3fc10d24, 0xc0000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.13321=f(0.82000)*/ +{ 1, 0,123,__LINE__, 0x3fbfc6a4, 0x20000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.12412=f(0.83000)*/ +{ 1, 0,123,__LINE__, 0x3fbd813c, 0xe0000000, 0x3feae147, 0xae147aef}, /* 0.11525=f(0.84000)*/ +{ 1, 0,123,__LINE__, 0x3fbb49d1, 0x00000000, 0x3feb3333, 0x33333341}, /* 0.10659=f(0.85000)*/ +{ 1, 0,123,__LINE__, 0x3fb92022, 0x20000000, 0x3feb851e, 0xb851eb93}, /* 0.09814=f(0.86000)*/ +{ 1, 0,123,__LINE__, 0x3fb703f1, 0xc0000000, 0x3febd70a, 0x3d70a3e5}, /* 0.08990=f(0.87000)*/ +{ 1, 0,123,__LINE__, 0x3fb4f503, 0xc0000000, 0x3fec28f5, 0xc28f5c37}, /* 0.08186=f(0.88000)*/ +{ 1, 0,123,__LINE__, 0x3fb2f31e, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 0.07402=f(0.89000)*/ +{ 1, 0,123,__LINE__, 0x3fb0fe08, 0xe0000000, 0x3feccccc, 0xccccccdb}, /* 0.06637=f(0.90000)*/ +{ 1, 0,123,__LINE__, 0x3fae2b18, 0xa0000000, 0x3fed1eb8, 0x51eb852d}, /* 0.05892=f(0.91000)*/ +{ 1, 0,123,__LINE__, 0x3faa72ea, 0xa0000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.05165=f(0.92000)*/ +{ 1, 0,123,__LINE__, 0x3fa6d31f, 0x40000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.04457=f(0.93000)*/ +{ 1, 0,123,__LINE__, 0x3fa34b52, 0xe0000000, 0x3fee147a, 0xe147ae23}, /* 0.03768=f(0.94000)*/ +{ 1, 0,123,__LINE__, 0x3f9fb649, 0x40000000, 0x3fee6666, 0x66666675}, /* 0.03096=f(0.95000)*/ +{ 1, 0,123,__LINE__, 0x3f99046d, 0x20000000, 0x3feeb851, 0xeb851ec7}, /* 0.02443=f(0.96000)*/ +{ 1, 0,123,__LINE__, 0x3f928057, 0xe0000000, 0x3fef0a3d, 0x70a3d719}, /* 0.01806=f(0.97000)*/ +{ 1, 0,123,__LINE__, 0x3f8852ba, 0x00000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.01187=f(0.98000)*/ +{ 1, 0,123,__LINE__, 0x3f77fb34, 0x40000000, 0x3fefae14, 0x7ae147bd}, /* 0.00585=f(0.99000)*/ +{ 1, 0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 0.00000=f(1.00000)*/ +{ 0, 0,123,__LINE__, 0xbf774eb7, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* -0.00569=f(1.01000)*/ +{ 0, 0,123,__LINE__, 0xbf86f9b6, 0xc0000000, 0x3ff051eb, 0x851eb859}, /* -0.01121=f(1.02000)*/ +{ 0, 0,123,__LINE__, 0xbf90fc23, 0xe0000000, 0x3ff07ae1, 0x47ae1482}, /* -0.01658=f(1.03000)*/ +{ 0, 0,123,__LINE__, 0xbf96521e, 0x40000000, 0x3ff0a3d7, 0x0a3d70ab}, /* -0.02179=f(1.04000)*/ +{ 0, 0,123,__LINE__, 0xbf9b7f5d, 0xa0000000, 0x3ff0cccc, 0xccccccd4}, /* -0.02685=f(1.05000)*/ +{ 0, 0,123,__LINE__, 0xbfa04238, 0xa0000000, 0x3ff0f5c2, 0x8f5c28fd}, /* -0.03175=f(1.06000)*/ +{ 0, 0,123,__LINE__, 0xbfa2b0f4, 0x40000000, 0x3ff11eb8, 0x51eb8526}, /* -0.03650=f(1.07000)*/ +{ 0, 0,123,__LINE__, 0xbfa50c22, 0x00000000, 0x3ff147ae, 0x147ae14f}, /* -0.04110=f(1.08000)*/ +{ 0, 0,123,__LINE__, 0xbfa75406, 0x40000000, 0x3ff170a3, 0xd70a3d78}, /* -0.04556=f(1.09000)*/ +{ 0, 0,123,__LINE__, 0xbfa988e1, 0xc0000000, 0x3ff19999, 0x999999a1}, /* -0.04987=f(1.10000)*/ +{ 0, 0,123,__LINE__, 0xbfabaaf3, 0xe0000000, 0x3ff1c28f, 0x5c28f5ca}, /* -0.05403=f(1.11000)*/ +{ 0, 0,123,__LINE__, 0xbfadba7a, 0x40000000, 0x3ff1eb85, 0x1eb851f3}, /* -0.05806=f(1.12000)*/ +{ 0, 0,123,__LINE__, 0xbfafb7b1, 0x00000000, 0x3ff2147a, 0xe147ae1c}, /* -0.06194=f(1.13000)*/ +{ 0, 0,123,__LINE__, 0xbfb0d169, 0xa0000000, 0x3ff23d70, 0xa3d70a45}, /* -0.06569=f(1.14000)*/ +{ 0, 0,123,__LINE__, 0xbfb1be0d, 0x20000000, 0x3ff26666, 0x6666666e}, /* -0.06930=f(1.15000)*/ +{ 0, 0,123,__LINE__, 0xbfb2a1df, 0x00000000, 0x3ff28f5c, 0x28f5c297}, /* -0.07278=f(1.16000)*/ +{ 0, 0,123,__LINE__, 0xbfb37cfb, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* -0.07612=f(1.17000)*/ +{ 0, 0,123,__LINE__, 0xbfb44f7b, 0x80000000, 0x3ff2e147, 0xae147ae9}, /* -0.07933=f(1.18000)*/ +{ 0, 0,123,__LINE__, 0xbfb5197b, 0xc0000000, 0x3ff30a3d, 0x70a3d712}, /* -0.08242=f(1.19000)*/ +{12, 0,123,__LINE__, 0x40151c74, 0xc0000000, 0xc01921fb, 0x54442d18}, /* 5.27778=f(-6.28318)*/ +{11, 0,123,__LINE__, 0x400608aa, 0x80000000, 0xc012d97c, 0x7f3321d2}, /* 2.75423=f(-4.71238)*/ +{ 1, 0,123,__LINE__, 0x3fea7c79, 0x80000000, 0xc00921fb, 0x54442d18}, /* 0.82769=f(-3.14159)*/ +{ 0, 0,123,__LINE__, 0xbfbdabdf, 0x00000000, 0xbff921fb, 0x54442d18}, /* -0.11590=f(-1.57079)*/ +{ 0,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0xbfbdabdf, 0x00000000, 0x3ff921fb, 0x54442d18}, /* -0.11590=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3fea7c79, 0x80000000, 0x400921fb, 0x54442d18}, /* 0.82769=f(3.14159)*/ +{11, 0,123,__LINE__, 0x400608aa, 0x80000000, 0x4012d97c, 0x7f3321d2}, /* 2.75423=f(4.71238)*/ +{11, 0,123,__LINE__, 0x4051d073, 0x60000000, 0xc03e0000, 0x00000000}, /* 71.2570=f(-30.0000)*/ +{11, 0,123,__LINE__, 0x4050636b, 0xa0000000, 0xc03c4ccc, 0xcccccccd}, /* 65.5534=f(-28.3000)*/ +{12, 0,123,__LINE__, 0x404dfa17, 0xe0000000, 0xc03a9999, 0x9999999a}, /* 59.9538=f(-26.6000)*/ +{12, 0,123,__LINE__, 0x404b3b87, 0x20000000, 0xc038e666, 0x66666667}, /* 54.4650=f(-24.9000)*/ +{ 9, 0,123,__LINE__, 0x40488c22, 0x20000000, 0xc0373333, 0x33333334}, /* 49.0947=f(-23.2000)*/ +{ 9, 0,123,__LINE__, 0x4045ed0c, 0x00000000, 0xc0358000, 0x00000001}, /* 43.8519=f(-21.5000)*/ +{ 9, 0,123,__LINE__, 0x40435f97, 0x60000000, 0xc033cccc, 0xccccccce}, /* 38.7468=f(-19.8000)*/ +{ 9, 0,123,__LINE__, 0x4040e552, 0xe0000000, 0xc0321999, 0x9999999b}, /* 33.7915=f(-18.1000)*/ +{13, 0,123,__LINE__, 0x403d0033, 0xe0000000, 0xc0306666, 0x66666668}, /* 29.0007=f(-16.4000)*/ +{12, 0,123,__LINE__, 0x4038645c, 0xa0000000, 0xc02d6666, 0x6666666a}, /* 24.3920=f(-14.7000)*/ +{14, 0,123,__LINE__, 0x4033fcba, 0x00000000, 0xc02a0000, 0x00000004}, /* 19.9872=f(-13.0000)*/ +{15, 0,123,__LINE__, 0x402fa0dc, 0x80000000, 0xc0269999, 0x9999999e}, /* 15.8141=f(-11.3000)*/ +{12, 0,123,__LINE__, 0x4027d1bf, 0x20000000, 0xc0233333, 0x33333338}, /* 11.9096=f(-9.60000)*/ +{13, 0,123,__LINE__, 0x4020a606, 0x20000000, 0xc01f9999, 0x999999a3}, /* 8.32426=f(-7.90000)*/ +{12, 0,123,__LINE__, 0x40148779, 0x40000000, 0xc018cccc, 0xccccccd6}, /* 5.13229=f(-6.20000)*/ +{11, 0,123,__LINE__, 0x4003a140, 0xa0000000, 0xc0120000, 0x00000009}, /* 2.45373=f(-4.50000)*/ +{ 1, 0,123,__LINE__, 0x3fe088d4, 0x40000000, 0xc0066666, 0x66666678}, /* 0.51670=f(-2.80000)*/ +{ 0, 0,123,__LINE__, 0xbfa988e1, 0xc0000000, 0xbff19999, 0x999999bd}, /* -0.04987=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0x3fd97ca9, 0xa0000000, 0x3fe33333, 0x333332ec}, /* 0.39823=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0x3fc3bc7a, 0xa0000000, 0x40026666, 0x66666654}, /* 0.15418=f(2.30000)*/ +{ 1, 0,123,__LINE__, 0x3ffcab0c, 0x00000000, 0x400fffff, 0xffffffee}, /* 1.79175=f(4.00000)*/ +{12, 0,123,__LINE__, 0x401122c8, 0x60000000, 0x4016cccc, 0xccccccc4}, /* 4.28396=f(5.70000)*/ +{10, 0,123,__LINE__, 0x401d5c93, 0x20000000, 0x401d9999, 0x99999991}, /* 7.34040=f(7.40000)*/ +{12, 0,123,__LINE__, 0x4025a375, 0x20000000, 0x40223333, 0x3333332f}, /* 10.8192=f(9.10000)*/ +{15, 0,123,__LINE__, 0x402d459e, 0xe0000000, 0x40259999, 0x99999995}, /* 14.6359=f(10.8000)*/ +{14, 0,123,__LINE__, 0x4032bbfe, 0x40000000, 0x4028ffff, 0xfffffffb}, /* 18.7343=f(12.5000)*/ +{14, 0,123,__LINE__, 0x40371300, 0x00000000, 0x402c6666, 0x66666661}, /* 23.0742=f(14.2000)*/ +{12, 0,123,__LINE__, 0x403ba020, 0x40000000, 0x402fcccc, 0xccccccc7}, /* 27.6254=f(15.9000)*/ +{ 9, 0,123,__LINE__, 0x40402eb0, 0x00000000, 0x40319999, 0x99999997}, /* 32.3647=f(17.6000)*/ +{ 9, 0,123,__LINE__, 0x4042a2f9, 0x20000000, 0x40334ccc, 0xccccccca}, /* 37.2732=f(19.3000)*/ +{ 9, 0,123,__LINE__, 0x40452af5, 0x80000000, 0x4034ffff, 0xfffffffd}, /* 42.3356=f(21.0000)*/ +{ 9, 0,123,__LINE__, 0x4047c501, 0xa0000000, 0x4036b333, 0x33333330}, /* 47.5391=f(22.7000)*/ +{12, 0,123,__LINE__, 0x404a6fba, 0xe0000000, 0x40386666, 0x66666663}, /* 52.8728=f(24.4000)*/ +{12, 0,123,__LINE__, 0x404d29f1, 0x40000000, 0x403a1999, 0x99999996}, /* 58.3276=f(26.1000)*/ +{12, 0,123,__LINE__, 0x404ff29d, 0x20000000, 0x403bcccc, 0xccccccc9}, /* 63.8954=f(27.8000)*/ +{11, 0,123,__LINE__, 0x4051646b, 0xe0000000, 0x403d7fff, 0xfffffffc}, /* 69.5690=f(29.5000)*/ +0,}; +test_gammaf(m) {run_vector_1(m,gammaf_vec,(char *)(gammaf),"gammaf","ff"); } diff --git a/newlib/libm/test/hypot_vec.c b/newlib/libm/test/hypot_vec.c new file mode 100644 index 000000000..ca8e7ff3f --- /dev/null +++ b/newlib/libm/test/hypot_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type hypot_vec[] = { +{64, 0,123,__LINE__, 0x40085ed7, 0x614b038c, 0xbff33333, 0x33333333, 0x40066666, 0x66666666}, /* 3.04630=f(-1.20000, v2.80000)*/ +{64, 0,123,__LINE__, 0x400869a7, 0xe2fb7e53, 0xbff30a3d, 0x70a3d70a, 0x40067ae1, 0x47ae147b}, /* 3.05159=f(-1.19000, v2.81000)*/ +{64, 0,123,__LINE__, 0x40087495, 0xe9b1d178, 0xbff2e147, 0xae147ae1, 0x40068f5c, 0x28f5c290}, /* 3.05692=f(-1.18000, v2.82000)*/ +{64, 0,123,__LINE__, 0x40087fa1, 0x4deb838f, 0xbff2b851, 0xeb851eb8, 0x4006a3d7, 0x0a3d70a4}, /* 3.06231=f(-1.17000, v2.83000)*/ +{64, 0,123,__LINE__, 0x40088ac9, 0xe80372ac, 0xbff28f5c, 0x28f5c28f, 0x4006b851, 0xeb851eb8}, /* 3.06776=f(-1.16000, v2.84000)*/ +{64, 0,123,__LINE__, 0x4008960f, 0x9033fa69, 0xbff26666, 0x66666666, 0x4006cccc, 0xcccccccd}, /* 3.07327=f(-1.15000, v2.85000)*/ +{64, 0,123,__LINE__, 0x4008a172, 0x1e991408, 0xbff23d70, 0xa3d70a3d, 0x4006e147, 0xae147ae2}, /* 3.07883=f(-1.14000, v2.86000)*/ +{64, 0,123,__LINE__, 0x4008acf1, 0x6b32703b, 0xbff2147a, 0xe147ae14, 0x4006f5c2, 0x8f5c28f6}, /* 3.08444=f(-1.13000, v2.87000)*/ +{64, 0,123,__LINE__, 0x4008b88d, 0x4de58aaa, 0xbff1eb85, 0x1eb851eb, 0x40070a3d, 0x70a3d70a}, /* 3.09011=f(-1.12000, v2.88000)*/ +{64, 0,123,__LINE__, 0x4008c445, 0x9e7fb6ed, 0xbff1c28f, 0x5c28f5c2, 0x40071eb8, 0x51eb851f}, /* 3.09583=f(-1.11000, v2.89000)*/ +{64, 0,123,__LINE__, 0x4008d01a, 0x34b826d7, 0xbff19999, 0x99999999, 0x40073333, 0x33333334}, /* 3.10161=f(-1.10000, v2.90000)*/ +{64, 0,123,__LINE__, 0x4008dc0a, 0xe831ea21, 0xbff170a3, 0xd70a3d70, 0x400747ae, 0x147ae148}, /* 3.10744=f(-1.09000, v2.91000)*/ +{64, 0,123,__LINE__, 0x4008e817, 0x907de70e, 0xbff147ae, 0x147ae147, 0x40075c28, 0xf5c28f5c}, /* 3.11332=f(-1.08000, v2.92000)*/ +{64, 0,123,__LINE__, 0x4008f440, 0x051ccc28, 0xbff11eb8, 0x51eb851e, 0x400770a3, 0xd70a3d71}, /* 3.11926=f(-1.07000, v2.93000)*/ +{64, 0,123,__LINE__, 0x40090084, 0x1d80fadf, 0xbff0f5c2, 0x8f5c28f5, 0x4007851e, 0xb851eb86}, /* 3.12525=f(-1.06000, v2.94000)*/ +{64, 0,123,__LINE__, 0x40090ce3, 0xb1106af5, 0xbff0cccc, 0xcccccccc, 0x40079999, 0x9999999a}, /* 3.13129=f(-1.05000, v2.95000)*/ +{64, 0,123,__LINE__, 0x4009195e, 0x972686b0, 0xbff0a3d7, 0x0a3d70a3, 0x4007ae14, 0x7ae147ae}, /* 3.13738=f(-1.04000, v2.96000)*/ +{64, 0,123,__LINE__, 0x400925f4, 0xa715ffa1, 0xbff07ae1, 0x47ae147a, 0x4007c28f, 0x5c28f5c3}, /* 3.14353=f(-1.03000, v2.97000)*/ +{64, 0,123,__LINE__, 0x400932a5, 0xb82a9c04, 0xbff051eb, 0x851eb851, 0x4007d70a, 0x3d70a3d8}, /* 3.14973=f(-1.02000, v2.98000)*/ +{64, 0,123,__LINE__, 0x40093f71, 0xa1aafcad, 0xbff028f5, 0xc28f5c28, 0x4007eb85, 0x1eb851ec}, /* 3.15597=f(-1.01000, v2.99000)*/ +{64, 0,123,__LINE__, 0x40094c58, 0x3ada5b53, 0xbfefffff, 0xfffffffe, 0x40080000, 0x00000000}, /* 3.16227=f(-0.01000, v3.00000)*/ +{64, 0,123,__LINE__, 0x40095959, 0x5afa4154, 0xbfefae14, 0x7ae147ac, 0x4008147a, 0xe147ae15}, /* 3.16862=f(-0.99000, v3.01000)*/ +{64, 0,123,__LINE__, 0x40096674, 0xd94c36c4, 0xbfef5c28, 0xf5c28f5a, 0x400828f5, 0xc28f5c2a}, /* 3.17502=f(-0.98000, v3.02000)*/ +{64, 0,123,__LINE__, 0x400973aa, 0x8d1369d2, 0xbfef0a3d, 0x70a3d708, 0x40083d70, 0xa3d70a3e}, /* 3.18147=f(-0.97000, v3.03000)*/ +{64, 0,123,__LINE__, 0x400980fa, 0x4d964e77, 0xbfeeb851, 0xeb851eb6, 0x400851eb, 0x851eb852}, /* 3.18797=f(-0.96000, v3.04000)*/ +{64, 0,123,__LINE__, 0x40098e63, 0xf2203661, 0xbfee6666, 0x66666664, 0x40086666, 0x66666667}, /* 3.19452=f(-0.95000, v3.05000)*/ +{64, 0,123,__LINE__, 0x40099be7, 0x5202e117, 0xbfee147a, 0xe147ae12, 0x40087ae1, 0x47ae147c}, /* 3.20112=f(-0.94000, v3.06000)*/ +{64, 0,123,__LINE__, 0x4009a984, 0x4498045c, 0xbfedc28f, 0x5c28f5c0, 0x40088f5c, 0x28f5c290}, /* 3.20777=f(-0.93000, v3.07000)*/ +{64, 0,123,__LINE__, 0x4009b73a, 0xa142ccc2, 0xbfed70a3, 0xd70a3d6e, 0x4008a3d7, 0x0a3d70a4}, /* 3.21446=f(-0.92000, v3.08000)*/ +{64, 0,123,__LINE__, 0x4009c50a, 0x3f71566f, 0xbfed1eb8, 0x51eb851c, 0x4008b851, 0xeb851eb9}, /* 3.22121=f(-0.91000, v3.09000)*/ +{64, 0,123,__LINE__, 0x4009d2f2, 0xf69e1e1a, 0xbfeccccc, 0xccccccca, 0x4008cccc, 0xccccccce}, /* 3.22800=f(-0.90000, v3.10000)*/ +{64, 0,123,__LINE__, 0x4009e0f4, 0x9e516a41, 0xbfec7ae1, 0x47ae1478, 0x4008e147, 0xae147ae2}, /* 3.23484=f(-0.89000, v3.11000)*/ +{64, 0,123,__LINE__, 0x4009ef0f, 0x0e22ac91, 0xbfec28f5, 0xc28f5c26, 0x4008f5c2, 0x8f5c28f6}, /* 3.24172=f(-0.88000, v3.12000)*/ +{64, 0,123,__LINE__, 0x4009fd42, 0x1db9db95, 0xbfebd70a, 0x3d70a3d4, 0x40090a3d, 0x70a3d70b}, /* 3.24866=f(-0.87000, v3.13000)*/ +{64, 0,123,__LINE__, 0x400a0b8d, 0xa4d0c49b, 0xbfeb851e, 0xb851eb82, 0x40091eb8, 0x51eb8520}, /* 3.25564=f(-0.86000, v3.14000)*/ +{64, 0,123,__LINE__, 0x400a19f1, 0x7b3455ef, 0xbfeb3333, 0x33333330, 0x40093333, 0x33333334}, /* 3.26266=f(-0.85000, v3.15000)*/ +{64, 0,123,__LINE__, 0x400a286d, 0x78c5e169, 0xbfeae147, 0xae147ade, 0x400947ae, 0x147ae148}, /* 3.26974=f(-0.84000, v3.16000)*/ +{64, 0,123,__LINE__, 0x400a3701, 0x757c5746, 0xbfea8f5c, 0x28f5c28c, 0x40095c28, 0xf5c28f5d}, /* 3.27685=f(-0.83000, v3.17000)*/ +{64, 0,123,__LINE__, 0x400a45ad, 0x49657972, 0xbfea3d70, 0xa3d70a3a, 0x400970a3, 0xd70a3d72}, /* 3.28402=f(-0.82000, v3.18000)*/ +{64, 0,123,__LINE__, 0x400a5470, 0xcca70743, 0xbfe9eb85, 0x1eb851e8, 0x4009851e, 0xb851eb86}, /* 3.29123=f(-0.81000, v3.19000)*/ +{64, 0,123,__LINE__, 0x400a634b, 0xd77fe1a5, 0xbfe99999, 0x99999996, 0x40099999, 0x9999999a}, /* 3.29848=f(-0.80000, v3.20000)*/ +{64, 0,123,__LINE__, 0x400a723e, 0x424927d7, 0xbfe947ae, 0x147ae144, 0x4009ae14, 0x7ae147af}, /* 3.30578=f(-0.79000, v3.21000)*/ +{64, 0,123,__LINE__, 0x400a8147, 0xe5774cb7, 0xbfe8f5c2, 0x8f5c28f2, 0x4009c28f, 0x5c28f5c4}, /* 3.31312=f(-0.78000, v3.22000)*/ +{64, 0,123,__LINE__, 0x400a9068, 0x999b24b2, 0xbfe8a3d7, 0x0a3d70a0, 0x4009d70a, 0x3d70a3d8}, /* 3.32051=f(-0.77000, v3.23000)*/ +{64, 0,123,__LINE__, 0x400a9fa0, 0x3762ec71, 0xbfe851eb, 0x851eb84e, 0x4009eb85, 0x1eb851ec}, /* 3.32794=f(-0.76000, v3.24000)*/ +{64, 0,123,__LINE__, 0x400aaeee, 0x979b4838, 0xbfe7ffff, 0xfffffffc, 0x400a0000, 0x00000001}, /* 3.33541=f(-0.75000, v3.25000)*/ +{64, 0,123,__LINE__, 0x400abe53, 0x93303c27, 0xbfe7ae14, 0x7ae147aa, 0x400a147a, 0xe147ae16}, /* 3.34293=f(-0.74000, v3.26000)*/ +{64, 0,123,__LINE__, 0x400acdcf, 0x032e1d54, 0xbfe75c28, 0xf5c28f58, 0x400a28f5, 0xc28f5c2a}, /* 3.35049=f(-0.73000, v3.27000)*/ +{64, 0,123,__LINE__, 0x400add60, 0xc0c27bef, 0xbfe70a3d, 0x70a3d706, 0x400a3d70, 0xa3d70a3e}, /* 3.35809=f(-0.72000, v3.28000)*/ +{64, 0,123,__LINE__, 0x400aed08, 0xa53d0654, 0xbfe6b851, 0xeb851eb4, 0x400a51eb, 0x851eb853}, /* 3.36573=f(-0.71000, v3.29000)*/ +{64, 0,123,__LINE__, 0x400afcc6, 0x8a106555, 0xbfe66666, 0x66666662, 0x400a6666, 0x66666668}, /* 3.37342=f(-0.70000, v3.30000)*/ +{64, 0,123,__LINE__, 0x400b0c9a, 0x48d31198, 0xbfe6147a, 0xe147ae10, 0x400a7ae1, 0x47ae147c}, /* 3.38115=f(-0.69000, v3.31000)*/ +{64, 0,123,__LINE__, 0x400b1c83, 0xbb40225c, 0xbfe5c28f, 0x5c28f5be, 0x400a8f5c, 0x28f5c290}, /* 3.38892=f(-0.68000, v3.32000)*/ +{64, 0,123,__LINE__, 0x400b2c82, 0xbb381576, 0xbfe570a3, 0xd70a3d6c, 0x400aa3d7, 0x0a3d70a5}, /* 3.39673=f(-0.67000, v3.33000)*/ +{64, 0,123,__LINE__, 0x400b3c97, 0x22c190c8, 0xbfe51eb8, 0x51eb851a, 0x400ab851, 0xeb851eba}, /* 3.40458=f(-0.66000, v3.34000)*/ +{64, 0,123,__LINE__, 0x400b4cc0, 0xcc0a1d4e, 0xbfe4cccc, 0xccccccc8, 0x400acccc, 0xccccccce}, /* 3.41247=f(-0.65000, v3.35000)*/ +{64, 0,123,__LINE__, 0x400b5cff, 0x9166db9e, 0xbfe47ae1, 0x47ae1476, 0x400ae147, 0xae147ae2}, /* 3.42040=f(-0.64000, v3.36000)*/ +{64, 0,123,__LINE__, 0x400b6d53, 0x4d553242, 0xbfe428f5, 0xc28f5c24, 0x400af5c2, 0x8f5c28f7}, /* 3.42838=f(-0.63000, v3.37000)*/ +{64, 0,123,__LINE__, 0x400b7dbb, 0xda7b75b1, 0xbfe3d70a, 0x3d70a3d2, 0x400b0a3d, 0x70a3d70c}, /* 3.43639=f(-0.62000, v3.38000)*/ +{64, 0,123,__LINE__, 0x400b8e39, 0x13a98a3f, 0xbfe3851e, 0xb851eb80, 0x400b1eb8, 0x51eb8520}, /* 3.44444=f(-0.61000, v3.39000)*/ +{64, 0,123,__LINE__, 0x400b9eca, 0xd3d97ff9, 0xbfe33333, 0x3333332e, 0x400b3333, 0x33333334}, /* 3.45253=f(-0.60000, v3.40000)*/ +{64, 0,123,__LINE__, 0x400baf70, 0xf630288b, 0xbfe2e147, 0xae147adc, 0x400b47ae, 0x147ae149}, /* 3.46066=f(-0.59000, v3.41000)*/ +{64, 0,123,__LINE__, 0x400bc02b, 0x55fda746, 0xbfe28f5c, 0x28f5c28a, 0x400b5c28, 0xf5c28f5e}, /* 3.46883=f(-0.58000, v3.42000)*/ +{64, 0,123,__LINE__, 0x400bd0f9, 0xcebdfb5d, 0xbfe23d70, 0xa3d70a38, 0x400b70a3, 0xd70a3d72}, /* 3.47703=f(-0.57000, v3.43000)*/ +{64, 0,123,__LINE__, 0x400be1dc, 0x3c198482, 0xbfe1eb85, 0x1eb851e6, 0x400b851e, 0xb851eb86}, /* 3.48528=f(-0.56000, v3.44000)*/ +{64, 0,123,__LINE__, 0x400bf2d2, 0x79e581df, 0xbfe19999, 0x99999994, 0x400b9999, 0x9999999b}, /* 3.49356=f(-0.55000, v3.45000)*/ +{64, 0,123,__LINE__, 0x400c03dc, 0x64248b93, 0xbfe147ae, 0x147ae142, 0x400bae14, 0x7ae147b0}, /* 3.50188=f(-0.54000, v3.46000)*/ +{64, 0,123,__LINE__, 0x400c14f9, 0xd70706c5, 0xbfe0f5c2, 0x8f5c28f0, 0x400bc28f, 0x5c28f5c4}, /* 3.51024=f(-0.53000, v3.47000)*/ +{64, 0,123,__LINE__, 0x400c262a, 0xaeeb9476, 0xbfe0a3d7, 0x0a3d709e, 0x400bd70a, 0x3d70a3d8}, /* 3.51863=f(-0.52000, v3.48000)*/ +{64, 0,123,__LINE__, 0x400c376e, 0xc85f7b0b, 0xbfe051eb, 0x851eb84c, 0x400beb85, 0x1eb851ed}, /* 3.52706=f(-0.51000, v3.49000)*/ +{64, 0,123,__LINE__, 0x400c48c6, 0x001f0ac1, 0xbfdfffff, 0xfffffff4, 0x400c0000, 0x00000002}, /* 3.53553=f(-0.50000, v3.50000)*/ +{64, 0,123,__LINE__, 0x400c5a30, 0x3315fd20, 0xbfdf5c28, 0xf5c28f50, 0x400c147a, 0xe147ae16}, /* 3.54403=f(-0.49000, v3.51000)*/ +{64, 0,123,__LINE__, 0x400c6bad, 0x3e5fcf76, 0xbfdeb851, 0xeb851eac, 0x400c28f5, 0xc28f5c2a}, /* 3.55257=f(-0.48000, v3.52000)*/ +{64, 0,123,__LINE__, 0x400c7d3c, 0xff48187d, 0xbfde147a, 0xe147ae08, 0x400c3d70, 0xa3d70a3f}, /* 3.56115=f(-0.47000, v3.53000)*/ +{64, 0,123,__LINE__, 0x400c8edf, 0x534ad949, 0xbfdd70a3, 0xd70a3d64, 0x400c51eb, 0x851eb854}, /* 3.56976=f(-0.46000, v3.54000)*/ +{64, 0,123,__LINE__, 0x400ca094, 0x1814c988, 0xbfdccccc, 0xccccccc0, 0x400c6666, 0x66666668}, /* 3.57840=f(-0.45000, v3.55000)*/ +{64, 0,123,__LINE__, 0x400cb25b, 0x2b839f41, 0xbfdc28f5, 0xc28f5c1c, 0x400c7ae1, 0x47ae147c}, /* 3.58708=f(-0.44000, v3.56000)*/ +{64, 0,123,__LINE__, 0x400cc434, 0x6ba65209, 0xbfdb851e, 0xb851eb78, 0x400c8f5c, 0x28f5c291}, /* 3.59580=f(-0.43000, v3.57000)*/ +{64, 0,123,__LINE__, 0x400cd61f, 0xb6bd59e8, 0xbfdae147, 0xae147ad4, 0x400ca3d7, 0x0a3d70a6}, /* 3.60455=f(-0.42000, v3.58000)*/ +{64, 0,123,__LINE__, 0x400ce81c, 0xeb3ae9ee, 0xbfda3d70, 0xa3d70a30, 0x400cb851, 0xeb851eba}, /* 3.61333=f(-0.41000, v3.59000)*/ +{64, 0,123,__LINE__, 0x400cfa2b, 0xe7c326a1, 0xbfd99999, 0x9999998c, 0x400ccccc, 0xccccccce}, /* 3.62215=f(-0.40000, v3.60000)*/ +{64, 0,123,__LINE__, 0x400d0c4c, 0x8b2c5846, 0xbfd8f5c2, 0x8f5c28e8, 0x400ce147, 0xae147ae3}, /* 3.63100=f(-0.39000, v3.61000)*/ +{64, 0,123,__LINE__, 0x400d1e7e, 0xb47f1931, 0xbfd851eb, 0x851eb844, 0x400cf5c2, 0x8f5c28f8}, /* 3.63989=f(-0.38000, v3.62000)*/ +{64, 0,123,__LINE__, 0x400d30c2, 0x42f68025, 0xbfd7ae14, 0x7ae147a0, 0x400d0a3d, 0x70a3d70c}, /* 3.64880=f(-0.37000, v3.63000)*/ +{64, 0,123,__LINE__, 0x400d4317, 0x160046e2, 0xbfd70a3d, 0x70a3d6fc, 0x400d1eb8, 0x51eb8520}, /* 3.65775=f(-0.36000, v3.64000)*/ +{64, 0,123,__LINE__, 0x400d557d, 0x0d3cecfc, 0xbfd66666, 0x66666658, 0x400d3333, 0x33333335}, /* 3.66674=f(-0.35000, v3.65000)*/ +{64, 0,123,__LINE__, 0x400d67f4, 0x087fd6f4, 0xbfd5c28f, 0x5c28f5b4, 0x400d47ae, 0x147ae14a}, /* 3.67575=f(-0.34000, v3.66000)*/ +{64, 0,123,__LINE__, 0x400d7a7b, 0xe7cf69d6, 0xbfd51eb8, 0x51eb8510, 0x400d5c28, 0xf5c28f5e}, /* 3.68480=f(-0.33000, v3.67000)*/ +{64, 0,123,__LINE__, 0x400d8d14, 0x8b652355, 0xbfd47ae1, 0x47ae146c, 0x400d70a3, 0xd70a3d72}, /* 3.69388=f(-0.32000, v3.68000)*/ +{64, 0,123,__LINE__, 0x400d9fbd, 0xd3adae7e, 0xbfd3d70a, 0x3d70a3c8, 0x400d851e, 0xb851eb87}, /* 3.70299=f(-0.31000, v3.69000)*/ +{64, 0,123,__LINE__, 0x400db277, 0xa148f514, 0xbfd33333, 0x33333324, 0x400d9999, 0x9999999c}, /* 3.71214=f(-0.30000, v3.70000)*/ +{64, 0,123,__LINE__, 0x400dc541, 0xd50a2db9, 0xbfd28f5c, 0x28f5c280, 0x400dae14, 0x7ae147b0}, /* 3.72131=f(-0.29000, v3.71000)*/ +{64, 0,123,__LINE__, 0x400dd81c, 0x4ff7e6fe, 0xbfd1eb85, 0x1eb851dc, 0x400dc28f, 0x5c28f5c4}, /* 3.73052=f(-0.28000, v3.72000)*/ +{64, 0,123,__LINE__, 0x400deb06, 0xf34c0f39, 0xbfd147ae, 0x147ae138, 0x400dd70a, 0x3d70a3d9}, /* 3.73975=f(-0.27000, v3.73000)*/ +{64, 0,123,__LINE__, 0x400dfe01, 0xa073f97f, 0xbfd0a3d7, 0x0a3d7094, 0x400deb85, 0x1eb851ee}, /* 3.74902=f(-0.26000, v3.74000)*/ +{64, 0,123,__LINE__, 0x400e110c, 0x39105fb0, 0xbfcfffff, 0xffffffe0, 0x400e0000, 0x00000002}, /* 3.75832=f(-0.25000, v3.75000)*/ +{64, 0,123,__LINE__, 0x400e2426, 0x9ef5619f, 0xbfceb851, 0xeb851e98, 0x400e147a, 0xe147ae16}, /* 3.76765=f(-0.24000, v3.76000)*/ +{64, 0,123,__LINE__, 0x400e3750, 0xb42a8182, 0xbfcd70a3, 0xd70a3d50, 0x400e28f5, 0xc28f5c2b}, /* 3.77700=f(-0.23000, v3.77000)*/ +{64, 0,123,__LINE__, 0x400e4a8a, 0x5aea9daf, 0xbfcc28f5, 0xc28f5c08, 0x400e3d70, 0xa3d70a40}, /* 3.78639=f(-0.22000, v3.78000)*/ +{64, 0,123,__LINE__, 0x400e5dd3, 0x75a3e7c5, 0xbfcae147, 0xae147ac0, 0x400e51eb, 0x851eb854}, /* 3.79581=f(-0.21000, v3.79000)*/ +{64, 0,123,__LINE__, 0x400e712b, 0xe6f7d93a, 0xbfc99999, 0x99999978, 0x400e6666, 0x66666668}, /* 3.80526=f(-0.20000, v3.80000)*/ +{64, 0,123,__LINE__, 0x400e8493, 0x91bb2588, 0xbfc851eb, 0x851eb830, 0x400e7ae1, 0x47ae147d}, /* 3.81473=f(-0.19000, v3.81000)*/ +{64, 0,123,__LINE__, 0x400e980a, 0x58f5a9e3, 0xbfc70a3d, 0x70a3d6e8, 0x400e8f5c, 0x28f5c292}, /* 3.82423=f(-0.18000, v3.82000)*/ +{64, 0,123,__LINE__, 0x400eab90, 0x1fe25aa5, 0xbfc5c28f, 0x5c28f5a0, 0x400ea3d7, 0x0a3d70a6}, /* 3.83377=f(-0.17000, v3.83000)*/ +{64, 0,123,__LINE__, 0x400ebf24, 0xc9ef2e7b, 0xbfc47ae1, 0x47ae1458, 0x400eb851, 0xeb851eba}, /* 3.84333=f(-0.16000, v3.84000)*/ +{64, 0,123,__LINE__, 0x400ed2c8, 0x3abd075c, 0xbfc33333, 0x33333310, 0x400ecccc, 0xcccccccf}, /* 3.85292=f(-0.15000, v3.85000)*/ +{64, 0,123,__LINE__, 0x400ee67a, 0x561f9960, 0xbfc1eb85, 0x1eb851c8, 0x400ee147, 0xae147ae4}, /* 3.86253=f(-0.14000, v3.86000)*/ +{64, 0,123,__LINE__, 0x400efa3b, 0x001d4f91, 0xbfc0a3d7, 0x0a3d7080, 0x400ef5c2, 0x8f5c28f8}, /* 3.87218=f(-0.13000, v3.87000)*/ +{64, 0,123,__LINE__, 0x400f0e0a, 0x1cef2eb9, 0xbfbeb851, 0xeb851e71, 0x400f0a3d, 0x70a3d70c}, /* 3.88185=f(-0.12000, v3.88000)*/ +{64, 0,123,__LINE__, 0x400f21e7, 0x9100b63e, 0xbfbc28f5, 0xc28f5be2, 0x400f1eb8, 0x51eb8521}, /* 3.89155=f(-0.11000, v3.89000)*/ +{64, 0,123,__LINE__, 0x400f35d3, 0x40efbf31, 0xbfb99999, 0x99999953, 0x400f3333, 0x33333335}, /* 3.90128=f(-0.00100, v3.90000)*/ +{64, 0,123,__LINE__, 0x400f49cd, 0x118c5972, 0xbfb70a3d, 0x70a3d6c4, 0x400f47ae, 0x147ae14a}, /* 3.91103=f(-0.09000, v3.91000)*/ +{64, 0,123,__LINE__, 0x400f5dd4, 0xe7d8a737, 0xbfb47ae1, 0x47ae1435, 0x400f5c28, 0xf5c28f5e}, /* 3.92081=f(-0.08000, v3.92000)*/ +{64, 0,123,__LINE__, 0x400f71ea, 0xa908b6ca, 0xbfb1eb85, 0x1eb851a6, 0x400f70a3, 0xd70a3d73}, /* 3.93062=f(-0.07000, v3.93000)*/ +{64, 0,123,__LINE__, 0x400f860e, 0x3a825aaf, 0xbfaeb851, 0xeb851e2d, 0x400f851e, 0xb851eb87}, /* 3.94045=f(-0.06000, v3.94000)*/ +{64, 0,123,__LINE__, 0x400f9a3f, 0x81dd003b, 0xbfa99999, 0x9999990e, 0x400f9999, 0x9999999c}, /* 3.95031=f(-0.05000, v3.95000)*/ +{64, 0,123,__LINE__, 0x400fae7e, 0x64e184a0, 0xbfa47ae1, 0x47ae13ef, 0x400fae14, 0x7ae147b0}, /* 3.96020=f(-0.04000, v3.96000)*/ +{64, 0,123,__LINE__, 0x400fc2ca, 0xc98a0883, 0xbf9eb851, 0xeb851da0, 0x400fc28f, 0x5c28f5c5}, /* 3.97011=f(-0.03000, v3.97000)*/ +{64, 0,123,__LINE__, 0x400fd724, 0x9601c231, 0xbf947ae1, 0x47ae1362, 0x400fd70a, 0x3d70a3d9}, /* 3.98005=f(-0.02000, v3.98000)*/ +{64, 0,123,__LINE__, 0x400feb8b, 0xb0a4ce71, 0xbf847ae1, 0x47ae1249, 0x400feb85, 0x1eb851ee}, /* 3.99001=f(-0.00010, v3.99000)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000001, 0x3cd19000, 0x00000000, 0x40100000, 0x00000001}, /* 4.00000=f(9.74915e-16, v4.00000)*/ +{64, 0,123,__LINE__, 0x40100a40, 0xb56856f6, 0x3f847ae1, 0x47ae16ad, 0x40100a3d, 0x70a3d70b}, /* 4.01001=f(0.01000, v4.01000)*/ +{64, 0,123,__LINE__, 0x40101487, 0xec024042, 0x3f947ae1, 0x47ae1594, 0x4010147a, 0xe147ae16}, /* 4.02005=f(0.02000, v4.02000)*/ +{64, 0,123,__LINE__, 0x40101ed5, 0x975c9ea9, 0x3f9eb851, 0xeb851fd2, 0x40101eb8, 0x51eb8520}, /* 4.03011=f(0.03000, v4.03000)*/ +{64, 0,123,__LINE__, 0x40102929, 0xab1e48f0, 0x3fa47ae1, 0x47ae1508, 0x401028f5, 0xc28f5c2a}, /* 4.04019=f(0.04000, v4.04000)*/ +{64, 0,123,__LINE__, 0x40103384, 0x1b05eeb4, 0x3fa99999, 0x99999a27, 0x40103333, 0x33333334}, /* 4.05030=f(0.05000, v4.05000)*/ +{64, 0,123,__LINE__, 0x40103de4, 0xdae9fcca, 0x3faeb851, 0xeb851f46, 0x40103d70, 0xa3d70a3f}, /* 4.06044=f(0.06000, v4.06000)*/ +{64, 0,123,__LINE__, 0x4010484b, 0xdeb8810f, 0x3fb1eb85, 0x1eb85232, 0x401047ae, 0x147ae149}, /* 4.07060=f(0.07000, v4.07000)*/ +{64, 0,123,__LINE__, 0x401052b9, 0x1a770dd9, 0x3fb47ae1, 0x47ae14c1, 0x401051eb, 0x851eb853}, /* 4.08078=f(0.08000, v4.08000)*/ +{64, 0,123,__LINE__, 0x40105d2c, 0x82429ce1, 0x3fb70a3d, 0x70a3d750, 0x40105c28, 0xf5c28f5d}, /* 4.09099=f(0.09000, v4.09000)*/ +{64, 0,123,__LINE__, 0x401067a6, 0x0a4f71c2, 0x3fb99999, 0x999999df, 0x40106666, 0x66666667}, /* 4.10121=f(0.10000, v4.10000)*/ +{64, 0,123,__LINE__, 0x40107225, 0xa6e8fc24, 0x3fbc28f5, 0xc28f5c6e, 0x401070a3, 0xd70a3d72}, /* 4.11147=f(0.11000, v4.11000)*/ +{64, 0,123,__LINE__, 0x40107cab, 0x4c71b962, 0x3fbeb851, 0xeb851efd, 0x40107ae1, 0x47ae147c}, /* 4.12174=f(0.12000, v4.12000)*/ +{64, 0,123,__LINE__, 0x40108736, 0xef6315f9, 0x3fc0a3d7, 0x0a3d70c6, 0x4010851e, 0xb851eb86}, /* 4.13204=f(0.13000, v4.13000)*/ +{64, 0,123,__LINE__, 0x401091c8, 0x844d4e79, 0x3fc1eb85, 0x1eb8520e, 0x40108f5c, 0x28f5c290}, /* 4.14236=f(0.14000, v4.14000)*/ +{64, 0,123,__LINE__, 0x40109c5f, 0xffd75037, 0x3fc33333, 0x33333356, 0x40109999, 0x9999999b}, /* 4.15271=f(0.15000, v4.15000)*/ +{64, 0,123,__LINE__, 0x4010a6fd, 0x56be99ab, 0x3fc47ae1, 0x47ae149e, 0x4010a3d7, 0x0a3d70a5}, /* 4.16307=f(0.16000, v4.16000)*/ +{64, 0,123,__LINE__, 0x4010b1a0, 0x7dd71a7e, 0x3fc5c28f, 0x5c28f5e6, 0x4010ae14, 0x7ae147af}, /* 4.17346=f(0.17000, v4.17000)*/ +{64, 0,123,__LINE__, 0x4010bc49, 0x6a0b1356, 0x3fc70a3d, 0x70a3d72e, 0x4010b851, 0xeb851eb9}, /* 4.18387=f(0.18000, v4.18000)*/ +{64, 0,123,__LINE__, 0x4010c6f8, 0x105af555, 0x3fc851eb, 0x851eb876, 0x4010c28f, 0x5c28f5c4}, /* 4.19430=f(0.19000, v4.19000)*/ +{64, 0,123,__LINE__, 0x4010d1ac, 0x65dd4163, 0x3fc99999, 0x999999be, 0x4010cccc, 0xccccccce}, /* 4.20475=f(0.20000, v4.20000)*/ +{64, 0,123,__LINE__, 0x4010dc66, 0x5fbe673c, 0x3fcae147, 0xae147b06, 0x4010d70a, 0x3d70a3d8}, /* 4.21523=f(0.21000, v4.21000)*/ +{64, 0,123,__LINE__, 0x4010e725, 0xf340a43c, 0x3fcc28f5, 0xc28f5c4e, 0x4010e147, 0xae147ae2}, /* 4.22573=f(0.22000, v4.22000)*/ +{64, 0,123,__LINE__, 0x4010f1eb, 0x15bbe205, 0x3fcd70a3, 0xd70a3d96, 0x4010eb85, 0x1eb851ed}, /* 4.23624=f(0.23000, v4.23000)*/ +{64, 0,123,__LINE__, 0x4010fcb5, 0xbc9d94e5, 0x3fceb851, 0xeb851ede, 0x4010f5c2, 0x8f5c28f7}, /* 4.24678=f(0.24000, v4.24000)*/ +{64, 0,123,__LINE__, 0x40110785, 0xdd689a2a, 0x3fd00000, 0x00000013, 0x40110000, 0x00000001}, /* 4.25734=f(0.25000, v4.25000)*/ +{64, 0,123,__LINE__, 0x4011125b, 0x6db5162a, 0x3fd0a3d7, 0x0a3d70b7, 0x40110a3d, 0x70a3d70b}, /* 4.26792=f(0.26000, v4.26000)*/ +{64, 0,123,__LINE__, 0x40111d36, 0x63305245, 0x3fd147ae, 0x147ae15b, 0x4011147a, 0xe147ae16}, /* 4.27852=f(0.27000, v4.27000)*/ +{64, 0,123,__LINE__, 0x40112816, 0xb39c9aae, 0x3fd1eb85, 0x1eb851ff, 0x40111eb8, 0x51eb8520}, /* 4.28914=f(0.28000, v4.28000)*/ +{64, 0,123,__LINE__, 0x401132fc, 0x54d11c28, 0x3fd28f5c, 0x28f5c2a3, 0x401128f5, 0xc28f5c2a}, /* 4.29979=f(0.29000, v4.29000)*/ +{64, 0,123,__LINE__, 0x40113de7, 0x3cb9c193, 0x3fd33333, 0x33333347, 0x40113333, 0x33333334}, /* 4.31045=f(0.30000, v4.30000)*/ +{64, 0,123,__LINE__, 0x401148d7, 0x61571175, 0x3fd3d70a, 0x3d70a3eb, 0x40113d70, 0xa3d70a3f}, /* 4.32113=f(0.31000, v4.31000)*/ +{64, 0,123,__LINE__, 0x401153cc, 0xb8be0b5a, 0x3fd47ae1, 0x47ae148f, 0x401147ae, 0x147ae149}, /* 4.33183=f(0.32000, v4.32000)*/ +{64, 0,123,__LINE__, 0x40115ec7, 0x3918052f, 0x3fd51eb8, 0x51eb8533, 0x401151eb, 0x851eb853}, /* 4.34255=f(0.33000, v4.33000)*/ +{64, 0,123,__LINE__, 0x401169c6, 0xd8a28886, 0x3fd5c28f, 0x5c28f5d7, 0x40115c28, 0xf5c28f5d}, /* 4.35329=f(0.34000, v4.34000)*/ +{64, 0,123,__LINE__, 0x401174cb, 0x8daf2fce, 0x3fd66666, 0x6666667b, 0x40116666, 0x66666668}, /* 4.36405=f(0.35000, v4.35000)*/ +{64, 0,123,__LINE__, 0x40117fd5, 0x4ea3837a, 0x3fd70a3d, 0x70a3d71f, 0x401170a3, 0xd70a3d72}, /* 4.37483=f(0.36000, v4.36000)*/ +{64, 0,123,__LINE__, 0x40118ae4, 0x11f8d72d, 0x3fd7ae14, 0x7ae147c3, 0x40117ae1, 0x47ae147c}, /* 4.38563=f(0.37000, v4.37000)*/ +{64, 0,123,__LINE__, 0x401195f7, 0xce3c26d8, 0x3fd851eb, 0x851eb867, 0x4011851e, 0xb851eb86}, /* 4.39645=f(0.38000, v4.38000)*/ +{64, 0,123,__LINE__, 0x4011a110, 0x7a0df3cb, 0x3fd8f5c2, 0x8f5c290b, 0x40118f5c, 0x28f5c291}, /* 4.40728=f(0.39000, v4.39000)*/ +{64, 0,123,__LINE__, 0x4011ac2e, 0x0c2221d4, 0x3fd99999, 0x999999af, 0x40119999, 0x9999999b}, /* 4.41814=f(0.40000, v4.40000)*/ +{64, 0,123,__LINE__, 0x4011b750, 0x7b3fd45e, 0x3fda3d70, 0xa3d70a53, 0x4011a3d7, 0x0a3d70a5}, /* 4.42901=f(0.41000, v4.41000)*/ +{64, 0,123,__LINE__, 0x4011c277, 0xbe414b82, 0x3fdae147, 0xae147af7, 0x4011ae14, 0x7ae147af}, /* 4.43991=f(0.42000, v4.42000)*/ +{64, 0,123,__LINE__, 0x4011cda3, 0xcc13c135, 0x3fdb851e, 0xb851eb9b, 0x4011b851, 0xeb851eba}, /* 4.45082=f(0.43000, v4.43000)*/ +{64, 0,123,__LINE__, 0x4011d8d4, 0x9bb74665, 0x3fdc28f5, 0xc28f5c3f, 0x4011c28f, 0x5c28f5c4}, /* 4.46174=f(0.44000, v4.44000)*/ +{64, 0,123,__LINE__, 0x4011e40a, 0x243ea034, 0x3fdccccc, 0xcccccce3, 0x4011cccc, 0xccccccce}, /* 4.47269=f(0.45000, v4.45000)*/ +{64, 0,123,__LINE__, 0x4011ef44, 0x5ccf2533, 0x3fdd70a3, 0xd70a3d87, 0x4011d70a, 0x3d70a3d8}, /* 4.48365=f(0.46000, v4.46000)*/ +{64, 0,123,__LINE__, 0x4011fa83, 0x3ca09aab, 0x3fde147a, 0xe147ae2b, 0x4011e147, 0xae147ae3}, /* 4.49464=f(0.47000, v4.47000)*/ +{64, 0,123,__LINE__, 0x401205c6, 0xbafd11f0, 0x3fdeb851, 0xeb851ecf, 0x4011eb85, 0x1eb851ed}, /* 4.50564=f(0.48000, v4.48000)*/ +{64, 0,123,__LINE__, 0x4012110e, 0xcf40c5d8, 0x3fdf5c28, 0xf5c28f73, 0x4011f5c2, 0x8f5c28f7}, /* 4.51665=f(0.49000, v4.49000)*/ +{64, 0,123,__LINE__, 0x40121c5b, 0x70d9f825, 0x3fe00000, 0x0000000b, 0x40120000, 0x00000001}, /* 4.52769=f(0.50000, v4.50000)*/ +{64, 0,123,__LINE__, 0x401227ac, 0x9748cf1f, 0x3fe051eb, 0x851eb85d, 0x40120a3d, 0x70a3d70c}, /* 4.53874=f(0.51000, v4.51000)*/ +{64, 0,123,__LINE__, 0x40123302, 0x3a1f3332, 0x3fe0a3d7, 0x0a3d70af, 0x4012147a, 0xe147ae16}, /* 4.54981=f(0.52000, v4.52000)*/ +{64, 0,123,__LINE__, 0x40123e5c, 0x5100aca5, 0x3fe0f5c2, 0x8f5c2901, 0x40121eb8, 0x51eb8520}, /* 4.56089=f(0.53000, v4.53000)*/ +{64, 0,123,__LINE__, 0x401249ba, 0xd3a24176, 0x3fe147ae, 0x147ae153, 0x401228f5, 0xc28f5c2a}, /* 4.57200=f(0.54000, v4.54000)*/ +{64, 0,123,__LINE__, 0x4012551d, 0xb9ca533b, 0x3fe19999, 0x999999a5, 0x40123333, 0x33333335}, /* 4.58312=f(0.55000, v4.55000)*/ +{64, 0,123,__LINE__, 0x40126084, 0xfb507d2b, 0x3fe1eb85, 0x1eb851f7, 0x40123d70, 0xa3d70a3f}, /* 4.59425=f(0.56000, v4.56000)*/ +{64, 0,123,__LINE__, 0x40126bf0, 0x901d723f, 0x3fe23d70, 0xa3d70a49, 0x401247ae, 0x147ae149}, /* 4.60541=f(0.57000, v4.57000)*/ +{64, 0,123,__LINE__, 0x40127760, 0x702adb74, 0x3fe28f5c, 0x28f5c29b, 0x401251eb, 0x851eb853}, /* 4.61657=f(0.58000, v4.58000)*/ +{64, 0,123,__LINE__, 0x401282d4, 0x93833623, 0x3fe2e147, 0xae147aed, 0x40125c28, 0xf5c28f5e}, /* 4.62776=f(0.59000, v4.59000)*/ +{64, 0,123,__LINE__, 0x40128e4c, 0xf241b283, 0x3fe33333, 0x3333333f, 0x40126666, 0x66666668}, /* 4.63896=f(0.60000, v4.60000)*/ +{64, 0,123,__LINE__, 0x401299c9, 0x8492123e, 0x3fe3851e, 0xb851eb91, 0x401270a3, 0xd70a3d72}, /* 4.65018=f(0.61000, v4.61000)*/ +{64, 0,123,__LINE__, 0x4012a54a, 0x42b0873f, 0x3fe3d70a, 0x3d70a3e3, 0x40127ae1, 0x47ae147c}, /* 4.66141=f(0.62000, v4.62000)*/ +{64, 0,123,__LINE__, 0x4012b0cf, 0x24e9927f, 0x3fe428f5, 0xc28f5c35, 0x4012851e, 0xb851eb87}, /* 4.67266=f(0.63000, v4.63000)*/ +{64, 0,123,__LINE__, 0x4012bc58, 0x2399e319, 0x3fe47ae1, 0x47ae1487, 0x40128f5c, 0x28f5c291}, /* 4.68393=f(0.64000, v4.64000)*/ +{64, 0,123,__LINE__, 0x4012c7e5, 0x372e356d, 0x3fe4cccc, 0xccccccd9, 0x40129999, 0x9999999b}, /* 4.69521=f(0.65000, v4.65000)*/ +{64, 0,123,__LINE__, 0x4012d376, 0x58233271, 0x3fe51eb8, 0x51eb852b, 0x4012a3d7, 0x0a3d70a5}, /* 4.70650=f(0.66000, v4.66000)*/ +{64, 0,123,__LINE__, 0x4012df0b, 0x7f054f26, 0x3fe570a3, 0xd70a3d7d, 0x4012ae14, 0x7ae147b0}, /* 4.71781=f(0.67000, v4.67000)*/ +{64, 0,123,__LINE__, 0x4012eaa4, 0xa470ac2e, 0x3fe5c28f, 0x5c28f5cf, 0x4012b851, 0xeb851eba}, /* 4.72914=f(0.68000, v4.68000)*/ +{64, 0,123,__LINE__, 0x4012f641, 0xc110f597, 0x3fe6147a, 0xe147ae21, 0x4012c28f, 0x5c28f5c4}, /* 4.74048=f(0.69000, v4.69000)*/ +{64, 0,123,__LINE__, 0x401301e2, 0xcda142c4, 0x3fe66666, 0x66666673, 0x4012cccc, 0xccccccce}, /* 4.75184=f(0.70000, v4.70000)*/ +{64, 0,123,__LINE__, 0x40130d87, 0xc2ebf680, 0x3fe6b851, 0xeb851ec5, 0x4012d70a, 0x3d70a3d9}, /* 4.76321=f(0.71000, v4.71000)*/ +{64, 0,123,__LINE__, 0x40131930, 0x99ca9f40, 0x3fe70a3d, 0x70a3d717, 0x4012e147, 0xae147ae3}, /* 4.77459=f(0.72000, v4.72000)*/ +{64, 0,123,__LINE__, 0x401324dd, 0x4b25d789, 0x3fe75c28, 0xf5c28f69, 0x4012eb85, 0x1eb851ed}, /* 4.78600=f(0.73000, v4.73000)*/ +{64, 0,123,__LINE__, 0x4013308d, 0xcff52686, 0x3fe7ae14, 0x7ae147bb, 0x4012f5c2, 0x8f5c28f7}, /* 4.79741=f(0.74000, v4.74000)*/ +{64, 0,123,__LINE__, 0x40133c42, 0x213ee0cb, 0x3fe80000, 0x0000000d, 0x40130000, 0x00000002}, /* 4.80884=f(0.75000, v4.75000)*/ +{64, 0,123,__LINE__, 0x401347fa, 0x3818093b, 0x3fe851eb, 0x851eb85f, 0x40130a3d, 0x70a3d70c}, /* 4.82029=f(0.76000, v4.76000)*/ +{64, 0,123,__LINE__, 0x401353b6, 0x0da4321e, 0x3fe8a3d7, 0x0a3d70b1, 0x4013147a, 0xe147ae16}, /* 4.83174=f(0.77000, v4.77000)*/ +{64, 0,123,__LINE__, 0x40135f75, 0x9b155e78, 0x3fe8f5c2, 0x8f5c2903, 0x40131eb8, 0x51eb8520}, /* 4.84322=f(0.78000, v4.78000)*/ +{64, 0,123,__LINE__, 0x40136b38, 0xd9abe366, 0x3fe947ae, 0x147ae155, 0x401328f5, 0xc28f5c2b}, /* 4.85470=f(0.79000, v4.79000)*/ +{64, 0,123,__LINE__, 0x401376ff, 0xc2b649ca, 0x3fe99999, 0x999999a7, 0x40133333, 0x33333335}, /* 4.86621=f(0.80000, v4.80000)*/ +{64, 0,123,__LINE__, 0x401382ca, 0x4f91301a, 0x3fe9eb85, 0x1eb851f9, 0x40133d70, 0xa3d70a3f}, /* 4.87772=f(0.81000, v4.81000)*/ +{64, 0,123,__LINE__, 0x40138e98, 0x79a72c60, 0x3fea3d70, 0xa3d70a4b, 0x401347ae, 0x147ae149}, /* 4.88925=f(0.82000, v4.82000)*/ +{64, 0,123,__LINE__, 0x40139a6a, 0x3a70ae62, 0x3fea8f5c, 0x28f5c29d, 0x401351eb, 0x851eb854}, /* 4.90079=f(0.83000, v4.83000)*/ +{64, 0,123,__LINE__, 0x4013a63f, 0x8b73e1fe, 0x3feae147, 0xae147aef, 0x40135c28, 0xf5c28f5e}, /* 4.91235=f(0.84000, v4.84000)*/ +{64, 0,123,__LINE__, 0x4013b218, 0x664491bb, 0x3feb3333, 0x33333341, 0x40136666, 0x66666668}, /* 4.92392=f(0.85000, v4.85000)*/ +{64, 0,123,__LINE__, 0x4013bdf4, 0xc4840985, 0x3feb851e, 0xb851eb93, 0x401370a3, 0xd70a3d72}, /* 4.93550=f(0.86000, v4.86000)*/ +{64, 0,123,__LINE__, 0x4013c9d4, 0x9fe0f996, 0x3febd70a, 0x3d70a3e5, 0x40137ae1, 0x47ae147d}, /* 4.94710=f(0.87000, v4.87000)*/ +{64, 0,123,__LINE__, 0x4013d5b7, 0xf217598f, 0x3fec28f5, 0xc28f5c37, 0x4013851e, 0xb851eb87}, /* 4.95871=f(0.88000, v4.88000)*/ +{64, 0,123,__LINE__, 0x4013e19e, 0xb4f04bcd, 0x3fec7ae1, 0x47ae1489, 0x40138f5c, 0x28f5c291}, /* 4.97033=f(0.89000, v4.89000)*/ +{64, 0,123,__LINE__, 0x4013ed88, 0xe24200e3, 0x3feccccc, 0xccccccdb, 0x40139999, 0x9999999b}, /* 4.98196=f(0.90000, v4.90000)*/ +{64, 0,123,__LINE__, 0x4013f976, 0x73ef9b4a, 0x3fed1eb8, 0x51eb852d, 0x4013a3d7, 0x0a3d70a6}, /* 4.99361=f(0.91000, v4.91000)*/ +{64, 0,123,__LINE__, 0x40140567, 0x63e91341, 0x3fed70a3, 0xd70a3d7f, 0x4013ae14, 0x7ae147b0}, /* 5.00527=f(0.92000, v4.92000)*/ +{64, 0,123,__LINE__, 0x4014115b, 0xac2b1ada, 0x3fedc28f, 0x5c28f5d1, 0x4013b851, 0xeb851eba}, /* 5.01695=f(0.93000, v4.93000)*/ +{64, 0,123,__LINE__, 0x40141d53, 0x46bf0244, 0x3fee147a, 0xe147ae23, 0x4013c28f, 0x5c28f5c4}, /* 5.02863=f(0.94000, v4.94000)*/ +{64, 0,123,__LINE__, 0x4014294e, 0x2dba9c39, 0x3fee6666, 0x66666675, 0x4013cccc, 0xcccccccf}, /* 5.04033=f(0.95000, v4.95000)*/ +{64, 0,123,__LINE__, 0x4014354c, 0x5b4022a5, 0x3feeb851, 0xeb851ec7, 0x4013d70a, 0x3d70a3d9}, /* 5.05204=f(0.96000, v4.96000)*/ +{64, 0,123,__LINE__, 0x4014414d, 0xc97e1b81, 0x3fef0a3d, 0x70a3d719, 0x4013e147, 0xae147ae3}, /* 5.06377=f(0.97000, v4.97000)*/ +{64, 0,123,__LINE__, 0x40144d52, 0x72af3dd4, 0x3fef5c28, 0xf5c28f6b, 0x4013eb85, 0x1eb851ed}, /* 5.07551=f(0.98000, v4.98000)*/ +{64, 0,123,__LINE__, 0x4014595a, 0x511a56f7, 0x3fefae14, 0x7ae147bd, 0x4013f5c2, 0x8f5c28f8}, /* 5.08725=f(0.99000, v4.99000)*/ +{64, 0,123,__LINE__, 0x40146565, 0x5f122ff9, 0x3ff00000, 0x00000007, 0x40140000, 0x00000002}, /* 5.09902=f(1.00000, v5.00000)*/ +{64, 0,123,__LINE__, 0x40147173, 0x96f57340, 0x3ff028f5, 0xc28f5c30, 0x40140a3d, 0x70a3d70c}, /* 5.11079=f(1.01000, v5.01000)*/ +{64, 0,123,__LINE__, 0x40147d84, 0xf32e9258, 0x3ff051eb, 0x851eb859, 0x4014147a, 0xe147ae16}, /* 5.12257=f(1.02000, v5.02000)*/ +{64, 0,123,__LINE__, 0x40148999, 0x6e33abf8, 0x3ff07ae1, 0x47ae1482, 0x40141eb8, 0x51eb8520}, /* 5.13437=f(1.03000, v5.03000)*/ +{64, 0,123,__LINE__, 0x401495b1, 0x0286722e, 0x3ff0a3d7, 0x0a3d70ab, 0x401428f5, 0xc28f5c2b}, /* 5.14618=f(1.04000, v5.04000)*/ +{64, 0,123,__LINE__, 0x4014a1cb, 0xaab410cb, 0x3ff0cccc, 0xccccccd4, 0x40143333, 0x33333335}, /* 5.15800=f(1.05000, v5.05000)*/ +{64, 0,123,__LINE__, 0x4014ade9, 0x615513ec, 0x3ff0f5c2, 0x8f5c28fd, 0x40143d70, 0xa3d70a3f}, /* 5.16983=f(1.06000, v5.06000)*/ +{64, 0,123,__LINE__, 0x4014ba0a, 0x210d4ed5, 0x3ff11eb8, 0x51eb8526, 0x401447ae, 0x147ae14a}, /* 5.18167=f(1.07000, v5.07000)*/ +{64, 0,123,__LINE__, 0x4014c62d, 0xe48bc2d8, 0x3ff147ae, 0x147ae14f, 0x401451eb, 0x851eb854}, /* 5.19353=f(1.08000, v5.08000)*/ +{64, 0,123,__LINE__, 0x4014d254, 0xa68a8688, 0x3ff170a3, 0xd70a3d78, 0x40145c28, 0xf5c28f5e}, /* 5.20540=f(1.09000, v5.09000)*/ +{64, 0,123,__LINE__, 0x4014de7e, 0x61cead12, 0x3ff19999, 0x999999a1, 0x40146666, 0x66666668}, /* 5.21727=f(1.10000, v5.10000)*/ +{64, 0,123,__LINE__, 0x4014eaab, 0x11282dcb, 0x3ff1c28f, 0x5c28f5ca, 0x401470a3, 0xd70a3d72}, /* 5.22916=f(1.11000, v5.11000)*/ +{64, 0,123,__LINE__, 0x4014f6da, 0xaf71cbeb, 0x3ff1eb85, 0x1eb851f3, 0x40147ae1, 0x47ae147d}, /* 5.24106=f(1.12000, v5.12000)*/ +{64, 0,123,__LINE__, 0x4015030d, 0x3790fe78, 0x3ff2147a, 0xe147ae1c, 0x4014851e, 0xb851eb87}, /* 5.25298=f(1.13000, v5.13000)*/ +{64, 0,123,__LINE__, 0x40150f42, 0xa475d871, 0x3ff23d70, 0xa3d70a45, 0x40148f5c, 0x28f5c291}, /* 5.26490=f(1.14000, v5.14000)*/ +{64, 0,123,__LINE__, 0x40151b7a, 0xf11af10e, 0x3ff26666, 0x6666666e, 0x40149999, 0x9999999c}, /* 5.27683=f(1.15000, v5.15000)*/ +{64, 0,123,__LINE__, 0x401527b6, 0x18854c4a, 0x3ff28f5c, 0x28f5c297, 0x4014a3d7, 0x0a3d70a6}, /* 5.28878=f(1.16000, v5.16000)*/ +{64, 0,123,__LINE__, 0x401533f4, 0x15c4438f, 0x3ff2b851, 0xeb851ec0, 0x4014ae14, 0x7ae147b0}, /* 5.30073=f(1.17000, v5.17000)*/ +{64, 0,123,__LINE__, 0x40154034, 0xe3f16e96, 0x3ff2e147, 0xae147ae9, 0x4014b851, 0xeb851eba}, /* 5.31270=f(1.18000, v5.18000)*/ +{64, 0,123,__LINE__, 0x40154c78, 0x7e308c7d, 0x3ff30a3d, 0x70a3d712, 0x4014c28f, 0x5c28f5c4}, /* 5.32467=f(1.19000, v5.19000)*/ +{64, 0,123,__LINE__, 0x401abd9a, 0x5baa74cf, 0xc01921fb, 0x54442d18, 0xc00243f6, 0xa8885a30}, /* 6.68515=f(-6.28318, v-2.28318)*/ +{64, 0,123,__LINE__, 0x40131050, 0x7b5bea4a, 0xc012d97c, 0x7f3321d2, 0xbfe6cbe3, 0xf9990e90}, /* 4.76593=f(-4.71238, v-0.71238)*/ +{64, 0,123,__LINE__, 0x400a0dd6, 0xba5fede8, 0xc00921fb, 0x54442d18, 0x3feb7812, 0xaeef4ba0}, /* 3.25675=f(-3.14159, v0.85840)*/ +{64, 0,123,__LINE__, 0x40072480, 0xfd75602a, 0xbff921fb, 0x54442d18, 0x40036f02, 0x55dde974}, /* 2.89282=f(-1.57079, v2.42920)*/ +{64, 0,123,__LINE__, 0x40100000, 0x00000000, 0x00000000, 0x00000000, 0x40100000, 0x00000000}, /* 4.00000=f(0.00000, v4.00000)*/ +{64, 0,123,__LINE__, 0x401726ee, 0xa7532df8, 0x3ff921fb, 0x54442d18, 0x4016487e, 0xd5110b46}, /* 5.78802=f(1.57079, v5.57079)*/ +{64, 0,123,__LINE__, 0x401f354c, 0x05689f98, 0x400921fb, 0x54442d18, 0x401c90fd, 0xaa22168c}, /* 7.80204=f(3.14159, v7.14159)*/ +{64, 0,123,__LINE__, 0x4023cf72, 0x09c16bf4, 0x4012d97c, 0x7f3321d2, 0x40216cbe, 0x3f9990e9}, /* 9.90516=f(4.71238, v8.71238)*/ +{64, 0,123,__LINE__, 0x4043d974, 0x74f76df3, 0xc03e0000, 0x00000000, 0xc03a0000, 0x00000000}, /* 39.6988=f(-30.0000, v-26.0000)*/ +{64, 0,123,__LINE__, 0x4042a68d, 0xee8a7839, 0xc03c4ccc, 0xcccccccd, 0xc0384ccc, 0xcccccccd}, /* 37.3012=f(-28.3000, v-24.3000)*/ +{64, 0,123,__LINE__, 0x404173c4, 0xb8d33ee7, 0xc03a9999, 0x9999999a, 0xc0369999, 0x9999999a}, /* 34.9044=f(-26.6000, v-22.6000)*/ +{64, 0,123,__LINE__, 0x4040411f, 0x4fb7bfbb, 0xc038e666, 0x66666667, 0xc034e666, 0x66666667}, /* 32.5087=f(-24.9000, v-20.9000)*/ +{64, 0,123,__LINE__, 0x403e1d4c, 0x7cd9590e, 0xc0373333, 0x33333334, 0xc0333333, 0x33333334}, /* 30.1144=f(-23.2000, v-19.2000)*/ +{64, 0,123,__LINE__, 0x403bb8ca, 0x04a0d7a3, 0xc0358000, 0x00000001, 0xc0318000, 0x00000001}, /* 27.7218=f(-21.5000, v-17.5000)*/ +{64, 0,123,__LINE__, 0x403954d6, 0xdb043b69, 0xc033cccc, 0xccccccce, 0xc02f9999, 0x9999999c}, /* 25.3314=f(-19.8000, v-15.8000)*/ +{64, 0,123,__LINE__, 0x4036f19f, 0xcae2cf4d, 0xc0321999, 0x9999999b, 0xc02c3333, 0x33333336}, /* 22.9438=f(-18.1000, v-14.1000)*/ +{64, 0,123,__LINE__, 0x40348f66, 0x5c30a146, 0xc0306666, 0x66666668, 0xc028cccc, 0xccccccd0}, /* 20.5601=f(-16.4000, v-12.4000)*/ +{64, 0,123,__LINE__, 0x40322e8e, 0x513fbcba, 0xc02d6666, 0x6666666a, 0xc0256666, 0x6666666a}, /* 18.1818=f(-14.7000, v-10.7000)*/ +{64, 0,123,__LINE__, 0x402f9f6e, 0x4990f22e, 0xc02a0000, 0x00000004, 0xc0220000, 0x00000004}, /* 15.8113=f(-13.0000, v-9.00000)*/ +{64, 0,123,__LINE__, 0x402ae7df, 0xfbbd3c68, 0xc0269999, 0x9999999e, 0xc01d3333, 0x3333333c}, /* 13.4528=f(-11.3000, v-7.30000)*/ +{64, 0,123,__LINE__, 0x40263a58, 0x55b9eb02, 0xc0233333, 0x33333338, 0xc0166666, 0x66666670}, /* 11.1139=f(-9.60000, v-5.60000)*/ +{64, 0,123,__LINE__, 0x40219ed5, 0x54be7e97, 0xc01f9999, 0x999999a3, 0xc00f3333, 0x33333346}, /* 8.81022=f(-7.90000, v-3.90000)*/ +{64, 0,123,__LINE__, 0x401a50a4, 0xce178365, 0xc018cccc, 0xccccccd6, 0xc0019999, 0x999999ac}, /* 6.57875=f(-6.20000, v-2.20000)*/ +{64, 0,123,__LINE__, 0x40121c5b, 0x70d9f82e, 0xc0120000, 0x00000009, 0xbfe00000, 0x00000048}, /* 4.52769=f(-4.50000, v-0.50000)*/ +{64, 0,123,__LINE__, 0x40085ed7, 0x614b0396, 0xc0066666, 0x66666678, 0x3ff33333, 0x33333310}, /* 3.04630=f(-2.80000, v1.20000)*/ +{64, 0,123,__LINE__, 0x4008d01a, 0x34b826cc, 0xbff19999, 0x999999bd, 0x40073333, 0x33333322}, /* 3.10161=f(-1.10000, v2.90000)*/ +{64, 0,123,__LINE__, 0x40128e4c, 0xf241b277, 0x3fe33333, 0x333332ec, 0x40126666, 0x6666665e}, /* 4.63896=f(0.60000, v4.60000)*/ +{64, 0,123,__LINE__, 0x401ad3ac, 0x9648d35c, 0x40026666, 0x66666654, 0x40193333, 0x3333332a}, /* 6.70671=f(2.30000, v6.30000)*/ +{64, 0,123,__LINE__, 0x4021e377, 0x9b97f4a2, 0x400fffff, 0xffffffee, 0x401fffff, 0xfffffff7}, /* 8.94427=f(4.00000, v8.00000)*/ +{64, 0,123,__LINE__, 0x40268065, 0xf0fd4dcb, 0x4016cccc, 0xccccccc4, 0x40236666, 0x66666662}, /* 11.2507=f(5.70000, v9.70000)*/ +{64, 0,123,__LINE__, 0x402b2eae, 0x4e93b66e, 0x401d9999, 0x99999991, 0x4026cccc, 0xccccccc8}, /* 13.5911=f(7.40000, v11.4000)*/ +{64, 0,123,__LINE__, 0x402fe6ae, 0x4dafed3f, 0x40223333, 0x3333332f, 0x402a3333, 0x3333332f}, /* 15.9505=f(9.10000, v13.1000)*/ +{64, 0,123,__LINE__, 0x40325252, 0x8aa6b462, 0x40259999, 0x99999995, 0x402d9999, 0x99999995}, /* 18.3215=f(10.8000, v14.8000)*/ +{64, 0,123,__LINE__, 0x4034b343, 0x07a4dc77, 0x4028ffff, 0xfffffffb, 0x40307fff, 0xfffffffe}, /* 20.7002=f(12.5000, v16.5000)*/ +{64, 0,123,__LINE__, 0x4037158d, 0xb8559b09, 0x402c6666, 0x66666661, 0x40323333, 0x33333330}, /* 23.0841=f(14.2000, v18.2000)*/ +{64, 0,123,__LINE__, 0x403978d1, 0x691b0d28, 0x402fcccc, 0xccccccc7, 0x4033e666, 0x66666664}, /* 25.4719=f(15.9000, v19.9000)*/ +{64, 0,123,__LINE__, 0x403bdcce, 0x1618d2df, 0x40319999, 0x99999997, 0x40359999, 0x99999997}, /* 27.8625=f(17.6000, v21.6000)*/ +{64, 0,123,__LINE__, 0x403e4157, 0xe61596b4, 0x40334ccc, 0xccccccca, 0x40374ccc, 0xccccccca}, /* 30.2552=f(19.3000, v23.3000)*/ +{64, 0,123,__LINE__, 0x40405327, 0xe8c6b33b, 0x4034ffff, 0xfffffffd, 0x4038ffff, 0xfffffffd}, /* 32.6496=f(21.0000, v25.0000)*/ +{64, 0,123,__LINE__, 0x404185cf, 0xa37bc33d, 0x4036b333, 0x33333330, 0x403ab333, 0x33333330}, /* 35.0453=f(22.7000, v26.7000)*/ +{64, 0,123,__LINE__, 0x4042b89a, 0xbc51635c, 0x40386666, 0x66666663, 0x403c6666, 0x66666663}, /* 37.4422=f(24.4000, v28.4000)*/ +{64, 0,123,__LINE__, 0x4043eb82, 0xd1289f07, 0x403a1999, 0x99999996, 0x403e1999, 0x99999996}, /* 39.8399=f(26.1000, v30.1000)*/ +{64, 0,123,__LINE__, 0x40451e82, 0xf264be59, 0x403bcccc, 0xccccccc9, 0x403fcccc, 0xccccccc9}, /* 42.2383=f(27.8000, v31.8000)*/ +{64, 0,123,__LINE__, 0x40465197, 0x3fa50845, 0x403d7fff, 0xfffffffc, 0x4040bfff, 0xfffffffe}, /* 44.6374=f(29.5000, v33.5000)*/ +0,}; +test_hypot(m) {run_vector_1(m,hypot_vec,(char *)(hypot),"hypot","ddd"); } diff --git a/newlib/libm/test/hypotf_vec.c b/newlib/libm/test/hypotf_vec.c new file mode 100644 index 000000000..833f05efe --- /dev/null +++ b/newlib/libm/test/hypotf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type hypotf_vec[] = { +{ 1, 0,123,__LINE__, 0x40085ed7, 0x6c3cac80, 0xbff33333, 0x33333333, 0x40066666, 0x66666666}, /* 3.04630=f(-1.20000, v2.80000)*/ +{ 1, 0,123,__LINE__, 0x400869a7, 0xc0f09100, 0xbff30a3d, 0x70a3d70a, 0x40067ae1, 0x47ae147b}, /* 3.05158=f(-1.19000, v2.81000)*/ +{ 1, 0,123,__LINE__, 0x40087495, 0xc5f79b40, 0xbff2e147, 0xae147ae1, 0x40068f5c, 0x28f5c290}, /* 3.05692=f(-1.18000, v2.82000)*/ +{ 1, 0,123,__LINE__, 0x40087fa1, 0x4ff59a00, 0xbff2b851, 0xeb851eb8, 0x4006a3d7, 0x0a3d70a4}, /* 3.06231=f(-1.17000, v2.83000)*/ +{ 1, 0,123,__LINE__, 0x40088ac9, 0xd61db880, 0xbff28f5c, 0x28f5c28f, 0x4006b851, 0xeb851eb8}, /* 3.06776=f(-1.16000, v2.84000)*/ +{ 1, 0,123,__LINE__, 0x4008960f, 0x82327e00, 0xbff26666, 0x66666666, 0x4006cccc, 0xcccccccd}, /* 3.07327=f(-1.15000, v2.85000)*/ +{ 1, 0,123,__LINE__, 0x4008a172, 0x2129a540, 0xbff23d70, 0xa3d70a3d, 0x4006e147, 0xae147ae2}, /* 3.07883=f(-1.14000, v2.86000)*/ +{ 1, 0,123,__LINE__, 0x4008acf1, 0x4f7e0800, 0xbff2147a, 0xe147ae14, 0x4006f5c2, 0x8f5c28f6}, /* 3.08444=f(-1.13000, v2.87000)*/ +{ 1, 0,123,__LINE__, 0x4008b88d, 0x530a6500, 0xbff1eb85, 0x1eb851eb, 0x40070a3d, 0x70a3d70a}, /* 3.09011=f(-1.12000, v2.88000)*/ +{ 1, 0,123,__LINE__, 0x4008c445, 0xacd7c380, 0xbff1c28f, 0x5c28f5c2, 0x40071eb8, 0x51eb851f}, /* 3.09583=f(-1.11000, v2.89000)*/ +{ 1, 0,123,__LINE__, 0x4008d01a, 0x427d6880, 0xbff19999, 0x99999999, 0x40073333, 0x33333334}, /* 3.10161=f(-1.10000, v2.90000)*/ +{ 1, 0,123,__LINE__, 0x4008dc0b, 0x032e7f40, 0xbff170a3, 0xd70a3d70, 0x400747ae, 0x147ae148}, /* 3.10744=f(-1.09000, v2.91000)*/ +{ 1, 0,123,__LINE__, 0x4008e817, 0xad7a5c00, 0xbff147ae, 0x147ae147, 0x40075c28, 0xf5c28f5c}, /* 3.11332=f(-1.08000, v2.92000)*/ +{ 1, 0,123,__LINE__, 0x4008f43f, 0xfd60f700, 0xbff11eb8, 0x51eb851e, 0x400770a3, 0xd70a3d71}, /* 3.11926=f(-1.07000, v2.93000)*/ +{ 1, 0,123,__LINE__, 0x40090084, 0x3971a500, 0xbff0f5c2, 0x8f5c28f5, 0x4007851e, 0xb851eb86}, /* 3.12525=f(-1.06000, v2.94000)*/ +{ 1, 0,123,__LINE__, 0x40090ce3, 0xbb97e380, 0xbff0cccc, 0xcccccccc, 0x40079999, 0x9999999a}, /* 3.13129=f(-1.05000, v2.95000)*/ +{ 1, 0,123,__LINE__, 0x4009195e, 0x9758ca00, 0xbff0a3d7, 0x0a3d70a3, 0x4007ae14, 0x7ae147ae}, /* 3.13738=f(-1.04000, v2.96000)*/ +{ 1, 0,123,__LINE__, 0x400925f4, 0xaf6ca340, 0xbff07ae1, 0x47ae147a, 0x4007c28f, 0x5c28f5c3}, /* 3.14353=f(-1.03000, v2.97000)*/ +{ 1, 0,123,__LINE__, 0x400932a5, 0xb4f22080, 0xbff051eb, 0x851eb851, 0x4007d70a, 0x3d70a3d8}, /* 3.14973=f(-1.02000, v2.98000)*/ +{ 1, 0,123,__LINE__, 0x40093f71, 0xb626ab80, 0xbff028f5, 0xc28f5c28, 0x4007eb85, 0x1eb851ec}, /* 3.15597=f(-1.01000, v2.99000)*/ +{ 1, 0,123,__LINE__, 0x40094c58, 0x30000000, 0xbfefffff, 0xfffffffe, 0x40080000, 0x00000000}, /* 3.16227=f(-0.01000, v3.00000)*/ +{ 1, 0,123,__LINE__, 0x40095959, 0x5ce47dc0, 0xbfefae14, 0x7ae147ac, 0x4008147a, 0xe147ae15}, /* 3.16862=f(-0.99000, v3.01000)*/ +{ 1, 0,123,__LINE__, 0x40096674, 0xe5a0eb00, 0xbfef5c28, 0xf5c28f5a, 0x400828f5, 0xc28f5c2a}, /* 3.17502=f(-0.98000, v3.02000)*/ +{ 1, 0,123,__LINE__, 0x400973aa, 0x7072b200, 0xbfef0a3d, 0x70a3d708, 0x40083d70, 0xa3d70a3e}, /* 3.18147=f(-0.97000, v3.03000)*/ +{ 1, 0,123,__LINE__, 0x400980fa, 0x32f36600, 0xbfeeb851, 0xeb851eb6, 0x400851eb, 0x851eb852}, /* 3.18797=f(-0.96000, v3.04000)*/ +{ 1, 0,123,__LINE__, 0x40098e64, 0x007f29c0, 0xbfee6666, 0x66666664, 0x40086666, 0x66666667}, /* 3.19452=f(-0.95000, v3.05000)*/ +{ 1, 0,123,__LINE__, 0x40099be7, 0x489b1600, 0xbfee147a, 0xe147ae12, 0x40087ae1, 0x47ae147c}, /* 3.20112=f(-0.94000, v3.06000)*/ +{ 1, 0,123,__LINE__, 0x4009a984, 0x3c13f180, 0xbfedc28f, 0x5c28f5c0, 0x40088f5c, 0x28f5c290}, /* 3.20777=f(-0.93000, v3.07000)*/ +{ 1, 0,123,__LINE__, 0x4009b73a, 0x773ba200, 0xbfed70a3, 0xd70a3d6e, 0x4008a3d7, 0x0a3d70a4}, /* 3.21446=f(-0.92000, v3.08000)*/ +{ 1, 0,123,__LINE__, 0x4009c50a, 0x28269c80, 0xbfed1eb8, 0x51eb851c, 0x4008b851, 0xeb851eb9}, /* 3.22121=f(-0.91000, v3.09000)*/ +{ 1, 0,123,__LINE__, 0x4009d2f2, 0xe778b280, 0xbfeccccc, 0xccccccca, 0x4008cccc, 0xccccccce}, /* 3.22800=f(-0.90000, v3.10000)*/ +{ 1, 0,123,__LINE__, 0x4009e0f4, 0x7d08e8c0, 0xbfec7ae1, 0x47ae1478, 0x4008e147, 0xae147ae2}, /* 3.23484=f(-0.89000, v3.11000)*/ +{ 1, 0,123,__LINE__, 0x4009ef0e, 0xe0ae4400, 0xbfec28f5, 0xc28f5c26, 0x4008f5c2, 0x8f5c28f6}, /* 3.24172=f(-0.88000, v3.12000)*/ +{ 1, 0,123,__LINE__, 0x4009fd42, 0x2a2eac00, 0xbfebd70a, 0x3d70a3d4, 0x40090a3d, 0x70a3d70b}, /* 3.24866=f(-0.87000, v3.13000)*/ +{ 1, 0,123,__LINE__, 0x400a0b8d, 0xa7e0e840, 0xbfeb851e, 0xb851eb82, 0x40091eb8, 0x51eb8520}, /* 3.25564=f(-0.86000, v3.14000)*/ +{ 1, 0,123,__LINE__, 0x400a19f1, 0xa0753400, 0xbfeb3333, 0x33333330, 0x40093333, 0x33333334}, /* 3.26266=f(-0.85000, v3.15000)*/ +{ 1, 0,123,__LINE__, 0x400a286d, 0xa10a41c0, 0xbfeae147, 0xae147ade, 0x400947ae, 0x147ae148}, /* 3.26974=f(-0.84000, v3.16000)*/ +{ 1, 0,123,__LINE__, 0x400a3701, 0x66e7ba00, 0xbfea8f5c, 0x28f5c28c, 0x40095c28, 0xf5c28f5d}, /* 3.27685=f(-0.83000, v3.17000)*/ +{ 1, 0,123,__LINE__, 0x400a45ad, 0x460d9780, 0xbfea3d70, 0xa3d70a3a, 0x400970a3, 0xd70a3d72}, /* 3.28402=f(-0.82000, v3.18000)*/ +{ 1, 0,123,__LINE__, 0x400a5470, 0xc652df00, 0xbfe9eb85, 0x1eb851e8, 0x4009851e, 0xb851eb86}, /* 3.29123=f(-0.81000, v3.19000)*/ +{ 1, 0,123,__LINE__, 0x400a634b, 0xd3659fc0, 0xbfe99999, 0x99999996, 0x40099999, 0x9999999a}, /* 3.29848=f(-0.80000, v3.20000)*/ +{ 1, 0,123,__LINE__, 0x400a723e, 0x57ac3b00, 0xbfe947ae, 0x147ae144, 0x4009ae14, 0x7ae147af}, /* 3.30578=f(-0.79000, v3.21000)*/ +{ 1, 0,123,__LINE__, 0x400a8147, 0xd53b2680, 0xbfe8f5c2, 0x8f5c28f2, 0x4009c28f, 0x5c28f5c4}, /* 3.31312=f(-0.78000, v3.22000)*/ +{ 1, 0,123,__LINE__, 0x400a9068, 0x9a4fce00, 0xbfe8a3d7, 0x0a3d70a0, 0x4009d70a, 0x3d70a3d8}, /* 3.32051=f(-0.77000, v3.23000)*/ +{ 1, 0,123,__LINE__, 0x400a9fa0, 0x25cb7440, 0xbfe851eb, 0x851eb84e, 0x4009eb85, 0x1eb851ec}, /* 3.32794=f(-0.76000, v3.24000)*/ +{ 1, 0,123,__LINE__, 0x400aaeee, 0x90000000, 0xbfe7ffff, 0xfffffffc, 0x400a0000, 0x00000001}, /* 3.33541=f(-0.75000, v3.25000)*/ +{ 1, 0,123,__LINE__, 0x400abe53, 0x88499580, 0xbfe7ae14, 0x7ae147aa, 0x400a147a, 0xe147ae16}, /* 3.34293=f(-0.74000, v3.26000)*/ +{ 1, 0,123,__LINE__, 0x400acdce, 0xf06abf80, 0xbfe75c28, 0xf5c28f58, 0x400a28f5, 0xc28f5c2a}, /* 3.35049=f(-0.73000, v3.27000)*/ +{ 1, 0,123,__LINE__, 0x400add60, 0xa8de5ac0, 0xbfe70a3d, 0x70a3d706, 0x400a3d70, 0xa3d70a3e}, /* 3.35809=f(-0.72000, v3.28000)*/ +{ 1, 0,123,__LINE__, 0x400aed08, 0x90d79600, 0xbfe6b851, 0xeb851eb4, 0x400a51eb, 0x851eb853}, /* 3.36573=f(-0.71000, v3.29000)*/ +{ 1, 0,123,__LINE__, 0x400afcc6, 0x8641f200, 0xbfe66666, 0x66666662, 0x400a6666, 0x66666668}, /* 3.37342=f(-0.70000, v3.30000)*/ +{ 1, 0,123,__LINE__, 0x400b0c9a, 0x30cb7f00, 0xbfe6147a, 0xe147ae10, 0x400a7ae1, 0x47ae147c}, /* 3.38115=f(-0.69000, v3.31000)*/ +{ 1, 0,123,__LINE__, 0x400b1c83, 0xa07438c0, 0xbfe5c28f, 0x5c28f5be, 0x400a8f5c, 0x28f5c290}, /* 3.38892=f(-0.68000, v3.32000)*/ +{ 1, 0,123,__LINE__, 0x400b2c82, 0xaf509600, 0xbfe570a3, 0xd70a3d6c, 0x400aa3d7, 0x0a3d70a5}, /* 3.39673=f(-0.67000, v3.33000)*/ +{ 1, 0,123,__LINE__, 0x400b3c97, 0x362d5f80, 0xbfe51eb8, 0x51eb851a, 0x400ab851, 0xeb851eba}, /* 3.40458=f(-0.66000, v3.34000)*/ +{ 1, 0,123,__LINE__, 0x400b4cc0, 0xd6f61680, 0xbfe4cccc, 0xccccccc8, 0x400acccc, 0xccccccce}, /* 3.41247=f(-0.65000, v3.35000)*/ +{ 1, 0,123,__LINE__, 0x400b5cff, 0x9d2fd5c0, 0xbfe47ae1, 0x47ae1476, 0x400ae147, 0xae147ae2}, /* 3.42040=f(-0.64000, v3.36000)*/ +{ 1, 0,123,__LINE__, 0x400b6d53, 0x27e4d700, 0xbfe428f5, 0xc28f5c24, 0x400af5c2, 0x8f5c28f7}, /* 3.42838=f(-0.63000, v3.37000)*/ +{ 1, 0,123,__LINE__, 0x400b7dbb, 0xd6f9ed00, 0xbfe3d70a, 0x3d70a3d2, 0x400b0a3d, 0x70a3d70c}, /* 3.43639=f(-0.62000, v3.38000)*/ +{ 1, 0,123,__LINE__, 0x400b8e39, 0x3c39e3c0, 0xbfe3851e, 0xb851eb80, 0x400b1eb8, 0x51eb8520}, /* 3.44444=f(-0.61000, v3.39000)*/ +{ 1, 0,123,__LINE__, 0x400b9eca, 0xdcff6e80, 0xbfe33333, 0x3333332e, 0x400b3333, 0x33333334}, /* 3.45253=f(-0.60000, v3.40000)*/ +{ 1, 0,123,__LINE__, 0x400baf70, 0xf5c56ac0, 0xbfe2e147, 0xae147adc, 0x400b47ae, 0x147ae149}, /* 3.46066=f(-0.59000, v3.41000)*/ +{ 1, 0,123,__LINE__, 0x400bc02b, 0x55961200, 0xbfe28f5c, 0x28f5c28a, 0x400b5c28, 0xf5c28f5e}, /* 3.46883=f(-0.58000, v3.42000)*/ +{ 1, 0,123,__LINE__, 0x400bd0f9, 0xca33efc0, 0xbfe23d70, 0xa3d70a38, 0x400b70a3, 0xd70a3d72}, /* 3.47703=f(-0.57000, v3.43000)*/ +{ 1, 0,123,__LINE__, 0x400be1dc, 0x57241f00, 0xbfe1eb85, 0x1eb851e6, 0x400b851e, 0xb851eb86}, /* 3.48528=f(-0.56000, v3.44000)*/ +{ 1, 0,123,__LINE__, 0x400bf2d2, 0x90e17d40, 0xbfe19999, 0x99999994, 0x400b9999, 0x9999999b}, /* 3.49356=f(-0.55000, v3.45000)*/ +{ 1, 0,123,__LINE__, 0x400c03dc, 0x78b3b500, 0xbfe147ae, 0x147ae142, 0x400bae14, 0x7ae147b0}, /* 3.50188=f(-0.54000, v3.46000)*/ +{ 1, 0,123,__LINE__, 0x400c14f9, 0xd7b97b00, 0xbfe0f5c2, 0x8f5c28f0, 0x400bc28f, 0x5c28f5c4}, /* 3.51024=f(-0.53000, v3.47000)*/ +{ 1, 0,123,__LINE__, 0x400c262a, 0xad77ea80, 0xbfe0a3d7, 0x0a3d709e, 0x400bd70a, 0x3d70a3d8}, /* 3.51863=f(-0.52000, v3.48000)*/ +{ 1, 0,123,__LINE__, 0x400c376e, 0xc0f93d80, 0xbfe051eb, 0x851eb84c, 0x400beb85, 0x1eb851ed}, /* 3.52706=f(-0.51000, v3.49000)*/ +{ 1, 0,123,__LINE__, 0x400c48c6, 0x10000000, 0xbfdfffff, 0xfffffff4, 0x400c0000, 0x00000002}, /* 3.53553=f(-0.50000, v3.50000)*/ +{ 1, 0,123,__LINE__, 0x400c5a30, 0x2758fb80, 0xbfdf5c28, 0xf5c28f50, 0x400c147a, 0xe147ae16}, /* 3.54403=f(-0.49000, v3.51000)*/ +{ 1, 0,123,__LINE__, 0x400c6bad, 0x3adb3700, 0xbfdeb851, 0xeb851eac, 0x400c28f5, 0xc28f5c2a}, /* 3.55257=f(-0.48000, v3.52000)*/ +{ 1, 0,123,__LINE__, 0x400c7d3d, 0x0d67f700, 0xbfde147a, 0xe147ae08, 0x400c3d70, 0xa3d70a3f}, /* 3.56115=f(-0.47000, v3.53000)*/ +{ 1, 0,123,__LINE__, 0x400c8edf, 0x6098d200, 0xbfdd70a3, 0xd70a3d64, 0x400c51eb, 0x851eb854}, /* 3.56976=f(-0.46000, v3.54000)*/ +{ 1, 0,123,__LINE__, 0x400ca093, 0xf4bfb080, 0xbfdccccc, 0xccccccc0, 0x400c6666, 0x66666668}, /* 3.57840=f(-0.45000, v3.55000)*/ +{ 1, 0,123,__LINE__, 0x400cb25b, 0x33c81480, 0xbfdc28f5, 0xc28f5c1c, 0x400c7ae1, 0x47ae147c}, /* 3.58708=f(-0.44000, v3.56000)*/ +{ 1, 0,123,__LINE__, 0x400cc434, 0x6aa7bdc0, 0xbfdb851e, 0xb851eb78, 0x400c8f5c, 0x28f5c291}, /* 3.59580=f(-0.43000, v3.57000)*/ +{ 1, 0,123,__LINE__, 0x400cd61f, 0xc8e3c800, 0xbfdae147, 0xae147ad4, 0x400ca3d7, 0x0a3d70a6}, /* 3.60455=f(-0.42000, v3.58000)*/ +{ 1, 0,123,__LINE__, 0x400ce81c, 0xd1af63c0, 0xbfda3d70, 0xa3d70a30, 0x400cb851, 0xeb851eba}, /* 3.61333=f(-0.41000, v3.59000)*/ +{ 1, 0,123,__LINE__, 0x400cfa2b, 0xecb8a280, 0xbfd99999, 0x9999998c, 0x400ccccc, 0xccccccce}, /* 3.62215=f(-0.40000, v3.60000)*/ +{ 1, 0,123,__LINE__, 0x400d0c4c, 0x6184a080, 0xbfd8f5c2, 0x8f5c28e8, 0x400ce147, 0xae147ae3}, /* 3.63100=f(-0.39000, v3.61000)*/ +{ 1, 0,123,__LINE__, 0x400d1e7e, 0x96a2b700, 0xbfd851eb, 0x851eb844, 0x400cf5c2, 0x8f5c28f8}, /* 3.63989=f(-0.38000, v3.62000)*/ +{ 1, 0,123,__LINE__, 0x400d30c2, 0x65331800, 0xbfd7ae14, 0x7ae147a0, 0x400d0a3d, 0x70a3d70c}, /* 3.64880=f(-0.37000, v3.63000)*/ +{ 1, 0,123,__LINE__, 0x400d4317, 0x448c7740, 0xbfd70a3d, 0x70a3d6fc, 0x400d1eb8, 0x51eb8520}, /* 3.65775=f(-0.36000, v3.64000)*/ +{ 1, 0,123,__LINE__, 0x400d557d, 0x0b423b00, 0xbfd66666, 0x66666658, 0x400d3333, 0x33333335}, /* 3.66674=f(-0.35000, v3.65000)*/ +{ 1, 0,123,__LINE__, 0x400d67f4, 0x1e212d80, 0xbfd5c28f, 0x5c28f5b4, 0x400d47ae, 0x147ae14a}, /* 3.67575=f(-0.34000, v3.66000)*/ +{ 1, 0,123,__LINE__, 0x400d7a7b, 0xf7b8a800, 0xbfd51eb8, 0x51eb8510, 0x400d5c28, 0xf5c28f5e}, /* 3.68480=f(-0.33000, v3.67000)*/ +{ 1, 0,123,__LINE__, 0x400d8d14, 0x866f0e40, 0xbfd47ae1, 0x47ae146c, 0x400d70a3, 0xd70a3d72}, /* 3.69388=f(-0.32000, v3.68000)*/ +{ 1, 0,123,__LINE__, 0x400d9fbd, 0xb806ed00, 0xbfd3d70a, 0x3d70a3c8, 0x400d851e, 0xb851eb87}, /* 3.70299=f(-0.31000, v3.69000)*/ +{ 1, 0,123,__LINE__, 0x400db277, 0xb4d22d40, 0xbfd33333, 0x33333324, 0x400d9999, 0x9999999c}, /* 3.71214=f(-0.30000, v3.70000)*/ +{ 1, 0,123,__LINE__, 0x400dc541, 0xb7b21400, 0xbfd28f5c, 0x28f5c280, 0x400dae14, 0x7ae147b0}, /* 3.72131=f(-0.29000, v3.71000)*/ +{ 1, 0,123,__LINE__, 0x400dd81c, 0x5e1742c0, 0xbfd1eb85, 0x1eb851dc, 0x400dc28f, 0x5c28f5c4}, /* 3.73052=f(-0.28000, v3.72000)*/ +{ 1, 0,123,__LINE__, 0x400deb06, 0xe0a58e00, 0xbfd147ae, 0x147ae138, 0x400dd70a, 0x3d70a3d9}, /* 3.73975=f(-0.27000, v3.73000)*/ +{ 1, 0,123,__LINE__, 0x400dfe01, 0xa0a4a180, 0xbfd0a3d7, 0x0a3d7094, 0x400deb85, 0x1eb851ee}, /* 3.74902=f(-0.26000, v3.74000)*/ +{ 1, 0,123,__LINE__, 0x400e110c, 0x4c000000, 0xbfcfffff, 0xffffffe0, 0x400e0000, 0x00000002}, /* 3.75832=f(-0.25000, v3.75000)*/ +{ 1, 0,123,__LINE__, 0x400e2426, 0x8f5b7e40, 0xbfceb851, 0xeb851e98, 0x400e147a, 0xe147ae16}, /* 3.76765=f(-0.24000, v3.76000)*/ +{ 1, 0,123,__LINE__, 0x400e3750, 0xcb090580, 0xbfcd70a3, 0xd70a3d50, 0x400e28f5, 0xc28f5c2b}, /* 3.77700=f(-0.23000, v3.77000)*/ +{ 1, 0,123,__LINE__, 0x400e4a8a, 0x3197efc0, 0xbfcc28f5, 0xc28f5c08, 0x400e3d70, 0xa3d70a40}, /* 3.78639=f(-0.22000, v3.78000)*/ +{ 1, 0,123,__LINE__, 0x400e5dd3, 0x5edf4500, 0xbfcae147, 0xae147ac0, 0x400e51eb, 0x851eb854}, /* 3.79581=f(-0.21000, v3.79000)*/ +{ 1, 0,123,__LINE__, 0x400e712b, 0xbffdbb80, 0xbfc99999, 0x99999978, 0x400e6666, 0x66666668}, /* 3.80525=f(-0.20000, v3.80000)*/ +{ 1, 0,123,__LINE__, 0x400e8493, 0xb3fd8e80, 0xbfc851eb, 0x851eb830, 0x400e7ae1, 0x47ae147d}, /* 3.81473=f(-0.19000, v3.81000)*/ +{ 1, 0,123,__LINE__, 0x400e980a, 0x68f33700, 0xbfc70a3d, 0x70a3d6e8, 0x400e8f5c, 0x28f5c292}, /* 3.82423=f(-0.18000, v3.82000)*/ +{ 1, 0,123,__LINE__, 0x400eab8f, 0xff828a00, 0xbfc5c28f, 0x5c28f5a0, 0x400ea3d7, 0x0a3d70a6}, /* 3.83377=f(-0.17000, v3.83000)*/ +{ 1, 0,123,__LINE__, 0x400ebf24, 0xd5c00040, 0xbfc47ae1, 0x47ae1458, 0x400eb851, 0xeb851eba}, /* 3.84333=f(-0.16000, v3.84000)*/ +{ 1, 0,123,__LINE__, 0x400ed2c8, 0x53fd8380, 0xbfc33333, 0x33333310, 0x400ecccc, 0xcccccccf}, /* 3.85292=f(-0.15000, v3.85000)*/ +{ 1, 0,123,__LINE__, 0x400ee67a, 0x5c269700, 0xbfc1eb85, 0x1eb851c8, 0x400ee147, 0xae147ae4}, /* 3.86253=f(-0.14000, v3.86000)*/ +{ 1, 0,123,__LINE__, 0x400efa3b, 0x0d6e6c00, 0xbfc0a3d7, 0x0a3d7080, 0x400ef5c2, 0x8f5c28f8}, /* 3.87218=f(-0.13000, v3.87000)*/ +{ 1, 0,123,__LINE__, 0x400f0e0a, 0x2ae32900, 0xbfbeb851, 0xeb851e71, 0x400f0a3d, 0x70a3d70c}, /* 3.88185=f(-0.12000, v3.88000)*/ +{ 1, 0,123,__LINE__, 0x400f21e7, 0x92b9c2c0, 0xbfbc28f5, 0xc28f5be2, 0x400f1eb8, 0x51eb8521}, /* 3.89155=f(-0.11000, v3.89000)*/ +{ 1, 0,123,__LINE__, 0x400f35d3, 0x44cde080, 0xbfb99999, 0x99999953, 0x400f3333, 0x33333335}, /* 3.90128=f(-0.00100, v3.90000)*/ +{ 1, 0,123,__LINE__, 0x400f49cd, 0x2052b380, 0xbfb70a3d, 0x70a3d6c4, 0x400f47ae, 0x147ae14a}, /* 3.91103=f(-0.09000, v3.91000)*/ +{ 1, 0,123,__LINE__, 0x400f5dd5, 0x03d79600, 0xbfb47ae1, 0x47ae1435, 0x400f5c28, 0xf5c28f5e}, /* 3.92081=f(-0.08000, v3.92000)*/ +{ 1, 0,123,__LINE__, 0x400f71ea, 0x8e66c380, 0xbfb1eb85, 0x1eb851a6, 0x400f70a3, 0xd70a3d73}, /* 3.93062=f(-0.07000, v3.93000)*/ +{ 1, 0,123,__LINE__, 0x400f860e, 0x1ae18200, 0xbfaeb851, 0xeb851e2d, 0x400f851e, 0xb851eb87}, /* 3.94045=f(-0.06000, v3.94000)*/ +{ 1, 0,123,__LINE__, 0x400f9a3f, 0x86668800, 0xbfa99999, 0x9999990e, 0x400f9999, 0x9999999c}, /* 3.95031=f(-0.05000, v3.95000)*/ +{ 1, 0,123,__LINE__, 0x400fae7e, 0x6e148c00, 0xbfa47ae1, 0x47ae13ef, 0x400fae14, 0x7ae147b0}, /* 3.96020=f(-0.04000, v3.96000)*/ +{ 1, 0,123,__LINE__, 0x400fc2ca, 0xad47b540, 0xbf9eb851, 0xeb851da0, 0x400fc28f, 0x5c28f5c5}, /* 3.97011=f(-0.03000, v3.97000)*/ +{ 1, 0,123,__LINE__, 0x400fd724, 0x9e147d00, 0xbf947ae1, 0x47ae1362, 0x400fd70a, 0x3d70a3d9}, /* 3.98005=f(-0.02000, v3.98000)*/ +{ 1, 0,123,__LINE__, 0x400feb8b, 0x9bd70a80, 0xbf847ae1, 0x47ae1249, 0x400feb85, 0x1eb851ee}, /* 3.99001=f(-0.00010, v3.99000)*/ +{ 1, 0,123,__LINE__, 0x40100000, 0x00000000, 0x3cd19000, 0x00000000, 0x40100000, 0x00000001}, /* 4.00000=f(9.74915e-16, v4.00000)*/ +{ 1, 0,123,__LINE__, 0x40100a40, 0xc2147e00, 0x3f847ae1, 0x47ae16ad, 0x40100a3d, 0x70a3d70b}, /* 4.01001=f(0.01000, v4.01000)*/ +{ 1, 0,123,__LINE__, 0x40101487, 0xf0a3d600, 0x3f947ae1, 0x47ae1594, 0x4010147a, 0xe147ae16}, /* 4.02005=f(0.02000, v4.02000)*/ +{ 1, 0,123,__LINE__, 0x40101ed5, 0x97ae2e00, 0x3f9eb851, 0xeb851fd2, 0x40101eb8, 0x51eb8520}, /* 4.03011=f(0.03000, v4.03000)*/ +{ 1, 0,123,__LINE__, 0x40102929, 0xa3851680, 0x3fa47ae1, 0x47ae1508, 0x401028f5, 0xc28f5c2a}, /* 4.04019=f(0.04000, v4.04000)*/ +{ 1, 0,123,__LINE__, 0x40103384, 0x1f99d980, 0x3fa99999, 0x99999a27, 0x40103333, 0x33333334}, /* 4.05030=f(0.05000, v4.05000)*/ +{ 1, 0,123,__LINE__, 0x40103de4, 0xd7adf900, 0x3faeb851, 0xeb851f46, 0x40103d70, 0xa3d70a3f}, /* 4.06044=f(0.06000, v4.06000)*/ +{ 1, 0,123,__LINE__, 0x4010484b, 0xd666d600, 0x3fb1eb85, 0x1eb85232, 0x401047ae, 0x147ae149}, /* 4.07060=f(0.07000, v4.07000)*/ +{ 1, 0,123,__LINE__, 0x401052b9, 0x07add400, 0x3fb47ae1, 0x47ae14c1, 0x401051eb, 0x851eb853}, /* 4.08078=f(0.08000, v4.08000)*/ +{ 1, 0,123,__LINE__, 0x40105d2c, 0x96528e00, 0x3fb70a3d, 0x70a3d750, 0x40105c28, 0xf5c28f5d}, /* 4.09099=f(0.09000, v4.09000)*/ +{ 1, 0,123,__LINE__, 0x401067a6, 0x0bff8340, 0x3fb99999, 0x999999df, 0x40106666, 0x66666667}, /* 4.10121=f(0.10000, v4.10000)*/ +{ 1, 0,123,__LINE__, 0x40107225, 0xb385f100, 0x3fbc28f5, 0xc28f5c6e, 0x401070a3, 0xd70a3d72}, /* 4.11147=f(0.11000, v4.11000)*/ +{ 1, 0,123,__LINE__, 0x40107cab, 0x36b77c80, 0x3fbeb851, 0xeb851efd, 0x40107ae1, 0x47ae147c}, /* 4.12174=f(0.12000, v4.12000)*/ +{ 1, 0,123,__LINE__, 0x40108736, 0xe029ef00, 0x3fc0a3d7, 0x0a3d70c6, 0x4010851e, 0xb851eb86}, /* 4.13204=f(0.13000, v4.13000)*/ +{ 1, 0,123,__LINE__, 0x401091c8, 0x7a6516c0, 0x3fc1eb85, 0x1eb8520e, 0x40108f5c, 0x28f5c290}, /* 4.14236=f(0.14000, v4.14000)*/ +{ 1, 0,123,__LINE__, 0x40109c60, 0x0d9aab80, 0x3fc33333, 0x33333356, 0x40109999, 0x9999999b}, /* 4.15271=f(0.15000, v4.15000)*/ +{ 1, 0,123,__LINE__, 0x4010a6fd, 0x428d6c00, 0x3fc47ae1, 0x47ae149e, 0x4010a3d7, 0x0a3d70a5}, /* 4.16307=f(0.16000, v4.16000)*/ +{ 1, 0,123,__LINE__, 0x4010b1a0, 0x847bf800, 0x3fc5c28f, 0x5c28f5e6, 0x4010ae14, 0x7ae147af}, /* 4.17346=f(0.17000, v4.17000)*/ +{ 1, 0,123,__LINE__, 0x4010bc49, 0x5a8ca080, 0x3fc70a3d, 0x70a3d72e, 0x4010b851, 0xeb851eb9}, /* 4.18387=f(0.18000, v4.18000)*/ +{ 1, 0,123,__LINE__, 0x4010c6f8, 0x0e676900, 0x3fc851eb, 0x851eb876, 0x4010c28f, 0x5c28f5c4}, /* 4.19430=f(0.19000, v4.19000)*/ +{ 1, 0,123,__LINE__, 0x4010d1ac, 0x6995e300, 0x3fc99999, 0x999999be, 0x4010cccc, 0xccccccce}, /* 4.20475=f(0.20000, v4.20000)*/ +{ 1, 0,123,__LINE__, 0x4010dc66, 0x72673700, 0x3fcae147, 0xae147b06, 0x4010d70a, 0x3d70a3d8}, /* 4.21523=f(0.21000, v4.21000)*/ +{ 1, 0,123,__LINE__, 0x4010e725, 0xf1e6a000, 0x3fcc28f5, 0xc28f5c4e, 0x4010e147, 0xae147ae2}, /* 4.22573=f(0.22000, v4.22000)*/ +{ 1, 0,123,__LINE__, 0x4010f1eb, 0x0f711fc0, 0x3fcd70a3, 0xd70a3d96, 0x4010eb85, 0x1eb851ed}, /* 4.23624=f(0.23000, v4.23000)*/ +{ 1, 0,123,__LINE__, 0x4010fcb5, 0xb5bc4400, 0x3fceb851, 0xeb851ede, 0x4010f5c2, 0x8f5c28f7}, /* 4.24678=f(0.24000, v4.24000)*/ +{ 1, 0,123,__LINE__, 0x40110785, 0xc8000000, 0x3fd00000, 0x00000013, 0x40110000, 0x00000001}, /* 4.25734=f(0.25000, v4.25000)*/ +{ 1, 0,123,__LINE__, 0x4011125b, 0x72bfa300, 0x3fd0a3d7, 0x0a3d70b7, 0x40110a3d, 0x70a3d70b}, /* 4.26792=f(0.26000, v4.26000)*/ +{ 1, 0,123,__LINE__, 0x40111d36, 0x5a7a39c0, 0x3fd147ae, 0x147ae15b, 0x4011147a, 0xe147ae16}, /* 4.27852=f(0.27000, v4.27000)*/ +{ 1, 0,123,__LINE__, 0x40112816, 0xc7b5c900, 0x3fd1eb85, 0x1eb851ff, 0x40111eb8, 0x51eb8520}, /* 4.28914=f(0.28000, v4.28000)*/ +{ 1, 0,123,__LINE__, 0x401132fc, 0x6064e780, 0x3fd28f5c, 0x28f5c2a3, 0x401128f5, 0xc28f5c2a}, /* 4.29979=f(0.29000, v4.29000)*/ +{ 1, 0,123,__LINE__, 0x40113de7, 0x4a6e5d80, 0x3fd33333, 0x33333347, 0x40113333, 0x33333334}, /* 4.31045=f(0.30000, v4.30000)*/ +{ 1, 0,123,__LINE__, 0x401148d7, 0x7011f0c0, 0x3fd3d70a, 0x3d70a3eb, 0x40113d70, 0xa3d70a3f}, /* 4.32113=f(0.31000, v4.31000)*/ +{ 1, 0,123,__LINE__, 0x401153cc, 0xd482f5c0, 0x3fd47ae1, 0x47ae148f, 0x401147ae, 0x147ae149}, /* 4.33183=f(0.32000, v4.32000)*/ +{ 1, 0,123,__LINE__, 0x40115ec7, 0x3f43e100, 0x3fd51eb8, 0x51eb8533, 0x401151eb, 0x851eb853}, /* 4.34255=f(0.33000, v4.33000)*/ +{ 1, 0,123,__LINE__, 0x401169c6, 0xf830fe00, 0x3fd5c28f, 0x5c28f5d7, 0x40115c28, 0xf5c28f5d}, /* 4.35329=f(0.34000, v4.34000)*/ +{ 1, 0,123,__LINE__, 0x401174cb, 0x812de7c0, 0x3fd66666, 0x6666667b, 0x40116666, 0x66666668}, /* 4.36405=f(0.35000, v4.35000)*/ +{ 1, 0,123,__LINE__, 0x40117fd5, 0x4482af80, 0x3fd70a3d, 0x70a3d71f, 0x401170a3, 0xd70a3d72}, /* 4.37483=f(0.36000, v4.36000)*/ +{ 1, 0,123,__LINE__, 0x40118ae4, 0x09699b00, 0x3fd7ae14, 0x7ae147c3, 0x40117ae1, 0x47ae147c}, /* 4.38563=f(0.37000, v4.37000)*/ +{ 1, 0,123,__LINE__, 0x401195f7, 0xd1780680, 0x3fd851eb, 0x851eb867, 0x4011851e, 0xb851eb86}, /* 4.39645=f(0.38000, v4.38000)*/ +{ 1, 0,123,__LINE__, 0x4011a110, 0x63679b40, 0x3fd8f5c2, 0x8f5c290b, 0x40118f5c, 0x28f5c291}, /* 4.40728=f(0.39000, v4.39000)*/ +{ 1, 0,123,__LINE__, 0x4011ac2e, 0x066d2800, 0x3fd99999, 0x999999af, 0x40119999, 0x9999999b}, /* 4.41814=f(0.40000, v4.40000)*/ +{ 1, 0,123,__LINE__, 0x4011b750, 0x5df4b200, 0x3fda3d70, 0xa3d70a53, 0x4011a3d7, 0x0a3d70a5}, /* 4.42901=f(0.41000, v4.41000)*/ +{ 1, 0,123,__LINE__, 0x4011c277, 0xb0fbaa00, 0x3fdae147, 0xae147af7, 0x4011ae14, 0x7ae147af}, /* 4.43991=f(0.42000, v4.42000)*/ +{ 1, 0,123,__LINE__, 0x4011cda3, 0xc5f223c0, 0x3fdb851e, 0xb851eb9b, 0x4011b851, 0xeb851eba}, /* 4.45082=f(0.43000, v4.43000)*/ +{ 1, 0,123,__LINE__, 0x4011d8d4, 0x9cd19d80, 0x3fdc28f5, 0xc28f5c3f, 0x4011c28f, 0x5c28f5c4}, /* 4.46174=f(0.44000, v4.44000)*/ +{ 1, 0,123,__LINE__, 0x4011e40a, 0x1f227d00, 0x3fdccccc, 0xcccccce3, 0x4011cccc, 0xccccccce}, /* 4.47269=f(0.45000, v4.45000)*/ +{ 1, 0,123,__LINE__, 0x4011ef44, 0x4c556580, 0x3fdd70a3, 0xd70a3d87, 0x4011d70a, 0x3d70a3d8}, /* 4.48365=f(0.46000, v4.46000)*/ +{ 1, 0,123,__LINE__, 0x4011fa83, 0x319a35c0, 0x3fde147a, 0xe147ae2b, 0x4011e147, 0xae147ae3}, /* 4.49464=f(0.47000, v4.47000)*/ +{ 1, 0,123,__LINE__, 0x401205c6, 0xce165b00, 0x3fdeb851, 0xeb851ecf, 0x4011eb85, 0x1eb851ed}, /* 4.50564=f(0.48000, v4.48000)*/ +{ 1, 0,123,__LINE__, 0x4012110e, 0xc3824100, 0x3fdf5c28, 0xf5c28f73, 0x4011f5c2, 0x8f5c28f7}, /* 4.51665=f(0.49000, v4.49000)*/ +{ 1, 0,123,__LINE__, 0x40121c5b, 0x7c000000, 0x3fe00000, 0x0000000b, 0x40120000, 0x00000001}, /* 4.52769=f(0.50000, v4.50000)*/ +{ 1, 0,123,__LINE__, 0x401227ac, 0xb94c4300, 0x3fe051eb, 0x851eb85d, 0x40120a3d, 0x70a3d70c}, /* 4.53874=f(0.51000, v4.51000)*/ +{ 1, 0,123,__LINE__, 0x40123302, 0x3ccaa380, 0x3fe0a3d7, 0x0a3d70af, 0x4012147a, 0xe147ae16}, /* 4.54981=f(0.52000, v4.52000)*/ +{ 1, 0,123,__LINE__, 0x40123e5c, 0x4c6a8180, 0x3fe0f5c2, 0x8f5c2901, 0x40121eb8, 0x51eb8520}, /* 4.56089=f(0.53000, v4.53000)*/ +{ 1, 0,123,__LINE__, 0x401249ba, 0xd194fb00, 0x3fe147ae, 0x147ae153, 0x401228f5, 0xc28f5c2a}, /* 4.57200=f(0.54000, v4.54000)*/ +{ 1, 0,123,__LINE__, 0x4012551d, 0xc9b17400, 0x3fe19999, 0x999999a5, 0x40123333, 0x33333335}, /* 4.58312=f(0.55000, v4.55000)*/ +{ 1, 0,123,__LINE__, 0x40126084, 0xf9923700, 0x3fe1eb85, 0x1eb851f7, 0x40123d70, 0xa3d70a3f}, /* 4.59425=f(0.56000, v4.56000)*/ +{ 1, 0,123,__LINE__, 0x40126bf0, 0xa6f82180, 0x3fe23d70, 0xa3d70a49, 0x401247ae, 0x147ae149}, /* 4.60541=f(0.57000, v4.57000)*/ +{ 1, 0,123,__LINE__, 0x40127760, 0x720a0300, 0x3fe28f5c, 0x28f5c29b, 0x401251eb, 0x851eb853}, /* 4.61657=f(0.58000, v4.58000)*/ +{ 1, 0,123,__LINE__, 0x401282d4, 0xa0530200, 0x3fe2e147, 0xae147aed, 0x40125c28, 0xf5c28f5e}, /* 4.62776=f(0.59000, v4.59000)*/ +{ 1, 0,123,__LINE__, 0x40128e4c, 0xf6588580, 0x3fe33333, 0x3333333f, 0x40126666, 0x66666668}, /* 4.63896=f(0.60000, v4.60000)*/ +{ 1, 0,123,__LINE__, 0x401299c9, 0x94cc5040, 0x3fe3851e, 0xb851eb91, 0x401270a3, 0xd70a3d72}, /* 4.65018=f(0.61000, v4.61000)*/ +{ 1, 0,123,__LINE__, 0x4012a54a, 0x3fee6000, 0x3fe3d70a, 0x3d70a3e3, 0x40127ae1, 0x47ae147c}, /* 4.66141=f(0.62000, v4.62000)*/ +{ 1, 0,123,__LINE__, 0x4012b0cf, 0x18121e00, 0x3fe428f5, 0xc28f5c35, 0x4012851e, 0xb851eb87}, /* 4.67266=f(0.63000, v4.63000)*/ +{ 1, 0,123,__LINE__, 0x4012bc58, 0x2b6f6740, 0x3fe47ae1, 0x47ae1487, 0x40128f5c, 0x28f5c291}, /* 4.68393=f(0.64000, v4.64000)*/ +{ 1, 0,123,__LINE__, 0x4012c7e5, 0x500fee00, 0x3fe4cccc, 0xccccccd9, 0x40129999, 0x9999999b}, /* 4.69521=f(0.65000, v4.65000)*/ +{ 1, 0,123,__LINE__, 0x4012d376, 0x49a86600, 0x3fe51eb8, 0x51eb852b, 0x4012a3d7, 0x0a3d70a5}, /* 4.70650=f(0.66000, v4.66000)*/ +{ 1, 0,123,__LINE__, 0x4012df0b, 0x82884d00, 0x3fe570a3, 0xd70a3d7d, 0x4012ae14, 0x7ae147b0}, /* 4.71781=f(0.67000, v4.67000)*/ +{ 1, 0,123,__LINE__, 0x4012eaa4, 0x9928b640, 0x3fe5c28f, 0x5c28f5cf, 0x4012b851, 0xeb851eba}, /* 4.72914=f(0.68000, v4.68000)*/ +{ 1, 0,123,__LINE__, 0x4012f641, 0xad005780, 0x3fe6147a, 0xe147ae21, 0x4012c28f, 0x5c28f5c4}, /* 4.74048=f(0.69000, v4.69000)*/ +{ 1, 0,123,__LINE__, 0x401301e2, 0xcca8a800, 0x3fe66666, 0x66666673, 0x4012cccc, 0xccccccce}, /* 4.75184=f(0.70000, v4.70000)*/ +{ 1, 0,123,__LINE__, 0x40130d87, 0xcc595300, 0x3fe6b851, 0xeb851ec5, 0x4012d70a, 0x3d70a3d9}, /* 4.76321=f(0.71000, v4.71000)*/ +{ 1, 0,123,__LINE__, 0x40131930, 0x94f50640, 0x3fe70a3d, 0x70a3d717, 0x4012e147, 0xae147ae3}, /* 4.77460=f(0.72000, v4.72000)*/ +{ 1, 0,123,__LINE__, 0x401324dd, 0x45748500, 0x3fe75c28, 0xf5c28f69, 0x4012eb85, 0x1eb851ed}, /* 4.78600=f(0.73000, v4.73000)*/ +{ 1, 0,123,__LINE__, 0x4013308d, 0xc6da9c00, 0x3fe7ae14, 0x7ae147bb, 0x4012f5c2, 0x8f5c28f7}, /* 4.79741=f(0.74000, v4.74000)*/ +{ 1, 0,123,__LINE__, 0x40133c42, 0x12000000, 0x3fe80000, 0x0000000d, 0x40130000, 0x00000002}, /* 4.80884=f(0.75000, v4.75000)*/ +{ 1, 0,123,__LINE__, 0x401347fa, 0x56464900, 0x3fe851eb, 0x851eb85f, 0x40130a3d, 0x70a3d70c}, /* 4.82029=f(0.76000, v4.76000)*/ +{ 1, 0,123,__LINE__, 0x401353b6, 0x04dd09c0, 0x3fe8a3d7, 0x0a3d70b1, 0x4013147a, 0xe147ae16}, /* 4.83174=f(0.77000, v4.77000)*/ +{ 1, 0,123,__LINE__, 0x40135f75, 0xae6d1d40, 0x3fe8f5c2, 0x8f5c2903, 0x40131eb8, 0x51eb8520}, /* 4.84322=f(0.78000, v4.78000)*/ +{ 1, 0,123,__LINE__, 0x40136b38, 0xefa53a00, 0x3fe947ae, 0x147ae155, 0x401328f5, 0xc28f5c2b}, /* 4.85470=f(0.79000, v4.79000)*/ +{ 1, 0,123,__LINE__, 0x401376ff, 0xc02d3300, 0x3fe99999, 0x999999a7, 0x40133333, 0x33333335}, /* 4.86621=f(0.80000, v4.80000)*/ +{ 1, 0,123,__LINE__, 0x401382ca, 0x2f39d6c0, 0x3fe9eb85, 0x1eb851f9, 0x40133d70, 0xa3d70a3f}, /* 4.87772=f(0.81000, v4.81000)*/ +{ 1, 0,123,__LINE__, 0x40138e98, 0x814917c0, 0x3fea3d70, 0xa3d70a4b, 0x401347ae, 0x147ae149}, /* 4.88925=f(0.82000, v4.82000)*/ +{ 1, 0,123,__LINE__, 0x40139a6a, 0x2bc3d400, 0x3fea8f5c, 0x28f5c29d, 0x401351eb, 0x851eb854}, /* 4.90079=f(0.83000, v4.83000)*/ +{ 1, 0,123,__LINE__, 0x4013a63f, 0x996ede00, 0x3feae147, 0xae147aef, 0x40135c28, 0xf5c28f5e}, /* 4.91235=f(0.84000, v4.84000)*/ +{ 1, 0,123,__LINE__, 0x4013b218, 0x65e70740, 0x3feb3333, 0x33333341, 0x40136666, 0x66666668}, /* 4.92392=f(0.85000, v4.85000)*/ +{ 1, 0,123,__LINE__, 0x4013bdf4, 0xd5425b00, 0x3feb851e, 0xb851eb93, 0x401370a3, 0xd70a3d72}, /* 4.93550=f(0.86000, v4.86000)*/ +{ 1, 0,123,__LINE__, 0x4013c9d4, 0xa9a36f00, 0x3febd70a, 0x3d70a3e5, 0x40137ae1, 0x47ae147d}, /* 4.94710=f(0.87000, v4.87000)*/ +{ 1, 0,123,__LINE__, 0x4013d5b8, 0x001fb600, 0x3fec28f5, 0xc28f5c37, 0x4013851e, 0xb851eb87}, /* 4.95871=f(0.88000, v4.88000)*/ +{ 1, 0,123,__LINE__, 0x4013e19e, 0xc1b15bc0, 0x3fec7ae1, 0x47ae1489, 0x40138f5c, 0x28f5c291}, /* 4.97033=f(0.89000, v4.89000)*/ +{ 1, 0,123,__LINE__, 0x4013ed88, 0xe41b6840, 0x3feccccc, 0xccccccdb, 0x40139999, 0x9999999b}, /* 4.98196=f(0.90000, v4.90000)*/ +{ 1, 0,123,__LINE__, 0x4013f976, 0x77817000, 0x3fed1eb8, 0x51eb852d, 0x4013a3d7, 0x0a3d70a6}, /* 4.99361=f(0.91000, v4.91000)*/ +{ 1, 0,123,__LINE__, 0x40140567, 0x715e6600, 0x3fed70a3, 0xd70a3d7f, 0x4013ae14, 0x7ae147b0}, /* 5.00527=f(0.92000, v4.92000)*/ +{ 1, 0,123,__LINE__, 0x4014115b, 0x933ca040, 0x3fedc28f, 0x5c28f5d1, 0x4013b851, 0xeb851eba}, /* 5.01695=f(0.93000, v4.93000)*/ +{ 1, 0,123,__LINE__, 0x40141d53, 0x48638f00, 0x3fee147a, 0xe147ae23, 0x4013c28f, 0x5c28f5c4}, /* 5.02863=f(0.94000, v4.94000)*/ +{ 1, 0,123,__LINE__, 0x4014294e, 0x2af76600, 0x3fee6666, 0x66666675, 0x4013cccc, 0xcccccccf}, /* 5.04033=f(0.95000, v4.95000)*/ +{ 1, 0,123,__LINE__, 0x4014354c, 0x57166700, 0x3feeb851, 0xeb851ec7, 0x4013d70a, 0x3d70a3d9}, /* 5.05204=f(0.96000, v4.96000)*/ +{ 1, 0,123,__LINE__, 0x4014414d, 0xb5bbfdc0, 0x3fef0a3d, 0x70a3d719, 0x4013e147, 0xae147ae3}, /* 5.06377=f(0.97000, v4.97000)*/ +{ 1, 0,123,__LINE__, 0x40144d52, 0x62e79080, 0x3fef5c28, 0xf5c28f6b, 0x4013eb85, 0x1eb851ed}, /* 5.07551=f(0.98000, v4.98000)*/ +{ 1, 0,123,__LINE__, 0x4014595a, 0x47b35c00, 0x3fefae14, 0x7ae147bd, 0x4013f5c2, 0x8f5c28f8}, /* 5.08725=f(0.99000, v4.99000)*/ +{ 1, 0,123,__LINE__, 0x40146565, 0x58000000, 0x3ff00000, 0x00000007, 0x40140000, 0x00000002}, /* 5.09902=f(1.00000, v5.00000)*/ +{ 1, 0,123,__LINE__, 0x40147173, 0x9d6dd400, 0x3ff028f5, 0xc28f5c30, 0x40140a3d, 0x70a3d70c}, /* 5.11079=f(1.01000, v5.01000)*/ +{ 1, 0,123,__LINE__, 0x40147d84, 0xf9bbdd40, 0x3ff051eb, 0x851eb859, 0x4014147a, 0xe147ae16}, /* 5.12257=f(1.02000, v5.02000)*/ +{ 1, 0,123,__LINE__, 0x40148999, 0x885f4640, 0x3ff07ae1, 0x47ae1482, 0x40141eb8, 0x51eb8520}, /* 5.13437=f(1.03000, v5.03000)*/ +{ 1, 0,123,__LINE__, 0x401495b1, 0x0a2fa200, 0x3ff0a3d7, 0x0a3d70ab, 0x401428f5, 0xc28f5c2b}, /* 5.14618=f(1.04000, v5.04000)*/ +{ 1, 0,123,__LINE__, 0x4014a1cb, 0xc2ac7b00, 0x3ff0cccc, 0xccccccd4, 0x40143333, 0x33333335}, /* 5.15800=f(1.05000, v5.05000)*/ +{ 1, 0,123,__LINE__, 0x4014ade9, 0x4a281a00, 0x3ff0f5c2, 0x8f5c28fd, 0x40143d70, 0xa3d70a3f}, /* 5.16983=f(1.06000, v5.06000)*/ +{ 1, 0,123,__LINE__, 0x4014ba0a, 0x350dc300, 0x3ff11eb8, 0x51eb8526, 0x401447ae, 0x147ae14a}, /* 5.18168=f(1.07000, v5.07000)*/ +{ 1, 0,123,__LINE__, 0x4014c62d, 0xca721100, 0x3ff147ae, 0x147ae14f, 0x401451eb, 0x851eb854}, /* 5.19353=f(1.08000, v5.08000)*/ +{ 1, 0,123,__LINE__, 0x4014d254, 0xc7979800, 0x3ff170a3, 0xd70a3d78, 0x40145c28, 0xf5c28f5e}, /* 5.20540=f(1.09000, v5.09000)*/ +{ 1, 0,123,__LINE__, 0x4014de7e, 0x730d8600, 0x3ff19999, 0x999999a1, 0x40146666, 0x66666668}, /* 5.21727=f(1.10000, v5.10000)*/ +{ 1, 0,123,__LINE__, 0x4014eaab, 0x0ff80d40, 0x3ff1c28f, 0x5c28f5ca, 0x401470a3, 0xd70a3d72}, /* 5.22916=f(1.11000, v5.11000)*/ +{ 1, 0,123,__LINE__, 0x4014f6da, 0xb0755980, 0x3ff1eb85, 0x1eb851f3, 0x40147ae1, 0x47ae147d}, /* 5.24106=f(1.12000, v5.12000)*/ +{ 1, 0,123,__LINE__, 0x4015030d, 0x461aa700, 0x3ff2147a, 0xe147ae1c, 0x4014851e, 0xb851eb87}, /* 5.25298=f(1.13000, v5.13000)*/ +{ 1, 0,123,__LINE__, 0x40150f42, 0x910ff100, 0x3ff23d70, 0xa3d70a45, 0x40148f5c, 0x28f5c291}, /* 5.26490=f(1.14000, v5.14000)*/ +{ 1, 0,123,__LINE__, 0x40151b7a, 0xfdc1f380, 0x3ff26666, 0x6666666e, 0x40149999, 0x9999999c}, /* 5.27683=f(1.15000, v5.15000)*/ +{ 1, 0,123,__LINE__, 0x401527b5, 0xf9fc0400, 0x3ff28f5c, 0x28f5c297, 0x4014a3d7, 0x0a3d70a6}, /* 5.28878=f(1.16000, v5.16000)*/ +{ 1, 0,123,__LINE__, 0x401533f4, 0x1b7d4e00, 0x3ff2b851, 0xeb851ec0, 0x4014ae14, 0x7ae147b0}, /* 5.30073=f(1.17000, v5.17000)*/ +{ 1, 0,123,__LINE__, 0x40154034, 0xcfb47300, 0x3ff2e147, 0xae147ae9, 0x4014b851, 0xeb851eba}, /* 5.31270=f(1.18000, v5.18000)*/ +{ 1, 0,123,__LINE__, 0x40154c78, 0x83383ac0, 0x3ff30a3d, 0x70a3d712, 0x4014c28f, 0x5c28f5c4}, /* 5.32467=f(1.19000, v5.19000)*/ +{14, 0,123,__LINE__, 0x401abd9a, 0x49389a80, 0xc01921fb, 0x54442d18, 0xc00243f6, 0xa8885a30}, /* 6.68515=f(-6.28318, v-2.28318)*/ +{15, 0,123,__LINE__, 0x40131050, 0x7f74c900, 0xc012d97c, 0x7f3321d2, 0xbfe6cbe3, 0xf9990e90}, /* 4.76593=f(-4.71238, v-0.71238)*/ +{14, 0,123,__LINE__, 0x400a0dd6, 0xd2f0cc80, 0xc00921fb, 0x54442d18, 0x3feb7812, 0xaeef4ba0}, /* 3.25675=f(-3.14159, v0.85840)*/ +{ 1, 0,123,__LINE__, 0x40072481, 0x0e8dde80, 0xbff921fb, 0x54442d18, 0x40036f02, 0x55dde974}, /* 2.89282=f(-1.57079, v2.42920)*/ +{ 1, 0,123,__LINE__, 0x40100000, 0x00000000, 0x00000000, 0x00000000, 0x40100000, 0x00000000}, /* 4.00000=f(0.00000, v4.00000)*/ +{ 1, 0,123,__LINE__, 0x401726ee, 0xafb01b40, 0x3ff921fb, 0x54442d18, 0x4016487e, 0xd5110b46}, /* 5.78802=f(1.57079, v5.57079)*/ +{11, 0,123,__LINE__, 0x401f354b, 0xebeba9c0, 0x400921fb, 0x54442d18, 0x401c90fd, 0xaa22168c}, /* 7.80204=f(3.14159, v7.14159)*/ +{10, 0,123,__LINE__, 0x4023cf71, 0xfc8d8900, 0x4012d97c, 0x7f3321d2, 0x40216cbe, 0x3f9990e9}, /* 9.90516=f(4.71238, v8.71238)*/ +{ 9, 0,123,__LINE__, 0x4043d974, 0x80000000, 0xc03e0000, 0x00000000, 0xc03a0000, 0x00000000}, /* 39.6988=f(-30.0000, v-26.0000)*/ +{ 9, 0,123,__LINE__, 0x4042a68d, 0xebdd48c0, 0xc03c4ccc, 0xcccccccd, 0xc0384ccc, 0xcccccccd}, /* 37.3012=f(-28.3000, v-24.3000)*/ +{ 9, 0,123,__LINE__, 0x404173c4, 0xafcc8d40, 0xc03a9999, 0x9999999a, 0xc0369999, 0x9999999a}, /* 34.9044=f(-26.6000, v-22.6000)*/ +{ 9, 0,123,__LINE__, 0x4040411f, 0x45d27980, 0xc038e666, 0x66666667, 0xc034e666, 0x66666667}, /* 32.5087=f(-24.9000, v-20.9000)*/ +{12, 0,123,__LINE__, 0x403e1d4c, 0x909d6800, 0xc0373333, 0x33333334, 0xc0333333, 0x33333334}, /* 30.1144=f(-23.2000, v-19.2000)*/ +{12, 0,123,__LINE__, 0x403bb8ca, 0x0d000000, 0xc0358000, 0x00000001, 0xc0318000, 0x00000001}, /* 27.7218=f(-21.5000, v-17.5000)*/ +{12, 0,123,__LINE__, 0x403954d6, 0xded2fb00, 0xc033cccc, 0xccccccce, 0xc02f9999, 0x9999999c}, /* 25.3314=f(-19.8000, v-15.8000)*/ +{13, 0,123,__LINE__, 0x4036f19f, 0xea834300, 0xc0321999, 0x9999999b, 0xc02c3333, 0x33333336}, /* 22.9438=f(-18.1000, v-14.1000)*/ +{13, 0,123,__LINE__, 0x40348f66, 0x5ff9fd80, 0xc0306666, 0x66666668, 0xc028cccc, 0xccccccd0}, /* 20.5601=f(-16.4000, v-12.4000)*/ +{11, 0,123,__LINE__, 0x40322e8e, 0x5da45d00, 0xc02d6666, 0x6666666a, 0xc0256666, 0x6666666a}, /* 18.1818=f(-14.7000, v-10.7000)*/ +{13, 0,123,__LINE__, 0x402f9f6e, 0x58000000, 0xc02a0000, 0x00000004, 0xc0220000, 0x00000004}, /* 15.8113=f(-13.0000, v-9.00000)*/ +{12, 0,123,__LINE__, 0x402ae7df, 0xfe6b5940, 0xc0269999, 0x9999999e, 0xc01d3333, 0x3333333c}, /* 13.4528=f(-11.3000, v-7.30000)*/ +{13, 0,123,__LINE__, 0x40263a58, 0x5b9e5d00, 0xc0233333, 0x33333338, 0xc0166666, 0x66666670}, /* 11.1139=f(-9.60000, v-5.60000)*/ +{10, 0,123,__LINE__, 0x40219ed5, 0x612b2fc0, 0xc01f9999, 0x999999a3, 0xc00f3333, 0x33333346}, /* 8.81022=f(-7.90000, v-3.90000)*/ +{14, 0,123,__LINE__, 0x401a50a4, 0xb59e3900, 0xc018cccc, 0xccccccd6, 0xc0019999, 0x999999ac}, /* 6.57875=f(-6.20000, v-2.20000)*/ +{19, 0,123,__LINE__, 0x40121c5b, 0x7c000000, 0xc0120000, 0x00000009, 0xbfe00000, 0x00000048}, /* 4.52769=f(-4.50000, v-0.50000)*/ +{12, 0,123,__LINE__, 0x40085ed7, 0x6c3cac80, 0xc0066666, 0x66666678, 0x3ff33333, 0x33333310}, /* 3.04630=f(-2.80000, v1.20000)*/ +{ 1, 0,123,__LINE__, 0x4008d01a, 0x427d6880, 0xbff19999, 0x999999bd, 0x40073333, 0x33333322}, /* 3.10161=f(-1.10000, v2.90000)*/ +{ 1, 0,123,__LINE__, 0x40128e4c, 0xf6588580, 0x3fe33333, 0x333332ec, 0x40126666, 0x6666665e}, /* 4.63896=f(0.60000, v4.60000)*/ +{11, 0,123,__LINE__, 0x401ad3ac, 0x8406be00, 0x40026666, 0x66666654, 0x40193333, 0x3333332a}, /* 6.70671=f(2.30000, v6.30000)*/ +{10, 0,123,__LINE__, 0x4021e377, 0xa0000000, 0x400fffff, 0xffffffee, 0x401fffff, 0xfffffff7}, /* 8.94427=f(4.00000, v8.00000)*/ +{10, 0,123,__LINE__, 0x40268065, 0xdefa1000, 0x4016cccc, 0xccccccc4, 0x40236666, 0x66666662}, /* 11.2507=f(5.70000, v9.70000)*/ +{10, 0,123,__LINE__, 0x402b2eae, 0x5d8a2c00, 0x401d9999, 0x99999991, 0x4026cccc, 0xccccccc8}, /* 13.5911=f(7.40000, v11.4000)*/ +{12, 0,123,__LINE__, 0x402fe6ae, 0x6862a100, 0x40223333, 0x3333332f, 0x402a3333, 0x3333332f}, /* 15.9505=f(9.10000, v13.1000)*/ +{11, 0,123,__LINE__, 0x40325252, 0x832952e0, 0x40259999, 0x99999995, 0x402d9999, 0x99999995}, /* 18.3215=f(10.8000, v14.8000)*/ +{11, 0,123,__LINE__, 0x4034b343, 0x0d000000, 0x4028ffff, 0xfffffffb, 0x40307fff, 0xfffffffe}, /* 20.7002=f(12.5000, v16.5000)*/ +{11, 0,123,__LINE__, 0x4037158d, 0xc5d5c500, 0x402c6666, 0x66666661, 0x40323333, 0x33333330}, /* 23.0841=f(14.2000, v18.2000)*/ +{11, 0,123,__LINE__, 0x403978d1, 0x58ceda40, 0x402fcccc, 0xccccccc7, 0x4033e666, 0x66666664}, /* 25.4719=f(15.9000, v19.9000)*/ +{12, 0,123,__LINE__, 0x403bdcce, 0x0d0e3940, 0x40319999, 0x99999997, 0x40359999, 0x99999997}, /* 27.8625=f(17.6000, v21.6000)*/ +{12, 0,123,__LINE__, 0x403e4157, 0xba2dd900, 0x40334ccc, 0xccccccca, 0x40374ccc, 0xccccccca}, /* 30.2552=f(19.3000, v23.3000)*/ +{ 9, 0,123,__LINE__, 0x40405327, 0xde000000, 0x4034ffff, 0xfffffffd, 0x4038ffff, 0xfffffffd}, /* 32.6496=f(21.0000, v25.0000)*/ +{ 9, 0,123,__LINE__, 0x404185cf, 0xa899b380, 0x4036b333, 0x33333330, 0x403ab333, 0x33333330}, /* 35.0453=f(22.7000, v26.7000)*/ +{ 9, 0,123,__LINE__, 0x4042b89a, 0xb82e6060, 0x40386666, 0x66666663, 0x403c6666, 0x66666663}, /* 37.4422=f(24.4000, v28.4000)*/ +{ 9, 0,123,__LINE__, 0x4043eb82, 0xe06f7b40, 0x403a1999, 0x99999996, 0x403e1999, 0x99999996}, /* 39.8399=f(26.1000, v30.1000)*/ +{ 9, 0,123,__LINE__, 0x40451e82, 0xe4b2fe80, 0x403bcccc, 0xccccccc9, 0x403fcccc, 0xccccccc9}, /* 42.2383=f(27.8000, v31.8000)*/ +{ 9, 0,123,__LINE__, 0x40465197, 0x39800000, 0x403d7fff, 0xfffffffc, 0x4040bfff, 0xfffffffe}, /* 44.6374=f(29.5000, v33.5000)*/ +0,}; +test_hypotf(m) {run_vector_1(m,hypotf_vec,(char *)(hypotf),"hypotf","fff"); } diff --git a/newlib/libm/test/iconv_vec.c b/newlib/libm/test/iconv_vec.c new file mode 100644 index 000000000..15bf38860 --- /dev/null +++ b/newlib/libm/test/iconv_vec.c @@ -0,0 +1,1159 @@ + +#include "test.h" + +int_type ints[]={ +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0xa73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a7, 6,0,0x000000a7, 6,0,0x00000000, 3,0, " +0xa7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000a73, 7,0,0x00000a73, 7,0,0x00000000, 3,0, " +0xa73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a7, 6,0,0x000000a7, 6,0,0x00000000, 3,0, " +0xa7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0xa12413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000a1241, 9,0,0x000a1241, 9,0,0x00000000, 3,0, " +0xa1241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00a12413,10,0,0x00a12413,10,0,0x00000000, 3,0, " +0xa12413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000a1241, 9,0,0x000a1241, 9,0,0x00000000, 3,0, " +0xa1241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0xa93231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a9, 6,0,0x000000a9, 6,0,0x00000000, 3,0, " +0xa9w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000a93, 7,0,0x00000a93, 7,0,0x00000000, 3,0, " +0xa93", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a9, 6,0,0x000000a9, 6,0,0x00000000, 3,0, " +0xa9", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xa3231122,12,0,0xa3231122,12,0,0x00000000, 3,0, " +0xa3231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x0000000a, 5,0,0x0000000a, 5,0,0x00000000, 3,0, " +0xaw", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x000000a3, 6,0,0x000000a3, 6,0,0x00000000, 3,0, " +0xa3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x0000000a, 5,0,0x0000000a, 5,0,0x00000000, 3,0, " +0xa", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0x773231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000077, 6,0,0x00000077, 6,0,0x00000000, 3,0, " +0x77w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000773, 7,0,0x00000773, 7,0,0x00000000, 3,0, " +0x773", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000077, 6,0,0x00000077, 6,0,0x00000000, 3,0, " +0x77", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0x712413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00071241, 9,0,0x00071241, 9,0,0x00000000, 3,0, " +0x71241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00712413,10,0,0x00712413,10,0,0x00000000, 3,0, " +0x712413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00071241, 9,0,0x00071241, 9,0,0x00000000, 3,0, " +0x71241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x93231122,13,0,0x93231122,13,0,0x00000000, 3,0, " +0x793231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000079, 6,0,0x00000079, 6,0,0x00000000, 3,0, " +0x79w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000793, 7,0,0x00000793, 7,0,0x00000000, 3,0, " +0x793", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000079, 6,0,0x00000079, 6,0,0x00000000, 3,0, " +0x79", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x73231122,12,0,0x73231122,12,0,0x00000000, 3,0, " +0x73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000007, 5,0,0x00000007, 5,0,0x00000000, 3,0, " +0x7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000073, 6,0,0x00000073, 6,0,0x00000000, 3,0, " +0x73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000007, 5,0,0x00000007, 5,0,0x00000000, 3,0, " +0x7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x73231122,13,0,0x73231122,13,0,0x00000000, 3,0, " +0x373231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000037, 6,0,0x00000037, 6,0,0x00000000, 3,0, " +0x37w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000373, 7,0,0x00000373, 7,0,0x00000000, 3,0, " +0x373", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000037, 6,0,0x00000037, 6,0,0x00000000, 3,0, " +0x37", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,12,34,0x7fffffff,12,34,0x00000000, 3,0, " +0x312413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00031241, 9,0,0x00031241, 9,0,0x00000000, 3,0, " +0x31241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00312413,10,0,0x00312413,10,0,0x00000000, 3,0, " +0x312413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00031241, 9,0,0x00031241, 9,0,0x00000000, 3,0, " +0x31241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x93231122,13,0,0x93231122,13,0,0x00000000, 3,0, " +0x393231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000039, 6,0,0x00000039, 6,0,0x00000000, 3,0, " +0x39w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000393, 7,0,0x00000393, 7,0,0x00000000, 3,0, " +0x393", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000039, 6,0,0x00000039, 6,0,0x00000000, 3,0, " +0x39", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x33231122,12,0,0x33231122,12,0,0x00000000, 3,0, " +0x33231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000003, 5,0,0x00000003, 5,0,0x00000000, 3,0, " +0x3w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000033, 6,0,0x00000033, 6,0,0x00000000, 3,0, " +0x33", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000003, 5,0,0x00000003, 5,0,0x00000000, 3,0, " +0x3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x73231122,13,0,0x73231122,13,0,0x00000000, 3,0, " +0x173231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000017, 6,0,0x00000017, 6,0,0x00000000, 3,0, " +0x17w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000173, 7,0,0x00000173, 7,0,0x00000000, 3,0, " +0x173", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000017, 6,0,0x00000017, 6,0,0x00000000, 3,0, " +0x17", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x7fffffff,15,34,0x7fffffff,15,34,0x00000000, 3,0, " +0x112413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00011241, 9,0,0x00011241, 9,0,0x00000000, 3,0, " +0x11241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00112413,10,0,0x00112413,10,0,0x00000000, 3,0, " +0x112413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00011241, 9,0,0x00011241, 9,0,0x00000000, 3,0, " +0x11241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x93231122,13,0,0x93231122,13,0,0x00000000, 3,0, " +0x193231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000019, 6,0,0x00000019, 6,0,0x00000000, 3,0, " +0x19w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000193, 7,0,0x00000193, 7,0,0x00000000, 3,0, " +0x193", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000019, 6,0,0x00000019, 6,0,0x00000000, 3,0, " +0x19", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x13231122,12,0,0x13231122,12,0,0x00000000, 3,0, " +0x13231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000001, 5,0,0x00000001, 5,0,0x00000000, 3,0, " +0x1w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000013, 6,0,0x00000013, 6,0,0x00000000, 3,0, " +0x13", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000001, 5,0,0x00000001, 5,0,0x00000000, 3,0, " +0x1", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34, " +0a73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 5,0, " +0a7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b21, 6,0, " +0a73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 5,0, " +0a7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,11,34, " +0a12413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 8,0, " +0a1241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x071c814d, 9,0, " +0a12413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 8,0, " +0a1241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34, " +0a93231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 5,0, " +0a9w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b55, 6,0, " +0a93", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 5,0, " +0a9", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xec11cdb2,11,0, " +0a3231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 4,0, " +0aw", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x00000107, 5,0, " +0a3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 4,0, " +0a", +__LINE__,0x07ed3252,12,0,0x2e169212,12,0,0x07ed3252,12,0,0x07ed3252,12,0,0xa94f9d32,12,0, " +0773231122", +__LINE__,0x0000003f, 5,0,0x0000004d, 5,0,0x0000003f, 5,0,0x0000003f, 5,0,0x000000bd, 5,0, " +077w", +__LINE__,0x000001fb, 6,0,0x00000305, 6,0,0x000001fb, 6,0,0x000001fb, 6,0,0x00001335, 6,0, " +0773", +__LINE__,0x0000003f, 5,0,0x0000004d, 5,0,0x0000003f, 5,0,0x0000003f, 5,0,0x000000bd, 5,0, " +077", +__LINE__,0x7fffffff,14,34,0x7fffffff,13,34,0x7fffffff,14,34,0x7fffffff,14,34,0x7fffffff,10,34, " +0712413231122", +__LINE__,0x000072a1, 8,0,0x00011649, 8,0,0x000072a1, 8,0,0x000072a1, 8,0,0x003119c9, 8,0, " +071241w", +__LINE__,0x0003950b, 9,0,0x000adedd, 9,0,0x0003950b, 9,0,0x0003950b, 9,0,0x04fc9e6d, 9,0, " +0712413", +__LINE__,0x000072a1, 8,0,0x00011649, 8,0,0x000072a1, 8,0,0x000072a1, 8,0,0x003119c9, 8,0, " +071241", +__LINE__,0x00000007, 4,0,0x2f47bf12,12,0,0x00000007, 4,0,0x00000007, 4,0,0x7fffffff,11,34, " +0793231122", +__LINE__,0x00000007, 4,0,0x0000004f, 5,0,0x00000007, 4,0,0x00000007, 4,0,0x000000bf, 5,0, " +079w", +__LINE__,0x00000007, 4,0,0x00000319, 6,0,0x00000007, 4,0,0x00000007, 4,0,0x00001369, 6,0, " +0793", +__LINE__,0x00000007, 4,0,0x0000004f, 5,0,0x00000007, 4,0,0x00000007, 4,0,0x000000bf, 5,0, " +079", +__LINE__,0x00ed3252,11,0,0x045d6b12,11,0,0x00ed3252,11,0,0x00ed3252,11,0,0x7fffffff,10,34, " +073231122", +__LINE__,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0, " +07w", +__LINE__,0x0000003b, 5,0,0x00000049, 5,0,0x0000003b, 5,0,0x0000003b, 5,0,0x000000b9, 5,0, " +073", +__LINE__,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0,0x00000007, 4,0, " +07", +__LINE__,0x03ed3252,12,0,0x163f0e12,12,0,0x03ed3252,12,0,0x03ed3252,12,0,0x7fffffff,10,34, " +0373231122", +__LINE__,0x0000001f, 5,0,0x00000025, 5,0,0x0000001f, 5,0,0x0000001f, 5,0,0x00000055, 5,0, " +037w", +__LINE__,0x000000fb, 6,0,0x00000175, 6,0,0x000000fb, 6,0,0x000000fb, 6,0,0x000008a5, 6,0, " +0373", +__LINE__,0x0000001f, 5,0,0x00000025, 5,0,0x0000001f, 5,0,0x0000001f, 5,0,0x00000055, 5,0, " +037", +__LINE__,0x7fffffff,14,34,0x7fffffff,13,34,0x7fffffff,14,34,0x7fffffff,14,34,0x7fffffff,12,34, " +0312413231122", +__LINE__,0x000032a1, 8,0,0x00007a09, 8,0,0x000032a1, 8,0,0x000032a1, 8,0,0x00153589, 8,0, " +031241w", +__LINE__,0x0001950b, 9,0,0x0004c45d, 9,0,0x0001950b, 9,0,0x0001950b, 9,0,0x02276fed, 9,0, " +0312413", +__LINE__,0x000032a1, 8,0,0x00007a09, 8,0,0x000032a1, 8,0,0x000032a1, 8,0,0x00153589, 8,0, " +031241", +__LINE__,0x00000003, 4,0,0x17703b12,12,0,0x00000003, 4,0,0x00000003, 4,0,0xea867e32,12,0, " +0393231122", +__LINE__,0x00000003, 4,0,0x00000027, 5,0,0x00000003, 4,0,0x00000003, 4,0,0x00000057, 5,0, " +039w", +__LINE__,0x00000003, 4,0,0x00000189, 6,0,0x00000003, 4,0,0x00000003, 4,0,0x000008d9, 6,0, " +0393", +__LINE__,0x00000003, 4,0,0x00000027, 5,0,0x00000003, 4,0,0x00000003, 4,0,0x00000057, 5,0, " +039", +__LINE__,0x006d3252,11,0,0x01fb1112,11,0,0x006d3252,11,0,0x006d3252,11,0,0xd4efec32,11,0, " +033231122", +__LINE__,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0, " +03w", +__LINE__,0x0000001b, 5,0,0x00000021, 5,0,0x0000001b, 5,0,0x0000001b, 5,0,0x00000051, 5,0, " +033", +__LINE__,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0,0x00000003, 4,0, " +03", +__LINE__,0x01ed3252,12,0,0x0a534c12,12,0,0x01ed3252,12,0,0x01ed3252,12,0,0xeeeed732,12,0, " +0173231122", +__LINE__,0x0000000f, 5,0,0x00000011, 5,0,0x0000000f, 5,0,0x0000000f, 5,0,0x00000021, 5,0, " +017w", +__LINE__,0x0000007b, 6,0,0x000000ad, 6,0,0x0000007b, 6,0,0x0000007b, 6,0,0x0000035d, 6,0, " +0173", +__LINE__,0x0000000f, 5,0,0x00000011, 5,0,0x0000000f, 5,0,0x0000000f, 5,0,0x00000021, 5,0, " +017", +__LINE__,0x542d3252,15,0,0x7fffffff,14,34,0x542d3252,15,0,0x542d3252,15,0,0x7fffffff,11,34, " +0112413231122", +__LINE__,0x000012a1, 8,0,0x00002be9, 8,0,0x000012a1, 8,0,0x000012a1, 8,0,0x00074369, 8,0, " +011241w", +__LINE__,0x0000950b, 9,0,0x0001b71d, 9,0,0x0000950b, 9,0,0x0000950b, 9,0,0x00bcd8ad, 9,0, " +0112413", +__LINE__,0x000012a1, 8,0,0x00002be9, 8,0,0x000012a1, 8,0,0x000012a1, 8,0,0x00074369, 8,0, " +011241", +__LINE__,0x00000001, 4,0,0x0b847912,12,0,0x00000001, 4,0,0x00000001, 4,0,0xac663c32,12,0, " +0193231122", +__LINE__,0x00000001, 4,0,0x00000013, 5,0,0x00000001, 4,0,0x00000001, 4,0,0x00000023, 5,0, " +019w", +__LINE__,0x00000001, 4,0,0x000000c1, 6,0,0x00000001, 4,0,0x00000001, 4,0,0x00000391, 6,0, " +0193", +__LINE__,0x00000001, 4,0,0x00000013, 5,0,0x00000001, 4,0,0x00000001, 4,0,0x00000023, 5,0, " +019", +__LINE__,0x002d3252,11,0,0x00c9e412,11,0,0x002d3252,11,0,0x002d3252,11,0,0x17788732,11,0, " +013231122", +__LINE__,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0, " +01w", +__LINE__,0x0000000b, 5,0,0x0000000d, 5,0,0x0000000b, 5,0,0x0000000b, 5,0,0x0000001d, 5,0, " +013", +__LINE__,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0,0x00000001, 4,0, " +01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34,0x00000000, 0,0,0x7fffffff, 9,34, " +a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 4,0,0x00000000, 0,0,0x0000010b, 4,0, " +a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a73, 5,0,0x00000000, 0,0,0x00001b21, 5,0, " +a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 4,0,0x00000000, 0,0,0x0000010b, 4,0, " +a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34,0x00000000, 0,0,0x7fffffff,10,34, " +a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 7,0,0x00000000, 0,0,0x004604f9, 7,0, " +a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00a12413, 8,0,0x00000000, 0,0,0x071c814d, 8,0, " +a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 7,0,0x00000000, 0,0,0x004604f9, 7,0, " +a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34,0x00000000, 0,0,0x7fffffff, 9,34, " +a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 4,0,0x00000000, 0,0,0x0000010d, 4,0, " +a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a93, 5,0,0x00000000, 0,0,0x00001b55, 5,0, " +a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 4,0,0x00000000, 0,0,0x0000010d, 4,0, " +a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xa3231122,10,0,0x00000000, 0,0,0xec11cdb2,10,0, " +a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0,0x00000000, 0,0,0x0000000a, 3,0, " +aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a3, 4,0,0x00000000, 0,0,0x00000107, 4,0, " +a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0,0x00000000, 0,0,0x0000000a, 3,0, " +a", +__LINE__,0x07ed3252,11,0,0x2e169212,11,0,0x7fffffff,10,34,0x2e169212,11,0,0xa94f9d32,11,0, " +773231122", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x00000077, 4,0,0x0000004d, 4,0,0x000000bd, 4,0, " +77w", +__LINE__,0x000001fb, 5,0,0x00000305, 5,0,0x00000773, 5,0,0x00000305, 5,0,0x00001335, 5,0, " +773", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x00000077, 4,0,0x0000004d, 4,0,0x000000bd, 4,0, " +77", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,10,34,0x7fffffff,12,34,0x7fffffff, 9,34, " +712413231122", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x00071241, 7,0,0x00011649, 7,0,0x003119c9, 7,0, " +71241w", +__LINE__,0x0003950b, 8,0,0x000adedd, 8,0,0x00712413, 8,0,0x000adedd, 8,0,0x04fc9e6d, 8,0, " +712413", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x00071241, 7,0,0x00011649, 7,0,0x003119c9, 7,0, " +71241", +__LINE__,0x00000007, 3,0,0x2f47bf12,11,0,0x93231122,11,0,0x2f47bf12,11,0,0x7fffffff,10,34, " +793231122", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000079, 4,0,0x0000004f, 4,0,0x000000bf, 4,0, " +79w", +__LINE__,0x00000007, 3,0,0x00000319, 5,0,0x00000793, 5,0,0x00000319, 5,0,0x00001369, 5,0, " +793", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000079, 4,0,0x0000004f, 4,0,0x000000bf, 4,0, " +79", +__LINE__,0x00ed3252,10,0,0x045d6b12,10,0,0x73231122,10,0,0x045d6b12,10,0,0x7fffffff, 9,34, " +73231122", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, " +7w", +__LINE__,0x0000003b, 4,0,0x00000049, 4,0,0x00000073, 4,0,0x00000049, 4,0,0x000000b9, 4,0, " +73", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, " +7", +__LINE__,0x03ed3252,11,0,0x163f0e12,11,0,0x73231122,11,0,0x163f0e12,11,0,0x7fffffff, 9,34, " +373231122", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x00000037, 4,0,0x00000025, 4,0,0x00000055, 4,0, " +37w", +__LINE__,0x000000fb, 5,0,0x00000175, 5,0,0x00000373, 5,0,0x00000175, 5,0,0x000008a5, 5,0, " +373", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x00000037, 4,0,0x00000025, 4,0,0x00000055, 4,0, " +37", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,10,34,0x7fffffff,12,34,0x7fffffff,11,34, " +312413231122", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x00031241, 7,0,0x00007a09, 7,0,0x00153589, 7,0, " +31241w", +__LINE__,0x0001950b, 8,0,0x0004c45d, 8,0,0x00312413, 8,0,0x0004c45d, 8,0,0x02276fed, 8,0, " +312413", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x00031241, 7,0,0x00007a09, 7,0,0x00153589, 7,0, " +31241", +__LINE__,0x00000003, 3,0,0x17703b12,11,0,0x93231122,11,0,0x17703b12,11,0,0xea867e32,11,0, " +393231122", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000039, 4,0,0x00000027, 4,0,0x00000057, 4,0, " +39w", +__LINE__,0x00000003, 3,0,0x00000189, 5,0,0x00000393, 5,0,0x00000189, 5,0,0x000008d9, 5,0, " +393", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000039, 4,0,0x00000027, 4,0,0x00000057, 4,0, " +39", +__LINE__,0x006d3252,10,0,0x01fb1112,10,0,0x33231122,10,0,0x01fb1112,10,0,0xd4efec32,10,0, " +33231122", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, " +3w", +__LINE__,0x0000001b, 4,0,0x00000021, 4,0,0x00000033, 4,0,0x00000021, 4,0,0x00000051, 4,0, " +33", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, " +3", +__LINE__,0x01ed3252,11,0,0x0a534c12,11,0,0x73231122,11,0,0x0a534c12,11,0,0xeeeed732,11,0, " +173231122", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x00000017, 4,0,0x00000011, 4,0,0x00000021, 4,0, " +17w", +__LINE__,0x0000007b, 5,0,0x000000ad, 5,0,0x00000173, 5,0,0x000000ad, 5,0,0x0000035d, 5,0, " +173", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x00000017, 4,0,0x00000011, 4,0,0x00000021, 4,0, " +17", +__LINE__,0x542d3252,14,0,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff,10,34, " +112413231122", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x00011241, 7,0,0x00002be9, 7,0,0x00074369, 7,0, " +11241w", +__LINE__,0x0000950b, 8,0,0x0001b71d, 8,0,0x00112413, 8,0,0x0001b71d, 8,0,0x00bcd8ad, 8,0, " +112413", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x00011241, 7,0,0x00002be9, 7,0,0x00074369, 7,0, " +11241", +__LINE__,0x00000001, 3,0,0x0b847912,11,0,0x93231122,11,0,0x0b847912,11,0,0xac663c32,11,0, " +193231122", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000019, 4,0,0x00000013, 4,0,0x00000023, 4,0, " +19w", +__LINE__,0x00000001, 3,0,0x000000c1, 5,0,0x00000193, 5,0,0x000000c1, 5,0,0x00000391, 5,0, " +193", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000019, 4,0,0x00000013, 4,0,0x00000023, 4,0, " +19", +__LINE__,0x002d3252,10,0,0x00c9e412,10,0,0x13231122,10,0,0x00c9e412,10,0,0x17788732,10,0, " +13231122", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, " +1w", +__LINE__,0x0000000b, 4,0,0x0000000d, 4,0,0x00000013, 4,0,0x0000000d, 4,0,0x0000001d, 4,0, " +13", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, " +1", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0xa73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff59, 6,0,0xffffff59, 6,0,0x00000000, 3,0, " -0xa7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffff58d, 7,0,0xfffff58d, 7,0,0x00000000, 3,0, " -0xa73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff59, 6,0,0xffffff59, 6,0,0x00000000, 3,0, " -0xa7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0xa12413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfff5edbf, 9,0,0xfff5edbf, 9,0,0x00000000, 3,0, " -0xa1241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xff5edbed,10,0,0xff5edbed,10,0,0x00000000, 3,0, " -0xa12413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfff5edbf, 9,0,0xfff5edbf, 9,0,0x00000000, 3,0, " -0xa1241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0xa93231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff57, 6,0,0xffffff57, 6,0,0x00000000, 3,0, " -0xa9w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffff56d, 7,0,0xfffff56d, 7,0,0x00000000, 3,0, " -0xa93", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff57, 6,0,0xffffff57, 6,0,0x00000000, 3,0, " -0xa9", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x5cdceede,12,0,0x5cdceede,12,0,0x00000000, 3,0, " -0xa3231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffff6, 5,0,0xfffffff6, 5,0,0x00000000, 3,0, " -0xaw", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff5d, 6,0,0xffffff5d, 6,0,0x00000000, 3,0, " -0xa3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffff6, 5,0,0xfffffff6, 5,0,0x00000000, 3,0, " -0xa", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0x773231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff89, 6,0,0xffffff89, 6,0,0x00000000, 3,0, " -0x77w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffff88d, 7,0,0xfffff88d, 7,0,0x00000000, 3,0, " -0x773", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff89, 6,0,0xffffff89, 6,0,0x00000000, 3,0, " -0x77", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0x712413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfff8edbf, 9,0,0xfff8edbf, 9,0,0x00000000, 3,0, " -0x71241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xff8edbed,10,0,0xff8edbed,10,0,0x00000000, 3,0, " -0x712413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfff8edbf, 9,0,0xfff8edbf, 9,0,0x00000000, 3,0, " -0x71241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x6cdceede,13,0,0x6cdceede,13,0,0x00000000, 3,0, " -0x793231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff87, 6,0,0xffffff87, 6,0,0x00000000, 3,0, " -0x79w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffff86d, 7,0,0xfffff86d, 7,0,0x00000000, 3,0, " -0x793", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff87, 6,0,0xffffff87, 6,0,0x00000000, 3,0, " -0x79", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x8cdceede,12,0,0x8cdceede,12,0,0x00000000, 3,0, " -0x73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffff9, 5,0,0xfffffff9, 5,0,0x00000000, 3,0, " -0x7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffff8d, 6,0,0xffffff8d, 6,0,0x00000000, 3,0, " -0x73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffff9, 5,0,0xfffffff9, 5,0,0x00000000, 3,0, " -0x7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x8cdceede,13,0,0x8cdceede,13,0,0x00000000, 3,0, " -0x373231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffc9, 6,0,0xffffffc9, 6,0,0x00000000, 3,0, " -0x37w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffc8d, 7,0,0xfffffc8d, 7,0,0x00000000, 3,0, " -0x373", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffc9, 6,0,0xffffffc9, 6,0,0x00000000, 3,0, " -0x37", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,12,34,0x80000000,12,34,0x00000000, 3,0, " -0x312413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffcedbf, 9,0,0xfffcedbf, 9,0,0x00000000, 3,0, " -0x31241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffcedbed,10,0,0xffcedbed,10,0,0x00000000, 3,0, " -0x312413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffcedbf, 9,0,0xfffcedbf, 9,0,0x00000000, 3,0, " -0x31241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x6cdceede,13,0,0x6cdceede,13,0,0x00000000, 3,0, " -0x393231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffc7, 6,0,0xffffffc7, 6,0,0x00000000, 3,0, " -0x39w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffc6d, 7,0,0xfffffc6d, 7,0,0x00000000, 3,0, " -0x393", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffc7, 6,0,0xffffffc7, 6,0,0x00000000, 3,0, " -0x39", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xccdceede,12,0,0xccdceede,12,0,0x00000000, 3,0, " -0x33231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffffd, 5,0,0xfffffffd, 5,0,0x00000000, 3,0, " -0x3w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffcd, 6,0,0xffffffcd, 6,0,0x00000000, 3,0, " -0x33", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffffd, 5,0,0xfffffffd, 5,0,0x00000000, 3,0, " -0x3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x8cdceede,13,0,0x8cdceede,13,0,0x00000000, 3,0, " -0x173231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffe9, 6,0,0xffffffe9, 6,0,0x00000000, 3,0, " -0x17w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffe8d, 7,0,0xfffffe8d, 7,0,0x00000000, 3,0, " -0x173", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffe9, 6,0,0xffffffe9, 6,0,0x00000000, 3,0, " -0x17", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x80000000,15,34,0x80000000,15,34,0x00000000, 3,0, " -0x112413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffeedbf, 9,0,0xfffeedbf, 9,0,0x00000000, 3,0, " -0x11241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffeedbed,10,0,0xffeedbed,10,0,0x00000000, 3,0, " -0x112413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffeedbf, 9,0,0xfffeedbf, 9,0,0x00000000, 3,0, " -0x11241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x6cdceede,13,0,0x6cdceede,13,0,0x00000000, 3,0, " -0x193231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffe7, 6,0,0xffffffe7, 6,0,0x00000000, 3,0, " -0x19w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xfffffe6d, 7,0,0xfffffe6d, 7,0,0x00000000, 3,0, " -0x193", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffe7, 6,0,0xffffffe7, 6,0,0x00000000, 3,0, " -0x19", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xecdceede,12,0,0xecdceede,12,0,0x00000000, 3,0, " -0x13231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffff, 5,0,0xffffffff, 5,0,0x00000000, 3,0, " -0x1w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffed, 6,0,0xffffffed, 6,0,0x00000000, 3,0, " -0x13", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0xffffffff, 5,0,0xffffffff, 5,0,0x00000000, 3,0, " -0x1", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34, " -0a73231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef5, 5,0, " -0a7w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xffffe4df, 6,0, " -0a73", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef5, 5,0, " -0a7", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000,11,34, " -0a12413231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xffb9fb07, 8,0, " -0a1241w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xf8e37eb3, 9,0, " -0a12413", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xffb9fb07, 8,0, " -0a1241", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34, " -0a93231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef3, 5,0, " -0a9w", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xffffe4ab, 6,0, " -0a93", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef3, 5,0, " -0a9", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0x13ee324e,11,0, " -0a3231122", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 4,0, " -0aw", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef9, 5,0, " -0a3", +__LINE__,0x00000000, 3,0,0x00000000, 3,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 4,0, " -0a", +__LINE__,0xf812cdae,12,0,0xd1e96dee,12,0,0xf812cdae,12,0,0xf812cdae,12,0,0x56b062ce,12,0, " -0773231122", +__LINE__,0xffffffc1, 5,0,0xffffffb3, 5,0,0xffffffc1, 5,0,0xffffffc1, 5,0,0xffffff43, 5,0, " -077w", +__LINE__,0xfffffe05, 6,0,0xfffffcfb, 6,0,0xfffffe05, 6,0,0xfffffe05, 6,0,0xffffeccb, 6,0, " -0773", +__LINE__,0xffffffc1, 5,0,0xffffffb3, 5,0,0xffffffc1, 5,0,0xffffffc1, 5,0,0xffffff43, 5,0, " -077", +__LINE__,0x80000000,14,34,0x80000000,13,34,0x80000000,14,34,0x80000000,14,34,0x80000000,10,34, " -0712413231122", +__LINE__,0xffff8d5f, 8,0,0xfffee9b7, 8,0,0xffff8d5f, 8,0,0xffff8d5f, 8,0,0xffcee637, 8,0, " -071241w", +__LINE__,0xfffc6af5, 9,0,0xfff52123, 9,0,0xfffc6af5, 9,0,0xfffc6af5, 9,0,0xfb036193, 9,0, " -0712413", +__LINE__,0xffff8d5f, 8,0,0xfffee9b7, 8,0,0xffff8d5f, 8,0,0xffff8d5f, 8,0,0xffcee637, 8,0, " -071241", +__LINE__,0xfffffff9, 4,0,0xd0b840ee,12,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0x80000000,11,34, " -0793231122", +__LINE__,0xfffffff9, 4,0,0xffffffb1, 5,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xffffff41, 5,0, " -079w", +__LINE__,0xfffffff9, 4,0,0xfffffce7, 6,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xffffec97, 6,0, " -0793", +__LINE__,0xfffffff9, 4,0,0xffffffb1, 5,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xffffff41, 5,0, " -079", +__LINE__,0xff12cdae,11,0,0xfba294ee,11,0,0xff12cdae,11,0,0xff12cdae,11,0,0x80000000,10,34, " -073231122", +__LINE__,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0, " -07w", +__LINE__,0xffffffc5, 5,0,0xffffffb7, 5,0,0xffffffc5, 5,0,0xffffffc5, 5,0,0xffffff47, 5,0, " -073", +__LINE__,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0xfffffff9, 4,0, " -07", +__LINE__,0xfc12cdae,12,0,0xe9c0f1ee,12,0,0xfc12cdae,12,0,0xfc12cdae,12,0,0x80000000,10,34, " -0373231122", +__LINE__,0xffffffe1, 5,0,0xffffffdb, 5,0,0xffffffe1, 5,0,0xffffffe1, 5,0,0xffffffab, 5,0, " -037w", +__LINE__,0xffffff05, 6,0,0xfffffe8b, 6,0,0xffffff05, 6,0,0xffffff05, 6,0,0xfffff75b, 6,0, " -0373", +__LINE__,0xffffffe1, 5,0,0xffffffdb, 5,0,0xffffffe1, 5,0,0xffffffe1, 5,0,0xffffffab, 5,0, " -037", +__LINE__,0x80000000,14,34,0x80000000,13,34,0x80000000,14,34,0x80000000,14,34,0x80000000,12,34, " -0312413231122", +__LINE__,0xffffcd5f, 8,0,0xffff85f7, 8,0,0xffffcd5f, 8,0,0xffffcd5f, 8,0,0xffeaca77, 8,0, " -031241w", +__LINE__,0xfffe6af5, 9,0,0xfffb3ba3, 9,0,0xfffe6af5, 9,0,0xfffe6af5, 9,0,0xfdd89013, 9,0, " -0312413", +__LINE__,0xffffcd5f, 8,0,0xffff85f7, 8,0,0xffffcd5f, 8,0,0xffffcd5f, 8,0,0xffeaca77, 8,0, " -031241", +__LINE__,0xfffffffd, 4,0,0xe88fc4ee,12,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0x157981ce,12,0, " -0393231122", +__LINE__,0xfffffffd, 4,0,0xffffffd9, 5,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xffffffa9, 5,0, " -039w", +__LINE__,0xfffffffd, 4,0,0xfffffe77, 6,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffff727, 6,0, " -0393", +__LINE__,0xfffffffd, 4,0,0xffffffd9, 5,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xffffffa9, 5,0, " -039", +__LINE__,0xff92cdae,11,0,0xfe04eeee,11,0,0xff92cdae,11,0,0xff92cdae,11,0,0x2b1013ce,11,0, " -033231122", +__LINE__,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0, " -03w", +__LINE__,0xffffffe5, 5,0,0xffffffdf, 5,0,0xffffffe5, 5,0,0xffffffe5, 5,0,0xffffffaf, 5,0, " -033", +__LINE__,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0xfffffffd, 4,0, " -03", +__LINE__,0xfe12cdae,12,0,0xf5acb3ee,12,0,0xfe12cdae,12,0,0xfe12cdae,12,0,0x111128ce,12,0, " -0173231122", +__LINE__,0xfffffff1, 5,0,0xffffffef, 5,0,0xfffffff1, 5,0,0xfffffff1, 5,0,0xffffffdf, 5,0, " -017w", +__LINE__,0xffffff85, 6,0,0xffffff53, 6,0,0xffffff85, 6,0,0xffffff85, 6,0,0xfffffca3, 6,0, " -0173", +__LINE__,0xfffffff1, 5,0,0xffffffef, 5,0,0xfffffff1, 5,0,0xfffffff1, 5,0,0xffffffdf, 5,0, " -017", +__LINE__,0xabd2cdae,15,0,0x80000000,14,34,0xabd2cdae,15,0,0xabd2cdae,15,0,0x80000000,11,34, " -0112413231122", +__LINE__,0xffffed5f, 8,0,0xffffd417, 8,0,0xffffed5f, 8,0,0xffffed5f, 8,0,0xfff8bc97, 8,0, " -011241w", +__LINE__,0xffff6af5, 9,0,0xfffe48e3, 9,0,0xffff6af5, 9,0,0xffff6af5, 9,0,0xff432753, 9,0, " -0112413", +__LINE__,0xffffed5f, 8,0,0xffffd417, 8,0,0xffffed5f, 8,0,0xffffed5f, 8,0,0xfff8bc97, 8,0, " -011241", +__LINE__,0xffffffff, 4,0,0xf47b86ee,12,0,0xffffffff, 4,0,0xffffffff, 4,0,0x5399c3ce,12,0, " -0193231122", +__LINE__,0xffffffff, 4,0,0xffffffed, 5,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffdd, 5,0, " -019w", +__LINE__,0xffffffff, 4,0,0xffffff3f, 6,0,0xffffffff, 4,0,0xffffffff, 4,0,0xfffffc6f, 6,0, " -0193", +__LINE__,0xffffffff, 4,0,0xffffffed, 5,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffdd, 5,0, " -019", +__LINE__,0xffd2cdae,11,0,0xff361bee,11,0,0xffd2cdae,11,0,0xffd2cdae,11,0,0xe88778ce,11,0, " -013231122", +__LINE__,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0, " -01w", +__LINE__,0xfffffff5, 5,0,0xfffffff3, 5,0,0xfffffff5, 5,0,0xfffffff5, 5,0,0xffffffe3, 5,0, " -013", +__LINE__,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0,0xffffffff, 4,0, " -01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34,0x00000000, 0,0,0x80000000, 9,34, " -a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff59, 4,0,0x00000000, 0,0,0xfffffef5, 4,0, " -a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffff58d, 5,0,0x00000000, 0,0,0xffffe4df, 5,0, " -a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff59, 4,0,0x00000000, 0,0,0xfffffef5, 4,0, " -a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34,0x00000000, 0,0,0x80000000,10,34, " -a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfff5edbf, 7,0,0x00000000, 0,0,0xffb9fb07, 7,0, " -a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xff5edbed, 8,0,0x00000000, 0,0,0xf8e37eb3, 8,0, " -a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfff5edbf, 7,0,0x00000000, 0,0,0xffb9fb07, 7,0, " -a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34,0x00000000, 0,0,0x80000000, 9,34, " -a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff57, 4,0,0x00000000, 0,0,0xfffffef3, 4,0, " -a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffff56d, 5,0,0x00000000, 0,0,0xffffe4ab, 5,0, " -a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff57, 4,0,0x00000000, 0,0,0xfffffef3, 4,0, " -a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x5cdceede,10,0,0x00000000, 0,0,0x13ee324e,10,0, " -a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 3,0,0x00000000, 0,0,0xfffffff6, 3,0, " -aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff5d, 4,0,0x00000000, 0,0,0xfffffef9, 4,0, " -a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 3,0,0x00000000, 0,0,0xfffffff6, 3,0, " -a", +__LINE__,0xf812cdae,11,0,0xd1e96dee,11,0,0x80000000,10,34,0xd1e96dee,11,0,0x56b062ce,11,0, " -773231122", +__LINE__,0xffffffc1, 4,0,0xffffffb3, 4,0,0xffffff89, 4,0,0xffffffb3, 4,0,0xffffff43, 4,0, " -77w", +__LINE__,0xfffffe05, 5,0,0xfffffcfb, 5,0,0xfffff88d, 5,0,0xfffffcfb, 5,0,0xffffeccb, 5,0, " -773", +__LINE__,0xffffffc1, 4,0,0xffffffb3, 4,0,0xffffff89, 4,0,0xffffffb3, 4,0,0xffffff43, 4,0, " -77", +__LINE__,0x80000000,13,34,0x80000000,12,34,0x80000000,10,34,0x80000000,12,34,0x80000000, 9,34, " -712413231122", +__LINE__,0xffff8d5f, 7,0,0xfffee9b7, 7,0,0xfff8edbf, 7,0,0xfffee9b7, 7,0,0xffcee637, 7,0, " -71241w", +__LINE__,0xfffc6af5, 8,0,0xfff52123, 8,0,0xff8edbed, 8,0,0xfff52123, 8,0,0xfb036193, 8,0, " -712413", +__LINE__,0xffff8d5f, 7,0,0xfffee9b7, 7,0,0xfff8edbf, 7,0,0xfffee9b7, 7,0,0xffcee637, 7,0, " -71241", +__LINE__,0xfffffff9, 3,0,0xd0b840ee,11,0,0x6cdceede,11,0,0xd0b840ee,11,0,0x80000000,10,34, " -793231122", +__LINE__,0xfffffff9, 3,0,0xffffffb1, 4,0,0xffffff87, 4,0,0xffffffb1, 4,0,0xffffff41, 4,0, " -79w", +__LINE__,0xfffffff9, 3,0,0xfffffce7, 5,0,0xfffff86d, 5,0,0xfffffce7, 5,0,0xffffec97, 5,0, " -793", +__LINE__,0xfffffff9, 3,0,0xffffffb1, 4,0,0xffffff87, 4,0,0xffffffb1, 4,0,0xffffff41, 4,0, " -79", +__LINE__,0xff12cdae,10,0,0xfba294ee,10,0,0x8cdceede,10,0,0xfba294ee,10,0,0x80000000, 9,34, " -73231122", +__LINE__,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0, " -7w", +__LINE__,0xffffffc5, 4,0,0xffffffb7, 4,0,0xffffff8d, 4,0,0xffffffb7, 4,0,0xffffff47, 4,0, " -73", +__LINE__,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0, " -7", +__LINE__,0xfc12cdae,11,0,0xe9c0f1ee,11,0,0x8cdceede,11,0,0xe9c0f1ee,11,0,0x80000000, 9,34, " -373231122", +__LINE__,0xffffffe1, 4,0,0xffffffdb, 4,0,0xffffffc9, 4,0,0xffffffdb, 4,0,0xffffffab, 4,0, " -37w", +__LINE__,0xffffff05, 5,0,0xfffffe8b, 5,0,0xfffffc8d, 5,0,0xfffffe8b, 5,0,0xfffff75b, 5,0, " -373", +__LINE__,0xffffffe1, 4,0,0xffffffdb, 4,0,0xffffffc9, 4,0,0xffffffdb, 4,0,0xffffffab, 4,0, " -37", +__LINE__,0x80000000,13,34,0x80000000,12,34,0x80000000,10,34,0x80000000,12,34,0x80000000,11,34, " -312413231122", +__LINE__,0xffffcd5f, 7,0,0xffff85f7, 7,0,0xfffcedbf, 7,0,0xffff85f7, 7,0,0xffeaca77, 7,0, " -31241w", +__LINE__,0xfffe6af5, 8,0,0xfffb3ba3, 8,0,0xffcedbed, 8,0,0xfffb3ba3, 8,0,0xfdd89013, 8,0, " -312413", +__LINE__,0xffffcd5f, 7,0,0xffff85f7, 7,0,0xfffcedbf, 7,0,0xffff85f7, 7,0,0xffeaca77, 7,0, " -31241", +__LINE__,0xfffffffd, 3,0,0xe88fc4ee,11,0,0x6cdceede,11,0,0xe88fc4ee,11,0,0x157981ce,11,0, " -393231122", +__LINE__,0xfffffffd, 3,0,0xffffffd9, 4,0,0xffffffc7, 4,0,0xffffffd9, 4,0,0xffffffa9, 4,0, " -39w", +__LINE__,0xfffffffd, 3,0,0xfffffe77, 5,0,0xfffffc6d, 5,0,0xfffffe77, 5,0,0xfffff727, 5,0, " -393", +__LINE__,0xfffffffd, 3,0,0xffffffd9, 4,0,0xffffffc7, 4,0,0xffffffd9, 4,0,0xffffffa9, 4,0, " -39", +__LINE__,0xff92cdae,10,0,0xfe04eeee,10,0,0xccdceede,10,0,0xfe04eeee,10,0,0x2b1013ce,10,0, " -33231122", +__LINE__,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0, " -3w", +__LINE__,0xffffffe5, 4,0,0xffffffdf, 4,0,0xffffffcd, 4,0,0xffffffdf, 4,0,0xffffffaf, 4,0, " -33", +__LINE__,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0, " -3", +__LINE__,0xfe12cdae,11,0,0xf5acb3ee,11,0,0x8cdceede,11,0,0xf5acb3ee,11,0,0x111128ce,11,0, " -173231122", +__LINE__,0xfffffff1, 4,0,0xffffffef, 4,0,0xffffffe9, 4,0,0xffffffef, 4,0,0xffffffdf, 4,0, " -17w", +__LINE__,0xffffff85, 5,0,0xffffff53, 5,0,0xfffffe8d, 5,0,0xffffff53, 5,0,0xfffffca3, 5,0, " -173", +__LINE__,0xfffffff1, 4,0,0xffffffef, 4,0,0xffffffe9, 4,0,0xffffffef, 4,0,0xffffffdf, 4,0, " -17", +__LINE__,0xabd2cdae,14,0,0x80000000,13,34,0x80000000,13,34,0x80000000,13,34,0x80000000,10,34, " -112413231122", +__LINE__,0xffffed5f, 7,0,0xffffd417, 7,0,0xfffeedbf, 7,0,0xffffd417, 7,0,0xfff8bc97, 7,0, " -11241w", +__LINE__,0xffff6af5, 8,0,0xfffe48e3, 8,0,0xffeedbed, 8,0,0xfffe48e3, 8,0,0xff432753, 8,0, " -112413", +__LINE__,0xffffed5f, 7,0,0xffffd417, 7,0,0xfffeedbf, 7,0,0xffffd417, 7,0,0xfff8bc97, 7,0, " -11241", +__LINE__,0xffffffff, 3,0,0xf47b86ee,11,0,0x6cdceede,11,0,0xf47b86ee,11,0,0x5399c3ce,11,0, " -193231122", +__LINE__,0xffffffff, 3,0,0xffffffed, 4,0,0xffffffe7, 4,0,0xffffffed, 4,0,0xffffffdd, 4,0, " -19w", +__LINE__,0xffffffff, 3,0,0xffffff3f, 5,0,0xfffffe6d, 5,0,0xffffff3f, 5,0,0xfffffc6f, 5,0, " -193", +__LINE__,0xffffffff, 3,0,0xffffffed, 4,0,0xffffffe7, 4,0,0xffffffed, 4,0,0xffffffdd, 4,0, " -19", +__LINE__,0xffd2cdae,10,0,0xff361bee,10,0,0xecdceede,10,0,0xff361bee,10,0,0xe88778ce,10,0, " -13231122", +__LINE__,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0, " -1w", +__LINE__,0xfffffff5, 4,0,0xfffffff3, 4,0,0xffffffed, 4,0,0xfffffff3, 4,0,0xffffffe3, 4,0, " -13", +__LINE__,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0, " -1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0xa73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a7, 5,0,0x000000a7, 5,0,0x00000000, 2,0, " 0xa7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000a73, 6,0,0x00000a73, 6,0,0x00000000, 2,0, " 0xa73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a7, 5,0,0x000000a7, 5,0,0x00000000, 2,0, " 0xa7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0xa12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000a1241, 8,0,0x000a1241, 8,0,0x00000000, 2,0, " 0xa1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00a12413, 9,0,0x00a12413, 9,0,0x00000000, 2,0, " 0xa12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000a1241, 8,0,0x000a1241, 8,0,0x00000000, 2,0, " 0xa1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0xa93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a9, 5,0,0x000000a9, 5,0,0x00000000, 2,0, " 0xa9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000a93, 6,0,0x00000a93, 6,0,0x00000000, 2,0, " 0xa93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a9, 5,0,0x000000a9, 5,0,0x00000000, 2,0, " 0xa9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xa3231122,11,0,0xa3231122,11,0,0x00000000, 2,0, " 0xa3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x0000000a, 4,0,0x0000000a, 4,0,0x00000000, 2,0, " 0xaw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a3, 5,0,0x000000a3, 5,0,0x00000000, 2,0, " 0xa3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x0000000a, 4,0,0x0000000a, 4,0,0x00000000, 2,0, " 0xa", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0x773231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000077, 5,0,0x00000077, 5,0,0x00000000, 2,0, " 0x77w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000773, 6,0,0x00000773, 6,0,0x00000000, 2,0, " 0x773", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000077, 5,0,0x00000077, 5,0,0x00000000, 2,0, " 0x77", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0x712413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00071241, 8,0,0x00071241, 8,0,0x00000000, 2,0, " 0x71241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00712413, 9,0,0x00712413, 9,0,0x00000000, 2,0, " 0x712413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00071241, 8,0,0x00071241, 8,0,0x00000000, 2,0, " 0x71241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, " 0x793231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000079, 5,0,0x00000079, 5,0,0x00000000, 2,0, " 0x79w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000793, 6,0,0x00000793, 6,0,0x00000000, 2,0, " 0x793", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000079, 5,0,0x00000079, 5,0,0x00000000, 2,0, " 0x79", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,11,0,0x73231122,11,0,0x00000000, 2,0, " 0x73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000007, 4,0,0x00000007, 4,0,0x00000000, 2,0, " 0x7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000073, 5,0,0x00000073, 5,0,0x00000000, 2,0, " 0x73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000007, 4,0,0x00000007, 4,0,0x00000000, 2,0, " 0x7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,12,0,0x73231122,12,0,0x00000000, 2,0, " 0x373231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000037, 5,0,0x00000037, 5,0,0x00000000, 2,0, " 0x37w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000373, 6,0,0x00000373, 6,0,0x00000000, 2,0, " 0x373", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000037, 5,0,0x00000037, 5,0,0x00000000, 2,0, " 0x37", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, " 0x312413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00031241, 8,0,0x00031241, 8,0,0x00000000, 2,0, " 0x31241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00312413, 9,0,0x00312413, 9,0,0x00000000, 2,0, " 0x312413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00031241, 8,0,0x00031241, 8,0,0x00000000, 2,0, " 0x31241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, " 0x393231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000039, 5,0,0x00000039, 5,0,0x00000000, 2,0, " 0x39w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000393, 6,0,0x00000393, 6,0,0x00000000, 2,0, " 0x393", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000039, 5,0,0x00000039, 5,0,0x00000000, 2,0, " 0x39", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x33231122,11,0,0x33231122,11,0,0x00000000, 2,0, " 0x33231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000003, 4,0,0x00000003, 4,0,0x00000000, 2,0, " 0x3w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000033, 5,0,0x00000033, 5,0,0x00000000, 2,0, " 0x33", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000003, 4,0,0x00000003, 4,0,0x00000000, 2,0, " 0x3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,12,0,0x73231122,12,0,0x00000000, 2,0, " 0x173231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000017, 5,0,0x00000017, 5,0,0x00000000, 2,0, " 0x17w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000173, 6,0,0x00000173, 6,0,0x00000000, 2,0, " 0x173", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000017, 5,0,0x00000017, 5,0,0x00000000, 2,0, " 0x17", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,14,34,0x7fffffff,14,34,0x00000000, 2,0, " 0x112413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00011241, 8,0,0x00011241, 8,0,0x00000000, 2,0, " 0x11241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00112413, 9,0,0x00112413, 9,0,0x00000000, 2,0, " 0x112413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00011241, 8,0,0x00011241, 8,0,0x00000000, 2,0, " 0x11241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, " 0x193231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000019, 5,0,0x00000019, 5,0,0x00000000, 2,0, " 0x19w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000193, 6,0,0x00000193, 6,0,0x00000000, 2,0, " 0x193", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000019, 5,0,0x00000019, 5,0,0x00000000, 2,0, " 0x19", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x13231122,11,0,0x13231122,11,0,0x00000000, 2,0, " 0x13231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000001, 4,0,0x00000001, 4,0,0x00000000, 2,0, " 0x1w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000013, 5,0,0x00000013, 5,0,0x00000000, 2,0, " 0x13", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000001, 4,0,0x00000001, 4,0,0x00000000, 2,0, " 0x1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34, " 0a73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 4,0, " 0a7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b21, 5,0, " 0a73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 4,0, " 0a7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34, " 0a12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 7,0, " 0a1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x071c814d, 8,0, " 0a12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 7,0, " 0a1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34, " 0a93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 4,0, " 0a9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b55, 5,0, " 0a93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 4,0, " 0a9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xec11cdb2,10,0, " 0a3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0, " 0aw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00000107, 4,0, " 0a3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0, " 0a", +__LINE__,0x07ed3252,11,0,0x2e169212,11,0,0x07ed3252,11,0,0x07ed3252,11,0,0xa94f9d32,11,0, " 0773231122", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x0000003f, 4,0,0x0000003f, 4,0,0x000000bd, 4,0, " 077w", +__LINE__,0x000001fb, 5,0,0x00000305, 5,0,0x000001fb, 5,0,0x000001fb, 5,0,0x00001335, 5,0, " 0773", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x0000003f, 4,0,0x0000003f, 4,0,0x000000bd, 4,0, " 077", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff, 9,34, " 0712413231122", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x000072a1, 7,0,0x000072a1, 7,0,0x003119c9, 7,0, " 071241w", +__LINE__,0x0003950b, 8,0,0x000adedd, 8,0,0x0003950b, 8,0,0x0003950b, 8,0,0x04fc9e6d, 8,0, " 0712413", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x000072a1, 7,0,0x000072a1, 7,0,0x003119c9, 7,0, " 071241", +__LINE__,0x00000007, 3,0,0x2f47bf12,11,0,0x00000007, 3,0,0x00000007, 3,0,0x7fffffff,10,34, " 0793231122", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000007, 3,0,0x00000007, 3,0,0x000000bf, 4,0, " 079w", +__LINE__,0x00000007, 3,0,0x00000319, 5,0,0x00000007, 3,0,0x00000007, 3,0,0x00001369, 5,0, " 0793", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000007, 3,0,0x00000007, 3,0,0x000000bf, 4,0, " 079", +__LINE__,0x00ed3252,10,0,0x045d6b12,10,0,0x00ed3252,10,0,0x00ed3252,10,0,0x7fffffff, 9,34, " 073231122", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, " 07w", +__LINE__,0x0000003b, 4,0,0x00000049, 4,0,0x0000003b, 4,0,0x0000003b, 4,0,0x000000b9, 4,0, " 073", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, " 07", +__LINE__,0x03ed3252,11,0,0x163f0e12,11,0,0x03ed3252,11,0,0x03ed3252,11,0,0x7fffffff, 9,34, " 0373231122", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x0000001f, 4,0,0x0000001f, 4,0,0x00000055, 4,0, " 037w", +__LINE__,0x000000fb, 5,0,0x00000175, 5,0,0x000000fb, 5,0,0x000000fb, 5,0,0x000008a5, 5,0, " 0373", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x0000001f, 4,0,0x0000001f, 4,0,0x00000055, 4,0, " 037", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff,11,34, " 0312413231122", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x000032a1, 7,0,0x000032a1, 7,0,0x00153589, 7,0, " 031241w", +__LINE__,0x0001950b, 8,0,0x0004c45d, 8,0,0x0001950b, 8,0,0x0001950b, 8,0,0x02276fed, 8,0, " 0312413", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x000032a1, 7,0,0x000032a1, 7,0,0x00153589, 7,0, " 031241", +__LINE__,0x00000003, 3,0,0x17703b12,11,0,0x00000003, 3,0,0x00000003, 3,0,0xea867e32,11,0, " 0393231122", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000003, 3,0,0x00000003, 3,0,0x00000057, 4,0, " 039w", +__LINE__,0x00000003, 3,0,0x00000189, 5,0,0x00000003, 3,0,0x00000003, 3,0,0x000008d9, 5,0, " 0393", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000003, 3,0,0x00000003, 3,0,0x00000057, 4,0, " 039", +__LINE__,0x006d3252,10,0,0x01fb1112,10,0,0x006d3252,10,0,0x006d3252,10,0,0xd4efec32,10,0, " 033231122", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, " 03w", +__LINE__,0x0000001b, 4,0,0x00000021, 4,0,0x0000001b, 4,0,0x0000001b, 4,0,0x00000051, 4,0, " 033", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, " 03", +__LINE__,0x01ed3252,11,0,0x0a534c12,11,0,0x01ed3252,11,0,0x01ed3252,11,0,0xeeeed732,11,0, " 0173231122", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x0000000f, 4,0,0x0000000f, 4,0,0x00000021, 4,0, " 017w", +__LINE__,0x0000007b, 5,0,0x000000ad, 5,0,0x0000007b, 5,0,0x0000007b, 5,0,0x0000035d, 5,0, " 0173", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x0000000f, 4,0,0x0000000f, 4,0,0x00000021, 4,0, " 017", +__LINE__,0x542d3252,14,0,0x7fffffff,13,34,0x542d3252,14,0,0x542d3252,14,0,0x7fffffff,10,34, " 0112413231122", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x000012a1, 7,0,0x000012a1, 7,0,0x00074369, 7,0, " 011241w", +__LINE__,0x0000950b, 8,0,0x0001b71d, 8,0,0x0000950b, 8,0,0x0000950b, 8,0,0x00bcd8ad, 8,0, " 0112413", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x000012a1, 7,0,0x000012a1, 7,0,0x00074369, 7,0, " 011241", +__LINE__,0x00000001, 3,0,0x0b847912,11,0,0x00000001, 3,0,0x00000001, 3,0,0xac663c32,11,0, " 0193231122", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000001, 3,0,0x00000001, 3,0,0x00000023, 4,0, " 019w", +__LINE__,0x00000001, 3,0,0x000000c1, 5,0,0x00000001, 3,0,0x00000001, 3,0,0x00000391, 5,0, " 0193", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000001, 3,0,0x00000001, 3,0,0x00000023, 4,0, " 019", +__LINE__,0x002d3252,10,0,0x00c9e412,10,0,0x002d3252,10,0,0x002d3252,10,0,0x17788732,10,0, " 013231122", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, " 01w", +__LINE__,0x0000000b, 4,0,0x0000000d, 4,0,0x0000000b, 4,0,0x0000000b, 4,0,0x0000001d, 4,0, " 013", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, " 01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 8,34, " a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 3,0,0x00000000, 0,0,0x0000010b, 3,0, " a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a73, 4,0,0x00000000, 0,0,0x00001b21, 4,0, " a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 3,0,0x00000000, 0,0,0x0000010b, 3,0, " a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 9,34, " a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 6,0,0x00000000, 0,0,0x004604f9, 6,0, " a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00a12413, 7,0,0x00000000, 0,0,0x071c814d, 7,0, " a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 6,0,0x00000000, 0,0,0x004604f9, 6,0, " a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 8,34, " a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 3,0,0x00000000, 0,0,0x0000010d, 3,0, " a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a93, 4,0,0x00000000, 0,0,0x00001b55, 4,0, " a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 3,0,0x00000000, 0,0,0x0000010d, 3,0, " a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xa3231122, 9,0,0x00000000, 0,0,0xec11cdb2, 9,0, " a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0,0x00000000, 0,0,0x0000000a, 2,0, " aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a3, 3,0,0x00000000, 0,0,0x00000107, 3,0, " a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0,0x00000000, 0,0,0x0000000a, 2,0, " a", +__LINE__,0x07ed3252,10,0,0x2e169212,10,0,0x7fffffff, 9,34,0x2e169212,10,0,0xa94f9d32,10,0, " 773231122", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x00000077, 3,0,0x0000004d, 3,0,0x000000bd, 3,0, " 77w", +__LINE__,0x000001fb, 4,0,0x00000305, 4,0,0x00000773, 4,0,0x00000305, 4,0,0x00001335, 4,0, " 773", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x00000077, 3,0,0x0000004d, 3,0,0x000000bd, 3,0, " 77", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff, 9,34,0x7fffffff,11,34,0x7fffffff, 8,34, " 712413231122", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x00071241, 6,0,0x00011649, 6,0,0x003119c9, 6,0, " 71241w", +__LINE__,0x0003950b, 7,0,0x000adedd, 7,0,0x00712413, 7,0,0x000adedd, 7,0,0x04fc9e6d, 7,0, " 712413", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x00071241, 6,0,0x00011649, 6,0,0x003119c9, 6,0, " 71241", +__LINE__,0x00000007, 2,0,0x2f47bf12,10,0,0x93231122,10,0,0x2f47bf12,10,0,0x7fffffff, 9,34, " 793231122", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000079, 3,0,0x0000004f, 3,0,0x000000bf, 3,0, " 79w", +__LINE__,0x00000007, 2,0,0x00000319, 4,0,0x00000793, 4,0,0x00000319, 4,0,0x00001369, 4,0, " 793", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000079, 3,0,0x0000004f, 3,0,0x000000bf, 3,0, " 79", +__LINE__,0x00ed3252, 9,0,0x045d6b12, 9,0,0x73231122, 9,0,0x045d6b12, 9,0,0x7fffffff, 8,34, " 73231122", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, " 7w", +__LINE__,0x0000003b, 3,0,0x00000049, 3,0,0x00000073, 3,0,0x00000049, 3,0,0x000000b9, 3,0, " 73", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, " 7", +__LINE__,0x03ed3252,10,0,0x163f0e12,10,0,0x73231122,10,0,0x163f0e12,10,0,0x7fffffff, 8,34, " 373231122", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x00000037, 3,0,0x00000025, 3,0,0x00000055, 3,0, " 37w", +__LINE__,0x000000fb, 4,0,0x00000175, 4,0,0x00000373, 4,0,0x00000175, 4,0,0x000008a5, 4,0, " 373", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x00000037, 3,0,0x00000025, 3,0,0x00000055, 3,0, " 37", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff, 9,34,0x7fffffff,11,34,0x7fffffff,10,34, " 312413231122", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x00031241, 6,0,0x00007a09, 6,0,0x00153589, 6,0, " 31241w", +__LINE__,0x0001950b, 7,0,0x0004c45d, 7,0,0x00312413, 7,0,0x0004c45d, 7,0,0x02276fed, 7,0, " 312413", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x00031241, 6,0,0x00007a09, 6,0,0x00153589, 6,0, " 31241", +__LINE__,0x00000003, 2,0,0x17703b12,10,0,0x93231122,10,0,0x17703b12,10,0,0xea867e32,10,0, " 393231122", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000039, 3,0,0x00000027, 3,0,0x00000057, 3,0, " 39w", +__LINE__,0x00000003, 2,0,0x00000189, 4,0,0x00000393, 4,0,0x00000189, 4,0,0x000008d9, 4,0, " 393", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000039, 3,0,0x00000027, 3,0,0x00000057, 3,0, " 39", +__LINE__,0x006d3252, 9,0,0x01fb1112, 9,0,0x33231122, 9,0,0x01fb1112, 9,0,0xd4efec32, 9,0, " 33231122", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, " 3w", +__LINE__,0x0000001b, 3,0,0x00000021, 3,0,0x00000033, 3,0,0x00000021, 3,0,0x00000051, 3,0, " 33", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, " 3", +__LINE__,0x01ed3252,10,0,0x0a534c12,10,0,0x73231122,10,0,0x0a534c12,10,0,0xeeeed732,10,0, " 173231122", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x00000017, 3,0,0x00000011, 3,0,0x00000021, 3,0, " 17w", +__LINE__,0x0000007b, 4,0,0x000000ad, 4,0,0x00000173, 4,0,0x000000ad, 4,0,0x0000035d, 4,0, " 173", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x00000017, 3,0,0x00000011, 3,0,0x00000021, 3,0, " 17", +__LINE__,0x542d3252,13,0,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff, 9,34, " 112413231122", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x00011241, 6,0,0x00002be9, 6,0,0x00074369, 6,0, " 11241w", +__LINE__,0x0000950b, 7,0,0x0001b71d, 7,0,0x00112413, 7,0,0x0001b71d, 7,0,0x00bcd8ad, 7,0, " 112413", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x00011241, 6,0,0x00002be9, 6,0,0x00074369, 6,0, " 11241", +__LINE__,0x00000001, 2,0,0x0b847912,10,0,0x93231122,10,0,0x0b847912,10,0,0xac663c32,10,0, " 193231122", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000019, 3,0,0x00000013, 3,0,0x00000023, 3,0, " 19w", +__LINE__,0x00000001, 2,0,0x000000c1, 4,0,0x00000193, 4,0,0x000000c1, 4,0,0x00000391, 4,0, " 193", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000019, 3,0,0x00000013, 3,0,0x00000023, 3,0, " 19", +__LINE__,0x002d3252, 9,0,0x00c9e412, 9,0,0x13231122, 9,0,0x00c9e412, 9,0,0x17788732, 9,0, " 13231122", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, " 1w", +__LINE__,0x0000000b, 3,0,0x0000000d, 3,0,0x00000013, 3,0,0x0000000d, 3,0,0x0000001d, 3,0, " 13", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, " 1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0xa73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a7, 5,0,0x000000a7, 5,0,0x00000000, 2,0, "+0xa7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000a73, 6,0,0x00000a73, 6,0,0x00000000, 2,0, "+0xa73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a7, 5,0,0x000000a7, 5,0,0x00000000, 2,0, "+0xa7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0xa12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000a1241, 8,0,0x000a1241, 8,0,0x00000000, 2,0, "+0xa1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00a12413, 9,0,0x00a12413, 9,0,0x00000000, 2,0, "+0xa12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000a1241, 8,0,0x000a1241, 8,0,0x00000000, 2,0, "+0xa1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0xa93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a9, 5,0,0x000000a9, 5,0,0x00000000, 2,0, "+0xa9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000a93, 6,0,0x00000a93, 6,0,0x00000000, 2,0, "+0xa93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a9, 5,0,0x000000a9, 5,0,0x00000000, 2,0, "+0xa9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xa3231122,11,0,0xa3231122,11,0,0x00000000, 2,0, "+0xa3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x0000000a, 4,0,0x0000000a, 4,0,0x00000000, 2,0, "+0xaw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x000000a3, 5,0,0x000000a3, 5,0,0x00000000, 2,0, "+0xa3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x0000000a, 4,0,0x0000000a, 4,0,0x00000000, 2,0, "+0xa", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0x773231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000077, 5,0,0x00000077, 5,0,0x00000000, 2,0, "+0x77w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000773, 6,0,0x00000773, 6,0,0x00000000, 2,0, "+0x773", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000077, 5,0,0x00000077, 5,0,0x00000000, 2,0, "+0x77", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0x712413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00071241, 8,0,0x00071241, 8,0,0x00000000, 2,0, "+0x71241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00712413, 9,0,0x00712413, 9,0,0x00000000, 2,0, "+0x712413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00071241, 8,0,0x00071241, 8,0,0x00000000, 2,0, "+0x71241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, "+0x793231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000079, 5,0,0x00000079, 5,0,0x00000000, 2,0, "+0x79w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000793, 6,0,0x00000793, 6,0,0x00000000, 2,0, "+0x793", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000079, 5,0,0x00000079, 5,0,0x00000000, 2,0, "+0x79", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,11,0,0x73231122,11,0,0x00000000, 2,0, "+0x73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000007, 4,0,0x00000007, 4,0,0x00000000, 2,0, "+0x7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000073, 5,0,0x00000073, 5,0,0x00000000, 2,0, "+0x73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000007, 4,0,0x00000007, 4,0,0x00000000, 2,0, "+0x7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,12,0,0x73231122,12,0,0x00000000, 2,0, "+0x373231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000037, 5,0,0x00000037, 5,0,0x00000000, 2,0, "+0x37w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000373, 6,0,0x00000373, 6,0,0x00000000, 2,0, "+0x373", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000037, 5,0,0x00000037, 5,0,0x00000000, 2,0, "+0x37", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,11,34,0x7fffffff,11,34,0x00000000, 2,0, "+0x312413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00031241, 8,0,0x00031241, 8,0,0x00000000, 2,0, "+0x31241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00312413, 9,0,0x00312413, 9,0,0x00000000, 2,0, "+0x312413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00031241, 8,0,0x00031241, 8,0,0x00000000, 2,0, "+0x31241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, "+0x393231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000039, 5,0,0x00000039, 5,0,0x00000000, 2,0, "+0x39w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000393, 6,0,0x00000393, 6,0,0x00000000, 2,0, "+0x393", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000039, 5,0,0x00000039, 5,0,0x00000000, 2,0, "+0x39", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x33231122,11,0,0x33231122,11,0,0x00000000, 2,0, "+0x33231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000003, 4,0,0x00000003, 4,0,0x00000000, 2,0, "+0x3w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000033, 5,0,0x00000033, 5,0,0x00000000, 2,0, "+0x33", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000003, 4,0,0x00000003, 4,0,0x00000000, 2,0, "+0x3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x73231122,12,0,0x73231122,12,0,0x00000000, 2,0, "+0x173231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000017, 5,0,0x00000017, 5,0,0x00000000, 2,0, "+0x17w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000173, 6,0,0x00000173, 6,0,0x00000000, 2,0, "+0x173", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000017, 5,0,0x00000017, 5,0,0x00000000, 2,0, "+0x17", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x7fffffff,14,34,0x7fffffff,14,34,0x00000000, 2,0, "+0x112413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00011241, 8,0,0x00011241, 8,0,0x00000000, 2,0, "+0x11241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00112413, 9,0,0x00112413, 9,0,0x00000000, 2,0, "+0x112413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00011241, 8,0,0x00011241, 8,0,0x00000000, 2,0, "+0x11241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x93231122,12,0,0x93231122,12,0,0x00000000, 2,0, "+0x193231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000019, 5,0,0x00000019, 5,0,0x00000000, 2,0, "+0x19w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000193, 6,0,0x00000193, 6,0,0x00000000, 2,0, "+0x193", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000019, 5,0,0x00000019, 5,0,0x00000000, 2,0, "+0x19", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x13231122,11,0,0x13231122,11,0,0x00000000, 2,0, "+0x13231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000001, 4,0,0x00000001, 4,0,0x00000000, 2,0, "+0x1w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000013, 5,0,0x00000013, 5,0,0x00000000, 2,0, "+0x13", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000001, 4,0,0x00000001, 4,0,0x00000000, 2,0, "+0x1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34, "+0a73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 4,0, "+0a7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b21, 5,0, "+0a73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 4,0, "+0a7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff,10,34, "+0a12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 7,0, "+0a1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x071c814d, 8,0, "+0a12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 7,0, "+0a1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34, "+0a93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 4,0, "+0a9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b55, 5,0, "+0a93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 4,0, "+0a9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xec11cdb2,10,0, "+0a3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0, "+0aw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x00000107, 4,0, "+0a3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 3,0, "+0a", +__LINE__,0x07ed3252,11,0,0x2e169212,11,0,0x07ed3252,11,0,0x07ed3252,11,0,0xa94f9d32,11,0, "+0773231122", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x0000003f, 4,0,0x0000003f, 4,0,0x000000bd, 4,0, "+077w", +__LINE__,0x000001fb, 5,0,0x00000305, 5,0,0x000001fb, 5,0,0x000001fb, 5,0,0x00001335, 5,0, "+0773", +__LINE__,0x0000003f, 4,0,0x0000004d, 4,0,0x0000003f, 4,0,0x0000003f, 4,0,0x000000bd, 4,0, "+077", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff, 9,34, "+0712413231122", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x000072a1, 7,0,0x000072a1, 7,0,0x003119c9, 7,0, "+071241w", +__LINE__,0x0003950b, 8,0,0x000adedd, 8,0,0x0003950b, 8,0,0x0003950b, 8,0,0x04fc9e6d, 8,0, "+0712413", +__LINE__,0x000072a1, 7,0,0x00011649, 7,0,0x000072a1, 7,0,0x000072a1, 7,0,0x003119c9, 7,0, "+071241", +__LINE__,0x00000007, 3,0,0x2f47bf12,11,0,0x00000007, 3,0,0x00000007, 3,0,0x7fffffff,10,34, "+0793231122", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000007, 3,0,0x00000007, 3,0,0x000000bf, 4,0, "+079w", +__LINE__,0x00000007, 3,0,0x00000319, 5,0,0x00000007, 3,0,0x00000007, 3,0,0x00001369, 5,0, "+0793", +__LINE__,0x00000007, 3,0,0x0000004f, 4,0,0x00000007, 3,0,0x00000007, 3,0,0x000000bf, 4,0, "+079", +__LINE__,0x00ed3252,10,0,0x045d6b12,10,0,0x00ed3252,10,0,0x00ed3252,10,0,0x7fffffff, 9,34, "+073231122", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, "+07w", +__LINE__,0x0000003b, 4,0,0x00000049, 4,0,0x0000003b, 4,0,0x0000003b, 4,0,0x000000b9, 4,0, "+073", +__LINE__,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0,0x00000007, 3,0, "+07", +__LINE__,0x03ed3252,11,0,0x163f0e12,11,0,0x03ed3252,11,0,0x03ed3252,11,0,0x7fffffff, 9,34, "+0373231122", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x0000001f, 4,0,0x0000001f, 4,0,0x00000055, 4,0, "+037w", +__LINE__,0x000000fb, 5,0,0x00000175, 5,0,0x000000fb, 5,0,0x000000fb, 5,0,0x000008a5, 5,0, "+0373", +__LINE__,0x0000001f, 4,0,0x00000025, 4,0,0x0000001f, 4,0,0x0000001f, 4,0,0x00000055, 4,0, "+037", +__LINE__,0x7fffffff,13,34,0x7fffffff,12,34,0x7fffffff,13,34,0x7fffffff,13,34,0x7fffffff,11,34, "+0312413231122", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x000032a1, 7,0,0x000032a1, 7,0,0x00153589, 7,0, "+031241w", +__LINE__,0x0001950b, 8,0,0x0004c45d, 8,0,0x0001950b, 8,0,0x0001950b, 8,0,0x02276fed, 8,0, "+0312413", +__LINE__,0x000032a1, 7,0,0x00007a09, 7,0,0x000032a1, 7,0,0x000032a1, 7,0,0x00153589, 7,0, "+031241", +__LINE__,0x00000003, 3,0,0x17703b12,11,0,0x00000003, 3,0,0x00000003, 3,0,0xea867e32,11,0, "+0393231122", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000003, 3,0,0x00000003, 3,0,0x00000057, 4,0, "+039w", +__LINE__,0x00000003, 3,0,0x00000189, 5,0,0x00000003, 3,0,0x00000003, 3,0,0x000008d9, 5,0, "+0393", +__LINE__,0x00000003, 3,0,0x00000027, 4,0,0x00000003, 3,0,0x00000003, 3,0,0x00000057, 4,0, "+039", +__LINE__,0x006d3252,10,0,0x01fb1112,10,0,0x006d3252,10,0,0x006d3252,10,0,0xd4efec32,10,0, "+033231122", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, "+03w", +__LINE__,0x0000001b, 4,0,0x00000021, 4,0,0x0000001b, 4,0,0x0000001b, 4,0,0x00000051, 4,0, "+033", +__LINE__,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0,0x00000003, 3,0, "+03", +__LINE__,0x01ed3252,11,0,0x0a534c12,11,0,0x01ed3252,11,0,0x01ed3252,11,0,0xeeeed732,11,0, "+0173231122", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x0000000f, 4,0,0x0000000f, 4,0,0x00000021, 4,0, "+017w", +__LINE__,0x0000007b, 5,0,0x000000ad, 5,0,0x0000007b, 5,0,0x0000007b, 5,0,0x0000035d, 5,0, "+0173", +__LINE__,0x0000000f, 4,0,0x00000011, 4,0,0x0000000f, 4,0,0x0000000f, 4,0,0x00000021, 4,0, "+017", +__LINE__,0x542d3252,14,0,0x7fffffff,13,34,0x542d3252,14,0,0x542d3252,14,0,0x7fffffff,10,34, "+0112413231122", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x000012a1, 7,0,0x000012a1, 7,0,0x00074369, 7,0, "+011241w", +__LINE__,0x0000950b, 8,0,0x0001b71d, 8,0,0x0000950b, 8,0,0x0000950b, 8,0,0x00bcd8ad, 8,0, "+0112413", +__LINE__,0x000012a1, 7,0,0x00002be9, 7,0,0x000012a1, 7,0,0x000012a1, 7,0,0x00074369, 7,0, "+011241", +__LINE__,0x00000001, 3,0,0x0b847912,11,0,0x00000001, 3,0,0x00000001, 3,0,0xac663c32,11,0, "+0193231122", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000001, 3,0,0x00000001, 3,0,0x00000023, 4,0, "+019w", +__LINE__,0x00000001, 3,0,0x000000c1, 5,0,0x00000001, 3,0,0x00000001, 3,0,0x00000391, 5,0, "+0193", +__LINE__,0x00000001, 3,0,0x00000013, 4,0,0x00000001, 3,0,0x00000001, 3,0,0x00000023, 4,0, "+019", +__LINE__,0x002d3252,10,0,0x00c9e412,10,0,0x002d3252,10,0,0x002d3252,10,0,0x17788732,10,0, "+013231122", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, "+01w", +__LINE__,0x0000000b, 4,0,0x0000000d, 4,0,0x0000000b, 4,0,0x0000000b, 4,0,0x0000001d, 4,0, "+013", +__LINE__,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0,0x00000001, 3,0, "+01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 8,34, "+a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 3,0,0x00000000, 0,0,0x0000010b, 3,0, "+a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a73, 4,0,0x00000000, 0,0,0x00001b21, 4,0, "+a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 3,0,0x00000000, 0,0,0x0000010b, 3,0, "+a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 9,34, "+a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 6,0,0x00000000, 0,0,0x004604f9, 6,0, "+a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00a12413, 7,0,0x00000000, 0,0,0x071c814d, 7,0, "+a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 6,0,0x00000000, 0,0,0x004604f9, 6,0, "+a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34,0x00000000, 0,0,0x7fffffff, 8,34, "+a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 3,0,0x00000000, 0,0,0x0000010d, 3,0, "+a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a93, 4,0,0x00000000, 0,0,0x00001b55, 4,0, "+a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 3,0,0x00000000, 0,0,0x0000010d, 3,0, "+a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xa3231122, 9,0,0x00000000, 0,0,0xec11cdb2, 9,0, "+a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0,0x00000000, 0,0,0x0000000a, 2,0, "+aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a3, 3,0,0x00000000, 0,0,0x00000107, 3,0, "+a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0,0x00000000, 0,0,0x0000000a, 2,0, "+a", +__LINE__,0x07ed3252,10,0,0x2e169212,10,0,0x7fffffff, 9,34,0x2e169212,10,0,0xa94f9d32,10,0, "+773231122", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x00000077, 3,0,0x0000004d, 3,0,0x000000bd, 3,0, "+77w", +__LINE__,0x000001fb, 4,0,0x00000305, 4,0,0x00000773, 4,0,0x00000305, 4,0,0x00001335, 4,0, "+773", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x00000077, 3,0,0x0000004d, 3,0,0x000000bd, 3,0, "+77", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff, 9,34,0x7fffffff,11,34,0x7fffffff, 8,34, "+712413231122", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x00071241, 6,0,0x00011649, 6,0,0x003119c9, 6,0, "+71241w", +__LINE__,0x0003950b, 7,0,0x000adedd, 7,0,0x00712413, 7,0,0x000adedd, 7,0,0x04fc9e6d, 7,0, "+712413", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x00071241, 6,0,0x00011649, 6,0,0x003119c9, 6,0, "+71241", +__LINE__,0x00000007, 2,0,0x2f47bf12,10,0,0x93231122,10,0,0x2f47bf12,10,0,0x7fffffff, 9,34, "+793231122", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000079, 3,0,0x0000004f, 3,0,0x000000bf, 3,0, "+79w", +__LINE__,0x00000007, 2,0,0x00000319, 4,0,0x00000793, 4,0,0x00000319, 4,0,0x00001369, 4,0, "+793", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000079, 3,0,0x0000004f, 3,0,0x000000bf, 3,0, "+79", +__LINE__,0x00ed3252, 9,0,0x045d6b12, 9,0,0x73231122, 9,0,0x045d6b12, 9,0,0x7fffffff, 8,34, "+73231122", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, "+7w", +__LINE__,0x0000003b, 3,0,0x00000049, 3,0,0x00000073, 3,0,0x00000049, 3,0,0x000000b9, 3,0, "+73", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, "+7", +__LINE__,0x03ed3252,10,0,0x163f0e12,10,0,0x73231122,10,0,0x163f0e12,10,0,0x7fffffff, 8,34, "+373231122", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x00000037, 3,0,0x00000025, 3,0,0x00000055, 3,0, "+37w", +__LINE__,0x000000fb, 4,0,0x00000175, 4,0,0x00000373, 4,0,0x00000175, 4,0,0x000008a5, 4,0, "+373", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x00000037, 3,0,0x00000025, 3,0,0x00000055, 3,0, "+37", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff, 9,34,0x7fffffff,11,34,0x7fffffff,10,34, "+312413231122", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x00031241, 6,0,0x00007a09, 6,0,0x00153589, 6,0, "+31241w", +__LINE__,0x0001950b, 7,0,0x0004c45d, 7,0,0x00312413, 7,0,0x0004c45d, 7,0,0x02276fed, 7,0, "+312413", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x00031241, 6,0,0x00007a09, 6,0,0x00153589, 6,0, "+31241", +__LINE__,0x00000003, 2,0,0x17703b12,10,0,0x93231122,10,0,0x17703b12,10,0,0xea867e32,10,0, "+393231122", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000039, 3,0,0x00000027, 3,0,0x00000057, 3,0, "+39w", +__LINE__,0x00000003, 2,0,0x00000189, 4,0,0x00000393, 4,0,0x00000189, 4,0,0x000008d9, 4,0, "+393", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000039, 3,0,0x00000027, 3,0,0x00000057, 3,0, "+39", +__LINE__,0x006d3252, 9,0,0x01fb1112, 9,0,0x33231122, 9,0,0x01fb1112, 9,0,0xd4efec32, 9,0, "+33231122", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, "+3w", +__LINE__,0x0000001b, 3,0,0x00000021, 3,0,0x00000033, 3,0,0x00000021, 3,0,0x00000051, 3,0, "+33", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, "+3", +__LINE__,0x01ed3252,10,0,0x0a534c12,10,0,0x73231122,10,0,0x0a534c12,10,0,0xeeeed732,10,0, "+173231122", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x00000017, 3,0,0x00000011, 3,0,0x00000021, 3,0, "+17w", +__LINE__,0x0000007b, 4,0,0x000000ad, 4,0,0x00000173, 4,0,0x000000ad, 4,0,0x0000035d, 4,0, "+173", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x00000017, 3,0,0x00000011, 3,0,0x00000021, 3,0, "+17", +__LINE__,0x542d3252,13,0,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff, 9,34, "+112413231122", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x00011241, 6,0,0x00002be9, 6,0,0x00074369, 6,0, "+11241w", +__LINE__,0x0000950b, 7,0,0x0001b71d, 7,0,0x00112413, 7,0,0x0001b71d, 7,0,0x00bcd8ad, 7,0, "+112413", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x00011241, 6,0,0x00002be9, 6,0,0x00074369, 6,0, "+11241", +__LINE__,0x00000001, 2,0,0x0b847912,10,0,0x93231122,10,0,0x0b847912,10,0,0xac663c32,10,0, "+193231122", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000019, 3,0,0x00000013, 3,0,0x00000023, 3,0, "+19w", +__LINE__,0x00000001, 2,0,0x000000c1, 4,0,0x00000193, 4,0,0x000000c1, 4,0,0x00000391, 4,0, "+193", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000019, 3,0,0x00000013, 3,0,0x00000023, 3,0, "+19", +__LINE__,0x002d3252, 9,0,0x00c9e412, 9,0,0x13231122, 9,0,0x00c9e412, 9,0,0x17788732, 9,0, "+13231122", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, "+1w", +__LINE__,0x0000000b, 3,0,0x0000000d, 3,0,0x00000013, 3,0,0x0000000d, 3,0,0x0000001d, 3,0, "+13", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, "+1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0xa73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff59, 5,0,0xffffff59, 5,0,0x00000000, 2,0, "-0xa7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffff58d, 6,0,0xfffff58d, 6,0,0x00000000, 2,0, "-0xa73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff59, 5,0,0xffffff59, 5,0,0x00000000, 2,0, "-0xa7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0xa12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfff5edbf, 8,0,0xfff5edbf, 8,0,0x00000000, 2,0, "-0xa1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xff5edbed, 9,0,0xff5edbed, 9,0,0x00000000, 2,0, "-0xa12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfff5edbf, 8,0,0xfff5edbf, 8,0,0x00000000, 2,0, "-0xa1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0xa93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff57, 5,0,0xffffff57, 5,0,0x00000000, 2,0, "-0xa9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffff56d, 6,0,0xfffff56d, 6,0,0x00000000, 2,0, "-0xa93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff57, 5,0,0xffffff57, 5,0,0x00000000, 2,0, "-0xa9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x5cdceede,11,0,0x5cdceede,11,0,0x00000000, 2,0, "-0xa3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffff6, 4,0,0xfffffff6, 4,0,0x00000000, 2,0, "-0xaw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff5d, 5,0,0xffffff5d, 5,0,0x00000000, 2,0, "-0xa3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffff6, 4,0,0xfffffff6, 4,0,0x00000000, 2,0, "-0xa", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0x773231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff89, 5,0,0xffffff89, 5,0,0x00000000, 2,0, "-0x77w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffff88d, 6,0,0xfffff88d, 6,0,0x00000000, 2,0, "-0x773", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff89, 5,0,0xffffff89, 5,0,0x00000000, 2,0, "-0x77", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0x712413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfff8edbf, 8,0,0xfff8edbf, 8,0,0x00000000, 2,0, "-0x71241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xff8edbed, 9,0,0xff8edbed, 9,0,0x00000000, 2,0, "-0x712413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfff8edbf, 8,0,0xfff8edbf, 8,0,0x00000000, 2,0, "-0x71241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x6cdceede,12,0,0x6cdceede,12,0,0x00000000, 2,0, "-0x793231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff87, 5,0,0xffffff87, 5,0,0x00000000, 2,0, "-0x79w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffff86d, 6,0,0xfffff86d, 6,0,0x00000000, 2,0, "-0x793", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff87, 5,0,0xffffff87, 5,0,0x00000000, 2,0, "-0x79", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x8cdceede,11,0,0x8cdceede,11,0,0x00000000, 2,0, "-0x73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0x00000000, 2,0, "-0x7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffff8d, 5,0,0xffffff8d, 5,0,0x00000000, 2,0, "-0x73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffff9, 4,0,0xfffffff9, 4,0,0x00000000, 2,0, "-0x7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x8cdceede,12,0,0x8cdceede,12,0,0x00000000, 2,0, "-0x373231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffc9, 5,0,0xffffffc9, 5,0,0x00000000, 2,0, "-0x37w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffc8d, 6,0,0xfffffc8d, 6,0,0x00000000, 2,0, "-0x373", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffc9, 5,0,0xffffffc9, 5,0,0x00000000, 2,0, "-0x37", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,11,34,0x80000000,11,34,0x00000000, 2,0, "-0x312413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffcedbf, 8,0,0xfffcedbf, 8,0,0x00000000, 2,0, "-0x31241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffcedbed, 9,0,0xffcedbed, 9,0,0x00000000, 2,0, "-0x312413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffcedbf, 8,0,0xfffcedbf, 8,0,0x00000000, 2,0, "-0x31241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x6cdceede,12,0,0x6cdceede,12,0,0x00000000, 2,0, "-0x393231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffc7, 5,0,0xffffffc7, 5,0,0x00000000, 2,0, "-0x39w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffc6d, 6,0,0xfffffc6d, 6,0,0x00000000, 2,0, "-0x393", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffc7, 5,0,0xffffffc7, 5,0,0x00000000, 2,0, "-0x39", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xccdceede,11,0,0xccdceede,11,0,0x00000000, 2,0, "-0x33231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0x00000000, 2,0, "-0x3w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffcd, 5,0,0xffffffcd, 5,0,0x00000000, 2,0, "-0x33", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffffd, 4,0,0xfffffffd, 4,0,0x00000000, 2,0, "-0x3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x8cdceede,12,0,0x8cdceede,12,0,0x00000000, 2,0, "-0x173231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffe9, 5,0,0xffffffe9, 5,0,0x00000000, 2,0, "-0x17w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffe8d, 6,0,0xfffffe8d, 6,0,0x00000000, 2,0, "-0x173", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffe9, 5,0,0xffffffe9, 5,0,0x00000000, 2,0, "-0x17", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x80000000,14,34,0x80000000,14,34,0x00000000, 2,0, "-0x112413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffeedbf, 8,0,0xfffeedbf, 8,0,0x00000000, 2,0, "-0x11241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffeedbed, 9,0,0xffeedbed, 9,0,0x00000000, 2,0, "-0x112413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffeedbf, 8,0,0xfffeedbf, 8,0,0x00000000, 2,0, "-0x11241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x6cdceede,12,0,0x6cdceede,12,0,0x00000000, 2,0, "-0x193231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffe7, 5,0,0xffffffe7, 5,0,0x00000000, 2,0, "-0x19w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xfffffe6d, 6,0,0xfffffe6d, 6,0,0x00000000, 2,0, "-0x193", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffe7, 5,0,0xffffffe7, 5,0,0x00000000, 2,0, "-0x19", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xecdceede,11,0,0xecdceede,11,0,0x00000000, 2,0, "-0x13231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffff, 4,0,0xffffffff, 4,0,0x00000000, 2,0, "-0x1w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffed, 5,0,0xffffffed, 5,0,0x00000000, 2,0, "-0x13", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0xffffffff, 4,0,0xffffffff, 4,0,0x00000000, 2,0, "-0x1", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000, 9,34, "-0a73231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef5, 4,0, "-0a7w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xffffe4df, 5,0, "-0a73", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef5, 4,0, "-0a7", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000,10,34, "-0a12413231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xffb9fb07, 7,0, "-0a1241w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xf8e37eb3, 8,0, "-0a12413", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xffb9fb07, 7,0, "-0a1241", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x80000000, 9,34, "-0a93231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef3, 4,0, "-0a9w", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xffffe4ab, 5,0, "-0a93", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef3, 4,0, "-0a9", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0x13ee324e,10,0, "-0a3231122", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 3,0, "-0aw", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffef9, 4,0, "-0a3", +__LINE__,0x00000000, 2,0,0x00000000, 2,0,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 3,0, "-0a", +__LINE__,0xf812cdae,11,0,0xd1e96dee,11,0,0xf812cdae,11,0,0xf812cdae,11,0,0x56b062ce,11,0, "-0773231122", +__LINE__,0xffffffc1, 4,0,0xffffffb3, 4,0,0xffffffc1, 4,0,0xffffffc1, 4,0,0xffffff43, 4,0, "-077w", +__LINE__,0xfffffe05, 5,0,0xfffffcfb, 5,0,0xfffffe05, 5,0,0xfffffe05, 5,0,0xffffeccb, 5,0, "-0773", +__LINE__,0xffffffc1, 4,0,0xffffffb3, 4,0,0xffffffc1, 4,0,0xffffffc1, 4,0,0xffffff43, 4,0, "-077", +__LINE__,0x80000000,13,34,0x80000000,12,34,0x80000000,13,34,0x80000000,13,34,0x80000000, 9,34, "-0712413231122", +__LINE__,0xffff8d5f, 7,0,0xfffee9b7, 7,0,0xffff8d5f, 7,0,0xffff8d5f, 7,0,0xffcee637, 7,0, "-071241w", +__LINE__,0xfffc6af5, 8,0,0xfff52123, 8,0,0xfffc6af5, 8,0,0xfffc6af5, 8,0,0xfb036193, 8,0, "-0712413", +__LINE__,0xffff8d5f, 7,0,0xfffee9b7, 7,0,0xffff8d5f, 7,0,0xffff8d5f, 7,0,0xffcee637, 7,0, "-071241", +__LINE__,0xfffffff9, 3,0,0xd0b840ee,11,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0x80000000,10,34, "-0793231122", +__LINE__,0xfffffff9, 3,0,0xffffffb1, 4,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xffffff41, 4,0, "-079w", +__LINE__,0xfffffff9, 3,0,0xfffffce7, 5,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xffffec97, 5,0, "-0793", +__LINE__,0xfffffff9, 3,0,0xffffffb1, 4,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xffffff41, 4,0, "-079", +__LINE__,0xff12cdae,10,0,0xfba294ee,10,0,0xff12cdae,10,0,0xff12cdae,10,0,0x80000000, 9,34, "-073231122", +__LINE__,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0, "-07w", +__LINE__,0xffffffc5, 4,0,0xffffffb7, 4,0,0xffffffc5, 4,0,0xffffffc5, 4,0,0xffffff47, 4,0, "-073", +__LINE__,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0,0xfffffff9, 3,0, "-07", +__LINE__,0xfc12cdae,11,0,0xe9c0f1ee,11,0,0xfc12cdae,11,0,0xfc12cdae,11,0,0x80000000, 9,34, "-0373231122", +__LINE__,0xffffffe1, 4,0,0xffffffdb, 4,0,0xffffffe1, 4,0,0xffffffe1, 4,0,0xffffffab, 4,0, "-037w", +__LINE__,0xffffff05, 5,0,0xfffffe8b, 5,0,0xffffff05, 5,0,0xffffff05, 5,0,0xfffff75b, 5,0, "-0373", +__LINE__,0xffffffe1, 4,0,0xffffffdb, 4,0,0xffffffe1, 4,0,0xffffffe1, 4,0,0xffffffab, 4,0, "-037", +__LINE__,0x80000000,13,34,0x80000000,12,34,0x80000000,13,34,0x80000000,13,34,0x80000000,11,34, "-0312413231122", +__LINE__,0xffffcd5f, 7,0,0xffff85f7, 7,0,0xffffcd5f, 7,0,0xffffcd5f, 7,0,0xffeaca77, 7,0, "-031241w", +__LINE__,0xfffe6af5, 8,0,0xfffb3ba3, 8,0,0xfffe6af5, 8,0,0xfffe6af5, 8,0,0xfdd89013, 8,0, "-0312413", +__LINE__,0xffffcd5f, 7,0,0xffff85f7, 7,0,0xffffcd5f, 7,0,0xffffcd5f, 7,0,0xffeaca77, 7,0, "-031241", +__LINE__,0xfffffffd, 3,0,0xe88fc4ee,11,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0x157981ce,11,0, "-0393231122", +__LINE__,0xfffffffd, 3,0,0xffffffd9, 4,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xffffffa9, 4,0, "-039w", +__LINE__,0xfffffffd, 3,0,0xfffffe77, 5,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffff727, 5,0, "-0393", +__LINE__,0xfffffffd, 3,0,0xffffffd9, 4,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xffffffa9, 4,0, "-039", +__LINE__,0xff92cdae,10,0,0xfe04eeee,10,0,0xff92cdae,10,0,0xff92cdae,10,0,0x2b1013ce,10,0, "-033231122", +__LINE__,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0, "-03w", +__LINE__,0xffffffe5, 4,0,0xffffffdf, 4,0,0xffffffe5, 4,0,0xffffffe5, 4,0,0xffffffaf, 4,0, "-033", +__LINE__,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0,0xfffffffd, 3,0, "-03", +__LINE__,0xfe12cdae,11,0,0xf5acb3ee,11,0,0xfe12cdae,11,0,0xfe12cdae,11,0,0x111128ce,11,0, "-0173231122", +__LINE__,0xfffffff1, 4,0,0xffffffef, 4,0,0xfffffff1, 4,0,0xfffffff1, 4,0,0xffffffdf, 4,0, "-017w", +__LINE__,0xffffff85, 5,0,0xffffff53, 5,0,0xffffff85, 5,0,0xffffff85, 5,0,0xfffffca3, 5,0, "-0173", +__LINE__,0xfffffff1, 4,0,0xffffffef, 4,0,0xfffffff1, 4,0,0xfffffff1, 4,0,0xffffffdf, 4,0, "-017", +__LINE__,0xabd2cdae,14,0,0x80000000,13,34,0xabd2cdae,14,0,0xabd2cdae,14,0,0x80000000,10,34, "-0112413231122", +__LINE__,0xffffed5f, 7,0,0xffffd417, 7,0,0xffffed5f, 7,0,0xffffed5f, 7,0,0xfff8bc97, 7,0, "-011241w", +__LINE__,0xffff6af5, 8,0,0xfffe48e3, 8,0,0xffff6af5, 8,0,0xffff6af5, 8,0,0xff432753, 8,0, "-0112413", +__LINE__,0xffffed5f, 7,0,0xffffd417, 7,0,0xffffed5f, 7,0,0xffffed5f, 7,0,0xfff8bc97, 7,0, "-011241", +__LINE__,0xffffffff, 3,0,0xf47b86ee,11,0,0xffffffff, 3,0,0xffffffff, 3,0,0x5399c3ce,11,0, "-0193231122", +__LINE__,0xffffffff, 3,0,0xffffffed, 4,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffdd, 4,0, "-019w", +__LINE__,0xffffffff, 3,0,0xffffff3f, 5,0,0xffffffff, 3,0,0xffffffff, 3,0,0xfffffc6f, 5,0, "-0193", +__LINE__,0xffffffff, 3,0,0xffffffed, 4,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffdd, 4,0, "-019", +__LINE__,0xffd2cdae,10,0,0xff361bee,10,0,0xffd2cdae,10,0,0xffd2cdae,10,0,0xe88778ce,10,0, "-013231122", +__LINE__,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0, "-01w", +__LINE__,0xfffffff5, 4,0,0xfffffff3, 4,0,0xfffffff5, 4,0,0xfffffff5, 4,0,0xffffffe3, 4,0, "-013", +__LINE__,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0,0xffffffff, 3,0, "-01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000, 9,34,0x00000000, 0,0,0x80000000, 8,34, "-a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff59, 3,0,0x00000000, 0,0,0xfffffef5, 3,0, "-a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffff58d, 4,0,0x00000000, 0,0,0xffffe4df, 4,0, "-a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff59, 3,0,0x00000000, 0,0,0xfffffef5, 3,0, "-a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000, 9,34,0x00000000, 0,0,0x80000000, 9,34, "-a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfff5edbf, 6,0,0x00000000, 0,0,0xffb9fb07, 6,0, "-a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xff5edbed, 7,0,0x00000000, 0,0,0xf8e37eb3, 7,0, "-a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfff5edbf, 6,0,0x00000000, 0,0,0xffb9fb07, 6,0, "-a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x80000000, 9,34,0x00000000, 0,0,0x80000000, 8,34, "-a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff57, 3,0,0x00000000, 0,0,0xfffffef3, 3,0, "-a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffff56d, 4,0,0x00000000, 0,0,0xffffe4ab, 4,0, "-a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff57, 3,0,0x00000000, 0,0,0xfffffef3, 3,0, "-a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x5cdceede, 9,0,0x00000000, 0,0,0x13ee324e, 9,0, "-a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 2,0,0x00000000, 0,0,0xfffffff6, 2,0, "-aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xffffff5d, 3,0,0x00000000, 0,0,0xfffffef9, 3,0, "-a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xfffffff6, 2,0,0x00000000, 0,0,0xfffffff6, 2,0, "-a", +__LINE__,0xf812cdae,10,0,0xd1e96dee,10,0,0x80000000, 9,34,0xd1e96dee,10,0,0x56b062ce,10,0, "-773231122", +__LINE__,0xffffffc1, 3,0,0xffffffb3, 3,0,0xffffff89, 3,0,0xffffffb3, 3,0,0xffffff43, 3,0, "-77w", +__LINE__,0xfffffe05, 4,0,0xfffffcfb, 4,0,0xfffff88d, 4,0,0xfffffcfb, 4,0,0xffffeccb, 4,0, "-773", +__LINE__,0xffffffc1, 3,0,0xffffffb3, 3,0,0xffffff89, 3,0,0xffffffb3, 3,0,0xffffff43, 3,0, "-77", +__LINE__,0x80000000,12,34,0x80000000,11,34,0x80000000, 9,34,0x80000000,11,34,0x80000000, 8,34, "-712413231122", +__LINE__,0xffff8d5f, 6,0,0xfffee9b7, 6,0,0xfff8edbf, 6,0,0xfffee9b7, 6,0,0xffcee637, 6,0, "-71241w", +__LINE__,0xfffc6af5, 7,0,0xfff52123, 7,0,0xff8edbed, 7,0,0xfff52123, 7,0,0xfb036193, 7,0, "-712413", +__LINE__,0xffff8d5f, 6,0,0xfffee9b7, 6,0,0xfff8edbf, 6,0,0xfffee9b7, 6,0,0xffcee637, 6,0, "-71241", +__LINE__,0xfffffff9, 2,0,0xd0b840ee,10,0,0x6cdceede,10,0,0xd0b840ee,10,0,0x80000000, 9,34, "-793231122", +__LINE__,0xfffffff9, 2,0,0xffffffb1, 3,0,0xffffff87, 3,0,0xffffffb1, 3,0,0xffffff41, 3,0, "-79w", +__LINE__,0xfffffff9, 2,0,0xfffffce7, 4,0,0xfffff86d, 4,0,0xfffffce7, 4,0,0xffffec97, 4,0, "-793", +__LINE__,0xfffffff9, 2,0,0xffffffb1, 3,0,0xffffff87, 3,0,0xffffffb1, 3,0,0xffffff41, 3,0, "-79", +__LINE__,0xff12cdae, 9,0,0xfba294ee, 9,0,0x8cdceede, 9,0,0xfba294ee, 9,0,0x80000000, 8,34, "-73231122", +__LINE__,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0, "-7w", +__LINE__,0xffffffc5, 3,0,0xffffffb7, 3,0,0xffffff8d, 3,0,0xffffffb7, 3,0,0xffffff47, 3,0, "-73", +__LINE__,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0,0xfffffff9, 2,0, "-7", +__LINE__,0xfc12cdae,10,0,0xe9c0f1ee,10,0,0x8cdceede,10,0,0xe9c0f1ee,10,0,0x80000000, 8,34, "-373231122", +__LINE__,0xffffffe1, 3,0,0xffffffdb, 3,0,0xffffffc9, 3,0,0xffffffdb, 3,0,0xffffffab, 3,0, "-37w", +__LINE__,0xffffff05, 4,0,0xfffffe8b, 4,0,0xfffffc8d, 4,0,0xfffffe8b, 4,0,0xfffff75b, 4,0, "-373", +__LINE__,0xffffffe1, 3,0,0xffffffdb, 3,0,0xffffffc9, 3,0,0xffffffdb, 3,0,0xffffffab, 3,0, "-37", +__LINE__,0x80000000,12,34,0x80000000,11,34,0x80000000, 9,34,0x80000000,11,34,0x80000000,10,34, "-312413231122", +__LINE__,0xffffcd5f, 6,0,0xffff85f7, 6,0,0xfffcedbf, 6,0,0xffff85f7, 6,0,0xffeaca77, 6,0, "-31241w", +__LINE__,0xfffe6af5, 7,0,0xfffb3ba3, 7,0,0xffcedbed, 7,0,0xfffb3ba3, 7,0,0xfdd89013, 7,0, "-312413", +__LINE__,0xffffcd5f, 6,0,0xffff85f7, 6,0,0xfffcedbf, 6,0,0xffff85f7, 6,0,0xffeaca77, 6,0, "-31241", +__LINE__,0xfffffffd, 2,0,0xe88fc4ee,10,0,0x6cdceede,10,0,0xe88fc4ee,10,0,0x157981ce,10,0, "-393231122", +__LINE__,0xfffffffd, 2,0,0xffffffd9, 3,0,0xffffffc7, 3,0,0xffffffd9, 3,0,0xffffffa9, 3,0, "-39w", +__LINE__,0xfffffffd, 2,0,0xfffffe77, 4,0,0xfffffc6d, 4,0,0xfffffe77, 4,0,0xfffff727, 4,0, "-393", +__LINE__,0xfffffffd, 2,0,0xffffffd9, 3,0,0xffffffc7, 3,0,0xffffffd9, 3,0,0xffffffa9, 3,0, "-39", +__LINE__,0xff92cdae, 9,0,0xfe04eeee, 9,0,0xccdceede, 9,0,0xfe04eeee, 9,0,0x2b1013ce, 9,0, "-33231122", +__LINE__,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0, "-3w", +__LINE__,0xffffffe5, 3,0,0xffffffdf, 3,0,0xffffffcd, 3,0,0xffffffdf, 3,0,0xffffffaf, 3,0, "-33", +__LINE__,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0,0xfffffffd, 2,0, "-3", +__LINE__,0xfe12cdae,10,0,0xf5acb3ee,10,0,0x8cdceede,10,0,0xf5acb3ee,10,0,0x111128ce,10,0, "-173231122", +__LINE__,0xfffffff1, 3,0,0xffffffef, 3,0,0xffffffe9, 3,0,0xffffffef, 3,0,0xffffffdf, 3,0, "-17w", +__LINE__,0xffffff85, 4,0,0xffffff53, 4,0,0xfffffe8d, 4,0,0xffffff53, 4,0,0xfffffca3, 4,0, "-173", +__LINE__,0xfffffff1, 3,0,0xffffffef, 3,0,0xffffffe9, 3,0,0xffffffef, 3,0,0xffffffdf, 3,0, "-17", +__LINE__,0xabd2cdae,13,0,0x80000000,12,34,0x80000000,12,34,0x80000000,12,34,0x80000000, 9,34, "-112413231122", +__LINE__,0xffffed5f, 6,0,0xffffd417, 6,0,0xfffeedbf, 6,0,0xffffd417, 6,0,0xfff8bc97, 6,0, "-11241w", +__LINE__,0xffff6af5, 7,0,0xfffe48e3, 7,0,0xffeedbed, 7,0,0xfffe48e3, 7,0,0xff432753, 7,0, "-112413", +__LINE__,0xffffed5f, 6,0,0xffffd417, 6,0,0xfffeedbf, 6,0,0xffffd417, 6,0,0xfff8bc97, 6,0, "-11241", +__LINE__,0xffffffff, 2,0,0xf47b86ee,10,0,0x6cdceede,10,0,0xf47b86ee,10,0,0x5399c3ce,10,0, "-193231122", +__LINE__,0xffffffff, 2,0,0xffffffed, 3,0,0xffffffe7, 3,0,0xffffffed, 3,0,0xffffffdd, 3,0, "-19w", +__LINE__,0xffffffff, 2,0,0xffffff3f, 4,0,0xfffffe6d, 4,0,0xffffff3f, 4,0,0xfffffc6f, 4,0, "-193", +__LINE__,0xffffffff, 2,0,0xffffffed, 3,0,0xffffffe7, 3,0,0xffffffed, 3,0,0xffffffdd, 3,0, "-19", +__LINE__,0xffd2cdae, 9,0,0xff361bee, 9,0,0xecdceede, 9,0,0xff361bee, 9,0,0xe88778ce, 9,0, "-13231122", +__LINE__,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0, "-1w", +__LINE__,0xfffffff5, 3,0,0xfffffff3, 3,0,0xffffffed, 3,0,0xfffffff3, 3,0,0xffffffe3, 3,0, "-13", +__LINE__,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0,0xffffffff, 2,0, "-1", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0xa73231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000000a7, 4,0,0x000000a7, 4,0,0x00000000, 1,0, "0xa7w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000a73, 5,0,0x00000a73, 5,0,0x00000000, 1,0, "0xa73", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000000a7, 4,0,0x000000a7, 4,0,0x00000000, 1,0, "0xa7", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0xa12413231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000a1241, 7,0,0x000a1241, 7,0,0x00000000, 1,0, "0xa1241w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00a12413, 8,0,0x00a12413, 8,0,0x00000000, 1,0, "0xa12413", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000a1241, 7,0,0x000a1241, 7,0,0x00000000, 1,0, "0xa1241", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0xa93231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000000a9, 4,0,0x000000a9, 4,0,0x00000000, 1,0, "0xa9w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000a93, 5,0,0x00000a93, 5,0,0x00000000, 1,0, "0xa93", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000000a9, 4,0,0x000000a9, 4,0,0x00000000, 1,0, "0xa9", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0xa3231122,10,0,0xa3231122,10,0,0x00000000, 1,0, "0xa3231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x0000000a, 3,0,0x0000000a, 3,0,0x00000000, 1,0, "0xaw", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x000000a3, 4,0,0x000000a3, 4,0,0x00000000, 1,0, "0xa3", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x0000000a, 3,0,0x0000000a, 3,0,0x00000000, 1,0, "0xa", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0x773231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000077, 4,0,0x00000077, 4,0,0x00000000, 1,0, "0x77w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000773, 5,0,0x00000773, 5,0,0x00000000, 1,0, "0x773", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000077, 4,0,0x00000077, 4,0,0x00000000, 1,0, "0x77", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0x712413231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00071241, 7,0,0x00071241, 7,0,0x00000000, 1,0, "0x71241w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00712413, 8,0,0x00712413, 8,0,0x00000000, 1,0, "0x712413", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00071241, 7,0,0x00071241, 7,0,0x00000000, 1,0, "0x71241", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x93231122,11,0,0x93231122,11,0,0x00000000, 1,0, "0x793231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000079, 4,0,0x00000079, 4,0,0x00000000, 1,0, "0x79w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000793, 5,0,0x00000793, 5,0,0x00000000, 1,0, "0x793", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000079, 4,0,0x00000079, 4,0,0x00000000, 1,0, "0x79", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x73231122,10,0,0x73231122,10,0,0x00000000, 1,0, "0x73231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000007, 3,0,0x00000007, 3,0,0x00000000, 1,0, "0x7w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000073, 4,0,0x00000073, 4,0,0x00000000, 1,0, "0x73", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000007, 3,0,0x00000007, 3,0,0x00000000, 1,0, "0x7", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x73231122,11,0,0x73231122,11,0,0x00000000, 1,0, "0x373231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000037, 4,0,0x00000037, 4,0,0x00000000, 1,0, "0x37w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000373, 5,0,0x00000373, 5,0,0x00000000, 1,0, "0x373", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000037, 4,0,0x00000037, 4,0,0x00000000, 1,0, "0x37", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,10,34,0x7fffffff,10,34,0x00000000, 1,0, "0x312413231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00031241, 7,0,0x00031241, 7,0,0x00000000, 1,0, "0x31241w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00312413, 8,0,0x00312413, 8,0,0x00000000, 1,0, "0x312413", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00031241, 7,0,0x00031241, 7,0,0x00000000, 1,0, "0x31241", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x93231122,11,0,0x93231122,11,0,0x00000000, 1,0, "0x393231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000039, 4,0,0x00000039, 4,0,0x00000000, 1,0, "0x39w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000393, 5,0,0x00000393, 5,0,0x00000000, 1,0, "0x393", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000039, 4,0,0x00000039, 4,0,0x00000000, 1,0, "0x39", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x33231122,10,0,0x33231122,10,0,0x00000000, 1,0, "0x33231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000003, 3,0,0x00000003, 3,0,0x00000000, 1,0, "0x3w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000033, 4,0,0x00000033, 4,0,0x00000000, 1,0, "0x33", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000003, 3,0,0x00000003, 3,0,0x00000000, 1,0, "0x3", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x73231122,11,0,0x73231122,11,0,0x00000000, 1,0, "0x173231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000017, 4,0,0x00000017, 4,0,0x00000000, 1,0, "0x17w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000173, 5,0,0x00000173, 5,0,0x00000000, 1,0, "0x173", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000017, 4,0,0x00000017, 4,0,0x00000000, 1,0, "0x17", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x7fffffff,13,34,0x7fffffff,13,34,0x00000000, 1,0, "0x112413231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00011241, 7,0,0x00011241, 7,0,0x00000000, 1,0, "0x11241w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00112413, 8,0,0x00112413, 8,0,0x00000000, 1,0, "0x112413", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00011241, 7,0,0x00011241, 7,0,0x00000000, 1,0, "0x11241", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x93231122,11,0,0x93231122,11,0,0x00000000, 1,0, "0x193231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000019, 4,0,0x00000019, 4,0,0x00000000, 1,0, "0x19w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000193, 5,0,0x00000193, 5,0,0x00000000, 1,0, "0x193", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000019, 4,0,0x00000019, 4,0,0x00000000, 1,0, "0x19", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x13231122,10,0,0x13231122,10,0,0x00000000, 1,0, "0x13231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000001, 3,0,0x00000001, 3,0,0x00000000, 1,0, "0x1w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000013, 4,0,0x00000013, 4,0,0x00000000, 1,0, "0x13", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000001, 3,0,0x00000001, 3,0,0x00000000, 1,0, "0x1", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 8,34, "0a73231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 3,0, "0a7w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b21, 4,0, "0a73", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010b, 3,0, "0a7", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 9,34, "0a12413231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 6,0, "0a1241w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x071c814d, 7,0, "0a12413", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x004604f9, 6,0, "0a1241", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 8,34, "0a93231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 3,0, "0a9w", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x00001b55, 4,0, "0a93", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000010d, 3,0, "0a9", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0xec11cdb2, 9,0, "0a3231122", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0, "0aw", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x00000107, 3,0, "0a3", +__LINE__,0x00000000, 1,0,0x00000000, 1,0,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 2,0, "0a", +__LINE__,0x07ed3252,10,0,0x2e169212,10,0,0x07ed3252,10,0,0x07ed3252,10,0,0xa94f9d32,10,0, "0773231122", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x0000003f, 3,0,0x0000003f, 3,0,0x000000bd, 3,0, "077w", +__LINE__,0x000001fb, 4,0,0x00000305, 4,0,0x000001fb, 4,0,0x000001fb, 4,0,0x00001335, 4,0, "0773", +__LINE__,0x0000003f, 3,0,0x0000004d, 3,0,0x0000003f, 3,0,0x0000003f, 3,0,0x000000bd, 3,0, "077", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff, 8,34, "0712413231122", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x000072a1, 6,0,0x000072a1, 6,0,0x003119c9, 6,0, "071241w", +__LINE__,0x0003950b, 7,0,0x000adedd, 7,0,0x0003950b, 7,0,0x0003950b, 7,0,0x04fc9e6d, 7,0, "0712413", +__LINE__,0x000072a1, 6,0,0x00011649, 6,0,0x000072a1, 6,0,0x000072a1, 6,0,0x003119c9, 6,0, "071241", +__LINE__,0x00000007, 2,0,0x2f47bf12,10,0,0x00000007, 2,0,0x00000007, 2,0,0x7fffffff, 9,34, "0793231122", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000007, 2,0,0x00000007, 2,0,0x000000bf, 3,0, "079w", +__LINE__,0x00000007, 2,0,0x00000319, 4,0,0x00000007, 2,0,0x00000007, 2,0,0x00001369, 4,0, "0793", +__LINE__,0x00000007, 2,0,0x0000004f, 3,0,0x00000007, 2,0,0x00000007, 2,0,0x000000bf, 3,0, "079", +__LINE__,0x00ed3252, 9,0,0x045d6b12, 9,0,0x00ed3252, 9,0,0x00ed3252, 9,0,0x7fffffff, 8,34, "073231122", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, "07w", +__LINE__,0x0000003b, 3,0,0x00000049, 3,0,0x0000003b, 3,0,0x0000003b, 3,0,0x000000b9, 3,0, "073", +__LINE__,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0,0x00000007, 2,0, "07", +__LINE__,0x03ed3252,10,0,0x163f0e12,10,0,0x03ed3252,10,0,0x03ed3252,10,0,0x7fffffff, 8,34, "0373231122", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x0000001f, 3,0,0x0000001f, 3,0,0x00000055, 3,0, "037w", +__LINE__,0x000000fb, 4,0,0x00000175, 4,0,0x000000fb, 4,0,0x000000fb, 4,0,0x000008a5, 4,0, "0373", +__LINE__,0x0000001f, 3,0,0x00000025, 3,0,0x0000001f, 3,0,0x0000001f, 3,0,0x00000055, 3,0, "037", +__LINE__,0x7fffffff,12,34,0x7fffffff,11,34,0x7fffffff,12,34,0x7fffffff,12,34,0x7fffffff,10,34, "0312413231122", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x000032a1, 6,0,0x000032a1, 6,0,0x00153589, 6,0, "031241w", +__LINE__,0x0001950b, 7,0,0x0004c45d, 7,0,0x0001950b, 7,0,0x0001950b, 7,0,0x02276fed, 7,0, "0312413", +__LINE__,0x000032a1, 6,0,0x00007a09, 6,0,0x000032a1, 6,0,0x000032a1, 6,0,0x00153589, 6,0, "031241", +__LINE__,0x00000003, 2,0,0x17703b12,10,0,0x00000003, 2,0,0x00000003, 2,0,0xea867e32,10,0, "0393231122", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000003, 2,0,0x00000003, 2,0,0x00000057, 3,0, "039w", +__LINE__,0x00000003, 2,0,0x00000189, 4,0,0x00000003, 2,0,0x00000003, 2,0,0x000008d9, 4,0, "0393", +__LINE__,0x00000003, 2,0,0x00000027, 3,0,0x00000003, 2,0,0x00000003, 2,0,0x00000057, 3,0, "039", +__LINE__,0x006d3252, 9,0,0x01fb1112, 9,0,0x006d3252, 9,0,0x006d3252, 9,0,0xd4efec32, 9,0, "033231122", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, "03w", +__LINE__,0x0000001b, 3,0,0x00000021, 3,0,0x0000001b, 3,0,0x0000001b, 3,0,0x00000051, 3,0, "033", +__LINE__,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0,0x00000003, 2,0, "03", +__LINE__,0x01ed3252,10,0,0x0a534c12,10,0,0x01ed3252,10,0,0x01ed3252,10,0,0xeeeed732,10,0, "0173231122", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x0000000f, 3,0,0x0000000f, 3,0,0x00000021, 3,0, "017w", +__LINE__,0x0000007b, 4,0,0x000000ad, 4,0,0x0000007b, 4,0,0x0000007b, 4,0,0x0000035d, 4,0, "0173", +__LINE__,0x0000000f, 3,0,0x00000011, 3,0,0x0000000f, 3,0,0x0000000f, 3,0,0x00000021, 3,0, "017", +__LINE__,0x542d3252,13,0,0x7fffffff,12,34,0x542d3252,13,0,0x542d3252,13,0,0x7fffffff, 9,34, "0112413231122", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x000012a1, 6,0,0x000012a1, 6,0,0x00074369, 6,0, "011241w", +__LINE__,0x0000950b, 7,0,0x0001b71d, 7,0,0x0000950b, 7,0,0x0000950b, 7,0,0x00bcd8ad, 7,0, "0112413", +__LINE__,0x000012a1, 6,0,0x00002be9, 6,0,0x000012a1, 6,0,0x000012a1, 6,0,0x00074369, 6,0, "011241", +__LINE__,0x00000001, 2,0,0x0b847912,10,0,0x00000001, 2,0,0x00000001, 2,0,0xac663c32,10,0, "0193231122", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000001, 2,0,0x00000001, 2,0,0x00000023, 3,0, "019w", +__LINE__,0x00000001, 2,0,0x000000c1, 4,0,0x00000001, 2,0,0x00000001, 2,0,0x00000391, 4,0, "0193", +__LINE__,0x00000001, 2,0,0x00000013, 3,0,0x00000001, 2,0,0x00000001, 2,0,0x00000023, 3,0, "019", +__LINE__,0x002d3252, 9,0,0x00c9e412, 9,0,0x002d3252, 9,0,0x002d3252, 9,0,0x17788732, 9,0, "013231122", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, "01w", +__LINE__,0x0000000b, 3,0,0x0000000d, 3,0,0x0000000b, 3,0,0x0000000b, 3,0,0x0000001d, 3,0, "013", +__LINE__,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0,0x00000001, 2,0, "01", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 8,34,0x00000000, 0,0,0x7fffffff, 7,34, "a73231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 2,0,0x00000000, 0,0,0x0000010b, 2,0, "a7w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a73, 3,0,0x00000000, 0,0,0x00001b21, 3,0, "a73", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a7, 2,0,0x00000000, 0,0,0x0000010b, 2,0, "a7", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 8,34,0x00000000, 0,0,0x7fffffff, 8,34, "a12413231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 5,0,0x00000000, 0,0,0x004604f9, 5,0, "a1241w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00a12413, 6,0,0x00000000, 0,0,0x071c814d, 6,0, "a12413", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000a1241, 5,0,0x00000000, 0,0,0x004604f9, 5,0, "a1241", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x7fffffff, 8,34,0x00000000, 0,0,0x7fffffff, 7,34, "a93231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 2,0,0x00000000, 0,0,0x0000010d, 2,0, "a9w", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x00000a93, 3,0,0x00000000, 0,0,0x00001b55, 3,0, "a93", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a9, 2,0,0x00000000, 0,0,0x0000010d, 2,0, "a9", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0xa3231122, 8,0,0x00000000, 0,0,0xec11cdb2, 8,0, "a3231122", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 1,0,0x00000000, 0,0,0x0000000a, 1,0, "aw", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x000000a3, 2,0,0x00000000, 0,0,0x00000107, 2,0, "a3", +__LINE__,0x00000000, 0,0,0x00000000, 0,0,0x0000000a, 1,0,0x00000000, 0,0,0x0000000a, 1,0, "a", +__LINE__,0x07ed3252, 9,0,0x2e169212, 9,0,0x7fffffff, 8,34,0x2e169212, 9,0,0xa94f9d32, 9,0, "773231122", +__LINE__,0x0000003f, 2,0,0x0000004d, 2,0,0x00000077, 2,0,0x0000004d, 2,0,0x000000bd, 2,0, "77w", +__LINE__,0x000001fb, 3,0,0x00000305, 3,0,0x00000773, 3,0,0x00000305, 3,0,0x00001335, 3,0, "773", +__LINE__,0x0000003f, 2,0,0x0000004d, 2,0,0x00000077, 2,0,0x0000004d, 2,0,0x000000bd, 2,0, "77", +__LINE__,0x7fffffff,11,34,0x7fffffff,10,34,0x7fffffff, 8,34,0x7fffffff,10,34,0x7fffffff, 7,34, "712413231122", +__LINE__,0x000072a1, 5,0,0x00011649, 5,0,0x00071241, 5,0,0x00011649, 5,0,0x003119c9, 5,0, "71241w", +__LINE__,0x0003950b, 6,0,0x000adedd, 6,0,0x00712413, 6,0,0x000adedd, 6,0,0x04fc9e6d, 6,0, "712413", +__LINE__,0x000072a1, 5,0,0x00011649, 5,0,0x00071241, 5,0,0x00011649, 5,0,0x003119c9, 5,0, "71241", +__LINE__,0x00000007, 1,0,0x2f47bf12, 9,0,0x93231122, 9,0,0x2f47bf12, 9,0,0x7fffffff, 8,34, "793231122", +__LINE__,0x00000007, 1,0,0x0000004f, 2,0,0x00000079, 2,0,0x0000004f, 2,0,0x000000bf, 2,0, "79w", +__LINE__,0x00000007, 1,0,0x00000319, 3,0,0x00000793, 3,0,0x00000319, 3,0,0x00001369, 3,0, "793", +__LINE__,0x00000007, 1,0,0x0000004f, 2,0,0x00000079, 2,0,0x0000004f, 2,0,0x000000bf, 2,0, "79", +__LINE__,0x00ed3252, 8,0,0x045d6b12, 8,0,0x73231122, 8,0,0x045d6b12, 8,0,0x7fffffff, 7,34, "73231122", +__LINE__,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0, "7w", +__LINE__,0x0000003b, 2,0,0x00000049, 2,0,0x00000073, 2,0,0x00000049, 2,0,0x000000b9, 2,0, "73", +__LINE__,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0,0x00000007, 1,0, "7", +__LINE__,0x03ed3252, 9,0,0x163f0e12, 9,0,0x73231122, 9,0,0x163f0e12, 9,0,0x7fffffff, 7,34, "373231122", +__LINE__,0x0000001f, 2,0,0x00000025, 2,0,0x00000037, 2,0,0x00000025, 2,0,0x00000055, 2,0, "37w", +__LINE__,0x000000fb, 3,0,0x00000175, 3,0,0x00000373, 3,0,0x00000175, 3,0,0x000008a5, 3,0, "373", +__LINE__,0x0000001f, 2,0,0x00000025, 2,0,0x00000037, 2,0,0x00000025, 2,0,0x00000055, 2,0, "37", +__LINE__,0x7fffffff,11,34,0x7fffffff,10,34,0x7fffffff, 8,34,0x7fffffff,10,34,0x7fffffff, 9,34, "312413231122", +__LINE__,0x000032a1, 5,0,0x00007a09, 5,0,0x00031241, 5,0,0x00007a09, 5,0,0x00153589, 5,0, "31241w", +__LINE__,0x0001950b, 6,0,0x0004c45d, 6,0,0x00312413, 6,0,0x0004c45d, 6,0,0x02276fed, 6,0, "312413", +__LINE__,0x000032a1, 5,0,0x00007a09, 5,0,0x00031241, 5,0,0x00007a09, 5,0,0x00153589, 5,0, "31241", +__LINE__,0x00000003, 1,0,0x17703b12, 9,0,0x93231122, 9,0,0x17703b12, 9,0,0xea867e32, 9,0, "393231122", +__LINE__,0x00000003, 1,0,0x00000027, 2,0,0x00000039, 2,0,0x00000027, 2,0,0x00000057, 2,0, "39w", +__LINE__,0x00000003, 1,0,0x00000189, 3,0,0x00000393, 3,0,0x00000189, 3,0,0x000008d9, 3,0, "393", +__LINE__,0x00000003, 1,0,0x00000027, 2,0,0x00000039, 2,0,0x00000027, 2,0,0x00000057, 2,0, "39", +__LINE__,0x006d3252, 8,0,0x01fb1112, 8,0,0x33231122, 8,0,0x01fb1112, 8,0,0xd4efec32, 8,0, "33231122", +__LINE__,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0, "3w", +__LINE__,0x0000001b, 2,0,0x00000021, 2,0,0x00000033, 2,0,0x00000021, 2,0,0x00000051, 2,0, "33", +__LINE__,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0,0x00000003, 1,0, "3", +__LINE__,0x01ed3252, 9,0,0x0a534c12, 9,0,0x73231122, 9,0,0x0a534c12, 9,0,0xeeeed732, 9,0, "173231122", +__LINE__,0x0000000f, 2,0,0x00000011, 2,0,0x00000017, 2,0,0x00000011, 2,0,0x00000021, 2,0, "17w", +__LINE__,0x0000007b, 3,0,0x000000ad, 3,0,0x00000173, 3,0,0x000000ad, 3,0,0x0000035d, 3,0, "173", +__LINE__,0x0000000f, 2,0,0x00000011, 2,0,0x00000017, 2,0,0x00000011, 2,0,0x00000021, 2,0, "17", +__LINE__,0x542d3252,12,0,0x7fffffff,11,34,0x7fffffff,11,34,0x7fffffff,11,34,0x7fffffff, 8,34, "112413231122", +__LINE__,0x000012a1, 5,0,0x00002be9, 5,0,0x00011241, 5,0,0x00002be9, 5,0,0x00074369, 5,0, "11241w", +__LINE__,0x0000950b, 6,0,0x0001b71d, 6,0,0x00112413, 6,0,0x0001b71d, 6,0,0x00bcd8ad, 6,0, "112413", +__LINE__,0x000012a1, 5,0,0x00002be9, 5,0,0x00011241, 5,0,0x00002be9, 5,0,0x00074369, 5,0, "11241", +__LINE__,0x00000001, 1,0,0x0b847912, 9,0,0x93231122, 9,0,0x0b847912, 9,0,0xac663c32, 9,0, "193231122", +__LINE__,0x00000001, 1,0,0x00000013, 2,0,0x00000019, 2,0,0x00000013, 2,0,0x00000023, 2,0, "19w", +__LINE__,0x00000001, 1,0,0x000000c1, 3,0,0x00000193, 3,0,0x000000c1, 3,0,0x00000391, 3,0, "193", +__LINE__,0x00000001, 1,0,0x00000013, 2,0,0x00000019, 2,0,0x00000013, 2,0,0x00000023, 2,0, "19", +__LINE__,0x002d3252, 8,0,0x00c9e412, 8,0,0x13231122, 8,0,0x00c9e412, 8,0,0x17788732, 8,0, "13231122", +__LINE__,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0, "1w", +__LINE__,0x0000000b, 2,0,0x0000000d, 2,0,0x00000013, 2,0,0x0000000d, 2,0,0x0000001d, 2,0, "13", +__LINE__,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0,0x00000001, 1,0, "1", +0 +} +; diff --git a/newlib/libm/test/j0_vec.c b/newlib/libm/test/j0_vec.c new file mode 100644 index 000000000..834f88370 --- /dev/null +++ b/newlib/libm/test/j0_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type j0_vec[] = { +{63, 0,123,__LINE__, 0x3fe579eb, 0x607c7c44, 0xbff33333, 0x33333333}, /* 0.67113=f(-1.20000)*/ +{64, 0,123,__LINE__, 0x3fe5a2a2, 0x4bc89e06, 0xbff30a3d, 0x70a3d70a}, /* 0.67610=f(-1.19000)*/ +{64, 0,123,__LINE__, 0x3fe5cb22, 0xc94f81ce, 0xbff2e147, 0xae147ae1}, /* 0.68104=f(-1.18000)*/ +{64, 0,123,__LINE__, 0x3fe5f36c, 0x164082d9, 0xbff2b851, 0xeb851eb8}, /* 0.68596=f(-1.17000)*/ +{64, 0,123,__LINE__, 0x3fe61b7d, 0x70c07b77, 0xbff28f5c, 0x28f5c28f}, /* 0.69085=f(-1.16000)*/ +{64, 0,123,__LINE__, 0x3fe64356, 0x17eddc85, 0xbff26666, 0x66666666}, /* 0.69571=f(-1.15000)*/ +{64, 0,123,__LINE__, 0x3fe66af5, 0x4be4bfcc, 0xbff23d70, 0xa3d70a3d}, /* 0.70055=f(-1.14000)*/ +{64, 0,123,__LINE__, 0x3fe6925a, 0x4dc2f55a, 0xbff2147a, 0xe147ae14}, /* 0.70536=f(-1.13000)*/ +{63, 0,123,__LINE__, 0x3fe6b984, 0x5fac0b72, 0xbff1eb85, 0x1eb851eb}, /* 0.71014=f(-1.12000)*/ +{62, 0,123,__LINE__, 0x3fe6e072, 0xc4cd5149, 0xbff1c28f, 0x5c28f5c2}, /* 0.71489=f(-1.11000)*/ +{63, 0,123,__LINE__, 0x3fe70724, 0xc161d44e, 0xbff19999, 0x99999999}, /* 0.71962=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe72d99, 0x9ab657eb, 0xbff170a3, 0xd70a3d70}, /* 0.72431=f(-1.09000)*/ +{62, 0,123,__LINE__, 0x3fe753d0, 0x972d47b0, 0xbff147ae, 0x147ae147}, /* 0.72898=f(-1.08000)*/ +{64, 0,123,__LINE__, 0x3fe779c8, 0xfe42a3da, 0xbff11eb8, 0x51eb851e}, /* 0.73361=f(-1.07000)*/ +{63, 0,123,__LINE__, 0x3fe79f82, 0x188fe7fe, 0xbff0f5c2, 0x8f5c28f5}, /* 0.73822=f(-1.06000)*/ +{64, 0,123,__LINE__, 0x3fe7c4fb, 0x2fcfebf2, 0xbff0cccc, 0xcccccccc}, /* 0.74279=f(-1.05000)*/ +{64, 0,123,__LINE__, 0x3fe7ea33, 0x8ee2bead, 0xbff0a3d7, 0x0a3d70a3}, /* 0.74733=f(-1.04000)*/ +{64, 0,123,__LINE__, 0x3fe80f2a, 0x81d17b34, 0xbff07ae1, 0x47ae147a}, /* 0.75185=f(-1.03000)*/ +{60, 0,123,__LINE__, 0x3fe833df, 0x55d21757, 0xbff051eb, 0x851eb851}, /* 0.75633=f(-1.02000)*/ +{64, 0,123,__LINE__, 0x3fe85851, 0x594b2c4d, 0xbff028f5, 0xc28f5c28}, /* 0.76078=f(-1.01000)*/ +{64, 0,123,__LINE__, 0x3fe87c7f, 0xdbd7b8f0, 0xbfefffff, 0xfffffffe}, /* 0.76519=f(-0.01000)*/ +{64, 0,123,__LINE__, 0x3fe8a06a, 0x2e4addb6, 0xbfefae14, 0x7ae147ac}, /* 0.76958=f(-0.99000)*/ +{64, 0,123,__LINE__, 0x3fe8c40f, 0xa2b3921d, 0xbfef5c28, 0xf5c28f5a}, /* 0.77393=f(-0.98000)*/ +{64, 0,123,__LINE__, 0x3fe8e76f, 0x8c6053a3, 0xbfef0a3d, 0x70a3d708}, /* 0.77825=f(-0.97000)*/ +{64, 0,123,__LINE__, 0x3fe90a89, 0x3fe2ce0d, 0xbfeeb851, 0xeb851eb6}, /* 0.78253=f(-0.96000)*/ +{64, 0,123,__LINE__, 0x3fe92d5c, 0x13137d0e, 0xbfee6666, 0x66666664}, /* 0.78678=f(-0.95000)*/ +{64, 0,123,__LINE__, 0x3fe94fe7, 0x5d154716, 0xbfee147a, 0xe147ae12}, /* 0.79100=f(-0.94000)*/ +{64, 0,123,__LINE__, 0x3fe9722a, 0x76591154, 0xbfedc28f, 0x5c28f5c0}, /* 0.79518=f(-0.93000)*/ +{64, 0,123,__LINE__, 0x3fe99424, 0xb8a14cb4, 0xbfed70a3, 0xd70a3d6e}, /* 0.79933=f(-0.92000)*/ +{64, 0,123,__LINE__, 0x3fe9b5d5, 0x7f057bf2, 0xbfed1eb8, 0x51eb851c}, /* 0.80344=f(-0.91000)*/ +{64, 0,123,__LINE__, 0x3fe9d73c, 0x25f5b27a, 0xbfeccccc, 0xccccccca}, /* 0.80752=f(-0.90000)*/ +{64, 0,123,__LINE__, 0x3fe9f858, 0x0b3e0c30, 0xbfec7ae1, 0x47ae1478}, /* 0.81156=f(-0.89000)*/ +{64, 0,123,__LINE__, 0x3fea1928, 0x8e0a1de9, 0xbfec28f5, 0xc28f5c26}, /* 0.81557=f(-0.88000)*/ +{64, 0,123,__LINE__, 0x3fea39ad, 0x0ee85e9a, 0xbfebd70a, 0x3d70a3d4}, /* 0.81954=f(-0.87000)*/ +{64, 0,123,__LINE__, 0x3fea59e4, 0xefcd8915, 0xbfeb851e, 0xb851eb82}, /* 0.82347=f(-0.86000)*/ +{64, 0,123,__LINE__, 0x3fea79cf, 0x9417f64c, 0xbfeb3333, 0x33333330}, /* 0.82736=f(-0.85000)*/ +{64, 0,123,__LINE__, 0x3fea996c, 0x6092f01d, 0xbfeae147, 0xae147ade}, /* 0.83122=f(-0.84000)*/ +{64, 0,123,__LINE__, 0x3feab8ba, 0xbb79fc54, 0xbfea8f5c, 0x28f5c28c}, /* 0.83504=f(-0.83000)*/ +{64, 0,123,__LINE__, 0x3fead7ba, 0x0c7c201a, 0xbfea3d70, 0xa3d70a3a}, /* 0.83883=f(-0.82000)*/ +{64, 0,123,__LINE__, 0x3feaf669, 0xbcbf1b8d, 0xbfe9eb85, 0x1eb851e8}, /* 0.84257=f(-0.81000)*/ +{64, 0,123,__LINE__, 0x3feb14c9, 0x36e29d87, 0xbfe99999, 0x99999996}, /* 0.84628=f(-0.80000)*/ +{63, 0,123,__LINE__, 0x3feb32d7, 0xe7036f70, 0xbfe947ae, 0x147ae144}, /* 0.84995=f(-0.79000)*/ +{64, 0,123,__LINE__, 0x3feb5095, 0x3abe9920, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.85358=f(-0.78000)*/ +{64, 0,123,__LINE__, 0x3feb6e00, 0xa1347ca2, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.85717=f(-0.77000)*/ +{64, 0,123,__LINE__, 0x3feb8b19, 0x8b0be9e0, 0xbfe851eb, 0x851eb84e}, /* 0.86072=f(-0.76000)*/ +{64, 0,123,__LINE__, 0x3feba7df, 0x6a752a1a, 0xbfe7ffff, 0xfffffffc}, /* 0.86424=f(-0.75000)*/ +{64, 0,123,__LINE__, 0x3febc451, 0xb32d0313, 0xbfe7ae14, 0x7ae147aa}, /* 0.86771=f(-0.74000)*/ +{64, 0,123,__LINE__, 0x3febe06f, 0xda7fb1f1, 0xbfe75c28, 0xf5c28f58}, /* 0.87114=f(-0.73000)*/ +{64, 0,123,__LINE__, 0x3febfc39, 0x574bddb1, 0xbfe70a3d, 0x70a3d706}, /* 0.87453=f(-0.72000)*/ +{64, 0,123,__LINE__, 0x3fec17ad, 0xa2058121, 0xbfe6b851, 0xeb851eb4}, /* 0.87789=f(-0.71000)*/ +{64, 0,123,__LINE__, 0x3fec32cc, 0x34b8cc5b, 0xbfe66666, 0x66666662}, /* 0.88120=f(-0.70000)*/ +{64, 0,123,__LINE__, 0x3fec4d94, 0x8b0cfd9c, 0xbfe6147a, 0xe147ae10}, /* 0.88447=f(-0.69000)*/ +{62, 0,123,__LINE__, 0x3fec6806, 0x22473179, 0xbfe5c28f, 0x5c28f5be}, /* 0.88769=f(-0.68000)*/ +{64, 0,123,__LINE__, 0x3fec8220, 0x794d2a5b, 0xbfe570a3, 0xd70a3d6c}, /* 0.89088=f(-0.67000)*/ +{64, 0,123,__LINE__, 0x3fec9be3, 0x10a80f2d, 0xbfe51eb8, 0x51eb851a}, /* 0.89402=f(-0.66000)*/ +{60, 0,123,__LINE__, 0x3fecb54d, 0x6a872137, 0xbfe4cccc, 0xccccccc8}, /* 0.89713=f(-0.65000)*/ +{63, 0,123,__LINE__, 0x3fecce5f, 0x0ac2690c, 0xbfe47ae1, 0x47ae1476}, /* 0.90019=f(-0.64000)*/ +{64, 0,123,__LINE__, 0x3fece717, 0x76dd5a82, 0xbfe428f5, 0xc28f5c24}, /* 0.90320=f(-0.63000)*/ +{64, 0,123,__LINE__, 0x3fecff76, 0x36096fa9, 0xbfe3d70a, 0x3d70a3d2}, /* 0.90618=f(-0.62000)*/ +{64, 0,123,__LINE__, 0x3fed177a, 0xd128ba9e, 0xbfe3851e, 0xb851eb80}, /* 0.90911=f(-0.61000)*/ +{64, 0,123,__LINE__, 0x3fed2f24, 0xd2d06e4f, 0xbfe33333, 0x3333332e}, /* 0.91200=f(-0.60000)*/ +{64, 0,123,__LINE__, 0x3fed4673, 0xc74b5df2, 0xbfe2e147, 0xae147adc}, /* 0.91485=f(-0.59000)*/ +{64, 0,123,__LINE__, 0x3fed5d67, 0x3c9c7358, 0xbfe28f5c, 0x28f5c28a}, /* 0.91765=f(-0.58000)*/ +{64, 0,123,__LINE__, 0x3fed73fe, 0xc2811bd3, 0xbfe23d70, 0xa3d70a38}, /* 0.92040=f(-0.57000)*/ +{64, 0,123,__LINE__, 0x3fed8a39, 0xea73abdc, 0xbfe1eb85, 0x1eb851e6}, /* 0.92312=f(-0.56000)*/ +{64, 0,123,__LINE__, 0x3feda018, 0x47adb932, 0xbfe19999, 0x99999994}, /* 0.92579=f(-0.55000)*/ +{64, 0,123,__LINE__, 0x3fedb599, 0x6f2a6b98, 0xbfe147ae, 0x147ae142}, /* 0.92841=f(-0.54000)*/ +{64, 0,123,__LINE__, 0x3fedcabc, 0xf7a8c405, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.93099=f(-0.53000)*/ +{64, 0,123,__LINE__, 0x3feddf82, 0x79adda37, 0xbfe0a3d7, 0x0a3d709e}, /* 0.93353=f(-0.52000)*/ +{64, 0,123,__LINE__, 0x3fedf3e9, 0x8f8710bb, 0xbfe051eb, 0x851eb84c}, /* 0.93602=f(-0.51000)*/ +{64, 0,123,__LINE__, 0x3fee07f1, 0xd54c3f36, 0xbfdfffff, 0xfffffff4}, /* 0.93846=f(-0.50000)*/ +{64, 0,123,__LINE__, 0x3fee1b9a, 0xe8e1d303, 0xbfdf5c28, 0xf5c28f50}, /* 0.94086=f(-0.49000)*/ +{64, 0,123,__LINE__, 0x3fee2ee4, 0x69fae606, 0xbfdeb851, 0xeb851eac}, /* 0.94322=f(-0.48000)*/ +{64, 0,123,__LINE__, 0x3fee41cd, 0xfa1b4bad, 0xbfde147a, 0xe147ae08}, /* 0.94553=f(-0.47000)*/ +{64, 0,123,__LINE__, 0x3fee5457, 0x3c99941a, 0xbfdd70a3, 0xd70a3d64}, /* 0.94779=f(-0.46000)*/ +{62, 0,123,__LINE__, 0x3fee667f, 0xd6a10561, 0xbfdccccc, 0xccccccc0}, /* 0.95001=f(-0.45000)*/ +{64, 0,123,__LINE__, 0x3fee7847, 0x6f338ada, 0xbfdc28f5, 0xc28f5c1c}, /* 0.95218=f(-0.44000)*/ +{64, 0,123,__LINE__, 0x3fee89ad, 0xaf2b9a61, 0xbfdb851e, 0xb851eb78}, /* 0.95430=f(-0.43000)*/ +{64, 0,123,__LINE__, 0x3fee9ab2, 0x413e0fad, 0xbfdae147, 0xae147ad4}, /* 0.95638=f(-0.42000)*/ +{64, 0,123,__LINE__, 0x3feeab54, 0xd1fbfd72, 0xbfda3d70, 0xa3d70a30}, /* 0.95841=f(-0.41000)*/ +{64, 0,123,__LINE__, 0x3feebb95, 0x0fd47480, 0xbfd99999, 0x9999998c}, /* 0.96039=f(-0.40000)*/ +{64, 0,123,__LINE__, 0x3feecb72, 0xab1640a2, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.96233=f(-0.39000)*/ +{64, 0,123,__LINE__, 0x3feedaed, 0x55f19b65, 0xbfd851eb, 0x851eb844}, /* 0.96422=f(-0.38000)*/ +{64, 0,123,__LINE__, 0x3feeea04, 0xc479d485, 0xbfd7ae14, 0x7ae147a0}, /* 0.96606=f(-0.37000)*/ +{64, 0,123,__LINE__, 0x3feef8b8, 0xaca6f030, 0xbfd70a3d, 0x70a3d6fc}, /* 0.96786=f(-0.36000)*/ +{64, 0,123,__LINE__, 0x3fef0708, 0xc6573ae6, 0xbfd66666, 0x66666658}, /* 0.96960=f(-0.35000)*/ +{64, 0,123,__LINE__, 0x3fef14f4, 0xcb50d313, 0xbfd5c28f, 0x5c28f5b4}, /* 0.97130=f(-0.34000)*/ +{64, 0,123,__LINE__, 0x3fef227c, 0x77432832, 0xbfd51eb8, 0x51eb8510}, /* 0.97295=f(-0.33000)*/ +{64, 0,123,__LINE__, 0x3fef2f9f, 0x87c86f9f, 0xbfd47ae1, 0x47ae146c}, /* 0.97456=f(-0.32000)*/ +{64, 0,123,__LINE__, 0x3fef3c5d, 0xbc670ee5, 0xbfd3d70a, 0x3d70a3c8}, /* 0.97611=f(-0.31000)*/ +{64, 0,123,__LINE__, 0x3fef48b6, 0xd692fb9f, 0xbfd33333, 0x33333324}, /* 0.97762=f(-0.30000)*/ +{64, 0,123,__LINE__, 0x3fef54aa, 0x99af10ca, 0xbfd28f5c, 0x28f5c280}, /* 0.97908=f(-0.29000)*/ +{64, 0,123,__LINE__, 0x3fef6038, 0xcb0e599c, 0xbfd1eb85, 0x1eb851dc}, /* 0.98049=f(-0.28000)*/ +{64, 0,123,__LINE__, 0x3fef6b61, 0x31f551c4, 0xbfd147ae, 0x147ae138}, /* 0.98185=f(-0.27000)*/ +{64, 0,123,__LINE__, 0x3fef7623, 0x979b1b0a, 0xbfd0a3d7, 0x0a3d7094}, /* 0.98317=f(-0.26000)*/ +{64, 0,123,__LINE__, 0x3fef807f, 0xc72aa866, 0xbfcfffff, 0xffffffe0}, /* 0.98443=f(-0.25000)*/ +{64, 0,123,__LINE__, 0x3fef8a75, 0x8dc3de56, 0xbfceb851, 0xeb851e98}, /* 0.98565=f(-0.24000)*/ +{64, 0,123,__LINE__, 0x3fef9404, 0xba7ca8a2, 0xbfcd70a3, 0xd70a3d50}, /* 0.98681=f(-0.23000)*/ +{64, 0,123,__LINE__, 0x3fef9d2d, 0x1e620558, 0xbfcc28f5, 0xc28f5c08}, /* 0.98793=f(-0.22000)*/ +{64, 0,123,__LINE__, 0x3fefa5ee, 0x8c790524, 0xbfcae147, 0xae147ac0}, /* 0.98900=f(-0.21000)*/ +{64, 0,123,__LINE__, 0x3fefae48, 0xd9bfc0d5, 0xbfc99999, 0x99999978}, /* 0.99002=f(-0.20000)*/ +{64, 0,123,__LINE__, 0x3fefb63b, 0xdd2e4434, 0xbfc851eb, 0x851eb830}, /* 0.99099=f(-0.19000)*/ +{64, 0,123,__LINE__, 0x3fefbdc7, 0x6fb76e04, 0xbfc70a3d, 0x70a3d6e8}, /* 0.99191=f(-0.18000)*/ +{64, 0,123,__LINE__, 0x3fefc4eb, 0x6c49c537, 0xbfc5c28f, 0x5c28f5a0}, /* 0.99278=f(-0.17000)*/ +{64, 0,123,__LINE__, 0x3fefcba7, 0xafd04359, 0xbfc47ae1, 0x47ae1458}, /* 0.99361=f(-0.16000)*/ +{64, 0,123,__LINE__, 0x3fefd1fc, 0x19331411, 0xbfc33333, 0x33333310}, /* 0.99438=f(-0.15000)*/ +{64, 0,123,__LINE__, 0x3fefd7e8, 0x895849e4, 0xbfc1eb85, 0x1eb851c8}, /* 0.99510=f(-0.14000)*/ +{64, 0,123,__LINE__, 0x3fefdd6c, 0xe32487fa, 0xbfc0a3d7, 0x0a3d7080}, /* 0.99577=f(-0.13000)*/ +{64, 0,123,__LINE__, 0x3fefe289, 0x0b7ba117, 0xbfbeb851, 0xeb851e71}, /* 0.99640=f(-0.12000)*/ +{64, 0,123,__LINE__, 0x3fefe73c, 0xe9412b9d, 0xbfbc28f5, 0xc28f5be2}, /* 0.99697=f(-0.11000)*/ +{64, 0,123,__LINE__, 0x3fefeb88, 0x65590ab3, 0xbfb99999, 0x99999953}, /* 0.99750=f(-0.00100)*/ +{64, 0,123,__LINE__, 0x3fefef6b, 0x6aa7ec76, 0xbfb70a3d, 0x70a3d6c4}, /* 0.99797=f(-0.09000)*/ +{64, 0,123,__LINE__, 0x3feff2e5, 0xe613bd35, 0xbfb47ae1, 0x47ae1435}, /* 0.99840=f(-0.08000)*/ +{64, 0,123,__LINE__, 0x3feff5f7, 0xc6840fcb, 0xbfb1eb85, 0x1eb851a6}, /* 0.99877=f(-0.07000)*/ +{64, 0,123,__LINE__, 0x3feff8a0, 0xfce27af5, 0xbfaeb851, 0xeb851e2d}, /* 0.99910=f(-0.06000)*/ +{64, 0,123,__LINE__, 0x3feffae1, 0x7c1aebb8, 0xbfa99999, 0x9999990e}, /* 0.99937=f(-0.05000)*/ +{64, 0,123,__LINE__, 0x3feffcb9, 0x391beccd, 0xbfa47ae1, 0x47ae13ef}, /* 0.99960=f(-0.04000)*/ +{64, 0,123,__LINE__, 0x3feffe28, 0x2ad6e317, 0xbf9eb851, 0xeb851da0}, /* 0.99977=f(-0.03000)*/ +{64, 0,123,__LINE__, 0x3fefff2e, 0x4a403f11, 0xbf947ae1, 0x47ae1362}, /* 0.99990=f(-0.02000)*/ +{64, 0,123,__LINE__, 0x3fefffcb, 0x924fa353, 0xbf847ae1, 0x47ae1249}, /* 0.99997=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3fefffcb, 0x924fa353, 0x3f847ae1, 0x47ae16ad}, /* 0.99997=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3fefff2e, 0x4a403f11, 0x3f947ae1, 0x47ae1594}, /* 0.99990=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3feffe28, 0x2ad6e317, 0x3f9eb851, 0xeb851fd2}, /* 0.99977=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3feffcb9, 0x391beccd, 0x3fa47ae1, 0x47ae1508}, /* 0.99960=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3feffae1, 0x7c1aebb7, 0x3fa99999, 0x99999a27}, /* 0.99937=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3feff8a0, 0xfce27af5, 0x3faeb851, 0xeb851f46}, /* 0.99910=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3feff5f7, 0xc6840fcb, 0x3fb1eb85, 0x1eb85232}, /* 0.99877=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3feff2e5, 0xe613bd34, 0x3fb47ae1, 0x47ae14c1}, /* 0.99840=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fefef6b, 0x6aa7ec75, 0x3fb70a3d, 0x70a3d750}, /* 0.99797=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fefeb88, 0x65590ab3, 0x3fb99999, 0x999999df}, /* 0.99750=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fefe73c, 0xe9412b9c, 0x3fbc28f5, 0xc28f5c6e}, /* 0.99697=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fefe289, 0x0b7ba115, 0x3fbeb851, 0xeb851efd}, /* 0.99640=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fefdd6c, 0xe32487fa, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.99577=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fefd7e8, 0x895849e2, 0x3fc1eb85, 0x1eb8520e}, /* 0.99510=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fefd1fc, 0x19331410, 0x3fc33333, 0x33333356}, /* 0.99438=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fefcba7, 0xafd04357, 0x3fc47ae1, 0x47ae149e}, /* 0.99361=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fefc4eb, 0x6c49c536, 0x3fc5c28f, 0x5c28f5e6}, /* 0.99278=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fefbdc7, 0x6fb76e02, 0x3fc70a3d, 0x70a3d72e}, /* 0.99191=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fefb63b, 0xdd2e4433, 0x3fc851eb, 0x851eb876}, /* 0.99099=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fefae48, 0xd9bfc0d3, 0x3fc99999, 0x999999be}, /* 0.99002=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fefa5ee, 0x8c790522, 0x3fcae147, 0xae147b06}, /* 0.98900=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fef9d2d, 0x1e620556, 0x3fcc28f5, 0xc28f5c4e}, /* 0.98793=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fef9404, 0xba7ca8a1, 0x3fcd70a3, 0xd70a3d96}, /* 0.98681=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fef8a75, 0x8dc3de54, 0x3fceb851, 0xeb851ede}, /* 0.98565=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fef807f, 0xc72aa862, 0x3fd00000, 0x00000013}, /* 0.98443=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fef7623, 0x979b1b08, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.98317=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fef6b61, 0x31f551c1, 0x3fd147ae, 0x147ae15b}, /* 0.98185=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fef6038, 0xcb0e599a, 0x3fd1eb85, 0x1eb851ff}, /* 0.98049=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fef54aa, 0x99af10c8, 0x3fd28f5c, 0x28f5c2a3}, /* 0.97908=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fef48b6, 0xd692fb9c, 0x3fd33333, 0x33333347}, /* 0.97762=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fef3c5d, 0xbc670ee3, 0x3fd3d70a, 0x3d70a3eb}, /* 0.97611=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fef2f9f, 0x87c86f9b, 0x3fd47ae1, 0x47ae148f}, /* 0.97456=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fef227c, 0x7743282e, 0x3fd51eb8, 0x51eb8533}, /* 0.97295=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fef14f4, 0xcb50d310, 0x3fd5c28f, 0x5c28f5d7}, /* 0.97130=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fef0708, 0xc6573ae4, 0x3fd66666, 0x6666667b}, /* 0.96960=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3feef8b8, 0xaca6f02c, 0x3fd70a3d, 0x70a3d71f}, /* 0.96786=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3feeea04, 0xc479d483, 0x3fd7ae14, 0x7ae147c3}, /* 0.96606=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3feedaed, 0x55f19b62, 0x3fd851eb, 0x851eb867}, /* 0.96422=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3feecb72, 0xab1640a0, 0x3fd8f5c2, 0x8f5c290b}, /* 0.96233=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3feebb95, 0x0fd4747c, 0x3fd99999, 0x999999af}, /* 0.96039=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3feeab54, 0xd1fbfd6f, 0x3fda3d70, 0xa3d70a53}, /* 0.95841=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fee9ab2, 0x413e0fa8, 0x3fdae147, 0xae147af7}, /* 0.95638=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fee89ad, 0xaf2b9a5e, 0x3fdb851e, 0xb851eb9b}, /* 0.95430=f(0.43000)*/ +{62, 0,123,__LINE__, 0x3fee7847, 0x6f338ad5, 0x3fdc28f5, 0xc28f5c3f}, /* 0.95218=f(0.44000)*/ +{63, 0,123,__LINE__, 0x3fee667f, 0xd6a1055e, 0x3fdccccc, 0xcccccce3}, /* 0.95001=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fee5457, 0x3c999417, 0x3fdd70a3, 0xd70a3d87}, /* 0.94779=f(0.46000)*/ +{63, 0,123,__LINE__, 0x3fee41cd, 0xfa1b4ba8, 0x3fde147a, 0xe147ae2b}, /* 0.94553=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fee2ee4, 0x69fae602, 0x3fdeb851, 0xeb851ecf}, /* 0.94322=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fee1b9a, 0xe8e1d300, 0x3fdf5c28, 0xf5c28f73}, /* 0.94086=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fee07f1, 0xd54c3f33, 0x3fe00000, 0x0000000b}, /* 0.93846=f(0.50000)*/ +{63, 0,123,__LINE__, 0x3fedf3e9, 0x8f8710b6, 0x3fe051eb, 0x851eb85d}, /* 0.93602=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3feddf82, 0x79adda33, 0x3fe0a3d7, 0x0a3d70af}, /* 0.93353=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fedcabc, 0xf7a8c401, 0x3fe0f5c2, 0x8f5c2901}, /* 0.93099=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fedb599, 0x6f2a6b95, 0x3fe147ae, 0x147ae153}, /* 0.92841=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3feda018, 0x47adb92d, 0x3fe19999, 0x999999a5}, /* 0.92579=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fed8a39, 0xea73abd7, 0x3fe1eb85, 0x1eb851f7}, /* 0.92312=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fed73fe, 0xc2811bd0, 0x3fe23d70, 0xa3d70a49}, /* 0.92040=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fed5d67, 0x3c9c7354, 0x3fe28f5c, 0x28f5c29b}, /* 0.91765=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fed4673, 0xc74b5ded, 0x3fe2e147, 0xae147aed}, /* 0.91485=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fed2f24, 0xd2d06e4a, 0x3fe33333, 0x3333333f}, /* 0.91200=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fed177a, 0xd128ba99, 0x3fe3851e, 0xb851eb91}, /* 0.90911=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fecff76, 0x36096fa5, 0x3fe3d70a, 0x3d70a3e3}, /* 0.90618=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fece717, 0x76dd5a7e, 0x3fe428f5, 0xc28f5c35}, /* 0.90320=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fecce5f, 0x0ac26907, 0x3fe47ae1, 0x47ae1487}, /* 0.90019=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fecb54d, 0x6a872132, 0x3fe4cccc, 0xccccccd9}, /* 0.89713=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fec9be3, 0x10a80f29, 0x3fe51eb8, 0x51eb852b}, /* 0.89402=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fec8220, 0x794d2a56, 0x3fe570a3, 0xd70a3d7d}, /* 0.89088=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fec6806, 0x22473173, 0x3fe5c28f, 0x5c28f5cf}, /* 0.88769=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fec4d94, 0x8b0cfd96, 0x3fe6147a, 0xe147ae21}, /* 0.88447=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fec32cc, 0x34b8cc54, 0x3fe66666, 0x66666673}, /* 0.88120=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fec17ad, 0xa205811b, 0x3fe6b851, 0xeb851ec5}, /* 0.87789=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3febfc39, 0x574bddab, 0x3fe70a3d, 0x70a3d717}, /* 0.87453=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3febe06f, 0xda7fb1eb, 0x3fe75c28, 0xf5c28f69}, /* 0.87114=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3febc451, 0xb32d030d, 0x3fe7ae14, 0x7ae147bb}, /* 0.86771=f(0.74000)*/ +{61, 0,123,__LINE__, 0x3feba7df, 0x6a752a13, 0x3fe80000, 0x0000000d}, /* 0.86424=f(0.75000)*/ +{63, 0,123,__LINE__, 0x3feb8b19, 0x8b0be9da, 0x3fe851eb, 0x851eb85f}, /* 0.86072=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3feb6e00, 0xa1347c9d, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.85717=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3feb5095, 0x3abe991a, 0x3fe8f5c2, 0x8f5c2903}, /* 0.85358=f(0.78000)*/ +{63, 0,123,__LINE__, 0x3feb32d7, 0xe7036f6a, 0x3fe947ae, 0x147ae155}, /* 0.84995=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3feb14c9, 0x36e29d80, 0x3fe99999, 0x999999a7}, /* 0.84628=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3feaf669, 0xbcbf1b86, 0x3fe9eb85, 0x1eb851f9}, /* 0.84257=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fead7ba, 0x0c7c2014, 0x3fea3d70, 0xa3d70a4b}, /* 0.83883=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3feab8ba, 0xbb79fc4e, 0x3fea8f5c, 0x28f5c29d}, /* 0.83504=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fea996c, 0x6092f016, 0x3feae147, 0xae147aef}, /* 0.83122=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fea79cf, 0x9417f646, 0x3feb3333, 0x33333341}, /* 0.82736=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fea59e4, 0xefcd890c, 0x3feb851e, 0xb851eb93}, /* 0.82347=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fea39ad, 0x0ee85e94, 0x3febd70a, 0x3d70a3e5}, /* 0.81954=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fea1928, 0x8e0a1de3, 0x3fec28f5, 0xc28f5c37}, /* 0.81557=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe9f858, 0x0b3e0c29, 0x3fec7ae1, 0x47ae1489}, /* 0.81156=f(0.89000)*/ +{61, 0,123,__LINE__, 0x3fe9d73c, 0x25f5b273, 0x3feccccc, 0xccccccdb}, /* 0.80752=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe9b5d5, 0x7f057bea, 0x3fed1eb8, 0x51eb852d}, /* 0.80344=f(0.91000)*/ +{62, 0,123,__LINE__, 0x3fe99424, 0xb8a14cad, 0x3fed70a3, 0xd70a3d7f}, /* 0.79933=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe9722a, 0x7659114c, 0x3fedc28f, 0x5c28f5d1}, /* 0.79518=f(0.93000)*/ +{59, 0,123,__LINE__, 0x3fe94fe7, 0x5d15470f, 0x3fee147a, 0xe147ae23}, /* 0.79100=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fe92d5c, 0x13137d06, 0x3fee6666, 0x66666675}, /* 0.78678=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fe90a89, 0x3fe2ce05, 0x3feeb851, 0xeb851ec7}, /* 0.78253=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fe8e76f, 0x8c60539c, 0x3fef0a3d, 0x70a3d719}, /* 0.77825=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fe8c40f, 0xa2b39215, 0x3fef5c28, 0xf5c28f6b}, /* 0.77393=f(0.98000)*/ +{63, 0,123,__LINE__, 0x3fe8a06a, 0x2e4addae, 0x3fefae14, 0x7ae147bd}, /* 0.76958=f(0.99000)*/ +{62, 0,123,__LINE__, 0x3fe87c7f, 0xdbd7b8e9, 0x3ff00000, 0x00000007}, /* 0.76519=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fe85851, 0x594b2c46, 0x3ff028f5, 0xc28f5c30}, /* 0.76078=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fe833df, 0x55d21751, 0x3ff051eb, 0x851eb859}, /* 0.75633=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fe80f2a, 0x81d17b2d, 0x3ff07ae1, 0x47ae1482}, /* 0.75185=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fe7ea33, 0x8ee2bea6, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.74733=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fe7c4fb, 0x2fcfebeb, 0x3ff0cccc, 0xccccccd4}, /* 0.74279=f(1.05000)*/ +{63, 0,123,__LINE__, 0x3fe79f82, 0x188fe7f6, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.73822=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fe779c8, 0xfe42a3d3, 0x3ff11eb8, 0x51eb8526}, /* 0.73361=f(1.07000)*/ +{62, 0,123,__LINE__, 0x3fe753d0, 0x972d47a9, 0x3ff147ae, 0x147ae14f}, /* 0.72898=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fe72d99, 0x9ab657e3, 0x3ff170a3, 0xd70a3d78}, /* 0.72431=f(1.09000)*/ +{63, 0,123,__LINE__, 0x3fe70724, 0xc161d446, 0x3ff19999, 0x999999a1}, /* 0.71962=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fe6e072, 0xc4cd5141, 0x3ff1c28f, 0x5c28f5ca}, /* 0.71489=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fe6b984, 0x5fac0b6a, 0x3ff1eb85, 0x1eb851f3}, /* 0.71014=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fe6925a, 0x4dc2f553, 0x3ff2147a, 0xe147ae1c}, /* 0.70536=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fe66af5, 0x4be4bfc5, 0x3ff23d70, 0xa3d70a45}, /* 0.70055=f(1.14000)*/ +{63, 0,123,__LINE__, 0x3fe64356, 0x17eddc7c, 0x3ff26666, 0x6666666e}, /* 0.69571=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fe61b7d, 0x70c07b70, 0x3ff28f5c, 0x28f5c297}, /* 0.69085=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fe5f36c, 0x164082d2, 0x3ff2b851, 0xeb851ec0}, /* 0.68596=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fe5cb22, 0xc94f81c7, 0x3ff2e147, 0xae147ae9}, /* 0.68104=f(1.18000)*/ +{63, 0,123,__LINE__, 0x3fe5a2a2, 0x4bc89dfe, 0x3ff30a3d, 0x70a3d712}, /* 0.67610=f(1.19000)*/ +{55, 0,123,__LINE__, 0x3fcc3208, 0xa31f1a8d, 0xc01921fb, 0x54442d18}, /* 0.22027=f(-6.28318)*/ +{59, 0,123,__LINE__, 0xbfd103ce, 0x207e6e9b, 0xc012d97c, 0x7f3321d2}, /* -0.26585=f(-4.71238)*/ +{58, 0,123,__LINE__, 0xbfd378b4, 0x2ec2e4aa, 0xc00921fb, 0x54442d18}, /* -0.30424=f(-3.14159)*/ +{62, 0,123,__LINE__, 0x3fde3544, 0x9659654c, 0xbff921fb, 0x54442d18}, /* 0.47200=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{62, 0,123,__LINE__, 0x3fde3544, 0x9659654c, 0x3ff921fb, 0x54442d18}, /* 0.47200=f(1.57079)*/ +{58, 0,123,__LINE__, 0xbfd378b4, 0x2ec2e4aa, 0x400921fb, 0x54442d18}, /* -0.30424=f(3.14159)*/ +{59, 0,123,__LINE__, 0xbfd103ce, 0x207e6e9b, 0x4012d97c, 0x7f3321d2}, /* -0.26585=f(4.71238)*/ +{64, 0,123,__LINE__, 0xbfb61c36, 0x50e6ebab, 0xc03e0000, 0x00000000}, /* -0.08636=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbfbbb802, 0x5070cbd6, 0xc03c4ccc, 0xcccccccd}, /* -0.10827=f(-28.3000)*/ +{64, 0,123,__LINE__, 0x3fbedcdd, 0xec0a8e97, 0xc03a9999, 0x9999999a}, /* 0.12055=f(-26.6000)*/ +{57, 0,123,__LINE__, 0x3fb54f9b, 0x97999d3f, 0xc038e666, 0x66666667}, /* 0.08324=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xbfc36001, 0x17fee555, 0xc0373333, 0x33333334}, /* -0.15136=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbfa90eee, 0x7a5df36a, 0xc0358000, 0x00000001}, /* -0.04894=f(-21.5000)*/ +{61, 0,123,__LINE__, 0x3fc6a8df, 0xe461bf0d, 0xc033cccc, 0xccccccce}, /* 0.17702=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x3f763aa5, 0xe3227311, 0xc0321999, 0x9999999b}, /* 0.00542=f(-18.1000)*/ +{61, 0,123,__LINE__, 0xbfc915b4, 0x043f8fcc, 0xc0306666, 0x66666668}, /* -0.19597=f(-16.4000)*/ +{61, 0,123,__LINE__, 0x3fa86483, 0x1422de4b, 0xc02d6666, 0x6666666a}, /* 0.04764=f(-14.7000)*/ +{64, 0,123,__LINE__, 0x3fca7c8d, 0xf532fa0e, 0xc02a0000, 0x00000004}, /* 0.20692=f(-13.0000)*/ +{63, 0,123,__LINE__, 0xbfbcb084, 0xb1e7a2ae, 0xc0269999, 0x9999999e}, /* -0.11206=f(-11.3000)*/ +{60, 0,123,__LINE__, 0xbfcabfd0, 0x8c7a26b9, 0xc0233333, 0x33333338}, /* -0.20897=f(-9.60000)*/ +{54, 0,123,__LINE__, 0x3fc8e0d9, 0x53977cd9, 0xc01f9999, 0x999999a3}, /* 0.19436=f(-7.90000)*/ +{56, 0,123,__LINE__, 0x3fc9d2da, 0x5e4feb58, 0xc018cccc, 0xccccccd6}, /* 0.20174=f(-6.20000)*/ +{58, 0,123,__LINE__, 0xbfd483c4, 0xba446873, 0xc0120000, 0x00000009}, /* -0.32054=f(-4.50000)*/ +{55, 0,123,__LINE__, 0xbfc7af42, 0xbff0d903, 0xc0066666, 0x66666678}, /* -0.18503=f(-2.80000)*/ +{64, 0,123,__LINE__, 0x3fe70724, 0xc161d42c, 0xbff19999, 0x999999bd}, /* 0.71962=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fed2f24, 0xd2d06e62, 0x3fe33333, 0x333332ec}, /* 0.91200=f(0.60000)*/ +{58, 0,123,__LINE__, 0x3fac6fb5, 0xeba43bce, 0x40026666, 0x66666654}, /* 0.05553=f(2.30000)*/ +{55, 0,123,__LINE__, 0xbfd96ae7, 0x093e9504, 0x400fffff, 0xffffffee}, /* -0.39714=f(4.00000)*/ +{54, 0,123,__LINE__, 0x3faeadd5, 0xe4480d75, 0x4016cccc, 0xccccccc4}, /* 0.05992=f(5.70000)*/ +{55, 0,123,__LINE__, 0x3fd1d485, 0x4b035ef1, 0x401d9999, 0x99999991}, /* 0.27859=f(7.40000)*/ +{59, 0,123,__LINE__, 0xbfbd3ec8, 0x484b6230, 0x40223333, 0x3333332f}, /* -0.11423=f(9.10000)*/ +{62, 0,123,__LINE__, 0xbfca0285, 0xa59d527a, 0x40259999, 0x99999995}, /* -0.20320=f(10.8000)*/ +{61, 0,123,__LINE__, 0x3fc2cd18, 0xc19effb3, 0x4028ffff, 0xfffffffb}, /* 0.14688=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3fc21864, 0x59e106b7, 0x402c6666, 0x66666661}, /* 0.14136=f(14.2000)*/ +{61, 0,123,__LINE__, 0xbfc51dc0, 0xda0c410a, 0x402fcccc, 0xccccccc7}, /* -0.16497=f(15.9000)*/ +{64, 0,123,__LINE__, 0xbfb61996, 0x15cbb9aa, 0x40319999, 0x99999997}, /* -0.08632=f(17.6000)*/ +{63, 0,123,__LINE__, 0x3fc5e6d8, 0x58408485, 0x40334ccc, 0xccccccca}, /* 0.17110=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3fa2ba7d, 0xf3556369, 0x4034ffff, 0xfffffffd}, /* 0.03657=f(21.0000)*/ +{63, 0,123,__LINE__, 0xbfc55c69, 0x1955dac2, 0x4036b333, 0x33333330}, /* -0.16688=f(22.7000)*/ +{55, 0,123,__LINE__, 0x3f7f6fde, 0xae9274fd, 0x40386666, 0x66666663}, /* 0.00767=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3fc3ad27, 0xbf860b1b, 0x403a1999, 0x99999996}, /* 0.15372=f(26.1000)*/ +{64, 0,123,__LINE__, 0xbfa7617b, 0x541dda80, 0x403bcccc, 0xccccccc9}, /* -0.04566=f(27.8000)*/ +{64, 0,123,__LINE__, 0xbfc10afd, 0x307647d2, 0x403d7fff, 0xfffffffc}, /* -0.13314=f(29.5000)*/ +0,}; +test_j0(m) {run_vector_1(m,j0_vec,(char *)(j0),"j0","dd"); } diff --git a/newlib/libm/test/j0f_vec.c b/newlib/libm/test/j0f_vec.c new file mode 100644 index 000000000..2f7a531e6 --- /dev/null +++ b/newlib/libm/test/j0f_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type j0f_vec[] = { +{11, 0,123,__LINE__, 0x3fe579eb, 0x54c385c0, 0xbff33333, 0x33333333}, /* 0.67113=f(-1.20000)*/ +{11, 0,123,__LINE__, 0x3fe5a2a2, 0x4048de13, 0xbff30a3d, 0x70a3d70a}, /* 0.67610=f(-1.19000)*/ +{11, 0,123,__LINE__, 0x3fe5cb22, 0xe4209500, 0xbff2e147, 0xae147ae1}, /* 0.68104=f(-1.18000)*/ +{11, 0,123,__LINE__, 0x3fe5f36c, 0x275c77de, 0xbff2b851, 0xeb851eb8}, /* 0.68596=f(-1.17000)*/ +{11, 0,123,__LINE__, 0x3fe61b7d, 0x6fc93bf1, 0xbff28f5c, 0x28f5c28f}, /* 0.69085=f(-1.16000)*/ +{11, 0,123,__LINE__, 0x3fe64356, 0x2f751fea, 0xbff26666, 0x66666666}, /* 0.69571=f(-1.15000)*/ +{11, 0,123,__LINE__, 0x3fe66af5, 0x4cd063b5, 0xbff23d70, 0xa3d70a3d}, /* 0.70055=f(-1.14000)*/ +{11, 0,123,__LINE__, 0x3fe6925a, 0x53fe967c, 0xbff2147a, 0xe147ae14}, /* 0.70536=f(-1.13000)*/ +{11, 0,123,__LINE__, 0x3fe6b984, 0x45da0567, 0xbff1eb85, 0x1eb851eb}, /* 0.71014=f(-1.12000)*/ +{11, 0,123,__LINE__, 0x3fe6e072, 0xba4519c7, 0xbff1c28f, 0x5c28f5c2}, /* 0.71489=f(-1.11000)*/ +{11, 0,123,__LINE__, 0x3fe70724, 0xb21e6353, 0xbff19999, 0x99999999}, /* 0.71962=f(-1.10000)*/ +{11, 0,123,__LINE__, 0x3fe72d99, 0x9f97d17f, 0xbff170a3, 0xd70a3d70}, /* 0.72431=f(-1.09000)*/ +{11, 0,123,__LINE__, 0x3fe753d0, 0x8dd00e2c, 0xbff147ae, 0x147ae147}, /* 0.72898=f(-1.08000)*/ +{11, 0,123,__LINE__, 0x3fe779c8, 0xe474258f, 0xbff11eb8, 0x51eb851e}, /* 0.73361=f(-1.07000)*/ +{11, 0,123,__LINE__, 0x3fe79f82, 0x31c8563a, 0xbff0f5c2, 0x8f5c28f5}, /* 0.73822=f(-1.06000)*/ +{11, 0,123,__LINE__, 0x3fe7c4fb, 0x3f1bfd37, 0xbff0cccc, 0xcccccccc}, /* 0.74279=f(-1.05000)*/ +{11, 0,123,__LINE__, 0x3fe7ea33, 0x910e6e4d, 0xbff0a3d7, 0x0a3d70a3}, /* 0.74733=f(-1.04000)*/ +{11, 0,123,__LINE__, 0x3fe80f2a, 0x879b83cb, 0xbff07ae1, 0x47ae147a}, /* 0.75185=f(-1.03000)*/ +{11, 0,123,__LINE__, 0x3fe833df, 0x65cb3b31, 0xbff051eb, 0x851eb851}, /* 0.75633=f(-1.02000)*/ +{11, 0,123,__LINE__, 0x3fe85851, 0x6f62a516, 0xbff028f5, 0xc28f5c28}, /* 0.76078=f(-1.01000)*/ +{11, 0,123,__LINE__, 0x3fe87c7f, 0xddb0a579, 0xbfefffff, 0xfffffffe}, /* 0.76519=f(-0.01000)*/ +{11, 0,123,__LINE__, 0x3fe8a06a, 0x37748418, 0xbfefae14, 0x7ae147ac}, /* 0.76958=f(-0.99000)*/ +{11, 0,123,__LINE__, 0x3fe8c40f, 0xacecf607, 0xbfef5c28, 0xf5c28f5a}, /* 0.77393=f(-0.98000)*/ +{11, 0,123,__LINE__, 0x3fe8e76f, 0x6dbe05c9, 0xbfef0a3d, 0x70a3d708}, /* 0.77825=f(-0.97000)*/ +{11, 0,123,__LINE__, 0x3fe90a89, 0x27d4d6b5, 0xbfeeb851, 0xeb851eb6}, /* 0.78253=f(-0.96000)*/ +{11, 0,123,__LINE__, 0x3fe92d5c, 0x2907f4a5, 0xbfee6666, 0x66666664}, /* 0.78678=f(-0.95000)*/ +{11, 0,123,__LINE__, 0x3fe94fe7, 0x5d5e54bc, 0xbfee147a, 0xe147ae12}, /* 0.79100=f(-0.94000)*/ +{11, 0,123,__LINE__, 0x3fe9722a, 0x7415526a, 0xbfedc28f, 0x5c28f5c0}, /* 0.79518=f(-0.93000)*/ +{11, 0,123,__LINE__, 0x3fe99424, 0xc2e8192d, 0xbfed70a3, 0xd70a3d6e}, /* 0.79933=f(-0.92000)*/ +{11, 0,123,__LINE__, 0x3fe9b5d5, 0x71a7c33d, 0xbfed1eb8, 0x51eb851c}, /* 0.80344=f(-0.91000)*/ +{11, 0,123,__LINE__, 0x3fe9d73c, 0x1a10bb13, 0xbfeccccc, 0xccccccca}, /* 0.80752=f(-0.90000)*/ +{11, 0,123,__LINE__, 0x3fe9f858, 0x02fd26e5, 0xbfec7ae1, 0x47ae1478}, /* 0.81156=f(-0.89000)*/ +{11, 0,123,__LINE__, 0x3fea1928, 0x820065dd, 0xbfec28f5, 0xc28f5c26}, /* 0.81557=f(-0.88000)*/ +{11, 0,123,__LINE__, 0x3fea39ad, 0x0b502c4f, 0xbfebd70a, 0x3d70a3d4}, /* 0.81954=f(-0.87000)*/ +{11, 0,123,__LINE__, 0x3fea59e4, 0xe69c2792, 0xbfeb851e, 0xb851eb82}, /* 0.82347=f(-0.86000)*/ +{11, 0,123,__LINE__, 0x3fea79cf, 0x8f646d74, 0xbfeb3333, 0x33333330}, /* 0.82736=f(-0.85000)*/ +{11, 0,123,__LINE__, 0x3fea996c, 0x73e91b88, 0xbfeae147, 0xae147ade}, /* 0.83122=f(-0.84000)*/ +{11, 0,123,__LINE__, 0x3feab8ba, 0xc3b2f724, 0xbfea8f5c, 0x28f5c28c}, /* 0.83504=f(-0.83000)*/ +{11, 0,123,__LINE__, 0x3fead7ba, 0x19b6b3de, 0xbfea3d70, 0xa3d70a3a}, /* 0.83883=f(-0.82000)*/ +{11, 0,123,__LINE__, 0x3feaf669, 0xbf1b4779, 0xbfe9eb85, 0x1eb851e8}, /* 0.84257=f(-0.81000)*/ +{11, 0,123,__LINE__, 0x3feb14c9, 0x2f719b53, 0xbfe99999, 0x99999996}, /* 0.84628=f(-0.80000)*/ +{11, 0,123,__LINE__, 0x3feb32d8, 0x0085d38a, 0xbfe947ae, 0x147ae144}, /* 0.84995=f(-0.79000)*/ +{11, 0,123,__LINE__, 0x3feb5095, 0x61f1aa3c, 0xbfe8f5c2, 0x8f5c28f2}, /* 0.85358=f(-0.78000)*/ +{11, 0,123,__LINE__, 0x3feb6e00, 0xa37eeb48, 0xbfe8a3d7, 0x0a3d70a0}, /* 0.85717=f(-0.77000)*/ +{11, 0,123,__LINE__, 0x3feb8b19, 0xa2b54d3b, 0xbfe851eb, 0x851eb84e}, /* 0.86072=f(-0.76000)*/ +{11, 0,123,__LINE__, 0x3feba7df, 0x4dec7685, 0xbfe7ffff, 0xfffffffc}, /* 0.86424=f(-0.75000)*/ +{11, 0,123,__LINE__, 0x3febc451, 0xca492588, 0xbfe7ae14, 0x7ae147aa}, /* 0.86771=f(-0.74000)*/ +{11, 0,123,__LINE__, 0x3febe06f, 0xdabafaf7, 0xbfe75c28, 0xf5c28f58}, /* 0.87114=f(-0.73000)*/ +{11, 0,123,__LINE__, 0x3febfc39, 0x4227a674, 0xbfe70a3d, 0x70a3d706}, /* 0.87453=f(-0.72000)*/ +{11, 0,123,__LINE__, 0x3fec17ad, 0x98fd2768, 0xbfe6b851, 0xeb851eb4}, /* 0.87789=f(-0.71000)*/ +{11, 0,123,__LINE__, 0x3fec32cc, 0x30c2d22a, 0xbfe66666, 0x66666662}, /* 0.88120=f(-0.70000)*/ +{11, 0,123,__LINE__, 0x3fec4d94, 0x85aa99ff, 0xbfe6147a, 0xe147ae10}, /* 0.88447=f(-0.69000)*/ +{11, 0,123,__LINE__, 0x3fec6806, 0x0b10200b, 0xbfe5c28f, 0x5c28f5be}, /* 0.88769=f(-0.68000)*/ +{11, 0,123,__LINE__, 0x3fec8220, 0x855cf82d, 0xbfe570a3, 0xd70a3d6c}, /* 0.89088=f(-0.67000)*/ +{11, 0,123,__LINE__, 0x3fec9be2, 0xfec2e4ab, 0xbfe51eb8, 0x51eb851a}, /* 0.89402=f(-0.66000)*/ +{11, 0,123,__LINE__, 0x3fecb54d, 0x5df0eb42, 0xbfe4cccc, 0xccccccc8}, /* 0.89713=f(-0.65000)*/ +{11, 0,123,__LINE__, 0x3fecce5f, 0x1bceeae4, 0xbfe47ae1, 0x47ae1476}, /* 0.90019=f(-0.64000)*/ +{11, 0,123,__LINE__, 0x3fece717, 0x68f13a43, 0xbfe428f5, 0xc28f5c24}, /* 0.90320=f(-0.63000)*/ +{11, 0,123,__LINE__, 0x3fecff76, 0x2d1f708f, 0xbfe3d70a, 0x3d70a3d2}, /* 0.90618=f(-0.62000)*/ +{11, 0,123,__LINE__, 0x3fed177a, 0xbbd2bb7c, 0xbfe3851e, 0xb851eb80}, /* 0.90911=f(-0.61000)*/ +{11, 0,123,__LINE__, 0x3fed2f24, 0xdb21a0f2, 0xbfe33333, 0x3333332e}, /* 0.91200=f(-0.60000)*/ +{11, 0,123,__LINE__, 0x3fed4673, 0xbc19773d, 0xbfe2e147, 0xae147adc}, /* 0.91485=f(-0.59000)*/ +{11, 0,123,__LINE__, 0x3fed5d67, 0x44d9b7f9, 0xbfe28f5c, 0x28f5c28a}, /* 0.91765=f(-0.58000)*/ +{11, 0,123,__LINE__, 0x3fed73fe, 0xd033e05b, 0xbfe23d70, 0xa3d70a38}, /* 0.92040=f(-0.57000)*/ +{11, 0,123,__LINE__, 0x3fed8a39, 0xd8a68cb3, 0xbfe1eb85, 0x1eb851e6}, /* 0.92312=f(-0.56000)*/ +{11, 0,123,__LINE__, 0x3feda018, 0x45c20394, 0xbfe19999, 0x99999994}, /* 0.92579=f(-0.55000)*/ +{11, 0,123,__LINE__, 0x3fedb599, 0x4c4fd893, 0xbfe147ae, 0x147ae142}, /* 0.92841=f(-0.54000)*/ +{11, 0,123,__LINE__, 0x3fedcabc, 0xfafde88a, 0xbfe0f5c2, 0x8f5c28f0}, /* 0.93099=f(-0.53000)*/ +{11, 0,123,__LINE__, 0x3feddf82, 0x86b32ac1, 0xbfe0a3d7, 0x0a3d709e}, /* 0.93353=f(-0.52000)*/ +{11, 0,123,__LINE__, 0x3fedf3e9, 0x8efe6284, 0xbfe051eb, 0x851eb84c}, /* 0.93602=f(-0.51000)*/ +{11, 0,123,__LINE__, 0x3fee07f1, 0xdc9ee45c, 0xbfdfffff, 0xfffffff4}, /* 0.93846=f(-0.50000)*/ +{11, 0,123,__LINE__, 0x3fee1b9a, 0xc853cc04, 0xbfdf5c28, 0xf5c28f50}, /* 0.94086=f(-0.49000)*/ +{11, 0,123,__LINE__, 0x3fee2ee4, 0x6330b738, 0xbfdeb851, 0xeb851eac}, /* 0.94322=f(-0.48000)*/ +{11, 0,123,__LINE__, 0x3fee41ce, 0x069bb0ab, 0xbfde147a, 0xe147ae08}, /* 0.94553=f(-0.47000)*/ +{11, 0,123,__LINE__, 0x3fee5457, 0x32132cdf, 0xbfdd70a3, 0xd70a3d64}, /* 0.94779=f(-0.46000)*/ +{11, 0,123,__LINE__, 0x3fee667f, 0xd3cd6cb8, 0xbfdccccc, 0xccccccc0}, /* 0.95001=f(-0.45000)*/ +{11, 0,123,__LINE__, 0x3fee7847, 0x8e418594, 0xbfdc28f5, 0xc28f5c1c}, /* 0.95218=f(-0.44000)*/ +{11, 0,123,__LINE__, 0x3fee89ad, 0xbd567f2a, 0xbfdb851e, 0xb851eb78}, /* 0.95430=f(-0.43000)*/ +{11, 0,123,__LINE__, 0x3fee9ab2, 0x506b3888, 0xbfdae147, 0xae147ad4}, /* 0.95638=f(-0.42000)*/ +{11, 0,123,__LINE__, 0x3feeab54, 0xc6756c6e, 0xbfda3d70, 0xa3d70a30}, /* 0.95841=f(-0.41000)*/ +{11, 0,123,__LINE__, 0x3feebb95, 0x115ba24c, 0xbfd99999, 0x9999998c}, /* 0.96039=f(-0.40000)*/ +{11, 0,123,__LINE__, 0x3feecb72, 0xb0add857, 0xbfd8f5c2, 0x8f5c28e8}, /* 0.96233=f(-0.39000)*/ +{11, 0,123,__LINE__, 0x3feedaed, 0x6f5b4c3d, 0xbfd851eb, 0x851eb844}, /* 0.96422=f(-0.38000)*/ +{11, 0,123,__LINE__, 0x3feeea04, 0xd05bdf84, 0xbfd7ae14, 0x7ae147a0}, /* 0.96606=f(-0.37000)*/ +{11, 0,123,__LINE__, 0x3feef8b8, 0xc565bda8, 0xbfd70a3d, 0x70a3d6fc}, /* 0.96786=f(-0.36000)*/ +{11, 0,123,__LINE__, 0x3fef0708, 0xcf40dce7, 0xbfd66666, 0x66666658}, /* 0.96960=f(-0.35000)*/ +{11, 0,123,__LINE__, 0x3fef14f4, 0xe1b7d8d5, 0xbfd5c28f, 0x5c28f5b4}, /* 0.97130=f(-0.34000)*/ +{11, 0,123,__LINE__, 0x3fef227c, 0x7e32bf66, 0xbfd51eb8, 0x51eb8510}, /* 0.97295=f(-0.33000)*/ +{11, 0,123,__LINE__, 0x3fef2f9f, 0x9921a2b4, 0xbfd47ae1, 0x47ae146c}, /* 0.97456=f(-0.32000)*/ +{11, 0,123,__LINE__, 0x3fef3c5d, 0xb48e79df, 0xbfd3d70a, 0x3d70a3c8}, /* 0.97611=f(-0.31000)*/ +{11, 0,123,__LINE__, 0x3fef48b6, 0xc5905a61, 0xbfd33333, 0x33333324}, /* 0.97762=f(-0.30000)*/ +{11, 0,123,__LINE__, 0x3fef54aa, 0x9a886837, 0xbfd28f5c, 0x28f5c280}, /* 0.97908=f(-0.29000)*/ +{11, 0,123,__LINE__, 0x3fef6038, 0xde5fdaf6, 0xbfd1eb85, 0x1eb851dc}, /* 0.98049=f(-0.28000)*/ +{11, 0,123,__LINE__, 0x3fef6b61, 0x39cffe81, 0xbfd147ae, 0x147ae138}, /* 0.98185=f(-0.27000)*/ +{11, 0,123,__LINE__, 0x3fef7623, 0xa29f4407, 0xbfd0a3d7, 0x0a3d7094}, /* 0.98317=f(-0.26000)*/ +{11, 0,123,__LINE__, 0x3fef807f, 0xc4620042, 0xbfcfffff, 0xffffffe0}, /* 0.98443=f(-0.25000)*/ +{11, 0,123,__LINE__, 0x3fef8a75, 0x94f21c76, 0xbfceb851, 0xeb851e98}, /* 0.98565=f(-0.24000)*/ +{11, 0,123,__LINE__, 0x3fef9404, 0x9a1a2084, 0xbfcd70a3, 0xd70a3d50}, /* 0.98681=f(-0.23000)*/ +{11, 0,123,__LINE__, 0x3fef9d2d, 0x17180110, 0xbfcc28f5, 0xc28f5c08}, /* 0.98793=f(-0.22000)*/ +{11, 0,123,__LINE__, 0x3fefa5ee, 0x91c9d2b0, 0xbfcae147, 0xae147ac0}, /* 0.98900=f(-0.21000)*/ +{11, 0,123,__LINE__, 0x3fefae48, 0xdc5e50f4, 0xbfc99999, 0x99999978}, /* 0.99002=f(-0.20000)*/ +{11, 0,123,__LINE__, 0x3fefb63b, 0xefa104c8, 0xbfc851eb, 0x851eb830}, /* 0.99099=f(-0.19000)*/ +{11, 0,123,__LINE__, 0x3fefbdc7, 0x782b6bd2, 0xbfc70a3d, 0x70a3d6e8}, /* 0.99191=f(-0.18000)*/ +{11, 0,123,__LINE__, 0x3fefc4eb, 0x6f79969e, 0xbfc5c28f, 0x5c28f5a0}, /* 0.99278=f(-0.17000)*/ +{11, 0,123,__LINE__, 0x3fefcba7, 0xcf22b734, 0xbfc47ae1, 0x47ae1458}, /* 0.99361=f(-0.16000)*/ +{11, 0,123,__LINE__, 0x3fefd1fc, 0x1f06de9a, 0xbfc33333, 0x33333310}, /* 0.99438=f(-0.15000)*/ +{11, 0,123,__LINE__, 0x3fefd7e8, 0xa5c43a7d, 0xbfc1eb85, 0x1eb851c8}, /* 0.99510=f(-0.14000)*/ +{11, 0,123,__LINE__, 0x3fefdd6c, 0xc5867228, 0xbfc0a3d7, 0x0a3d7080}, /* 0.99577=f(-0.13000)*/ +{11, 0,123,__LINE__, 0x3fefe289, 0x124b4c4c, 0xbfbeb851, 0xeb851e71}, /* 0.99640=f(-0.12000)*/ +{11, 0,123,__LINE__, 0x3fefe73c, 0xeeb8c735, 0xbfbc28f5, 0xc28f5be2}, /* 0.99697=f(-0.11000)*/ +{11, 0,123,__LINE__, 0x3fefeb88, 0x56bbec1b, 0xbfb99999, 0x99999953}, /* 0.99750=f(-0.00100)*/ +{11, 0,123,__LINE__, 0x3fefef6b, 0x6ce4c8b0, 0xbfb70a3d, 0x70a3d6c4}, /* 0.99797=f(-0.09000)*/ +{11, 0,123,__LINE__, 0x3feff2e5, 0xe135abeb, 0xbfb47ae1, 0x47ae1435}, /* 0.99840=f(-0.08000)*/ +{11, 0,123,__LINE__, 0x3feff5f7, 0xb0ce42a8, 0xbfb1eb85, 0x1eb851a6}, /* 0.99877=f(-0.07000)*/ +{11, 0,123,__LINE__, 0x3feff8a0, 0xff32449a, 0xbfaeb851, 0xeb851e2d}, /* 0.99910=f(-0.06000)*/ +{11, 0,123,__LINE__, 0x3feffae1, 0x574e1597, 0xbfa99999, 0x9999990e}, /* 0.99937=f(-0.05000)*/ +{11, 0,123,__LINE__, 0x3feffcb9, 0x29f9a945, 0xbfa47ae1, 0x47ae13ef}, /* 0.99959=f(-0.04000)*/ +{11, 0,123,__LINE__, 0x3feffe28, 0x2912d7f4, 0xbf9eb851, 0xeb851da0}, /* 0.99977=f(-0.03000)*/ +{11, 0,123,__LINE__, 0x3fefff2e, 0x535a6888, 0xbf947ae1, 0x47ae1362}, /* 0.99990=f(-0.02000)*/ +{11, 0,123,__LINE__, 0x3fefffcb, 0xa7efed63, 0xbf847ae1, 0x47ae1249}, /* 0.99997=f(-0.00010)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3cd19000, 0x00000000}, /* 1.00000=f(9.74915e-16)*/ +{11, 0,123,__LINE__, 0x3fefffcb, 0xa7efed63, 0x3f847ae1, 0x47ae16ad}, /* 0.99997=f(0.01000)*/ +{11, 0,123,__LINE__, 0x3fefff2e, 0x535a6888, 0x3f947ae1, 0x47ae1594}, /* 0.99990=f(0.02000)*/ +{11, 0,123,__LINE__, 0x3feffe28, 0x2912d7f4, 0x3f9eb851, 0xeb851fd2}, /* 0.99977=f(0.03000)*/ +{11, 0,123,__LINE__, 0x3feffcb9, 0x29f9a945, 0x3fa47ae1, 0x47ae1508}, /* 0.99959=f(0.04000)*/ +{11, 0,123,__LINE__, 0x3feffae1, 0x574e1597, 0x3fa99999, 0x99999a27}, /* 0.99937=f(0.05000)*/ +{11, 0,123,__LINE__, 0x3feff8a0, 0xff32449a, 0x3faeb851, 0xeb851f46}, /* 0.99910=f(0.06000)*/ +{11, 0,123,__LINE__, 0x3feff5f7, 0xb0ce42a8, 0x3fb1eb85, 0x1eb85232}, /* 0.99877=f(0.07000)*/ +{11, 0,123,__LINE__, 0x3feff2e5, 0xe135abeb, 0x3fb47ae1, 0x47ae14c1}, /* 0.99840=f(0.08000)*/ +{11, 0,123,__LINE__, 0x3fefef6b, 0x6ce4c8b0, 0x3fb70a3d, 0x70a3d750}, /* 0.99797=f(0.09000)*/ +{11, 0,123,__LINE__, 0x3fefeb88, 0x56bbec1b, 0x3fb99999, 0x999999df}, /* 0.99750=f(0.10000)*/ +{11, 0,123,__LINE__, 0x3fefe73c, 0xeeb8c735, 0x3fbc28f5, 0xc28f5c6e}, /* 0.99697=f(0.11000)*/ +{11, 0,123,__LINE__, 0x3fefe289, 0x124b4c4c, 0x3fbeb851, 0xeb851efd}, /* 0.99640=f(0.12000)*/ +{11, 0,123,__LINE__, 0x3fefdd6c, 0xc5867228, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.99577=f(0.13000)*/ +{11, 0,123,__LINE__, 0x3fefd7e8, 0xa5c43a7d, 0x3fc1eb85, 0x1eb8520e}, /* 0.99510=f(0.14000)*/ +{11, 0,123,__LINE__, 0x3fefd1fc, 0x1f06de9a, 0x3fc33333, 0x33333356}, /* 0.99438=f(0.15000)*/ +{11, 0,123,__LINE__, 0x3fefcba7, 0xcf22b734, 0x3fc47ae1, 0x47ae149e}, /* 0.99361=f(0.16000)*/ +{11, 0,123,__LINE__, 0x3fefc4eb, 0x6f79969e, 0x3fc5c28f, 0x5c28f5e6}, /* 0.99278=f(0.17000)*/ +{11, 0,123,__LINE__, 0x3fefbdc7, 0x782b6bd2, 0x3fc70a3d, 0x70a3d72e}, /* 0.99191=f(0.18000)*/ +{11, 0,123,__LINE__, 0x3fefb63b, 0xefa104c8, 0x3fc851eb, 0x851eb876}, /* 0.99099=f(0.19000)*/ +{11, 0,123,__LINE__, 0x3fefae48, 0xdc5e50f4, 0x3fc99999, 0x999999be}, /* 0.99002=f(0.20000)*/ +{11, 0,123,__LINE__, 0x3fefa5ee, 0x91c9d2b0, 0x3fcae147, 0xae147b06}, /* 0.98900=f(0.21000)*/ +{11, 0,123,__LINE__, 0x3fef9d2d, 0x17180110, 0x3fcc28f5, 0xc28f5c4e}, /* 0.98793=f(0.22000)*/ +{11, 0,123,__LINE__, 0x3fef9404, 0x9a1a2084, 0x3fcd70a3, 0xd70a3d96}, /* 0.98681=f(0.23000)*/ +{11, 0,123,__LINE__, 0x3fef8a75, 0x94f21c76, 0x3fceb851, 0xeb851ede}, /* 0.98565=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fef807f, 0xc4620042, 0x3fd00000, 0x00000013}, /* 0.98443=f(0.25000)*/ +{11, 0,123,__LINE__, 0x3fef7623, 0xa29f4407, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.98317=f(0.26000)*/ +{11, 0,123,__LINE__, 0x3fef6b61, 0x39cffe81, 0x3fd147ae, 0x147ae15b}, /* 0.98185=f(0.27000)*/ +{11, 0,123,__LINE__, 0x3fef6038, 0xde5fdaf6, 0x3fd1eb85, 0x1eb851ff}, /* 0.98049=f(0.28000)*/ +{11, 0,123,__LINE__, 0x3fef54aa, 0x9a886837, 0x3fd28f5c, 0x28f5c2a3}, /* 0.97908=f(0.29000)*/ +{11, 0,123,__LINE__, 0x3fef48b6, 0xc5905a61, 0x3fd33333, 0x33333347}, /* 0.97762=f(0.30000)*/ +{11, 0,123,__LINE__, 0x3fef3c5d, 0xb48e79df, 0x3fd3d70a, 0x3d70a3eb}, /* 0.97611=f(0.31000)*/ +{11, 0,123,__LINE__, 0x3fef2f9f, 0x9921a2b4, 0x3fd47ae1, 0x47ae148f}, /* 0.97456=f(0.32000)*/ +{11, 0,123,__LINE__, 0x3fef227c, 0x7e32bf66, 0x3fd51eb8, 0x51eb8533}, /* 0.97295=f(0.33000)*/ +{11, 0,123,__LINE__, 0x3fef14f4, 0xe1b7d8d5, 0x3fd5c28f, 0x5c28f5d7}, /* 0.97130=f(0.34000)*/ +{11, 0,123,__LINE__, 0x3fef0708, 0xcf40dce7, 0x3fd66666, 0x6666667b}, /* 0.96960=f(0.35000)*/ +{11, 0,123,__LINE__, 0x3feef8b8, 0xc565bda8, 0x3fd70a3d, 0x70a3d71f}, /* 0.96786=f(0.36000)*/ +{11, 0,123,__LINE__, 0x3feeea04, 0xd05bdf84, 0x3fd7ae14, 0x7ae147c3}, /* 0.96606=f(0.37000)*/ +{11, 0,123,__LINE__, 0x3feedaed, 0x6f5b4c3d, 0x3fd851eb, 0x851eb867}, /* 0.96422=f(0.38000)*/ +{11, 0,123,__LINE__, 0x3feecb72, 0xb0add857, 0x3fd8f5c2, 0x8f5c290b}, /* 0.96233=f(0.39000)*/ +{11, 0,123,__LINE__, 0x3feebb95, 0x115ba24c, 0x3fd99999, 0x999999af}, /* 0.96039=f(0.40000)*/ +{11, 0,123,__LINE__, 0x3feeab54, 0xc6756c6e, 0x3fda3d70, 0xa3d70a53}, /* 0.95841=f(0.41000)*/ +{11, 0,123,__LINE__, 0x3fee9ab2, 0x506b3888, 0x3fdae147, 0xae147af7}, /* 0.95638=f(0.42000)*/ +{11, 0,123,__LINE__, 0x3fee89ad, 0xbd567f2a, 0x3fdb851e, 0xb851eb9b}, /* 0.95430=f(0.43000)*/ +{11, 0,123,__LINE__, 0x3fee7847, 0x8e418594, 0x3fdc28f5, 0xc28f5c3f}, /* 0.95218=f(0.44000)*/ +{11, 0,123,__LINE__, 0x3fee667f, 0xd3cd6cb8, 0x3fdccccc, 0xcccccce3}, /* 0.95001=f(0.45000)*/ +{11, 0,123,__LINE__, 0x3fee5457, 0x32132cdf, 0x3fdd70a3, 0xd70a3d87}, /* 0.94779=f(0.46000)*/ +{11, 0,123,__LINE__, 0x3fee41ce, 0x069bb0ab, 0x3fde147a, 0xe147ae2b}, /* 0.94553=f(0.47000)*/ +{11, 0,123,__LINE__, 0x3fee2ee4, 0x6330b738, 0x3fdeb851, 0xeb851ecf}, /* 0.94322=f(0.48000)*/ +{11, 0,123,__LINE__, 0x3fee1b9a, 0xc853cc04, 0x3fdf5c28, 0xf5c28f73}, /* 0.94086=f(0.49000)*/ +{11, 0,123,__LINE__, 0x3fee07f1, 0xdc9ee45c, 0x3fe00000, 0x0000000b}, /* 0.93846=f(0.50000)*/ +{11, 0,123,__LINE__, 0x3fedf3e9, 0x8efe6284, 0x3fe051eb, 0x851eb85d}, /* 0.93602=f(0.51000)*/ +{11, 0,123,__LINE__, 0x3feddf82, 0x86b32ac1, 0x3fe0a3d7, 0x0a3d70af}, /* 0.93353=f(0.52000)*/ +{11, 0,123,__LINE__, 0x3fedcabc, 0xfafde88a, 0x3fe0f5c2, 0x8f5c2901}, /* 0.93099=f(0.53000)*/ +{11, 0,123,__LINE__, 0x3fedb599, 0x4c4fd893, 0x3fe147ae, 0x147ae153}, /* 0.92841=f(0.54000)*/ +{11, 0,123,__LINE__, 0x3feda018, 0x45c20394, 0x3fe19999, 0x999999a5}, /* 0.92579=f(0.55000)*/ +{11, 0,123,__LINE__, 0x3fed8a39, 0xd8a68cb3, 0x3fe1eb85, 0x1eb851f7}, /* 0.92312=f(0.56000)*/ +{11, 0,123,__LINE__, 0x3fed73fe, 0xd033e05b, 0x3fe23d70, 0xa3d70a49}, /* 0.92040=f(0.57000)*/ +{11, 0,123,__LINE__, 0x3fed5d67, 0x44d9b7f9, 0x3fe28f5c, 0x28f5c29b}, /* 0.91765=f(0.58000)*/ +{11, 0,123,__LINE__, 0x3fed4673, 0xbc19773d, 0x3fe2e147, 0xae147aed}, /* 0.91485=f(0.59000)*/ +{11, 0,123,__LINE__, 0x3fed2f24, 0xdb21a0f2, 0x3fe33333, 0x3333333f}, /* 0.91200=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3fed177a, 0xbbd2bb7c, 0x3fe3851e, 0xb851eb91}, /* 0.90911=f(0.61000)*/ +{11, 0,123,__LINE__, 0x3fecff76, 0x2d1f708f, 0x3fe3d70a, 0x3d70a3e3}, /* 0.90618=f(0.62000)*/ +{11, 0,123,__LINE__, 0x3fece717, 0x68f13a43, 0x3fe428f5, 0xc28f5c35}, /* 0.90320=f(0.63000)*/ +{11, 0,123,__LINE__, 0x3fecce5f, 0x1bceeae4, 0x3fe47ae1, 0x47ae1487}, /* 0.90019=f(0.64000)*/ +{11, 0,123,__LINE__, 0x3fecb54d, 0x5df0eb42, 0x3fe4cccc, 0xccccccd9}, /* 0.89713=f(0.65000)*/ +{11, 0,123,__LINE__, 0x3fec9be2, 0xfec2e4ab, 0x3fe51eb8, 0x51eb852b}, /* 0.89402=f(0.66000)*/ +{11, 0,123,__LINE__, 0x3fec8220, 0x855cf82d, 0x3fe570a3, 0xd70a3d7d}, /* 0.89088=f(0.67000)*/ +{11, 0,123,__LINE__, 0x3fec6806, 0x0b10200b, 0x3fe5c28f, 0x5c28f5cf}, /* 0.88769=f(0.68000)*/ +{11, 0,123,__LINE__, 0x3fec4d94, 0x85aa99ff, 0x3fe6147a, 0xe147ae21}, /* 0.88447=f(0.69000)*/ +{11, 0,123,__LINE__, 0x3fec32cc, 0x30c2d22a, 0x3fe66666, 0x66666673}, /* 0.88120=f(0.70000)*/ +{11, 0,123,__LINE__, 0x3fec17ad, 0x98fd2768, 0x3fe6b851, 0xeb851ec5}, /* 0.87789=f(0.71000)*/ +{11, 0,123,__LINE__, 0x3febfc39, 0x4227a674, 0x3fe70a3d, 0x70a3d717}, /* 0.87453=f(0.72000)*/ +{11, 0,123,__LINE__, 0x3febe06f, 0xdabafaf7, 0x3fe75c28, 0xf5c28f69}, /* 0.87114=f(0.73000)*/ +{11, 0,123,__LINE__, 0x3febc451, 0xca492588, 0x3fe7ae14, 0x7ae147bb}, /* 0.86771=f(0.74000)*/ +{11, 0,123,__LINE__, 0x3feba7df, 0x4dec7685, 0x3fe80000, 0x0000000d}, /* 0.86424=f(0.75000)*/ +{11, 0,123,__LINE__, 0x3feb8b19, 0xa2b54d3b, 0x3fe851eb, 0x851eb85f}, /* 0.86072=f(0.76000)*/ +{11, 0,123,__LINE__, 0x3feb6e00, 0xa37eeb48, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.85717=f(0.77000)*/ +{11, 0,123,__LINE__, 0x3feb5095, 0x61f1aa3c, 0x3fe8f5c2, 0x8f5c2903}, /* 0.85358=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3feb32d8, 0x0085d38a, 0x3fe947ae, 0x147ae155}, /* 0.84995=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3feb14c9, 0x2f719b53, 0x3fe99999, 0x999999a7}, /* 0.84628=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3feaf669, 0xbf1b4779, 0x3fe9eb85, 0x1eb851f9}, /* 0.84257=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3fead7ba, 0x19b6b3de, 0x3fea3d70, 0xa3d70a4b}, /* 0.83883=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3feab8ba, 0xc3b2f724, 0x3fea8f5c, 0x28f5c29d}, /* 0.83504=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3fea996c, 0x73e91b88, 0x3feae147, 0xae147aef}, /* 0.83122=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3fea79cf, 0x8f646d74, 0x3feb3333, 0x33333341}, /* 0.82736=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3fea59e4, 0xe69c2792, 0x3feb851e, 0xb851eb93}, /* 0.82347=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3fea39ad, 0x0b502c4f, 0x3febd70a, 0x3d70a3e5}, /* 0.81954=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3fea1928, 0x820065dd, 0x3fec28f5, 0xc28f5c37}, /* 0.81557=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3fe9f858, 0x02fd26e5, 0x3fec7ae1, 0x47ae1489}, /* 0.81156=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3fe9d73c, 0x1a10bb13, 0x3feccccc, 0xccccccdb}, /* 0.80752=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3fe9b5d5, 0x71a7c33d, 0x3fed1eb8, 0x51eb852d}, /* 0.80344=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3fe99424, 0xc2e8192d, 0x3fed70a3, 0xd70a3d7f}, /* 0.79933=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3fe9722a, 0x7415526a, 0x3fedc28f, 0x5c28f5d1}, /* 0.79518=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3fe94fe7, 0x5d5e54bc, 0x3fee147a, 0xe147ae23}, /* 0.79100=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3fe92d5c, 0x2907f4a5, 0x3fee6666, 0x66666675}, /* 0.78678=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3fe90a89, 0x27d4d6b5, 0x3feeb851, 0xeb851ec7}, /* 0.78253=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3fe8e76f, 0x6dbe05c9, 0x3fef0a3d, 0x70a3d719}, /* 0.77825=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3fe8c40f, 0xacecf607, 0x3fef5c28, 0xf5c28f6b}, /* 0.77393=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3fe8a06a, 0x37748418, 0x3fefae14, 0x7ae147bd}, /* 0.76958=f(0.99000)*/ +{11, 0,123,__LINE__, 0x3fe87c7f, 0xddb0a579, 0x3ff00000, 0x00000007}, /* 0.76519=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fe85851, 0x6f62a516, 0x3ff028f5, 0xc28f5c30}, /* 0.76078=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3fe833df, 0x65cb3b31, 0x3ff051eb, 0x851eb859}, /* 0.75633=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fe80f2a, 0x879b83cb, 0x3ff07ae1, 0x47ae1482}, /* 0.75185=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fe7ea33, 0x910e6e4d, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.74733=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3fe7c4fb, 0x3f1bfd37, 0x3ff0cccc, 0xccccccd4}, /* 0.74279=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3fe79f82, 0x31c8563a, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.73822=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fe779c8, 0xe474258f, 0x3ff11eb8, 0x51eb8526}, /* 0.73361=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fe753d0, 0x8dd00e2c, 0x3ff147ae, 0x147ae14f}, /* 0.72898=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fe72d99, 0x9f97d17f, 0x3ff170a3, 0xd70a3d78}, /* 0.72431=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fe70724, 0xb21e6353, 0x3ff19999, 0x999999a1}, /* 0.71962=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3fe6e072, 0xba4519c7, 0x3ff1c28f, 0x5c28f5ca}, /* 0.71489=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3fe6b984, 0x45da0567, 0x3ff1eb85, 0x1eb851f3}, /* 0.71014=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fe6925a, 0x53fe967c, 0x3ff2147a, 0xe147ae1c}, /* 0.70536=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fe66af5, 0x4cd063b5, 0x3ff23d70, 0xa3d70a45}, /* 0.70055=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fe64356, 0x2f751fea, 0x3ff26666, 0x6666666e}, /* 0.69571=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fe61b7d, 0x6fc93bf1, 0x3ff28f5c, 0x28f5c297}, /* 0.69085=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fe5f36c, 0x275c77de, 0x3ff2b851, 0xeb851ec0}, /* 0.68596=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3fe5cb22, 0xe4209500, 0x3ff2e147, 0xae147ae9}, /* 0.68104=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3fe5a2a2, 0x4048de13, 0x3ff30a3d, 0x70a3d712}, /* 0.67610=f(1.19000)*/ +{10, 0,123,__LINE__, 0x3fcc320a, 0x20d668c9, 0xc01921fb, 0x54442d18}, /* 0.22027=f(-6.28318)*/ +{ 0, 0,123,__LINE__, 0xbfd103cd, 0xc80fc35f, 0xc012d97c, 0x7f3321d2}, /* -0.26585=f(-4.71238)*/ +{ 0, 0,123,__LINE__, 0xbfd378b4, 0x5e8925a1, 0xc00921fb, 0x54442d18}, /* -0.30424=f(-3.14159)*/ +{10, 0,123,__LINE__, 0x3fde3544, 0x57a1fab3, 0xbff921fb, 0x54442d18}, /* 0.47200=f(-1.57079)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, /* 1.00000=f(0.00000)*/ +{10, 0,123,__LINE__, 0x3fde3544, 0x57a1fab3, 0x3ff921fb, 0x54442d18}, /* 0.47200=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0xbfd378b4, 0x5e8925a1, 0x400921fb, 0x54442d18}, /* -0.30424=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0xbfd103cd, 0xc80fc35f, 0x4012d97c, 0x7f3321d2}, /* -0.26585=f(4.71238)*/ +{ 9, 0,123,__LINE__, 0xbfb61c37, 0x07a54f0d, 0xc03e0000, 0x00000000}, /* -0.08636=f(-30.0000)*/ +{ 0, 0,123,__LINE__, 0xbfbbb800, 0x2bfd38ec, 0xc03c4ccc, 0xcccccccd}, /* -0.10827=f(-28.3000)*/ +{ 0, 0,123,__LINE__, 0x3fbedcde, 0x270f5071, 0xc03a9999, 0x9999999a}, /* 0.12055=f(-26.6000)*/ +{ 9, 0,123,__LINE__, 0x3fb54f99, 0xda61fbfa, 0xc038e666, 0x66666667}, /* 0.08324=f(-24.9000)*/ +{11, 0,123,__LINE__, 0xbfc36000, 0xbed4dbdd, 0xc0373333, 0x33333334}, /* -0.15136=f(-23.2000)*/ +{ 9, 0,123,__LINE__, 0xbfa90eed, 0x454ad069, 0xc0358000, 0x00000001}, /* -0.04894=f(-21.5000)*/ +{11, 0,123,__LINE__, 0x3fc6a8e0, 0x310be6f6, 0xc033cccc, 0xccccccce}, /* 0.17702=f(-19.8000)*/ +{ 0, 0,123,__LINE__, 0x3f763aae, 0xb5a1b8be, 0xc0321999, 0x9999999b}, /* 0.00542=f(-18.1000)*/ +{ 0, 0,123,__LINE__, 0xbfc915b4, 0x0f12e0c9, 0xc0306666, 0x66666668}, /* -0.19597=f(-16.4000)*/ +{ 9, 0,123,__LINE__, 0x3fa8648b, 0x05f554c8, 0xc02d6666, 0x6666666a}, /* 0.04764=f(-14.7000)*/ +{10, 0,123,__LINE__, 0x3fca7c8d, 0x4d73962a, 0xc02a0000, 0x00000004}, /* 0.20692=f(-13.0000)*/ +{ 0, 0,123,__LINE__, 0xbfbcb086, 0xd80a2a55, 0xc0269999, 0x9999999e}, /* -0.11206=f(-11.3000)*/ +{10, 0,123,__LINE__, 0xbfcabfcf, 0xefe10f3e, 0xc0233333, 0x33333338}, /* -0.20897=f(-9.60000)*/ +{ 0, 0,123,__LINE__, 0x3fc8e0dd, 0x440a6eec, 0xc01f9999, 0x999999a3}, /* 0.19436=f(-7.90000)*/ +{10, 0,123,__LINE__, 0x3fc9d2d5, 0xd283c188, 0xc018cccc, 0xccccccd6}, /* 0.20174=f(-6.20000)*/ +{ 0, 0,123,__LINE__, 0xbfd483c4, 0x83c31435, 0xc0120000, 0x00000009}, /* -0.32054=f(-4.50000)*/ +{ 0, 0,123,__LINE__, 0xbfc7af42, 0xc21f30cb, 0xc0066666, 0x66666678}, /* -0.18503=f(-2.80000)*/ +{11, 0,123,__LINE__, 0x3fe70724, 0xb21e6353, 0xbff19999, 0x999999bd}, /* 0.71962=f(-1.10000)*/ +{11, 0,123,__LINE__, 0x3fed2f24, 0xdb21a0f2, 0x3fe33333, 0x333332ec}, /* 0.91200=f(0.60000)*/ +{ 0, 0,123,__LINE__, 0x3fac6fb7, 0xb717685a, 0x40026666, 0x66666654}, /* 0.05553=f(2.30000)*/ +{10, 0,123,__LINE__, 0xbfd96ae6, 0xd31d184c, 0x400fffff, 0xffffffee}, /* -0.39714=f(4.00000)*/ +{ 0, 0,123,__LINE__, 0x3faeadd8, 0xa597404e, 0x4016cccc, 0xccccccc4}, /* 0.05992=f(5.70000)*/ +{10, 0,123,__LINE__, 0x3fd1d486, 0xa4feef4e, 0x401d9999, 0x99999991}, /* 0.27859=f(7.40000)*/ +{ 9, 0,123,__LINE__, 0xbfbd3ec6, 0x84f6f826, 0x40223333, 0x3333332f}, /* -0.11423=f(9.10000)*/ +{10, 0,123,__LINE__, 0xbfca0286, 0x33800077, 0x40259999, 0x99999995}, /* -0.20320=f(10.8000)*/ +{10, 0,123,__LINE__, 0x3fc2cd17, 0x4c1879b8, 0x4028ffff, 0xfffffffb}, /* 0.14688=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0x3fc21865, 0xe8103720, 0x402c6666, 0x66666661}, /* 0.14136=f(14.2000)*/ +{ 0, 0,123,__LINE__, 0xbfc51dc0, 0x6881c7c5, 0x402fcccc, 0xccccccc7}, /* -0.16497=f(15.9000)*/ +{ 0, 0,123,__LINE__, 0xbfb61995, 0x058b74dd, 0x40319999, 0x99999997}, /* -0.08632=f(17.6000)*/ +{ 0, 0,123,__LINE__, 0x3fc5e6d7, 0xe04c72f3, 0x40334ccc, 0xccccccca}, /* 0.17110=f(19.3000)*/ +{ 9, 0,123,__LINE__, 0x3fa2ba7f, 0x3087b88d, 0x4034ffff, 0xfffffffd}, /* 0.03657=f(21.0000)*/ +{10, 0,123,__LINE__, 0xbfc55c69, 0x07d3ae71, 0x4036b333, 0x33333330}, /* -0.16688=f(22.7000)*/ +{ 8, 0,123,__LINE__, 0x3f7f6fbd, 0xdd10e25e, 0x40386666, 0x66666663}, /* 0.00767=f(24.4000)*/ +{11, 0,123,__LINE__, 0x3fc3ad27, 0xccd11c22, 0x403a1999, 0x99999996}, /* 0.15372=f(26.1000)*/ +{ 9, 0,123,__LINE__, 0xbfa76175, 0xe5ae6e65, 0x403bcccc, 0xccccccc9}, /* -0.04566=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0xbfc10afd, 0x7ae2e789, 0x403d7fff, 0xfffffffc}, /* -0.13314=f(29.5000)*/ +0,}; +test_j0f(m) {run_vector_1(m,j0f_vec,(char *)(j0f),"j0f","ff"); } diff --git a/newlib/libm/test/j1_vec.c b/newlib/libm/test/j1_vec.c new file mode 100644 index 000000000..27bbce6c3 --- /dev/null +++ b/newlib/libm/test/j1_vec.c @@ -0,0 +1,285 @@ +#include "test.h" + one_line_type j1_vec[] = { +{64, 0,123,__LINE__, 0xbfdfe3f7, 0xc98d2cad, 0xbff33333, 0x33333333}, /* -0.49828=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbfdfb9be, 0x60162ce1, 0xbff30a3d, 0x70a3d70a}, /* -0.49571=f(-1.19000)*/ +{62, 0,123,__LINE__, 0xbfdf8eec, 0x64ca92ed, 0xbff2e147, 0xae147ae1}, /* -0.49309=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xbfdf6382, 0x95db2d21, 0xbff2b851, 0xeb851eb8}, /* -0.49044=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbfdf3781, 0xb4ad13e2, 0xbff28f5c, 0x28f5c28f}, /* -0.48776=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfdf0aea, 0x85d5bf16, 0xbff26666, 0x66666666}, /* -0.48504=f(-1.15000)*/ +{63, 0,123,__LINE__, 0xbfdeddbd, 0xd1170952, 0xbff23d70, 0xa3d70a3d}, /* -0.48228=f(-1.14000)*/ +{63, 0,123,__LINE__, 0xbfdeaffc, 0x615b2106, 0xbff2147a, 0xe147ae14}, /* -0.47949=f(-1.13000)*/ +{63, 0,123,__LINE__, 0xbfde81a7, 0x04b0679a, 0xbff1eb85, 0x1eb851eb}, /* -0.47666=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfde52be, 0x8c453eac, 0xbff1c28f, 0x5c28f5c2}, /* -0.47380=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfde2343, 0xcc63c37b, 0xbff19999, 0x99999999}, /* -0.47090=f(-1.10000)*/ +{63, 0,123,__LINE__, 0xbfddf337, 0x9c6d7898, 0xbff170a3, 0xd70a3d70}, /* -0.46796=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfddc29a, 0xd6d6ddf8, 0xbff147ae, 0x147ae147}, /* -0.46500=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfdd916e, 0x5922f77c, 0xbff11eb8, 0x51eb851e}, /* -0.46200=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfdd5fb3, 0x03dec20f, 0xbff0f5c2, 0x8f5c28f5}, /* -0.45896=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfdd2d69, 0xba9c976a, 0xbff0cccc, 0xcccccccc}, /* -0.45589=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbfdcfa93, 0x63ef809a, 0xbff0a3d7, 0x0a3d70a3}, /* -0.45279=f(-1.04000)*/ +{61, 0,123,__LINE__, 0xbfdcc730, 0xe966776b, 0xbff07ae1, 0x47ae147a}, /* -0.44965=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfdc9343, 0x378796ca, 0xbff051eb, 0x851eb851}, /* -0.44648=f(-1.02000)*/ +{63, 0,123,__LINE__, 0xbfdc5ecb, 0x3dcb3a36, 0xbff028f5, 0xc28f5c28}, /* -0.44328=f(-1.01000)*/ +{63, 0,123,__LINE__, 0xbfdc29c9, 0xee970c6b, 0xbfefffff, 0xfffffffe}, /* -0.44005=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfdbf440, 0x3f39054b, 0xbfefae14, 0x7ae147ac}, /* -0.43678=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfdbbe2f, 0x27e2573a, 0xbfef5c28, 0xf5c28f5a}, /* -0.43348=f(-0.98000)*/ +{61, 0,123,__LINE__, 0xbfdb8797, 0xa3a24bfc, 0xbfef0a3d, 0x70a3d708}, /* -0.43015=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfdb507a, 0xb061112a, 0xbfeeb851, 0xeb851eb6}, /* -0.42678=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfdb18d9, 0x4eda7472, 0xbfee6666, 0x66666664}, /* -0.42339=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfdae0b4, 0x82988faf, 0xbfee147a, 0xe147ae12}, /* -0.41996=f(-0.94000)*/ +{62, 0,123,__LINE__, 0xbfdaa80d, 0x51ee64f6, 0xbfedc28f, 0x5c28f5c0}, /* -0.41650=f(-0.93000)*/ +{62, 0,123,__LINE__, 0xbfda6ee4, 0xc5f26abe, 0xbfed70a3, 0xd70a3d6e}, /* -0.41301=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfda353b, 0xea790847, 0xbfed1eb8, 0x51eb851c}, /* -0.40949=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfd9fb13, 0xce0f024b, 0xbfeccccc, 0xccccccca}, /* -0.40594=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfd9c06d, 0x81f3d82b, 0xbfec7ae1, 0x47ae1478}, /* -0.40236=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfd9854a, 0x1a1411af, 0xbfec28f5, 0xc28f5c26}, /* -0.39876=f(-0.88000)*/ +{63, 0,123,__LINE__, 0xbfd949aa, 0xad037d84, 0xbfebd70a, 0x3d70a3d4}, /* -0.39512=f(-0.87000)*/ +{60, 0,123,__LINE__, 0xbfd90d90, 0x53f76088, 0xbfeb851e, 0xb851eb82}, /* -0.39145=f(-0.86000)*/ +{62, 0,123,__LINE__, 0xbfd8d0fc, 0x2ac09606, 0xbfeb3333, 0x33333330}, /* -0.38775=f(-0.85000)*/ +{63, 0,123,__LINE__, 0xbfd893ef, 0x4fc5a123, 0xbfeae147, 0xae147ade}, /* -0.38402=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfd8566a, 0xe3fcaf6b, 0xbfea8f5c, 0x28f5c28c}, /* -0.38027=f(-0.83000)*/ +{63, 0,123,__LINE__, 0xbfd81870, 0x0ae58cce, 0xbfea3d70, 0xa3d70a3a}, /* -0.37649=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfd7d9ff, 0xea83890c, 0xbfe9eb85, 0x1eb851e8}, /* -0.37268=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfd79b1b, 0xab574eca, 0xbfe99999, 0x99999996}, /* -0.36884=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfd75bc4, 0x7858ac6c, 0xbfe947ae, 0x147ae144}, /* -0.36497=f(-0.79000)*/ +{62, 0,123,__LINE__, 0xbfd71bfb, 0x7ef04ed6, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.36108=f(-0.78000)*/ +{62, 0,123,__LINE__, 0xbfd6dbc1, 0xeef16e2a, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.35716=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfd69b18, 0xfa936cd0, 0xbfe851eb, 0x851eb84e}, /* -0.35321=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfd65a01, 0xd66b68b9, 0xbfe7ffff, 0xfffffffc}, /* -0.34924=f(-0.75000)*/ +{61, 0,123,__LINE__, 0xbfd6187d, 0xb965bf24, 0xbfe7ae14, 0x7ae147aa}, /* -0.34524=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfd5d68d, 0xdcbf82f6, 0xbfe75c28, 0xf5c28f58}, /* -0.34122=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfd59433, 0x7bffe5ea, 0xbfe70a3d, 0x70a3d706}, /* -0.33717=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfd5516f, 0xd4f19487, 0xbfe6b851, 0xeb851eb4}, /* -0.33309=f(-0.71000)*/ +{62, 0,123,__LINE__, 0xbfd50e44, 0x279c0541, 0xbfe66666, 0x66666662}, /* -0.32899=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfd4cab1, 0xb63cbabe, 0xbfe6147a, 0xe147ae10}, /* -0.32487=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfd486b9, 0xc540796d, 0xbfe5c28f, 0x5c28f5be}, /* -0.32072=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfd4425d, 0x9b3c70b3, 0xbfe570a3, 0xd70a3d6c}, /* -0.31655=f(-0.67000)*/ +{62, 0,123,__LINE__, 0xbfd3fd9e, 0x80e757a9, 0xbfe51eb8, 0x51eb851a}, /* -0.31235=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfd3b87d, 0xc1127db7, 0xbfe4cccc, 0xccccccc8}, /* -0.30813=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfd372fc, 0xa8a2cf16, 0xbfe47ae1, 0x47ae1476}, /* -0.30389=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfd32d1c, 0x8689cd80, 0xbfe428f5, 0xc28f5c24}, /* -0.29962=f(-0.63000)*/ +{63, 0,123,__LINE__, 0xbfd2e6de, 0xabbe7d19, 0xbfe3d70a, 0x3d70a3d2}, /* -0.29534=f(-0.62000)*/ +{63, 0,123,__LINE__, 0xbfd2a044, 0x6b3645c9, 0xbfe3851e, 0xb851eb80}, /* -0.29103=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfd2594f, 0x19ddc92b, 0xbfe33333, 0x3333332e}, /* -0.28670=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfd21200, 0x0e91ad45, 0xbfe2e147, 0xae147adc}, /* -0.28234=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfd1ca58, 0xa2175c15, 0xbfe28f5c, 0x28f5c28a}, /* -0.27797=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfd1825a, 0x2f15b843, 0xbfe23d70, 0xa3d70a38}, /* -0.27358=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfd13a06, 0x120dc6fe, 0xbfe1eb85, 0x1eb851e6}, /* -0.26916=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfd0f15d, 0xa9534f4f, 0xbfe19999, 0x99999994}, /* -0.26473=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfd0a862, 0x55056ee9, 0xbfe147ae, 0x147ae142}, /* -0.26027=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfd05f15, 0x770724c1, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.25580=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfd01578, 0x72f7d185, 0xbfe0a3d7, 0x0a3d709e}, /* -0.25131=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfcf9719, 0x5c575c35, 0xbfe051eb, 0x851eb84c}, /* -0.24679=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfcf02a7, 0x1f4870cc, 0xbfdfffff, 0xfffffff4}, /* -0.24226=f(-0.50000)*/ +{63, 0,123,__LINE__, 0xbfce6d9d, 0x00112cd6, 0xbfdf5c28, 0xf5c28f50}, /* -0.23772=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfcdd7fd, 0xd33be007, 0xbfdeb851, 0xeb851eac}, /* -0.23315=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfcd41cc, 0x707f7ea2, 0xbfde147a, 0xe147ae08}, /* -0.22857=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfccab0b, 0xb2b0302a, 0xbfdd70a3, 0xd70a3d64}, /* -0.22396=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfcc13be, 0x77afcc47, 0xbfdccccc, 0xccccccc0}, /* -0.21935=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfcb7be7, 0xa05e461e, 0xbfdc28f5, 0xc28f5c1c}, /* -0.21471=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfcae38a, 0x108a068f, 0xbfdb851e, 0xb851eb78}, /* -0.21006=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfca4aa8, 0xaee035a2, 0xbfdae147, 0xae147ad4}, /* -0.20540=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfc9b146, 0x64dcf383, 0xbfda3d70, 0xa3d70a30}, /* -0.20072=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfc91766, 0x1ebb816a, 0xbfd99999, 0x9999998c}, /* -0.19602=f(-0.40000)*/ +{63, 0,123,__LINE__, 0xbfc87d0a, 0xcb665abf, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.19131=f(-0.39000)*/ +{61, 0,123,__LINE__, 0xbfc7e237, 0x5c673edc, 0xbfd851eb, 0x851eb844}, /* -0.18659=f(-0.38000)*/ +{63, 0,123,__LINE__, 0xbfc746ee, 0xc5d72bd8, 0xbfd7ae14, 0x7ae147a0}, /* -0.18185=f(-0.37000)*/ +{63, 0,123,__LINE__, 0xbfc6ab33, 0xfe4e4a90, 0xbfd70a3d, 0x70a3d6fc}, /* -0.17709=f(-0.36000)*/ +{63, 0,123,__LINE__, 0xbfc60f09, 0xfed3cc72, 0xbfd66666, 0x66666658}, /* -0.17233=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfc57273, 0xc2cdbb4f, 0xbfd5c28f, 0x5c28f5b4}, /* -0.16755=f(-0.34000)*/ +{62, 0,123,__LINE__, 0xbfc4d574, 0x47f0bb91, 0xbfd51eb8, 0x51eb8510}, /* -0.16276=f(-0.33000)*/ +{62, 0,123,__LINE__, 0xbfc4380e, 0x8e2fc149, 0xbfd47ae1, 0x47ae146c}, /* -0.15796=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfc39a45, 0x97abb851, 0xbfd3d70a, 0x3d70a3c8}, /* -0.15314=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfc2fc1c, 0x68a31ff4, 0xbfd33333, 0x33333324}, /* -0.14831=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfc25d96, 0x07619a7a, 0xbfd28f5c, 0x28f5c280}, /* -0.14348=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfc1beb5, 0x7c2f70f1, 0xbfd1eb85, 0x1eb851dc}, /* -0.13863=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfc11f7d, 0xd1410b8e, 0xbfd147ae, 0x147ae138}, /* -0.13377=f(-0.27000)*/ +{63, 0,123,__LINE__, 0xbfc07ff2, 0x12a65f0c, 0xbfd0a3d7, 0x0a3d7094}, /* -0.12890=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfbfc02a, 0x9c749eca, 0xbfcfffff, 0xffffffe0}, /* -0.12402=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfbe7fd5, 0x27241087, 0xbfceb851, 0xeb851e98}, /* -0.11913=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfbd3ee9, 0xe7d8971c, 0xbfcd70a3, 0xd70a3d50}, /* -0.11424=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfbbfd6f, 0x04416cce, 0xbfcc28f5, 0xc28f5c08}, /* -0.10933=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfbabb6a, 0xa51dfa12, 0xbfcae147, 0xae147ac0}, /* -0.10442=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfb978e2, 0xf61c3bb4, 0xbfc99999, 0x99999978}, /* -0.09950=f(-0.20000)*/ +{62, 0,123,__LINE__, 0xbfb835de, 0x25b71825, 0xbfc851eb, 0x851eb830}, /* -0.09457=f(-0.19000)*/ +{62, 0,123,__LINE__, 0xbfb6f262, 0x6514a4ce, 0xbfc70a3d, 0x70a3d6e8}, /* -0.08963=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfb5ae75, 0xe7e45bff, 0xbfc5c28f, 0x5c28f5a0}, /* -0.08469=f(-0.17000)*/ +{63, 0,123,__LINE__, 0xbfb46a1e, 0xe43d4469, 0xbfc47ae1, 0x47ae1458}, /* -0.07974=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfb32563, 0x927c0aba, 0xbfc33333, 0x33333310}, /* -0.07478=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfb1e04a, 0x2d210e45, 0xbfc1eb85, 0x1eb851c8}, /* -0.06982=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfb09ad8, 0xf0ae6157, 0xbfc0a3d7, 0x0a3d7080}, /* -0.06486=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfaeaa2c, 0x370b7c26, 0xbfbeb851, 0xeb851e71}, /* -0.05989=f(-0.12000)*/ +{62, 0,123,__LINE__, 0xbfac1e0f, 0xdb8ce112, 0xbfbc28f5, 0xc28f5be2}, /* -0.05491=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfa99169, 0x52566db6, 0xbfb99999, 0x99999953}, /* -0.04993=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfa70445, 0x21d0304a, 0xbfb70a3d, 0x70a3d6c4}, /* -0.04495=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfa476af, 0xd31065de, 0xbfb47ae1, 0x47ae1435}, /* -0.03996=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfa1e8b5, 0xf19707ed, 0xbfb1eb85, 0x1eb851a6}, /* -0.03497=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbf9eb4c8, 0x16129820, 0xbfaeb851, 0xeb851e2d}, /* -0.02998=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbf99978d, 0x5dda2ed1, 0xbfa99999, 0x9999990e}, /* -0.02499=f(-0.05000)*/ +{60, 0,123,__LINE__, 0xbf9479d4, 0xdcc8ce88, 0xbfa47ae1, 0x47ae13ef}, /* -0.01999=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf8eb76f, 0x6fa2c211, 0xbf9eb851, 0xeb851da0}, /* -0.01499=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf847a9e, 0x2c18dd61, 0xbf947ae1, 0x47ae1362}, /* -0.00999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf747ad0, 0x80bb0662, 0xbf847ae1, 0x47ae1249}, /* -0.00499=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cc19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 4.87457e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f747ad0, 0x80bb0ac6, 0x3f847ae1, 0x47ae16ad}, /* 0.00499=f(0.01000)*/ +{61, 0,123,__LINE__, 0x3f847a9e, 0x2c18df94, 0x3f947ae1, 0x47ae1594}, /* 0.00999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f8eb76f, 0x6fa2c443, 0x3f9eb851, 0xeb851fd2}, /* 0.01499=f(0.03000)*/ +{63, 0,123,__LINE__, 0x3f9479d4, 0xdcc8cfa0, 0x3fa47ae1, 0x47ae1508}, /* 0.01999=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3f99978d, 0x5dda2fe9, 0x3fa99999, 0x99999a27}, /* 0.02499=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3f9eb4c8, 0x16129939, 0x3faeb851, 0xeb851f46}, /* 0.02998=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fa1e8b5, 0xf1970879, 0x3fb1eb85, 0x1eb85232}, /* 0.03497=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fa476af, 0xd310666a, 0x3fb47ae1, 0x47ae14c1}, /* 0.03996=f(0.08000)*/ +{63, 0,123,__LINE__, 0x3fa70445, 0x21d030d6, 0x3fb70a3d, 0x70a3d750}, /* 0.04495=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fa99169, 0x52566e42, 0x3fb99999, 0x999999df}, /* 0.04993=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fac1e0f, 0xdb8ce19c, 0x3fbc28f5, 0xc28f5c6e}, /* 0.05491=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3faeaa2c, 0x370b7cb1, 0x3fbeb851, 0xeb851efd}, /* 0.05989=f(0.12000)*/ +{63, 0,123,__LINE__, 0x3fb09ad8, 0xf0ae619d, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.06486=f(0.13000)*/ +{63, 0,123,__LINE__, 0x3fb1e04a, 0x2d210e8b, 0x3fc1eb85, 0x1eb8520e}, /* 0.06982=f(0.14000)*/ +{55, 0,123,__LINE__, 0x3fb32563, 0x927c0b00, 0x3fc33333, 0x33333356}, /* 0.07478=f(0.15000)*/ +{62, 0,123,__LINE__, 0x3fb46a1e, 0xe43d44ae, 0x3fc47ae1, 0x47ae149e}, /* 0.07974=f(0.16000)*/ +{63, 0,123,__LINE__, 0x3fb5ae75, 0xe7e45c44, 0x3fc5c28f, 0x5c28f5e6}, /* 0.08469=f(0.17000)*/ +{63, 0,123,__LINE__, 0x3fb6f262, 0x6514a513, 0x3fc70a3d, 0x70a3d72e}, /* 0.08963=f(0.18000)*/ +{63, 0,123,__LINE__, 0x3fb835de, 0x25b7186a, 0x3fc851eb, 0x851eb876}, /* 0.09457=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fb978e2, 0xf61c3bf9, 0x3fc99999, 0x999999be}, /* 0.09950=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fbabb6a, 0xa51dfa57, 0x3fcae147, 0xae147b06}, /* 0.10442=f(0.21000)*/ +{63, 0,123,__LINE__, 0x3fbbfd6f, 0x04416d13, 0x3fcc28f5, 0xc28f5c4e}, /* 0.10933=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fbd3ee9, 0xe7d89761, 0x3fcd70a3, 0xd70a3d96}, /* 0.11424=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fbe7fd5, 0x272410cc, 0x3fceb851, 0xeb851ede}, /* 0.11913=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fbfc02a, 0x9c749f0e, 0x3fd00000, 0x00000013}, /* 0.12402=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fc07ff2, 0x12a65f2e, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.12890=f(0.26000)*/ +{63, 0,123,__LINE__, 0x3fc11f7d, 0xd1410bb0, 0x3fd147ae, 0x147ae15b}, /* 0.13377=f(0.27000)*/ +{63, 0,123,__LINE__, 0x3fc1beb5, 0x7c2f7113, 0x3fd1eb85, 0x1eb851ff}, /* 0.13863=f(0.28000)*/ +{61, 0,123,__LINE__, 0x3fc25d96, 0x07619a9c, 0x3fd28f5c, 0x28f5c2a3}, /* 0.14348=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fc2fc1c, 0x68a32015, 0x3fd33333, 0x33333347}, /* 0.14831=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fc39a45, 0x97abb873, 0x3fd3d70a, 0x3d70a3eb}, /* 0.15314=f(0.31000)*/ +{61, 0,123,__LINE__, 0x3fc4380e, 0x8e2fc16c, 0x3fd47ae1, 0x47ae148f}, /* 0.15796=f(0.32000)*/ +{61, 0,123,__LINE__, 0x3fc4d574, 0x47f0bbb4, 0x3fd51eb8, 0x51eb8533}, /* 0.16276=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fc57273, 0xc2cdbb70, 0x3fd5c28f, 0x5c28f5d7}, /* 0.16755=f(0.34000)*/ +{63, 0,123,__LINE__, 0x3fc60f09, 0xfed3cc95, 0x3fd66666, 0x6666667b}, /* 0.17233=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fc6ab33, 0xfe4e4ab2, 0x3fd70a3d, 0x70a3d71f}, /* 0.17709=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fc746ee, 0xc5d72bf9, 0x3fd7ae14, 0x7ae147c3}, /* 0.18185=f(0.37000)*/ +{62, 0,123,__LINE__, 0x3fc7e237, 0x5c673efe, 0x3fd851eb, 0x851eb867}, /* 0.18659=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fc87d0a, 0xcb665ae0, 0x3fd8f5c2, 0x8f5c290b}, /* 0.19131=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fc91766, 0x1ebb818c, 0x3fd99999, 0x999999af}, /* 0.19602=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fc9b146, 0x64dcf3a5, 0x3fda3d70, 0xa3d70a53}, /* 0.20072=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fca4aa8, 0xaee035c2, 0x3fdae147, 0xae147af7}, /* 0.20540=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fcae38a, 0x108a06af, 0x3fdb851e, 0xb851eb9b}, /* 0.21006=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fcb7be7, 0xa05e463e, 0x3fdc28f5, 0xc28f5c3f}, /* 0.21471=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fcc13be, 0x77afcc68, 0x3fdccccc, 0xcccccce3}, /* 0.21935=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fccab0b, 0xb2b0304a, 0x3fdd70a3, 0xd70a3d87}, /* 0.22396=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fcd41cc, 0x707f7ec2, 0x3fde147a, 0xe147ae2b}, /* 0.22857=f(0.47000)*/ +{63, 0,123,__LINE__, 0x3fcdd7fd, 0xd33be029, 0x3fdeb851, 0xeb851ecf}, /* 0.23315=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fce6d9d, 0x00112cf6, 0x3fdf5c28, 0xf5c28f73}, /* 0.23772=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fcf02a7, 0x1f4870ea, 0x3fe00000, 0x0000000b}, /* 0.24226=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fcf9719, 0x5c575c53, 0x3fe051eb, 0x851eb85d}, /* 0.24679=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fd01578, 0x72f7d194, 0x3fe0a3d7, 0x0a3d70af}, /* 0.25131=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fd05f15, 0x770724d1, 0x3fe0f5c2, 0x8f5c2901}, /* 0.25580=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fd0a862, 0x55056ef8, 0x3fe147ae, 0x147ae153}, /* 0.26027=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fd0f15d, 0xa9534f5e, 0x3fe19999, 0x999999a5}, /* 0.26473=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fd13a06, 0x120dc70d, 0x3fe1eb85, 0x1eb851f7}, /* 0.26916=f(0.56000)*/ +{62, 0,123,__LINE__, 0x3fd1825a, 0x2f15b852, 0x3fe23d70, 0xa3d70a49}, /* 0.27358=f(0.57000)*/ +{63, 0,123,__LINE__, 0x3fd1ca58, 0xa2175c24, 0x3fe28f5c, 0x28f5c29b}, /* 0.27797=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fd21200, 0x0e91ad54, 0x3fe2e147, 0xae147aed}, /* 0.28234=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fd2594f, 0x19ddc93a, 0x3fe33333, 0x3333333f}, /* 0.28670=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3fd2a044, 0x6b3645d6, 0x3fe3851e, 0xb851eb91}, /* 0.29103=f(0.61000)*/ +{60, 0,123,__LINE__, 0x3fd2e6de, 0xabbe7d27, 0x3fe3d70a, 0x3d70a3e3}, /* 0.29534=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fd32d1c, 0x8689cd8e, 0x3fe428f5, 0xc28f5c35}, /* 0.29962=f(0.63000)*/ +{63, 0,123,__LINE__, 0x3fd372fc, 0xa8a2cf24, 0x3fe47ae1, 0x47ae1487}, /* 0.30389=f(0.64000)*/ +{62, 0,123,__LINE__, 0x3fd3b87d, 0xc1127dc6, 0x3fe4cccc, 0xccccccd9}, /* 0.30813=f(0.65000)*/ +{63, 0,123,__LINE__, 0x3fd3fd9e, 0x80e757b8, 0x3fe51eb8, 0x51eb852b}, /* 0.31235=f(0.66000)*/ +{62, 0,123,__LINE__, 0x3fd4425d, 0x9b3c70c1, 0x3fe570a3, 0xd70a3d7d}, /* 0.31655=f(0.67000)*/ +{61, 0,123,__LINE__, 0x3fd486b9, 0xc540797b, 0x3fe5c28f, 0x5c28f5cf}, /* 0.32072=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fd4cab1, 0xb63cbacc, 0x3fe6147a, 0xe147ae21}, /* 0.32487=f(0.69000)*/ +{63, 0,123,__LINE__, 0x3fd50e44, 0x279c0551, 0x3fe66666, 0x66666673}, /* 0.32899=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fd5516f, 0xd4f19495, 0x3fe6b851, 0xeb851ec5}, /* 0.33309=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fd59433, 0x7bffe5f8, 0x3fe70a3d, 0x70a3d717}, /* 0.33717=f(0.72000)*/ +{63, 0,123,__LINE__, 0x3fd5d68d, 0xdcbf8304, 0x3fe75c28, 0xf5c28f69}, /* 0.34122=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fd6187d, 0xb965bf31, 0x3fe7ae14, 0x7ae147bb}, /* 0.34524=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fd65a01, 0xd66b68c7, 0x3fe80000, 0x0000000d}, /* 0.34924=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fd69b18, 0xfa936cdd, 0x3fe851eb, 0x851eb85f}, /* 0.35321=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fd6dbc1, 0xeef16e37, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.35716=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fd71bfb, 0x7ef04ee3, 0x3fe8f5c2, 0x8f5c2903}, /* 0.36108=f(0.78000)*/ +{62, 0,123,__LINE__, 0x3fd75bc4, 0x7858ac79, 0x3fe947ae, 0x147ae155}, /* 0.36497=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fd79b1b, 0xab574ed7, 0x3fe99999, 0x999999a7}, /* 0.36884=f(0.80000)*/ +{62, 0,123,__LINE__, 0x3fd7d9ff, 0xea838919, 0x3fe9eb85, 0x1eb851f9}, /* 0.37268=f(0.81000)*/ +{61, 0,123,__LINE__, 0x3fd81870, 0x0ae58cdb, 0x3fea3d70, 0xa3d70a4b}, /* 0.37649=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fd8566a, 0xe3fcaf78, 0x3fea8f5c, 0x28f5c29d}, /* 0.38027=f(0.83000)*/ +{63, 0,123,__LINE__, 0x3fd893ef, 0x4fc5a12f, 0x3feae147, 0xae147aef}, /* 0.38402=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fd8d0fc, 0x2ac09612, 0x3feb3333, 0x33333341}, /* 0.38775=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fd90d90, 0x53f76094, 0x3feb851e, 0xb851eb93}, /* 0.39145=f(0.86000)*/ +{62, 0,123,__LINE__, 0x3fd949aa, 0xad037d91, 0x3febd70a, 0x3d70a3e5}, /* 0.39512=f(0.87000)*/ +{61, 0,123,__LINE__, 0x3fd9854a, 0x1a1411bb, 0x3fec28f5, 0xc28f5c37}, /* 0.39876=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fd9c06d, 0x81f3d837, 0x3fec7ae1, 0x47ae1489}, /* 0.40236=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fd9fb13, 0xce0f0257, 0x3feccccc, 0xccccccdb}, /* 0.40594=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fda353b, 0xea790853, 0x3fed1eb8, 0x51eb852d}, /* 0.40949=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fda6ee4, 0xc5f26ac9, 0x3fed70a3, 0xd70a3d7f}, /* 0.41301=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fdaa80d, 0x51ee6500, 0x3fedc28f, 0x5c28f5d1}, /* 0.41650=f(0.93000)*/ +{63, 0,123,__LINE__, 0x3fdae0b4, 0x82988fbb, 0x3fee147a, 0xe147ae23}, /* 0.41996=f(0.94000)*/ +{62, 0,123,__LINE__, 0x3fdb18d9, 0x4eda747e, 0x3fee6666, 0x66666675}, /* 0.42339=f(0.95000)*/ +{62, 0,123,__LINE__, 0x3fdb507a, 0xb0611136, 0x3feeb851, 0xeb851ec7}, /* 0.42678=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fdb8797, 0xa3a24c08, 0x3fef0a3d, 0x70a3d719}, /* 0.43015=f(0.97000)*/ +{62, 0,123,__LINE__, 0x3fdbbe2f, 0x27e25746, 0x3fef5c28, 0xf5c28f6b}, /* 0.43348=f(0.98000)*/ +{62, 0,123,__LINE__, 0x3fdbf440, 0x3f390555, 0x3fefae14, 0x7ae147bd}, /* 0.43678=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fdc29c9, 0xee970c75, 0x3ff00000, 0x00000007}, /* 0.44005=f(1.00000)*/ +{62, 0,123,__LINE__, 0x3fdc5ecb, 0x3dcb3a42, 0x3ff028f5, 0xc28f5c30}, /* 0.44328=f(1.01000)*/ +{63, 0,123,__LINE__, 0x3fdc9343, 0x378796d5, 0x3ff051eb, 0x851eb859}, /* 0.44648=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fdcc730, 0xe9667776, 0x3ff07ae1, 0x47ae1482}, /* 0.44965=f(1.03000)*/ +{63, 0,123,__LINE__, 0x3fdcfa93, 0x63ef80a4, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.45279=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fdd2d69, 0xba9c9775, 0x3ff0cccc, 0xccccccd4}, /* 0.45589=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fdd5fb3, 0x03dec21a, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.45896=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fdd916e, 0x5922f785, 0x3ff11eb8, 0x51eb8526}, /* 0.46200=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fddc29a, 0xd6d6de01, 0x3ff147ae, 0x147ae14f}, /* 0.46500=f(1.08000)*/ +{62, 0,123,__LINE__, 0x3fddf337, 0x9c6d78a1, 0x3ff170a3, 0xd70a3d78}, /* 0.46796=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fde2343, 0xcc63c385, 0x3ff19999, 0x999999a1}, /* 0.47090=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fde52be, 0x8c453eb5, 0x3ff1c28f, 0x5c28f5ca}, /* 0.47380=f(1.11000)*/ +{61, 0,123,__LINE__, 0x3fde81a7, 0x04b067a4, 0x3ff1eb85, 0x1eb851f3}, /* 0.47666=f(1.12000)*/ +{63, 0,123,__LINE__, 0x3fdeaffc, 0x615b210e, 0x3ff2147a, 0xe147ae1c}, /* 0.47949=f(1.13000)*/ +{61, 0,123,__LINE__, 0x3fdeddbd, 0xd117095b, 0x3ff23d70, 0xa3d70a45}, /* 0.48228=f(1.14000)*/ +{63, 0,123,__LINE__, 0x3fdf0aea, 0x85d5bf1e, 0x3ff26666, 0x6666666e}, /* 0.48504=f(1.15000)*/ +{61, 0,123,__LINE__, 0x3fdf3781, 0xb4ad13ec, 0x3ff28f5c, 0x28f5c297}, /* 0.48776=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fdf6382, 0x95db2d2a, 0x3ff2b851, 0xeb851ec0}, /* 0.49044=f(1.17000)*/ +{63, 0,123,__LINE__, 0x3fdf8eec, 0x64ca92f6, 0x3ff2e147, 0xae147ae9}, /* 0.49309=f(1.18000)*/ +{63, 0,123,__LINE__, 0x3fdfb9be, 0x60162ceb, 0x3ff30a3d, 0x70a3d712}, /* 0.49571=f(1.19000)*/ +{54, 0,123,__LINE__, 0xbfd23723, 0x45b96613, 0xc00921fb, 0x54442d18}, /* -0.28461=f(-3.14159)*/ +{58, 0,123,__LINE__, 0xbfe2236c, 0x458df176, 0xbff921fb, 0x54442d18}, /* -0.56682=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{62, 0,123,__LINE__, 0x3fe2236c, 0x458df176, 0x3ff921fb, 0x54442d18}, /* 0.56682=f(1.57079)*/ +{61, 0,123,__LINE__, 0x3fd23723, 0x45b96613, 0x400921fb, 0x54442d18}, /* 0.28461=f(3.14159)*/ +{58, 0,123,__LINE__, 0xbfd206ae, 0xe4af911e, 0x4012d97c, 0x7f3321d2}, /* -0.28165=f(4.71238)*/ +{64, 0,123,__LINE__, 0x3fbe6678, 0x3a4dbbb0, 0xc03e0000, 0x00000000}, /* 0.11875=f(-30.0000)*/ +{58, 0,123,__LINE__, 0xbfba145c, 0x2bf5d6a7, 0xc03c4ccc, 0xcccccccd}, /* -0.10187=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xbfb965bd, 0xda59f829, 0xc03a9999, 0x9999999a}, /* -0.09920=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x3fc142f3, 0x9995533a, 0xc038e666, 0x66666667}, /* 0.13485=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x3fb20dc7, 0xda3ce59d, 0xc0373333, 0x33333334}, /* 0.07052=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbfc4f91a, 0xe3f53776, 0xc0358000, 0x00000001}, /* -0.16385=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xbfa0cd5b, 0xcd3ea881, 0xc033cccc, 0xccccccce}, /* -0.03281=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x3fc7fb17, 0x3dcfcf2e, 0xc0321999, 0x9999999b}, /* 0.18735=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xbf8c74d0, 0x79162d3e, 0xc0306666, 0x66666668}, /* -0.01389=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbfca24e7, 0xd2d25d15, 0xc02d6666, 0x6666666a}, /* -0.20425=f(-14.7000)*/ +{62, 0,123,__LINE__, 0x3fb2005d, 0x262e73c0, 0xc02a0000, 0x00000004}, /* 0.07031=f(-13.0000)*/ +{62, 0,123,__LINE__, 0x3fcb6cb5, 0x6d484cf6, 0xc0269999, 0x9999999e}, /* 0.21425=f(-11.3000)*/ +{63, 0,123,__LINE__, 0xbfc1dbf2, 0xf3b411d1, 0xc0233333, 0x33333338}, /* -0.13952=f(-9.60000)*/ + +{57, 0,123,__LINE__, 0x3fcdd035, 0xc7235639, 0xc018cccc, 0xccccccd6}, /* 0.23291=f(-6.20000)*/ +{52, 0,123,__LINE__, 0x3fcd9363, 0x634158b5, 0xc0120000, 0x00000009}, /* 0.23106=f(-4.50000)*/ +{57, 0,123,__LINE__, 0xbfda38ad, 0x22065bec, 0xc0066666, 0x66666678}, /* -0.40970=f(-2.80000)*/ +{60, 0,123,__LINE__, 0xbfde2343, 0xcc63c3a5, 0xbff19999, 0x999999bd}, /* -0.47090=f(-1.10000)*/ +{61, 0,123,__LINE__, 0x3fd2594f, 0x19ddc8f2, 0x3fe33333, 0x333332ec}, /* 0.28670=f(0.60000)*/ +{63, 0,123,__LINE__, 0x3fe146a2, 0xc2f16a4e, 0x40026666, 0x66666654}, /* 0.53987=f(2.30000)*/ +{58, 0,123,__LINE__, 0xbfb0e837, 0x2dfae9d8, 0x400fffff, 0xffffffee}, /* -0.06604=f(4.00000)*/ +{59, 0,123,__LINE__, 0xbfd4bed5, 0xe968696f, 0x4016cccc, 0xccccccc4}, /* -0.32414=f(5.70000)*/ +{54, 0,123,__LINE__, 0x3fbc1063, 0xe5380213, 0x401d9999, 0x99999991}, /* 0.10962=f(7.40000)*/ +{59, 0,123,__LINE__, 0x3fcdc04a, 0x68314a0d, 0x40223333, 0x3333332f}, /* 0.23243=f(9.10000)*/ +{54, 0,123,__LINE__, 0xbfc23283, 0x9cb6bbfa, 0x40259999, 0x99999995}, /* -0.14216=f(10.8000)*/ +{59, 0,123,__LINE__, 0xbfc52e92, 0xc46b4553, 0x4028ffff, 0xfffffffb}, /* -0.16548=f(12.5000)*/ +{62, 0,123,__LINE__, 0x3fc4d06d, 0xb4af245c, 0x402c6666, 0x66666661}, /* 0.16261=f(14.2000)*/ +{59, 0,123,__LINE__, 0x3fbba7b7, 0x3ee07310, 0x402fcccc, 0xccccccc7}, /* 0.10802=f(15.9000)*/ +{62, 0,123,__LINE__, 0xbfc60238, 0x43170350, 0x40319999, 0x99999997}, /* -0.17194=f(17.6000)*/ +{64, 0,123,__LINE__, 0xbfacdf50, 0xf93779aa, 0x40334ccc, 0xccccccca}, /* -0.05639=f(19.3000)*/ +{62, 0,123,__LINE__, 0x3fc5e744, 0xe39a0de4, 0x4034ffff, 0xfffffffd}, /* 0.17112=f(21.0000)*/ +{62, 0,123,__LINE__, 0xbfc4a256, 0xe7770b60, 0x40386666, 0x66666663}, /* -0.16120=f(24.4000)*/ +{59, 0,123,__LINE__, 0x3f9f302d, 0x6b54eb93, 0x403a1999, 0x99999996}, /* 0.03045=f(26.1000)*/ +{62, 0,123,__LINE__, 0x3fc25cf8, 0x6ae10498, 0x403bcccc, 0xccccccc9}, /* 0.14346=f(27.8000)*/ +{64, 0,123,__LINE__, 0xbfb07640, 0x70ecf703, 0x403d7fff, 0xfffffffc}, /* -0.06430=f(29.5000)*/ +0,}; +test_j1(m) {run_vector_1(m,j1_vec,(char *)(j1),"j1","dd"); } diff --git a/newlib/libm/test/j1f_vec.c b/newlib/libm/test/j1f_vec.c new file mode 100644 index 000000000..b09c892ef --- /dev/null +++ b/newlib/libm/test/j1f_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type j1f_vec[] = { +{10, 0,123,__LINE__, 0xbfdfe3f7, 0xe296ed50, 0xbff33333, 0x33333333}, /* -0.49828=f(-1.20000)*/ +{10, 0,123,__LINE__, 0xbfdfb9be, 0x81d66567, 0xbff30a3d, 0x70a3d70a}, /* -0.49571=f(-1.19000)*/ +{10, 0,123,__LINE__, 0xbfdf8eec, 0x6e9d62c5, 0xbff2e147, 0xae147ae1}, /* -0.49309=f(-1.18000)*/ +{10, 0,123,__LINE__, 0xbfdf6382, 0x7f8cac95, 0xbff2b851, 0xeb851eb8}, /* -0.49044=f(-1.17000)*/ +{10, 0,123,__LINE__, 0xbfdf3781, 0xbda5c893, 0xbff28f5c, 0x28f5c28f}, /* -0.48776=f(-1.16000)*/ +{10, 0,123,__LINE__, 0xbfdf0aea, 0x7b978b3c, 0xbff26666, 0x66666666}, /* -0.48504=f(-1.15000)*/ +{10, 0,123,__LINE__, 0xbfdeddbd, 0xdc601003, 0xbff23d70, 0xa3d70a3d}, /* -0.48228=f(-1.14000)*/ +{10, 0,123,__LINE__, 0xbfdeaffc, 0x5345ea4e, 0xbff2147a, 0xe147ae14}, /* -0.47949=f(-1.13000)*/ +{10, 0,123,__LINE__, 0xbfde81a7, 0x0cf8b2c6, 0xbff1eb85, 0x1eb851eb}, /* -0.47666=f(-1.12000)*/ +{10, 0,123,__LINE__, 0xbfde52be, 0x837f85fd, 0xbff1c28f, 0x5c28f5c2}, /* -0.47380=f(-1.11000)*/ +{10, 0,123,__LINE__, 0xbfde2343, 0xc3d9fc2f, 0xbff19999, 0x99999999}, /* -0.47090=f(-1.10000)*/ +{10, 0,123,__LINE__, 0xbfddf337, 0x95bee2f9, 0xbff170a3, 0xd70a3d70}, /* -0.46796=f(-1.09000)*/ +{10, 0,123,__LINE__, 0xbfddc29a, 0xe6cbf864, 0xbff147ae, 0x147ae147}, /* -0.46500=f(-1.08000)*/ +{10, 0,123,__LINE__, 0xbfdd916e, 0x7f852d6b, 0xbff11eb8, 0x51eb851e}, /* -0.46200=f(-1.07000)*/ +{10, 0,123,__LINE__, 0xbfdd5fb3, 0x026afa3b, 0xbff0f5c2, 0x8f5c28f5}, /* -0.45896=f(-1.06000)*/ +{10, 0,123,__LINE__, 0xbfdd2d69, 0xacfecf37, 0xbff0cccc, 0xcccccccc}, /* -0.45589=f(-1.05000)*/ +{10, 0,123,__LINE__, 0xbfdcfa93, 0x5d5e5197, 0xbff0a3d7, 0x0a3d70a3}, /* -0.45279=f(-1.04000)*/ +{10, 0,123,__LINE__, 0xbfdcc730, 0xf0437f56, 0xbff07ae1, 0x47ae147a}, /* -0.44965=f(-1.03000)*/ +{10, 0,123,__LINE__, 0xbfdc9343, 0x410cdccf, 0xbff051eb, 0x851eb851}, /* -0.44648=f(-1.02000)*/ +{10, 0,123,__LINE__, 0xbfdc5ecb, 0x4eca213c, 0xbff028f5, 0xc28f5c28}, /* -0.44328=f(-1.01000)*/ +{10, 0,123,__LINE__, 0xbfdc29c9, 0xfa51149f, 0xbfefffff, 0xfffffffe}, /* -0.44005=f(-0.01000)*/ +{10, 0,123,__LINE__, 0xbfdbf440, 0x43c73861, 0xbfefae14, 0x7ae147ac}, /* -0.43678=f(-0.99000)*/ +{10, 0,123,__LINE__, 0xbfdbbe2f, 0x19114e8f, 0xbfef5c28, 0xf5c28f5a}, /* -0.43348=f(-0.98000)*/ +{10, 0,123,__LINE__, 0xbfdb8797, 0xb66dd246, 0xbfef0a3d, 0x70a3d708}, /* -0.43015=f(-0.97000)*/ +{10, 0,123,__LINE__, 0xbfdb507a, 0x976f4d7f, 0xbfeeb851, 0xeb851eb6}, /* -0.42678=f(-0.96000)*/ +{10, 0,123,__LINE__, 0xbfdb18d9, 0x5833a31b, 0xbfee6666, 0x66666664}, /* -0.42339=f(-0.95000)*/ +{10, 0,123,__LINE__, 0xbfdae0b4, 0x7450c189, 0xbfee147a, 0xe147ae12}, /* -0.41996=f(-0.94000)*/ +{10, 0,123,__LINE__, 0xbfdaa80d, 0x55cab504, 0xbfedc28f, 0x5c28f5c0}, /* -0.41650=f(-0.93000)*/ +{10, 0,123,__LINE__, 0xbfda6ee4, 0xd6fe4429, 0xbfed70a3, 0xd70a3d6e}, /* -0.41301=f(-0.92000)*/ +{10, 0,123,__LINE__, 0xbfda353b, 0xf0bbb5c0, 0xbfed1eb8, 0x51eb851c}, /* -0.40949=f(-0.91000)*/ +{10, 0,123,__LINE__, 0xbfd9fb13, 0xd6540a1e, 0xbfeccccc, 0xccccccca}, /* -0.40594=f(-0.90000)*/ +{10, 0,123,__LINE__, 0xbfd9c06d, 0x87665c7f, 0xbfec7ae1, 0x47ae1478}, /* -0.40236=f(-0.89000)*/ +{10, 0,123,__LINE__, 0xbfd9854a, 0x1ea094f0, 0xbfec28f5, 0xc28f5c26}, /* -0.39876=f(-0.88000)*/ +{10, 0,123,__LINE__, 0xbfd949aa, 0xbd8eb7ef, 0xbfebd70a, 0x3d70a3d4}, /* -0.39512=f(-0.87000)*/ +{10, 0,123,__LINE__, 0xbfd90d90, 0x4d502695, 0xbfeb851e, 0xb851eb82}, /* -0.39145=f(-0.86000)*/ +{10, 0,123,__LINE__, 0xbfd8d0fc, 0x3fc251ef, 0xbfeb3333, 0x33333330}, /* -0.38775=f(-0.85000)*/ +{10, 0,123,__LINE__, 0xbfd893ef, 0x361a3f6f, 0xbfeae147, 0xae147ade}, /* -0.38402=f(-0.84000)*/ +{10, 0,123,__LINE__, 0xbfd8566a, 0xdd50c11e, 0xbfea8f5c, 0x28f5c28c}, /* -0.38027=f(-0.83000)*/ +{10, 0,123,__LINE__, 0xbfd81870, 0x103415fd, 0xbfea3d70, 0xa3d70a3a}, /* -0.37649=f(-0.82000)*/ +{10, 0,123,__LINE__, 0xbfd7d9ff, 0xe0889116, 0xbfe9eb85, 0x1eb851e8}, /* -0.37268=f(-0.81000)*/ +{10, 0,123,__LINE__, 0xbfd79b1b, 0xaeb357c7, 0xbfe99999, 0x99999996}, /* -0.36884=f(-0.80000)*/ +{10, 0,123,__LINE__, 0xbfd75bc4, 0x7698f819, 0xbfe947ae, 0x147ae144}, /* -0.36497=f(-0.79000)*/ +{10, 0,123,__LINE__, 0xbfd71bfb, 0x6857591c, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.36108=f(-0.78000)*/ +{10, 0,123,__LINE__, 0xbfd6dbc1, 0xd7d17caa, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.35716=f(-0.77000)*/ +{10, 0,123,__LINE__, 0xbfd69b18, 0xf664e9f7, 0xbfe851eb, 0x851eb84e}, /* -0.35321=f(-0.76000)*/ +{10, 0,123,__LINE__, 0xbfd65a01, 0xe3170c9e, 0xbfe7ffff, 0xfffffffc}, /* -0.34924=f(-0.75000)*/ +{10, 0,123,__LINE__, 0xbfd6187d, 0xc1a32633, 0xbfe7ae14, 0x7ae147aa}, /* -0.34524=f(-0.74000)*/ +{10, 0,123,__LINE__, 0xbfd5d68d, 0xe4bdf679, 0xbfe75c28, 0xf5c28f58}, /* -0.34122=f(-0.73000)*/ +{10, 0,123,__LINE__, 0xbfd59433, 0x8b959fc1, 0xbfe70a3d, 0x70a3d706}, /* -0.33717=f(-0.72000)*/ +{10, 0,123,__LINE__, 0xbfd5516f, 0xd4a6218e, 0xbfe6b851, 0xeb851eb4}, /* -0.33309=f(-0.71000)*/ +{10, 0,123,__LINE__, 0xbfd50e44, 0x29867955, 0xbfe66666, 0x66666662}, /* -0.32899=f(-0.70000)*/ +{10, 0,123,__LINE__, 0xbfd4cab1, 0xc530bb3b, 0xbfe6147a, 0xe147ae10}, /* -0.32487=f(-0.69000)*/ +{10, 0,123,__LINE__, 0xbfd486b9, 0xc1d8b3f1, 0xbfe5c28f, 0x5c28f5be}, /* -0.32072=f(-0.68000)*/ +{10, 0,123,__LINE__, 0xbfd4425d, 0xa6a458f0, 0xbfe570a3, 0xd70a3d6c}, /* -0.31655=f(-0.67000)*/ +{10, 0,123,__LINE__, 0xbfd3fd9e, 0x92e26ecb, 0xbfe51eb8, 0x51eb851a}, /* -0.31235=f(-0.66000)*/ +{10, 0,123,__LINE__, 0xbfd3b87d, 0xb24699dd, 0xbfe4cccc, 0xccccccc8}, /* -0.30813=f(-0.65000)*/ +{10, 0,123,__LINE__, 0xbfd372fc, 0x8e83921a, 0xbfe47ae1, 0x47ae1476}, /* -0.30389=f(-0.64000)*/ +{10, 0,123,__LINE__, 0xbfd32d1c, 0x80f088ac, 0xbfe428f5, 0xc28f5c24}, /* -0.29962=f(-0.63000)*/ +{10, 0,123,__LINE__, 0xbfd2e6de, 0xb0188656, 0xbfe3d70a, 0x3d70a3d2}, /* -0.29534=f(-0.62000)*/ +{10, 0,123,__LINE__, 0xbfd2a044, 0x6e5bcdb3, 0xbfe3851e, 0xb851eb80}, /* -0.29103=f(-0.61000)*/ +{10, 0,123,__LINE__, 0xbfd2594f, 0x36b84437, 0xbfe33333, 0x3333332e}, /* -0.28670=f(-0.60000)*/ +{10, 0,123,__LINE__, 0xbfd21200, 0x0601539f, 0xbfe2e147, 0xae147adc}, /* -0.28234=f(-0.59000)*/ +{10, 0,123,__LINE__, 0xbfd1ca58, 0xa8b2d7da, 0xbfe28f5c, 0x28f5c28a}, /* -0.27797=f(-0.58000)*/ +{10, 0,123,__LINE__, 0xbfd1825a, 0x21de2d82, 0xbfe23d70, 0xa3d70a38}, /* -0.27358=f(-0.57000)*/ +{12, 0,123,__LINE__, 0xbfd13a06, 0x0331c1d0, 0xbfe1eb85, 0x1eb851e6}, /* -0.26916=f(-0.56000)*/ +{12, 0,123,__LINE__, 0xbfd0f15d, 0xb8bcd619, 0xbfe19999, 0x99999994}, /* -0.26473=f(-0.55000)*/ +{12, 0,123,__LINE__, 0xbfd0a862, 0x5987768b, 0xbfe147ae, 0x147ae142}, /* -0.26027=f(-0.54000)*/ +{12, 0,123,__LINE__, 0xbfd05f15, 0x6b52faaa, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.25580=f(-0.53000)*/ +{12, 0,123,__LINE__, 0xbfd01578, 0x6a7550c2, 0xbfe0a3d7, 0x0a3d709e}, /* -0.25131=f(-0.52000)*/ +{11, 0,123,__LINE__, 0xbfcf9719, 0x5566e736, 0xbfe051eb, 0x851eb84c}, /* -0.24679=f(-0.51000)*/ +{11, 0,123,__LINE__, 0xbfcf02a7, 0x1dfd7df0, 0xbfdfffff, 0xfffffff4}, /* -0.24226=f(-0.50000)*/ +{11, 0,123,__LINE__, 0xbfce6d9c, 0xfb02b29e, 0xbfdf5c28, 0xf5c28f50}, /* -0.23772=f(-0.49000)*/ +{11, 0,123,__LINE__, 0xbfcdd7fd, 0xd74f56e4, 0xbfdeb851, 0xeb851eac}, /* -0.23315=f(-0.48000)*/ +{11, 0,123,__LINE__, 0xbfcd41cc, 0x64848ecb, 0xbfde147a, 0xe147ae08}, /* -0.22857=f(-0.47000)*/ +{11, 0,123,__LINE__, 0xbfccab0b, 0xcf75d2e9, 0xbfdd70a3, 0xd70a3d64}, /* -0.22396=f(-0.46000)*/ +{11, 0,123,__LINE__, 0xbfcc13be, 0x579febfe, 0xbfdccccc, 0xccccccc0}, /* -0.21935=f(-0.45000)*/ +{11, 0,123,__LINE__, 0xbfcb7be7, 0xa577284f, 0xbfdc28f5, 0xc28f5c1c}, /* -0.21471=f(-0.44000)*/ +{11, 0,123,__LINE__, 0xbfcae38a, 0x1d66f978, 0xbfdb851e, 0xb851eb78}, /* -0.21006=f(-0.43000)*/ +{11, 0,123,__LINE__, 0xbfca4aa8, 0x9afa7a23, 0xbfdae147, 0xae147ad4}, /* -0.20540=f(-0.42000)*/ +{11, 0,123,__LINE__, 0xbfc9b146, 0x584989fc, 0xbfda3d70, 0xa3d70a30}, /* -0.20072=f(-0.41000)*/ +{11, 0,123,__LINE__, 0xbfc91766, 0x184cbdbd, 0xbfd99999, 0x9999998c}, /* -0.19602=f(-0.40000)*/ +{11, 0,123,__LINE__, 0xbfc87d0a, 0xb9ee782a, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.19131=f(-0.39000)*/ +{11, 0,123,__LINE__, 0xbfc7e237, 0x4b08c504, 0xbfd851eb, 0x851eb844}, /* -0.18659=f(-0.38000)*/ +{11, 0,123,__LINE__, 0xbfc746ee, 0xc745478b, 0xbfd7ae14, 0x7ae147a0}, /* -0.18185=f(-0.37000)*/ +{11, 0,123,__LINE__, 0xbfc6ab34, 0x1a585ddb, 0xbfd70a3d, 0x70a3d6fc}, /* -0.17709=f(-0.36000)*/ +{11, 0,123,__LINE__, 0xbfc60f09, 0xfc6ec0fb, 0xbfd66666, 0x66666658}, /* -0.17233=f(-0.35000)*/ +{11, 0,123,__LINE__, 0xbfc57273, 0xcc336581, 0xbfd5c28f, 0x5c28f5b4}, /* -0.16755=f(-0.34000)*/ +{11, 0,123,__LINE__, 0xbfc4d574, 0x5cf46ce5, 0xbfd51eb8, 0x51eb8510}, /* -0.16276=f(-0.33000)*/ +{11, 0,123,__LINE__, 0xbfc4380e, 0x998b977a, 0xbfd47ae1, 0x47ae146c}, /* -0.15796=f(-0.32000)*/ +{11, 0,123,__LINE__, 0xbfc39a45, 0x90886d28, 0xbfd3d70a, 0x3d70a3c8}, /* -0.15314=f(-0.31000)*/ +{11, 0,123,__LINE__, 0xbfc2fc1c, 0x6de17283, 0xbfd33333, 0x33333324}, /* -0.14831=f(-0.30000)*/ +{11, 0,123,__LINE__, 0xbfc25d95, 0xf8c62a8b, 0xbfd28f5c, 0x28f5c280}, /* -0.14348=f(-0.29000)*/ +{12, 0,123,__LINE__, 0xbfc1beb5, 0x6ef6bae5, 0xbfd1eb85, 0x1eb851dc}, /* -0.13863=f(-0.28000)*/ +{12, 0,123,__LINE__, 0xbfc11f7d, 0xd53b677d, 0xbfd147ae, 0x147ae138}, /* -0.13377=f(-0.27000)*/ +{12, 0,123,__LINE__, 0xbfc07ff2, 0x0cb5341e, 0xbfd0a3d7, 0x0a3d7094}, /* -0.12890=f(-0.26000)*/ +{ 9, 0,123,__LINE__, 0xbfbfc02a, 0xb10dd680, 0xbfcfffff, 0xffffffe0}, /* -0.12402=f(-0.25000)*/ +{ 9, 0,123,__LINE__, 0xbfbe7fd5, 0x1f9e49e2, 0xbfceb851, 0xeb851e98}, /* -0.11913=f(-0.24000)*/ +{ 9, 0,123,__LINE__, 0xbfbd3ee9, 0xf3d5623e, 0xbfcd70a3, 0xd70a3d50}, /* -0.11424=f(-0.23000)*/ +{ 9, 0,123,__LINE__, 0xbfbbfd6e, 0xff977cf7, 0xbfcc28f5, 0xc28f5c08}, /* -0.10933=f(-0.22000)*/ +{ 9, 0,123,__LINE__, 0xbfbabb6a, 0x95bc98de, 0xbfcae147, 0xae147ac0}, /* -0.10442=f(-0.21000)*/ +{ 9, 0,123,__LINE__, 0xbfb978e2, 0xefb0076f, 0xbfc99999, 0x99999978}, /* -0.09950=f(-0.20000)*/ +{ 9, 0,123,__LINE__, 0xbfb835de, 0x3733e9ed, 0xbfc851eb, 0x851eb830}, /* -0.09457=f(-0.19000)*/ +{ 9, 0,123,__LINE__, 0xbfb6f262, 0x684427d1, 0xbfc70a3d, 0x70a3d6e8}, /* -0.08963=f(-0.18000)*/ +{ 9, 0,123,__LINE__, 0xbfb5ae75, 0xe06f7b00, 0xbfc5c28f, 0x5c28f5a0}, /* -0.08469=f(-0.17000)*/ +{ 9, 0,123,__LINE__, 0xbfb46a1e, 0xcc348f0a, 0xbfc47ae1, 0x47ae1458}, /* -0.07974=f(-0.16000)*/ +{ 9, 0,123,__LINE__, 0xbfb32563, 0x9d6575f8, 0xbfc33333, 0x33333310}, /* -0.07478=f(-0.15000)*/ +{12, 0,123,__LINE__, 0xbfb1e04a, 0x2afa9641, 0xbfc1eb85, 0x1eb851c8}, /* -0.06982=f(-0.14000)*/ +{12, 0,123,__LINE__, 0xbfb09ad8, 0xe9211c1f, 0xbfc0a3d7, 0x0a3d7080}, /* -0.06486=f(-0.13000)*/ +{11, 0,123,__LINE__, 0xbfaeaa2c, 0x30546b47, 0xbfbeb851, 0xeb851e71}, /* -0.05989=f(-0.12000)*/ +{11, 0,123,__LINE__, 0xbfac1e0f, 0xd8be659f, 0xbfbc28f5, 0xc28f5be2}, /* -0.05491=f(-0.11000)*/ +{11, 0,123,__LINE__, 0xbfa99169, 0x54e4ac09, 0xbfb99999, 0x99999953}, /* -0.04993=f(-0.00100)*/ +{11, 0,123,__LINE__, 0xbfa70445, 0x2ed31f92, 0xbfb70a3d, 0x70a3d6c4}, /* -0.04495=f(-0.09000)*/ +{11, 0,123,__LINE__, 0xbfa476af, 0xbc7852a8, 0xbfb47ae1, 0x47ae1435}, /* -0.03996=f(-0.08000)*/ +{12, 0,123,__LINE__, 0xbfa1e8b5, 0xf541e63f, 0xbfb1eb85, 0x1eb851a6}, /* -0.03497=f(-0.07000)*/ +{10, 0,123,__LINE__, 0xbf9eb4c7, 0xfcf247c3, 0xbfaeb851, 0xeb851e2d}, /* -0.02998=f(-0.06000)*/ +{10, 0,123,__LINE__, 0xbf99978d, 0x75f51f61, 0xbfa99999, 0x9999990e}, /* -0.02499=f(-0.05000)*/ +{10, 0,123,__LINE__, 0xbf9479d4, 0xcc2710b7, 0xbfa47ae1, 0x47ae13ef}, /* -0.01999=f(-0.04000)*/ +{11, 0,123,__LINE__, 0xbf8eb76f, 0x6d7096c3, 0xbf9eb851, 0xeb851da0}, /* -0.01499=f(-0.03000)*/ +{11, 0,123,__LINE__, 0xbf847a9e, 0x22d3fb34, 0xbf947ae1, 0x47ae1362}, /* -0.00999=f(-0.02000)*/ +{ 8, 0,123,__LINE__, 0xbf747ad0, 0x831810f7, 0xbf847ae1, 0x47ae1249}, /* -0.00499=f(-0.00010)*/ +{12, 0,123,__LINE__, 0x3cc19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 4.87457e-16=f(9.74915e-16)*/ +{ 8, 0,123,__LINE__, 0x3f747ad0, 0x831810f7, 0x3f847ae1, 0x47ae16ad}, /* 0.00499=f(0.01000)*/ +{11, 0,123,__LINE__, 0x3f847a9e, 0x22d3fb34, 0x3f947ae1, 0x47ae1594}, /* 0.00999=f(0.02000)*/ +{11, 0,123,__LINE__, 0x3f8eb76f, 0x6d7096c3, 0x3f9eb851, 0xeb851fd2}, /* 0.01499=f(0.03000)*/ +{10, 0,123,__LINE__, 0x3f9479d4, 0xcc2710b7, 0x3fa47ae1, 0x47ae1508}, /* 0.01999=f(0.04000)*/ +{10, 0,123,__LINE__, 0x3f99978d, 0x75f51f61, 0x3fa99999, 0x99999a27}, /* 0.02499=f(0.05000)*/ +{10, 0,123,__LINE__, 0x3f9eb4c7, 0xfcf247c3, 0x3faeb851, 0xeb851f46}, /* 0.02998=f(0.06000)*/ +{12, 0,123,__LINE__, 0x3fa1e8b5, 0xf541e63f, 0x3fb1eb85, 0x1eb85232}, /* 0.03497=f(0.07000)*/ +{11, 0,123,__LINE__, 0x3fa476af, 0xbc7852a8, 0x3fb47ae1, 0x47ae14c1}, /* 0.03996=f(0.08000)*/ +{11, 0,123,__LINE__, 0x3fa70445, 0x2ed31f92, 0x3fb70a3d, 0x70a3d750}, /* 0.04495=f(0.09000)*/ +{11, 0,123,__LINE__, 0x3fa99169, 0x54e4ac09, 0x3fb99999, 0x999999df}, /* 0.04993=f(0.10000)*/ +{11, 0,123,__LINE__, 0x3fac1e0f, 0xd8be659f, 0x3fbc28f5, 0xc28f5c6e}, /* 0.05491=f(0.11000)*/ +{11, 0,123,__LINE__, 0x3faeaa2c, 0x30546b47, 0x3fbeb851, 0xeb851efd}, /* 0.05989=f(0.12000)*/ +{12, 0,123,__LINE__, 0x3fb09ad8, 0xe9211c1f, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.06486=f(0.13000)*/ +{12, 0,123,__LINE__, 0x3fb1e04a, 0x2afa9641, 0x3fc1eb85, 0x1eb8520e}, /* 0.06982=f(0.14000)*/ +{ 9, 0,123,__LINE__, 0x3fb32563, 0x9d6575f8, 0x3fc33333, 0x33333356}, /* 0.07478=f(0.15000)*/ +{ 9, 0,123,__LINE__, 0x3fb46a1e, 0xcc348f0a, 0x3fc47ae1, 0x47ae149e}, /* 0.07974=f(0.16000)*/ +{ 9, 0,123,__LINE__, 0x3fb5ae75, 0xe06f7b00, 0x3fc5c28f, 0x5c28f5e6}, /* 0.08469=f(0.17000)*/ +{ 9, 0,123,__LINE__, 0x3fb6f262, 0x684427d1, 0x3fc70a3d, 0x70a3d72e}, /* 0.08963=f(0.18000)*/ +{ 9, 0,123,__LINE__, 0x3fb835de, 0x3733e9ed, 0x3fc851eb, 0x851eb876}, /* 0.09457=f(0.19000)*/ +{ 9, 0,123,__LINE__, 0x3fb978e2, 0xefb0076f, 0x3fc99999, 0x999999be}, /* 0.09950=f(0.20000)*/ +{ 9, 0,123,__LINE__, 0x3fbabb6a, 0x95bc98de, 0x3fcae147, 0xae147b06}, /* 0.10442=f(0.21000)*/ +{ 9, 0,123,__LINE__, 0x3fbbfd6e, 0xff977cf7, 0x3fcc28f5, 0xc28f5c4e}, /* 0.10933=f(0.22000)*/ +{ 9, 0,123,__LINE__, 0x3fbd3ee9, 0xf3d5623e, 0x3fcd70a3, 0xd70a3d96}, /* 0.11424=f(0.23000)*/ +{ 9, 0,123,__LINE__, 0x3fbe7fd5, 0x1f9e49e2, 0x3fceb851, 0xeb851ede}, /* 0.11913=f(0.24000)*/ +{ 9, 0,123,__LINE__, 0x3fbfc02a, 0xb10dd680, 0x3fd00000, 0x00000013}, /* 0.12402=f(0.25000)*/ +{12, 0,123,__LINE__, 0x3fc07ff2, 0x0cb5341e, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.12890=f(0.26000)*/ +{12, 0,123,__LINE__, 0x3fc11f7d, 0xd53b677d, 0x3fd147ae, 0x147ae15b}, /* 0.13377=f(0.27000)*/ +{12, 0,123,__LINE__, 0x3fc1beb5, 0x6ef6bae5, 0x3fd1eb85, 0x1eb851ff}, /* 0.13863=f(0.28000)*/ +{11, 0,123,__LINE__, 0x3fc25d95, 0xf8c62a8b, 0x3fd28f5c, 0x28f5c2a3}, /* 0.14348=f(0.29000)*/ +{11, 0,123,__LINE__, 0x3fc2fc1c, 0x6de17283, 0x3fd33333, 0x33333347}, /* 0.14831=f(0.30000)*/ +{11, 0,123,__LINE__, 0x3fc39a45, 0x90886d28, 0x3fd3d70a, 0x3d70a3eb}, /* 0.15314=f(0.31000)*/ +{11, 0,123,__LINE__, 0x3fc4380e, 0x998b977a, 0x3fd47ae1, 0x47ae148f}, /* 0.15796=f(0.32000)*/ +{11, 0,123,__LINE__, 0x3fc4d574, 0x5cf46ce5, 0x3fd51eb8, 0x51eb8533}, /* 0.16276=f(0.33000)*/ +{11, 0,123,__LINE__, 0x3fc57273, 0xcc336581, 0x3fd5c28f, 0x5c28f5d7}, /* 0.16755=f(0.34000)*/ +{11, 0,123,__LINE__, 0x3fc60f09, 0xfc6ec0fb, 0x3fd66666, 0x6666667b}, /* 0.17233=f(0.35000)*/ +{11, 0,123,__LINE__, 0x3fc6ab34, 0x1a585ddb, 0x3fd70a3d, 0x70a3d71f}, /* 0.17709=f(0.36000)*/ +{11, 0,123,__LINE__, 0x3fc746ee, 0xc745478b, 0x3fd7ae14, 0x7ae147c3}, /* 0.18185=f(0.37000)*/ +{11, 0,123,__LINE__, 0x3fc7e237, 0x4b08c504, 0x3fd851eb, 0x851eb867}, /* 0.18659=f(0.38000)*/ +{11, 0,123,__LINE__, 0x3fc87d0a, 0xb9ee782a, 0x3fd8f5c2, 0x8f5c290b}, /* 0.19131=f(0.39000)*/ +{11, 0,123,__LINE__, 0x3fc91766, 0x184cbdbd, 0x3fd99999, 0x999999af}, /* 0.19602=f(0.40000)*/ +{11, 0,123,__LINE__, 0x3fc9b146, 0x584989fc, 0x3fda3d70, 0xa3d70a53}, /* 0.20072=f(0.41000)*/ +{11, 0,123,__LINE__, 0x3fca4aa8, 0x9afa7a23, 0x3fdae147, 0xae147af7}, /* 0.20540=f(0.42000)*/ +{11, 0,123,__LINE__, 0x3fcae38a, 0x1d66f978, 0x3fdb851e, 0xb851eb9b}, /* 0.21006=f(0.43000)*/ +{11, 0,123,__LINE__, 0x3fcb7be7, 0xa577284f, 0x3fdc28f5, 0xc28f5c3f}, /* 0.21471=f(0.44000)*/ +{11, 0,123,__LINE__, 0x3fcc13be, 0x579febfe, 0x3fdccccc, 0xcccccce3}, /* 0.21935=f(0.45000)*/ +{11, 0,123,__LINE__, 0x3fccab0b, 0xcf75d2e9, 0x3fdd70a3, 0xd70a3d87}, /* 0.22396=f(0.46000)*/ +{11, 0,123,__LINE__, 0x3fcd41cc, 0x64848ecb, 0x3fde147a, 0xe147ae2b}, /* 0.22857=f(0.47000)*/ +{11, 0,123,__LINE__, 0x3fcdd7fd, 0xd74f56e4, 0x3fdeb851, 0xeb851ecf}, /* 0.23315=f(0.48000)*/ +{11, 0,123,__LINE__, 0x3fce6d9c, 0xfb02b29e, 0x3fdf5c28, 0xf5c28f73}, /* 0.23772=f(0.49000)*/ +{11, 0,123,__LINE__, 0x3fcf02a7, 0x1dfd7df0, 0x3fe00000, 0x0000000b}, /* 0.24226=f(0.50000)*/ +{11, 0,123,__LINE__, 0x3fcf9719, 0x5566e736, 0x3fe051eb, 0x851eb85d}, /* 0.24679=f(0.51000)*/ +{12, 0,123,__LINE__, 0x3fd01578, 0x6a7550c2, 0x3fe0a3d7, 0x0a3d70af}, /* 0.25131=f(0.52000)*/ +{12, 0,123,__LINE__, 0x3fd05f15, 0x6b52faaa, 0x3fe0f5c2, 0x8f5c2901}, /* 0.25580=f(0.53000)*/ +{12, 0,123,__LINE__, 0x3fd0a862, 0x5987768b, 0x3fe147ae, 0x147ae153}, /* 0.26027=f(0.54000)*/ +{12, 0,123,__LINE__, 0x3fd0f15d, 0xb8bcd619, 0x3fe19999, 0x999999a5}, /* 0.26473=f(0.55000)*/ +{12, 0,123,__LINE__, 0x3fd13a06, 0x0331c1d0, 0x3fe1eb85, 0x1eb851f7}, /* 0.26916=f(0.56000)*/ +{10, 0,123,__LINE__, 0x3fd1825a, 0x21de2d82, 0x3fe23d70, 0xa3d70a49}, /* 0.27358=f(0.57000)*/ +{10, 0,123,__LINE__, 0x3fd1ca58, 0xa8b2d7da, 0x3fe28f5c, 0x28f5c29b}, /* 0.27797=f(0.58000)*/ +{10, 0,123,__LINE__, 0x3fd21200, 0x0601539f, 0x3fe2e147, 0xae147aed}, /* 0.28234=f(0.59000)*/ +{10, 0,123,__LINE__, 0x3fd2594f, 0x36b84437, 0x3fe33333, 0x3333333f}, /* 0.28670=f(0.60000)*/ +{10, 0,123,__LINE__, 0x3fd2a044, 0x6e5bcdb3, 0x3fe3851e, 0xb851eb91}, /* 0.29103=f(0.61000)*/ +{10, 0,123,__LINE__, 0x3fd2e6de, 0xb0188656, 0x3fe3d70a, 0x3d70a3e3}, /* 0.29534=f(0.62000)*/ +{10, 0,123,__LINE__, 0x3fd32d1c, 0x80f088ac, 0x3fe428f5, 0xc28f5c35}, /* 0.29962=f(0.63000)*/ +{10, 0,123,__LINE__, 0x3fd372fc, 0x8e83921a, 0x3fe47ae1, 0x47ae1487}, /* 0.30389=f(0.64000)*/ +{10, 0,123,__LINE__, 0x3fd3b87d, 0xb24699dd, 0x3fe4cccc, 0xccccccd9}, /* 0.30813=f(0.65000)*/ +{10, 0,123,__LINE__, 0x3fd3fd9e, 0x92e26ecb, 0x3fe51eb8, 0x51eb852b}, /* 0.31235=f(0.66000)*/ +{10, 0,123,__LINE__, 0x3fd4425d, 0xa6a458f0, 0x3fe570a3, 0xd70a3d7d}, /* 0.31655=f(0.67000)*/ +{10, 0,123,__LINE__, 0x3fd486b9, 0xc1d8b3f1, 0x3fe5c28f, 0x5c28f5cf}, /* 0.32072=f(0.68000)*/ +{10, 0,123,__LINE__, 0x3fd4cab1, 0xc530bb3b, 0x3fe6147a, 0xe147ae21}, /* 0.32487=f(0.69000)*/ +{10, 0,123,__LINE__, 0x3fd50e44, 0x29867955, 0x3fe66666, 0x66666673}, /* 0.32899=f(0.70000)*/ +{10, 0,123,__LINE__, 0x3fd5516f, 0xd4a6218e, 0x3fe6b851, 0xeb851ec5}, /* 0.33309=f(0.71000)*/ +{10, 0,123,__LINE__, 0x3fd59433, 0x8b959fc1, 0x3fe70a3d, 0x70a3d717}, /* 0.33717=f(0.72000)*/ +{10, 0,123,__LINE__, 0x3fd5d68d, 0xe4bdf679, 0x3fe75c28, 0xf5c28f69}, /* 0.34122=f(0.73000)*/ +{10, 0,123,__LINE__, 0x3fd6187d, 0xc1a32633, 0x3fe7ae14, 0x7ae147bb}, /* 0.34524=f(0.74000)*/ +{10, 0,123,__LINE__, 0x3fd65a01, 0xe3170c9e, 0x3fe80000, 0x0000000d}, /* 0.34924=f(0.75000)*/ +{10, 0,123,__LINE__, 0x3fd69b18, 0xf664e9f7, 0x3fe851eb, 0x851eb85f}, /* 0.35321=f(0.76000)*/ +{10, 0,123,__LINE__, 0x3fd6dbc1, 0xd7d17caa, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.35716=f(0.77000)*/ +{10, 0,123,__LINE__, 0x3fd71bfb, 0x6857591c, 0x3fe8f5c2, 0x8f5c2903}, /* 0.36108=f(0.78000)*/ +{10, 0,123,__LINE__, 0x3fd75bc4, 0x7698f819, 0x3fe947ae, 0x147ae155}, /* 0.36497=f(0.79000)*/ +{10, 0,123,__LINE__, 0x3fd79b1b, 0xaeb357c7, 0x3fe99999, 0x999999a7}, /* 0.36884=f(0.80000)*/ +{10, 0,123,__LINE__, 0x3fd7d9ff, 0xe0889116, 0x3fe9eb85, 0x1eb851f9}, /* 0.37268=f(0.81000)*/ +{10, 0,123,__LINE__, 0x3fd81870, 0x103415fd, 0x3fea3d70, 0xa3d70a4b}, /* 0.37649=f(0.82000)*/ +{10, 0,123,__LINE__, 0x3fd8566a, 0xdd50c11e, 0x3fea8f5c, 0x28f5c29d}, /* 0.38027=f(0.83000)*/ +{10, 0,123,__LINE__, 0x3fd893ef, 0x361a3f6f, 0x3feae147, 0xae147aef}, /* 0.38402=f(0.84000)*/ +{10, 0,123,__LINE__, 0x3fd8d0fc, 0x3fc251ef, 0x3feb3333, 0x33333341}, /* 0.38775=f(0.85000)*/ +{10, 0,123,__LINE__, 0x3fd90d90, 0x4d502695, 0x3feb851e, 0xb851eb93}, /* 0.39145=f(0.86000)*/ +{10, 0,123,__LINE__, 0x3fd949aa, 0xbd8eb7ef, 0x3febd70a, 0x3d70a3e5}, /* 0.39512=f(0.87000)*/ +{10, 0,123,__LINE__, 0x3fd9854a, 0x1ea094f0, 0x3fec28f5, 0xc28f5c37}, /* 0.39876=f(0.88000)*/ +{10, 0,123,__LINE__, 0x3fd9c06d, 0x87665c7f, 0x3fec7ae1, 0x47ae1489}, /* 0.40236=f(0.89000)*/ +{10, 0,123,__LINE__, 0x3fd9fb13, 0xd6540a1e, 0x3feccccc, 0xccccccdb}, /* 0.40594=f(0.90000)*/ +{10, 0,123,__LINE__, 0x3fda353b, 0xf0bbb5c0, 0x3fed1eb8, 0x51eb852d}, /* 0.40949=f(0.91000)*/ +{10, 0,123,__LINE__, 0x3fda6ee4, 0xd6fe4429, 0x3fed70a3, 0xd70a3d7f}, /* 0.41301=f(0.92000)*/ +{10, 0,123,__LINE__, 0x3fdaa80d, 0x55cab504, 0x3fedc28f, 0x5c28f5d1}, /* 0.41650=f(0.93000)*/ +{10, 0,123,__LINE__, 0x3fdae0b4, 0x7450c189, 0x3fee147a, 0xe147ae23}, /* 0.41996=f(0.94000)*/ +{10, 0,123,__LINE__, 0x3fdb18d9, 0x5833a31b, 0x3fee6666, 0x66666675}, /* 0.42339=f(0.95000)*/ +{10, 0,123,__LINE__, 0x3fdb507a, 0x976f4d7f, 0x3feeb851, 0xeb851ec7}, /* 0.42678=f(0.96000)*/ +{10, 0,123,__LINE__, 0x3fdb8797, 0xb66dd246, 0x3fef0a3d, 0x70a3d719}, /* 0.43015=f(0.97000)*/ +{10, 0,123,__LINE__, 0x3fdbbe2f, 0x19114e8f, 0x3fef5c28, 0xf5c28f6b}, /* 0.43348=f(0.98000)*/ +{10, 0,123,__LINE__, 0x3fdbf440, 0x43c73861, 0x3fefae14, 0x7ae147bd}, /* 0.43678=f(0.99000)*/ +{10, 0,123,__LINE__, 0x3fdc29c9, 0xfa51149f, 0x3ff00000, 0x00000007}, /* 0.44005=f(1.00000)*/ +{10, 0,123,__LINE__, 0x3fdc5ecb, 0x4eca213c, 0x3ff028f5, 0xc28f5c30}, /* 0.44328=f(1.01000)*/ +{10, 0,123,__LINE__, 0x3fdc9343, 0x410cdccf, 0x3ff051eb, 0x851eb859}, /* 0.44648=f(1.02000)*/ +{10, 0,123,__LINE__, 0x3fdcc730, 0xf0437f56, 0x3ff07ae1, 0x47ae1482}, /* 0.44965=f(1.03000)*/ +{10, 0,123,__LINE__, 0x3fdcfa93, 0x5d5e5197, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.45279=f(1.04000)*/ +{10, 0,123,__LINE__, 0x3fdd2d69, 0xacfecf37, 0x3ff0cccc, 0xccccccd4}, /* 0.45589=f(1.05000)*/ +{10, 0,123,__LINE__, 0x3fdd5fb3, 0x026afa3b, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.45896=f(1.06000)*/ +{10, 0,123,__LINE__, 0x3fdd916e, 0x7f852d6b, 0x3ff11eb8, 0x51eb8526}, /* 0.46200=f(1.07000)*/ +{10, 0,123,__LINE__, 0x3fddc29a, 0xe6cbf864, 0x3ff147ae, 0x147ae14f}, /* 0.46500=f(1.08000)*/ +{10, 0,123,__LINE__, 0x3fddf337, 0x95bee2f9, 0x3ff170a3, 0xd70a3d78}, /* 0.46796=f(1.09000)*/ +{10, 0,123,__LINE__, 0x3fde2343, 0xc3d9fc2f, 0x3ff19999, 0x999999a1}, /* 0.47090=f(1.10000)*/ +{10, 0,123,__LINE__, 0x3fde52be, 0x837f85fd, 0x3ff1c28f, 0x5c28f5ca}, /* 0.47380=f(1.11000)*/ +{10, 0,123,__LINE__, 0x3fde81a7, 0x0cf8b2c6, 0x3ff1eb85, 0x1eb851f3}, /* 0.47666=f(1.12000)*/ +{10, 0,123,__LINE__, 0x3fdeaffc, 0x5345ea4e, 0x3ff2147a, 0xe147ae1c}, /* 0.47949=f(1.13000)*/ +{10, 0,123,__LINE__, 0x3fdeddbd, 0xdc601003, 0x3ff23d70, 0xa3d70a45}, /* 0.48228=f(1.14000)*/ +{10, 0,123,__LINE__, 0x3fdf0aea, 0x7b978b3c, 0x3ff26666, 0x6666666e}, /* 0.48504=f(1.15000)*/ +{10, 0,123,__LINE__, 0x3fdf3781, 0xbda5c893, 0x3ff28f5c, 0x28f5c297}, /* 0.48776=f(1.16000)*/ +{10, 0,123,__LINE__, 0x3fdf6382, 0x7f8cac95, 0x3ff2b851, 0xeb851ec0}, /* 0.49044=f(1.17000)*/ +{10, 0,123,__LINE__, 0x3fdf8eec, 0x6e9d62c5, 0x3ff2e147, 0xae147ae9}, /* 0.49309=f(1.18000)*/ +{10, 0,123,__LINE__, 0x3fdfb9be, 0x81d66567, 0x3ff30a3d, 0x70a3d712}, /* 0.49571=f(1.19000)*/ +{ 0, 0,123,__LINE__, 0x3fcb2f55, 0xf83a1d0c, 0xc01921fb, 0x54442d18}, /* 0.21238=f(-6.28318)*/ +{ 0, 0,123,__LINE__, 0x3fd206ae, 0xb931d7e7, 0xc012d97c, 0x7f3321d2}, /* 0.28165=f(-4.71238)*/ +{ 0, 0,123,__LINE__, 0xbfd23723, 0x18762bba, 0xc00921fb, 0x54442d18}, /* -0.28461=f(-3.14159)*/ +{11, 0,123,__LINE__, 0xbfe2236c, 0x3dfb70a7, 0xbff921fb, 0x54442d18}, /* -0.56682=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{11, 0,123,__LINE__, 0x3fe2236c, 0x3dfb70a7, 0x3ff921fb, 0x54442d18}, /* 0.56682=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0x3fd23723, 0x18762bba, 0x400921fb, 0x54442d18}, /* 0.28461=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0xbfd206ae, 0xb931d7e7, 0x4012d97c, 0x7f3321d2}, /* -0.28165=f(4.71238)*/ +{ 9, 0,123,__LINE__, 0x3fbe6679, 0xa0000000, 0xc03e0000, 0x00000000}, /* 0.11875=f(-30.0000)*/ +{ 9, 0,123,__LINE__, 0xbfba145c, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -0.10187=f(-28.3000)*/ +{ 0, 0,123,__LINE__, 0xbfb965c0, 0x80000000, 0xc03a9999, 0x9999999a}, /* -0.09920=f(-26.6000)*/ +{ 0, 0,123,__LINE__, 0x3fc142f3, 0x40000000, 0xc038e666, 0x66666667}, /* 0.13485=f(-24.9000)*/ +{ 9, 0,123,__LINE__, 0x3fb20dcc, 0x80000000, 0xc0373333, 0x33333334}, /* 0.07052=f(-23.2000)*/ +{ 0, 0,123,__LINE__, 0xbfc4f91a, 0x80000000, 0xc0358000, 0x00000001}, /* -0.16385=f(-21.5000)*/ +{ 9, 0,123,__LINE__, 0xbfa0cd5d, 0xa0000000, 0xc033cccc, 0xccccccce}, /* -0.03281=f(-19.8000)*/ +{11, 0,123,__LINE__, 0x3fc7fb17, 0x20000000, 0xc0321999, 0x9999999b}, /* 0.18735=f(-18.1000)*/ +{ 0, 0,123,__LINE__, 0xbf8c74ec, 0x60000000, 0xc0306666, 0x66666668}, /* -0.01389=f(-16.4000)*/ +{11, 0,123,__LINE__, 0xbfca24e7, 0x80000000, 0xc02d6666, 0x6666666a}, /* -0.20425=f(-14.7000)*/ +{ 0, 0,123,__LINE__, 0x3fb2005e, 0xc0000000, 0xc02a0000, 0x00000004}, /* 0.07031=f(-13.0000)*/ +{10, 0,123,__LINE__, 0x3fcb6cb5, 0x20000000, 0xc0269999, 0x9999999e}, /* 0.21425=f(-11.3000)*/ +{10, 0,123,__LINE__, 0xbfc1dbf3, 0x20000000, 0xc0233333, 0x33333338}, /* -0.13952=f(-9.60000)*/ +{ 0, 0,123,__LINE__, 0xbfcc0e13, 0x76a0f75f, 0xc01f9999, 0x999999a3}, /* -0.21917=f(-7.90000)*/ +{ 0, 0,123,__LINE__, 0x3fcdd038, 0x4b76ea6e, 0xc018cccc, 0xccccccd6}, /* 0.23291=f(-6.20000)*/ +{10, 0,123,__LINE__, 0x3fcd9363, 0x1f6307c5, 0xc0120000, 0x00000009}, /* 0.23106=f(-4.50000)*/ +{ 0, 0,123,__LINE__, 0xbfda38ad, 0x60990597, 0xc0066666, 0x66666678}, /* -0.40970=f(-2.80000)*/ +{10, 0,123,__LINE__, 0xbfde2343, 0xc3d9fc2f, 0xbff19999, 0x999999bd}, /* -0.47090=f(-1.10000)*/ +{10, 0,123,__LINE__, 0x3fd2594f, 0x36b84437, 0x3fe33333, 0x333332ec}, /* 0.28670=f(0.60000)*/ +{ 0, 0,123,__LINE__, 0x3fe146a2, 0xad53f45b, 0x40026666, 0x66666654}, /* 0.53987=f(2.30000)*/ +{ 0, 0,123,__LINE__, 0xbfb0e834, 0xaf4808be, 0x400fffff, 0xffffffee}, /* -0.06604=f(4.00000)*/ +{10, 0,123,__LINE__, 0xbfd4bed5, 0xc276616a, 0x4016cccc, 0xccccccc4}, /* -0.32414=f(5.70000)*/ +{ 9, 0,123,__LINE__, 0x3fbc1056, 0x9ef21265, 0x401d9999, 0x99999991}, /* 0.10962=f(7.40000)*/ +{ 0, 0,123,__LINE__, 0x3fcdc04a, 0x80000000, 0x40223333, 0x3333332f}, /* 0.23243=f(9.10000)*/ +{ 0, 0,123,__LINE__, 0xbfc23283, 0x00000000, 0x40259999, 0x99999995}, /* -0.14216=f(10.8000)*/ +{ 0, 0,123,__LINE__, 0xbfc52e93, 0x80000000, 0x4028ffff, 0xfffffffb}, /* -0.16548=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0x3fc4d06c, 0xa0000000, 0x402c6666, 0x66666661}, /* 0.16261=f(14.2000)*/ +{ 0, 0,123,__LINE__, 0x3fbba7ba, 0x40000000, 0x402fcccc, 0xccccccc7}, /* 0.10802=f(15.9000)*/ +{10, 0,123,__LINE__, 0xbfc60238, 0x20000000, 0x40319999, 0x99999997}, /* -0.17194=f(17.6000)*/ +{ 9, 0,123,__LINE__, 0xbfacdf4e, 0x40000000, 0x40334ccc, 0xccccccca}, /* -0.05639=f(19.3000)*/ +{10, 0,123,__LINE__, 0x3fc5e745, 0x40000000, 0x4034ffff, 0xfffffffd}, /* 0.17112=f(21.0000)*/ +{ 0, 0,123,__LINE__, 0x3f849634, 0xc0000000, 0x4036b333, 0x33333330}, /* 0.01005=f(22.7000)*/ +{ 0, 0,123,__LINE__, 0xbfc4a256, 0xe0000000, 0x40386666, 0x66666663}, /* -0.16120=f(24.4000)*/ +{ 9, 0,123,__LINE__, 0x3f9f303a, 0xa0000000, 0x403a1999, 0x99999996}, /* 0.03045=f(26.1000)*/ +{ 0, 0,123,__LINE__, 0x3fc25cf8, 0x80000000, 0x403bcccc, 0xccccccc9}, /* 0.14346=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0xbfb07642, 0x60000000, 0x403d7fff, 0xfffffffc}, /* -0.06430=f(29.5000)*/ +0,}; +test_j1f(m) {run_vector_1(m,j1f_vec,(char *)(j1f),"j1f","ff"); } diff --git a/newlib/libm/test/jn_vec.c b/newlib/libm/test/jn_vec.c new file mode 100644 index 000000000..a2929bf77 --- /dev/null +++ b/newlib/libm/test/jn_vec.c @@ -0,0 +1,204 @@ +#include "test.h" + one_line_type jn_vec[] = { +{61,0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +{61,0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, +{61,0,123,__LINE__, 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000}, +{61,0,123,__LINE__, 0x00000000, 0x00000000, 0x40080000, 0x00000000, 0x00000000, 0x00000000}, +{61,0,123,__LINE__, 0x00000000, 0x00000000, 0x40100000, 0x00000000, 0x00000000, 0x00000000}, +{61,0,123,__LINE__, 0x3feffae1, 0x7c1aebb8, 0x00000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3f99978d, 0x5dda2f5d, 0x3ff00000, 0x00000000, 0x3fa99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3f3479c9, 0xae7be13e, 0x40000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3ec5d788, 0x15461382, 0x40080000, 0x00000000, 0x3fa99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3e51795d, 0x7442f11f, 0x40100000, 0x00000000, 0x3fa99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3fefeb88, 0x65590ab3, 0x00000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3fa99169, 0x52566dfd, 0x3ff00000, 0x00000000, 0x3fb99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3f547683, 0x25fd91e1, 0x40000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3ef5d4e9, 0x3442db3c, 0x40080000, 0x00000000, 0x3fb99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3e9177b0, 0x11ba6ea0, 0x40100000, 0x00000000, 0x3fb99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3fefd1fc, 0x19331411, 0x00000000, 0x00000000, 0x3fc33333, 0x33333334}, +{61,0,123,__LINE__, 0x3fb32563, 0x927c0add, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333334}, +{61,0,123,__LINE__, 0x3f66ff30, 0x46535fa1, 0x40000000, 0x00000000, 0x3fc33333, 0x33333334}, +{61,0,123,__LINE__, 0x3f1267f5, 0xd0689e2d, 0x40080000, 0x00000000, 0x3fc33333, 0x33333334}, +{61,0,123,__LINE__, 0x3eb617f1, 0x7b30b575, 0x40100000, 0x00000000, 0x3fc33333, 0x33333334}, +{61,0,123,__LINE__, 0x3fefae48, 0xd9bfc0d4, 0x00000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3fb978e2, 0xf61c3bd6, 0x3ff00000, 0x00000000, 0x3fc99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3f74696c, 0xf1c4fb46, 0x40000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3f25ca70, 0x33fc81fd, 0x40080000, 0x00000000, 0x3fc99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3ed170fb, 0xdefa5db8, 0x40100000, 0x00000000, 0x3fc99999, 0x9999999a}, +{61,0,123,__LINE__, 0x3fef807f, 0xc72aa864, 0x00000000, 0x00000000, 0x3fd00000, 0x00000000}, +{61,0,123,__LINE__, 0x3fbfc02a, 0x9c749ee9, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000000}, +{61,0,123,__LINE__, 0x3f7fd56a, 0xa4fb4242, 0x40000000, 0x00000000, 0x3fd00000, 0x00000000}, +{61,0,123,__LINE__, 0x3f354008, 0x86a35a2f, 0x40080000, 0x00000000, 0x3fd00000, 0x00000000}, +{61,0,123,__LINE__, 0x3ee54449, 0xf38a05f2, 0x40100000, 0x00000000, 0x3fd00000, 0x00000000}, +{61,0,123,__LINE__, 0x3fef48b6, 0xd692fb9e, 0x00000000, 0x00000000, 0x3fd33333, 0x33333333}, +{61,0,123,__LINE__, 0x3fc2fc1c, 0x68a32001, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333333}, +{61,0,123,__LINE__, 0x3f86de20, 0x9f39196e, 0x40000000, 0x00000000, 0x3fd33333, 0x33333333}, +{61,0,123,__LINE__, 0x3f42541c, 0x0c752fd9, 0x40080000, 0x00000000, 0x3fd33333, 0x33333333}, +{61,0,123,__LINE__, 0x3ef604e0, 0xb2c4c00a, 0x40100000, 0x00000000, 0x3fd33333, 0x33333333}, +{61,0,123,__LINE__, 0x3fef0708, 0xc6573ae5, 0x00000000, 0x00000000, 0x3fd66666, 0x66666666}, +{61,0,123,__LINE__, 0x3fc60f09, 0xfed3cc81, 0x3ff00000, 0x00000000, 0x3fd66666, 0x66666666}, +{61,0,123,__LINE__, 0x3f8f0a84, 0xda6806f7, 0x40000000, 0x00000000, 0x3fd66666, 0x66666666}, +{61,0,123,__LINE__, 0x3f4d0bc1, 0xbfa630ab, 0x40080000, 0x00000000, 0x3fd66666, 0x66666666}, +{61,0,123,__LINE__, 0x3f045d05, 0x37bf774c, 0x40100000, 0x00000000, 0x3fd66666, 0x66666666}, +{61,0,123,__LINE__, 0x3feebb95, 0x0fd4747f, 0x00000000, 0x00000000, 0x3fd99999, 0x99999999}, +{61,0,123,__LINE__, 0x3fc91766, 0x1ebb8177, 0x3ff00000, 0x00000000, 0x3fd99999, 0x99999999}, +{61,0,123,__LINE__, 0x3f943552, 0xd2bdaaf3, 0x40000000, 0x00000000, 0x3fd99999, 0x99999999}, +{61,0,123,__LINE__, 0x3f55a0b4, 0x58ca1be8, 0x40080000, 0x00000000, 0x3fd99999, 0x99999999}, +{61,0,123,__LINE__, 0x3f115640, 0x7fcf3789, 0x40100000, 0x00000000, 0x3fd99999, 0x99999999}, +{61,0,123,__LINE__, 0x3fee667f, 0xd6a10561, 0x00000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{61,0,123,__LINE__, 0x3fcc13be, 0x77afcc52, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{61,0,123,__LINE__, 0x3f997c40, 0x76110a23, 0x40000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{61,0,123,__LINE__, 0x3f5eb65b, 0x151f786c, 0x40080000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{61,0,123,__LINE__, 0x3f1bb61b, 0x892f8cff, 0x40100000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{61,0,123,__LINE__, 0x3fee07f1, 0xd54c3f35, 0x00000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{61,0,123,__LINE__, 0x3fcf02a7, 0x1f4870d6, 0x3ff00000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{61,0,123,__LINE__, 0x3f9f56a9, 0x3f863441, 0x40000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{61,0,123,__LINE__, 0x3f650088, 0x0f70db57, 0x40080000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{61,0,123,__LINE__, 0x3f25116b, 0xd18a61a9, 0x40100000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{61,0,123,__LINE__, 0x3feda018, 0x47adb931, 0x00000000, 0x00000000, 0x3fe19999, 0x99999999}, +{61,0,123,__LINE__, 0x3fd0f15d, 0xa9534f53, 0x3ff00000, 0x00000000, 0x3fe19999, 0x99999999}, +{61,0,123,__LINE__, 0x3fa2e066, 0x08ca87ed, 0x40000000, 0x00000000, 0x3fe19999, 0x99999999}, +{61,0,123,__LINE__, 0x3f6bdca3, 0xb2679435, 0x40080000, 0x00000000, 0x3fe19999, 0x99999999}, +{61,0,123,__LINE__, 0x3f2ec3c2, 0x4d8baa6f, 0x40100000, 0x00000000, 0x3fe19999, 0x99999999}, +{61,0,123,__LINE__, 0x3fed2f24, 0xd2d06e4e, 0x00000000, 0x00000000, 0x3fe33333, 0x33333333}, +{61,0,123,__LINE__, 0x3fd2594f, 0x19ddc92f, 0x3ff00000, 0x00000000, 0x3fe33333, 0x33333333}, +{61,0,123,__LINE__, 0x3fa65b45, 0x84be102a, 0x40000000, 0x00000000, 0x3fe33333, 0x33333333}, +{61,0,123,__LINE__, 0x3f72055f, 0xdad11213, 0x40080000, 0x00000000, 0x3fe33333, 0x33333333}, +{61,0,123,__LINE__, 0x3f35b926, 0x63a336fb, 0x40100000, 0x00000000, 0x3fe33333, 0x33333333}, +{61,0,123,__LINE__, 0x3fecb54d, 0x6a872136, 0x00000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{61,0,123,__LINE__, 0x3fd3b87d, 0xc1127dbb, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{61,0,123,__LINE__, 0x3faa19b6, 0xfbcb3e9a, 0x40000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{61,0,123,__LINE__, 0x3f76d285, 0x13b1873b, 0x40080000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{61,0,123,__LINE__, 0x3f3dd3be, 0xb2075517, 0x40100000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{61,0,123,__LINE__, 0x3fec32cc, 0x34b8cc59, 0x00000000, 0x00000000, 0x3fe66666, 0x66666667}, +{61,0,123,__LINE__, 0x3fd50e44, 0x279c0546, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666667}, +{61,0,123,__LINE__, 0x3fae1952, 0x86f3b2fe, 0x40000000, 0x00000000, 0x3fe66666, 0x66666667}, +{61,0,123,__LINE__, 0x3f7c6245, 0x0da7c943, 0x40080000, 0x00000000, 0x3fe66666, 0x66666667}, +{61,0,123,__LINE__, 0x3f43fddd, 0x592928af, 0x40100000, 0x00000000, 0x3fe66666, 0x66666667}, +{61,0,123,__LINE__, 0x3feba7df, 0x6a752a19, 0x00000000, 0x00000000, 0x3fe80000, 0x00000001}, +{61,0,123,__LINE__, 0x3fd65a01, 0xd66b68bd, 0x3ff00000, 0x00000000, 0x3fe80000, 0x00000001}, +{61,0,123,__LINE__, 0x3fb12bc2, 0xf0d061c1, 0x40000000, 0x00000000, 0x3fe80000, 0x00000001}, +{61,0,123,__LINE__, 0x3f816042, 0xaaa332db, 0x40080000, 0x00000000, 0x3fe80000, 0x00000001}, +{61,0,123,__LINE__, 0x3f4a3fdc, 0xe9688cf6, 0x40100000, 0x00000000, 0x3fe80000, 0x00000001}, +{61,0,123,__LINE__, 0x3feb14c9, 0x36e29d84, 0x00000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fd79b1b, 0xab574ece, 0x3ff00000, 0x00000000, 0x3fe99999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fb368ca, 0xfa5427de, 0x40000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{61,0,123,__LINE__, 0x3f84fc41, 0xb23c60e3, 0x40080000, 0x00000000, 0x3fe99999, 0x9999999b}, +{61,0,123,__LINE__, 0x3f50eca7, 0x311cbd4c, 0x40100000, 0x00000000, 0x3fe99999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fea79cf, 0x9417f64a, 0x00000000, 0x00000000, 0x3feb3333, 0x33333335}, +{61,0,123,__LINE__, 0x3fd8d0fc, 0x2ac09609, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333335}, +{61,0,123,__LINE__, 0x3fb5c250, 0x3ceb775b, 0x40000000, 0x00000000, 0x3feb3333, 0x33333335}, +{61,0,123,__LINE__, 0x3f890a65, 0x7f429003, 0x40080000, 0x00000000, 0x3feb3333, 0x33333335}, +{61,0,123,__LINE__, 0x3f557acc, 0xd794bfe8, 0x40100000, 0x00000000, 0x3feb3333, 0x33333335}, +{61,0,123,__LINE__, 0x3fe9d73c, 0x25f5b277, 0x00000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fd9fb13, 0xce0f024e, 0x3ff00000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fb836ce, 0xdb8280b1, 0x40000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3f8d8f96, 0x8206eb0e, 0x40080000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3f5ae0f9, 0x8b7b7574, 0x40100000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fe92d5c, 0x13137d0b, 0x00000000, 0x00000000, 0x3fee6666, 0x66666669}, +{61,0,123,__LINE__, 0x3fdb18d9, 0x4eda7476, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666669}, +{61,0,123,__LINE__, 0x3fbac4b1, 0x27d714b1, 0x40000000, 0x00000000, 0x3fee6666, 0x66666669}, +{61,0,123,__LINE__, 0x3f91482d, 0xb156b6bd, 0x40080000, 0x00000000, 0x3fee6666, 0x66666669}, +{61,0,123,__LINE__, 0x3f609b4b, 0x7ea68879, 0x40100000, 0x00000000, 0x3fee6666, 0x66666669}, +{61,0,123,__LINE__, 0x3fe87c7f, 0xdbd7b8ee, 0x00000000, 0x00000000, 0x3ff00000, 0x00000001}, +{61,0,123,__LINE__, 0x3fdc29c9, 0xee970c6e, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000001}, +{61,0,123,__LINE__, 0x3fbd6a50, 0x95fa9be9, 0x40000000, 0x00000000, 0x3ff00000, 0x00000001}, +{61,0,123,__LINE__, 0x3f94086a, 0x7638f7a6, 0x40080000, 0x00000000, 0x3ff00000, 0x00000001}, +{61,0,123,__LINE__, 0x3f6449e3, 0x6b5af1b3, 0x40100000, 0x00000000, 0x3ff00000, 0x00000001}, +{61,0,123,__LINE__, 0x3fe7c4fb, 0x2fcfebef, 0x00000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{61,0,123,__LINE__, 0x3fdd2d69, 0xba9c976c, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{61,0,123,__LINE__, 0x3fc012fb, 0x5cfc78b3, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{61,0,123,__LINE__, 0x3f970a5d, 0x1eef9226, 0x40080000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{61,0,123,__LINE__, 0x3f6888a5, 0x228510b7, 0x40100000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{61,0,123,__LINE__, 0x3fe70724, 0xc161d44c, 0x00000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fde2343, 0xcc63c37e, 0x3ff00000, 0x00000000, 0x3ff19999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fc17aef, 0x27865e62, 0x40000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{61,0,123,__LINE__, 0x3f9a4faa, 0xa04e8191, 0x40080000, 0x00000000, 0x3ff19999, 0x9999999b}, +{61,0,123,__LINE__, 0x3f6d6434, 0x5a55c316, 0x40100000, 0x00000000, 0x3ff19999, 0x9999999b}, +{61,0,123,__LINE__, 0x3fe64356, 0x17eddc81, 0x00000000, 0x00000000, 0x3ff26666, 0x66666668}, +{61,0,123,__LINE__, 0x3fdf0aea, 0x85d5bf18, 0x3ff00000, 0x00000000, 0x3ff26666, 0x66666668}, +{61,0,123,__LINE__, 0x3fc2ec1a, 0x23e21b78, 0x40000000, 0x00000000, 0x3ff26666, 0x66666668}, +{61,0,123,__LINE__, 0x3f9dd9bf, 0xb5a70ade, 0x40080000, 0x00000000, 0x3ff26666, 0x66666668}, +{61,0,123,__LINE__, 0x3f7174b5, 0x74230428, 0x40100000, 0x00000000, 0x3ff26666, 0x66666668}, +{61,0,123,__LINE__, 0x3fe579eb, 0x607c7c41, 0x00000000, 0x00000000, 0x3ff33333, 0x33333335}, +{61,0,123,__LINE__, 0x3fdfe3f7, 0xc98d2caf, 0x3ff00000, 0x00000000, 0x3ff33333, 0x33333335}, +{61,0,123,__LINE__, 0x3fc4658c, 0x7339f932, 0x40000000, 0x00000000, 0x3ff33333, 0x33333335}, +{61,0,123,__LINE__, 0x3fa0d4e7, 0xb3f0ea6f, 0x40080000, 0x00000000, 0x3ff33333, 0x33333335}, +{61,0,123,__LINE__, 0x3f7492a5, 0xb6657ad7, 0x40100000, 0x00000000, 0x3ff33333, 0x33333335}, +{61,0,123,__LINE__, 0x3fe4ab43, 0x3d10e1be, 0x00000000, 0x00000000, 0x3ff40000, 0x00000002}, +{61,0,123,__LINE__, 0x3fe05706, 0x9774d334, 0x3ff00000, 0x00000000, 0x3ff40000, 0x00000002}, +{61,0,123,__LINE__, 0x3fc5e650, 0x6ea82715, 0x40000000, 0x00000000, 0x3ff40000, 0x00000002}, +{61,0,123,__LINE__, 0x3fa2e068, 0xdde7f41d, 0x40080000, 0x00000000, 0x3ff40000, 0x00000002}, +{61,0,123,__LINE__, 0x3f781279, 0xda92ee2f, 0x40100000, 0x00000000, 0x3ff40000, 0x00000002}, +{61,0,123,__LINE__, 0x3fe3d7be, 0x92bbfbb9, 0x00000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fe0b46a, 0x18ecb9d4, 0x3ff00000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fc76d6b, 0x3ac0d75b, 0x40000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fa50fc1, 0x44526e78, 0x40080000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3f7bfac7, 0x6edc65a7, 0x40100000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{61,0,123,__LINE__, 0x3fe2ffc0, 0x568baaa2, 0x00000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{61,0,123,__LINE__, 0x3fe109ff, 0x2f1fc3ec, 0x3ff00000, 0x00000000, 0x3ff59999, 0x9999999c}, +{61,0,123,__LINE__, 0x3fc8f9dd, 0x5e41b884, 0x40000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{61,0,123,__LINE__, 0x3fa76330, 0x3bb95571, 0x40080000, 0x00000000, 0x3ff59999, 0x9999999c}, +{61,0,123,__LINE__, 0x3f802911, 0xcfdfbbf5, 0x40100000, 0x00000000, 0x3ff59999, 0x9999999c}, +{61,0,123,__LINE__, 0x3fe223ad, 0x59727c9e, 0x00000000, 0x00000000, 0x3ff66666, 0x66666669}, +{61,0,123,__LINE__, 0x3fe157a2, 0xbb6f3312, 0x3ff00000, 0x00000000, 0x3ff66666, 0x66666669}, +{61,0,123,__LINE__, 0x3fca8aa3, 0x5b8ce82e, 0x40000000, 0x00000000, 0x3ff66666, 0x66666669}, +{61,0,123,__LINE__, 0x3fa9dad6, 0x163299ee, 0x40080000, 0x00000000, 0x3ff66666, 0x66666669}, +{61,0,123,__LINE__, 0x3f828f8e, 0x0cde14e4, 0x40100000, 0x00000000, 0x3ff66666, 0x66666669}, +{61,0,123,__LINE__, 0x3fe143ec, 0x1344e613, 0x00000000, 0x00000000, 0x3ff73333, 0x33333336}, +{61,0,123,__LINE__, 0x3fe19d35, 0xcbd98b75, 0x3ff00000, 0x00000000, 0x3ff73333, 0x33333336}, +{61,0,123,__LINE__, 0x3fcc1eb6, 0x4c93d2fc, 0x40000000, 0x00000000, 0x3ff73333, 0x33333336}, +{61,0,123,__LINE__, 0x3fac76b3, 0xcd3060b1, 0x40080000, 0x00000000, 0x3ff73333, 0x33333336}, +{61,0,123,__LINE__, 0x3f853417, 0xedc03cbe, 0x40100000, 0x00000000, 0x3ff73333, 0x33333336}, +{61,0,123,__LINE__, 0x3fe060e4, 0x6ce96517, 0x00000000, 0x00000000, 0x3ff80000, 0x00000003}, +{61,0,123,__LINE__, 0x3fe1da9d, 0xa9d6fc82, 0x3ff00000, 0x00000000, 0x3ff80000, 0x00000003}, +{61,0,123,__LINE__, 0x3fcdb50c, 0x80d5039f, 0x40000000, 0x00000000, 0x3ff80000, 0x00000003}, +{61,0,123,__LINE__, 0x3faf36aa, 0xc0c5b3bb, 0x40080000, 0x00000000, 0x3ff80000, 0x00000003}, +{61,0,123,__LINE__, 0x3f8819e3, 0xff0b0187, 0x40100000, 0x00000000, 0x3ff80000, 0x00000003}, +{61,0,123,__LINE__, 0x3fdef5ff, 0x13b2d492, 0x00000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{61,0,123,__LINE__, 0x3fe20fc3, 0xe6dcf000, 0x3ff00000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{61,0,123,__LINE__, 0x3fcf4c9a, 0x1d0ea964, 0x40000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{61,0,123,__LINE__, 0x3fb10d3e, 0x464b660f, 0x40080000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{61,0,123,__LINE__, 0x3f8b4418, 0x3c555ec0, 0x40100000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{61,0,123,__LINE__, 0x3fdd254f, 0x22227934, 0x00000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{61,0,123,__LINE__, 0x3fe23c96, 0x66824fe1, 0x3ff00000, 0x00000000, 0x3ff99999, 0x9999999d}, +{61,0,123,__LINE__, 0x3fd07228, 0xde234e77, 0x40000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{61,0,123,__LINE__, 0x3fb290e5, 0x794e918a, 0x40080000, 0x00000000, 0x3ff99999, 0x9999999d}, +{61,0,123,__LINE__, 0x3f8eb5c8, 0x72cb3f07, 0x40100000, 0x00000000, 0x3ff99999, 0x9999999d}, +{61,0,123,__LINE__, 0x3fdb508e, 0xeb1aae8c, 0x00000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{61,0,123,__LINE__, 0x3fe26107, 0x663f6e91, 0x3ff00000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{61,0,123,__LINE__, 0x3fd13d92, 0x88e3f0dd, 0x40000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{61,0,123,__LINE__, 0x3fb4260b, 0xedecb2c7, 0x40080000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{61,0,123,__LINE__, 0x3f9138f9, 0x5390ebd3, 0x40100000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{61,0,123,__LINE__, 0x3fd97895, 0x7ce7f2cf, 0x00000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{61,0,123,__LINE__, 0x3fe27d0d, 0x82c5db53, 0x3ff00000, 0x00000000, 0x3ffb3333, 0x33333337}, +{61,0,123,__LINE__, 0x3fd20802, 0xc5da89b2, 0x40000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{61,0,123,__LINE__, 0x3fb5cc62, 0xb77f9eb0, 0x40080000, 0x00000000, 0x3ffb3333, 0x33333337}, +{61,0,123,__LINE__, 0x3f933dbd, 0xc0e89d76, 0x40100000, 0x00000000, 0x3ffb3333, 0x33333337}, +{61,0,123,__LINE__, 0x3fd79e3a, 0x9e138ae6, 0x00000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{61,0,123,__LINE__, 0x3fe290a3, 0xbaedcc46, 0x3ff00000, 0x00000000, 0x3ffc0000, 0x00000004}, +{61,0,123,__LINE__, 0x3fd2d0f2, 0x7ae76c8a, 0x40000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{61,0,123,__LINE__, 0x3fb7838b, 0x1e8c5990, 0x40080000, 0x00000000, 0x3ffc0000, 0x00000004}, +{61,0,123,__LINE__, 0x3f956a95, 0x623295f7, 0x40100000, 0x00000000, 0x3ffc0000, 0x00000004}, +{61,0,123,__LINE__, 0x3fd5c256, 0x5d20c7de, 0x00000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{61,0,123,__LINE__, 0x3fe29bc9, 0x703828ac, 0x3ff00000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{61,0,123,__LINE__, 0x3fd397db, 0x0e06aef0, 0x40000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{61,0,123,__LINE__, 0x3fb94b16, 0xc2085bbd, 0x40080000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{61,0,123,__LINE__, 0x3f97c0d3, 0xe559d7ff, 0x40100000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{61,0,123,__LINE__, 0x3fd3e5c0, 0xa05c4025, 0x00000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{61,0,123,__LINE__, 0x3fe29e82, 0x64e59f5a, 0x3ff00000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{61,0,123,__LINE__, 0x3fd45c36, 0xb655f5cb, 0x40000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{61,0,123,__LINE__, 0x3fbb2287, 0xc3831b75, 0x40080000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{61,0,123,__LINE__, 0x3f9a41bb, 0x0d6129f8, 0x40100000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{61,0,123,__LINE__, 0x3fd20950, 0xb5facde5, 0x00000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{61,0,123,__LINE__, 0x3fe298d6, 0xb7a495db, 0x3ff00000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{61,0,123,__LINE__, 0x3fd51d80, 0xcca30f3c, 0x40000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{61,0,123,__LINE__, 0x3fbd0950, 0xfe1d8095, 0x40080000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{61,0,123,__LINE__, 0x3f9cee79, 0x030dd010, 0x40100000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{61,0,123,__LINE__, 0x3fd02ddc, 0xe4c5e3e8, 0x00000000, 0x00000000, 0x3fff3333, 0x33333338}, +{61,0,123,__LINE__, 0x3fe28ad2, 0xdcd91caf, 0x3ff00000, 0x00000000, 0x3fff3333, 0x33333338}, +{61,0,123,__LINE__, 0x3fd5db36, 0x1b535d7a, 0x40000000, 0x00000000, 0x3fff3333, 0x33333338}, +{61,0,123,__LINE__, 0x3fbefed6, 0x4831e4df, 0x40080000, 0x00000000, 0x3fff3333, 0x33333338}, +{61,0,123,__LINE__, 0x3f9fc826, 0xafa66438, 0x40100000, 0x00000000, 0x3fff3333, 0x33333338}, +0,}; +test_jn(m) {run_vector_1(m,jn_vec,(char *)(jn),"jn","did"); } diff --git a/newlib/libm/test/jnf_vec.c b/newlib/libm/test/jnf_vec.c new file mode 100644 index 000000000..1c9a4dba7 --- /dev/null +++ b/newlib/libm/test/jnf_vec.c @@ -0,0 +1,204 @@ +#include "test.h" + one_line_type jnf_vec[] = { +{32,0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +{32,0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, +{32,0,123,__LINE__, 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000}, +{32,0,123,__LINE__, 0x00000000, 0x00000000, 0x40080000, 0x00000000, 0x00000000, 0x00000000}, +{32,0,123,__LINE__, 0x00000000, 0x00000000, 0x40100000, 0x00000000, 0x00000000, 0x00000000}, +{32,0,123,__LINE__, 0x3feffae1, 0x7c1aebb8, 0x00000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3f99978d, 0x5dda2f5d, 0x3ff00000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3f3479c9, 0xae7be13e, 0x40000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3ec5d788, 0x15461382, 0x40080000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3e51795d, 0x7442f11f, 0x40100000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3fefeb88, 0x65590ab3, 0x00000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3fa99169, 0x52566dfd, 0x3ff00000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3f547683, 0x25fd91e1, 0x40000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3ef5d4e9, 0x3442db3c, 0x40080000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3e9177b0, 0x11ba6ea0, 0x40100000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3fefd1fc, 0x19331411, 0x00000000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0x3fb32563, 0x927c0add, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0x3f66ff30, 0x46535fa1, 0x40000000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0x3f1267f5, 0xd0689e2d, 0x40080000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0x3eb617f1, 0x7b30b575, 0x40100000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0x3fefae48, 0xd9bfc0d4, 0x00000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3fb978e2, 0xf61c3bd6, 0x3ff00000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3f74696c, 0xf1c4fb46, 0x40000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3f25ca70, 0x33fc81fd, 0x40080000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3ed170fb, 0xdefa5db8, 0x40100000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0x3fef807f, 0xc72aa864, 0x00000000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0x3fbfc02a, 0x9c749ee9, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0x3f7fd56a, 0xa4fb4242, 0x40000000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0x3f354008, 0x86a35a2f, 0x40080000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0x3ee54449, 0xf38a05f2, 0x40100000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0x3fef48b6, 0xd692fb9e, 0x00000000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0x3fc2fc1c, 0x68a32001, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0x3f86de20, 0x9f39196e, 0x40000000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0x3f42541c, 0x0c752fd9, 0x40080000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0x3ef604e0, 0xb2c4c00a, 0x40100000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0x3fef0708, 0xc6573ae5, 0x00000000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0x3fc60f09, 0xfed3cc81, 0x3ff00000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0x3f8f0a84, 0xda6806f7, 0x40000000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0x3f4d0bc1, 0xbfa630ab, 0x40080000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0x3f045d05, 0x37bf774c, 0x40100000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0x3feebb95, 0x0fd4747f, 0x00000000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0x3fc91766, 0x1ebb8177, 0x3ff00000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0x3f943552, 0xd2bdaaf3, 0x40000000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0x3f55a0b4, 0x58ca1be8, 0x40080000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0x3f115640, 0x7fcf3789, 0x40100000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0x3fee667f, 0xd6a10561, 0x00000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x3fcc13be, 0x77afcc52, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x3f997c40, 0x76110a23, 0x40000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x3f5eb65b, 0x151f786c, 0x40080000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x3f1bb61b, 0x892f8cff, 0x40100000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0x3fee07f1, 0xd54c3f35, 0x00000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0x3fcf02a7, 0x1f4870d6, 0x3ff00000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0x3f9f56a9, 0x3f863441, 0x40000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0x3f650088, 0x0f70db57, 0x40080000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0x3f25116b, 0xd18a61a9, 0x40100000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0x3feda018, 0x47adb931, 0x00000000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0x3fd0f15d, 0xa9534f53, 0x3ff00000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0x3fa2e066, 0x08ca87ed, 0x40000000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0x3f6bdca3, 0xb2679435, 0x40080000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0x3f2ec3c2, 0x4d8baa6f, 0x40100000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0x3fed2f24, 0xd2d06e4e, 0x00000000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0x3fd2594f, 0x19ddc92f, 0x3ff00000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0x3fa65b45, 0x84be102a, 0x40000000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0x3f72055f, 0xdad11213, 0x40080000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0x3f35b926, 0x63a336fb, 0x40100000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0x3fecb54d, 0x6a872136, 0x00000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0x3fd3b87d, 0xc1127dbb, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0x3faa19b6, 0xfbcb3e9a, 0x40000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0x3f76d285, 0x13b1873b, 0x40080000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0x3f3dd3be, 0xb2075517, 0x40100000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0x3fec32cc, 0x34b8cc59, 0x00000000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0x3fd50e44, 0x279c0546, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0x3fae1952, 0x86f3b2fe, 0x40000000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0x3f7c6245, 0x0da7c943, 0x40080000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0x3f43fddd, 0x592928af, 0x40100000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0x3feba7df, 0x6a752a19, 0x00000000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0x3fd65a01, 0xd66b68bd, 0x3ff00000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0x3fb12bc2, 0xf0d061c1, 0x40000000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0x3f816042, 0xaaa332db, 0x40080000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0x3f4a3fdc, 0xe9688cf6, 0x40100000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0x3feb14c9, 0x36e29d84, 0x00000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fd79b1b, 0xab574ece, 0x3ff00000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fb368ca, 0xfa5427de, 0x40000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0x3f84fc41, 0xb23c60e3, 0x40080000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0x3f50eca7, 0x311cbd4c, 0x40100000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fea79cf, 0x9417f64a, 0x00000000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0x3fd8d0fc, 0x2ac09609, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0x3fb5c250, 0x3ceb775b, 0x40000000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0x3f890a65, 0x7f429003, 0x40080000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0x3f557acc, 0xd794bfe8, 0x40100000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0x3fe9d73c, 0x25f5b277, 0x00000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fd9fb13, 0xce0f024e, 0x3ff00000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fb836ce, 0xdb8280b1, 0x40000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3f8d8f96, 0x8206eb0e, 0x40080000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3f5ae0f9, 0x8b7b7574, 0x40100000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fe92d5c, 0x13137d0b, 0x00000000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3fdb18d9, 0x4eda7476, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3fbac4b1, 0x27d714b1, 0x40000000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3f91482d, 0xb156b6bd, 0x40080000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3f609b4b, 0x7ea68879, 0x40100000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3fe87c7f, 0xdbd7b8ee, 0x00000000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3fdc29c9, 0xee970c6e, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3fbd6a50, 0x95fa9be9, 0x40000000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3f94086a, 0x7638f7a6, 0x40080000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3f6449e3, 0x6b5af1b3, 0x40100000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3fe7c4fb, 0x2fcfebef, 0x00000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3fdd2d69, 0xba9c976c, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3fc012fb, 0x5cfc78b3, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3f970a5d, 0x1eef9226, 0x40080000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3f6888a5, 0x228510b7, 0x40100000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3fe70724, 0xc161d44c, 0x00000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fde2343, 0xcc63c37e, 0x3ff00000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fc17aef, 0x27865e62, 0x40000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3f9a4faa, 0xa04e8191, 0x40080000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3f6d6434, 0x5a55c316, 0x40100000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fe64356, 0x17eddc81, 0x00000000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3fdf0aea, 0x85d5bf18, 0x3ff00000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3fc2ec1a, 0x23e21b78, 0x40000000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3f9dd9bf, 0xb5a70ade, 0x40080000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3f7174b5, 0x74230428, 0x40100000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3fe579eb, 0x607c7c41, 0x00000000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3fdfe3f7, 0xc98d2caf, 0x3ff00000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3fc4658c, 0x7339f932, 0x40000000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3fa0d4e7, 0xb3f0ea6f, 0x40080000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3f7492a5, 0xb6657ad7, 0x40100000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3fe4ab43, 0x3d10e1be, 0x00000000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3fe05706, 0x9774d334, 0x3ff00000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3fc5e650, 0x6ea82715, 0x40000000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3fa2e068, 0xdde7f41d, 0x40080000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3f781279, 0xda92ee2f, 0x40100000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3fe3d7be, 0x92bbfbb9, 0x00000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fe0b46a, 0x18ecb9d4, 0x3ff00000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fc76d6b, 0x3ac0d75b, 0x40000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fa50fc1, 0x44526e78, 0x40080000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3f7bfac7, 0x6edc65a7, 0x40100000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fe2ffc0, 0x568baaa2, 0x00000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3fe109ff, 0x2f1fc3ec, 0x3ff00000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3fc8f9dd, 0x5e41b884, 0x40000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3fa76330, 0x3bb95571, 0x40080000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3f802911, 0xcfdfbbf5, 0x40100000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3fe223ad, 0x59727c9e, 0x00000000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3fe157a2, 0xbb6f3312, 0x3ff00000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3fca8aa3, 0x5b8ce82e, 0x40000000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3fa9dad6, 0x163299ee, 0x40080000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3f828f8e, 0x0cde14e4, 0x40100000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3fe143ec, 0x1344e613, 0x00000000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3fe19d35, 0xcbd98b75, 0x3ff00000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3fcc1eb6, 0x4c93d2fc, 0x40000000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3fac76b3, 0xcd3060b1, 0x40080000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3f853417, 0xedc03cbe, 0x40100000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3fe060e4, 0x6ce96517, 0x00000000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3fe1da9d, 0xa9d6fc82, 0x3ff00000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3fcdb50c, 0x80d5039f, 0x40000000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3faf36aa, 0xc0c5b3bb, 0x40080000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3f8819e3, 0xff0b0187, 0x40100000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3fdef5ff, 0x13b2d492, 0x00000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3fe20fc3, 0xe6dcf000, 0x3ff00000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3fcf4c9a, 0x1d0ea964, 0x40000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3fb10d3e, 0x464b660f, 0x40080000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3f8b4418, 0x3c555ec0, 0x40100000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3fdd254f, 0x22227934, 0x00000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fe23c96, 0x66824fe1, 0x3ff00000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fd07228, 0xde234e77, 0x40000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fb290e5, 0x794e918a, 0x40080000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3f8eb5c8, 0x72cb3f07, 0x40100000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fdb508e, 0xeb1aae8c, 0x00000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3fe26107, 0x663f6e91, 0x3ff00000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3fd13d92, 0x88e3f0dd, 0x40000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3fb4260b, 0xedecb2c7, 0x40080000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3f9138f9, 0x5390ebd3, 0x40100000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3fd97895, 0x7ce7f2cf, 0x00000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3fe27d0d, 0x82c5db53, 0x3ff00000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3fd20802, 0xc5da89b2, 0x40000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3fb5cc62, 0xb77f9eb0, 0x40080000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3f933dbd, 0xc0e89d76, 0x40100000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3fd79e3a, 0x9e138ae6, 0x00000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3fe290a3, 0xbaedcc46, 0x3ff00000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3fd2d0f2, 0x7ae76c8a, 0x40000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3fb7838b, 0x1e8c5990, 0x40080000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3f956a95, 0x623295f7, 0x40100000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3fd5c256, 0x5d20c7de, 0x00000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fe29bc9, 0x703828ac, 0x3ff00000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fd397db, 0x0e06aef0, 0x40000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fb94b16, 0xc2085bbd, 0x40080000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3f97c0d3, 0xe559d7ff, 0x40100000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fd3e5c0, 0xa05c4025, 0x00000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3fe29e82, 0x64e59f5a, 0x3ff00000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3fd45c36, 0xb655f5cb, 0x40000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3fbb2287, 0xc3831b75, 0x40080000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3f9a41bb, 0x0d6129f8, 0x40100000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3fd20950, 0xb5facde5, 0x00000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe298d6, 0xb7a495db, 0x3ff00000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fd51d80, 0xcca30f3c, 0x40000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fbd0950, 0xfe1d8095, 0x40080000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3f9cee79, 0x030dd010, 0x40100000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fd02ddc, 0xe4c5e3e8, 0x00000000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0x3fe28ad2, 0xdcd91caf, 0x3ff00000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0x3fd5db36, 0x1b535d7a, 0x40000000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0x3fbefed6, 0x4831e4df, 0x40080000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0x3f9fc826, 0xafa66438, 0x40100000, 0x00000000, 0x3fff3333, 0x33333338}, +0,}; +test_jnf(m) {run_vector_1(m,jnf_vec,(char *)(jnf),"jnf","fif"); } diff --git a/newlib/libm/test/log10_vec.c b/newlib/libm/test/log10_vec.c new file mode 100644 index 000000000..48975a7f2 --- /dev/null +++ b/newlib/libm/test/log10_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type log10_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0xc02e05a6, 0x2c6e0cb0, 0x3cd19000, 0x00000000}, /* -15.0110=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0xbfffffff, 0xffffff42, 0x3f847ae1, 0x47ae16ad}, /* -2.00000=f(0.01000)*/ +{64, 0,123,__LINE__, 0xbffb2efb, 0x2bd82120, 0x3f947ae1, 0x47ae1594}, /* -1.69897=f(0.02000)*/ +{64, 0,123,__LINE__, 0xbff85db6, 0x1a6c0a41, 0x3f9eb851, 0xeb851fd2}, /* -1.52287=f(0.03000)*/ +{64, 0,123,__LINE__, 0xbff65df6, 0x57b042d0, 0x3fa47ae1, 0x47ae1508}, /* -1.39794=f(0.04000)*/ +{64, 0,123,__LINE__, 0xbff4d104, 0xd427de59, 0x3fa99999, 0x99999a27}, /* -1.30103=f(0.05000)*/ +{64, 0,123,__LINE__, 0xbff38cb1, 0x46442be1, 0x3faeb851, 0xeb851f46}, /* -1.22184=f(0.06000)*/ +{64, 0,123,__LINE__, 0xbff27a7a, 0x7a4399c5, 0x3fb1eb85, 0x1eb85232}, /* -1.15490=f(0.07000)*/ +{64, 0,123,__LINE__, 0xbff18cf1, 0x83886469, 0x3fb47ae1, 0x47ae14c1}, /* -1.09691=f(0.08000)*/ +{64, 0,123,__LINE__, 0xbff0bb6c, 0x34d814ec, 0x3fb70a3d, 0x70a3d750}, /* -1.04575=f(0.09000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffffda, 0x3fb99999, 0x999999df}, /* -0.01000=f(0.10000)*/ +{64, 0,123,__LINE__, 0xbfeeace9, 0x3f5e7501, 0x3fbc28f5, 0xc28f5c6e}, /* -0.95860=f(0.11000)*/ +{64, 0,123,__LINE__, 0xbfed7758, 0xe4389ae3, 0x3fbeb851, 0xeb851efd}, /* -0.92081=f(0.12000)*/ +{64, 0,123,__LINE__, 0xbfec5a93, 0x7887db46, 0x3fc0a3d7, 0x0a3d70c6}, /* -0.88605=f(0.13000)*/ +{64, 0,123,__LINE__, 0xbfeb52eb, 0x4c3776a6, 0x3fc1eb85, 0x1eb8520e}, /* -0.85387=f(0.14000)*/ +{64, 0,123,__LINE__, 0xbfea5d75, 0xdd27d1e8, 0x3fc33333, 0x33333356}, /* -0.82390=f(0.15000)*/ +{64, 0,123,__LINE__, 0xbfe977d9, 0x5ec10bea, 0x3fc47ae1, 0x47ae149e}, /* -0.79588=f(0.16000)*/ +{64, 0,123,__LINE__, 0xbfe8a029, 0x956904ba, 0x3fc5c28f, 0x5c28f5e6}, /* -0.76955=f(0.17000)*/ +{64, 0,123,__LINE__, 0xbfe7d4ce, 0xc1606ced, 0x3fc70a3d, 0x70a3d72e}, /* -0.74472=f(0.18000)*/ +{64, 0,123,__LINE__, 0xbfe71473, 0x54087dcb, 0x3fc851eb, 0x851eb876}, /* -0.72124=f(0.19000)*/ +{64, 0,123,__LINE__, 0xbfe65df6, 0x57b042ed, 0x3fc99999, 0x999999be}, /* -0.69897=f(0.20000)*/ +{64, 0,123,__LINE__, 0xbfe5b061, 0x295f48af, 0x3fcae147, 0xae147b06}, /* -0.67778=f(0.21000)*/ +{64, 0,123,__LINE__, 0xbfe50adf, 0x970eb811, 0x3fcc28f5, 0xc28f5c4e}, /* -0.65757=f(0.22000)*/ +{64, 0,123,__LINE__, 0xbfe46cb9, 0xbec80cf0, 0x3fcd70a3, 0xd70a3d96}, /* -0.63827=f(0.23000)*/ +{64, 0,123,__LINE__, 0xbfe3d54f, 0x3be8ddf2, 0x3fceb851, 0xeb851ede}, /* -0.61978=f(0.24000)*/ +{64, 0,123,__LINE__, 0xbfe34413, 0x509f79ee, 0x3fd00000, 0x00000013}, /* -0.60205=f(0.25000)*/ +{64, 0,123,__LINE__, 0xbfe2b889, 0xd0381e52, 0x3fd0a3d7, 0x0a3d70b7}, /* -0.58502=f(0.26000)*/ +{64, 0,123,__LINE__, 0xbfe23244, 0x9e883ef4, 0x3fd147ae, 0x147ae15b}, /* -0.56863=f(0.27000)*/ +{64, 0,123,__LINE__, 0xbfe1b0e1, 0xa3e7b9b3, 0x3fd1eb85, 0x1eb851ff}, /* -0.55284=f(0.28000)*/ +{64, 0,123,__LINE__, 0xbfe13409, 0x1d29381d, 0x3fd28f5c, 0x28f5c2a3}, /* -0.53760=f(0.29000)*/ +{64, 0,123,__LINE__, 0xbfe0bb6c, 0x34d814f3, 0x3fd33333, 0x33333347}, /* -0.52287=f(0.30000)*/ +{64, 0,123,__LINE__, 0xbfe046c3, 0xd74f3025, 0x3fd3d70a, 0x3d70a3eb}, /* -0.50863=f(0.31000)*/ +{64, 0,123,__LINE__, 0xbfdfab9f, 0x6ce29de9, 0x3fd47ae1, 0x47ae148f}, /* -0.49485=f(0.32000)*/ +{64, 0,123,__LINE__, 0xbfded0aa, 0xe86d142e, 0x3fd51eb8, 0x51eb8533}, /* -0.48148=f(0.33000)*/ +{64, 0,123,__LINE__, 0xbfddfc3f, 0xda328f8a, 0x3fd5c28f, 0x5c28f5d7}, /* -0.46852=f(0.34000)*/ +{64, 0,123,__LINE__, 0xbfdd2dfd, 0x39ade168, 0x3fd66666, 0x6666667b}, /* -0.45593=f(0.35000)*/ +{64, 0,123,__LINE__, 0xbfdc658a, 0x32215fee, 0x3fd70a3d, 0x70a3d71f}, /* -0.44369=f(0.36000)*/ +{64, 0,123,__LINE__, 0xbfdba295, 0x3c667de6, 0x3fd7ae14, 0x7ae147c3}, /* -0.43179=f(0.37000)*/ +{64, 0,123,__LINE__, 0xbfdae4d3, 0x577181a7, 0x3fd851eb, 0x851eb867}, /* -0.42021=f(0.38000)*/ +{64, 0,123,__LINE__, 0xbfda2bff, 0x5abfe0af, 0x3fd8f5c2, 0x8f5c290b}, /* -0.40893=f(0.39000)*/ +{64, 0,123,__LINE__, 0xbfd977d9, 0x5ec10beb, 0x3fd99999, 0x999999af}, /* -0.39794=f(0.40000)*/ +{64, 0,123,__LINE__, 0xbfd8c826, 0x37f7ce88, 0x3fda3d70, 0xa3d70a53}, /* -0.38721=f(0.41000)*/ +{64, 0,123,__LINE__, 0xbfd81caf, 0x021f176f, 0x3fdae147, 0xae147af7}, /* -0.37675=f(0.42000)*/ +{64, 0,123,__LINE__, 0xbfd77540, 0xb90f3c14, 0x3fdb851e, 0xb851eb9b}, /* -0.36653=f(0.43000)*/ +{64, 0,123,__LINE__, 0xbfd6d1ab, 0xdd7df632, 0x3fdc28f5, 0xc28f5c3f}, /* -0.35654=f(0.44000)*/ +{64, 0,123,__LINE__, 0xbfd631c4, 0x23ffcdef, 0x3fdccccc, 0xcccccce3}, /* -0.34678=f(0.45000)*/ +{64, 0,123,__LINE__, 0xbfd59560, 0x2cf09fef, 0x3fdd70a3, 0xd70a3d87}, /* -0.33724=f(0.46000)*/ +{64, 0,123,__LINE__, 0xbfd4fc59, 0x441d1574, 0x3fde147a, 0xe147ae2b}, /* -0.32790=f(0.47000)*/ +{64, 0,123,__LINE__, 0xbfd4668b, 0x273241f2, 0x3fdeb851, 0xeb851ecf}, /* -0.31875=f(0.48000)*/ +{64, 0,123,__LINE__, 0xbfd3d3d3, 0xd21cceef, 0x3fdf5c28, 0xf5c28f73}, /* -0.30980=f(0.49000)*/ +{64, 0,123,__LINE__, 0xbfd34413, 0x509f79ec, 0x3fe00000, 0x0000000b}, /* -0.30103=f(0.50000)*/ +{64, 0,123,__LINE__, 0xbfd2b72b, 0x94823393, 0x3fe051eb, 0x851eb85d}, /* -0.29242=f(0.51000)*/ +{64, 0,123,__LINE__, 0xbfd22d00, 0x4fd0c2b2, 0x3fe0a3d7, 0x0a3d70af}, /* -0.28399=f(0.52000)*/ +{64, 0,123,__LINE__, 0xbfd1a576, 0xd2b216df, 0x3fe0f5c2, 0x8f5c2901}, /* -0.27572=f(0.53000)*/ +{64, 0,123,__LINE__, 0xbfd12075, 0xec7103f7, 0x3fe147ae, 0x147ae153}, /* -0.26760=f(0.54000)*/ +{64, 0,123,__LINE__, 0xbfd09de5, 0xcf5c6433, 0x3fe19999, 0x999999a5}, /* -0.25963=f(0.55000)*/ +{64, 0,123,__LINE__, 0xbfd01daf, 0xf72ff974, 0x3fe1eb85, 0x1eb851f7}, /* -0.25181=f(0.56000)*/ +{64, 0,123,__LINE__, 0xbfcf3f7e, 0x23824b5f, 0x3fe23d70, 0xa3d70a49}, /* -0.24412=f(0.57000)*/ +{64, 0,123,__LINE__, 0xbfce47fd, 0xd365ec8f, 0x3fe28f5c, 0x28f5c29b}, /* -0.23657=f(0.58000)*/ +{64, 0,123,__LINE__, 0xbfcd54b8, 0xa5f8786e, 0x3fe2e147, 0xae147aed}, /* -0.22914=f(0.59000)*/ +{64, 0,123,__LINE__, 0xbfcc658a, 0x32215fe6, 0x3fe33333, 0x3333333f}, /* -0.22184=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbfcb7a4f, 0xdd072061, 0x3fe3851e, 0xb851eb91}, /* -0.21467=f(0.61000)*/ +{64, 0,123,__LINE__, 0xbfca92e8, 0xbbfdccaf, 0x3fe3d70a, 0x3d70a3e3}, /* -0.20760=f(0.62000)*/ +{64, 0,123,__LINE__, 0xbfc9af35, 0x78dd76ee, 0x3fe428f5, 0xc28f5c35}, /* -0.20065=f(0.63000)*/ +{64, 0,123,__LINE__, 0xbfc8cf18, 0x388647ec, 0x3fe47ae1, 0x47ae1487}, /* -0.19382=f(0.64000)*/ +{64, 0,123,__LINE__, 0xbfc7f274, 0x835e6163, 0x3fe4cccc, 0xccccccd9}, /* -0.18708=f(0.65000)*/ +{64, 0,123,__LINE__, 0xbfc7192f, 0x2f9b3474, 0x3fe51eb8, 0x51eb852b}, /* -0.18045=f(0.66000)*/ +{64, 0,123,__LINE__, 0xbfc6432e, 0x4d2cd670, 0x3fe570a3, 0xd70a3d7d}, /* -0.17392=f(0.67000)*/ +{64, 0,123,__LINE__, 0xbfc57059, 0x13262b2a, 0x3fe5c28f, 0x5c28f5cf}, /* -0.16749=f(0.68000)*/ +{64, 0,123,__LINE__, 0xbfc4a097, 0xce8087ed, 0x3fe6147a, 0xe147ae21}, /* -0.16115=f(0.69000)*/ +{64, 0,123,__LINE__, 0xbfc3d3d3, 0xd21ccee4, 0x3fe66666, 0x66666673}, /* -0.15490=f(0.70000)*/ +{64, 0,123,__LINE__, 0xbfc309f7, 0x67e6fd47, 0x3fe6b851, 0xeb851ec5}, /* -0.14874=f(0.71000)*/ +{64, 0,123,__LINE__, 0xbfc242ed, 0xc303cbf3, 0x3fe70a3d, 0x70a3d717}, /* -0.14266=f(0.72000)*/ +{64, 0,123,__LINE__, 0xbfc17ea2, 0xf2f25cc1, 0x3fe75c28, 0xf5c28f69}, /* -0.13667=f(0.73000)*/ +{64, 0,123,__LINE__, 0xbfc0bd03, 0xd78e07e3, 0x3fe7ae14, 0x7ae147bb}, /* -0.13076=f(0.74000)*/ +{64, 0,123,__LINE__, 0xbfbffbfc, 0x2bbc77c7, 0x3fe80000, 0x0000000d}, /* -0.12493=f(0.75000)*/ +{64, 0,123,__LINE__, 0xbfbe8300, 0x1b481ec5, 0x3fe851eb, 0x851eb85f}, /* -0.11918=f(0.76000)*/ +{64, 0,123,__LINE__, 0xbfbd0ef1, 0x9f2d46e2, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.11350=f(0.77000)*/ +{64, 0,123,__LINE__, 0xbfbb9fb0, 0x28819ae1, 0x3fe8f5c2, 0x8f5c2903}, /* -0.10790=f(0.78000)*/ +{64, 0,123,__LINE__, 0xbfba351c, 0x66e768e3, 0x3fe947ae, 0x147ae155}, /* -0.10237=f(0.79000)*/ +{64, 0,123,__LINE__, 0xbfb8cf18, 0x388647d2, 0x3fe99999, 0x999999a7}, /* -0.09691=f(0.80000)*/ +{64, 0,123,__LINE__, 0xbfb76d86, 0x9b029ff6, 0x3fe9eb85, 0x1eb851f9}, /* -0.09151=f(0.81000)*/ +{64, 0,123,__LINE__, 0xbfb6104b, 0x9d615247, 0x3fea3d70, 0xa3d70a4b}, /* -0.08618=f(0.82000)*/ +{64, 0,123,__LINE__, 0xbfb4b74c, 0x52c6523b, 0x3fea8f5c, 0x28f5c29d}, /* -0.08092=f(0.83000)*/ +{64, 0,123,__LINE__, 0xbfb3626e, 0xc5fe75e2, 0x3feae147, 0xae147aef}, /* -0.07572=f(0.84000)*/ +{64, 0,123,__LINE__, 0xbfb21199, 0xedc60e51, 0x3feb3333, 0x33333341}, /* -0.07058=f(0.85000)*/ +{64, 0,123,__LINE__, 0xbfb0c4b5, 0xa1bf0874, 0x3feb851e, 0xb851eb93}, /* -0.06550=f(0.86000)*/ +{60, 0,123,__LINE__, 0xbfaef755, 0x2014d266, 0x3febd70a, 0x3d70a3e5}, /* -0.06048=f(0.87000)*/ +{64, 0,123,__LINE__, 0xbfac6cc4, 0x66f3e1d9, 0x3fec28f5, 0xc28f5c37}, /* -0.05551=f(0.88000)*/ +{64, 0,123,__LINE__, 0xbfa9e98d, 0x949f2ad4, 0x3fec7ae1, 0x47ae1489}, /* -0.05060=f(0.89000)*/ +{64, 0,123,__LINE__, 0xbfa76d86, 0x9b029fc1, 0x3feccccc, 0xccccccdb}, /* -0.04575=f(0.90000)*/ +{64, 0,123,__LINE__, 0xbfa4f886, 0xd0f0f1ba, 0x3fed1eb8, 0x51eb852d}, /* -0.04095=f(0.91000)*/ +{64, 0,123,__LINE__, 0xbfa28a66, 0xe2892fbe, 0x3fed70a3, 0xd70a3d7f}, /* -0.03621=f(0.92000)*/ +{64, 0,123,__LINE__, 0xbfa02300, 0xc27452e7, 0x3fedc28f, 0x5c28f5d1}, /* -0.03151=f(0.93000)*/ +{64, 0,123,__LINE__, 0xbf9b845f, 0x37d9b7cb, 0x3fee147a, 0xe147ae23}, /* -0.02687=f(0.94000)*/ +{64, 0,123,__LINE__, 0xbf96cf9f, 0x8b075afd, 0x3fee6666, 0x66666675}, /* -0.02227=f(0.95000)*/ +{64, 0,123,__LINE__, 0xbf92277d, 0x692c7faf, 0x3feeb851, 0xeb851ec7}, /* -0.01772=f(0.96000)*/ +{64, 0,123,__LINE__, 0xbf8b176b, 0xc5ac9724, 0x3fef0a3d, 0x70a3d719}, /* -0.01322=f(0.97000)*/ +{64, 0,123,__LINE__, 0xbf81f810, 0x2faa9ee8, 0x3fef5c28, 0xf5c28f6b}, /* -0.00877=f(0.98000)*/ +{64, 0,123,__LINE__, 0xbf71e0d4, 0x874f8fa9, 0x3fefae14, 0x7ae147bd}, /* -0.00436=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3cc8520b, 0xb2820866, 0x3ff00000, 0x00000007}, /* 6.75029e-16=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3f71b349, 0xf11fb8c1, 0x3ff028f5, 0xc28f5c30}, /* 0.00432=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3f819cf7, 0x83a8cc9b, 0x3ff051eb, 0x851eb859}, /* 0.00860=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3f8a4a67, 0x223dafef, 0x3ff07ae1, 0x47ae1482}, /* 0.01283=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3f917130, 0x0ceb745a, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.01703=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3f95b2a5, 0xca1f4885, 0x3ff0cccc, 0xccccccd4}, /* 0.02118=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3f99e9c7, 0xded6318d, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.02530=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3f9e16c7, 0xf0c37ea6, 0x3ff11eb8, 0x51eb8526}, /* 0.02938=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fa11ceb, 0x2173b005, 0x3ff147ae, 0x147ae14f}, /* 0.03342=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fa32990, 0xe1514d45, 0x3ff170a3, 0xd70a3d78}, /* 0.03742=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fa5316c, 0x0a18ae2f, 0x3ff19999, 0x999999a1}, /* 0.04139=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fa73492, 0xcf4ac047, 0x3ff1c28f, 0x5c28f5ca}, /* 0.04532=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fa9331a, 0xcb7c042d, 0x3ff1eb85, 0x1eb851f3}, /* 0.04921=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fab2d19, 0x05c48b3c, 0x3ff2147a, 0xe147ae1c}, /* 0.05307=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fad22a1, 0xf6f2a24b, 0x3ff23d70, 0xa3d70a45}, /* 0.05690=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3faf13c9, 0x8e83604b, 0x3ff26666, 0x6666666e}, /* 0.06069=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fb08051, 0x9bb20ec5, 0x3ff28f5c, 0x28f5c297}, /* 0.06445=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fb174a0, 0xee3fd50a, 0x3ff2b851, 0xeb851ec0}, /* 0.06818=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fb266db, 0xf68cf707, 0x3ff2e147, 0xae147ae9}, /* 0.07188=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fb3570b, 0xb07e3b99, 0x3ff30a3d, 0x70a3d712}, /* 0.07554=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3fc91a74, 0xc4f85378, 0x3ff921fb, 0x54442d18}, /* 0.19611=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3fdfd14d, 0xb31ba3bb, 0x400921fb, 0x54442d18}, /* 0.49714=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3fe58b30, 0xfc65ffdc, 0x4012d97c, 0x7f3321d2}, /* 0.67324=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfcc658a, 0x322160d5, 0x3fe33333, 0x333332ec}, /* -0.22184=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fd7268c, 0x826fe5e1, 0x40026666, 0x66666654}, /* 0.36172=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3fe34413, 0x509f79f7, 0x400fffff, 0xffffffee}, /* 0.60205=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3fe83020, 0x771f6d1a, 0x4016cccc, 0xccccccc4}, /* 0.75587=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3febd0bf, 0x0a1c7dfb, 0x401d9999, 0x99999991}, /* 0.86923=f(7.40000)*/ +{64, 0,123,__LINE__, 0x3feeb077, 0x92f0f0da, 0x40223333, 0x3333332f}, /* 0.95904=f(9.10000)*/ +{64, 0,123,__LINE__, 0x3ff088e7, 0x590b9d7b, 0x40259999, 0x99999995}, /* 1.03342=f(10.8000)*/ +{64, 0,123,__LINE__, 0x3ff18cf1, 0x8388647f, 0x4028ffff, 0xfffffffb}, /* 1.09691=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3ff26fc5, 0xe72afed2, 0x402c6666, 0x66666661}, /* 1.15228=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3ff338ec, 0x30e76fc1, 0x402fcccc, 0xccccccc7}, /* 1.20139=f(15.9000)*/ +{64, 0,123,__LINE__, 0x3ff3ed9e, 0xb0f03f6c, 0x40319999, 0x99999997}, /* 1.24551=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3ff491a4, 0x8a75278a, 0x40334ccc, 0xccccccca}, /* 1.28555=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3ff527cf, 0x6b505b9e, 0x4034ffff, 0xfffffffd}, /* 1.32221=f(21.0000)*/ +{64, 0,123,__LINE__, 0x3ff5b248, 0x2b52cc18, 0x4036b333, 0x33333330}, /* 1.35602=f(22.7000)*/ +{64, 0,123,__LINE__, 0x3ff632bf, 0xacaed8ee, 0x40386666, 0x66666663}, /* 1.38739=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3ff6aa8f, 0x3c934ee8, 0x403a1999, 0x99999996}, /* 1.41664=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3ff71ace, 0xb746d587, 0x403bcccc, 0xccccccc9}, /* 1.44404=f(27.8000)*/ +{64, 0,123,__LINE__, 0x3ff78464, 0x1719126d, 0x403d7fff, 0xfffffffc}, /* 1.46982=f(29.5000)*/ +0,}; +test_log10(m) {run_vector_1(m,log10_vec,(char *)(log10),"log10","dd"); } diff --git a/newlib/libm/test/log10f_vec.c b/newlib/libm/test/log10f_vec.c new file mode 100644 index 000000000..034117c05 --- /dev/null +++ b/newlib/libm/test/log10f_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type log10f_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 0, 0,123,__LINE__, 0xc02e05a6, 0x2c79c242, 0x3cd19000, 0x00000000}, /* -15.0110=f(9.74915e-16)*/ +{13, 0,123,__LINE__, 0xc0000000, 0x0214fad3, 0x3f847ae1, 0x47ae16ad}, /* -2.00000=f(0.01000)*/ +{ 1, 0,123,__LINE__, 0xbffb2efb, 0x30021727, 0x3f947ae1, 0x47ae1594}, /* -1.69897=f(0.02000)*/ +{ 1, 0,123,__LINE__, 0xbff85db6, 0x1cb7bfcf, 0x3f9eb851, 0xeb851fd2}, /* -1.52287=f(0.03000)*/ +{ 1, 0,123,__LINE__, 0xbff65df6, 0x5bda38a7, 0x3fa47ae1, 0x47ae1508}, /* -1.39794=f(0.04000)*/ +{ 1, 0,123,__LINE__, 0xbff4d104, 0xd2017a0d, 0x3fa99999, 0x99999a27}, /* -1.30103=f(0.05000)*/ +{ 1, 0,123,__LINE__, 0xbff38cb1, 0x488fe14f, 0x3faeb851, 0xeb851f46}, /* -1.22184=f(0.06000)*/ +{ 1, 0,123,__LINE__, 0xbff27a7a, 0x79197291, 0x3fb1eb85, 0x1eb85232}, /* -1.15490=f(0.07000)*/ +{ 1, 0,123,__LINE__, 0xbff18cf1, 0x87b25a27, 0x3fb47ae1, 0x47ae14c1}, /* -1.09691=f(0.08000)*/ +{ 1, 0,123,__LINE__, 0xbff0bb6c, 0x300f62e3, 0x3fb70a3d, 0x70a3d750}, /* -1.04575=f(0.09000)*/ +{ 1, 0,123,__LINE__, 0xbfefffff, 0xfbb3371b, 0x3fb99999, 0x999999df}, /* -1.00000=f(0.10000)*/ +{ 1, 0,123,__LINE__, 0xbfeeace9, 0x3e2d1922, 0x3fbc28f5, 0xc28f5c6e}, /* -0.95860=f(0.11000)*/ +{ 1, 0,123,__LINE__, 0xbfed7758, 0xe8d0059f, 0x3fbeb851, 0xeb851efd}, /* -0.92081=f(0.12000)*/ +{ 1, 0,123,__LINE__, 0xbfec5a93, 0x813be142, 0x3fc0a3d7, 0x0a3d70c6}, /* -0.88605=f(0.13000)*/ +{ 1, 0,123,__LINE__, 0xbfeb52eb, 0x49e32823, 0x3fc1eb85, 0x1eb8520e}, /* -0.85387=f(0.14000)*/ +{ 1, 0,123,__LINE__, 0xbfea5d75, 0xd4acd895, 0x3fc33333, 0x33333356}, /* -0.82390=f(0.15000)*/ +{ 1, 0,123,__LINE__, 0xbfe977d9, 0x6714f750, 0x3fc47ae1, 0x47ae149e}, /* -0.79588=f(0.16000)*/ +{ 1, 0,123,__LINE__, 0xbfe8a029, 0x988741da, 0x3fc5c28f, 0x5c28f5e6}, /* -0.76955=f(0.17000)*/ +{ 1, 0,123,__LINE__, 0xbfe7d4ce, 0xb7cf08c7, 0x3fc70a3d, 0x70a3d72e}, /* -0.74472=f(0.18000)*/ +{ 1, 0,123,__LINE__, 0xbfe71473, 0x57aa23b9, 0x3fc851eb, 0x851eb876}, /* -0.72124=f(0.19000)*/ +{ 1, 0,123,__LINE__, 0xbfe65df6, 0x53637a1c, 0x3fc99999, 0x999999be}, /* -0.69897=f(0.20000)*/ +{ 1, 0,123,__LINE__, 0xbfe5b061, 0x313436fd, 0x3fcae147, 0xae147b06}, /* -0.67778=f(0.21000)*/ +{ 1, 0,123,__LINE__, 0xbfe50adf, 0x95dd5c23, 0x3fcc28f5, 0xc28f5c4e}, /* -0.65757=f(0.22000)*/ +{ 1, 0,123,__LINE__, 0xbfe46cb9, 0xb9618521, 0x3fcd70a3, 0xd70a3d96}, /* -0.63827=f(0.23000)*/ +{ 1, 0,123,__LINE__, 0xbfe3d54f, 0x408048a0, 0x3fceb851, 0xeb851ede}, /* -0.61978=f(0.24000)*/ +{ 1, 0,123,__LINE__, 0xbfe34413, 0x509f79ff, 0x3fd00000, 0x00000013}, /* -0.60206=f(0.25000)*/ +{ 1, 0,123,__LINE__, 0xbfe2b889, 0xd8ec2443, 0x3fd0a3d7, 0x0a3d70b7}, /* -0.58502=f(0.26000)*/ +{ 1, 0,123,__LINE__, 0xbfe23244, 0x944219a4, 0x3fd147ae, 0x147ae15b}, /* -0.56863=f(0.27000)*/ +{ 1, 0,123,__LINE__, 0xbfe1b0e1, 0xa1936b23, 0x3fd1eb85, 0x1eb851ff}, /* -0.55284=f(0.28000)*/ +{ 1, 0,123,__LINE__, 0xbfe13409, 0x206bd4c1, 0x3fd28f5c, 0x28f5c2a3}, /* -0.53760=f(0.29000)*/ +{ 1, 0,123,__LINE__, 0xbfe0bb6c, 0x2c5d1b95, 0x3fd33333, 0x33333347}, /* -0.52287=f(0.30000)*/ +{ 1, 0,123,__LINE__, 0xbfe046c3, 0xd86b6be6, 0x3fd3d70a, 0x3d70a3eb}, /* -0.50863=f(0.31000)*/ +{ 1, 0,123,__LINE__, 0xbfdfab9f, 0x7d8a74a0, 0x3fd47ae1, 0x47ae148f}, /* -0.49485=f(0.32000)*/ +{ 1, 0,123,__LINE__, 0xbfded0aa, 0xddadfb38, 0x3fd51eb8, 0x51eb8533}, /* -0.48148=f(0.33000)*/ +{ 1, 0,123,__LINE__, 0xbfddfc3f, 0xe06f09b4, 0x3fd5c28f, 0x5c28f5d7}, /* -0.46852=f(0.34000)*/ +{ 1, 0,123,__LINE__, 0xbfdd2dfd, 0x4491b4d1, 0x3fd66666, 0x6666667b}, /* -0.45593=f(0.35000)*/ +{ 1, 0,123,__LINE__, 0xbfdc658a, 0x1efe9791, 0x3fd70a3d, 0x70a3d71f}, /* -0.44369=f(0.36000)*/ +{ 1, 0,123,__LINE__, 0xbfdba295, 0x376350ca, 0x3fd7ae14, 0x7ae147c3}, /* -0.43179=f(0.37000)*/ +{ 1, 0,123,__LINE__, 0xbfdae4d3, 0x5eb4cd74, 0x3fd851eb, 0x851eb867}, /* -0.42021=f(0.38000)*/ +{ 1, 0,123,__LINE__, 0xbfda2bff, 0x6ba1c9ed, 0x3fd8f5c2, 0x8f5c290b}, /* -0.40893=f(0.39000)*/ +{ 1, 0,123,__LINE__, 0xbfd977d9, 0x56277a39, 0x3fd99999, 0x999999af}, /* -0.39794=f(0.40000)*/ +{ 1, 0,123,__LINE__, 0xbfd8c826, 0x3e8468cc, 0x3fda3d70, 0xa3d70a53}, /* -0.38721=f(0.41000)*/ +{ 1, 0,123,__LINE__, 0xbfd81caf, 0x11c8f3fc, 0x3fdae147, 0xae147af7}, /* -0.37675=f(0.42000)*/ +{ 1, 0,123,__LINE__, 0xbfd77540, 0xb38886a3, 0x3fdb851e, 0xb851eb9b}, /* -0.36653=f(0.43000)*/ +{ 1, 0,123,__LINE__, 0xbfd6d1ab, 0xdb1b3e47, 0x3fdc28f5, 0xc28f5c3f}, /* -0.35654=f(0.44000)*/ +{ 1, 0,123,__LINE__, 0xbfd631c4, 0x2e4f33a6, 0x3fdccccc, 0xcccccce3}, /* -0.34678=f(0.45000)*/ +{ 1, 0,123,__LINE__, 0xbfd59560, 0x22239043, 0x3fdd70a3, 0xd70a3d87}, /* -0.33724=f(0.46000)*/ +{ 1, 0,123,__LINE__, 0xbfd4fc59, 0x43beb17c, 0x3fde147a, 0xe147ae2b}, /* -0.32790=f(0.47000)*/ +{ 1, 0,123,__LINE__, 0xbfd4668b, 0x30611741, 0x3fdeb851, 0xeb851ecf}, /* -0.31875=f(0.48000)*/ +{ 1, 0,123,__LINE__, 0xbfd3d3d3, 0xc982eada, 0x3fdf5c28, 0xf5c28f73}, /* -0.30980=f(0.49000)*/ +{ 1, 0,123,__LINE__, 0xbfd34413, 0x509f79ff, 0x3fe00000, 0x0000000b}, /* -0.30103=f(0.50000)*/ +{ 1, 0,123,__LINE__, 0xbfd2b72b, 0x9db1fa7d, 0x3fe051eb, 0x851eb85d}, /* -0.29242=f(0.51000)*/ +{ 1, 0,123,__LINE__, 0xbfd22d00, 0x6138ce88, 0x3fe0a3d7, 0x0a3d70af}, /* -0.28399=f(0.52000)*/ +{ 1, 0,123,__LINE__, 0xbfd1a576, 0xec9e8e93, 0x3fe0f5c2, 0x8f5c2901}, /* -0.27572=f(0.53000)*/ +{ 1, 0,123,__LINE__, 0xbfd12075, 0xd7e4b949, 0x3fe147ae, 0x147ae153}, /* -0.26760=f(0.54000)*/ +{ 1, 0,123,__LINE__, 0xbfd09de5, 0xc434111f, 0x3fe19999, 0x999999a5}, /* -0.25963=f(0.55000)*/ +{ 1, 0,123,__LINE__, 0xbfd01daf, 0xf2875c47, 0x3fe1eb85, 0x1eb851f7}, /* -0.25181=f(0.56000)*/ +{ 1, 0,123,__LINE__, 0xbfcf3f7e, 0x215020cf, 0x3fe23d70, 0xa3d70a49}, /* -0.24412=f(0.57000)*/ +{ 1, 0,123,__LINE__, 0xbfce47fd, 0xe0705f08, 0x3fe28f5c, 0x28f5c29b}, /* -0.23657=f(0.58000)*/ +{ 1, 0,123,__LINE__, 0xbfcd54b8, 0xcedabb0f, 0x3fe2e147, 0xae147aed}, /* -0.22914=f(0.59000)*/ +{ 1, 0,123,__LINE__, 0xbfcc658a, 0x10357a58, 0x3fe33333, 0x3333333f}, /* -0.22184=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0xbfcb7a4f, 0xd26858a5, 0x3fe3851e, 0xb851eb91}, /* -0.21467=f(0.61000)*/ +{ 1, 0,123,__LINE__, 0xbfca92e8, 0xc06ebb99, 0x3fe3d70a, 0x3d70a3e3}, /* -0.20760=f(0.62000)*/ +{ 1, 0,123,__LINE__, 0xbfc9af35, 0x87786ddd, 0x3fe428f5, 0xc28f5c35}, /* -0.20065=f(0.63000)*/ +{ 1, 0,123,__LINE__, 0xbfc8cf18, 0x59d5f543, 0x3fe47ae1, 0x47ae1487}, /* -0.19382=f(0.64000)*/ +{ 1, 0,123,__LINE__, 0xbfc7f274, 0x9b962186, 0x3fe4cccc, 0xccccccd9}, /* -0.18708=f(0.65000)*/ +{ 1, 0,123,__LINE__, 0xbfc7192f, 0x1a1d0273, 0x3fe51eb8, 0x51eb852b}, /* -0.18045=f(0.66000)*/ +{ 1, 0,123,__LINE__, 0xbfc6432e, 0x43bade15, 0x3fe570a3, 0xd70a3d7d}, /* -0.17392=f(0.67000)*/ +{ 1, 0,123,__LINE__, 0xbfc57059, 0x1f9f1f6b, 0x3fe5c28f, 0x5c28f5cf}, /* -0.16749=f(0.68000)*/ +{ 1, 0,123,__LINE__, 0xbfc4a097, 0xe6b77b5c, 0x3fe6147a, 0xe147ae21}, /* -0.16115=f(0.69000)*/ +{ 1, 0,123,__LINE__, 0xbfc3d3d3, 0xe7e475a4, 0x3fe66666, 0x66666673}, /* -0.15490=f(0.70000)*/ +{ 1, 0,123,__LINE__, 0xbfc309f7, 0x6df4a518, 0x3fe6b851, 0xeb851ec5}, /* -0.14874=f(0.71000)*/ +{ 1, 0,123,__LINE__, 0xbfc242ed, 0x9cbe3b23, 0x3fe70a3d, 0x70a3d717}, /* -0.14266=f(0.72000)*/ +{ 1, 0,123,__LINE__, 0xbfc17ea2, 0xeaf56c43, 0x3fe75c28, 0xf5c28f69}, /* -0.13667=f(0.73000)*/ +{ 1, 0,123,__LINE__, 0xbfc0bd03, 0xcd87ad97, 0x3fe7ae14, 0x7ae147bb}, /* -0.13076=f(0.74000)*/ +{ 1, 0,123,__LINE__, 0xbfbffbfc, 0x456f68a7, 0x3fe80000, 0x0000000d}, /* -0.12493=f(0.75000)*/ +{ 1, 0,123,__LINE__, 0xbfbe8300, 0x38554dd7, 0x3fe851eb, 0x851eb85f}, /* -0.11918=f(0.76000)*/ +{ 1, 0,123,__LINE__, 0xbfbd0ef1, 0xcb59ff20, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.11350=f(0.77000)*/ +{ 1, 0,123,__LINE__, 0xbfbb9fb0, 0x6c093fb8, 0x3fe8f5c2, 0x8f5c2903}, /* -0.10790=f(0.78000)*/ +{ 1, 0,123,__LINE__, 0xbfba351c, 0x4a7f306b, 0x3fe947ae, 0x147ae155}, /* -0.10237=f(0.79000)*/ +{ 1, 0,123,__LINE__, 0xbfb8cf18, 0x162000ea, 0x3fe99999, 0x999999a7}, /* -0.09691=f(0.80000)*/ +{ 1, 0,123,__LINE__, 0xbfb76d86, 0x9a1b5bfa, 0x3fe9eb85, 0x1eb851f9}, /* -0.09151=f(0.81000)*/ +{ 1, 0,123,__LINE__, 0xbfb6104b, 0xb793bb35, 0x3fea3d70, 0xa3d70a4b}, /* -0.08618=f(0.82000)*/ +{ 1, 0,123,__LINE__, 0xbfb4b74c, 0x8169e21d, 0x3fea8f5c, 0x28f5c29d}, /* -0.08092=f(0.83000)*/ +{ 1, 0,123,__LINE__, 0xbfb3626f, 0x04a5e7f4, 0x3feae147, 0xae147aef}, /* -0.07572=f(0.84000)*/ +{ 1, 0,123,__LINE__, 0xbfb21199, 0xbd7dd04e, 0x3feb3333, 0x33333341}, /* -0.07058=f(0.85000)*/ +{ 1, 0,123,__LINE__, 0xbfb0c4b5, 0x8ba43292, 0x3feb851e, 0xb851eb93}, /* -0.06550=f(0.86000)*/ +{ 1, 0,123,__LINE__, 0xbfaef755, 0x18769125, 0x3febd70a, 0x3d70a3e5}, /* -0.06048=f(0.87000)*/ +{ 1, 0,123,__LINE__, 0xbfac6cc4, 0x53de2240, 0x3fec28f5, 0xc28f5c37}, /* -0.05551=f(0.88000)*/ +{ 1, 0,123,__LINE__, 0xbfa9e98d, 0xcabcb3bd, 0x3fec7ae1, 0x47ae1489}, /* -0.05060=f(0.89000)*/ +{ 1, 0,123,__LINE__, 0xbfa76d86, 0xed7dcd39, 0x3feccccc, 0xccccccdb}, /* -0.04575=f(0.90000)*/ +{ 1, 0,123,__LINE__, 0xbfa4f886, 0x5e4b4038, 0x3fed1eb8, 0x51eb852d}, /* -0.04095=f(0.91000)*/ +{ 1, 0,123,__LINE__, 0xbfa28a66, 0x8c20b224, 0x3fed70a3, 0xd70a3d7f}, /* -0.03621=f(0.92000)*/ +{ 1, 0,123,__LINE__, 0xbfa02300, 0xb43b7e7e, 0x3fedc28f, 0x5c28f5d1}, /* -0.03151=f(0.93000)*/ +{ 1, 0,123,__LINE__, 0xbf9b845f, 0x31f377dc, 0x3fee147a, 0xe147ae23}, /* -0.02687=f(0.94000)*/ +{ 1, 0,123,__LINE__, 0xbf96cf9f, 0xe2105135, 0x3fee6666, 0x66666675}, /* -0.02227=f(0.95000)*/ +{ 1, 0,123,__LINE__, 0xbf92277d, 0xfc19d425, 0x3feeb851, 0xeb851ec7}, /* -0.01772=f(0.96000)*/ +{ 1, 0,123,__LINE__, 0xbf8b176a, 0x16d2ba27, 0x3fef0a3d, 0x70a3d719}, /* -0.01322=f(0.97000)*/ +{ 1, 0,123,__LINE__, 0xbf81f80f, 0x1c6e1b65, 0x3fef5c28, 0xf5c28f6b}, /* -0.00877=f(0.98000)*/ +{ 1, 0,123,__LINE__, 0xbf71e0d3, 0x72b85936, 0x3fefae14, 0x7ae147bd}, /* -0.00436=f(0.99000)*/ +{ 0, 0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 0.00000=f(1.00000)*/ +{ 0, 0,123,__LINE__, 0x3f71b348, 0xd010f4f7, 0x3ff028f5, 0xc28f5c30}, /* 0.00432=f(1.01000)*/ +{ 0, 0,123,__LINE__, 0x3f819cf6, 0x5daff043, 0x3ff051eb, 0x851eb859}, /* 0.00860=f(1.02000)*/ +{ 0, 0,123,__LINE__, 0x3f8a4a65, 0x7e10a246, 0x3ff07ae1, 0x47ae1482}, /* 0.01283=f(1.03000)*/ +{ 0, 0,123,__LINE__, 0x3f91712e, 0xf66ab768, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.01703=f(1.04000)*/ +{ 0, 0,123,__LINE__, 0x3f95b2a4, 0x61b3deee, 0x3ff0cccc, 0xccccccd4}, /* 0.02118=f(1.05000)*/ +{ 0, 0,123,__LINE__, 0x3f99e9c6, 0x400eb6b4, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.02530=f(1.06000)*/ +{ 0, 0,123,__LINE__, 0x3f9e16c9, 0x719263f9, 0x3ff11eb8, 0x51eb8526}, /* 0.02938=f(1.07000)*/ +{ 0, 0,123,__LINE__, 0x3fa11ceb, 0xc5d605b0, 0x3ff147ae, 0x147ae14f}, /* 0.03342=f(1.08000)*/ +{ 0, 0,123,__LINE__, 0x3fa32991, 0x3ffe6b76, 0x3ff170a3, 0xd70a3d78}, /* 0.03742=f(1.09000)*/ +{ 0, 0,123,__LINE__, 0x3fa5316c, 0x635b46fd, 0x3ff19999, 0x999999a1}, /* 0.04139=f(1.10000)*/ +{ 0, 0,123,__LINE__, 0x3fa73492, 0xe6e4c0cc, 0x3ff1c28f, 0x5c28f5ca}, /* 0.04532=f(1.11000)*/ +{ 0, 0,123,__LINE__, 0x3fa9331a, 0xf0c0edbc, 0x3ff1eb85, 0x1eb851f3}, /* 0.04921=f(1.12000)*/ +{ 0, 0,123,__LINE__, 0x3fab2d18, 0xce92b643, 0x3ff2147a, 0xe147ae1c}, /* 0.05307=f(1.13000)*/ +{ 0, 0,123,__LINE__, 0x3fad22a1, 0xffbb4cbb, 0x3ff23d70, 0xa3d70a45}, /* 0.05690=f(1.14000)*/ +{ 0, 0,123,__LINE__, 0x3faf13c9, 0x4cbcde70, 0x3ff26666, 0x6666666e}, /* 0.06069=f(1.15000)*/ +{ 0, 0,123,__LINE__, 0x3fb08051, 0x819d29eb, 0x3ff28f5c, 0x28f5c297}, /* 0.06445=f(1.16000)*/ +{ 0, 0,123,__LINE__, 0x3fb174a0, 0x9492be52, 0x3ff2b851, 0xeb851ec0}, /* 0.06818=f(1.17000)*/ +{ 0, 0,123,__LINE__, 0x3fb266db, 0xa4c871dc, 0x3ff2e147, 0xae147ae9}, /* 0.07188=f(1.18000)*/ +{ 0, 0,123,__LINE__, 0x3fb3570c, 0x08999da5, 0x3ff30a3d, 0x70a3d712}, /* 0.07554=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{ 9,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0x3fc91a74, 0xe7f747ef, 0x3ff921fb, 0x54442d18}, /* 0.19611=f(1.57079)*/ +{10, 0,123,__LINE__, 0x3fdfd14d, 0xc49b1df6, 0x400921fb, 0x54442d18}, /* 0.49714=f(3.14159)*/ +{ 1, 0,123,__LINE__, 0x3fe58b30, 0xfb6e2ff7, 0x4012d97c, 0x7f3321d2}, /* 0.67324=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0xbfcc658a, 0x10357a58, 0x3fe33333, 0x333332ec}, /* -0.22184=f(0.60000)*/ +{10, 0,123,__LINE__, 0x3fd7268c, 0x7a3715cd, 0x40026666, 0x66666654}, /* 0.36172=f(2.30000)*/ +{ 1, 0,123,__LINE__, 0x3fe34413, 0x509f79ff, 0x400fffff, 0xffffffee}, /* 0.60206=f(4.00000)*/ +{ 1, 0,123,__LINE__, 0x3fe83020, 0x6f740fae, 0x4016cccc, 0xccccccc4}, /* 0.75587=f(5.70000)*/ +{ 1, 0,123,__LINE__, 0x3febd0bf, 0x0bcabb18, 0x401d9999, 0x99999991}, /* 0.86923=f(7.40000)*/ +{ 1, 0,123,__LINE__, 0x3feeb077, 0x9e7e198e, 0x40223333, 0x3333332f}, /* 0.95904=f(9.10000)*/ +{ 1, 0,123,__LINE__, 0x3ff088e7, 0x5c084bbb, 0x40259999, 0x99999995}, /* 1.03342=f(10.8000)*/ +{ 1, 0,123,__LINE__, 0x3ff18cf1, 0x827c3313, 0x4028ffff, 0xfffffffb}, /* 1.09691=f(12.5000)*/ +{ 1, 0,123,__LINE__, 0x3ff26fc5, 0xe5ff9d1c, 0x402c6666, 0x66666661}, /* 1.15228=f(14.2000)*/ +{ 1, 0,123,__LINE__, 0x3ff338ec, 0x2e1ab0cd, 0x402fcccc, 0xccccccc7}, /* 1.20139=f(15.9000)*/ +{ 1, 0,123,__LINE__, 0x3ff3ed9e, 0xb3ba5437, 0x40319999, 0x99999997}, /* 1.24551=f(17.6000)*/ +{ 1, 0,123,__LINE__, 0x3ff491a4, 0x858fbbe4, 0x40334ccc, 0xccccccca}, /* 1.28555=f(19.3000)*/ +{ 1, 0,123,__LINE__, 0x3ff527cf, 0x6a0bfa62, 0x4034ffff, 0xfffffffd}, /* 1.32221=f(21.0000)*/ +{ 1, 0,123,__LINE__, 0x3ff5b248, 0x2f4b06cc, 0x4036b333, 0x33333330}, /* 1.35602=f(22.7000)*/ +{ 1, 0,123,__LINE__, 0x3ff632bf, 0xa9e6bddc, 0x40386666, 0x66666663}, /* 1.38739=f(24.4000)*/ +{ 1, 0,123,__LINE__, 0x3ff6aa8f, 0x3c881cdc, 0x403a1999, 0x99999996}, /* 1.41664=f(26.1000)*/ +{ 1, 0,123,__LINE__, 0x3ff71ace, 0xb43ddb6b, 0x403bcccc, 0xccccccc9}, /* 1.44404=f(27.8000)*/ +{ 1, 0,123,__LINE__, 0x3ff78464, 0x17051b9e, 0x403d7fff, 0xfffffffc}, /* 1.46982=f(29.5000)*/ +0,}; +test_log10f(m) {run_vector_1(m,log10f_vec,(char *)(log10f),"log10f","ff"); } diff --git a/newlib/libm/test/log1p_vec.c b/newlib/libm/test/log1p_vec.c new file mode 100644 index 000000000..9966b8637 --- /dev/null +++ b/newlib/libm/test/log1p_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type log1p_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfffffffe, 0xbfefffff, 0xfffffffe}, /* -0.01000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfefae14, 0x7ae147ac, 0xbfefae14, 0x7ae147ac}, /* -0.99000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfef5c28, 0xf5c28f5a, 0xbfef5c28, 0xf5c28f5a}, /* -0.98000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfef0a3d, 0x70a3d708, 0xbfef0a3d, 0x70a3d708}, /* -0.97000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfeeb851, 0xeb851eb6, 0xbfeeb851, 0xeb851eb6}, /* -0.96000=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfee6666, 0x66666664, 0xbfee6666, 0x66666664}, /* -0.95000=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfee147a, 0xe147ae12, 0xbfee147a, 0xe147ae12}, /* -0.94000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfedc28f, 0x5c28f5c0, 0xbfedc28f, 0x5c28f5c0}, /* -0.93000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfed70a3, 0xd70a3d6e, 0xbfed70a3, 0xd70a3d6e}, /* -0.92000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfed1eb8, 0x51eb851c, 0xbfed1eb8, 0x51eb851c}, /* -0.91000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfeccccc, 0xccccccca, 0xbfeccccc, 0xccccccca}, /* -0.90000=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfec7ae1, 0x47ae1478, 0xbfec7ae1, 0x47ae1478}, /* -0.89000=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfec28f5, 0xc28f5c26, 0xbfec28f5, 0xc28f5c26}, /* -0.88000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfebd70a, 0x3d70a3d4, 0xbfebd70a, 0x3d70a3d4}, /* -0.87000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfeb851e, 0xb851eb82, 0xbfeb851e, 0xb851eb82}, /* -0.86000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfeb3333, 0x33333330, 0xbfeb3333, 0x33333330}, /* -0.85000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfeae147, 0xae147ade, 0xbfeae147, 0xae147ade}, /* -0.84000=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfea8f5c, 0x28f5c28c, 0xbfea8f5c, 0x28f5c28c}, /* -0.83000=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfea3d70, 0xa3d70a3a, 0xbfea3d70, 0xa3d70a3a}, /* -0.82000=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe9eb85, 0x1eb851e8, 0xbfe9eb85, 0x1eb851e8}, /* -0.81000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfe99999, 0x99999996, 0xbfe99999, 0x99999996}, /* -0.80000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe947ae, 0x147ae144, 0xbfe947ae, 0x147ae144}, /* -0.79000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe8f5c2, 0x8f5c28f2, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.78000=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe8a3d7, 0x0a3d70a0, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.77000=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfe851eb, 0x851eb84e, 0xbfe851eb, 0x851eb84e}, /* -0.76000=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe7ffff, 0xfffffffc, 0xbfe7ffff, 0xfffffffc}, /* -0.75000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe7ae14, 0x7ae147aa, 0xbfe7ae14, 0x7ae147aa}, /* -0.74000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe75c28, 0xf5c28f58, 0xbfe75c28, 0xf5c28f58}, /* -0.73000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe70a3d, 0x70a3d706, 0xbfe70a3d, 0x70a3d706}, /* -0.72000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe6b851, 0xeb851eb4, 0xbfe6b851, 0xeb851eb4}, /* -0.71000=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe66666, 0x66666662, 0xbfe66666, 0x66666662}, /* -0.70000=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe6147a, 0xe147ae10, 0xbfe6147a, 0xe147ae10}, /* -0.69000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe5c28f, 0x5c28f5be, 0xbfe5c28f, 0x5c28f5be}, /* -0.68000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe570a3, 0xd70a3d6c, 0xbfe570a3, 0xd70a3d6c}, /* -0.67000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe51eb8, 0x51eb851a, 0xbfe51eb8, 0x51eb851a}, /* -0.66000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe4cccc, 0xccccccc8, 0xbfe4cccc, 0xccccccc8}, /* -0.65000=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe47ae1, 0x47ae1476, 0xbfe47ae1, 0x47ae1476}, /* -0.64000=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe428f5, 0xc28f5c24, 0xbfe428f5, 0xc28f5c24}, /* -0.63000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe3d70a, 0x3d70a3d2, 0xbfe3d70a, 0x3d70a3d2}, /* -0.62000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe3851e, 0xb851eb80, 0xbfe3851e, 0xb851eb80}, /* -0.61000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe33333, 0x3333332e, 0xbfe33333, 0x3333332e}, /* -0.60000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe2e147, 0xae147adc, 0xbfe2e147, 0xae147adc}, /* -0.59000=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe28f5c, 0x28f5c28a, 0xbfe28f5c, 0x28f5c28a}, /* -0.58000=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe23d70, 0xa3d70a38, 0xbfe23d70, 0xa3d70a38}, /* -0.57000=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe1eb85, 0x1eb851e6, 0xbfe1eb85, 0x1eb851e6}, /* -0.56000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe19999, 0x99999994, 0xbfe19999, 0x99999994}, /* -0.55000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe147ae, 0x147ae142, 0xbfe147ae, 0x147ae142}, /* -0.54000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe0f5c2, 0x8f5c28f0, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.53000=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe0a3d7, 0x0a3d709e, 0xbfe0a3d7, 0x0a3d709e}, /* -0.52000=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe051eb, 0x851eb84c, 0xbfe051eb, 0x851eb84c}, /* -0.51000=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfdfffff, 0xfffffff4, 0xbfdfffff, 0xfffffff4}, /* -0.50000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfdf5c28, 0xf5c28f50, 0xbfdf5c28, 0xf5c28f50}, /* -0.49000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdeb851, 0xeb851eac, 0xbfdeb851, 0xeb851eac}, /* -0.48000=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfde147a, 0xe147ae08, 0xbfde147a, 0xe147ae08}, /* -0.47000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdd70a3, 0xd70a3d64, 0xbfdd70a3, 0xd70a3d64}, /* -0.46000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdccccc, 0xccccccc0, 0xbfdccccc, 0xccccccc0}, /* -0.45000=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdc28f5, 0xc28f5c1c, 0xbfdc28f5, 0xc28f5c1c}, /* -0.44000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdb851e, 0xb851eb78, 0xbfdb851e, 0xb851eb78}, /* -0.43000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdae147, 0xae147ad4, 0xbfdae147, 0xae147ad4}, /* -0.42000=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfda3d70, 0xa3d70a30, 0xbfda3d70, 0xa3d70a30}, /* -0.41000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd99999, 0x9999998c, 0xbfd99999, 0x9999998c}, /* -0.40000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd8f5c2, 0x8f5c28e8, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.39000=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd851eb, 0x851eb844, 0xbfd851eb, 0x851eb844}, /* -0.38000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd7ae14, 0x7ae147a0, 0xbfd7ae14, 0x7ae147a0}, /* -0.37000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd70a3d, 0x70a3d6fc, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd66666, 0x66666658, 0xbfd66666, 0x66666658}, /* -0.35000=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd5c28f, 0x5c28f5b4, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd51eb8, 0x51eb8510, 0xbfd51eb8, 0x51eb8510}, /* -0.33000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd47ae1, 0x47ae146c, 0xbfd47ae1, 0x47ae146c}, /* -0.32000=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd3d70a, 0x3d70a3c8, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd33333, 0x33333324, 0xbfd33333, 0x33333324}, /* -0.30000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd28f5c, 0x28f5c280, 0xbfd28f5c, 0x28f5c280}, /* -0.29000=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd1eb85, 0x1eb851dc, 0xbfd1eb85, 0x1eb851dc}, /* -0.28000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd147ae, 0x147ae138, 0xbfd147ae, 0x147ae138}, /* -0.27000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd0a3d7, 0x0a3d7094, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26000=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfcfffff, 0xffffffe0, 0xbfcfffff, 0xffffffe0}, /* -0.25000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfceb851, 0xeb851e98, 0xbfceb851, 0xeb851e98}, /* -0.24000=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcd70a3, 0xd70a3d50, 0xbfcd70a3, 0xd70a3d50}, /* -0.23000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcc28f5, 0xc28f5c08, 0xbfcc28f5, 0xc28f5c08}, /* -0.22000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcae147, 0xae147ac0, 0xbfcae147, 0xae147ac0}, /* -0.21000=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc99999, 0x99999978, 0xbfc99999, 0x99999978}, /* -0.20000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc851eb, 0x851eb830, 0xbfc851eb, 0x851eb830}, /* -0.19000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc70a3d, 0x70a3d6e8, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5c28f, 0x5c28f5a0, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc47ae1, 0x47ae1458, 0xbfc47ae1, 0x47ae1458}, /* -0.16000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc33333, 0x33333310, 0xbfc33333, 0x33333310}, /* -0.15000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1eb85, 0x1eb851c8, 0xbfc1eb85, 0x1eb851c8}, /* -0.14000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0a3d7, 0x0a3d7080, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbeb851, 0xeb851e71, 0xbfbeb851, 0xeb851e71}, /* -0.12000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc28f5, 0xc28f5be2, 0xbfbc28f5, 0xc28f5be2}, /* -0.11000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb99999, 0x99999953, 0xbfb99999, 0x99999953}, /* -0.00100=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb70a3d, 0x70a3d6c4, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb47ae1, 0x47ae1435, 0xbfb47ae1, 0x47ae1435}, /* -0.08000=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1eb85, 0x1eb851a6, 0xbfb1eb85, 0x1eb851a6}, /* -0.07000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeb851, 0xeb851e2d, 0xbfaeb851, 0xeb851e2d}, /* -0.06000=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99999, 0x9999990e, 0xbfa99999, 0x9999990e}, /* -0.05000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47ae1, 0x47ae13ef, 0xbfa47ae1, 0x47ae13ef}, /* -0.04000=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb851, 0xeb851da0, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947ae1, 0x47ae1362, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847ae1, 0x47ae1249, 0xbf847ae1, 0x47ae1249}, /* -0.00010=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd18fff, 0xfffffffe, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f8460d6, 0xccca38a3, 0x3f847ae1, 0x47ae16ad}, /* 0.00995=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f944723, 0xd272a905, 0x3f947ae1, 0x47ae1594}, /* 0.01980=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9e44a9, 0xa3bed775, 0x3f9eb851, 0xeb851fd2}, /* 0.02955=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa414bc, 0xc0a366e0, 0x3fa47ae1, 0x47ae1508}, /* 0.03922=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa8fb06, 0x3ef2c870, 0x3fa99999, 0x99999a27}, /* 0.04879=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3fadd56c, 0x1d883f65, 0x3faeb851, 0xeb851f46}, /* 0.05826=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb15213, 0xc27c91be, 0x3fb1eb85, 0x1eb85232}, /* 0.06765=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb3b3b8, 0x02beebd0, 0x3fb47ae1, 0x47ae14c1}, /* 0.07696=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb60fbd, 0xd2fffc71, 0x3fb70a3d, 0x70a3d750}, /* 0.08617=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb8663f, 0x793c4706, 0x3fb99999, 0x999999df}, /* 0.09531=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbab756, 0x84d3e32e, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10436=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbd031b, 0xd5179e39, 0x3fbeb851, 0xeb851efd}, /* 0.11332=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fbf49a7, 0x9f8b91ca, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12221=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc0c588, 0xbaf19047, 0x3fc1eb85, 0x1eb8520e}, /* 0.13102=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc1e3b8, 0x25dd060a, 0x3fc33333, 0x33333356}, /* 0.13976=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc2ff6d, 0x3e070ed3, 0x3fc47ae1, 0x47ae149e}, /* 0.14842=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc418b2, 0xe73e5327, 0x3fc5c28f, 0x5c28f5e6}, /* 0.15700=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc52f93, 0xbe237442, 0x3fc70a3d, 0x70a3d72e}, /* 0.16551=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc6441a, 0x1a9027c6, 0x3fc851eb, 0x851eb876}, /* 0.17395=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc75650, 0x11e49695, 0x3fc99999, 0x999999be}, /* 0.18232=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fc8663f, 0x793c46e5, 0x3fcae147, 0xae147b06}, /* 0.19062=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fc973f1, 0xe78bc6c7, 0x3fcc28f5, 0xc28f5c4e}, /* 0.19885=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fca7f70, 0xb7a83a9e, 0x3fcd70a3, 0xd70a3d96}, /* 0.20701=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fcb88c5, 0x0a39e287, 0x3fceb851, 0xeb851ede}, /* 0.21511=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fcc8ff7, 0xc79a9a40, 0x3fd00000, 0x00000013}, /* 0.22314=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fcd9511, 0xa1a1488f, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.23111=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fce981b, 0x155b25b1, 0x3fd147ae, 0x147ae15b}, /* 0.23901=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fcf991c, 0x6cb3b398, 0x3fd1eb85, 0x1eb851ff}, /* 0.24686=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd04c0e, 0xe0061b6a, 0x3fd28f5c, 0x28f5c2a3}, /* 0.25464=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd0ca93, 0x7be1b9eb, 0x3fd33333, 0x33333347}, /* 0.26236=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd1481f, 0xe6d734de, 0x3fd3d70a, 0x3d70a3eb}, /* 0.27002=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd1c4b7, 0xe7415cfc, 0x3fd47ae1, 0x47ae148f}, /* 0.27763=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd2405f, 0x2d99b178, 0x3fd51eb8, 0x51eb8533}, /* 0.28517=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd2bb19, 0x5520356c, 0x3fd5c28f, 0x5c28f5d7}, /* 0.29266=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd334e9, 0xe47d0804, 0x3fd66666, 0x6666667b}, /* 0.30010=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd3add4, 0x4e5c0621, 0x3fd70a3d, 0x70a3d71f}, /* 0.30748=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd425db, 0xf202b884, 0x3fd7ae14, 0x7ae147c3}, /* 0.31481=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd49d04, 0x1be0ce40, 0x3fd851eb, 0x851eb867}, /* 0.32208=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd51350, 0x061b5fdc, 0x3fd8f5c2, 0x8f5c290b}, /* 0.32930=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd588c2, 0xd913349f, 0x3fd99999, 0x999999af}, /* 0.33647=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fd5fd5f, 0xabe64094, 0x3fda3d70, 0xa3d70a53}, /* 0.34358=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fd67129, 0x84ec8f25, 0x3fdae147, 0xae147af7}, /* 0.35065=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fd6e423, 0x5a30cb9d, 0x3fdb851e, 0xb851eb9b}, /* 0.35767=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fd75650, 0x11e49686, 0x3fdc28f5, 0xc28f5c3f}, /* 0.36464=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fd7c7b2, 0x82d0d47b, 0x3fdccccc, 0xcccccce3}, /* 0.37156=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fd8384d, 0x74c220f9, 0x3fdd70a3, 0xd70a3d87}, /* 0.37843=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fd8a823, 0xa0f18d9c, 0x3fde147a, 0xe147ae2b}, /* 0.38526=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fd91737, 0xb269d45e, 0x3fdeb851, 0xeb851ecf}, /* 0.39204=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fd9858c, 0x46692186, 0x3fdf5c28, 0xf5c28f73}, /* 0.39877=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fd9f323, 0xecbf985b, 0x3fe00000, 0x0000000b}, /* 0.40546=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fda6001, 0x282ab3e7, 0x3fe051eb, 0x851eb85d}, /* 0.41210=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fdacc26, 0x6eada3b5, 0x3fe0a3d7, 0x0a3d70af}, /* 0.41871=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fdb3796, 0x29e6c2da, 0x3fe0f5c2, 0x8f5c2901}, /* 0.42526=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fdba252, 0xb7624650, 0x3fe147ae, 0x147ae153}, /* 0.43178=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fdc0c5e, 0x68ea3e54, 0x3fe19999, 0x999999a5}, /* 0.43825=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fdc75bb, 0x84d40526, 0x3fe1eb85, 0x1eb851f7}, /* 0.44468=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fdcde6c, 0x464b347d, 0x3fe23d70, 0xa3d70a49}, /* 0.45107=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fdd4672, 0xdd9a39c5, 0x3fe28f5c, 0x28f5c29b}, /* 0.45742=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fddadd1, 0x7070a036, 0x3fe2e147, 0xae147aed}, /* 0.46373=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fde148a, 0x1a2726dc, 0x3fe33333, 0x3333333f}, /* 0.47000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fde7a9e, 0xec01b794, 0x3fe3851e, 0xb851eb91}, /* 0.47623=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fdee011, 0xed6f533e, 0x3fe3d70a, 0x3d70a3e3}, /* 0.48242=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fdf44e5, 0x1c480666, 0x3fe428f5, 0xc28f5c35}, /* 0.48858=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fdfa91a, 0x6d08f8e1, 0x3fe47ae1, 0x47ae1487}, /* 0.49469=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe00659, 0xe5875506, 0x3fe4cccc, 0xccccccd9}, /* 0.50077=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe037d9, 0x8c66b558, 0x3fe51eb8, 0x51eb852b}, /* 0.50681=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe0690d, 0x18041250, 0x3fe570a3, 0xd70a3d7d}, /* 0.51282=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe099f5, 0x7102bfed, 0x3fe5c28f, 0x5c28f5cf}, /* 0.51879=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe0ca93, 0x7be1b9e3, 0x3fe6147a, 0xe147ae21}, /* 0.52472=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe0fae8, 0x1914a998, 0x3fe66666, 0x66666673}, /* 0.53062=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe12af4, 0x251c3038, 0x3fe6b851, 0xeb851ec5}, /* 0.53649=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe15ab8, 0x789d7b7e, 0x3fe70a3d, 0x70a3d717}, /* 0.54232=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe18a35, 0xe8792b90, 0x3fe75c28, 0xf5c28f69}, /* 0.54812=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe1b96d, 0x45e18fdb, 0x3fe7ae14, 0x7ae147bb}, /* 0.55388=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe1e85f, 0x5e7040d8, 0x3fe80000, 0x0000000d}, /* 0.55961=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe2170c, 0xfc3b1c47, 0x3fe851eb, 0x851eb85f}, /* 0.56531=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe24576, 0xe5e8a936, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.57097=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe2739d, 0xdec3e8fc, 0x3fe8f5c2, 0x8f5c2903}, /* 0.57661=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe2a182, 0xa6cf9a1c, 0x3fe947ae, 0x147ae155}, /* 0.58221=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe2cf25, 0xfad8f1cb, 0x3fe99999, 0x999999a7}, /* 0.58778=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe2fc88, 0x9489d0b0, 0x3fe9eb85, 0x1eb851f9}, /* 0.59332=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe329ab, 0x2a7a773d, 0x3fea3d70, 0xa3d70a4b}, /* 0.59883=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe3568e, 0x7042bdd8, 0x3fea8f5c, 0x28f5c29d}, /* 0.60431=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe38333, 0x168ad4e9, 0x3feae147, 0xae147aef}, /* 0.60976=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe3af99, 0xcb1b90b7, 0x3feb3333, 0x33333341}, /* 0.61518=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe3dbc3, 0x38ee44c8, 0x3feb851e, 0xb851eb93}, /* 0.62057=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe407b0, 0x083c3272, 0x3febd70a, 0x3d70a3e5}, /* 0.62593=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe43360, 0xde8d8e13, 0x3fec28f5, 0xc28f5c37}, /* 0.63127=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe45ed6, 0x5ec81e4a, 0x3fec7ae1, 0x47ae1489}, /* 0.63657=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe48a11, 0x293d7863, 0x3feccccc, 0xccccccdb}, /* 0.64185=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe4b511, 0xdbb8dd2b, 0x3fed1eb8, 0x51eb852d}, /* 0.64710=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe4dfd9, 0x118cb90c, 0x3fed70a3, 0xd70a3d7f}, /* 0.65232=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe50a67, 0x639fca6b, 0x3fedc28f, 0x5c28f5d1}, /* 0.65752=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fe534bd, 0x6879f10b, 0x3fee147a, 0xe147ae23}, /* 0.66268=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fe55edb, 0xb450a91b, 0x3fee6666, 0x66666675}, /* 0.66782=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fe588c2, 0xd9133497, 0x3feeb851, 0xeb851ec7}, /* 0.67294=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fe5b273, 0x66767564, 0x3fef0a3d, 0x70a3d719}, /* 0.67803=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fe5dbed, 0xea007aa4, 0x3fef5c28, 0xf5c28f6b}, /* 0.68309=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fe60532, 0xef13c38d, 0x3fefae14, 0x7ae147bd}, /* 0.68813=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fe62e42, 0xfefa39f6, 0x3ff00000, 0x00000007}, /* 0.69314=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3fe6571e, 0xa0efe6db, 0x3ff028f5, 0xc28f5c30}, /* 0.69813=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fe67fc6, 0x5a2d62d0, 0x3ff051eb, 0x851eb859}, /* 0.70309=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3fe6a83a, 0xadf20485, 0x3ff07ae1, 0x47ae1482}, /* 0.70803=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fe6d07c, 0x1d8dcf36, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.71294=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fe6f88b, 0x286b22f8, 0x3ff0cccc, 0xccccccd4}, /* 0.71783=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fe72068, 0x4c1830a9, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.72270=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fe74814, 0x04503345, 0x3ff11eb8, 0x51eb8526}, /* 0.72754=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fe76f8e, 0xcb04705c, 0x3ff147ae, 0x147ae14f}, /* 0.73236=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fe796d9, 0x1865013c, 0x3ff170a3, 0xd70a3d78}, /* 0.73716=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fe7bdf3, 0x62e96675, 0x3ff19999, 0x999999a1}, /* 0.74193=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fe7e4de, 0x1f58e732, 0x3ff1c28f, 0x5c28f5ca}, /* 0.74668=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fe80b99, 0xc0d2bde4, 0x3ff1eb85, 0x1eb851f3}, /* 0.75141=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fe83226, 0xb8d613b8, 0x3ff2147a, 0xe147ae1c}, /* 0.75612=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fe85885, 0x7749cc26, 0x3ff23d70, 0xa3d70a45}, /* 0.76080=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fe87eb6, 0x6a842206, 0x3ff26666, 0x6666666e}, /* 0.76546=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fe8a4b9, 0xff521768, 0x3ff28f5c, 0x28f5c297}, /* 0.77010=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fe8ca90, 0xa0feb971, 0x3ff2b851, 0xeb851ec0}, /* 0.77472=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fe8f03a, 0xb95a397c, 0x3ff2e147, 0xae147ae9}, /* 0.77932=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fe915b8, 0xb0c0dca2, 0x3ff30a3d, 0x70a3d712}, /* 0.78390=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3fee3703, 0xdb0ab11a, 0x3ff921fb, 0x54442d18}, /* 0.94421=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ff6bcbe, 0xd09f00af, 0x400921fb, 0x54442d18}, /* 1.42108=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3ffbe1d7, 0xac0bdb86, 0x4012d97c, 0x7f3321d2}, /* 1.74263=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fde148a, 0x1a272674, 0x3fe33333, 0x333332ec}, /* 0.47000=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff31a4e, 0x7240c76c, 0x40026666, 0x66666654}, /* 1.19392=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3ff9c041, 0xf7ed8d2c, 0x400fffff, 0xffffffee}, /* 1.60943=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3ffe6f08, 0x4d359a85, 0x4016cccc, 0xccccccc4}, /* 1.90210=f(5.70000)*/ +{64, 0,123,__LINE__, 0x4001069e, 0x58377691, 0x401d9999, 0x99999991}, /* 2.12823=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40028012, 0x92821f4a, 0x40223333, 0x3333332f}, /* 2.31253=f(9.10000)*/ +{64, 0,123,__LINE__, 0x4003beaa, 0xf7978c56, 0x40259999, 0x99999995}, /* 2.46810=f(10.8000)*/ +{64, 0,123,__LINE__, 0x4004d24e, 0xf844f613, 0x4028ffff, 0xfffffffb}, /* 2.60269=f(12.5000)*/ +{64, 0,123,__LINE__, 0x4005c536, 0x898b0989, 0x402c6666, 0x66666661}, /* 2.72129=f(14.2000)*/ +{64, 0,123,__LINE__, 0x40069e56, 0x9aadc38b, 0x402fcccc, 0xccccccc7}, /* 2.82731=f(15.9000)*/ +{64, 0,123,__LINE__, 0x400762a2, 0x89f0e644, 0x40319999, 0x99999997}, /* 2.92316=f(17.6000)*/ +{64, 0,123,__LINE__, 0x400815c0, 0x6731d634, 0x40334ccc, 0xccccccca}, /* 3.01062=f(19.3000)*/ +{64, 0,123,__LINE__, 0x4008ba74, 0x773dc5c6, 0x4034ffff, 0xfffffffd}, /* 3.09104=f(21.0000)*/ +{64, 0,123,__LINE__, 0x400952e4, 0x95008f55, 0x4036b333, 0x33333330}, /* 3.16547=f(22.7000)*/ +{64, 0,123,__LINE__, 0x4009e0c4, 0x2cc995e9, 0x40386666, 0x66666663}, /* 3.23474=f(24.4000)*/ +{64, 0,123,__LINE__, 0x400a6571, 0xf06a8af5, 0x403a1999, 0x99999996}, /* 3.29953=f(26.1000)*/ +{64, 0,123,__LINE__, 0x400ae20c, 0x7db0765f, 0x403bcccc, 0xccccccc9}, /* 3.36037=f(27.8000)*/ +{64, 0,123,__LINE__, 0x400b5781, 0x1666499d, 0x403d7fff, 0xfffffffc}, /* 3.41772=f(29.5000)*/ +0,}; +test_log1p(m) {run_vector_1(m,log1p_vec,(char *)(log1p),"log1p","dd"); } diff --git a/newlib/libm/test/log1pf_vec.c b/newlib/libm/test/log1pf_vec.c new file mode 100644 index 000000000..7169e0ac5 --- /dev/null +++ b/newlib/libm/test/log1pf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type log1pf_vec[] = { +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 0,15, 39,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfefae14, 0x80000000, 0xbfefae14, 0x7ae147ac}, /* -0.99000=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfef5c29, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* -0.98000=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfef0a3d, 0x80000000, 0xbfef0a3d, 0x70a3d708}, /* -0.97000=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfeeb851, 0xe0000000, 0xbfeeb851, 0xeb851eb6}, /* -0.95999=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfee6666, 0x60000000, 0xbfee6666, 0x66666664}, /* -0.94999=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfee147a, 0xe0000000, 0xbfee147a, 0xe147ae12}, /* -0.94000=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfedc28f, 0x60000000, 0xbfedc28f, 0x5c28f5c0}, /* -0.93000=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfed70a3, 0xe0000000, 0xbfed70a3, 0xd70a3d6e}, /* -0.92000=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfed1eb8, 0x60000000, 0xbfed1eb8, 0x51eb851c}, /* -0.91000=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfeccccc, 0xc0000000, 0xbfeccccc, 0xccccccca}, /* -0.89999=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfec7ae1, 0x40000000, 0xbfec7ae1, 0x47ae1478}, /* -0.88999=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfec28f5, 0xc0000000, 0xbfec28f5, 0xc28f5c26}, /* -0.88000=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfebd70a, 0x40000000, 0xbfebd70a, 0x3d70a3d4}, /* -0.87000=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfeb851e, 0xc0000000, 0xbfeb851e, 0xb851eb82}, /* -0.86000=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfeb3333, 0x40000000, 0xbfeb3333, 0x33333330}, /* -0.85000=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfeae147, 0xa0000000, 0xbfeae147, 0xae147ade}, /* -0.83999=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfea8f5c, 0x20000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.82999=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfea3d70, 0xa0000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.81999=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe9eb85, 0x20000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.81000=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfe99999, 0xa0000000, 0xbfe99999, 0x99999996}, /* -0.80000=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe947ae, 0x20000000, 0xbfe947ae, 0x147ae144}, /* -0.79000=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe8f5c2, 0x80000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.77999=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe8a3d7, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.76999=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfe851eb, 0x80000000, 0xbfe851eb, 0x851eb84e}, /* -0.75999=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe80000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* -0.75000=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe7ae14, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.74000=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe75c29, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* -0.73000=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe70a3d, 0x80000000, 0xbfe70a3d, 0x70a3d706}, /* -0.72000=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe6b851, 0xe0000000, 0xbfe6b851, 0xeb851eb4}, /* -0.70999=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe66666, 0x60000000, 0xbfe66666, 0x66666662}, /* -0.69999=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe6147a, 0xe0000000, 0xbfe6147a, 0xe147ae10}, /* -0.69000=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe5c28f, 0x60000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.68000=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe570a3, 0xe0000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.67000=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe51eb8, 0x60000000, 0xbfe51eb8, 0x51eb851a}, /* -0.66000=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe4cccc, 0xc0000000, 0xbfe4cccc, 0xccccccc8}, /* -0.64999=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe47ae1, 0x40000000, 0xbfe47ae1, 0x47ae1476}, /* -0.63999=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe428f5, 0xc0000000, 0xbfe428f5, 0xc28f5c24}, /* -0.63000=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe3d70a, 0x40000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.62000=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe3851e, 0xc0000000, 0xbfe3851e, 0xb851eb80}, /* -0.61000=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe33333, 0x40000000, 0xbfe33333, 0x3333332e}, /* -0.60000=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe2e147, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* -0.58999=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe28f5c, 0x20000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.57999=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe23d70, 0xa0000000, 0xbfe23d70, 0xa3d70a38}, /* -0.56999=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe1eb85, 0x20000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.56000=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe19999, 0xa0000000, 0xbfe19999, 0x99999994}, /* -0.55000=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe147ae, 0x20000000, 0xbfe147ae, 0x147ae142}, /* -0.54000=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe0f5c2, 0x80000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.52999=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe0a3d7, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.51999=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe051eb, 0x80000000, 0xbfe051eb, 0x851eb84c}, /* -0.50999=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfe00000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* -0.50000=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfdf5c29, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.49000=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdeb851, 0xe0000000, 0xbfdeb851, 0xeb851eac}, /* -0.47999=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfde147a, 0xe0000000, 0xbfde147a, 0xe147ae08}, /* -0.47000=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdd70a3, 0xe0000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.46000=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdccccc, 0xc0000000, 0xbfdccccc, 0xccccccc0}, /* -0.44999=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdc28f5, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.44000=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdb851e, 0xc0000000, 0xbfdb851e, 0xb851eb78}, /* -0.43000=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdae147, 0xa0000000, 0xbfdae147, 0xae147ad4}, /* -0.41999=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfda3d70, 0xa0000000, 0xbfda3d70, 0xa3d70a30}, /* -0.41000=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd99999, 0xa0000000, 0xbfd99999, 0x9999998c}, /* -0.40000=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd8f5c2, 0x80000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.38999=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd851eb, 0x80000000, 0xbfd851eb, 0x851eb844}, /* -0.38000=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd7ae14, 0x80000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.37000=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd70a3d, 0x80000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36000=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd66666, 0x60000000, 0xbfd66666, 0x66666658}, /* -0.34999=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd5c28f, 0x60000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34000=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd51eb8, 0x60000000, 0xbfd51eb8, 0x51eb8510}, /* -0.33000=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd47ae1, 0x40000000, 0xbfd47ae1, 0x47ae146c}, /* -0.31999=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd3d70a, 0x40000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31000=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd33333, 0x40000000, 0xbfd33333, 0x33333324}, /* -0.30000=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd28f5c, 0x20000000, 0xbfd28f5c, 0x28f5c280}, /* -0.28999=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd1eb85, 0x20000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.28000=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd147ae, 0x20000000, 0xbfd147ae, 0x147ae138}, /* -0.27000=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd0a3d7, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25999=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfd00000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* -0.25000=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfceb851, 0xe0000000, 0xbfceb851, 0xeb851e98}, /* -0.23999=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcd70a3, 0xe0000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.23000=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcc28f5, 0xc0000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.22000=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcae147, 0xa0000000, 0xbfcae147, 0xae147ac0}, /* -0.20999=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc99999, 0xa0000000, 0xbfc99999, 0x99999978}, /* -0.20000=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc851eb, 0x80000000, 0xbfc851eb, 0x851eb830}, /* -0.19000=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc70a3d, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18000=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5c28f, 0x60000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17000=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc47ae1, 0x40000000, 0xbfc47ae1, 0x47ae1458}, /* -0.16000=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc33333, 0x40000000, 0xbfc33333, 0x33333310}, /* -0.15000=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1eb85, 0x20000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.14000=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0a3d7, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13000=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbeb851, 0xe0000000, 0xbfbeb851, 0xeb851e71}, /* -0.12000=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc28f5, 0xc0000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.11000=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb99999, 0xa0000000, 0xbfb99999, 0x99999953}, /* -0.10000=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb70a3d, 0x80000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09000=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb47ae1, 0x40000000, 0xbfb47ae1, 0x47ae1435}, /* -0.07999=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1eb85, 0x20000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.07000=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeb851, 0xe0000000, 0xbfaeb851, 0xeb851e2d}, /* -0.05999=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99999, 0xa0000000, 0xbfa99999, 0x9999990e}, /* -0.05000=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47ae1, 0x40000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.03999=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb851, 0xe0000000, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947ae1, 0x40000000, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847ae1, 0x40000000, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{19, 0,123,__LINE__, 0x3f8460d6, 0xc0000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00995=f(0.01000)*/ +{18, 0,123,__LINE__, 0x3f944723, 0xc0000000, 0x3f947ae1, 0x47ae1594}, /* 0.01980=f(0.02000)*/ +{16, 0,123,__LINE__, 0x3f9e44a9, 0xa0000000, 0x3f9eb851, 0xeb851fd2}, /* 0.02955=f(0.03000)*/ +{17, 0,123,__LINE__, 0x3fa414bc, 0xc0000000, 0x3fa47ae1, 0x47ae1508}, /* 0.03922=f(0.04000)*/ +{15, 0,123,__LINE__, 0x3fa8fb06, 0x40000000, 0x3fa99999, 0x99999a27}, /* 0.04879=f(0.05000)*/ +{14, 0,123,__LINE__, 0x3fadd56c, 0x20000000, 0x3faeb851, 0xeb851f46}, /* 0.05826=f(0.06000)*/ +{16, 0,123,__LINE__, 0x3fb15213, 0xc0000000, 0x3fb1eb85, 0x1eb85232}, /* 0.06765=f(0.07000)*/ +{13, 0,123,__LINE__, 0x3fb3b3b8, 0x00000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.07696=f(0.08000)*/ +{15, 0,123,__LINE__, 0x3fb60fbd, 0xe0000000, 0x3fb70a3d, 0x70a3d750}, /* 0.08617=f(0.09000)*/ +{15, 0,123,__LINE__, 0x3fb8663f, 0x80000000, 0x3fb99999, 0x999999df}, /* 0.09531=f(0.10000)*/ +{13, 0,123,__LINE__, 0x3fbab756, 0x80000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10436=f(0.11000)*/ +{14, 0,123,__LINE__, 0x3fbd031b, 0xc0000000, 0x3fbeb851, 0xeb851efd}, /* 0.11332=f(0.12000)*/ +{ 9, 0,123,__LINE__, 0x3fbf49a7, 0x80000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12221=f(0.13000)*/ +{15, 0,123,__LINE__, 0x3fc0c588, 0xc0000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.13102=f(0.14000)*/ +{14, 0,123,__LINE__, 0x3fc1e3b8, 0x40000000, 0x3fc33333, 0x33333356}, /* 0.13976=f(0.15000)*/ +{13, 0,123,__LINE__, 0x3fc2ff6d, 0x40000000, 0x3fc47ae1, 0x47ae149e}, /* 0.14842=f(0.16000)*/ +{15, 0,123,__LINE__, 0x3fc418b2, 0xe0000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.15700=f(0.17000)*/ +{14, 0,123,__LINE__, 0x3fc52f93, 0xc0000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.16551=f(0.18000)*/ +{12, 0,123,__LINE__, 0x3fc6441a, 0x20000000, 0x3fc851eb, 0x851eb876}, /* 0.17395=f(0.19000)*/ +{12, 0,123,__LINE__, 0x3fc75650, 0x20000000, 0x3fc99999, 0x999999be}, /* 0.18232=f(0.20000)*/ +{14, 0,123,__LINE__, 0x3fc8663f, 0x60000000, 0x3fcae147, 0xae147b06}, /* 0.19062=f(0.21000)*/ +{13, 0,123,__LINE__, 0x3fc973f1, 0xe0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.19885=f(0.22000)*/ +{13, 0,123,__LINE__, 0x3fca7f70, 0xc0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.20701=f(0.23000)*/ +{13, 0,123,__LINE__, 0x3fcb88c5, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 0.21511=f(0.24000)*/ +{14, 0,123,__LINE__, 0x3fcc8ff7, 0xc0000000, 0x3fd00000, 0x00000013}, /* 0.22314=f(0.25000)*/ +{11, 0,123,__LINE__, 0x3fcd9511, 0x80000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.23111=f(0.26000)*/ +{11, 0,123,__LINE__, 0x3fce981b, 0x20000000, 0x3fd147ae, 0x147ae15b}, /* 0.23901=f(0.27000)*/ +{11, 0,123,__LINE__, 0x3fcf991c, 0x60000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.24686=f(0.28000)*/ +{14, 0,123,__LINE__, 0x3fd04c0e, 0xe0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.25464=f(0.29000)*/ +{14, 0,123,__LINE__, 0x3fd0ca93, 0x80000000, 0x3fd33333, 0x33333347}, /* 0.26236=f(0.30000)*/ +{14, 0,123,__LINE__, 0x3fd1481f, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.27002=f(0.31000)*/ +{13, 0,123,__LINE__, 0x3fd1c4b7, 0xe0000000, 0x3fd47ae1, 0x47ae148f}, /* 0.27763=f(0.32000)*/ +{13, 0,123,__LINE__, 0x3fd2405f, 0x40000000, 0x3fd51eb8, 0x51eb8533}, /* 0.28517=f(0.33000)*/ +{13, 0,123,__LINE__, 0x3fd2bb19, 0x60000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.29266=f(0.34000)*/ +{13, 0,123,__LINE__, 0x3fd334e9, 0xe0000000, 0x3fd66666, 0x6666667b}, /* 0.30010=f(0.35000)*/ +{13, 0,123,__LINE__, 0x3fd3add4, 0x60000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.30748=f(0.36000)*/ +{14, 0,123,__LINE__, 0x3fd425dc, 0x00000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.31481=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fd49d04, 0x20000000, 0x3fd851eb, 0x851eb867}, /* 0.32208=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3fd51350, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.32930=f(0.39000)*/ +{12, 0,123,__LINE__, 0x3fd588c2, 0xe0000000, 0x3fd99999, 0x999999af}, /* 0.33647=f(0.40000)*/ +{12, 0,123,__LINE__, 0x3fd5fd5f, 0xa0000000, 0x3fda3d70, 0xa3d70a53}, /* 0.34358=f(0.41000)*/ +{12, 0,123,__LINE__, 0x3fd67129, 0x7dc00000, 0x3fdae147, 0xae147af7}, /* 0.35065=f(0.42000)*/ +{12, 0,123,__LINE__, 0x3fd6e423, 0x5dc00000, 0x3fdb851e, 0xb851eb9b}, /* 0.35767=f(0.43000)*/ +{12, 0,123,__LINE__, 0x3fd75650, 0x1dc00000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.36464=f(0.44000)*/ +{12, 0,123,__LINE__, 0x3fd7c7b2, 0x7dc00000, 0x3fdccccc, 0xcccccce3}, /* 0.37156=f(0.45000)*/ +{13, 0,123,__LINE__, 0x3fd8384d, 0x7dc00000, 0x3fdd70a3, 0xd70a3d87}, /* 0.37843=f(0.46000)*/ +{13, 0,123,__LINE__, 0x3fd8a823, 0x9dc00000, 0x3fde147a, 0xe147ae2b}, /* 0.38526=f(0.47000)*/ +{13, 0,123,__LINE__, 0x3fd91737, 0x9dc00000, 0x3fdeb851, 0xeb851ecf}, /* 0.39204=f(0.48000)*/ +{13, 0,123,__LINE__, 0x3fd9858c, 0x5dc00000, 0x3fdf5c28, 0xf5c28f73}, /* 0.39877=f(0.49000)*/ +{13, 0,123,__LINE__, 0x3fd9f323, 0xddc00000, 0x3fe00000, 0x0000000b}, /* 0.40546=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fda6001, 0x1dc00000, 0x3fe051eb, 0x851eb85d}, /* 0.41210=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fdacc26, 0x5dc00000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.41871=f(0.52000)*/ +{10, 0,123,__LINE__, 0x3fdb3796, 0x1dc00000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.42526=f(0.53000)*/ +{10, 0,123,__LINE__, 0x3fdba252, 0xbdc00000, 0x3fe147ae, 0x147ae153}, /* 0.43178=f(0.54000)*/ +{10, 0,123,__LINE__, 0x3fdc0c5e, 0x7dc00000, 0x3fe19999, 0x999999a5}, /* 0.43825=f(0.55000)*/ +{10, 0,123,__LINE__, 0x3fdc75bb, 0x8dc00000, 0x3fe1eb85, 0x1eb851f7}, /* 0.44468=f(0.56000)*/ +{10, 0,123,__LINE__, 0x3fdcde6c, 0x3dc00000, 0x3fe23d70, 0xa3d70a49}, /* 0.45107=f(0.57000)*/ +{10, 0,123,__LINE__, 0x3fdd4672, 0xcdc00000, 0x3fe28f5c, 0x28f5c29b}, /* 0.45742=f(0.58000)*/ +{10, 0,123,__LINE__, 0x3fddadd1, 0x5dc00000, 0x3fe2e147, 0xae147aed}, /* 0.46373=f(0.59000)*/ +{10, 0,123,__LINE__, 0x3fde148a, 0x2dc00000, 0x3fe33333, 0x3333333f}, /* 0.47000=f(0.60000)*/ +{10, 0,123,__LINE__, 0x3fde7a9e, 0xfdc00000, 0x3fe3851e, 0xb851eb91}, /* 0.47623=f(0.61000)*/ +{10, 0,123,__LINE__, 0x3fdee011, 0xedc00000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.48242=f(0.62000)*/ +{10, 0,123,__LINE__, 0x3fdf44e5, 0x1dc00000, 0x3fe428f5, 0xc28f5c35}, /* 0.48858=f(0.63000)*/ +{10, 0,123,__LINE__, 0x3fdfa91a, 0x5dc00000, 0x3fe47ae1, 0x47ae1487}, /* 0.49469=f(0.64000)*/ +{13, 0,123,__LINE__, 0x3fe00659, 0xdee00000, 0x3fe4cccc, 0xccccccd9}, /* 0.50077=f(0.65000)*/ +{13, 0,123,__LINE__, 0x3fe037d9, 0x96e00000, 0x3fe51eb8, 0x51eb852b}, /* 0.50681=f(0.66000)*/ +{13, 0,123,__LINE__, 0x3fe0690d, 0x1ee00000, 0x3fe570a3, 0xd70a3d7d}, /* 0.51282=f(0.67000)*/ +{13, 0,123,__LINE__, 0x3fe099f5, 0x76e00000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.51879=f(0.68000)*/ +{13, 0,123,__LINE__, 0x3fe0ca93, 0x7ee00000, 0x3fe6147a, 0xe147ae21}, /* 0.52472=f(0.69000)*/ +{13, 0,123,__LINE__, 0x3fe0fae8, 0x16e00000, 0x3fe66666, 0x66666673}, /* 0.53062=f(0.70000)*/ +{13, 0,123,__LINE__, 0x3fe12af4, 0x1ee00000, 0x3fe6b851, 0xeb851ec5}, /* 0.53649=f(0.71000)*/ +{13, 0,123,__LINE__, 0x3fe15ab8, 0x7ee00000, 0x3fe70a3d, 0x70a3d717}, /* 0.54232=f(0.72000)*/ +{13, 0,123,__LINE__, 0x3fe18a35, 0xeee00000, 0x3fe75c28, 0xf5c28f69}, /* 0.54812=f(0.73000)*/ +{13, 0,123,__LINE__, 0x3fe1b96d, 0x46e00000, 0x3fe7ae14, 0x7ae147bb}, /* 0.55388=f(0.74000)*/ +{13, 0,123,__LINE__, 0x3fe1e85f, 0x5ee00000, 0x3fe80000, 0x0000000d}, /* 0.55961=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe2170c, 0xf6e00000, 0x3fe851eb, 0x851eb85f}, /* 0.56531=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe24576, 0xdee00000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.57097=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe2739d, 0xd6e00000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.57661=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe2a182, 0xaee00000, 0x3fe947ae, 0x147ae155}, /* 0.58221=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe2cf25, 0xfee00000, 0x3fe99999, 0x999999a7}, /* 0.58778=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe2fc88, 0x96e00000, 0x3fe9eb85, 0x1eb851f9}, /* 0.59332=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3fe329ab, 0x26e00000, 0x3fea3d70, 0xa3d70a4b}, /* 0.59883=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3fe3568e, 0x6ae00000, 0x3fea8f5c, 0x28f5c29d}, /* 0.60431=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3fe38333, 0x0ee00000, 0x3feae147, 0xae147aef}, /* 0.60976=f(0.84000)*/ +{12, 0,123,__LINE__, 0x3fe3af99, 0xd2e00000, 0x3feb3333, 0x33333341}, /* 0.61518=f(0.85000)*/ +{12, 0,123,__LINE__, 0x3fe3dbc3, 0x3ee00000, 0x3feb851e, 0xb851eb93}, /* 0.62057=f(0.86000)*/ +{12, 0,123,__LINE__, 0x3fe407b0, 0x0ae00000, 0x3febd70a, 0x3d70a3e5}, /* 0.62593=f(0.87000)*/ +{12, 0,123,__LINE__, 0x3fe43360, 0xdce00000, 0x3fec28f5, 0xc28f5c37}, /* 0.63127=f(0.88000)*/ +{12, 0,123,__LINE__, 0x3fe45ed6, 0x5ae00000, 0x3fec7ae1, 0x47ae1489}, /* 0.63657=f(0.89000)*/ +{12, 0,123,__LINE__, 0x3fe48a11, 0x22e00000, 0x3feccccc, 0xccccccdb}, /* 0.64185=f(0.90000)*/ +{12, 0,123,__LINE__, 0x3fe4b511, 0xe2e00000, 0x3fed1eb8, 0x51eb852d}, /* 0.64710=f(0.91000)*/ +{12, 0,123,__LINE__, 0x3fe4dfd9, 0x16e00000, 0x3fed70a3, 0xd70a3d7f}, /* 0.65232=f(0.92000)*/ +{12, 0,123,__LINE__, 0x3fe50a67, 0x64e00000, 0x3fedc28f, 0x5c28f5d1}, /* 0.65752=f(0.93000)*/ +{12, 0,123,__LINE__, 0x3fe534bd, 0x67e00000, 0x3fee147a, 0xe147ae23}, /* 0.66268=f(0.94000)*/ +{12, 0,123,__LINE__, 0x3fe55edb, 0xb0e00000, 0x3fee6666, 0x66666675}, /* 0.66782=f(0.95000)*/ +{12, 0,123,__LINE__, 0x3fe588c2, 0xd2e00000, 0x3feeb851, 0xeb851ec7}, /* 0.67294=f(0.96000)*/ +{12, 0,123,__LINE__, 0x3fe5b273, 0x6e600000, 0x3fef0a3d, 0x70a3d719}, /* 0.67803=f(0.97000)*/ +{12, 0,123,__LINE__, 0x3fe5dbed, 0xef600000, 0x3fef5c28, 0xf5c28f6b}, /* 0.68309=f(0.98000)*/ +{12, 0,123,__LINE__, 0x3fe60532, 0xf1a00000, 0x3fefae14, 0x7ae147bd}, /* 0.68813=f(0.99000)*/ +{12, 0,123,__LINE__, 0x3fe62e42, 0xfefa39ef, 0x3ff00000, 0x00000007}, /* 0.69314=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fe6571e, 0x9e600000, 0x3ff028f5, 0xc28f5c30}, /* 0.69813=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3fe67fc6, 0x54e00000, 0x3ff051eb, 0x851eb859}, /* 0.70309=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fe6a83a, 0xa6600000, 0x3ff07ae1, 0x47ae1482}, /* 0.70803=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fe6d07c, 0x13e00000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.71294=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3fe6f88b, 0x1be00000, 0x3ff0cccc, 0xccccccd4}, /* 0.71783=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3fe72068, 0x3ce00000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.72270=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fe74814, 0x12e00000, 0x3ff11eb8, 0x51eb8526}, /* 0.72754=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fe76f8e, 0xd6e00000, 0x3ff147ae, 0x147ae14f}, /* 0.73236=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fe796d9, 0x20e00000, 0x3ff170a3, 0xd70a3d78}, /* 0.73716=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fe7bdf3, 0x68e00000, 0x3ff19999, 0x999999a1}, /* 0.74193=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3fe7e4de, 0x22e00000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.74668=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3fe80b99, 0xc2e00000, 0x3ff1eb85, 0x1eb851f3}, /* 0.75141=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fe83226, 0xb6e00000, 0x3ff2147a, 0xe147ae1c}, /* 0.75612=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fe85885, 0x72e00000, 0x3ff23d70, 0xa3d70a45}, /* 0.76080=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fe87eb6, 0x62e00000, 0x3ff26666, 0x6666666e}, /* 0.76546=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fe8a4b9, 0xf6e00000, 0x3ff28f5c, 0x28f5c297}, /* 0.77010=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fe8ca90, 0x96e00000, 0x3ff2b851, 0xeb851ec0}, /* 0.77472=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3fe8f03a, 0xaae00000, 0x3ff2e147, 0xae147ae9}, /* 0.77932=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3fe915b8, 0xbee00000, 0x3ff30a3d, 0x70a3d712}, /* 0.78390=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{11, 0,123,__LINE__, 0x3fee3703, 0xdee00000, 0x3ff921fb, 0x54442d18}, /* 0.94421=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3ff6bcbe, 0xd5e00000, 0x400921fb, 0x54442d18}, /* 1.42108=f(3.14159)*/ +{ 1, 0,123,__LINE__, 0x3ffbe1d7, 0xae500000, 0x4012d97c, 0x7f3321d2}, /* 1.74263=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 0,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{10, 0,123,__LINE__, 0x3fde148a, 0x2dc00000, 0x3fe33333, 0x333332ec}, /* 0.47000=f(0.60000)*/ +{12, 0,123,__LINE__, 0x3ff31a4e, 0x6ee00000, 0x40026666, 0x66666654}, /* 1.19392=f(2.30000)*/ +{ 1, 0,123,__LINE__, 0x3ff9c041, 0xf6e00000, 0x400fffff, 0xffffffee}, /* 1.60943=f(4.00000)*/ +{ 1, 0,123,__LINE__, 0x3ffe6f08, 0x46500000, 0x4016cccc, 0xccccccc4}, /* 1.90210=f(5.70000)*/ +{13, 0,123,__LINE__, 0x4001069e, 0x59a80000, 0x401d9999, 0x99999991}, /* 2.12823=f(7.40000)*/ +{13, 0,123,__LINE__, 0x40028012, 0x97280000, 0x40223333, 0x3333332f}, /* 2.31253=f(9.10000)*/ +{13, 0,123,__LINE__, 0x4003beaa, 0xfae00000, 0x40259999, 0x99999995}, /* 2.46810=f(10.8000)*/ +{15, 0,123,__LINE__, 0x4004d24e, 0xf8e00000, 0x4028ffff, 0xfffffffb}, /* 2.60269=f(12.5000)*/ +{14, 0,123,__LINE__, 0x4005c536, 0x87e00000, 0x402c6666, 0x66666661}, /* 2.72129=f(14.2000)*/ +{16, 0,123,__LINE__, 0x40069e56, 0x97e00000, 0x402fcccc, 0xccccccc7}, /* 2.82731=f(15.9000)*/ +{15, 0,123,__LINE__, 0x400762a2, 0x8ce00000, 0x40319999, 0x99999997}, /* 2.92316=f(17.6000)*/ +{12, 0,123,__LINE__, 0x400815c0, 0x62e00000, 0x40334ccc, 0xccccccca}, /* 3.01062=f(19.3000)*/ +{12, 0,123,__LINE__, 0x4008ba74, 0x76e00000, 0x4034ffff, 0xfffffffd}, /* 3.09104=f(21.0000)*/ +{12, 0,123,__LINE__, 0x400952e4, 0x9a980000, 0x4036b333, 0x33333330}, /* 3.16547=f(22.7000)*/ +{12, 0,123,__LINE__, 0x4009e0c4, 0x2a980000, 0x40386666, 0x66666663}, /* 3.23474=f(24.4000)*/ +{12, 0,123,__LINE__, 0x400a6571, 0xf2980000, 0x403a1999, 0x99999996}, /* 3.29953=f(26.1000)*/ +{12, 0,123,__LINE__, 0x400ae20c, 0x7a980000, 0x403bcccc, 0xccccccc9}, /* 3.36037=f(27.8000)*/ +{12, 0,123,__LINE__, 0x400b5781, 0x16980000, 0x403d7fff, 0xfffffffc}, /* 3.41772=f(29.5000)*/ +0,}; +test_log1pf(m) {run_vector_1(m,log1pf_vec,(char *)(log1pf),"log1pf","ff"); } diff --git a/newlib/libm/test/log2_vec.c b/newlib/libm/test/log2_vec.c new file mode 100644 index 000000000..6a76e262f --- /dev/null +++ b/newlib/libm/test/log2_vec.c @@ -0,0 +1,400 @@ +#include "test.h" + one_line_type log2_vec[] = { +{62,0,123,__LINE__, 0xc01149a7, 0x84bcd1b9, 0x3fa99999, 0x9999999a}, +{62,0,123,__LINE__, 0xc00a934f, 0x0979a371, 0x3fb99999, 0x9999999a}, +{62,0,123,__LINE__, 0xc005e54e, 0x37a9c4bc, 0x3fc33333, 0x33333334}, +{62,0,123,__LINE__, 0xc002934f, 0x0979a371, 0x3fc99999, 0x9999999a}, +{62,0,123,__LINE__, 0xc0000000, 0x00000000, 0x3fd00000, 0x00000000}, +{62,0,123,__LINE__, 0xbffbca9c, 0x6f53897a, 0x3fd33333, 0x33333333}, +{62,0,123,__LINE__, 0xbff83bb1, 0x144b3e8a, 0x3fd66666, 0x66666666}, +{62,0,123,__LINE__, 0xbff5269e, 0x12f346e3, 0x3fd99999, 0x99999999}, +{62,0,123,__LINE__, 0xbff26e9a, 0xcbb3cc12, 0x3fdccccc, 0xcccccccc}, +{62,0,123,__LINE__, 0xbff00000, 0x00000001, 0x3fdfffff, 0xffffffff}, +{62,0,123,__LINE__, 0xbfe79538, 0xdea712f5, 0x3fe33333, 0x33333333}, +{62,0,123,__LINE__, 0xbfe3e33b, 0x979f04f9, 0x3fe4cccc, 0xcccccccd}, +{62,0,123,__LINE__, 0xbfe07762, 0x28967d11, 0x3fe66666, 0x66666667}, +{62,0,123,__LINE__, 0xbfda8ff9, 0x71810a5a, 0x3fe80000, 0x00000001}, +{62,0,123,__LINE__, 0xbfd49a78, 0x4bcd1b86, 0x3fe99999, 0x9999999b}, +{62,0,123,__LINE__, 0xbfce02f5, 0x1a35ad7f, 0x3feb3333, 0x33333335}, +{62,0,123,__LINE__, 0xbfc374d6, 0x5d9e6080, 0x3feccccc, 0xcccccccf}, +{62,0,123,__LINE__, 0xbfb2f1b3, 0xbd2f9df8, 0x3fee6666, 0x66666669}, +{62,0,123,__LINE__, 0x3cb71547, 0x652b82fd, 0x3ff00000, 0x00000001}, +{62,0,123,__LINE__, 0x3fb20508, 0xf547ee11, 0x3ff0cccc, 0xccccccce}, +{62,0,123,__LINE__, 0x3fc199b7, 0x28cb9d17, 0x3ff19999, 0x9999999b}, +{62,0,123,__LINE__, 0x3fc9cf23, 0x6bbeb394, 0x3ff26666, 0x66666668}, +{62,0,123,__LINE__, 0x3fd0d58e, 0x42b1da1f, 0x3ff33333, 0x33333335}, +{62,0,123,__LINE__, 0x3fd49a78, 0x4bcd1b94, 0x3ff40000, 0x00000002}, +{62,0,123,__LINE__, 0x3fd83988, 0xd0c1f617, 0x3ff4cccc, 0xcccccccf}, +{62,0,123,__LINE__, 0x3fdbb59b, 0x5fafc565, 0x3ff59999, 0x9999999c}, +{62,0,123,__LINE__, 0x3fe12758, 0x696ea51a, 0x3ff73333, 0x33333336}, +{62,0,123,__LINE__, 0x3fe2b803, 0x473f7ad7, 0x3ff80000, 0x00000003}, +{62,0,123,__LINE__, 0x3fe43b8a, 0x8d7bdcb3, 0x3ff8cccc, 0xccccccd0}, +{62,0,123,__LINE__, 0x3fe5b2c3, 0xda197240, 0x3ff99999, 0x9999999d}, +{62,0,123,__LINE__, 0x3fe71e71, 0x11726219, 0x3ffa6666, 0x6666666a}, +{62,0,123,__LINE__, 0x3fe87f42, 0xb97294a4, 0x3ffb3333, 0x33333337}, +{62,0,123,__LINE__, 0x3fe9d5d9, 0xfd5010ba, 0x3ffc0000, 0x00000004}, +{62,0,123,__LINE__, 0x3feb22ca, 0x689867e3, 0x3ffccccc, 0xccccccd1}, +{62,0,123,__LINE__, 0x3fec669b, 0x6586ad66, 0x3ffd9999, 0x9999999e}, +{62,0,123,__LINE__, 0x3feda1c9, 0x885a0c45, 0x3ffe6666, 0x6666666b}, +{62,0,123,__LINE__, 0x3feed4c7, 0xafa075de, 0x3fff3333, 0x33333338}, +{62,0,123,__LINE__, 0x3ff00000, 0x00000003, 0x40000000, 0x00000002}, +{62,0,123,__LINE__, 0x3ff091ea, 0x6073fc57, 0x40006666, 0x66666668}, +{62,0,123,__LINE__, 0x3ff12050, 0x8f547ee1, 0x4000cccc, 0xccccccce}, +{62,0,123,__LINE__, 0x3ff1ab5c, 0xeadad9c6, 0x40013333, 0x33333334}, +{62,0,123,__LINE__, 0x3ff23336, 0xe51973a2, 0x40019999, 0x9999999a}, +{62,0,123,__LINE__, 0x3ff2b803, 0x473f7ad1, 0x40020000, 0x00000000}, +{62,0,123,__LINE__, 0x3ff339e4, 0x6d77d670, 0x40026666, 0x66666666}, +{62,0,123,__LINE__, 0x3ff3b8fa, 0x7c57a123, 0x4002cccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x3ff43563, 0x90ac7684, 0x40033333, 0x33333332}, +{62,0,123,__LINE__, 0x3ff4af3b, 0xea5cc9cf, 0x40039999, 0x99999998}, +{62,0,123,__LINE__, 0x3ff5269e, 0x12f346e0, 0x4003ffff, 0xfffffffe}, +{62,0,123,__LINE__, 0x3ff59ba3, 0x005907b4, 0x40046666, 0x66666664}, +{62,0,123,__LINE__, 0x3ff60e62, 0x34307d80, 0x4004cccc, 0xccccccca}, +{62,0,123,__LINE__, 0x3ff67ef1, 0xd833bcc4, 0x40053333, 0x33333330}, +{62,0,123,__LINE__, 0x3ff6ed66, 0xd7ebf153, 0x40059999, 0x99999996}, +{62,0,123,__LINE__, 0x3ff759d4, 0xf80cba80, 0x4005ffff, 0xfffffffc}, +{62,0,123,__LINE__, 0x3ff7c44e, 0xebb4c172, 0x40066666, 0x66666662}, +{62,0,123,__LINE__, 0x3ff82ce6, 0x67ccc382, 0x4006cccc, 0xccccccc8}, +{62,0,123,__LINE__, 0x3ff893ac, 0x34b75285, 0x40073333, 0x3333332e}, +{62,0,123,__LINE__, 0x3ff8f8b0, 0x3e7d8942, 0x40079999, 0x99999994}, +{62,0,123,__LINE__, 0x3ff95c01, 0xa39fbd62, 0x4007ffff, 0xfffffffa}, +{62,0,123,__LINE__, 0x3ff9bdae, 0xc2acb3cd, 0x40086666, 0x66666660}, +{62,0,123,__LINE__, 0x3ffa1dc5, 0x46bdee50, 0x4008cccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x3ffa7c52, 0x32f43c42, 0x40093333, 0x3333332c}, +{62,0,123,__LINE__, 0x3ffad961, 0xed0cb916, 0x40099999, 0x99999992}, +{62,0,123,__LINE__, 0x3ffb3500, 0x4723c45f, 0x4009ffff, 0xfffffff8}, +{62,0,123,__LINE__, 0x3ffb8f38, 0x88b93102, 0x400a6666, 0x6666665e}, +{62,0,123,__LINE__, 0x3ffbe815, 0x7706e310, 0x400acccc, 0xccccccc4}, +{62,0,123,__LINE__, 0x3ffc3fa1, 0x5cb94a46, 0x400b3333, 0x3333332a}, +{62,0,123,__LINE__, 0x3ffc95e6, 0x111793d1, 0x400b9999, 0x99999990}, +{62,0,123,__LINE__, 0x3ffceaec, 0xfea80852, 0x400bffff, 0xfffffff6}, +{62,0,123,__LINE__, 0x3ffd3ebf, 0x295bced8, 0x400c6666, 0x6666665c}, +{62,0,123,__LINE__, 0x3ffd9165, 0x344c33e6, 0x400ccccc, 0xccccccc2}, +{62,0,123,__LINE__, 0x3ffde2e7, 0x6712998b, 0x400d3333, 0x33333328}, +{62,0,123,__LINE__, 0x3ffe334d, 0xb2c356a6, 0x400d9999, 0x9999998e}, +{62,0,123,__LINE__, 0x3ffe829f, 0xb6930442, 0x400dffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x3ffed0e4, 0xc42d0616, 0x400e6666, 0x6666665a}, +{62,0,123,__LINE__, 0x3fff1e23, 0xe3c17bf1, 0x400ecccc, 0xccccccc0}, +{62,0,123,__LINE__, 0x3fff6a63, 0xd7d03ae2, 0x400f3333, 0x33333326}, +{62,0,123,__LINE__, 0x3fffb5ab, 0x20b5ec8e, 0x400f9999, 0x9999998c}, +{62,0,123,__LINE__, 0x3fffffff, 0xfffffff6, 0x400fffff, 0xfffffff2}, +{62,0,123,__LINE__, 0x400024b4, 0x3dc5d75a, 0x40103333, 0x3333332c}, +{62,0,123,__LINE__, 0x400048f5, 0x3039fe25, 0x40106666, 0x6666665f}, +{62,0,123,__LINE__, 0x40006cc5, 0xa2e92014, 0x40109999, 0x99999992}, +{62,0,123,__LINE__, 0x40009028, 0x47aa3f6a, 0x4010cccc, 0xccccccc5}, +{62,0,123,__LINE__, 0x4000b31f, 0xb7d64893, 0x4010ffff, 0xfffffff8}, +{62,0,123,__LINE__, 0x4000d5ae, 0x756d6cdd, 0x40113333, 0x3333332b}, +{62,0,123,__LINE__, 0x4000f7d6, 0xec2b87f4, 0x40116666, 0x6666665e}, +{62,0,123,__LINE__, 0x4001199b, 0x728cb9cb, 0x40119999, 0x99999991}, +{62,0,123,__LINE__, 0x40013afe, 0x4ac34723, 0x4011cccc, 0xccccccc4}, +{62,0,123,__LINE__, 0x40015c01, 0xa39fbd63, 0x4011ffff, 0xfffffff7}, +{62,0,123,__LINE__, 0x40017ca7, 0x996c42e9, 0x40123333, 0x3333332a}, +{62,0,123,__LINE__, 0x40019cf2, 0x36bbeb32, 0x40126666, 0x6666665d}, +{62,0,123,__LINE__, 0x4001bce3, 0x752ed5da, 0x40129999, 0x99999990}, +{62,0,123,__LINE__, 0x4001dc7d, 0x3e2bd08c, 0x4012cccc, 0xccccccc3}, +{62,0,123,__LINE__, 0x4001fbc1, 0x6b90267a, 0x4012ffff, 0xfffffff6}, +{62,0,123,__LINE__, 0x40021ab1, 0xc8563b3d, 0x40133333, 0x33333329}, +{62,0,123,__LINE__, 0x40023950, 0x113383b2, 0x40136666, 0x6666665c}, +{62,0,123,__LINE__, 0x4002579d, 0xf52e64e2, 0x40139999, 0x9999998f}, +{62,0,123,__LINE__, 0x4002759d, 0x162c7733, 0x4013cccc, 0xccccccc2}, +{62,0,123,__LINE__, 0x4002934f, 0x0979a36b, 0x4013ffff, 0xfffffff5}, +{62,0,123,__LINE__, 0x4002b0b5, 0x584886c6, 0x40143333, 0x33333328}, +{62,0,123,__LINE__, 0x4002cdd1, 0x802c83d5, 0x40146666, 0x6666665b}, +{62,0,123,__LINE__, 0x4002eaa4, 0xf38ddef4, 0x40149999, 0x9999998e}, +{62,0,123,__LINE__, 0x40030731, 0x1a183ebb, 0x4014cccc, 0xccccccc1}, +{62,0,123,__LINE__, 0x40032377, 0x5123e2da, 0x4014ffff, 0xfffffff4}, +{62,0,123,__LINE__, 0x40033f78, 0xec19de5d, 0x40153333, 0x33333327}, +{62,0,123,__LINE__, 0x40035b37, 0x34d39d41, 0x40156666, 0x6666665a}, +{62,0,123,__LINE__, 0x400376b3, 0x6bf5f8a4, 0x40159999, 0x9999998d}, +{62,0,123,__LINE__, 0x400391ee, 0xc948186b, 0x4015cccc, 0xccccccc0}, +{62,0,123,__LINE__, 0x4003acea, 0x7c065d3b, 0x4015ffff, 0xfffffff3}, +{62,0,123,__LINE__, 0x4003c7a7, 0xab318a05, 0x40163333, 0x33333326}, +{62,0,123,__LINE__, 0x4003e227, 0x75da60b4, 0x40166666, 0x66666659}, +{62,0,123,__LINE__, 0x4003fc6a, 0xf369e28f, 0x40169999, 0x9999998c}, +{62,0,123,__LINE__, 0x40041673, 0x33e661bc, 0x4016cccc, 0xccccccbf}, +{62,0,123,__LINE__, 0x40043041, 0x40358ea2, 0x4016ffff, 0xfffffff2}, +{62,0,123,__LINE__, 0x400449d6, 0x1a5ba93e, 0x40173333, 0x33333325}, +{62,0,123,__LINE__, 0x40046332, 0xbdb7fc23, 0x40176666, 0x66666658}, +{62,0,123,__LINE__, 0x40047c58, 0x1f3ec49d, 0x40179999, 0x9999998b}, +{62,0,123,__LINE__, 0x40049547, 0x2db0a94d, 0x4017cccc, 0xccccccbe}, +{62,0,123,__LINE__, 0x4004ae00, 0xd1cfdead, 0x4017ffff, 0xfffffff1}, +{62,0,123,__LINE__, 0x4004c685, 0xee93170b, 0x40183333, 0x33333324}, +{62,0,123,__LINE__, 0x4004ded7, 0x615659e2, 0x40186666, 0x66666657}, +{62,0,123,__LINE__, 0x4004f6f6, 0x0209dcd7, 0x40189999, 0x9999998a}, +{62,0,123,__LINE__, 0x40050ee2, 0xa35ef724, 0x4018cccc, 0xccccccbd}, +{62,0,123,__LINE__, 0x4005269e, 0x12f346dc, 0x4018ffff, 0xfffffff0}, +{62,0,123,__LINE__, 0x40053e29, 0x197a1e1c, 0x40193333, 0x33333323}, +{62,0,123,__LINE__, 0x40055584, 0x7ae44d14, 0x40196666, 0x66666656}, +{62,0,123,__LINE__, 0x40056cb0, 0xf6865c87, 0x40199999, 0x99999989}, +{62,0,123,__LINE__, 0x400583af, 0x473d4b90, 0x4019cccc, 0xccccccbc}, +{62,0,123,__LINE__, 0x40059a80, 0x2391e22c, 0x4019ffff, 0xffffffef}, +{62,0,123,__LINE__, 0x4005b124, 0x3ddaa957, 0x401a3333, 0x33333322}, +{62,0,123,__LINE__, 0x4005c79c, 0x445c987d, 0x401a6666, 0x66666655}, +{62,0,123,__LINE__, 0x4005dde8, 0xe16a8734, 0x401a9999, 0x99999988}, +{62,0,123,__LINE__, 0x4005f40a, 0xbb837184, 0x401acccc, 0xccccccbb}, +{62,0,123,__LINE__, 0x40060a02, 0x756f9c15, 0x401affff, 0xffffffee}, +{62,0,123,__LINE__, 0x40061fd0, 0xae5ca520, 0x401b3333, 0x33333321}, +{62,0,123,__LINE__, 0x40063576, 0x01f88e22, 0x401b6666, 0x66666654}, +{62,0,123,__LINE__, 0x40064af3, 0x088bc9e4, 0x401b9999, 0x99999987}, +{62,0,123,__LINE__, 0x40066048, 0x571259b4, 0x401bcccc, 0xccccccba}, +{62,0,123,__LINE__, 0x40067576, 0x7f540425, 0x401bffff, 0xffffffed}, +{62,0,123,__LINE__, 0x40068a7e, 0x0ffbaf3e, 0x401c3333, 0x33333320}, +{62,0,123,__LINE__, 0x40069f5f, 0x94ade768, 0x401c6666, 0x66666653}, +{62,0,123,__LINE__, 0x4006b41b, 0x961e9bfc, 0x401c9999, 0x99999986}, +{62,0,123,__LINE__, 0x4006c8b2, 0x9a2619ef, 0x401ccccc, 0xccccccb9}, +{62,0,123,__LINE__, 0x4006dd25, 0x23d54cae, 0x401cffff, 0xffffffec}, +{62,0,123,__LINE__, 0x4006f173, 0xb3894cc2, 0x401d3333, 0x3333331f}, +{62,0,123,__LINE__, 0x4007059e, 0xc6fe4395, 0x401d6666, 0x66666652}, +{62,0,123,__LINE__, 0x400719a6, 0xd961ab50, 0x401d9999, 0x99999985}, +{62,0,123,__LINE__, 0x40072d8c, 0x6363f166, 0x401dcccc, 0xccccccb8}, +{62,0,123,__LINE__, 0x4007414f, 0xdb49821e, 0x401dffff, 0xffffffeb}, +{62,0,123,__LINE__, 0x400754f1, 0xb4fb432b, 0x401e3333, 0x3333331e}, +{62,0,123,__LINE__, 0x40076872, 0x62168307, 0x401e6666, 0x66666651}, +{62,0,123,__LINE__, 0x40077bd2, 0x51fc6288, 0x401e9999, 0x99999984}, +{62,0,123,__LINE__, 0x40078f11, 0xf1e0bdf5, 0x401ecccc, 0xccccccb7}, +{62,0,123,__LINE__, 0x4007a231, 0xacd89a94, 0x401effff, 0xffffffea}, +{62,0,123,__LINE__, 0x4007b531, 0xebe81d6e, 0x401f3333, 0x3333331d}, +{62,0,123,__LINE__, 0x4007c813, 0x16100fdc, 0x401f6666, 0x66666650}, +{62,0,123,__LINE__, 0x4007dad5, 0x905af644, 0x401f9999, 0x99999983}, +{62,0,123,__LINE__, 0x4007ed79, 0xbde9bd0f, 0x401fcccc, 0xccccccb6}, +{62,0,123,__LINE__, 0x4007ffff, 0xfffffff8, 0x401fffff, 0xffffffe9}, +{62,0,123,__LINE__, 0x40081268, 0xb60fef5d, 0x40201999, 0x9999998e}, +{62,0,123,__LINE__, 0x400824b4, 0x3dc5d758, 0x40203333, 0x33333328}, +{62,0,123,__LINE__, 0x400836e2, 0xf3134bfc, 0x40204ccc, 0xccccccc2}, +{62,0,123,__LINE__, 0x400848f5, 0x3039fe23, 0x40206666, 0x6666665c}, +{62,0,123,__LINE__, 0x40085aeb, 0x4dd63bef, 0x40207fff, 0xfffffff6}, +{62,0,123,__LINE__, 0x40086cc5, 0xa2e92012, 0x40209999, 0x99999990}, +{62,0,123,__LINE__, 0x40087e84, 0x84e272cd, 0x4020b333, 0x3333332a}, +{62,0,123,__LINE__, 0x40089028, 0x47aa3f6a, 0x4020cccc, 0xccccccc4}, +{62,0,123,__LINE__, 0x4008a1b1, 0x3daa20ef, 0x4020e666, 0x6666665e}, +{62,0,123,__LINE__, 0x4008b31f, 0xb7d64893, 0x4020ffff, 0xfffffff8}, +{62,0,123,__LINE__, 0x4008c474, 0x05b64073, 0x40211999, 0x99999992}, +{62,0,123,__LINE__, 0x4008d5ae, 0x756d6cde, 0x40213333, 0x3333332c}, +{62,0,123,__LINE__, 0x4008e6cf, 0x53c34e90, 0x40214ccc, 0xccccccc6}, +{62,0,123,__LINE__, 0x4008f7d6, 0xec2b87f5, 0x40216666, 0x66666660}, +{62,0,123,__LINE__, 0x400908c5, 0x88cda79a, 0x40217fff, 0xfffffffa}, +{62,0,123,__LINE__, 0x4009199b, 0x728cb9cd, 0x40219999, 0x99999994}, +{62,0,123,__LINE__, 0x40092a58, 0xf10ea355, 0x4021b333, 0x3333332e}, +{62,0,123,__LINE__, 0x40093afe, 0x4ac34726, 0x4021cccc, 0xccccccc8}, +{62,0,123,__LINE__, 0x40094b8b, 0xc4eb78d0, 0x4021e666, 0x66666662}, +{62,0,123,__LINE__, 0x40095c01, 0xa39fbd66, 0x4021ffff, 0xfffffffc}, +{62,0,123,__LINE__, 0x40096c60, 0x29d6dc80, 0x40221999, 0x99999996}, +{62,0,123,__LINE__, 0x40097ca7, 0x996c42ec, 0x40223333, 0x33333330}, +{62,0,123,__LINE__, 0x40098cd8, 0x3326389c, 0x40224ccc, 0xccccccca}, +{62,0,123,__LINE__, 0x40099cf2, 0x36bbeb37, 0x40226666, 0x66666664}, +{62,0,123,__LINE__, 0x4009acf5, 0xe2db4ec8, 0x40227fff, 0xfffffffe}, +{62,0,123,__LINE__, 0x4009bce3, 0x752ed5de, 0x40229999, 0x99999998}, +{62,0,123,__LINE__, 0x4009ccbb, 0x2a630268, 0x4022b333, 0x33333332}, +{62,0,123,__LINE__, 0x4009dc7d, 0x3e2bd092, 0x4022cccc, 0xcccccccc}, +{62,0,123,__LINE__, 0x4009ec29, 0xeb49fcd8, 0x4022e666, 0x66666666}, +{62,0,123,__LINE__, 0x4009fbc1, 0x6b902681, 0x40230000, 0x00000000}, +{62,0,123,__LINE__, 0x400a0b43, 0xf7e7cf8d, 0x40231999, 0x9999999a}, +{62,0,123,__LINE__, 0x400a1ab1, 0xc8563b43, 0x40233333, 0x33333334}, +{62,0,123,__LINE__, 0x400a2a0b, 0x14012c59, 0x40234ccc, 0xccccccce}, +{62,0,123,__LINE__, 0x400a3950, 0x113383b9, 0x40236666, 0x66666668}, +{62,0,123,__LINE__, 0x400a4880, 0xf561c0e8, 0x40238000, 0x00000002}, +{62,0,123,__LINE__, 0x400a579d, 0xf52e64ea, 0x40239999, 0x9999999c}, +{62,0,123,__LINE__, 0x400a66a7, 0x446e3896, 0x4023b333, 0x33333336}, +{62,0,123,__LINE__, 0x400a759d, 0x162c773b, 0x4023cccc, 0xccccccd0}, +{62,0,123,__LINE__, 0x400a847f, 0x9caede5f, 0x4023e666, 0x6666666a}, +{62,0,123,__LINE__, 0x400a934f, 0x0979a374, 0x40240000, 0x00000004}, +{62,0,123,__LINE__, 0x400aa20b, 0x8d535042, 0x40241999, 0x9999999e}, +{62,0,123,__LINE__, 0x400ab0b5, 0x584886d0, 0x40243333, 0x33333338}, +{62,0,123,__LINE__, 0x400abf4c, 0x99afad75, 0x40244ccc, 0xccccccd2}, +{62,0,123,__LINE__, 0x400acdd1, 0x802c83df, 0x40246666, 0x6666666c}, +{62,0,123,__LINE__, 0x400adc44, 0x39b3a19f, 0x40248000, 0x00000006}, +{62,0,123,__LINE__, 0x400aeaa4, 0xf38ddefe, 0x40249999, 0x999999a0}, +{62,0,123,__LINE__, 0x400af8f3, 0xda5ba8a4, 0x4024b333, 0x3333333a}, +{62,0,123,__LINE__, 0x400b0731, 0x1a183ec6, 0x4024cccc, 0xccccccd4}, +{62,0,123,__LINE__, 0x400b155c, 0xde1ce055, 0x4024e666, 0x6666666e}, +{62,0,123,__LINE__, 0x400b2377, 0x5123e2e5, 0x40250000, 0x00000008}, +{62,0,123,__LINE__, 0x400b3180, 0x9d4bb7b2, 0x40251999, 0x999999a2}, +{62,0,123,__LINE__, 0x400b3f78, 0xec19de68, 0x40253333, 0x3333333c}, +{62,0,123,__LINE__, 0x400b4d60, 0x667dc62a, 0x40254ccc, 0xccccccd6}, +{62,0,123,__LINE__, 0x400b5b37, 0x34d39d4d, 0x40256666, 0x66666670}, +{62,0,123,__LINE__, 0x400b68fd, 0x7ee71059, 0x40258000, 0x0000000a}, +{62,0,123,__LINE__, 0x400b76b3, 0x6bf5f8b1, 0x40259999, 0x999999a4}, +{62,0,123,__LINE__, 0x400b8459, 0x22b2fb5e, 0x4025b333, 0x3333333e}, +{62,0,123,__LINE__, 0x400b91ee, 0xc9481877, 0x4025cccc, 0xccccccd8}, +{62,0,123,__LINE__, 0x400b9f74, 0x85592b84, 0x4025e666, 0x66666672}, +{62,0,123,__LINE__, 0x400bacea, 0x7c065d48, 0x40260000, 0x0000000c}, +{62,0,123,__LINE__, 0x400bba50, 0xd1ee8761, 0x40261999, 0x999999a6}, +{62,0,123,__LINE__, 0x400bc7a7, 0xab318a13, 0x40263333, 0x33333340}, +{62,0,123,__LINE__, 0x400bd4ef, 0x2b7294aa, 0x40264ccc, 0xccccccda}, +{62,0,123,__LINE__, 0x400be227, 0x75da60c2, 0x40266666, 0x66666674}, +{62,0,123,__LINE__, 0x400bef50, 0xad1960e1, 0x40268000, 0x0000000e}, +{62,0,123,__LINE__, 0x400bfc6a, 0xf369e29e, 0x40269999, 0x999999a8}, +{62,0,123,__LINE__, 0x400c0976, 0x6a9224c8, 0x4026b333, 0x33333342}, +{62,0,123,__LINE__, 0x400c1673, 0x33e661cb, 0x4026cccc, 0xccccccdc}, +{62,0,123,__LINE__, 0x400c2361, 0x704acea3, 0x4026e666, 0x66666676}, +{62,0,123,__LINE__, 0x400c3041, 0x40358eb2, 0x40270000, 0x00000010}, +{62,0,123,__LINE__, 0x400c3d12, 0xc3b09cba, 0x40271999, 0x999999aa}, +{62,0,123,__LINE__, 0x400c49d6, 0x1a5ba94e, 0x40273333, 0x33333344}, +{62,0,123,__LINE__, 0x400c568b, 0x636deef0, 0x40274ccc, 0xccccccde}, +{62,0,123,__LINE__, 0x400c6332, 0xbdb7fc33, 0x40276666, 0x66666678}, +{62,0,123,__LINE__, 0x400c6fcc, 0x47a5740c, 0x40278000, 0x00000012}, +{62,0,123,__LINE__, 0x400c7c58, 0x1f3ec4ad, 0x40279999, 0x999999ac}, +{62,0,123,__LINE__, 0x400c88d6, 0x622ad50a, 0x4027b333, 0x33333346}, +{62,0,123,__LINE__, 0x400c9547, 0x2db0a95e, 0x4027cccc, 0xcccccce0}, +{62,0,123,__LINE__, 0x400ca1aa, 0x9eb8feda, 0x4027e666, 0x6666667a}, +{62,0,123,__LINE__, 0x400cae00, 0xd1cfdebe, 0x40280000, 0x00000014}, +{62,0,123,__LINE__, 0x400cba49, 0xe326290e, 0x40281999, 0x999999ae}, +{62,0,123,__LINE__, 0x400cc685, 0xee93171c, 0x40283333, 0x33333348}, +{62,0,123,__LINE__, 0x400cd2b5, 0x0f95b61e, 0x40284ccc, 0xcccccce2}, +{62,0,123,__LINE__, 0x400cded7, 0x615659f4, 0x40286666, 0x6666667c}, +{62,0,123,__LINE__, 0x400ceaec, 0xfea80864, 0x40288000, 0x00000016}, +{62,0,123,__LINE__, 0x400cf6f6, 0x0209dce9, 0x40289999, 0x999999b0}, +{62,0,123,__LINE__, 0x400d02f2, 0x85a8654d, 0x4028b333, 0x3333334a}, +{62,0,123,__LINE__, 0x400d0ee2, 0xa35ef736, 0x4028cccc, 0xcccccce4}, +{62,0,123,__LINE__, 0x400d1ac6, 0x74b8fed8, 0x4028e666, 0x6666667e}, +{62,0,123,__LINE__, 0x400d269e, 0x12f346ee, 0x40290000, 0x00000018}, +{62,0,123,__LINE__, 0x400d3269, 0x96fd3a26, 0x40291999, 0x999999b2}, +{62,0,123,__LINE__, 0x400d3e29, 0x197a1e2f, 0x40293333, 0x3333334c}, +{62,0,123,__LINE__, 0x400d49dc, 0xb2c24886, 0x40294ccc, 0xcccccce6}, +{62,0,123,__LINE__, 0x400d5584, 0x7ae44d27, 0x40296666, 0x66666680}, +{62,0,123,__LINE__, 0x400d6120, 0x89a62759, 0x40298000, 0x0000001a}, +{62,0,123,__LINE__, 0x400d6cb0, 0xf6865c9a, 0x40299999, 0x999999b4}, +{62,0,123,__LINE__, 0x400d7835, 0xd8bd19f1, 0x4029b333, 0x3333334e}, +{62,0,123,__LINE__, 0x400d83af, 0x473d4ba3, 0x4029cccc, 0xcccccce8}, +{62,0,123,__LINE__, 0x400d8f1d, 0x58b5af91, 0x4029e666, 0x66666682}, +{62,0,123,__LINE__, 0x400d9a80, 0x2391e240, 0x402a0000, 0x0000001c}, +{62,0,123,__LINE__, 0x400da5d7, 0xbdfb66ba, 0x402a1999, 0x999999b6}, +{62,0,123,__LINE__, 0x400db124, 0x3ddaa96c, 0x402a3333, 0x33333350}, +{62,0,123,__LINE__, 0x400dbc65, 0xb8d7fe04, 0x402a4ccc, 0xccccccea}, +{62,0,123,__LINE__, 0x400dc79c, 0x445c9892, 0x402a6666, 0x66666684}, +{62,0,123,__LINE__, 0x400dd2c7, 0xf59381e2, 0x402a8000, 0x0000001e}, +{62,0,123,__LINE__, 0x400ddde8, 0xe16a8749, 0x402a9999, 0x999999b8}, +{62,0,123,__LINE__, 0x400de8ff, 0x1c9325ea, 0x402ab333, 0x33333352}, +{62,0,123,__LINE__, 0x400df40a, 0xbb837199, 0x402acccc, 0xccccccec}, +{62,0,123,__LINE__, 0x400dff0b, 0xd276f76e, 0x402ae666, 0x66666686}, +{62,0,123,__LINE__, 0x400e0a02, 0x756f9c2a, 0x402b0000, 0x00000020}, +{62,0,123,__LINE__, 0x400e14ee, 0xb836767a, 0x402b1999, 0x999999ba}, +{62,0,123,__LINE__, 0x400e1fd0, 0xae5ca535, 0x402b3333, 0x33333354}, +{62,0,123,__LINE__, 0x400e2aa8, 0x6b3c21b1, 0x402b4ccc, 0xccccccee}, +{62,0,123,__LINE__, 0x400e3576, 0x01f88e38, 0x402b6666, 0x66666688}, +{62,0,123,__LINE__, 0x400e4039, 0x858000c2, 0x402b8000, 0x00000022}, +{62,0,123,__LINE__, 0x400e4af3, 0x088bc9fb, 0x402b9999, 0x999999bc}, +{62,0,123,__LINE__, 0x400e55a2, 0x9da138b4, 0x402bb333, 0x33333356}, +{62,0,123,__LINE__, 0x400e6048, 0x571259cb, 0x402bcccc, 0xccccccf0}, +{62,0,123,__LINE__, 0x400e6ae4, 0x46feb4a2, 0x402be666, 0x6666668a}, +{62,0,123,__LINE__, 0x400e7576, 0x7f54043c, 0x402c0000, 0x00000024}, +{62,0,123,__LINE__, 0x400e7fff, 0x11ceed00, 0x402c1999, 0x999999be}, +{62,0,123,__LINE__, 0x400e8a7e, 0x0ffbaf56, 0x402c3333, 0x33333358}, +{62,0,123,__LINE__, 0x400e94f3, 0x8b36d702, 0x402c4ccc, 0xccccccf2}, +{62,0,123,__LINE__, 0x400e9f5f, 0x94ade780, 0x402c6666, 0x6666668c}, +{62,0,123,__LINE__, 0x400ea9c2, 0x3d600544, 0x402c8000, 0x00000026}, +{62,0,123,__LINE__, 0x400eb41b, 0x961e9c13, 0x402c9999, 0x999999c0}, +{62,0,123,__LINE__, 0x400ebe6b, 0xaf8e0267, 0x402cb333, 0x3333335a}, +{62,0,123,__LINE__, 0x400ec8b2, 0x9a261a07, 0x402ccccc, 0xccccccf4}, +{62,0,123,__LINE__, 0x400ed2f0, 0x6632edd0, 0x402ce666, 0x6666668e}, +{62,0,123,__LINE__, 0x400edd25, 0x23d54cc6, 0x402d0000, 0x00000028}, +{62,0,123,__LINE__, 0x400ee750, 0xe303627d, 0x402d1999, 0x999999c2}, +{62,0,123,__LINE__, 0x400ef173, 0xb3894cda, 0x402d3333, 0x3333335c}, +{62,0,123,__LINE__, 0x400efb8d, 0xa509af56, 0x402d4ccc, 0xccccccf6}, +{62,0,123,__LINE__, 0x400f059e, 0xc6fe43ad, 0x402d6666, 0x66666690}, +{62,0,123,__LINE__, 0x400f0fa7, 0x28b86826, 0x402d8000, 0x0000002a}, +{62,0,123,__LINE__, 0x400f19a6, 0xd961ab68, 0x402d9999, 0x999999c4}, +{62,0,123,__LINE__, 0x400f239d, 0xe7fc55fe, 0x402db333, 0x3333335e}, +{62,0,123,__LINE__, 0x400f2d8c, 0x6363f17e, 0x402dcccc, 0xccccccf8}, +{62,0,123,__LINE__, 0x400f3772, 0x5a4dcd7c, 0x402de666, 0x66666692}, +{62,0,123,__LINE__, 0x400f414f, 0xdb498236, 0x402e0000, 0x0000002c}, +{62,0,123,__LINE__, 0x400f4b24, 0xf4c17120, 0x402e1999, 0x999999c6}, +{62,0,123,__LINE__, 0x400f54f1, 0xb4fb4344, 0x402e3333, 0x33333360}, +{62,0,123,__LINE__, 0x400f5eb6, 0x2a186592, 0x402e4ccc, 0xccccccfa}, +{62,0,123,__LINE__, 0x400f6872, 0x62168321, 0x402e6666, 0x66666694}, +{62,0,123,__LINE__, 0x400f7226, 0x6acffd6c, 0x402e8000, 0x0000002e}, +{62,0,123,__LINE__, 0x400f7bd2, 0x51fc62a1, 0x402e9999, 0x999999c8}, +{62,0,123,__LINE__, 0x400f8576, 0x2530e1f2, 0x402eb333, 0x33333362}, +{62,0,123,__LINE__, 0x400f8f11, 0xf1e0be0f, 0x402ecccc, 0xccccccfc}, +{62,0,123,__LINE__, 0x400f98a5, 0xc55dbdc0, 0x402ee666, 0x66666696}, +{62,0,123,__LINE__, 0x400fabb5, 0xb5616e63, 0x402f1999, 0x999999ca}, +{62,0,123,__LINE__, 0x400fb531, 0xebe81d88, 0x402f3333, 0x33333364}, +{62,0,123,__LINE__, 0x400fbea6, 0x5d3cc171, 0x402f4ccc, 0xccccccfe}, +{62,0,123,__LINE__, 0x400fc813, 0x16100ff7, 0x402f6666, 0x66666698}, +{62,0,123,__LINE__, 0x400fd178, 0x22f3c1a8, 0x402f8000, 0x00000032}, +{62,0,123,__LINE__, 0x400fdad5, 0x905af65f, 0x402f9999, 0x999999cc}, +{62,0,123,__LINE__, 0x400fe42b, 0x6a9a9840, 0x402fb333, 0x33333366}, +{62,0,123,__LINE__, 0x400fed79, 0xbde9bd2a, 0x402fcccc, 0xcccccd00}, +{62,0,123,__LINE__, 0x400ff6c0, 0x9662069a, 0x402fe666, 0x6666669a}, +{62,0,123,__LINE__, 0x40100000, 0x00000009, 0x40300000, 0x0000001a}, +{62,0,123,__LINE__, 0x4010049c, 0x0351be07, 0x40300ccc, 0xcccccce7}, +{62,0,123,__LINE__, 0x40100934, 0x5b07f7bc, 0x40301999, 0x999999b4}, +{62,0,123,__LINE__, 0x40100dc9, 0x0cf665dd, 0x40302666, 0x66666681}, +{62,0,123,__LINE__, 0x4010125a, 0x1ee2ebb9, 0x40303333, 0x3333334e}, +{62,0,123,__LINE__, 0x401016e7, 0x9685c2dc, 0x40304000, 0x0000001b}, +{62,0,123,__LINE__, 0x40101b71, 0x7989a60b, 0x40304ccc, 0xcccccce8}, +{62,0,123,__LINE__, 0x40101ff7, 0xcd8bfb9d, 0x40305999, 0x999999b5}, +{62,0,123,__LINE__, 0x4010247a, 0x981cff1f, 0x40306666, 0x66666682}, +{62,0,123,__LINE__, 0x401028f9, 0xdebfea69, 0x40307333, 0x3333334f}, +{62,0,123,__LINE__, 0x40102d75, 0xa6eb1e05, 0x40308000, 0x0000001c}, +{62,0,123,__LINE__, 0x401031ed, 0xf60848fd, 0x40308ccc, 0xcccccce9}, +{62,0,123,__LINE__, 0x40103662, 0xd1749016, 0x40309999, 0x999999b6}, +{62,0,123,__LINE__, 0x40103ad4, 0x3e80b46a, 0x4030a666, 0x66666683}, +{62,0,123,__LINE__, 0x40103f42, 0x42713974, 0x4030b333, 0x33333350}, +{62,0,123,__LINE__, 0x401043ac, 0xe27e8a88, 0x4030c000, 0x0000001d}, +{62,0,123,__LINE__, 0x40104814, 0x23d51fc2, 0x4030cccc, 0xccccccea}, +{62,0,123,__LINE__, 0x40104c78, 0x0b95a25b, 0x4030d999, 0x999999b7}, +{62,0,123,__LINE__, 0x401050d8, 0x9ed51084, 0x4030e666, 0x66666684}, +{62,0,123,__LINE__, 0x40105535, 0xe29ce0af, 0x4030f333, 0x33333351}, +{62,0,123,__LINE__, 0x4010598f, 0xdbeb2457, 0x40310000, 0x0000001e}, +{62,0,123,__LINE__, 0x40105de6, 0x8fb2aa41, 0x40310ccc, 0xcccccceb}, +{62,0,123,__LINE__, 0x4010623a, 0x02db2046, 0x40311999, 0x999999b8}, +{62,0,123,__LINE__, 0x4010668a, 0x3a413495, 0x40312666, 0x66666685}, +{62,0,123,__LINE__, 0x40106ad7, 0x3ab6b67c, 0x40313333, 0x33333352}, +{62,0,123,__LINE__, 0x40106f21, 0x0902b6b9, 0x40314000, 0x0000001f}, +{62,0,123,__LINE__, 0x40107367, 0xa9e1a755, 0x40314ccc, 0xccccccec}, +{62,0,123,__LINE__, 0x401077ab, 0x22057b00, 0x40315999, 0x999999b9}, +{62,0,123,__LINE__, 0x40107beb, 0x7615c407, 0x40316666, 0x66666686}, +{62,0,123,__LINE__, 0x40108028, 0xaaafd2cd, 0x40317333, 0x33333353}, +{62,0,123,__LINE__, 0x40108462, 0xc466d3da, 0x40318000, 0x00000020}, +{62,0,123,__LINE__, 0x40108899, 0xc7c3ed7a, 0x40318ccc, 0xcccccced}, +{62,0,123,__LINE__, 0x40108ccd, 0xb9465cf3, 0x40319999, 0x999999ba}, +{62,0,123,__LINE__, 0x401090fe, 0x9d63934e, 0x4031a666, 0x66666687}, +{62,0,123,__LINE__, 0x4010952c, 0x788751b7, 0x4031b333, 0x33333354}, +{62,0,123,__LINE__, 0x40109957, 0x4f13c57c, 0x4031c000, 0x00000021}, +{62,0,123,__LINE__, 0x40109d7f, 0x2561a39f, 0x4031cccc, 0xccccccee}, +{62,0,123,__LINE__, 0x4010a1a3, 0xffc0440f, 0x4031d999, 0x999999bb}, +{62,0,123,__LINE__, 0x4010a5c5, 0xe275bc74, 0x4031e666, 0x66666688}, +{62,0,123,__LINE__, 0x4010a9e4, 0xd1befaa6, 0x4031f333, 0x33333355}, +{62,0,123,__LINE__, 0x4010ae00, 0xd1cfdebf, 0x40320000, 0x00000022}, +{62,0,123,__LINE__, 0x4010b219, 0xe6d354d3, 0x40320ccc, 0xccccccef}, +{62,0,123,__LINE__, 0x4010b630, 0x14eb6e4c, 0x40321999, 0x999999bc}, +{62,0,123,__LINE__, 0x4010ba43, 0x60317aee, 0x40322666, 0x66666689}, +{62,0,123,__LINE__, 0x4010be53, 0xccb62182, 0x40323333, 0x33333356}, +{62,0,123,__LINE__, 0x4010c261, 0x5e817829, 0x40324000, 0x00000023}, +{62,0,123,__LINE__, 0x4010c66c, 0x19931c5a, 0x40324ccc, 0xccccccf0}, +{62,0,123,__LINE__, 0x4010ca74, 0x01e24a92, 0x40325999, 0x999999bd}, +{62,0,123,__LINE__, 0x4010ce79, 0x1b5df5a7, 0x40326666, 0x6666668a}, +{62,0,123,__LINE__, 0x4010d27b, 0x69ecddd5, 0x40327333, 0x33333357}, +{62,0,123,__LINE__, 0x4010d67a, 0xf16da770, 0x40328000, 0x00000024}, +{62,0,123,__LINE__, 0x4010da77, 0xb5b6f153, 0x40328ccc, 0xccccccf1}, +{62,0,123,__LINE__, 0x4010de71, 0xba976afb, 0x40329999, 0x999999be}, +{62,0,123,__LINE__, 0x4010e269, 0x03d5ea53, 0x4032a666, 0x6666668b}, +{62,0,123,__LINE__, 0x4010e65d, 0x95318140, 0x4032b333, 0x33333358}, +{62,0,123,__LINE__, 0x4010ea4f, 0x726192d7, 0x4032c000, 0x00000025}, +{62,0,123,__LINE__, 0x4010ee3e, 0x9f15e854, 0x4032cccc, 0xccccccf2}, +{62,0,123,__LINE__, 0x4010f22b, 0x1ef6c5c8, 0x4032d999, 0x999999bf}, +{62,0,123,__LINE__, 0x4010f614, 0xf5a4fe78, 0x4032e666, 0x6666668c}, +{62,0,123,__LINE__, 0x4010f9fc, 0x26ba0906, 0x4032f333, 0x33333359}, +{62,0,123,__LINE__, 0x4010fde0, 0xb5c8134c, 0x40330000, 0x00000026}, +{62,0,123,__LINE__, 0x401101c2, 0xa65a15f3, 0x40330ccc, 0xccccccf3}, +{62,0,123,__LINE__, 0x401105a1, 0xfbf3e7d2, 0x40331999, 0x999999c0}, +{62,0,123,__LINE__, 0x4011097e, 0xba1250ff, 0x40332666, 0x6666668d}, +{62,0,123,__LINE__, 0x40110d58, 0xe42b1dad, 0x40333333, 0x3333335a}, +{62,0,123,__LINE__, 0x40111130, 0x7dad30c3, 0x40334000, 0x00000027}, +{62,0,123,__LINE__, 0x40111505, 0x8a009638, 0x40334ccc, 0xccccccf4}, +{62,0,123,__LINE__, 0x401118d8, 0x0c869531, 0x40335999, 0x999999c1}, +{62,0,123,__LINE__, 0x40111ca8, 0x0899c1e8, 0x40336666, 0x6666668e}, +{62,0,123,__LINE__, 0x40112075, 0x818e0f4e, 0x40337333, 0x3333335b}, +{62,0,123,__LINE__, 0x40112440, 0x7ab0e07f, 0x40338000, 0x00000028}, +{62,0,123,__LINE__, 0x40112808, 0xf74919f4, 0x40338ccc, 0xccccccf5}, +{62,0,123,__LINE__, 0x40112bce, 0xfa973280, 0x40339999, 0x999999c2}, +{62,0,123,__LINE__, 0x40112f92, 0x87d54416, 0x4033a666, 0x6666668f}, +{62,0,123,__LINE__, 0x40113353, 0xa2371c56, 0x4033b333, 0x3333335c}, +{62,0,123,__LINE__, 0x40113712, 0x4cea4ceb, 0x4033c000, 0x00000029}, +{62,0,123,__LINE__, 0x40113ace, 0x8b163ba8, 0x4033cccc, 0xccccccf6}, +{62,0,123,__LINE__, 0x40113e88, 0x5fdc3280, 0x4033d999, 0x999999c3}, +{62,0,123,__LINE__, 0x4011423f, 0xce576f3a, 0x4033e666, 0x66666690}, +{62,0,123,__LINE__, 0x401145f4, 0xd99d3304, 0x4033f333, 0x3333335d}, +0,}; +test_log2(m) {run_vector_1(m,log2_vec,(char *)(log2),"log2","dd"); } diff --git a/newlib/libm/test/log2f_vec.c b/newlib/libm/test/log2f_vec.c new file mode 100644 index 000000000..a31ca2ff2 --- /dev/null +++ b/newlib/libm/test/log2f_vec.c @@ -0,0 +1,402 @@ +#include "test.h" + one_line_type log2f_vec[] = { +{31,0,123,__LINE__, 0xc01149a7, 0x84bcd1b9, 0x3fa99999, 0x9999999a}, +{31,0,123,__LINE__, 0xc00a934f, 0x0979a371, 0x3fb99999, 0x9999999a}, +{31,0,123,__LINE__, 0xc005e54e, 0x37a9c4bc, 0x3fc33333, 0x33333334}, +{31,0,123,__LINE__, 0xc002934f, 0x0979a371, 0x3fc99999, 0x9999999a}, +{31,0,123,__LINE__, 0xc0000000, 0x00000000, 0x3fd00000, 0x00000000}, +{31,0,123,__LINE__, 0xbffbca9c, 0x6f53897a, 0x3fd33333, 0x33333333}, +{31,0,123,__LINE__, 0xbff83bb1, 0x144b3e8a, 0x3fd66666, 0x66666666}, +{31,0,123,__LINE__, 0xbff5269e, 0x12f346e3, 0x3fd99999, 0x99999999}, +{31,0,123,__LINE__, 0xbff26e9a, 0xcbb3cc12, 0x3fdccccc, 0xcccccccc}, +{31,0,123,__LINE__, 0xbff00000, 0x00000001, 0x3fdfffff, 0xffffffff}, +{31,0,123,__LINE__, 0xbfeb9992, 0x35cd18bf, 0x3fe19999, 0x99999999}, +{31,0,123,__LINE__, 0xbfe79538, 0xdea712f5, 0x3fe33333, 0x33333333}, +{31,0,123,__LINE__, 0xbfe3e33b, 0x979f04f9, 0x3fe4cccc, 0xcccccccd}, +{31,0,123,__LINE__, 0xbfe07762, 0x28967d11, 0x3fe66666, 0x66666667}, +{31,0,123,__LINE__, 0xbfda8ff9, 0x71810a5a, 0x3fe80000, 0x00000001}, +{31,0,123,__LINE__, 0xbfd49a78, 0x4bcd1b86, 0x3fe99999, 0x9999999b}, +{31,0,123,__LINE__, 0xbfce02f5, 0x1a35ad7f, 0x3feb3333, 0x33333335}, +{31,0,123,__LINE__, 0xbfc374d6, 0x5d9e6080, 0x3feccccc, 0xcccccccf}, +{31,0,123,__LINE__, 0xbfb2f1b3, 0xbd2f9df8, 0x3fee6666, 0x66666669}, +{31,0,123,__LINE__, 0x3fb20508, 0xf547ee11, 0x3ff0cccc, 0xccccccce}, +{31,0,123,__LINE__, 0x3fc199b7, 0x28cb9d17, 0x3ff19999, 0x9999999b}, +{31,0,123,__LINE__, 0x3fc9cf23, 0x6bbeb394, 0x3ff26666, 0x66666668}, +{31,0,123,__LINE__, 0x3fd0d58e, 0x42b1da1f, 0x3ff33333, 0x33333335}, +{31,0,123,__LINE__, 0x3fd49a78, 0x4bcd1b94, 0x3ff40000, 0x00000002}, +{31,0,123,__LINE__, 0x3fd83988, 0xd0c1f617, 0x3ff4cccc, 0xcccccccf}, +{31,0,123,__LINE__, 0x3fdbb59b, 0x5fafc565, 0x3ff59999, 0x9999999c}, +{31,0,123,__LINE__, 0x3fdf113b, 0xaed305e6, 0x3ff66666, 0x66666669}, +{31,0,123,__LINE__, 0x3fe12758, 0x696ea51a, 0x3ff73333, 0x33333336}, +{31,0,123,__LINE__, 0x3fe2b803, 0x473f7ad7, 0x3ff80000, 0x00000003}, +{31,0,123,__LINE__, 0x3fe43b8a, 0x8d7bdcb3, 0x3ff8cccc, 0xccccccd0}, +{31,0,123,__LINE__, 0x3fe5b2c3, 0xda197240, 0x3ff99999, 0x9999999d}, +{31,0,123,__LINE__, 0x3fe71e71, 0x11726219, 0x3ffa6666, 0x6666666a}, +{31,0,123,__LINE__, 0x3fe87f42, 0xb97294a4, 0x3ffb3333, 0x33333337}, +{31,0,123,__LINE__, 0x3fe9d5d9, 0xfd5010ba, 0x3ffc0000, 0x00000004}, +{31,0,123,__LINE__, 0x3feb22ca, 0x689867e3, 0x3ffccccc, 0xccccccd1}, +{31,0,123,__LINE__, 0x3fec669b, 0x6586ad66, 0x3ffd9999, 0x9999999e}, +{31,0,123,__LINE__, 0x3feda1c9, 0x885a0c45, 0x3ffe6666, 0x6666666b}, +{31,0,123,__LINE__, 0x3feed4c7, 0xafa075de, 0x3fff3333, 0x33333338}, +{31,0,123,__LINE__, 0x3ff00000, 0x00000003, 0x40000000, 0x00000002}, +{31,0,123,__LINE__, 0x3ff091ea, 0x6073fc57, 0x40006666, 0x66666668}, +{31,0,123,__LINE__, 0x3ff12050, 0x8f547ee1, 0x4000cccc, 0xccccccce}, +{31,0,123,__LINE__, 0x3ff1ab5c, 0xeadad9c6, 0x40013333, 0x33333334}, +{31,0,123,__LINE__, 0x3ff23336, 0xe51973a2, 0x40019999, 0x9999999a}, +{31,0,123,__LINE__, 0x3ff2b803, 0x473f7ad1, 0x40020000, 0x00000000}, +{31,0,123,__LINE__, 0x3ff339e4, 0x6d77d670, 0x40026666, 0x66666666}, +{31,0,123,__LINE__, 0x3ff3b8fa, 0x7c57a123, 0x4002cccc, 0xcccccccc}, +{31,0,123,__LINE__, 0x3ff43563, 0x90ac7684, 0x40033333, 0x33333332}, +{31,0,123,__LINE__, 0x3ff4af3b, 0xea5cc9cf, 0x40039999, 0x99999998}, +{31,0,123,__LINE__, 0x3ff5269e, 0x12f346e0, 0x4003ffff, 0xfffffffe}, +{31,0,123,__LINE__, 0x3ff59ba3, 0x005907b4, 0x40046666, 0x66666664}, +{31,0,123,__LINE__, 0x3ff60e62, 0x34307d80, 0x4004cccc, 0xccccccca}, +{31,0,123,__LINE__, 0x3ff67ef1, 0xd833bcc4, 0x40053333, 0x33333330}, +{31,0,123,__LINE__, 0x3ff6ed66, 0xd7ebf153, 0x40059999, 0x99999996}, +{31,0,123,__LINE__, 0x3ff759d4, 0xf80cba80, 0x4005ffff, 0xfffffffc}, +{31,0,123,__LINE__, 0x3ff7c44e, 0xebb4c172, 0x40066666, 0x66666662}, +{31,0,123,__LINE__, 0x3ff82ce6, 0x67ccc382, 0x4006cccc, 0xccccccc8}, +{31,0,123,__LINE__, 0x3ff893ac, 0x34b75285, 0x40073333, 0x3333332e}, +{31,0,123,__LINE__, 0x3ff8f8b0, 0x3e7d8942, 0x40079999, 0x99999994}, +{31,0,123,__LINE__, 0x3ff95c01, 0xa39fbd62, 0x4007ffff, 0xfffffffa}, +{31,0,123,__LINE__, 0x3ff9bdae, 0xc2acb3cd, 0x40086666, 0x66666660}, +{31,0,123,__LINE__, 0x3ffa1dc5, 0x46bdee50, 0x4008cccc, 0xccccccc6}, +{31,0,123,__LINE__, 0x3ffa7c52, 0x32f43c42, 0x40093333, 0x3333332c}, +{31,0,123,__LINE__, 0x3ffad961, 0xed0cb916, 0x40099999, 0x99999992}, +{31,0,123,__LINE__, 0x3ffb3500, 0x4723c45f, 0x4009ffff, 0xfffffff8}, +{31,0,123,__LINE__, 0x3ffb8f38, 0x88b93102, 0x400a6666, 0x6666665e}, +{31,0,123,__LINE__, 0x3ffbe815, 0x7706e310, 0x400acccc, 0xccccccc4}, +{31,0,123,__LINE__, 0x3ffc3fa1, 0x5cb94a46, 0x400b3333, 0x3333332a}, +{31,0,123,__LINE__, 0x3ffc95e6, 0x111793d1, 0x400b9999, 0x99999990}, +{31,0,123,__LINE__, 0x3ffceaec, 0xfea80852, 0x400bffff, 0xfffffff6}, +{31,0,123,__LINE__, 0x3ffd3ebf, 0x295bced8, 0x400c6666, 0x6666665c}, +{31,0,123,__LINE__, 0x3ffd9165, 0x344c33e6, 0x400ccccc, 0xccccccc2}, +{31,0,123,__LINE__, 0x3ffde2e7, 0x6712998b, 0x400d3333, 0x33333328}, +{31,0,123,__LINE__, 0x3ffe334d, 0xb2c356a6, 0x400d9999, 0x9999998e}, +{31,0,123,__LINE__, 0x3ffe829f, 0xb6930442, 0x400dffff, 0xfffffff4}, +{31,0,123,__LINE__, 0x3ffed0e4, 0xc42d0616, 0x400e6666, 0x6666665a}, +{31,0,123,__LINE__, 0x3fff1e23, 0xe3c17bf1, 0x400ecccc, 0xccccccc0}, +{31,0,123,__LINE__, 0x3fff6a63, 0xd7d03ae2, 0x400f3333, 0x33333326}, +{31,0,123,__LINE__, 0x3fffb5ab, 0x20b5ec8e, 0x400f9999, 0x9999998c}, +{31,0,123,__LINE__, 0x3fffffff, 0xfffffff6, 0x400fffff, 0xfffffff2}, +{31,0,123,__LINE__, 0x400024b4, 0x3dc5d75a, 0x40103333, 0x3333332c}, +{31,0,123,__LINE__, 0x400048f5, 0x3039fe25, 0x40106666, 0x6666665f}, +{31,0,123,__LINE__, 0x40006cc5, 0xa2e92014, 0x40109999, 0x99999992}, +{31,0,123,__LINE__, 0x40009028, 0x47aa3f6a, 0x4010cccc, 0xccccccc5}, +{31,0,123,__LINE__, 0x4000b31f, 0xb7d64893, 0x4010ffff, 0xfffffff8}, +{31,0,123,__LINE__, 0x4000d5ae, 0x756d6cdd, 0x40113333, 0x3333332b}, +{31,0,123,__LINE__, 0x4000f7d6, 0xec2b87f4, 0x40116666, 0x6666665e}, +{31,0,123,__LINE__, 0x4001199b, 0x728cb9cb, 0x40119999, 0x99999991}, +{31,0,123,__LINE__, 0x40013afe, 0x4ac34723, 0x4011cccc, 0xccccccc4}, +{31,0,123,__LINE__, 0x40015c01, 0xa39fbd63, 0x4011ffff, 0xfffffff7}, +{31,0,123,__LINE__, 0x40017ca7, 0x996c42e9, 0x40123333, 0x3333332a}, +{31,0,123,__LINE__, 0x40019cf2, 0x36bbeb32, 0x40126666, 0x6666665d}, +{31,0,123,__LINE__, 0x4001bce3, 0x752ed5da, 0x40129999, 0x99999990}, +{31,0,123,__LINE__, 0x4001dc7d, 0x3e2bd08c, 0x4012cccc, 0xccccccc3}, +{31,0,123,__LINE__, 0x4001fbc1, 0x6b90267a, 0x4012ffff, 0xfffffff6}, +{31,0,123,__LINE__, 0x40021ab1, 0xc8563b3d, 0x40133333, 0x33333329}, +{31,0,123,__LINE__, 0x40023950, 0x113383b2, 0x40136666, 0x6666665c}, +{31,0,123,__LINE__, 0x4002579d, 0xf52e64e2, 0x40139999, 0x9999998f}, +{31,0,123,__LINE__, 0x4002759d, 0x162c7733, 0x4013cccc, 0xccccccc2}, +{31,0,123,__LINE__, 0x4002934f, 0x0979a36b, 0x4013ffff, 0xfffffff5}, +{31,0,123,__LINE__, 0x4002b0b5, 0x584886c6, 0x40143333, 0x33333328}, +{31,0,123,__LINE__, 0x4002cdd1, 0x802c83d5, 0x40146666, 0x6666665b}, +{31,0,123,__LINE__, 0x4002eaa4, 0xf38ddef4, 0x40149999, 0x9999998e}, +{31,0,123,__LINE__, 0x40030731, 0x1a183ebb, 0x4014cccc, 0xccccccc1}, +{31,0,123,__LINE__, 0x40032377, 0x5123e2da, 0x4014ffff, 0xfffffff4}, +{31,0,123,__LINE__, 0x40033f78, 0xec19de5d, 0x40153333, 0x33333327}, +{31,0,123,__LINE__, 0x40035b37, 0x34d39d41, 0x40156666, 0x6666665a}, +{31,0,123,__LINE__, 0x400376b3, 0x6bf5f8a4, 0x40159999, 0x9999998d}, +{31,0,123,__LINE__, 0x400391ee, 0xc948186b, 0x4015cccc, 0xccccccc0}, +{31,0,123,__LINE__, 0x4003acea, 0x7c065d3b, 0x4015ffff, 0xfffffff3}, +{31,0,123,__LINE__, 0x4003c7a7, 0xab318a05, 0x40163333, 0x33333326}, +{31,0,123,__LINE__, 0x4003e227, 0x75da60b4, 0x40166666, 0x66666659}, +{31,0,123,__LINE__, 0x4003fc6a, 0xf369e28f, 0x40169999, 0x9999998c}, +{31,0,123,__LINE__, 0x40041673, 0x33e661bc, 0x4016cccc, 0xccccccbf}, +{31,0,123,__LINE__, 0x40043041, 0x40358ea2, 0x4016ffff, 0xfffffff2}, +{31,0,123,__LINE__, 0x400449d6, 0x1a5ba93e, 0x40173333, 0x33333325}, +{31,0,123,__LINE__, 0x40046332, 0xbdb7fc23, 0x40176666, 0x66666658}, +{31,0,123,__LINE__, 0x40047c58, 0x1f3ec49d, 0x40179999, 0x9999998b}, +{31,0,123,__LINE__, 0x40049547, 0x2db0a94d, 0x4017cccc, 0xccccccbe}, +{31,0,123,__LINE__, 0x4004ae00, 0xd1cfdead, 0x4017ffff, 0xfffffff1}, +{31,0,123,__LINE__, 0x4004c685, 0xee93170b, 0x40183333, 0x33333324}, +{31,0,123,__LINE__, 0x4004ded7, 0x615659e2, 0x40186666, 0x66666657}, +{31,0,123,__LINE__, 0x4004f6f6, 0x0209dcd7, 0x40189999, 0x9999998a}, +{31,0,123,__LINE__, 0x40050ee2, 0xa35ef724, 0x4018cccc, 0xccccccbd}, +{31,0,123,__LINE__, 0x4005269e, 0x12f346dc, 0x4018ffff, 0xfffffff0}, +{31,0,123,__LINE__, 0x40053e29, 0x197a1e1c, 0x40193333, 0x33333323}, +{31,0,123,__LINE__, 0x40055584, 0x7ae44d14, 0x40196666, 0x66666656}, +{31,0,123,__LINE__, 0x40056cb0, 0xf6865c87, 0x40199999, 0x99999989}, +{31,0,123,__LINE__, 0x400583af, 0x473d4b90, 0x4019cccc, 0xccccccbc}, +{31,0,123,__LINE__, 0x40059a80, 0x2391e22c, 0x4019ffff, 0xffffffef}, +{31,0,123,__LINE__, 0x4005b124, 0x3ddaa957, 0x401a3333, 0x33333322}, +{31,0,123,__LINE__, 0x4005c79c, 0x445c987d, 0x401a6666, 0x66666655}, +{31,0,123,__LINE__, 0x4005dde8, 0xe16a8734, 0x401a9999, 0x99999988}, +{31,0,123,__LINE__, 0x4005f40a, 0xbb837184, 0x401acccc, 0xccccccbb}, +{31,0,123,__LINE__, 0x40060a02, 0x756f9c15, 0x401affff, 0xffffffee}, +{31,0,123,__LINE__, 0x40061fd0, 0xae5ca520, 0x401b3333, 0x33333321}, +{31,0,123,__LINE__, 0x40063576, 0x01f88e22, 0x401b6666, 0x66666654}, +{31,0,123,__LINE__, 0x40064af3, 0x088bc9e4, 0x401b9999, 0x99999987}, +{31,0,123,__LINE__, 0x40066048, 0x571259b4, 0x401bcccc, 0xccccccba}, +{31,0,123,__LINE__, 0x40067576, 0x7f540425, 0x401bffff, 0xffffffed}, +{31,0,123,__LINE__, 0x40068a7e, 0x0ffbaf3e, 0x401c3333, 0x33333320}, +{31,0,123,__LINE__, 0x40069f5f, 0x94ade768, 0x401c6666, 0x66666653}, +{31,0,123,__LINE__, 0x4006b41b, 0x961e9bfc, 0x401c9999, 0x99999986}, +{31,0,123,__LINE__, 0x4006c8b2, 0x9a2619ef, 0x401ccccc, 0xccccccb9}, +{31,0,123,__LINE__, 0x4006dd25, 0x23d54cae, 0x401cffff, 0xffffffec}, +{31,0,123,__LINE__, 0x4006f173, 0xb3894cc2, 0x401d3333, 0x3333331f}, +{31,0,123,__LINE__, 0x4007059e, 0xc6fe4395, 0x401d6666, 0x66666652}, +{31,0,123,__LINE__, 0x400719a6, 0xd961ab50, 0x401d9999, 0x99999985}, +{31,0,123,__LINE__, 0x40072d8c, 0x6363f166, 0x401dcccc, 0xccccccb8}, +{31,0,123,__LINE__, 0x4007414f, 0xdb49821e, 0x401dffff, 0xffffffeb}, +{31,0,123,__LINE__, 0x400754f1, 0xb4fb432b, 0x401e3333, 0x3333331e}, +{31,0,123,__LINE__, 0x40076872, 0x62168307, 0x401e6666, 0x66666651}, +{31,0,123,__LINE__, 0x40077bd2, 0x51fc6288, 0x401e9999, 0x99999984}, +{31,0,123,__LINE__, 0x40078f11, 0xf1e0bdf5, 0x401ecccc, 0xccccccb7}, +{31,0,123,__LINE__, 0x4007a231, 0xacd89a94, 0x401effff, 0xffffffea}, +{31,0,123,__LINE__, 0x4007b531, 0xebe81d6e, 0x401f3333, 0x3333331d}, +{31,0,123,__LINE__, 0x4007c813, 0x16100fdc, 0x401f6666, 0x66666650}, +{31,0,123,__LINE__, 0x4007dad5, 0x905af644, 0x401f9999, 0x99999983}, +{31,0,123,__LINE__, 0x4007ed79, 0xbde9bd0f, 0x401fcccc, 0xccccccb6}, +{31,0,123,__LINE__, 0x4007ffff, 0xfffffff8, 0x401fffff, 0xffffffe9}, +{31,0,123,__LINE__, 0x40081268, 0xb60fef5d, 0x40201999, 0x9999998e}, +{31,0,123,__LINE__, 0x400824b4, 0x3dc5d758, 0x40203333, 0x33333328}, +{31,0,123,__LINE__, 0x400836e2, 0xf3134bfc, 0x40204ccc, 0xccccccc2}, +{31,0,123,__LINE__, 0x400848f5, 0x3039fe23, 0x40206666, 0x6666665c}, +{31,0,123,__LINE__, 0x40085aeb, 0x4dd63bef, 0x40207fff, 0xfffffff6}, +{31,0,123,__LINE__, 0x40086cc5, 0xa2e92012, 0x40209999, 0x99999990}, +{31,0,123,__LINE__, 0x40087e84, 0x84e272cd, 0x4020b333, 0x3333332a}, +{31,0,123,__LINE__, 0x40089028, 0x47aa3f6a, 0x4020cccc, 0xccccccc4}, +{31,0,123,__LINE__, 0x4008a1b1, 0x3daa20ef, 0x4020e666, 0x6666665e}, +{31,0,123,__LINE__, 0x4008b31f, 0xb7d64893, 0x4020ffff, 0xfffffff8}, +{31,0,123,__LINE__, 0x4008c474, 0x05b64073, 0x40211999, 0x99999992}, +{31,0,123,__LINE__, 0x4008d5ae, 0x756d6cde, 0x40213333, 0x3333332c}, +{31,0,123,__LINE__, 0x4008e6cf, 0x53c34e90, 0x40214ccc, 0xccccccc6}, +{31,0,123,__LINE__, 0x4008f7d6, 0xec2b87f5, 0x40216666, 0x66666660}, +{31,0,123,__LINE__, 0x400908c5, 0x88cda79a, 0x40217fff, 0xfffffffa}, +{31,0,123,__LINE__, 0x4009199b, 0x728cb9cd, 0x40219999, 0x99999994}, +{31,0,123,__LINE__, 0x40092a58, 0xf10ea355, 0x4021b333, 0x3333332e}, +{31,0,123,__LINE__, 0x40093afe, 0x4ac34726, 0x4021cccc, 0xccccccc8}, +{31,0,123,__LINE__, 0x40094b8b, 0xc4eb78d0, 0x4021e666, 0x66666662}, +{31,0,123,__LINE__, 0x40095c01, 0xa39fbd66, 0x4021ffff, 0xfffffffc}, +{31,0,123,__LINE__, 0x40096c60, 0x29d6dc80, 0x40221999, 0x99999996}, +{31,0,123,__LINE__, 0x40097ca7, 0x996c42ec, 0x40223333, 0x33333330}, +{31,0,123,__LINE__, 0x40098cd8, 0x3326389c, 0x40224ccc, 0xccccccca}, +{31,0,123,__LINE__, 0x40099cf2, 0x36bbeb37, 0x40226666, 0x66666664}, +{31,0,123,__LINE__, 0x4009acf5, 0xe2db4ec8, 0x40227fff, 0xfffffffe}, +{31,0,123,__LINE__, 0x4009bce3, 0x752ed5de, 0x40229999, 0x99999998}, +{31,0,123,__LINE__, 0x4009ccbb, 0x2a630268, 0x4022b333, 0x33333332}, +{31,0,123,__LINE__, 0x4009dc7d, 0x3e2bd092, 0x4022cccc, 0xcccccccc}, +{31,0,123,__LINE__, 0x4009ec29, 0xeb49fcd8, 0x4022e666, 0x66666666}, +{31,0,123,__LINE__, 0x4009fbc1, 0x6b902681, 0x40230000, 0x00000000}, +{31,0,123,__LINE__, 0x400a0b43, 0xf7e7cf8d, 0x40231999, 0x9999999a}, +{31,0,123,__LINE__, 0x400a1ab1, 0xc8563b43, 0x40233333, 0x33333334}, +{31,0,123,__LINE__, 0x400a2a0b, 0x14012c59, 0x40234ccc, 0xccccccce}, +{31,0,123,__LINE__, 0x400a3950, 0x113383b9, 0x40236666, 0x66666668}, +{31,0,123,__LINE__, 0x400a4880, 0xf561c0e8, 0x40238000, 0x00000002}, +{31,0,123,__LINE__, 0x400a579d, 0xf52e64ea, 0x40239999, 0x9999999c}, +{31,0,123,__LINE__, 0x400a66a7, 0x446e3896, 0x4023b333, 0x33333336}, +{31,0,123,__LINE__, 0x400a759d, 0x162c773b, 0x4023cccc, 0xccccccd0}, +{31,0,123,__LINE__, 0x400a847f, 0x9caede5f, 0x4023e666, 0x6666666a}, +{31,0,123,__LINE__, 0x400a934f, 0x0979a374, 0x40240000, 0x00000004}, +{31,0,123,__LINE__, 0x400aa20b, 0x8d535042, 0x40241999, 0x9999999e}, +{31,0,123,__LINE__, 0x400ab0b5, 0x584886d0, 0x40243333, 0x33333338}, +{31,0,123,__LINE__, 0x400abf4c, 0x99afad75, 0x40244ccc, 0xccccccd2}, +{31,0,123,__LINE__, 0x400acdd1, 0x802c83df, 0x40246666, 0x6666666c}, +{31,0,123,__LINE__, 0x400adc44, 0x39b3a19f, 0x40248000, 0x00000006}, +{31,0,123,__LINE__, 0x400aeaa4, 0xf38ddefe, 0x40249999, 0x999999a0}, +{31,0,123,__LINE__, 0x400af8f3, 0xda5ba8a4, 0x4024b333, 0x3333333a}, +{31,0,123,__LINE__, 0x400b0731, 0x1a183ec6, 0x4024cccc, 0xccccccd4}, +{31,0,123,__LINE__, 0x400b155c, 0xde1ce055, 0x4024e666, 0x6666666e}, +{31,0,123,__LINE__, 0x400b2377, 0x5123e2e5, 0x40250000, 0x00000008}, +{31,0,123,__LINE__, 0x400b3180, 0x9d4bb7b2, 0x40251999, 0x999999a2}, +{31,0,123,__LINE__, 0x400b3f78, 0xec19de68, 0x40253333, 0x3333333c}, +{31,0,123,__LINE__, 0x400b4d60, 0x667dc62a, 0x40254ccc, 0xccccccd6}, +{31,0,123,__LINE__, 0x400b5b37, 0x34d39d4d, 0x40256666, 0x66666670}, +{31,0,123,__LINE__, 0x400b68fd, 0x7ee71059, 0x40258000, 0x0000000a}, +{31,0,123,__LINE__, 0x400b76b3, 0x6bf5f8b1, 0x40259999, 0x999999a4}, +{31,0,123,__LINE__, 0x400b8459, 0x22b2fb5e, 0x4025b333, 0x3333333e}, +{31,0,123,__LINE__, 0x400b91ee, 0xc9481877, 0x4025cccc, 0xccccccd8}, +{31,0,123,__LINE__, 0x400b9f74, 0x85592b84, 0x4025e666, 0x66666672}, +{31,0,123,__LINE__, 0x400bacea, 0x7c065d48, 0x40260000, 0x0000000c}, +{31,0,123,__LINE__, 0x400bba50, 0xd1ee8761, 0x40261999, 0x999999a6}, +{31,0,123,__LINE__, 0x400bc7a7, 0xab318a13, 0x40263333, 0x33333340}, +{31,0,123,__LINE__, 0x400bd4ef, 0x2b7294aa, 0x40264ccc, 0xccccccda}, +{31,0,123,__LINE__, 0x400be227, 0x75da60c2, 0x40266666, 0x66666674}, +{31,0,123,__LINE__, 0x400bef50, 0xad1960e1, 0x40268000, 0x0000000e}, +{31,0,123,__LINE__, 0x400bfc6a, 0xf369e29e, 0x40269999, 0x999999a8}, +{31,0,123,__LINE__, 0x400c0976, 0x6a9224c8, 0x4026b333, 0x33333342}, +{31,0,123,__LINE__, 0x400c1673, 0x33e661cb, 0x4026cccc, 0xccccccdc}, +{31,0,123,__LINE__, 0x400c2361, 0x704acea3, 0x4026e666, 0x66666676}, +{31,0,123,__LINE__, 0x400c3041, 0x40358eb2, 0x40270000, 0x00000010}, +{31,0,123,__LINE__, 0x400c3d12, 0xc3b09cba, 0x40271999, 0x999999aa}, +{31,0,123,__LINE__, 0x400c49d6, 0x1a5ba94e, 0x40273333, 0x33333344}, +{31,0,123,__LINE__, 0x400c568b, 0x636deef0, 0x40274ccc, 0xccccccde}, +{31,0,123,__LINE__, 0x400c6332, 0xbdb7fc33, 0x40276666, 0x66666678}, +{31,0,123,__LINE__, 0x400c6fcc, 0x47a5740c, 0x40278000, 0x00000012}, +{31,0,123,__LINE__, 0x400c7c58, 0x1f3ec4ad, 0x40279999, 0x999999ac}, +{31,0,123,__LINE__, 0x400c88d6, 0x622ad50a, 0x4027b333, 0x33333346}, +{31,0,123,__LINE__, 0x400c9547, 0x2db0a95e, 0x4027cccc, 0xcccccce0}, +{31,0,123,__LINE__, 0x400ca1aa, 0x9eb8feda, 0x4027e666, 0x6666667a}, +{31,0,123,__LINE__, 0x400cae00, 0xd1cfdebe, 0x40280000, 0x00000014}, +{31,0,123,__LINE__, 0x400cba49, 0xe326290e, 0x40281999, 0x999999ae}, +{31,0,123,__LINE__, 0x400cc685, 0xee93171c, 0x40283333, 0x33333348}, +{31,0,123,__LINE__, 0x400cd2b5, 0x0f95b61e, 0x40284ccc, 0xcccccce2}, +{31,0,123,__LINE__, 0x400cded7, 0x615659f4, 0x40286666, 0x6666667c}, +{31,0,123,__LINE__, 0x400ceaec, 0xfea80864, 0x40288000, 0x00000016}, +{31,0,123,__LINE__, 0x400cf6f6, 0x0209dce9, 0x40289999, 0x999999b0}, +{31,0,123,__LINE__, 0x400d02f2, 0x85a8654d, 0x4028b333, 0x3333334a}, +{31,0,123,__LINE__, 0x400d0ee2, 0xa35ef736, 0x4028cccc, 0xcccccce4}, +{31,0,123,__LINE__, 0x400d1ac6, 0x74b8fed8, 0x4028e666, 0x6666667e}, +{31,0,123,__LINE__, 0x400d269e, 0x12f346ee, 0x40290000, 0x00000018}, +{31,0,123,__LINE__, 0x400d3269, 0x96fd3a26, 0x40291999, 0x999999b2}, +{31,0,123,__LINE__, 0x400d3e29, 0x197a1e2f, 0x40293333, 0x3333334c}, +{31,0,123,__LINE__, 0x400d49dc, 0xb2c24886, 0x40294ccc, 0xcccccce6}, +{31,0,123,__LINE__, 0x400d5584, 0x7ae44d27, 0x40296666, 0x66666680}, +{31,0,123,__LINE__, 0x400d6120, 0x89a62759, 0x40298000, 0x0000001a}, +{31,0,123,__LINE__, 0x400d6cb0, 0xf6865c9a, 0x40299999, 0x999999b4}, +{31,0,123,__LINE__, 0x400d7835, 0xd8bd19f1, 0x4029b333, 0x3333334e}, +{31,0,123,__LINE__, 0x400d83af, 0x473d4ba3, 0x4029cccc, 0xcccccce8}, +{31,0,123,__LINE__, 0x400d8f1d, 0x58b5af91, 0x4029e666, 0x66666682}, +{31,0,123,__LINE__, 0x400d9a80, 0x2391e240, 0x402a0000, 0x0000001c}, +{31,0,123,__LINE__, 0x400da5d7, 0xbdfb66ba, 0x402a1999, 0x999999b6}, +{31,0,123,__LINE__, 0x400db124, 0x3ddaa96c, 0x402a3333, 0x33333350}, +{31,0,123,__LINE__, 0x400dbc65, 0xb8d7fe04, 0x402a4ccc, 0xccccccea}, +{31,0,123,__LINE__, 0x400dc79c, 0x445c9892, 0x402a6666, 0x66666684}, +{31,0,123,__LINE__, 0x400dd2c7, 0xf59381e2, 0x402a8000, 0x0000001e}, +{31,0,123,__LINE__, 0x400ddde8, 0xe16a8749, 0x402a9999, 0x999999b8}, +{31,0,123,__LINE__, 0x400de8ff, 0x1c9325ea, 0x402ab333, 0x33333352}, +{31,0,123,__LINE__, 0x400df40a, 0xbb837199, 0x402acccc, 0xccccccec}, +{31,0,123,__LINE__, 0x400dff0b, 0xd276f76e, 0x402ae666, 0x66666686}, +{31,0,123,__LINE__, 0x400e0a02, 0x756f9c2a, 0x402b0000, 0x00000020}, +{31,0,123,__LINE__, 0x400e14ee, 0xb836767a, 0x402b1999, 0x999999ba}, +{31,0,123,__LINE__, 0x400e1fd0, 0xae5ca535, 0x402b3333, 0x33333354}, +{31,0,123,__LINE__, 0x400e2aa8, 0x6b3c21b1, 0x402b4ccc, 0xccccccee}, +{31,0,123,__LINE__, 0x400e3576, 0x01f88e38, 0x402b6666, 0x66666688}, +{31,0,123,__LINE__, 0x400e4039, 0x858000c2, 0x402b8000, 0x00000022}, +{31,0,123,__LINE__, 0x400e4af3, 0x088bc9fb, 0x402b9999, 0x999999bc}, +{31,0,123,__LINE__, 0x400e55a2, 0x9da138b4, 0x402bb333, 0x33333356}, +{31,0,123,__LINE__, 0x400e6048, 0x571259cb, 0x402bcccc, 0xccccccf0}, +{31,0,123,__LINE__, 0x400e6ae4, 0x46feb4a2, 0x402be666, 0x6666668a}, +{31,0,123,__LINE__, 0x400e7576, 0x7f54043c, 0x402c0000, 0x00000024}, +{31,0,123,__LINE__, 0x400e7fff, 0x11ceed00, 0x402c1999, 0x999999be}, +{31,0,123,__LINE__, 0x400e8a7e, 0x0ffbaf56, 0x402c3333, 0x33333358}, +{31,0,123,__LINE__, 0x400e94f3, 0x8b36d702, 0x402c4ccc, 0xccccccf2}, +{31,0,123,__LINE__, 0x400e9f5f, 0x94ade780, 0x402c6666, 0x6666668c}, +{31,0,123,__LINE__, 0x400ea9c2, 0x3d600544, 0x402c8000, 0x00000026}, +{31,0,123,__LINE__, 0x400eb41b, 0x961e9c13, 0x402c9999, 0x999999c0}, +{31,0,123,__LINE__, 0x400ebe6b, 0xaf8e0267, 0x402cb333, 0x3333335a}, +{31,0,123,__LINE__, 0x400ec8b2, 0x9a261a07, 0x402ccccc, 0xccccccf4}, +{31,0,123,__LINE__, 0x400ed2f0, 0x6632edd0, 0x402ce666, 0x6666668e}, +{31,0,123,__LINE__, 0x400edd25, 0x23d54cc6, 0x402d0000, 0x00000028}, +{31,0,123,__LINE__, 0x400ee750, 0xe303627d, 0x402d1999, 0x999999c2}, +{31,0,123,__LINE__, 0x400ef173, 0xb3894cda, 0x402d3333, 0x3333335c}, +{31,0,123,__LINE__, 0x400efb8d, 0xa509af56, 0x402d4ccc, 0xccccccf6}, +{31,0,123,__LINE__, 0x400f059e, 0xc6fe43ad, 0x402d6666, 0x66666690}, +{31,0,123,__LINE__, 0x400f0fa7, 0x28b86826, 0x402d8000, 0x0000002a}, +{31,0,123,__LINE__, 0x400f19a6, 0xd961ab68, 0x402d9999, 0x999999c4}, +{31,0,123,__LINE__, 0x400f239d, 0xe7fc55fe, 0x402db333, 0x3333335e}, +{31,0,123,__LINE__, 0x400f2d8c, 0x6363f17e, 0x402dcccc, 0xccccccf8}, +{31,0,123,__LINE__, 0x400f3772, 0x5a4dcd7c, 0x402de666, 0x66666692}, +{31,0,123,__LINE__, 0x400f414f, 0xdb498236, 0x402e0000, 0x0000002c}, +{31,0,123,__LINE__, 0x400f4b24, 0xf4c17120, 0x402e1999, 0x999999c6}, +{31,0,123,__LINE__, 0x400f54f1, 0xb4fb4344, 0x402e3333, 0x33333360}, +{31,0,123,__LINE__, 0x400f5eb6, 0x2a186592, 0x402e4ccc, 0xccccccfa}, +{31,0,123,__LINE__, 0x400f6872, 0x62168321, 0x402e6666, 0x66666694}, +{31,0,123,__LINE__, 0x400f7226, 0x6acffd6c, 0x402e8000, 0x0000002e}, +{31,0,123,__LINE__, 0x400f7bd2, 0x51fc62a1, 0x402e9999, 0x999999c8}, +{31,0,123,__LINE__, 0x400f8576, 0x2530e1f2, 0x402eb333, 0x33333362}, +{31,0,123,__LINE__, 0x400f8f11, 0xf1e0be0f, 0x402ecccc, 0xccccccfc}, +{31,0,123,__LINE__, 0x400f98a5, 0xc55dbdc0, 0x402ee666, 0x66666696}, +{31,0,123,__LINE__, 0x400fa231, 0xacd89aae, 0x402f0000, 0x00000030}, +{31,0,123,__LINE__, 0x400fabb5, 0xb5616e63, 0x402f1999, 0x999999ca}, +{31,0,123,__LINE__, 0x400fb531, 0xebe81d88, 0x402f3333, 0x33333364}, +{31,0,123,__LINE__, 0x400fbea6, 0x5d3cc171, 0x402f4ccc, 0xccccccfe}, +{31,0,123,__LINE__, 0x400fc813, 0x16100ff7, 0x402f6666, 0x66666698}, +{31,0,123,__LINE__, 0x400fd178, 0x22f3c1a8, 0x402f8000, 0x00000032}, +{31,0,123,__LINE__, 0x400fdad5, 0x905af65f, 0x402f9999, 0x999999cc}, +{31,0,123,__LINE__, 0x400fe42b, 0x6a9a9840, 0x402fb333, 0x33333366}, +{31,0,123,__LINE__, 0x400fed79, 0xbde9bd2a, 0x402fcccc, 0xcccccd00}, +{31,0,123,__LINE__, 0x400ff6c0, 0x9662069a, 0x402fe666, 0x6666669a}, +{31,0,123,__LINE__, 0x40100000, 0x00000009, 0x40300000, 0x0000001a}, +{31,0,123,__LINE__, 0x4010049c, 0x0351be07, 0x40300ccc, 0xcccccce7}, +{31,0,123,__LINE__, 0x40100934, 0x5b07f7bc, 0x40301999, 0x999999b4}, +{31,0,123,__LINE__, 0x40100dc9, 0x0cf665dd, 0x40302666, 0x66666681}, +{31,0,123,__LINE__, 0x4010125a, 0x1ee2ebb9, 0x40303333, 0x3333334e}, +{31,0,123,__LINE__, 0x401016e7, 0x9685c2dc, 0x40304000, 0x0000001b}, +{31,0,123,__LINE__, 0x40101b71, 0x7989a60b, 0x40304ccc, 0xcccccce8}, +{31,0,123,__LINE__, 0x40101ff7, 0xcd8bfb9d, 0x40305999, 0x999999b5}, +{31,0,123,__LINE__, 0x4010247a, 0x981cff1f, 0x40306666, 0x66666682}, +{31,0,123,__LINE__, 0x401028f9, 0xdebfea69, 0x40307333, 0x3333334f}, +{31,0,123,__LINE__, 0x40102d75, 0xa6eb1e05, 0x40308000, 0x0000001c}, +{31,0,123,__LINE__, 0x401031ed, 0xf60848fd, 0x40308ccc, 0xcccccce9}, +{31,0,123,__LINE__, 0x40103662, 0xd1749016, 0x40309999, 0x999999b6}, +{31,0,123,__LINE__, 0x40103ad4, 0x3e80b46a, 0x4030a666, 0x66666683}, +{31,0,123,__LINE__, 0x40103f42, 0x42713974, 0x4030b333, 0x33333350}, +{31,0,123,__LINE__, 0x401043ac, 0xe27e8a88, 0x4030c000, 0x0000001d}, +{31,0,123,__LINE__, 0x40104814, 0x23d51fc2, 0x4030cccc, 0xccccccea}, +{31,0,123,__LINE__, 0x40104c78, 0x0b95a25b, 0x4030d999, 0x999999b7}, +{31,0,123,__LINE__, 0x401050d8, 0x9ed51084, 0x4030e666, 0x66666684}, +{31,0,123,__LINE__, 0x40105535, 0xe29ce0af, 0x4030f333, 0x33333351}, +{31,0,123,__LINE__, 0x4010598f, 0xdbeb2457, 0x40310000, 0x0000001e}, +{31,0,123,__LINE__, 0x40105de6, 0x8fb2aa41, 0x40310ccc, 0xcccccceb}, +{31,0,123,__LINE__, 0x4010623a, 0x02db2046, 0x40311999, 0x999999b8}, +{31,0,123,__LINE__, 0x4010668a, 0x3a413495, 0x40312666, 0x66666685}, +{31,0,123,__LINE__, 0x40106ad7, 0x3ab6b67c, 0x40313333, 0x33333352}, +{31,0,123,__LINE__, 0x40106f21, 0x0902b6b9, 0x40314000, 0x0000001f}, +{31,0,123,__LINE__, 0x40107367, 0xa9e1a755, 0x40314ccc, 0xccccccec}, +{31,0,123,__LINE__, 0x401077ab, 0x22057b00, 0x40315999, 0x999999b9}, +{31,0,123,__LINE__, 0x40107beb, 0x7615c407, 0x40316666, 0x66666686}, +{31,0,123,__LINE__, 0x40108028, 0xaaafd2cd, 0x40317333, 0x33333353}, +{31,0,123,__LINE__, 0x40108462, 0xc466d3da, 0x40318000, 0x00000020}, +{31,0,123,__LINE__, 0x40108899, 0xc7c3ed7a, 0x40318ccc, 0xcccccced}, +{31,0,123,__LINE__, 0x40108ccd, 0xb9465cf3, 0x40319999, 0x999999ba}, +{31,0,123,__LINE__, 0x401090fe, 0x9d63934e, 0x4031a666, 0x66666687}, +{31,0,123,__LINE__, 0x4010952c, 0x788751b7, 0x4031b333, 0x33333354}, +{31,0,123,__LINE__, 0x40109957, 0x4f13c57c, 0x4031c000, 0x00000021}, +{31,0,123,__LINE__, 0x40109d7f, 0x2561a39f, 0x4031cccc, 0xccccccee}, +{31,0,123,__LINE__, 0x4010a1a3, 0xffc0440f, 0x4031d999, 0x999999bb}, +{31,0,123,__LINE__, 0x4010a5c5, 0xe275bc74, 0x4031e666, 0x66666688}, +{31,0,123,__LINE__, 0x4010a9e4, 0xd1befaa6, 0x4031f333, 0x33333355}, +{31,0,123,__LINE__, 0x4010ae00, 0xd1cfdebf, 0x40320000, 0x00000022}, +{31,0,123,__LINE__, 0x4010b219, 0xe6d354d3, 0x40320ccc, 0xccccccef}, +{31,0,123,__LINE__, 0x4010b630, 0x14eb6e4c, 0x40321999, 0x999999bc}, +{31,0,123,__LINE__, 0x4010ba43, 0x60317aee, 0x40322666, 0x66666689}, +{31,0,123,__LINE__, 0x4010be53, 0xccb62182, 0x40323333, 0x33333356}, +{31,0,123,__LINE__, 0x4010c261, 0x5e817829, 0x40324000, 0x00000023}, +{31,0,123,__LINE__, 0x4010c66c, 0x19931c5a, 0x40324ccc, 0xccccccf0}, +{31,0,123,__LINE__, 0x4010ca74, 0x01e24a92, 0x40325999, 0x999999bd}, +{31,0,123,__LINE__, 0x4010ce79, 0x1b5df5a7, 0x40326666, 0x6666668a}, +{31,0,123,__LINE__, 0x4010d27b, 0x69ecddd5, 0x40327333, 0x33333357}, +{31,0,123,__LINE__, 0x4010d67a, 0xf16da770, 0x40328000, 0x00000024}, +{31,0,123,__LINE__, 0x4010da77, 0xb5b6f153, 0x40328ccc, 0xccccccf1}, +{31,0,123,__LINE__, 0x4010de71, 0xba976afb, 0x40329999, 0x999999be}, +{31,0,123,__LINE__, 0x4010e269, 0x03d5ea53, 0x4032a666, 0x6666668b}, +{31,0,123,__LINE__, 0x4010e65d, 0x95318140, 0x4032b333, 0x33333358}, +{31,0,123,__LINE__, 0x4010ea4f, 0x726192d7, 0x4032c000, 0x00000025}, +{31,0,123,__LINE__, 0x4010ee3e, 0x9f15e854, 0x4032cccc, 0xccccccf2}, +{31,0,123,__LINE__, 0x4010f22b, 0x1ef6c5c8, 0x4032d999, 0x999999bf}, +{31,0,123,__LINE__, 0x4010f614, 0xf5a4fe78, 0x4032e666, 0x6666668c}, +{31,0,123,__LINE__, 0x4010f9fc, 0x26ba0906, 0x4032f333, 0x33333359}, +{31,0,123,__LINE__, 0x4010fde0, 0xb5c8134c, 0x40330000, 0x00000026}, +{31,0,123,__LINE__, 0x401101c2, 0xa65a15f3, 0x40330ccc, 0xccccccf3}, +{31,0,123,__LINE__, 0x401105a1, 0xfbf3e7d2, 0x40331999, 0x999999c0}, +{31,0,123,__LINE__, 0x4011097e, 0xba1250ff, 0x40332666, 0x6666668d}, +{31,0,123,__LINE__, 0x40110d58, 0xe42b1dad, 0x40333333, 0x3333335a}, +{31,0,123,__LINE__, 0x40111130, 0x7dad30c3, 0x40334000, 0x00000027}, +{31,0,123,__LINE__, 0x40111505, 0x8a009638, 0x40334ccc, 0xccccccf4}, +{31,0,123,__LINE__, 0x401118d8, 0x0c869531, 0x40335999, 0x999999c1}, +{31,0,123,__LINE__, 0x40111ca8, 0x0899c1e8, 0x40336666, 0x6666668e}, +{31,0,123,__LINE__, 0x40112075, 0x818e0f4e, 0x40337333, 0x3333335b}, +{31,0,123,__LINE__, 0x40112440, 0x7ab0e07f, 0x40338000, 0x00000028}, +{31,0,123,__LINE__, 0x40112808, 0xf74919f4, 0x40338ccc, 0xccccccf5}, +{31,0,123,__LINE__, 0x40112bce, 0xfa973280, 0x40339999, 0x999999c2}, +{31,0,123,__LINE__, 0x40112f92, 0x87d54416, 0x4033a666, 0x6666668f}, +{31,0,123,__LINE__, 0x40113353, 0xa2371c56, 0x4033b333, 0x3333335c}, +{31,0,123,__LINE__, 0x40113712, 0x4cea4ceb, 0x4033c000, 0x00000029}, +{31,0,123,__LINE__, 0x40113ace, 0x8b163ba8, 0x4033cccc, 0xccccccf6}, +{31,0,123,__LINE__, 0x40113e88, 0x5fdc3280, 0x4033d999, 0x999999c3}, +{31,0,123,__LINE__, 0x4011423f, 0xce576f3a, 0x4033e666, 0x66666690}, +{31,0,123,__LINE__, 0x401145f4, 0xd99d3304, 0x4033f333, 0x3333335d}, +0,}; +test_log2f(m) {run_vector_1(m,log2f_vec,(char *)(log2f),"log2f","ff"); } diff --git a/newlib/libm/test/log_vec.c b/newlib/libm/test/log_vec.c new file mode 100644 index 000000000..894b75434 --- /dev/null +++ b/newlib/libm/test/log_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type log_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0xc0414837, 0x1bfcbfb9, 0x3cd19000, 0x00000000}, /* -34.5641=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0xc0126bb1, 0xbbb554a8, 0x3f847ae1, 0x47ae16ad}, /* -4.60517=f(0.01000)*/ +{64, 0,123,__LINE__, 0xc00f4bd2, 0xb7ac1b41, 0x3f947ae1, 0x47ae1594}, /* -3.91202=f(0.02000)*/ +{64, 0,123,__LINE__, 0xc00c0d6e, 0x3a14285c, 0x3f9eb851, 0xeb851fd2}, /* -3.50655=f(0.03000)*/ +{64, 0,123,__LINE__, 0xc009c041, 0xf7ed8cfc, 0x3fa47ae1, 0x47ae1508}, /* -3.21887=f(0.04000)*/ +{64, 0,123,__LINE__, 0xc007f742, 0x7b73e365, 0x3fa99999, 0x99999a27}, /* -2.99573=f(0.05000)*/ +{64, 0,123,__LINE__, 0xc00681dd, 0x7a559a05, 0x3faeb851, 0xeb851f46}, /* -2.81341=f(0.06000)*/ +{64, 0,123,__LINE__, 0xc005462a, 0x20517ce0, 0x3fb1eb85, 0x1eb85232}, /* -2.65926=f(0.07000)*/ +{64, 0,123,__LINE__, 0xc00434b1, 0x382efe9c, 0x3fb47ae1, 0x47ae14c1}, /* -2.52572=f(0.08000)*/ +{64, 0,123,__LINE__, 0xc0034378, 0xfcbda708, 0x3fb70a3d, 0x70a3d750}, /* -2.40794=f(0.09000)*/ +{64, 0,123,__LINE__, 0xc0026bb1, 0xbbb55500, 0x3fb99999, 0x999999df}, /* -2.30258=f(0.10000)*/ +{64, 0,123,__LINE__, 0xc001a87f, 0xbfeb72cc, 0x3fbc28f5, 0xc28f5c6e}, /* -2.20727=f(0.11000)*/ +{64, 0,123,__LINE__, 0xc000f64c, 0xba970b9c, 0x3fbeb851, 0xeb851efd}, /* -2.12026=f(0.12000)*/ +{64, 0,123,__LINE__, 0xc000525f, 0x4c391dca, 0x3fc0a3d7, 0x0a3d70c6}, /* -2.04022=f(0.13000)*/ +{64, 0,123,__LINE__, 0xbfff7532, 0xc125dce8, 0x3fc1eb85, 0x1eb8520e}, /* -1.96611=f(0.14000)*/ +{64, 0,123,__LINE__, 0xbffe5a9a, 0x7c3ac3fb, 0x3fc33333, 0x33333356}, /* -1.89712=f(0.15000)*/ +{64, 0,123,__LINE__, 0xbffd5240, 0xf0e0e05c, 0x3fc47ae1, 0x47ae149e}, /* -1.83258=f(0.16000)*/ +{64, 0,123,__LINE__, 0xbffc59ef, 0x6ae05548, 0x3fc5c28f, 0x5c28f5e6}, /* -1.77195=f(0.17000)*/ +{64, 0,123,__LINE__, 0xbffb6fd0, 0x79fe3130, 0x3fc70a3d, 0x70a3d72e}, /* -1.71479=f(0.18000)*/ +{64, 0,123,__LINE__, 0xbffa925a, 0xe2cbede6, 0x3fc851eb, 0x851eb876}, /* -1.66073=f(0.19000)*/ +{64, 0,123,__LINE__, 0xbff9c041, 0xf7ed8d1d, 0x3fc99999, 0x999999be}, /* -1.60943=f(0.20000)*/ +{64, 0,123,__LINE__, 0xbff8f869, 0xc5f5f6de, 0x3fcae147, 0xae147b06}, /* -1.56064=f(0.21000)*/ +{64, 0,123,__LINE__, 0xbff839de, 0x0059c8b2, 0x3fcc28f5, 0xc28f5c4e}, /* -1.51412=f(0.22000)*/ +{64, 0,123,__LINE__, 0xbff783ca, 0xf331ec62, 0x3fcd70a3, 0xd70a3d96}, /* -1.46967=f(0.23000)*/ +{64, 0,123,__LINE__, 0xbff6d577, 0xf5b0fa51, 0x3fceb851, 0xeb851ede}, /* -1.42711=f(0.24000)*/ +{64, 0,123,__LINE__, 0xbff62e42, 0xfefa39dc, 0x3fd00000, 0x00000013}, /* -1.38629=f(0.25000)*/ +{64, 0,123,__LINE__, 0xbff58d9d, 0x18f51eaa, 0x3fd0a3d7, 0x0a3d70b7}, /* -1.34707=f(0.26000)*/ +{64, 0,123,__LINE__, 0xbff4f307, 0x7ece4b24, 0x3fd147ae, 0x147ae15b}, /* -1.30933=f(0.27000)*/ +{64, 0,123,__LINE__, 0xbff45e11, 0x41a8bffe, 0x3fd1eb85, 0x1eb851ff}, /* -1.27296=f(0.28000)*/ +{64, 0,123,__LINE__, 0xbff3ce55, 0x57395808, 0x3fd28f5c, 0x28f5c2a3}, /* -1.23787=f(0.29000)*/ +{64, 0,123,__LINE__, 0xbff34378, 0xfcbda710, 0x3fd33333, 0x33333347}, /* -1.20397=f(0.30000)*/ +{64, 0,123,__LINE__, 0xbff2bd2a, 0x5db2fd92, 0x3fd3d70a, 0x3d70a3eb}, /* -1.17118=f(0.31000)*/ +{64, 0,123,__LINE__, 0xbff23b1f, 0x7163c370, 0x3fd47ae1, 0x47ae148f}, /* -1.13943=f(0.32000)*/ +{64, 0,123,__LINE__, 0xbff1bd15, 0x0529e2a5, 0x3fd51eb8, 0x51eb8533}, /* -1.10866=f(0.33000)*/ +{64, 0,123,__LINE__, 0xbff142cd, 0xeb63385c, 0x3fd5c28f, 0x5c28f5d7}, /* -1.07881=f(0.34000)*/ +{64, 0,123,__LINE__, 0xbff0cc12, 0x48b56cbd, 0x3fd66666, 0x6666667b}, /* -1.04982=f(0.35000)*/ +{64, 0,123,__LINE__, 0xbff058ae, 0xfa811443, 0x3fd70a3d, 0x70a3d71f}, /* -1.02165=f(0.36000)*/ +{64, 0,123,__LINE__, 0xbfefd0ea, 0x24bf899a, 0x3fd7ae14, 0x7ae147c3}, /* -0.99425=f(0.37000)*/ +{64, 0,123,__LINE__, 0xbfeef672, 0xc69da1ef, 0x3fd851eb, 0x851eb867}, /* -0.96758=f(0.38000)*/ +{64, 0,123,__LINE__, 0xbfee21a8, 0x3b8a7138, 0x3fd8f5c2, 0x8f5c290b}, /* -0.94160=f(0.39000)*/ +{64, 0,123,__LINE__, 0xbfed5240, 0xf0e0e05d, 0x3fd99999, 0x999999af}, /* -0.91629=f(0.40000)*/ +{64, 0,123,__LINE__, 0xbfec87f8, 0xc76ff75b, 0x3fda3d70, 0xa3d70a53}, /* -0.89159=f(0.41000)*/ +{64, 0,123,__LINE__, 0xbfebc290, 0x8cf1b3df, 0x3fdae147, 0xae147af7}, /* -0.86750=f(0.42000)*/ +{64, 0,123,__LINE__, 0xbfeb01cd, 0x8556f84e, 0x3fdb851e, 0xb851eb9b}, /* -0.84397=f(0.43000)*/ +{64, 0,123,__LINE__, 0xbfea4579, 0x01b95786, 0x3fdc28f5, 0xc28f5c3f}, /* -0.82098=f(0.44000)*/ +{64, 0,123,__LINE__, 0xbfe98d60, 0x031b8202, 0x3fdccccc, 0xcccccce3}, /* -0.79850=f(0.45000)*/ +{64, 0,123,__LINE__, 0xbfe8d952, 0xe7699ee4, 0x3fdd70a3, 0xd70a3d87}, /* -0.77652=f(0.46000)*/ +{64, 0,123,__LINE__, 0xbfe82925, 0x1f66e5bb, 0x3fde147a, 0xe147ae2b}, /* -0.75502=f(0.47000)*/ +{64, 0,123,__LINE__, 0xbfe77cac, 0xec67bac2, 0x3fdeb851, 0xeb851ecf}, /* -0.73396=f(0.48000)*/ +{64, 0,123,__LINE__, 0xbfe6d3c3, 0x24e13f37, 0x3fdf5c28, 0xf5c28f73}, /* -0.71334=f(0.49000)*/ +{64, 0,123,__LINE__, 0xbfe62e42, 0xfefa39d9, 0x3fe00000, 0x0000000b}, /* -0.69314=f(0.50000)*/ +{64, 0,123,__LINE__, 0xbfe58c09, 0xe066a49a, 0x3fe051eb, 0x851eb85d}, /* -0.67334=f(0.51000)*/ +{64, 0,123,__LINE__, 0xbfe4ecf7, 0x32f00374, 0x3fe0a3d7, 0x0a3d70af}, /* -0.65392=f(0.52000)*/ +{64, 0,123,__LINE__, 0xbfe450ec, 0x3d21b5ec, 0x3fe0f5c2, 0x8f5c2901}, /* -0.63487=f(0.53000)*/ +{64, 0,123,__LINE__, 0xbfe3b7cb, 0xfea25c68, 0x3fe147ae, 0x147ae153}, /* -0.61618=f(0.54000)*/ +{64, 0,123,__LINE__, 0xbfe3217b, 0x0fd2b102, 0x3fe19999, 0x999999a5}, /* -0.59783=f(0.55000)*/ +{64, 0,123,__LINE__, 0xbfe28ddf, 0x8457461c, 0x3fe1eb85, 0x1eb851f7}, /* -0.57981=f(0.56000)*/ +{64, 0,123,__LINE__, 0xbfe1fce0, 0xd03dd5d1, 0x3fe23d70, 0xa3d70a49}, /* -0.56211=f(0.57000)*/ +{64, 0,123,__LINE__, 0xbfe16e67, 0xaf78762e, 0x3fe28f5c, 0x28f5c29b}, /* -0.54472=f(0.58000)*/ +{64, 0,123,__LINE__, 0xbfe0e25e, 0x0f715cd2, 0x3fe2e147, 0xae147aed}, /* -0.52763=f(0.59000)*/ +{64, 0,123,__LINE__, 0xbfe058ae, 0xfa81143e, 0x3fe33333, 0x3333333f}, /* -0.51082=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbfdfa28d, 0x0a2e9062, 0x3fe3851e, 0xb851eb91}, /* -0.49429=f(0.61000)*/ +{64, 0,123,__LINE__, 0xbfde9823, 0x78d78284, 0x3fe3d70a, 0x3d70a3e3}, /* -0.47803=f(0.62000)*/ +{64, 0,123,__LINE__, 0xbfdd91fd, 0x2d23cf80, 0x3fe428f5, 0xc28f5c35}, /* -0.46203=f(0.63000)*/ +{64, 0,123,__LINE__, 0xbfdc8ff7, 0xc79a99fc, 0x3fe47ae1, 0x47ae1487}, /* -0.44628=f(0.64000)*/ +{64, 0,123,__LINE__, 0xbfdb91f2, 0x8212b9dd, 0x3fe4cccc, 0xccccccd9}, /* -0.43078=f(0.65000)*/ +{64, 0,123,__LINE__, 0xbfda97ce, 0x16b316cd, 0x3fe51eb8, 0x51eb852b}, /* -0.41551=f(0.66000)*/ +{64, 0,123,__LINE__, 0xbfd9a16c, 0xa8d43e5d, 0x3fe570a3, 0xd70a3d7d}, /* -0.40047=f(0.67000)*/ +{64, 0,123,__LINE__, 0xbfd8aeb1, 0xaf986da8, 0x3fe5c28f, 0x5c28f5cf}, /* -0.38566=f(0.68000)*/ +{64, 0,123,__LINE__, 0xbfd7bf81, 0xe213a589, 0x3fe6147a, 0xe147ae21}, /* -0.37106=f(0.69000)*/ +{64, 0,123,__LINE__, 0xbfd6d3c3, 0x24e13f2b, 0x3fe66666, 0x66666673}, /* -0.35667=f(0.70000)*/ +{64, 0,123,__LINE__, 0xbfd5eb5c, 0x7907e4a5, 0x3fe6b851, 0xeb851ec5}, /* -0.34249=f(0.71000)*/ +{64, 0,123,__LINE__, 0xbfd50635, 0xec0fdd45, 0x3fe70a3d, 0x70a3d717}, /* -0.32850=f(0.72000)*/ +{64, 0,123,__LINE__, 0xbfd42438, 0x893252d2, 0x3fe75c28, 0xf5c28f69}, /* -0.31471=f(0.73000)*/ +{64, 0,123,__LINE__, 0xbfd3454e, 0x4b8a9f6d, 0x3fe7ae14, 0x7ae147bb}, /* -0.30110=f(0.74000)*/ +{64, 0,123,__LINE__, 0xbfd26962, 0x1134db70, 0x3fe80000, 0x0000000d}, /* -0.28768=f(0.75000)*/ +{64, 0,123,__LINE__, 0xbfd1905f, 0x8f46d015, 0x3fe851eb, 0x851eb85f}, /* -0.27443=f(0.76000)*/ +{64, 0,123,__LINE__, 0xbfd0ba33, 0x46922d7b, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.26136=f(0.77000)*/ +{64, 0,123,__LINE__, 0xbfcfcd94, 0xf240dd4b, 0x3fe8f5c2, 0x8f5c2903}, /* -0.24846=f(0.78000)*/ +{64, 0,123,__LINE__, 0xbfce2c26, 0x40b4740e, 0x3fe947ae, 0x147ae155}, /* -0.23572=f(0.79000)*/ +{64, 0,123,__LINE__, 0xbfcc8ff7, 0xc79a99de, 0x3fe99999, 0x999999a7}, /* -0.22314=f(0.80000)*/ +{64, 0,123,__LINE__, 0xbfcaf8e8, 0x210a411b, 0x3fe9eb85, 0x1eb851f9}, /* -0.21072=f(0.81000)*/ +{64, 0,123,__LINE__, 0xbfc966d7, 0x21d6f5d6, 0x3fea3d70, 0xa3d70a4b}, /* -0.19845=f(0.82000)*/ +{64, 0,123,__LINE__, 0xbfc7d9a5, 0xca4e123b, 0x3fea8f5c, 0x28f5c29d}, /* -0.18632=f(0.83000)*/ +{64, 0,123,__LINE__, 0xbfc65136, 0x37dde7e6, 0x3feae147, 0xae147aef}, /* -0.17435=f(0.84000)*/ +{64, 0,123,__LINE__, 0xbfc4cd6b, 0x97964138, 0x3feb3333, 0x33333341}, /* -0.16251=f(0.85000)*/ +{64, 0,123,__LINE__, 0xbfc34e2a, 0x1972f9a1, 0x3feb851e, 0xb851eb93}, /* -0.15082=f(0.86000)*/ +{59, 0,123,__LINE__, 0xbfc1d356, 0xe462a82f, 0x3febd70a, 0x3d70a3e5}, /* -0.13926=f(0.87000)*/ +{64, 0,123,__LINE__, 0xbfc05cd8, 0x0afc767f, 0x3fec28f5, 0xc28f5c37}, /* -0.12783=f(0.88000)*/ +{64, 0,123,__LINE__, 0xbfbdd529, 0x01b28754, 0x3fec7ae1, 0x47ae1489}, /* -0.11653=f(0.89000)*/ +{64, 0,123,__LINE__, 0xbfbaf8e8, 0x210a40df, 0x3feccccc, 0xccccccdb}, /* -0.10536=f(0.90000)*/ +{64, 0,123,__LINE__, 0xbfb824be, 0xa3fe154f, 0x3fed1eb8, 0x51eb852d}, /* -0.09431=f(0.91000)*/ +{64, 0,123,__LINE__, 0xbfb5587f, 0x437b27ef, 0x3fed70a3, 0xd70a3d7f}, /* -0.08338=f(0.92000)*/ +{64, 0,123,__LINE__, 0xbfb293fe, 0x305fa8fe, 0x3fedc28f, 0x5c28f5d1}, /* -0.07257=f(0.93000)*/ +{64, 0,123,__LINE__, 0xbfafae22, 0x06cabd40, 0x3fee147a, 0xe147ae23}, /* -0.06187=f(0.94000)*/ +{64, 0,123,__LINE__, 0xbfaa431d, 0x5bcc1842, 0x3fee6666, 0x66666675}, /* -0.05129=f(0.95000)*/ +{64, 0,123,__LINE__, 0xbfa4e69e, 0xd6d80db9, 0x3feeb851, 0xeb851ec7}, /* -0.04082=f(0.96000)*/ +{64, 0,123,__LINE__, 0xbf9f30b2, 0xd0091b9b, 0x3fef0a3d, 0x70a3d719}, /* -0.03045=f(0.97000)*/ +{64, 0,123,__LINE__, 0xbf94b004, 0xbce0aa0d, 0x3fef5c28, 0xf5c28f6b}, /* -0.02020=f(0.98000)*/ +{64, 0,123,__LINE__, 0xbf849545, 0x3e6fd0f3, 0x3fefae14, 0x7ae147bd}, /* -0.01005=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3cdbffff, 0xfffffff9, 0x3ff00000, 0x00000007}, /* 1.55431e-15=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3f8460d6, 0xccca39f3, 0x3ff028f5, 0xc28f5c30}, /* 0.00995=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3f944723, 0xd272a9ae, 0x3ff051eb, 0x851eb859}, /* 0.01980=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3f9e44a9, 0xa3bed81e, 0x3ff07ae1, 0x47ae1482}, /* 0.02955=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fa414bc, 0xc0a36734, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.03922=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fa8fb06, 0x3ef2c8c5, 0x3ff0cccc, 0xccccccd4}, /* 0.04879=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fadd56c, 0x1d883fba, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.05826=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fb15213, 0xc27c91e9, 0x3ff11eb8, 0x51eb8526}, /* 0.06765=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fb3b3b8, 0x02beebfa, 0x3ff147ae, 0x147ae14f}, /* 0.07696=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fb60fbd, 0xd2fffc9d, 0x3ff170a3, 0xd70a3d78}, /* 0.08617=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fb8663f, 0x793c4732, 0x3ff19999, 0x999999a1}, /* 0.09531=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3fbab756, 0x84d3e35b, 0x3ff1c28f, 0x5c28f5ca}, /* 0.10436=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3fbd031b, 0xd5179e65, 0x3ff1eb85, 0x1eb851f3}, /* 0.11332=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fbf49a7, 0x9f8b91f8, 0x3ff2147a, 0xe147ae1c}, /* 0.12221=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fc0c588, 0xbaf1905e, 0x3ff23d70, 0xa3d70a45}, /* 0.13102=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fc1e3b8, 0x25dd0621, 0x3ff26666, 0x6666666e}, /* 0.13976=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fc2ff6d, 0x3e070ee9, 0x3ff28f5c, 0x28f5c297}, /* 0.14842=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fc418b2, 0xe73e533e, 0x3ff2b851, 0xeb851ec0}, /* 0.15700=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fc52f93, 0xbe237458, 0x3ff2e147, 0xae147ae9}, /* 0.16551=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fc6441a, 0x1a9027db, 0x3ff30a3d, 0x70a3d712}, /* 0.17395=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3fdce6bb, 0x25aa1316, 0x3ff921fb, 0x54442d18}, /* 0.45158=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ff250d0, 0x48e7a1bd, 0x400921fb, 0x54442d18}, /* 1.14473=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3ff8cd99, 0x441787d0, 0x4012d97c, 0x7f3321d2}, /* 1.55019=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfe058ae, 0xfa8114c8, 0x3fe33333, 0x333332ec}, /* -0.51082=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3feaa731, 0x08717b4a, 0x40026666, 0x66666654}, /* 0.83290=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3ff62e42, 0xfefa39e6, 0x400fffff, 0xffffffee}, /* 1.38629=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3ffbd8f3, 0x0f4bbf32, 0x4016cccc, 0xccccccc4}, /* 1.74046=f(5.70000)*/ +{64, 0,123,__LINE__, 0x40000307, 0xf2440121, 0x401d9999, 0x99999991}, /* 2.00148=f(7.40000)*/ +{64, 0,123,__LINE__, 0x4001aa8b, 0xc6956465, 0x40223333, 0x3333332f}, /* 2.20827=f(9.10000)*/ +{64, 0,123,__LINE__, 0x4003094f, 0x7bcb4c70, 0x40259999, 0x99999995}, /* 2.37954=f(10.8000)*/ +{64, 0,123,__LINE__, 0x400434b1, 0x382efeb6, 0x4028ffff, 0xfffffffb}, /* 2.52572=f(12.5000)*/ +{64, 0,123,__LINE__, 0x400539d6, 0xec52e6f7, 0x402c6666, 0x66666661}, /* 2.65324=f(14.2000)*/ +{64, 0,123,__LINE__, 0x4006216b, 0xe9c36919, 0x402fcccc, 0xccccccc7}, /* 2.76631=f(15.9000)*/ +{64, 0,123,__LINE__, 0x4006f174, 0xfac41c24, 0x40319999, 0x99999997}, /* 2.86789=f(17.6000)*/ +{64, 0,123,__LINE__, 0x4007ae4b, 0x949d47ad, 0x40334ccc, 0xccccccca}, /* 2.96010=f(19.3000)*/ +{64, 0,123,__LINE__, 0x40085b2e, 0x946faeb0, 0x4034ffff, 0xfffffffd}, /* 3.04452=f(21.0000)*/ +{64, 0,123,__LINE__, 0x4008fa9a, 0x7626ce3f, 0x4036b333, 0x33333330}, /* 3.12236=f(22.7000)*/ +{64, 0,123,__LINE__, 0x40098e81, 0x99ec9ffb, 0x40386666, 0x66666663}, /* 3.19458=f(24.4000)*/ +{64, 0,123,__LINE__, 0x400a1871, 0x8ac5ac13, 0x403a1999, 0x99999996}, /* 3.26193=f(26.1000)*/ +{64, 0,123,__LINE__, 0x400a99ac, 0x7c374f8a, 0x403bcccc, 0xccccccc9}, /* 3.32503=f(27.8000)*/ +{64, 0,123,__LINE__, 0x400b133b, 0x33cfc475, 0x403d7fff, 0xfffffffc}, /* 3.38439=f(29.5000)*/ +0,}; +test_log(m) {run_vector_1(m,log_vec,(char *)(log),"log","dd"); } diff --git a/newlib/libm/test/logf_vec.c b/newlib/libm/test/logf_vec.c new file mode 100644 index 000000000..f7b541f87 --- /dev/null +++ b/newlib/libm/test/logf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type logf_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 0, 0,123,__LINE__, 0xc0414837, 0x1c037d43, 0x3cd19000, 0x00000000}, /* -34.5641=f(9.74915e-16)*/ +{11, 0,123,__LINE__, 0xc0126bb1, 0xbe1af2b1, 0x3f847ae1, 0x47ae16ad}, /* -4.60517=f(0.01000)*/ +{13, 0,123,__LINE__, 0xc00f4bd2, 0xbc7756e7, 0x3f947ae1, 0x47ae1594}, /* -3.91202=f(0.02000)*/ +{13, 0,123,__LINE__, 0xc00c0d6e, 0x3cb8c86b, 0x3f9eb851, 0xeb851fd2}, /* -3.50655=f(0.03000)*/ +{12, 0,123,__LINE__, 0xc009c041, 0xfcb8c86b, 0x3fa47ae1, 0x47ae1508}, /* -3.21887=f(0.04000)*/ +{17, 0,123,__LINE__, 0xc007f742, 0x78fa39ef, 0x3fa99999, 0x99999a27}, /* -2.99573=f(0.05000)*/ +{15, 0,123,__LINE__, 0xc00681dd, 0x7cfa39ef, 0x3faeb851, 0xeb851f46}, /* -2.81341=f(0.06000)*/ +{14, 0,123,__LINE__, 0xc005462a, 0x1efa39ef, 0x3fb1eb85, 0x1eb85232}, /* -2.65926=f(0.07000)*/ +{14, 0,123,__LINE__, 0xc00434b1, 0x3cfa39ef, 0x3fb47ae1, 0x47ae14c1}, /* -2.52572=f(0.08000)*/ +{13, 0,123,__LINE__, 0xc0034378, 0xf73bab73, 0x3fb70a3d, 0x70a3d750}, /* -2.40794=f(0.09000)*/ +{13, 0,123,__LINE__, 0xc0026bb1, 0xb93bab73, 0x3fb99999, 0x999999df}, /* -2.30258=f(0.10000)*/ +{13, 0,123,__LINE__, 0xc001a87f, 0xbf3bab73, 0x3fbc28f5, 0xc28f5c6e}, /* -2.20727=f(0.11000)*/ +{13, 0,123,__LINE__, 0xc000f64c, 0xbd3bab73, 0x3fbeb851, 0xeb851efd}, /* -2.12026=f(0.12000)*/ +{13, 0,123,__LINE__, 0xc000525f, 0x513bab73, 0x3fc0a3d7, 0x0a3d70c6}, /* -2.04022=f(0.13000)*/ +{ 1, 0,123,__LINE__, 0xbfff7532, 0xbe7756e7, 0x3fc1eb85, 0x1eb8520e}, /* -1.96611=f(0.14000)*/ +{ 1, 0,123,__LINE__, 0xbffe5a9a, 0x727756e7, 0x3fc33333, 0x33333356}, /* -1.89712=f(0.15000)*/ +{ 1, 0,123,__LINE__, 0xbffd5240, 0xfa7756e7, 0x3fc47ae1, 0x47ae149e}, /* -1.83258=f(0.16000)*/ +{ 1, 0,123,__LINE__, 0xbffc59ef, 0x6e7756e7, 0x3fc5c28f, 0x5c28f5e6}, /* -1.77195=f(0.17000)*/ +{ 1, 0,123,__LINE__, 0xbffb6fd0, 0x6efa39ef, 0x3fc70a3d, 0x70a3d72e}, /* -1.71479=f(0.18000)*/ +{ 1, 0,123,__LINE__, 0xbffa925a, 0xe6fa39ef, 0x3fc851eb, 0x851eb876}, /* -1.66073=f(0.19000)*/ +{ 1, 0,123,__LINE__, 0xbff9c041, 0xf2fa39ef, 0x3fc99999, 0x999999be}, /* -1.60943=f(0.20000)*/ +{ 1, 0,123,__LINE__, 0xbff8f869, 0xcefa39ef, 0x3fcae147, 0xae147b06}, /* -1.56064=f(0.21000)*/ +{ 1, 0,123,__LINE__, 0xbff839dd, 0xfefa39ef, 0x3fcc28f5, 0xc28f5c4e}, /* -1.51412=f(0.22000)*/ +{ 1, 0,123,__LINE__, 0xbff783ca, 0xecfa39ef, 0x3fcd70a3, 0xd70a3d96}, /* -1.46967=f(0.23000)*/ +{ 1, 0,123,__LINE__, 0xbff6d577, 0xfafa39ef, 0x3fceb851, 0xeb851ede}, /* -1.42711=f(0.24000)*/ +{ 1, 0,123,__LINE__, 0xbff62e42, 0xfefa39ef, 0x3fd00000, 0x00000013}, /* -1.38629=f(0.25000)*/ +{ 1, 0,123,__LINE__, 0xbff58d9d, 0x22fa39ef, 0x3fd0a3d7, 0x0a3d70b7}, /* -1.34707=f(0.26000)*/ +{ 1, 0,123,__LINE__, 0xbff4f307, 0x72fa39ef, 0x3fd147ae, 0x147ae15b}, /* -1.30933=f(0.27000)*/ +{ 1, 0,123,__LINE__, 0xbff45e11, 0x3efa39ef, 0x3fd1eb85, 0x1eb851ff}, /* -1.27296=f(0.28000)*/ +{ 1, 0,123,__LINE__, 0xbff3ce55, 0x5afa39ef, 0x3fd28f5c, 0x28f5c2a3}, /* -1.23787=f(0.29000)*/ +{ 1, 0,123,__LINE__, 0xbff34378, 0xf2fa39ef, 0x3fd33333, 0x33333347}, /* -1.20397=f(0.30000)*/ +{ 1, 0,123,__LINE__, 0xbff2bd2a, 0x5efa39ef, 0x3fd3d70a, 0x3d70a3eb}, /* -1.17118=f(0.31000)*/ +{ 1, 0,123,__LINE__, 0xbff23b1f, 0x7afa39ef, 0x3fd47ae1, 0x47ae148f}, /* -1.13943=f(0.32000)*/ +{ 1, 0,123,__LINE__, 0xbff1bd14, 0xfefa39ef, 0x3fd51eb8, 0x51eb8533}, /* -1.10866=f(0.33000)*/ +{ 1, 0,123,__LINE__, 0xbff142cd, 0xeefa39ef, 0x3fd5c28f, 0x5c28f5d7}, /* -1.07881=f(0.34000)*/ +{ 1, 0,123,__LINE__, 0xbff0cc12, 0x4efa39ef, 0x3fd66666, 0x6666667b}, /* -1.04982=f(0.35000)*/ +{ 1, 0,123,__LINE__, 0xbff058ae, 0xef7d1cf8, 0x3fd70a3d, 0x70a3d71f}, /* -1.02165=f(0.36000)*/ +{ 1, 0,123,__LINE__, 0xbfefd0ea, 0x1efa39ef, 0x3fd7ae14, 0x7ae147c3}, /* -0.99425=f(0.37000)*/ +{ 1, 0,123,__LINE__, 0xbfeef672, 0xcefa39ef, 0x3fd851eb, 0x851eb867}, /* -0.96758=f(0.38000)*/ +{ 1, 0,123,__LINE__, 0xbfee21a8, 0x4efa39ef, 0x3fd8f5c2, 0x8f5c290b}, /* -0.94160=f(0.39000)*/ +{ 1, 0,123,__LINE__, 0xbfed5240, 0xe6fa39ef, 0x3fd99999, 0x999999af}, /* -0.91629=f(0.40000)*/ +{ 1, 0,123,__LINE__, 0xbfec87f8, 0xcefa39ef, 0x3fda3d70, 0xa3d70a53}, /* -0.89159=f(0.41000)*/ +{ 1, 0,123,__LINE__, 0xbfebc290, 0x9efa39ef, 0x3fdae147, 0xae147af7}, /* -0.86750=f(0.42000)*/ +{ 1, 0,123,__LINE__, 0xbfeb01cd, 0x7efa39ef, 0x3fdb851e, 0xb851eb9b}, /* -0.84397=f(0.43000)*/ +{ 1, 0,123,__LINE__, 0xbfea4578, 0xfefa39ef, 0x3fdc28f5, 0xc28f5c3f}, /* -0.82098=f(0.44000)*/ +{ 1, 0,123,__LINE__, 0xbfe98d60, 0x0efa39ef, 0x3fdccccc, 0xcccccce3}, /* -0.79850=f(0.45000)*/ +{ 1, 0,123,__LINE__, 0xbfe8d952, 0xdafa39ef, 0x3fdd70a3, 0xd70a3d87}, /* -0.77652=f(0.46000)*/ +{ 1, 0,123,__LINE__, 0xbfe82925, 0x1efa39ef, 0x3fde147a, 0xe147ae2b}, /* -0.75502=f(0.47000)*/ +{ 1, 0,123,__LINE__, 0xbfe77cac, 0xf6fa39ef, 0x3fdeb851, 0xeb851ecf}, /* -0.73396=f(0.48000)*/ +{ 1, 0,123,__LINE__, 0xbfe6d3c3, 0x1afa39ef, 0x3fdf5c28, 0xf5c28f73}, /* -0.71334=f(0.49000)*/ +{ 1, 0,123,__LINE__, 0xbfe62e42, 0xfefa39ef, 0x3fe00000, 0x0000000b}, /* -0.69314=f(0.50000)*/ +{ 1, 0,123,__LINE__, 0xbfe58c09, 0xeafa39ef, 0x3fe051eb, 0x851eb85d}, /* -0.67334=f(0.51000)*/ +{ 1, 0,123,__LINE__, 0xbfe4ecf7, 0x46fa39ef, 0x3fe0a3d7, 0x0a3d70af}, /* -0.65392=f(0.52000)*/ +{ 1, 0,123,__LINE__, 0xbfe450ec, 0x5afa39ef, 0x3fe0f5c2, 0x8f5c2901}, /* -0.63487=f(0.53000)*/ +{ 1, 0,123,__LINE__, 0xbfe3b7cb, 0xe6fa39ef, 0x3fe147ae, 0x147ae153}, /* -0.61618=f(0.54000)*/ +{ 1, 0,123,__LINE__, 0xbfe3217b, 0x02fa39ef, 0x3fe19999, 0x999999a5}, /* -0.59783=f(0.55000)*/ +{ 1, 0,123,__LINE__, 0xbfe28ddf, 0x7efa39ef, 0x3fe1eb85, 0x1eb851f7}, /* -0.57981=f(0.56000)*/ +{ 1, 0,123,__LINE__, 0xbfe1fce0, 0xcefa39ef, 0x3fe23d70, 0xa3d70a49}, /* -0.56211=f(0.57000)*/ +{ 1, 0,123,__LINE__, 0xbfe16e67, 0xb6fa39ef, 0x3fe28f5c, 0x28f5c29b}, /* -0.54472=f(0.58000)*/ +{ 1, 0,123,__LINE__, 0xbfe0e25e, 0x26fa39ef, 0x3fe2e147, 0xae147aed}, /* -0.52763=f(0.59000)*/ +{ 1, 0,123,__LINE__, 0xbfe058ae, 0xe6fa39ef, 0x3fe33333, 0x3333333f}, /* -0.51082=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0xbfdfa28c, 0xfdf473de, 0x3fe3851e, 0xb851eb91}, /* -0.49429=f(0.61000)*/ +{ 1, 0,123,__LINE__, 0xbfde9823, 0x7df473de, 0x3fe3d70a, 0x3d70a3e3}, /* -0.47803=f(0.62000)*/ +{ 1, 0,123,__LINE__, 0xbfdd91fd, 0x3df473de, 0x3fe428f5, 0xc28f5c35}, /* -0.46203=f(0.63000)*/ +{ 1, 0,123,__LINE__, 0xbfdc8ff7, 0xedf473de, 0x3fe47ae1, 0x47ae1487}, /* -0.44628=f(0.64000)*/ +{ 1, 0,123,__LINE__, 0xbfdb91f2, 0x9df473de, 0x3fe4cccc, 0xccccccd9}, /* -0.43078=f(0.65000)*/ +{ 1, 0,123,__LINE__, 0xbfda97cd, 0xfdf473de, 0x3fe51eb8, 0x51eb852b}, /* -0.41551=f(0.66000)*/ +{ 1, 0,123,__LINE__, 0xbfd9a16c, 0x9df473de, 0x3fe570a3, 0xd70a3d7d}, /* -0.40047=f(0.67000)*/ +{ 1, 0,123,__LINE__, 0xbfd8aeb1, 0xbdf473de, 0x3fe5c28f, 0x5c28f5cf}, /* -0.38566=f(0.68000)*/ +{ 1, 0,123,__LINE__, 0xbfd7bf81, 0xfdf473de, 0x3fe6147a, 0xe147ae21}, /* -0.37106=f(0.69000)*/ +{ 1, 0,123,__LINE__, 0xbfd6d3c3, 0x3df473de, 0x3fe66666, 0x66666673}, /* -0.35667=f(0.70000)*/ +{ 1, 0,123,__LINE__, 0xbfd5eb5c, 0x80000000, 0x3fe6b851, 0xeb851ec5}, /* -0.34249=f(0.71000)*/ +{ 1, 0,123,__LINE__, 0xbfd50635, 0xc0000000, 0x3fe70a3d, 0x70a3d717}, /* -0.32850=f(0.72000)*/ +{ 1, 0,123,__LINE__, 0xbfd42438, 0x80000000, 0x3fe75c28, 0xf5c28f69}, /* -0.31471=f(0.73000)*/ +{ 1, 0,123,__LINE__, 0xbfd3454e, 0x40000000, 0x3fe7ae14, 0x7ae147bb}, /* -0.30110=f(0.74000)*/ +{ 1, 0,123,__LINE__, 0xbfd26962, 0x20000000, 0x3fe80000, 0x0000000d}, /* -0.28768=f(0.75000)*/ +{ 1, 0,123,__LINE__, 0xbfd1905f, 0xa0000000, 0x3fe851eb, 0x851eb85f}, /* -0.27443=f(0.76000)*/ +{ 1, 0,123,__LINE__, 0xbfd0ba33, 0x60000000, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.26136=f(0.77000)*/ +{ 1, 0,123,__LINE__, 0xbfcfcd95, 0x40000000, 0x3fe8f5c2, 0x8f5c2903}, /* -0.24846=f(0.78000)*/ +{ 1, 0,123,__LINE__, 0xbfce2c26, 0x20000000, 0x3fe947ae, 0x147ae155}, /* -0.23572=f(0.79000)*/ +{ 1, 0,123,__LINE__, 0xbfcc8ff7, 0xa0000000, 0x3fe99999, 0x999999a7}, /* -0.22314=f(0.80000)*/ +{ 1, 0,123,__LINE__, 0xbfcaf8e8, 0x20000000, 0x3fe9eb85, 0x1eb851f9}, /* -0.21072=f(0.81000)*/ +{ 1, 0,123,__LINE__, 0xbfc966d7, 0x40000000, 0x3fea3d70, 0xa3d70a4b}, /* -0.19845=f(0.82000)*/ +{ 1, 0,123,__LINE__, 0xbfc7d9a6, 0x00000000, 0x3fea8f5c, 0x28f5c29d}, /* -0.18632=f(0.83000)*/ +{ 1, 0,123,__LINE__, 0xbfc65136, 0x80000000, 0x3feae147, 0xae147aef}, /* -0.17435=f(0.84000)*/ +{ 1, 0,123,__LINE__, 0xbfc4cd6b, 0x60000000, 0x3feb3333, 0x33333341}, /* -0.16251=f(0.85000)*/ +{ 1, 0,123,__LINE__, 0xbfc34e2a, 0x00000000, 0x3feb851e, 0xb851eb93}, /* -0.15082=f(0.86000)*/ +{ 1, 0,123,__LINE__, 0xbfc1d356, 0xe0000000, 0x3febd70a, 0x3d70a3e5}, /* -0.13926=f(0.87000)*/ +{ 1, 0,123,__LINE__, 0xbfc05cd8, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* -0.12783=f(0.88000)*/ +{ 1, 0,123,__LINE__, 0xbfbdd529, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* -0.11653=f(0.89000)*/ +{ 1, 0,123,__LINE__, 0xbfbaf8e8, 0x80000000, 0x3feccccc, 0xccccccdb}, /* -0.10536=f(0.90000)*/ +{ 1, 0,123,__LINE__, 0xbfb824be, 0x20000000, 0x3fed1eb8, 0x51eb852d}, /* -0.09431=f(0.91000)*/ +{ 1, 0,123,__LINE__, 0xbfb5587e, 0xe0000000, 0x3fed70a3, 0xd70a3d7f}, /* -0.08338=f(0.92000)*/ +{ 1, 0,123,__LINE__, 0xbfb293fe, 0x20000000, 0x3fedc28f, 0x5c28f5d1}, /* -0.07257=f(0.93000)*/ +{ 1, 0,123,__LINE__, 0xbfafae22, 0x00000000, 0x3fee147a, 0xe147ae23}, /* -0.06187=f(0.94000)*/ +{ 1, 0,123,__LINE__, 0xbfaa431d, 0xc0000000, 0x3fee6666, 0x66666675}, /* -0.05129=f(0.95000)*/ +{ 1, 0,123,__LINE__, 0xbfa4e69f, 0x80000000, 0x3feeb851, 0xeb851ec7}, /* -0.04082=f(0.96000)*/ +{ 1, 0,123,__LINE__, 0xbf9f30b0, 0xe0000000, 0x3fef0a3d, 0x70a3d719}, /* -0.03045=f(0.97000)*/ +{ 1, 0,123,__LINE__, 0xbf94b003, 0x80000000, 0x3fef5c28, 0xf5c28f6b}, /* -0.02020=f(0.98000)*/ +{ 1, 0,123,__LINE__, 0xbf849544, 0x00000000, 0x3fefae14, 0x7ae147bd}, /* -0.01005=f(0.99000)*/ +{ 0, 0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000007}, /* 0.00000=f(1.00000)*/ +{ 0, 0,123,__LINE__, 0x3f8460d5, 0x80000000, 0x3ff028f5, 0xc28f5c30}, /* 0.00995=f(1.01000)*/ +{ 0, 0,123,__LINE__, 0x3f944722, 0x80000000, 0x3ff051eb, 0x851eb859}, /* 0.01980=f(1.02000)*/ +{ 0, 0,123,__LINE__, 0x3f9e44a7, 0xc0000000, 0x3ff07ae1, 0x47ae1482}, /* 0.02955=f(1.03000)*/ +{ 0, 0,123,__LINE__, 0x3fa414bb, 0x80000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.03922=f(1.04000)*/ +{ 0, 0,123,__LINE__, 0x3fa8fb04, 0xa0000000, 0x3ff0cccc, 0xccccccd4}, /* 0.04879=f(1.05000)*/ +{ 0, 0,123,__LINE__, 0x3fadd56a, 0x40000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.05826=f(1.06000)*/ +{ 0, 0,123,__LINE__, 0x3fb15214, 0xa0000000, 0x3ff11eb8, 0x51eb8526}, /* 0.06765=f(1.07000)*/ +{ 0, 0,123,__LINE__, 0x3fb3b3b8, 0xc0000000, 0x3ff147ae, 0x147ae14f}, /* 0.07696=f(1.08000)*/ +{ 0, 0,123,__LINE__, 0x3fb60fbe, 0x40000000, 0x3ff170a3, 0xd70a3d78}, /* 0.08617=f(1.09000)*/ +{ 0, 0,123,__LINE__, 0x3fb8663f, 0xe0000000, 0x3ff19999, 0x999999a1}, /* 0.09531=f(1.10000)*/ +{ 0, 0,123,__LINE__, 0x3fbab756, 0xa0000000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.10436=f(1.11000)*/ +{ 0, 0,123,__LINE__, 0x3fbd031c, 0x00000000, 0x3ff1eb85, 0x1eb851f3}, /* 0.11332=f(1.12000)*/ +{ 0, 0,123,__LINE__, 0x3fbf49a7, 0x60000000, 0x3ff2147a, 0xe147ae1c}, /* 0.12221=f(1.13000)*/ +{ 0, 0,123,__LINE__, 0x3fc0c588, 0xc0000000, 0x3ff23d70, 0xa3d70a45}, /* 0.13102=f(1.14000)*/ +{ 0, 0,123,__LINE__, 0x3fc1e3b8, 0x00000000, 0x3ff26666, 0x6666666e}, /* 0.13976=f(1.15000)*/ +{ 0, 0,123,__LINE__, 0x3fc2ff6d, 0x20000000, 0x3ff28f5c, 0x28f5c297}, /* 0.14841=f(1.16000)*/ +{ 0, 0,123,__LINE__, 0x3fc418b2, 0x80000000, 0x3ff2b851, 0xeb851ec0}, /* 0.15700=f(1.17000)*/ +{ 0, 0,123,__LINE__, 0x3fc52f93, 0x60000000, 0x3ff2e147, 0xae147ae9}, /* 0.16551=f(1.18000)*/ +{ 0, 0,123,__LINE__, 0x3fc6441a, 0x80000000, 0x3ff30a3d, 0x70a3d712}, /* 0.17395=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{ 9,15, 39,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0x3fdce6bb, 0x4df473de, 0x3ff921fb, 0x54442d18}, /* 0.45158=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3ff250d0, 0x52fa39ef, 0x400921fb, 0x54442d18}, /* 1.14473=f(3.14159)*/ +{ 1, 0,123,__LINE__, 0x3ff8cd99, 0x42fa39ef, 0x4012d97c, 0x7f3321d2}, /* 1.55019=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0xbfe058ae, 0xe6fa39ef, 0x3fe33333, 0x333332ec}, /* -0.51082=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3feaa730, 0xfefa39ef, 0x40026666, 0x66666654}, /* 0.83290=f(2.30000)*/ +{ 1, 0,123,__LINE__, 0x3ff62e42, 0xfefa39ef, 0x400fffff, 0xffffffee}, /* 1.38629=f(4.00000)*/ +{ 1, 0,123,__LINE__, 0x3ffbd8f3, 0x067756e7, 0x4016cccc, 0xccccccc4}, /* 1.74046=f(5.70000)*/ +{13, 0,123,__LINE__, 0x40000307, 0xf33bab73, 0x401d9999, 0x99999991}, /* 2.00148=f(7.40000)*/ +{13, 0,123,__LINE__, 0x4001aa8b, 0xcd3bab73, 0x40223333, 0x3333332f}, /* 2.20827=f(9.10000)*/ +{13, 0,123,__LINE__, 0x4003094f, 0x7f3bab73, 0x40259999, 0x99999995}, /* 2.37954=f(10.8000)*/ +{15, 0,123,__LINE__, 0x400434b1, 0x36fa39ef, 0x4028ffff, 0xfffffffb}, /* 2.52572=f(12.5000)*/ +{14, 0,123,__LINE__, 0x400539d6, 0xeafa39ef, 0x402c6666, 0x66666661}, /* 2.65324=f(14.2000)*/ +{20, 0,123,__LINE__, 0x4006216b, 0xe68a39ef, 0x402fcccc, 0xccccccc7}, /* 2.76631=f(15.9000)*/ +{16, 0,123,__LINE__, 0x4006f174, 0xfdfa39ef, 0x40319999, 0x99999997}, /* 2.86789=f(17.6000)*/ +{15, 0,123,__LINE__, 0x4007ae4b, 0x8efa39ef, 0x40334ccc, 0xccccccca}, /* 2.96010=f(19.3000)*/ +{12, 0,123,__LINE__, 0x40085b2e, 0x92fa39ef, 0x4034ffff, 0xfffffffd}, /* 3.04452=f(21.0000)*/ +{12, 0,123,__LINE__, 0x4008fa9a, 0x7ab8c86b, 0x4036b333, 0x33333330}, /* 3.12236=f(22.7000)*/ +{12, 0,123,__LINE__, 0x40098e81, 0x96b8c86b, 0x40386666, 0x66666663}, /* 3.19458=f(24.4000)*/ +{12, 0,123,__LINE__, 0x400a1871, 0x8ab8c86b, 0x403a1999, 0x99999996}, /* 3.26193=f(26.1000)*/ +{12, 0,123,__LINE__, 0x400a99ac, 0x78b8c86b, 0x403bcccc, 0xccccccc9}, /* 3.32503=f(27.8000)*/ +{12, 0,123,__LINE__, 0x400b133b, 0x33b8c86b, 0x403d7fff, 0xfffffffc}, /* 3.38439=f(29.5000)*/ +0,}; +test_logf(m) {run_vector_1(m,logf_vec,(char *)(logf),"logf","ff"); } diff --git a/newlib/libm/test/math.c b/newlib/libm/test/math.c new file mode 100644 index 000000000..df63c2df2 --- /dev/null +++ b/newlib/libm/test/math.c @@ -0,0 +1,472 @@ +/* + Test the library maths functions using trusted precomputed test + vectors. + + These vectors were originally generated on a sun3 with a 68881 using + 80 bit precision, but ... + + Each function is called with a variety of interesting arguments. + Note that many of the polynomials we use behave badly when the + domain is stressed, so the numbers in the vectors depend on what is + useful to test - eg sin(1e30) is pointless - the arg has to be + reduced modulo pi, and after that there's no bits of significance + left to evaluate with - any number would be just as precise as any + other. + + +*/ + +#include "test.h" +#include <math.h> +#include <ieeefp.h> +#include <float.h> +#include <math.h> +#include <errno.h> +#include <stdio.h> + +int inacc; + +int merror; +double mretval = 64; +int traperror = 1; +char *mname; + +int verbose; + +/* To test exceptions - we trap them all and return a known value */ +int +_DEFUN(matherr,(e), + struct exception *e) +{ + if (traperror) + { + merror = e->type + 12; + mname = e->name; + e->retval = mretval; + errno = merror + 24; + return 1; + } + return 0; +} + + +void _DEFUN(translate_to,(file,r), + FILE *file _AND + double r) +{ + __ieee_double_shape_type bits; + bits.value = r; + fprintf(file, "0x%08x, 0x%08x", bits.parts.msw, bits.parts.lsw); +} + +int +_DEFUN(ffcheck,( is, p, name, serrno, merror), + double is _AND + one_line_type *p _AND + char *name _AND + int serrno _AND + int merror) +{ + /* Make sure the answer isn't to far wrong from the correct value */ + __ieee_double_shape_type correct, isbits; + int mag; + isbits.value = is; + + correct.parts.msw = p->qs[0].msw; + correct.parts.lsw = p->qs[0].lsw; + + mag = mag_of_error(correct.value, is); + + if (mag < p->error_bit) + { + inacc ++; + + printf("%s:%d, inaccurate answer: bit %d (%08x%08x %08x%08x) (%g %g)\n", + name, p->line, mag, + correct.parts.msw, + correct.parts.lsw, + isbits.parts.msw, + isbits.parts.lsw, + correct.value, is); + } + +#if 0 + if (p->qs[0].merror != merror) + { + printf("testing %s_vec.c:%d, matherr wrong: %d %d\n", + name, p->line, merror, p->qs[0].merror); + } + + if (p->qs[0].errno_val != errno) + { + printf("testing %s_vec.c:%d, errno wrong: %d %d\n", + name, p->line, errno, p->qs[0].errno_val); + + } +#endif + return mag; +} + +double +_DEFUN(thedouble, (msw, lsw), + long msw _AND + long lsw) +{ + __ieee_double_shape_type x; + + x.parts.msw = msw; + x.parts.lsw = lsw; + return x.value; +} + +int calc; +int reduce; + + +_DEFUN(frontline,(f, mag, p, result, merror, errno, args, name), + FILE *f _AND + int mag _AND + one_line_type *p _AND + double result _AND + int merror _AND + int errno _AND + char *args _AND + char *name) +{ + if (reduce && p->error_bit < mag) + { + fprintf(f, "{%2d,", p->error_bit); + } + else + { + fprintf(f, "{%2d,",mag); + } + + + fprintf(f,"%2d,%3d,", merror,errno); + fprintf(f, "__LINE__, "); + + if (calc) + { + translate_to(f, result); + } + else + { + translate_to(f, thedouble(p->qs[0].msw, p->qs[0].lsw)); + } + + fprintf(f, ", "); + + fprintf(f,"0x%08x, 0x%08x", p->qs[1].msw, p->qs[1].lsw); + + + if (args[2]) + { + fprintf(f, ", "); + fprintf(f,"0x%08x, 0x%08x", p->qs[2].msw, p->qs[2].lsw); + } + + fprintf(f,"}, /* %g=f(%g",result, + thedouble(p->qs[1].msw, p->qs[1].lsw)); + + if (args[2]) + { + fprintf(f,", %g", thedouble(p->qs[2].msw,p->qs[2].lsw)); + } + fprintf(f, ")*/\n"); +} + +_DEFUN(finish,(f, vector, result , p, args, name), + FILE *f _AND + int vector _AND + double result _AND + one_line_type *p _AND + char *args _AND + char *name) +{ + int mag; + + mag = ffcheck(result, p,name, merror, errno); + if (vector) + { + frontline(f, mag, p, result, merror, errno, args , name); + } +} +int redo; + +_DEFUN(run_vector_1,(vector, p, func, name, args), + int vector _AND + one_line_type *p _AND + char *func _AND + char *name _AND + char *args) +{ + FILE *f; + int mag; + double result; + + if (vector) + { + + VECOPEN(name, f); + + if (redo) + { + double k; + + for (k = -.2; k < .2; k+= 0.00132) + { + + fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", + k,k+4); + + } + + for (k = -1.2; k < 1.2; k+= 0.01) + { + + fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", + k,k+4); + + } + for (k = -M_PI *2; k < M_PI *2; k+= M_PI/2) + { + + fprintf(f,"{1,1, 1,1, 0,0,0x%08x,0x%08x, 0x%08x, 0x%08x},\n", + k,k+4); + + } + + for (k = -30; k < 30; k+= 1.7) + { + + fprintf(f,"{2,2, 1,1, 0,0, 0x%08x,0x%08x, 0x%08x, 0x%08x},\n", + k,k+4); + + } + VECCLOSE(f, name, args); + return; + } + } + + newfunc(name); + while (p->line) + { + double arg1 = thedouble(p->qs[1].msw, p->qs[1].lsw); + double arg2 = thedouble(p->qs[2].msw, p->qs[2].lsw); + + double r; + double rf; + + errno = 0; + merror = 0; + mname = 0; + + + line(p->line); + + merror = 0; + errno = 123; + + if (strcmp(args,"dd")==0) + { + typedef double _EXFUN((*pdblfunc),(double)); + + /* Double function returning a double */ + + result = ((pdblfunc)(func))(arg1); + + finish(f,vector, result, p, args, name); + } + else if (strcmp(args,"ff")==0) + { + float arga; + double a; + + typedef float _EXFUN((*pdblfunc),(float)); + + /* Double function returning a double */ + + if (arg1 < FLT_MAX ) + { + arga = arg1; + result = ((pdblfunc)(func))(arga); + finish(f, vector, result, p,args, name); + } + } + else if (strcmp(args,"ddd")==0) + { + typedef double _EXFUN((*pdblfunc),(double,double)); + + result = ((pdblfunc)(func))(arg1,arg2); + finish(f, vector, result, p,args, name); + } + else if (strcmp(args,"fff")==0) + { + double a,b; + + float arga; + float argb; + + typedef float _EXFUN((*pdblfunc),(float,float)); + + + if (arg1 < FLT_MAX && arg2 < FLT_MAX) + { + arga = arg1; + argb = arg2; + result = ((pdblfunc)(func))(arga, argb); + finish(f, vector, result, p,args, name); + } + } + else if (strcmp(args,"did")==0) + { + typedef double _EXFUN((*pdblfunc),(int,double)); + + result = ((pdblfunc)(func))((int)arg1,arg2); + finish(f, vector, result, p,args, name); + } + else if (strcmp(args,"fif")==0) + { + double a,b; + + float arga; + float argb; + + typedef float _EXFUN((*pdblfunc),(int,float)); + + + if (arg1 < FLT_MAX && arg2 < FLT_MAX) + { + arga = arg1; + argb = arg2; + result = ((pdblfunc)(func))((int)arga, argb); + finish(f, vector, result, p,args, name); + } + } + + p++; + } + if (vector) + { + VECCLOSE(f, name, args); + } +} + +void +_DEFUN_VOID(test_math) +{ + test_acos(0); + test_acosf(0); + test_acosh(0); + test_acoshf(0); + test_asin(0); + test_asinf(0); + test_asinh(0); + test_asinhf(0); + test_atan(0); + test_atan2(0); + test_atan2f(0); + test_atanf(0); + test_atanh(0); + test_atanhf(0); + test_ceil(0); + test_ceilf(0); + test_cos(0); + test_cosf(0); + test_cosh(0); + test_coshf(0); + test_erf(0); + test_erfc(0); + test_erfcf(0); + test_erff(0); + test_exp(0); + test_expf(0); + test_fabs(0); + test_fabsf(0); + test_floor(0); + test_floorf(0); + test_fmod(0); + test_fmodf(0); + test_gamma(0); + test_gammaf(0); + test_hypot(0); + test_hypotf(0); + test_j0(0); + test_j0f(0); + test_j1(0); + test_j1f(0); + test_jn(0); + test_jnf(0); + test_log(0); + test_log10(0); + test_log10f(0); + test_log1p(0); + test_log1pf(0); + test_log2(0); + test_log2f(0); + test_logf(0); + test_sin(0); + test_sinf(0); + test_sinh(0); + test_sinhf(0); + test_sqrt(0); + test_sqrtf(0); + test_tan(0); + test_tanf(0); + test_tanh(0); + test_tanhf(0); + test_y0(0); + test_y0f(0); + test_y1(0); + test_y1f(0); + test_y1f(0); + test_ynf(0); +} + +/* These have to be played with to get to compile on machines which + don't have the fancy <foo>f entry points +*/ + +#if 0 +float _DEFUN(cosf,(a), float a) { return cos((double)a); } +float _DEFUN(sinf,(a), float a) { return sin((double)a); } +float _DEFUN(log1pf,(a), float a) { return log1p((double)a); } +float _DEFUN(tanf,(a), float a) { return tan((double)a); } +float _DEFUN(ceilf,(a), float a) { return ceil(a); } +float _DEFUN(floorf,(a), float a) { return floor(a); } +#endif + +/*ndef HAVE_FLOAT*/ +#if 0 + +float fmodf(a,b) float a,b; { return fmod(a,b); } +float hypotf(a,b) float a,b; { return hypot(a,b); } + +float acosf(a) float a; { return acos(a); } +float acoshf(a) float a; { return acosh(a); } +float asinf(a) float a; { return asin(a); } +float asinhf(a) float a; { return asinh(a); } +float atanf(a) float a; { return atan(a); } +float atanhf(a) float a; { return atanh(a); } + +float coshf(a) float a; { return cosh(a); } +float erff(a) float a; { return erf(a); } +float erfcf(a) float a; { return erfc(a); } +float expf(a) float a; { return exp(a); } +float fabsf(a) float a; { return fabs(a); } + +float gammaf(a) float a; { return gamma(a); } +float j0f(a) float a; { return j0(a); } +float j1f(a) float a; { return j1(a); } +float log10f(a) float a; { return log10(a); } + +float logf(a) float a; { return log(a); } + +float sinhf(a) float a; { return sinh(a); } +float sqrtf(a) float a; { return sqrt(a); } + +float tanhf(a) float a; { return tanh(a); } +float y0f(a) float a; { return y0(a); } +float y1f(a) float a; { return y1(a); } +#endif diff --git a/newlib/libm/test/math2.c b/newlib/libm/test/math2.c new file mode 100644 index 000000000..50b537646 --- /dev/null +++ b/newlib/libm/test/math2.c @@ -0,0 +1,232 @@ + +#include "test.h" +#include <errno.h> + + +int +_DEFUN_VOID(randi) +{ + static int next; + next = (next * 1103515245) + 12345; + return ((next >> 16) & 0xffff); +} + +double _DEFUN_VOID(randx) +{ + double res; + + do + { + union { + short parts[4]; + double res; + } u; + + u.parts[0] = randi(); + u.parts[1] = randi(); + u.parts[2] = randi(); + u.parts[3] = randi(); + res = u.res; + + } while (!finite(res)); + + return res ; +} + +/* Return a random double, but bias for numbers closer to 0 */ +double _DEFUN_VOID(randy) +{ + int pow; + double r= randx(); + r = frexp(r, &pow); + return ldexp(r, randi() & 0x1f); +} + +void +_DEFUN_VOID(test_frexp) +{ + int i; + double r; + int t; + + float xf; + double gives; + + int pow; + + + /* Frexp of x return a and n, where a * 2**n == x, so test this with a + set of random numbers */ + for (t = 0; t < 2; t++) + { + for (i = 0; i < 1000; i++) + { + + double x = randx(); + line(i); + switch (t) + { + case 0: + newfunc("frexp/ldexp"); + r = frexp(x, &pow); + if (r > 1.0 || r < -1.0) + { + /* Answer can never be > 1 or < 1 */ + test_iok(0,1); + } + + gives = ldexp(r ,pow); + test_mok(gives,x,62); + break; + case 1: + newfunc("frexpf/ldexpf"); + if (x > FLT_MIN && x < FLT_MAX) + { + /* test floats too, but they have a smaller range so make sure x + isn't too big. Also x can get smaller than a float can + represent to make sure that doesn't happen too */ + xf = x; + r = frexpf(xf, &pow); + if (r > 1.0 || r < -1.0) + { + /* Answer can never be > 1 or < -1 */ + test_iok(0,1); + } + + gives = ldexpf(r ,pow); + test_mok(gives,x, 32); + + } + } + + } + + } + + /* test a few numbers manually to make sure frexp/ldexp are not + testing as ok because both are broken */ + + r = frexp(64.0, &i); + + test_mok(r, 0.5,64); + test_iok(i, 7); + + r = frexp(96.0, &i); + + test_mok(r, 0.75, 64); + test_iok(i, 7); + +} + +/* Test mod - this is given a real hammering by the strtod type + routines, here are some more tests. + + By definition + + modf = func(value, &iptr) + + (*iptr + modf) == value + + we test this + +*/ +void +_DEFUN_VOID(test_mod) +{ + int i; + + newfunc("modf"); + + + for (i = 0; i < 1000; i++) + { + double intpart; + double n; + line(i); + n = randx(); + if (finite(n) && n != 0.0 ) + { + double r = modf(n, &intpart); + line(i); + test_mok(intpart + r, n, 63); + } + + } + newfunc("modff"); + + for (i = 0; i < 1000; i++) + { + float intpart; + double nd; + line(i); + nd = randx() ; + if (nd < FLT_MAX && finitef(nd) && nd != 0.0) + { + float n = nd; + double r = modff(n, &intpart); + line(i); + test_mok(intpart + r, n, 32); + } + } + + +} + +/* +Test pow by multiplying logs +*/ +void +_DEFUN_VOID(test_pow) +{ + unsigned int i; + newfunc("pow"); + + for (i = 0; i < 1000; i++) + { + double n1; + double n2; + double res; + double shouldbe; + + line(i); + n1 = fabs(randy()); + n2 = fabs(randy()/100.0); + res = pow(n1, n2); + shouldbe = exp(log(n1) * n2); + test_mok(shouldbe, res,64); + } + + newfunc("powf"); + + for (i = 0; i < 1000; i++) + { + double n1; + double n2; + double res; + double shouldbe; + + errno = 0; + + line(i); + n1 = fabs(randy()); + n2 = fabs(randy()/100.0); + res = powf(n1, n2); + shouldbe = expf(logf(n1) * n2); + if (!errno) + test_mok(shouldbe, res,28); + } + + + + +} + + + +void +_DEFUN_VOID(test_math2) +{ + test_mod(); + test_frexp(); + test_pow(); +} diff --git a/newlib/libm/test/sin_vec.c b/newlib/libm/test/sin_vec.c new file mode 100644 index 000000000..5e95f283d --- /dev/null +++ b/newlib/libm/test/sin_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type sin_vec[] = { +{62, 0,123,__LINE__, 0xbfedd343, 0xa21a55c6, 0xbff33333, 0x33333333}, /* -0.93203=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbfedb532, 0xd61e9b5d, 0xbff30a3d, 0x70a3d70a}, /* -0.92836=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbfed965f, 0x591f4700, 0xbff2e147, 0xae147ae1}, /* -0.92460=f(-1.18000)*/ +{61, 0,123,__LINE__, 0xbfed76c9, 0xf52192ac, 0xbff2b851, 0xeb851eb8}, /* -0.92075=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbfed5673, 0x792177c4, 0xbff28f5c, 0x28f5c28f}, /* -0.91680=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfed355c, 0xb90c629a, 0xbff26666, 0x66666666}, /* -0.91276=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbfed1386, 0x8dbbc584, 0xbff23d70, 0xa3d70a3d}, /* -0.90863=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbfecf0f1, 0xd4ef8bcd, 0xbff2147a, 0xe147ae14}, /* -0.90441=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbfeccd9f, 0x71486c5e, 0xbff1eb85, 0x1eb851eb}, /* -0.90010=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfeca990, 0x4a421c91, 0xbff1c28f, 0x5c28f5c2}, /* -0.89569=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfec84c5, 0x4c2d6336, 0xbff19999, 0x99999999}, /* -0.89120=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfec5f3f, 0x682a0bc6, 0xbff170a3, 0xd70a3d70}, /* -0.88662=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfec38ff, 0x9420ba3b, 0xbff147ae, 0x147ae147}, /* -0.88195=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfec1206, 0xcabc9f78, 0xbff11eb8, 0x51eb851e}, /* -0.87720=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfebea56, 0x0b650e81, 0xbff0f5c2, 0x8f5c28f5}, /* -0.87235=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfebc1ee, 0x5a36f2c0, 0xbff0cccc, 0xcccccccc}, /* -0.86742=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbfeb98d0, 0xbffe273f, 0xbff0a3d7, 0x0a3d70a3}, /* -0.86240=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbfeb6efe, 0x4a2eaf5f, 0xbff07ae1, 0x47ae147a}, /* -0.85729=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfeb4478, 0x0addd100, 0xbff051eb, 0x851eb851}, /* -0.85210=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbfeb193f, 0x18bb1035, 0xbff028f5, 0xc28f5c28}, /* -0.84683=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfeaed54, 0x8f090cee, 0xbfefffff, 0xfffffffe}, /* -0.84147=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfeac0b9, 0x8d96429e, 0xbfefae14, 0x7ae147ac}, /* -0.83602=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbfea936f, 0x38b5aa0b, 0xbfef5c28, 0xf5c28f5a}, /* -0.83049=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfea6576, 0xb9373da2, 0xbfef0a3d, 0x70a3d708}, /* -0.82488=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfea36d1, 0x3c606028, 0xbfeeb851, 0xeb851eb6}, /* -0.81919=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfea077f, 0xf3e4266b, 0xbfee6666, 0x66666664}, /* -0.81341=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbfe9d784, 0x15db83e2, 0xbfee147a, 0xe147ae12}, /* -0.80755=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfe9a6de, 0xdcbd5a52, 0xbfedc28f, 0x5c28f5c0}, /* -0.80161=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfe97591, 0x87566d0a, 0xbfed70a3, 0xd70a3d6e}, /* -0.79560=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfe9439d, 0x58c13794, 0xbfed1eb8, 0x51eb851c}, /* -0.78950=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfe91103, 0x985da83e, 0xbfeccccc, 0xccccccca}, /* -0.78332=f(-0.90000)*/ +{64, 0,123,__LINE__, 0xbfe8ddc5, 0x91c8beae, 0xbfec7ae1, 0x47ae1478}, /* -0.77707=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfe8a9e4, 0x94d40e8f, 0xbfec28f5, 0xc28f5c26}, /* -0.77073=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfe87561, 0xf57d26cb, 0xbfebd70a, 0x3d70a3d4}, /* -0.76432=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfe8403f, 0x0be4dd7b, 0xbfeb851e, 0xb851eb82}, /* -0.75784=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfe80a7d, 0x34468081, 0xbfeb3333, 0x33333330}, /* -0.75128=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfe7d41d, 0xceeeeb7a, 0xbfeae147, 0xae147ade}, /* -0.74464=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfe79d22, 0x403382e7, 0xbfea8f5c, 0x28f5c28c}, /* -0.73793=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfe7658b, 0xf06914e5, 0xbfea3d70, 0xa3d70a3a}, /* -0.73114=f(-0.82000)*/ +{64, 0,123,__LINE__, 0xbfe72d5c, 0x4bda9fd4, 0xbfe9eb85, 0x1eb851e8}, /* -0.72428=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfe6f494, 0xc2bffecc, 0xbfe99999, 0x99999996}, /* -0.71735=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe6bb36, 0xc9347c88, 0xbfe947ae, 0x147ae144}, /* -0.71035=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe68143, 0xd72d4ce0, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.70327=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfe646bd, 0x686fecc4, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.69613=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfe60ba4, 0xfc88697c, 0xbfe851eb, 0x851eb84e}, /* -0.68892=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe5cffc, 0x16bf8f0d, 0xbfe7ffff, 0xfffffffc}, /* -0.68163=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe593c4, 0x3e10fe1c, 0xbfe7ae14, 0x7ae147aa}, /* -0.67428=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe556fe, 0xfd2129ae, 0xbfe75c28, 0xf5c28f58}, /* -0.66686=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe519ad, 0xe2333cbd, 0xbfe70a3d, 0x70a3d706}, /* -0.65938=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe4dbd2, 0x7f1ee83d, 0xbfe6b851, 0xeb851eb4}, /* -0.65183=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe49d6e, 0x694619b3, 0xbfe66666, 0x66666662}, /* -0.64421=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe45e83, 0x398a9a5d, 0xbfe6147a, 0xe147ae10}, /* -0.63653=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe41f12, 0x8c4397aa, 0xbfe5c28f, 0x5c28f5be}, /* -0.62879=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe3df1e, 0x013314eb, 0xbfe570a3, 0xd70a3d6c}, /* -0.62098=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe39ea7, 0x3b7b469b, 0xbfe51eb8, 0x51eb851a}, /* -0.61311=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe35daf, 0xe193d7a7, 0xbfe4cccc, 0xccccccc8}, /* -0.60518=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe31c39, 0x9d3f18a5, 0xbfe47ae1, 0x47ae1476}, /* -0.59719=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe2da46, 0x1b7f19a5, 0xbfe428f5, 0xc28f5c24}, /* -0.58914=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe297d7, 0x0c8aaec1, 0xbfe3d70a, 0x3d70a3d2}, /* -0.58103=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe254ee, 0x23c25f70, 0xbfe3851e, 0xb851eb80}, /* -0.57286=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe2118d, 0x17a54156, 0xbfe33333, 0x3333332e}, /* -0.56464=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe1cdb5, 0xa1c5be91, 0xbfe2e147, 0xae147adc}, /* -0.55636=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe18969, 0x7ebe47ce, 0xbfe28f5c, 0x28f5c28a}, /* -0.54802=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe144aa, 0x6e25f2ae, 0xbfe23d70, 0xa3d70a38}, /* -0.53963=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe0ff7a, 0x3285044f, 0xbfe1eb85, 0x1eb851e6}, /* -0.53118=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe0b9da, 0x914968cb, 0xbfe19999, 0x99999994}, /* -0.52268=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe073cd, 0x52bb17bb, 0xbfe147ae, 0x147ae142}, /* -0.51413=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe02d54, 0x41f065c8, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.50553=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfdfcce2, 0x5984884f, 0xbfe0a3d7, 0x0a3d709e}, /* -0.49688=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfdf3e4b, 0xc780dba0, 0xbfe051eb, 0x851eb84c}, /* -0.48817=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfdeaee8, 0x744b05e2, 0xbfdfffff, 0xfffffff4}, /* -0.47942=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfde1ebc, 0x0b962615, 0xbfdf5c28, 0xf5c28f50}, /* -0.47062=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdd8dca, 0x3e3b2b2d, 0xbfdeb851, 0xeb851eac}, /* -0.46177=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfdcfc16, 0xc220a41e, 0xbfde147a, 0xe147ae08}, /* -0.45288=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdc69a5, 0x52226ed1, 0xbfdd70a3, 0xd70a3d64}, /* -0.44394=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdbd679, 0xadf94619, 0xbfdccccc, 0xccccccc0}, /* -0.43496=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdb4297, 0x9a223059, 0xbfdc28f5, 0xc28f5c1c}, /* -0.42593=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdaae02, 0xdfc5cea0, 0xbfdb851e, 0xb851eb78}, /* -0.41687=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfda18bf, 0x4c9f8d34, 0xbfdae147, 0xae147ad4}, /* -0.40776=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfd982d0, 0xb2e4b65f, 0xbfda3d70, 0xa3d70a30}, /* -0.39860=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd8ec3a, 0xe92b6762, 0xbfd99999, 0x9999998c}, /* -0.38941=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd85501, 0xca516931, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.38018=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd7bd29, 0x3562ed28, 0xbfd851eb, 0x851eb844}, /* -0.37092=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd724b5, 0x0d812dd2, 0xbfd7ae14, 0x7ae147a0}, /* -0.36161=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd68ba9, 0x39c8f580, 0xbfd70a3d, 0x70a3d6fc}, /* -0.35227=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd5f209, 0xa5390a85, 0xbfd66666, 0x66666658}, /* -0.34289=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd557da, 0x3e9881f6, 0xbfd5c28f, 0x5c28f5b4}, /* -0.33348=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd4bd1e, 0xf85cf9f3, 0xbfd51eb8, 0x51eb8510}, /* -0.32404=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd421db, 0xc890bb30, 0xbfd47ae1, 0x47ae146c}, /* -0.31456=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd38614, 0xa8b8c399, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30505=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd2e9cd, 0x95baba21, 0xbfd33333, 0x33333324}, /* -0.29552=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd24d0a, 0x8fc2cbe7, 0xbfd28f5c, 0x28f5c280}, /* -0.28595=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd1afcf, 0x9a29747e, 0xbfd1eb85, 0x1eb851dc}, /* -0.27635=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd11220, 0xbb59311c, 0xbfd147ae, 0x147ae138}, /* -0.26673=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd07401, 0xfcb41fa9, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25708=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfcfaaee, 0xd4f31558, 0xbfcfffff, 0xffffffe0}, /* -0.24740=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfce6d0a, 0x2756c3a5, 0xbfceb851, 0xeb851e98}, /* -0.23770=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcd2e5e, 0x13e741e8, 0xbfcd70a3, 0xd70a3d50}, /* -0.22797=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcbeef2, 0xc3134b4f, 0xbfcc28f5, 0xc28f5c08}, /* -0.21822=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcaaed0, 0x622ee727, 0xbfcae147, 0xae147ac0}, /* -0.20845=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc96dff, 0x233dd2a3, 0xbfc99999, 0x99999978}, /* -0.19866=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc82c87, 0x3cbdcb4c, 0xbfc851eb, 0x851eb830}, /* -0.18885=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc6ea70, 0xe970bc1b, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17902=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5a7c4, 0x6826cf41, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16918=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc46489, 0xfb886414, 0xbfc47ae1, 0x47ae1458}, /* -0.15931=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc320c9, 0xe9dfecf0, 0xbfc33333, 0x33333310}, /* -0.14943=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1dc8c, 0x7ce3b543, 0xbfc1eb85, 0x1eb851c8}, /* -0.13954=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc097da, 0x017f9018, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12963=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbea575, 0x8f3ce595, 0xbfbeb851, 0xeb851e71}, /* -0.11971=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc1a6e, 0x43e7f702, 0xbfbc28f5, 0xc28f5be2}, /* -0.10977=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb98eae, 0xcb8bcad3, 0xbfb99999, 0x99999953}, /* -0.09983=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb70247, 0xd56ad96c, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08987=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb4754a, 0x151143db, 0xbfb47ae1, 0x47ae1435}, /* -0.07991=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1e7c6, 0x41e760d5, 0xbfb1eb85, 0x1eb851a6}, /* -0.06994=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeb39a, 0x2d885ddf, 0xbfaeb851, 0xeb851e2d}, /* -0.05996=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa996de, 0xa2ff63a2, 0xbfa99999, 0x9999990e}, /* -0.04997=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa4797b, 0x650a7280, 0xbfa47ae1, 0x47ae13ef}, /* -0.03998=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb723, 0xf196670e, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947a87, 0xcda556ec, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847aca, 0xe915e58c, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847aca, 0xe915ea39, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947a87, 0xcda55980, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb723, 0xf19668e0, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa4797b, 0x650a7388, 0x3fa47ae1, 0x47ae1508}, /* 0.03998=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa996de, 0xa2ff64c9, 0x3fa99999, 0x99999a27}, /* 0.04997=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faeb39a, 0x2d885f24, 0x3faeb851, 0xeb851f46}, /* 0.05996=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1e7c6, 0x41e76147, 0x3fb1eb85, 0x1eb85232}, /* 0.06994=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb4754a, 0x1511445b, 0x3fb47ae1, 0x47ae14c1}, /* 0.07991=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb70247, 0xd56ad9fb, 0x3fb70a3d, 0x70a3d750}, /* 0.08987=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb98eae, 0xcb8bcb71, 0x3fb99999, 0x999999df}, /* 0.09983=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc1a6e, 0x43e7f76f, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10977=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbea575, 0x8f3ce611, 0x3fbeb851, 0xeb851efd}, /* 0.11971=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc097da, 0x017f905e, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12963=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1dc8c, 0x7ce3b591, 0x3fc1eb85, 0x1eb8520e}, /* 0.13954=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc320c9, 0xe9dfed45, 0x3fc33333, 0x33333356}, /* 0.14943=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc46489, 0xfb886451, 0x3fc47ae1, 0x47ae149e}, /* 0.15931=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5a7c4, 0x6826cf86, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16918=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc6ea70, 0xe970bc68, 0x3fc70a3d, 0x70a3d72e}, /* 0.17902=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc82c87, 0x3cbdcb81, 0x3fc851eb, 0x851eb876}, /* 0.18885=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc96dff, 0x233dd2e0, 0x3fc99999, 0x999999be}, /* 0.19866=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcaaed0, 0x622ee76b, 0x3fcae147, 0xae147b06}, /* 0.20845=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcbeef2, 0xc3134b9b, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21822=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcd2e5e, 0x13e7423c, 0x3fcd70a3, 0xd70a3d96}, /* 0.22797=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fce6d0a, 0x2756c3e1, 0x3fceb851, 0xeb851ede}, /* 0.23770=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fcfaaee, 0xd4f3159c, 0x3fd00000, 0x00000013}, /* 0.24740=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd07401, 0xfcb41fcf, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25708=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd11220, 0xbb593136, 0x3fd147ae, 0x147ae15b}, /* 0.26673=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd1afcf, 0x9a29749c, 0x3fd1eb85, 0x1eb851ff}, /* 0.27635=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd24d0a, 0x8fc2cc09, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28595=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd2e9cd, 0x95baba46, 0x3fd33333, 0x33333347}, /* 0.29552=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd38614, 0xa8b8c3c2, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30505=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd421db, 0xc890bb4d, 0x3fd47ae1, 0x47ae148f}, /* 0.31456=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd4bd1e, 0xf85cfa14, 0x3fd51eb8, 0x51eb8533}, /* 0.32404=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd557da, 0x3e98821b, 0x3fd5c28f, 0x5c28f5d7}, /* 0.33348=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd5f209, 0xa5390a9e, 0x3fd66666, 0x6666667b}, /* 0.34289=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd68ba9, 0x39c8f59d, 0x3fd70a3d, 0x70a3d71f}, /* 0.35227=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd724b5, 0x0d812df2, 0x3fd7ae14, 0x7ae147c3}, /* 0.36161=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd7bd29, 0x3562ed4c, 0x3fd851eb, 0x851eb867}, /* 0.37092=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd85501, 0xca516959, 0x3fd8f5c2, 0x8f5c290b}, /* 0.38018=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd8ec3a, 0xe92b677e, 0x3fd99999, 0x999999af}, /* 0.38941=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fd982d0, 0xb2e4b67f, 0x3fda3d70, 0xa3d70a53}, /* 0.39860=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fda18bf, 0x4c9f8d58, 0x3fdae147, 0xae147af7}, /* 0.40776=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdaae02, 0xdfc5ceb9, 0x3fdb851e, 0xb851eb9b}, /* 0.41687=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdb4297, 0x9a223075, 0x3fdc28f5, 0xc28f5c3f}, /* 0.42593=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdbd679, 0xadf94639, 0x3fdccccc, 0xcccccce3}, /* 0.43496=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdc69a5, 0x52226ef4, 0x3fdd70a3, 0xd70a3d87}, /* 0.44394=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdcfc16, 0xc220a444, 0x3fde147a, 0xe147ae2b}, /* 0.45288=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdd8dca, 0x3e3b2b49, 0x3fdeb851, 0xeb851ecf}, /* 0.46177=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fde1ebc, 0x0b962634, 0x3fdf5c28, 0xf5c28f73}, /* 0.47062=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fdeaee8, 0x744b0603, 0x3fe00000, 0x0000000b}, /* 0.47942=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fdf3e4b, 0xc780dbb7, 0x3fe051eb, 0x851eb85d}, /* 0.48817=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fdfcce2, 0x59848869, 0x3fe0a3d7, 0x0a3d70af}, /* 0.49688=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe02d54, 0x41f065d7, 0x3fe0f5c2, 0x8f5c2901}, /* 0.50553=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe073cd, 0x52bb17cb, 0x3fe147ae, 0x147ae153}, /* 0.51413=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe0b9da, 0x914968dd, 0x3fe19999, 0x999999a5}, /* 0.52268=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe0ff7a, 0x3285045c, 0x3fe1eb85, 0x1eb851f7}, /* 0.53118=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe144aa, 0x6e25f2bc, 0x3fe23d70, 0xa3d70a49}, /* 0.53963=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe18969, 0x7ebe47de, 0x3fe28f5c, 0x28f5c29b}, /* 0.54802=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe1cdb5, 0xa1c5be9c, 0x3fe2e147, 0xae147aed}, /* 0.55636=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe2118d, 0x17a54163, 0x3fe33333, 0x3333333f}, /* 0.56464=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe254ee, 0x23c25f7e, 0x3fe3851e, 0xb851eb91}, /* 0.57286=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe297d7, 0x0c8aaed1, 0x3fe3d70a, 0x3d70a3e3}, /* 0.58103=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe2da46, 0x1b7f19b6, 0x3fe428f5, 0xc28f5c35}, /* 0.58914=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe31c39, 0x9d3f18b1, 0x3fe47ae1, 0x47ae1487}, /* 0.59719=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe35daf, 0xe193d7b5, 0x3fe4cccc, 0xccccccd9}, /* 0.60518=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe39ea7, 0x3b7b46aa, 0x3fe51eb8, 0x51eb852b}, /* 0.61311=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe3df1e, 0x013314f5, 0x3fe570a3, 0xd70a3d7d}, /* 0.62098=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe41f12, 0x8c4397b6, 0x3fe5c28f, 0x5c28f5cf}, /* 0.62879=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe45e83, 0x398a9a6a, 0x3fe6147a, 0xe147ae21}, /* 0.63653=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe49d6e, 0x694619c2, 0x3fe66666, 0x66666673}, /* 0.64421=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe4dbd2, 0x7f1ee84d, 0x3fe6b851, 0xeb851ec5}, /* 0.65183=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe519ad, 0xe2333cc8, 0x3fe70a3d, 0x70a3d717}, /* 0.65938=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe556fe, 0xfd2129ba, 0x3fe75c28, 0xf5c28f69}, /* 0.66686=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe593c4, 0x3e10fe2a, 0x3fe7ae14, 0x7ae147bb}, /* 0.67428=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe5cffc, 0x16bf8f17, 0x3fe80000, 0x0000000d}, /* 0.68163=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fe60ba4, 0xfc886987, 0x3fe851eb, 0x851eb85f}, /* 0.68892=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fe646bd, 0x686fecd0, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.69613=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe68143, 0xd72d4cee, 0x3fe8f5c2, 0x8f5c2903}, /* 0.70327=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe6bb36, 0xc9347c97, 0x3fe947ae, 0x147ae155}, /* 0.71035=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe6f494, 0xc2bffed6, 0x3fe99999, 0x999999a7}, /* 0.71735=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe72d5c, 0x4bda9fe0, 0x3fe9eb85, 0x1eb851f9}, /* 0.72428=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe7658b, 0xf06914f2, 0x3fea3d70, 0xa3d70a4b}, /* 0.73114=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe79d22, 0x403382f0, 0x3fea8f5c, 0x28f5c29d}, /* 0.73793=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe7d41d, 0xceeeeb84, 0x3feae147, 0xae147aef}, /* 0.74464=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fe80a7d, 0x3446808c, 0x3feb3333, 0x33333341}, /* 0.75128=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe8403f, 0x0be4dd87, 0x3feb851e, 0xb851eb93}, /* 0.75784=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe87561, 0xf57d26d9, 0x3febd70a, 0x3d70a3e5}, /* 0.76432=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe8a9e4, 0x94d40e99, 0x3fec28f5, 0xc28f5c37}, /* 0.77073=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fe8ddc5, 0x91c8beb9, 0x3fec7ae1, 0x47ae1489}, /* 0.77707=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe91103, 0x985da84a, 0x3feccccc, 0xccccccdb}, /* 0.78332=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe9439d, 0x58c1379c, 0x3fed1eb8, 0x51eb852d}, /* 0.78950=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe97591, 0x87566d13, 0x3fed70a3, 0xd70a3d7f}, /* 0.79560=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3fe9a6de, 0xdcbd5a5c, 0x3fedc28f, 0x5c28f5d1}, /* 0.80161=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fe9d784, 0x15db83ed, 0x3fee147a, 0xe147ae23}, /* 0.80755=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fea077f, 0xf3e42677, 0x3fee6666, 0x66666675}, /* 0.81341=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fea36d1, 0x3c606030, 0x3feeb851, 0xeb851ec7}, /* 0.81919=f(0.96000)*/ +{61, 0,123,__LINE__, 0x3fea6576, 0xb9373dac, 0x3fef0a3d, 0x70a3d719}, /* 0.82488=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fea936f, 0x38b5aa16, 0x3fef5c28, 0xf5c28f6b}, /* 0.83049=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3feac0b9, 0x8d9642a5, 0x3fefae14, 0x7ae147bd}, /* 0.83602=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3feaed54, 0x8f090cf6, 0x3ff00000, 0x00000007}, /* 0.84147=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3feb193f, 0x18bb103e, 0x3ff028f5, 0xc28f5c30}, /* 0.84683=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3feb4478, 0x0addd10a, 0x3ff051eb, 0x851eb859}, /* 0.85210=f(1.02000)*/ +{62, 0,123,__LINE__, 0x3feb6efe, 0x4a2eaf6a, 0x3ff07ae1, 0x47ae1482}, /* 0.85729=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3feb98d0, 0xbffe2746, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.86240=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3febc1ee, 0x5a36f2c7, 0x3ff0cccc, 0xccccccd4}, /* 0.86742=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3febea56, 0x0b650e8a, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.87235=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fec1206, 0xcabc9f7e, 0x3ff11eb8, 0x51eb8526}, /* 0.87720=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fec38ff, 0x9420ba42, 0x3ff147ae, 0x147ae14f}, /* 0.88195=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fec5f3f, 0x682a0bce, 0x3ff170a3, 0xd70a3d78}, /* 0.88662=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fec84c5, 0x4c2d633e, 0x3ff19999, 0x999999a1}, /* 0.89120=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3feca990, 0x4a421c9a, 0x3ff1c28f, 0x5c28f5ca}, /* 0.89569=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3feccd9f, 0x71486c64, 0x3ff1eb85, 0x1eb851f3}, /* 0.90010=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fecf0f1, 0xd4ef8bd4, 0x3ff2147a, 0xe147ae1c}, /* 0.90441=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fed1386, 0x8dbbc58c, 0x3ff23d70, 0xa3d70a45}, /* 0.90863=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fed355c, 0xb90c629f, 0x3ff26666, 0x6666666e}, /* 0.91276=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fed5673, 0x792177ca, 0x3ff28f5c, 0x28f5c297}, /* 0.91680=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fed76c9, 0xf52192b2, 0x3ff2b851, 0xeb851ec0}, /* 0.92075=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fed965f, 0x591f4707, 0x3ff2e147, 0xae147ae9}, /* 0.92460=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fedb532, 0xd61e9b64, 0x3ff30a3d, 0x70a3d712}, /* 0.92836=f(1.19000)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 0.00000=f(-6.28318)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffffff, 0xc012d97c, 0x7f3321d2}, /* 0.01000=f(-4.71238)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 0.00000=f(-3.14159)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffffff, 0xbff921fb, 0x54442d18}, /* -0.01000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffffff, 0x3ff921fb, 0x54442d18}, /* 0.01000=f(1.57079)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x400921fb, 0x54442d18}, /* 0.00000=f(3.14159)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffffff, 0x4012d97c, 0x7f3321d2}, /* -0.01000=f(4.71238)*/ +{64, 0,123,__LINE__, 0x3fef9df4, 0x7f1c903a, 0xc03e0000, 0x00000000}, /* 0.98803=f(-30.0000)*/ +{64, 0,123,__LINE__, 0x3f9a477a, 0xe66f277f, 0xc03c4ccc, 0xcccccccd}, /* 0.02566=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xbfefd421, 0x46de2a06, 0xc03a9999, 0x9999999a}, /* -0.99464=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x3fcd85cc, 0x69f5e2a3, 0xc038e666, 0x66666667}, /* 0.23064=f(-24.9000)*/ +{64, 0,123,__LINE__, 0x3feded3d, 0x5814f9bc, 0xc0373333, 0x33333334}, /* 0.93520=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbfde2f55, 0x5b73afb2, 0xc0358000, 0x00000001}, /* -0.47163=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xbfea099d, 0x8186a0b3, 0xc033cccc, 0xccccccce}, /* -0.81367=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x3fe5cd52, 0x86ac03da, 0xc0321999, 0x9999999b}, /* 0.68131=f(-18.1000)*/ +{64, 0,123,__LINE__, 0x3fe46b5e, 0xb4816485, 0xc0306666, 0x66666668}, /* 0.63810=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbfeb105b, 0xa88e8b6c, 0xc02d6666, 0x6666666a}, /* -0.84574=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xbfdae404, 0x4881c582, 0xc02a0000, 0x00000004}, /* -0.42016=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x3fee8753, 0x60c2af6c, 0xc0269999, 0x9999999e}, /* 0.95401=f(-11.3000)*/ +{64, 0,123,__LINE__, 0x3fc65057, 0x0815b831, 0xc0233333, 0x33333338}, /* 0.17432=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xbfeff753, 0xd53a5fa6, 0xc01f9999, 0x999999a3}, /* -0.99894=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x3fb54558, 0xdbbecace, 0xc018cccc, 0xccccccd6}, /* 0.08308=f(-6.20000)*/ +{64, 0,123,__LINE__, 0x3fef47ed, 0x3dc7408f, 0xc0120000, 0x00000009}, /* 0.97753=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbfd57072, 0x235de53e, 0xc0066666, 0x66666678}, /* -0.33498=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbfec84c5, 0x4c2d6356, 0xbff19999, 0x999999bd}, /* -0.89120=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe2118d, 0x17a5411e, 0x3fe33333, 0x333332ec}, /* 0.56464=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe7dcd1, 0x2d582f54, 0x40026666, 0x66666654}, /* 0.74570=f(2.30000)*/ +{64, 0,123,__LINE__, 0xbfe837b9, 0xdddc1e80, 0x400fffff, 0xffffffee}, /* -0.75680=f(4.00000)*/ +{64, 0,123,__LINE__, 0xbfe19f37, 0x497ac7db, 0x4016cccc, 0xccccccc4}, /* -0.55068=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3fecc237, 0x7b0529d7, 0x401d9999, 0x99999991}, /* 0.89870=f(7.40000)*/ +{64, 0,123,__LINE__, 0x3fd46c1b, 0x899fd98a, 0x40223333, 0x3333332f}, /* 0.31909=f(9.10000)*/ +{64, 0,123,__LINE__, 0xbfef63d4, 0x60731b7e, 0x40259999, 0x99999995}, /* -0.98093=f(10.8000)*/ +{64, 0,123,__LINE__, 0xbfb0fa78, 0xcc21d217, 0x4028ffff, 0xfffffffb}, /* -0.06632=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3fefefd5, 0x973e8001, 0x402c6666, 0x66666661}, /* 0.99802=f(14.2000)*/ +{64, 0,123,__LINE__, 0xbfc86e0d, 0xd294df03, 0x402fcccc, 0xccccccc7}, /* -0.19085=f(15.9000)*/ +{64, 0,123,__LINE__, 0xbfee5cef, 0x22f1885d, 0x40319999, 0x99999997}, /* -0.94884=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3fdbdd06, 0xac2737fd, 0x40334ccc, 0xccccccca}, /* 0.43536=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3feac5e2, 0x0bb0d81d, 0x4034ffff, 0xfffffffd}, /* 0.83665=f(21.0000)*/ +{64, 0,123,__LINE__, 0xbfe4d4ae, 0xe6b87cf6, 0x4036b333, 0x33333330}, /* -0.65096=f(22.7000)*/ +{64, 0,123,__LINE__, 0xbfe567b5, 0x914fe670, 0x40386666, 0x66666663}, /* -0.66890=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3fea58be, 0x72fc66fd, 0x403a1999, 0x99999996}, /* 0.82333=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3fdd3b53, 0x753c19f9, 0x403bcccc, 0xccccccc9}, /* 0.45674=f(27.8000)*/ +{64, 0,123,__LINE__, 0xbfee1ced, 0xe66aefee, 0x403d7fff, 0xfffffffc}, /* -0.94103=f(29.5000)*/ +0,}; +test_sin(m) {run_vector_1(m,sin_vec,(char *)(sin),"sin","dd"); } diff --git a/newlib/libm/test/sinf_vec.c b/newlib/libm/test/sinf_vec.c new file mode 100644 index 000000000..32eb8b101 --- /dev/null +++ b/newlib/libm/test/sinf_vec.c @@ -0,0 +1,286 @@ +#include "test.h" + one_line_type sinf_vec[] = { +{31, 0,123,__LINE__, 0xbfedd343, 0xb0aef9e0, 0xbff33333, 0x33333333}, /* -0.93203=f(-1.20000)*/ +{31, 0,123,__LINE__, 0xbfedb532, 0xde4934c0, 0xbff30a3d, 0x70a3d70a}, /* -0.92836=f(-1.19000)*/ +{31, 0,123,__LINE__, 0xbfed965f, 0x4d4b79b0, 0xbff2e147, 0xae147ae1}, /* -0.92460=f(-1.18000)*/ +{31, 0,123,__LINE__, 0xbfed76c9, 0xecfd00f0, 0xbff2b851, 0xeb851eb8}, /* -0.92075=f(-1.17000)*/ +{31, 0,123,__LINE__, 0xbfed5673, 0x708e95c0, 0xbff28f5c, 0x28f5c28f}, /* -0.91680=f(-1.16000)*/ +{31, 0,123,__LINE__, 0xbfed355c, 0xae3d9410, 0xbff26666, 0x66666666}, /* -0.91276=f(-1.15000)*/ +{11, 0,123,__LINE__, 0xbfed1386, 0x898f05a0, 0xbff23d70, 0xa3d70a3d}, /* -0.90863=f(-1.14000)*/ +{11, 0,123,__LINE__, 0xbfecf0f1, 0xd7ca8350, 0xbff2147a, 0xe147ae14}, /* -0.90441=f(-1.13000)*/ +{11, 0,123,__LINE__, 0xbfeccd9f, 0x72b28700, 0xbff1eb85, 0x1eb851eb}, /* -0.90010=f(-1.12000)*/ +{11, 0,123,__LINE__, 0xbfeca990, 0x532842a0, 0xbff1c28f, 0x5c28f5c2}, /* -0.89569=f(-1.11000)*/ +{11, 0,123,__LINE__, 0xbfec84c5, 0x525ed360, 0xbff19999, 0x99999999}, /* -0.89120=f(-1.10000)*/ +{11, 0,123,__LINE__, 0xbfec5f3f, 0x71376ab0, 0xbff170a3, 0xd70a3d70}, /* -0.88662=f(-1.09000)*/ +{11, 0,123,__LINE__, 0xbfec38ff, 0xa2d0aa60, 0xbff147ae, 0x147ae147}, /* -0.88195=f(-1.08000)*/ +{11, 0,123,__LINE__, 0xbfec1206, 0xde7229c0, 0xbff11eb8, 0x51eb851e}, /* -0.87720=f(-1.07000)*/ +{11, 0,123,__LINE__, 0xbfebea55, 0xfbd69100, 0xbff0f5c2, 0x8f5c28f5}, /* -0.87235=f(-1.06000)*/ +{11, 0,123,__LINE__, 0xbfebc1ee, 0x52738ea0, 0xbff0cccc, 0xcccccccc}, /* -0.86742=f(-1.05000)*/ +{11, 0,123,__LINE__, 0xbfeb98d0, 0xb193c800, 0xbff0a3d7, 0x0a3d70a3}, /* -0.86240=f(-1.04000)*/ +{11, 0,123,__LINE__, 0xbfeb6efe, 0x42186dc0, 0xbff07ae1, 0x47ae147a}, /* -0.85729=f(-1.03000)*/ +{11, 0,123,__LINE__, 0xbfeb4478, 0x06f72b40, 0xbff051eb, 0x851eb851}, /* -0.85210=f(-1.02000)*/ +{11, 0,123,__LINE__, 0xbfeb193f, 0x17c982a0, 0xbff028f5, 0xc28f5c28}, /* -0.84683=f(-1.01000)*/ +{13, 0,123,__LINE__, 0xbfeaed54, 0x90000000, 0xbfefffff, 0xfffffffe}, /* -0.84147=f(-0.01000)*/ +{13, 0,123,__LINE__, 0xbfeac0b9, 0x8ee23980, 0xbfefae14, 0x7ae147ac}, /* -0.83602=f(-0.99000)*/ +{13, 0,123,__LINE__, 0xbfea936f, 0x3f65d980, 0xbfef5c28, 0xf5c28f5a}, /* -0.83049=f(-0.98000)*/ +{13, 0,123,__LINE__, 0xbfea6576, 0xc0808a20, 0xbfef0a3d, 0x70a3d708}, /* -0.82488=f(-0.97000)*/ +{13, 0,123,__LINE__, 0xbfea36d1, 0x310cb938, 0xbfeeb851, 0xeb851eb6}, /* -0.81919=f(-0.96000)*/ +{13, 0,123,__LINE__, 0xbfea077f, 0xee1ec208, 0xbfee6666, 0x66666664}, /* -0.81341=f(-0.95000)*/ +{13, 0,123,__LINE__, 0xbfe9d784, 0x1642a610, 0xbfee147a, 0xe147ae12}, /* -0.80755=f(-0.94000)*/ +{13, 0,123,__LINE__, 0xbfe9a6de, 0xdf4f5690, 0xbfedc28f, 0x5c28f5c0}, /* -0.80161=f(-0.93000)*/ +{13, 0,123,__LINE__, 0xbfe97591, 0x8a4ef7c0, 0xbfed70a3, 0xd70a3d6e}, /* -0.79560=f(-0.92000)*/ +{13, 0,123,__LINE__, 0xbfe9439d, 0x63187a70, 0xbfed1eb8, 0x51eb851c}, /* -0.78950=f(-0.91000)*/ +{13, 0,123,__LINE__, 0xbfe91103, 0x8e759800, 0xbfeccccc, 0xccccccca}, /* -0.78332=f(-0.90000)*/ +{13, 0,123,__LINE__, 0xbfe8ddc5, 0x8f9d4eb0, 0xbfec7ae1, 0x47ae1478}, /* -0.77707=f(-0.89000)*/ +{13, 0,123,__LINE__, 0xbfe8a9e4, 0x92e0bad0, 0xbfec28f5, 0xc28f5c26}, /* -0.77073=f(-0.88000)*/ +{14, 0,123,__LINE__, 0xbfe87561, 0xf591ade8, 0xbfebd70a, 0x3d70a3d4}, /* -0.76432=f(-0.87000)*/ +{14, 0,123,__LINE__, 0xbfe8403f, 0x112aef10, 0xbfeb851e, 0xb851eb82}, /* -0.75784=f(-0.86000)*/ +{14, 0,123,__LINE__, 0xbfe80a7d, 0x3f1d07b8, 0xbfeb3333, 0x33333330}, /* -0.75128=f(-0.85000)*/ +{12, 0,123,__LINE__, 0xbfe7d41d, 0xc35bbdac, 0xbfeae147, 0xae147ade}, /* -0.74464=f(-0.84000)*/ +{12, 0,123,__LINE__, 0xbfe79d22, 0x3a3be0b4, 0xbfea8f5c, 0x28f5c28c}, /* -0.73793=f(-0.83000)*/ +{12, 0,123,__LINE__, 0xbfe7658b, 0xee7f0040, 0xbfea3d70, 0xa3d70a3a}, /* -0.73114=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbfe72d5c, 0x4dc8d870, 0xbfe9eb85, 0x1eb851e8}, /* -0.72428=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbfe6f494, 0xc5bd2530, 0xbfe99999, 0x99999996}, /* -0.71735=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbfe6bb36, 0xd0d6ac78, 0xbfe947ae, 0x147ae144}, /* -0.71035=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbfe68143, 0xcf973f00, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.70327=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbfe646bd, 0x60246e20, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.69613=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbfe60ba4, 0xf91e6ca0, 0xbfe851eb, 0x851eb84e}, /* -0.68892=f(-0.76000)*/ +{14, 0,123,__LINE__, 0xbfe5cffc, 0x18000000, 0xbfe7ffff, 0xfffffffc}, /* -0.68163=f(-0.75000)*/ +{14, 0,123,__LINE__, 0xbfe593c4, 0x4095d910, 0xbfe7ae14, 0x7ae147aa}, /* -0.67428=f(-0.74000)*/ +{14, 0,123,__LINE__, 0xbfe556ff, 0x058df020, 0xbfe75c28, 0xf5c28f58}, /* -0.66686=f(-0.73000)*/ +{14, 0,123,__LINE__, 0xbfe519ad, 0xf0a07ac0, 0xbfe70a3d, 0x70a3d706}, /* -0.65938=f(-0.72000)*/ +{14, 0,123,__LINE__, 0xbfe4dbd2, 0x770615a0, 0xbfe6b851, 0xeb851eb4}, /* -0.65183=f(-0.71000)*/ +{14, 0,123,__LINE__, 0xbfe49d6e, 0x634f5ccc, 0xbfe66666, 0x66666662}, /* -0.64421=f(-0.70000)*/ +{14, 0,123,__LINE__, 0xbfe45e83, 0x390f2640, 0xbfe6147a, 0xe147ae10}, /* -0.63653=f(-0.69000)*/ +{15, 0,123,__LINE__, 0xbfe41f12, 0x8df369ac, 0xbfe5c28f, 0x5c28f5be}, /* -0.62879=f(-0.68000)*/ +{13, 0,123,__LINE__, 0xbfe3df1e, 0x0843b82c, 0xbfe570a3, 0xd70a3d6c}, /* -0.62098=f(-0.67000)*/ +{13, 0,123,__LINE__, 0xbfe39ea7, 0x461eacec, 0xbfe51eb8, 0x51eb851a}, /* -0.61311=f(-0.66000)*/ +{13, 0,123,__LINE__, 0xbfe35daf, 0xd7e1ea68, 0xbfe4cccc, 0xccccccc8}, /* -0.60518=f(-0.65000)*/ +{13, 0,123,__LINE__, 0xbfe31c39, 0x978dbc50, 0xbfe47ae1, 0x47ae1476}, /* -0.59719=f(-0.64000)*/ +{13, 0,123,__LINE__, 0xbfe2da46, 0x185db328, 0xbfe428f5, 0xc28f5c24}, /* -0.58914=f(-0.63000)*/ +{15, 0,123,__LINE__, 0xbfe297d7, 0x0dadda58, 0xbfe3d70a, 0x3d70a3d2}, /* -0.58103=f(-0.62000)*/ +{15, 0,123,__LINE__, 0xbfe254ee, 0x2997adc4, 0xbfe3851e, 0xb851eb80}, /* -0.57286=f(-0.61000)*/ +{15, 0,123,__LINE__, 0xbfe2118d, 0x233ee698, 0xbfe33333, 0x3333332e}, /* -0.56464=f(-0.60000)*/ +{14, 0,123,__LINE__, 0xbfe1cdb5, 0x961530b0, 0xbfe2e147, 0xae147adc}, /* -0.55636=f(-0.59000)*/ +{14, 0,123,__LINE__, 0xbfe18969, 0x782c89a0, 0xbfe28f5c, 0x28f5c28a}, /* -0.54802=f(-0.58000)*/ +{14, 0,123,__LINE__, 0xbfe144aa, 0x6a1ac606, 0xbfe23d70, 0xa3d70a38}, /* -0.53963=f(-0.57000)*/ +{15, 0,123,__LINE__, 0xbfe0ff7a, 0x33c62e08, 0xbfe1eb85, 0x1eb851e6}, /* -0.53118=f(-0.56000)*/ +{15, 0,123,__LINE__, 0xbfe0b9da, 0x9761d676, 0xbfe19999, 0x99999994}, /* -0.52268=f(-0.55000)*/ +{15, 0,123,__LINE__, 0xbfe073cd, 0x5ceda0c6, 0xbfe147ae, 0x147ae142}, /* -0.51413=f(-0.54000)*/ +{16, 0,123,__LINE__, 0xbfe02d54, 0x3472f658, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.50553=f(-0.53000)*/ +{10, 0,123,__LINE__, 0xbfdfcce2, 0x4659bec0, 0xbfe0a3d7, 0x0a3d709e}, /* -0.49688=f(-0.52000)*/ +{10, 0,123,__LINE__, 0xbfdf3e4b, 0xbf702bb0, 0xbfe051eb, 0x851eb84c}, /* -0.48817=f(-0.51000)*/ +{15, 0,123,__LINE__, 0xbfdeaee8, 0x74000000, 0xbfdfffff, 0xfffffff4}, /* -0.47942=f(-0.50000)*/ +{15, 0,123,__LINE__, 0xbfde1ebc, 0x146f6410, 0xbfdf5c28, 0xf5c28f50}, /* -0.47062=f(-0.49000)*/ +{14, 0,123,__LINE__, 0xbfdd8dca, 0x3446fd1e, 0xbfdeb851, 0xeb851eac}, /* -0.46177=f(-0.48000)*/ +{14, 0,123,__LINE__, 0xbfdcfc16, 0xc1ba02f4, 0xbfde147a, 0xe147ae08}, /* -0.45288=f(-0.47000)*/ +{15, 0,123,__LINE__, 0xbfdc69a5, 0x5a913d00, 0xbfdd70a3, 0xd70a3d64}, /* -0.44394=f(-0.46000)*/ +{13, 0,123,__LINE__, 0xbfdbd679, 0xa20713e0, 0xbfdccccc, 0xccccccc0}, /* -0.43496=f(-0.45000)*/ +{13, 0,123,__LINE__, 0xbfdb4297, 0x983de70c, 0xbfdc28f5, 0xc28f5c1c}, /* -0.42593=f(-0.44000)*/ +{15, 0,123,__LINE__, 0xbfdaae02, 0xe739baca, 0xbfdb851e, 0xb851eb78}, /* -0.41687=f(-0.43000)*/ +{16, 0,123,__LINE__, 0xbfda18bf, 0x3fee2934, 0xbfdae147, 0xae147ad4}, /* -0.40776=f(-0.42000)*/ +{14, 0,123,__LINE__, 0xbfd982d0, 0xaefc9748, 0xbfda3d70, 0xa3d70a30}, /* -0.39860=f(-0.41000)*/ +{15, 0,123,__LINE__, 0xbfd8ec3a, 0xee3b0eba, 0xbfd99999, 0x9999998c}, /* -0.38941=f(-0.40000)*/ +{16, 0,123,__LINE__, 0xbfd85501, 0xbcf248f0, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.38018=f(-0.39000)*/ +{12, 0,123,__LINE__, 0xbfd7bd29, 0x305cc1f8, 0xbfd851eb, 0x851eb844}, /* -0.37092=f(-0.38000)*/ +{16, 0,123,__LINE__, 0xbfd724b5, 0x11af1908, 0xbfd7ae14, 0x7ae147a0}, /* -0.36161=f(-0.37000)*/ +{15, 0,123,__LINE__, 0xbfd68ba9, 0x4863ef1c, 0xbfd70a3d, 0x70a3d6fc}, /* -0.35227=f(-0.36000)*/ +{14, 0,123,__LINE__, 0xbfd5f209, 0x9f07a579, 0xbfd66666, 0x66666658}, /* -0.34289=f(-0.35000)*/ +{16, 0,123,__LINE__, 0xbfd557da, 0x420be3a7, 0xbfd5c28f, 0x5c28f5b4}, /* -0.33348=f(-0.34000)*/ +{15, 0,123,__LINE__, 0xbfd4bd1f, 0x05aa7438, 0xbfd51eb8, 0x51eb8510}, /* -0.32404=f(-0.33000)*/ +{17, 0,123,__LINE__, 0xbfd421db, 0xc1691024, 0xbfd47ae1, 0x47ae146c}, /* -0.31456=f(-0.32000)*/ +{17, 0,123,__LINE__, 0xbfd38614, 0xab6112da, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30505=f(-0.31000)*/ +{15, 0,123,__LINE__, 0xbfd2e9cd, 0xa20244ca, 0xbfd33333, 0x33333324}, /* -0.29552=f(-0.30000)*/ +{16, 0,123,__LINE__, 0xbfd24d0a, 0x87533748, 0xbfd28f5c, 0x28f5c280}, /* -0.28595=f(-0.29000)*/ +{17, 0,123,__LINE__, 0xbfd1afcf, 0x9b4da7b2, 0xbfd1eb85, 0x1eb851dc}, /* -0.27635=f(-0.28000)*/ +{17, 0,123,__LINE__, 0xbfd11220, 0xc67b04c1, 0xbfd147ae, 0x147ae138}, /* -0.26673=f(-0.27000)*/ +{16, 0,123,__LINE__, 0xbfd07401, 0xf2b1ea4c, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25708=f(-0.26000)*/ +{17, 0,123,__LINE__, 0xbfcfaaee, 0xd5000000, 0xbfcfffff, 0xffffffe0}, /* -0.24740=f(-0.25000)*/ +{16, 0,123,__LINE__, 0xbfce6d0a, 0x1c1c3aea, 0xbfceb851, 0xeb851e98}, /* -0.23770=f(-0.24000)*/ +{17, 0,123,__LINE__, 0xbfcd2e5e, 0x1c8fab8c, 0xbfcd70a3, 0xd70a3d50}, /* -0.22797=f(-0.23000)*/ +{13, 0,123,__LINE__, 0xbfcbeef2, 0xc0616f0d, 0xbfcc28f5, 0xc28f5c08}, /* -0.21822=f(-0.22000)*/ +{17, 0,123,__LINE__, 0xbfcaaed0, 0x54555088, 0xbfcae147, 0xae147ac0}, /* -0.20845=f(-0.21000)*/ +{16, 0,123,__LINE__, 0xbfc96dff, 0x295b7fc9, 0xbfc99999, 0x99999978}, /* -0.19866=f(-0.20000)*/ +{17, 0,123,__LINE__, 0xbfc82c87, 0x378cfdf0, 0xbfc851eb, 0x851eb830}, /* -0.18885=f(-0.19000)*/ +{15, 0,123,__LINE__, 0xbfc6ea70, 0xf8b799c8, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17902=f(-0.18000)*/ +{17, 0,123,__LINE__, 0xbfc5a7c4, 0x6be43b5b, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16918=f(-0.17000)*/ +{19, 0,123,__LINE__, 0xbfc46489, 0xf3df6afa, 0xbfc47ae1, 0x47ae1458}, /* -0.15931=f(-0.16000)*/ +{19, 0,123,__LINE__, 0xbfc320c9, 0xf69a2036, 0xbfc33333, 0x33333310}, /* -0.14943=f(-0.15000)*/ +{18, 0,123,__LINE__, 0xbfc1dc8c, 0x7e2f9215, 0xbfc1eb85, 0x1eb851c8}, /* -0.13954=f(-0.14000)*/ +{18, 0,123,__LINE__, 0xbfc097d9, 0xf7594c28, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12963=f(-0.13000)*/ +{19, 0,123,__LINE__, 0xbfbea575, 0x83c9a1ff, 0xbfbeb851, 0xeb851e71}, /* -0.11971=f(-0.12000)*/ +{18, 0,123,__LINE__, 0xbfbc1a6e, 0x4150ae4c, 0xbfbc28f5, 0xc28f5be2}, /* -0.10977=f(-0.11000)*/ +{19, 0,123,__LINE__, 0xbfb98eae, 0xd1e3abb3, 0xbfb99999, 0x99999953}, /* -0.09983=f(-0.00100)*/ +{20, 0,123,__LINE__, 0xbfb70247, 0xe4c25fad, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08987=f(-0.09000)*/ +{20, 0,123,__LINE__, 0xbfb4754a, 0x0d687f19, 0xbfb47ae1, 0x47ae1435}, /* -0.07991=f(-0.08000)*/ +{20, 0,123,__LINE__, 0xbfb1e7c6, 0x432c884f, 0xbfb1eb85, 0x1eb851a6}, /* -0.06994=f(-0.07000)*/ +{20, 0,123,__LINE__, 0xbfaeb39a, 0x2206e3a0, 0xbfaeb851, 0xeb851e2d}, /* -0.05996=f(-0.06000)*/ +{20, 0,123,__LINE__, 0xbfa996de, 0xa9628476, 0xbfa99999, 0x9999990e}, /* -0.04997=f(-0.05000)*/ +{16, 0,123,__LINE__, 0xbfa4797b, 0x5d5caf2b, 0xbfa47ae1, 0x47ae13ef}, /* -0.03998=f(-0.04000)*/ +{18, 0,123,__LINE__, 0xbf9eb723, 0xe613009a, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{ 2, 0,123,__LINE__, 0xbf947a87, 0xc5f7cfa2, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{ 2, 0,123,__LINE__, 0xbf847aca, 0xe167df6e, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{26, 0,123,__LINE__, 0x3f847aca, 0xe167df6e, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{25, 0,123,__LINE__, 0x3f947a87, 0xc5f7cfa2, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{20, 0,123,__LINE__, 0x3f9eb723, 0xe613009a, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{22, 0,123,__LINE__, 0x3fa4797b, 0x5d5caf2b, 0x3fa47ae1, 0x47ae1508}, /* 0.03998=f(0.04000)*/ +{20, 0,123,__LINE__, 0x3fa996de, 0xa9628476, 0x3fa99999, 0x99999a27}, /* 0.04997=f(0.05000)*/ +{20, 0,123,__LINE__, 0x3faeb39a, 0x2206e3a0, 0x3faeb851, 0xeb851f46}, /* 0.05996=f(0.06000)*/ +{20, 0,123,__LINE__, 0x3fb1e7c6, 0x432c884f, 0x3fb1eb85, 0x1eb85232}, /* 0.06994=f(0.07000)*/ +{20, 0,123,__LINE__, 0x3fb4754a, 0x0d687f19, 0x3fb47ae1, 0x47ae14c1}, /* 0.07991=f(0.08000)*/ +{20, 0,123,__LINE__, 0x3fb70247, 0xe4c25fad, 0x3fb70a3d, 0x70a3d750}, /* 0.08987=f(0.09000)*/ +{19, 0,123,__LINE__, 0x3fb98eae, 0xd1e3abb3, 0x3fb99999, 0x999999df}, /* 0.09983=f(0.10000)*/ +{18, 0,123,__LINE__, 0x3fbc1a6e, 0x4150ae4c, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10977=f(0.11000)*/ +{19, 0,123,__LINE__, 0x3fbea575, 0x83c9a1ff, 0x3fbeb851, 0xeb851efd}, /* 0.11971=f(0.12000)*/ +{18, 0,123,__LINE__, 0x3fc097d9, 0xf7594c28, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12963=f(0.13000)*/ +{18, 0,123,__LINE__, 0x3fc1dc8c, 0x7e2f9215, 0x3fc1eb85, 0x1eb8520e}, /* 0.13954=f(0.14000)*/ +{19, 0,123,__LINE__, 0x3fc320c9, 0xf69a2036, 0x3fc33333, 0x33333356}, /* 0.14943=f(0.15000)*/ +{19, 0,123,__LINE__, 0x3fc46489, 0xf3df6afa, 0x3fc47ae1, 0x47ae149e}, /* 0.15931=f(0.16000)*/ +{17, 0,123,__LINE__, 0x3fc5a7c4, 0x6be43b5b, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16918=f(0.17000)*/ +{15, 0,123,__LINE__, 0x3fc6ea70, 0xf8b799c8, 0x3fc70a3d, 0x70a3d72e}, /* 0.17902=f(0.18000)*/ +{17, 0,123,__LINE__, 0x3fc82c87, 0x378cfdf0, 0x3fc851eb, 0x851eb876}, /* 0.18885=f(0.19000)*/ +{16, 0,123,__LINE__, 0x3fc96dff, 0x295b7fc9, 0x3fc99999, 0x999999be}, /* 0.19866=f(0.20000)*/ +{17, 0,123,__LINE__, 0x3fcaaed0, 0x54555088, 0x3fcae147, 0xae147b06}, /* 0.20845=f(0.21000)*/ +{13, 0,123,__LINE__, 0x3fcbeef2, 0xc0616f0d, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21822=f(0.22000)*/ +{17, 0,123,__LINE__, 0x3fcd2e5e, 0x1c8fab8c, 0x3fcd70a3, 0xd70a3d96}, /* 0.22797=f(0.23000)*/ +{16, 0,123,__LINE__, 0x3fce6d0a, 0x1c1c3aea, 0x3fceb851, 0xeb851ede}, /* 0.23770=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fcfaaee, 0xd5000000, 0x3fd00000, 0x00000013}, /* 0.24740=f(0.25000)*/ +{16, 0,123,__LINE__, 0x3fd07401, 0xf2b1ea4c, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25708=f(0.26000)*/ +{17, 0,123,__LINE__, 0x3fd11220, 0xc67b04c1, 0x3fd147ae, 0x147ae15b}, /* 0.26673=f(0.27000)*/ +{17, 0,123,__LINE__, 0x3fd1afcf, 0x9b4da7b2, 0x3fd1eb85, 0x1eb851ff}, /* 0.27635=f(0.28000)*/ +{16, 0,123,__LINE__, 0x3fd24d0a, 0x87533748, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28595=f(0.29000)*/ +{15, 0,123,__LINE__, 0x3fd2e9cd, 0xa20244ca, 0x3fd33333, 0x33333347}, /* 0.29552=f(0.30000)*/ +{17, 0,123,__LINE__, 0x3fd38614, 0xab6112da, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30505=f(0.31000)*/ +{17, 0,123,__LINE__, 0x3fd421db, 0xc1691024, 0x3fd47ae1, 0x47ae148f}, /* 0.31456=f(0.32000)*/ +{15, 0,123,__LINE__, 0x3fd4bd1f, 0x05aa7438, 0x3fd51eb8, 0x51eb8533}, /* 0.32404=f(0.33000)*/ +{16, 0,123,__LINE__, 0x3fd557da, 0x420be3a7, 0x3fd5c28f, 0x5c28f5d7}, /* 0.33348=f(0.34000)*/ +{14, 0,123,__LINE__, 0x3fd5f209, 0x9f07a579, 0x3fd66666, 0x6666667b}, /* 0.34289=f(0.35000)*/ +{15, 0,123,__LINE__, 0x3fd68ba9, 0x4863ef1c, 0x3fd70a3d, 0x70a3d71f}, /* 0.35227=f(0.36000)*/ +{16, 0,123,__LINE__, 0x3fd724b5, 0x11af1908, 0x3fd7ae14, 0x7ae147c3}, /* 0.36161=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fd7bd29, 0x305cc1f8, 0x3fd851eb, 0x851eb867}, /* 0.37092=f(0.38000)*/ +{16, 0,123,__LINE__, 0x3fd85501, 0xbcf248f0, 0x3fd8f5c2, 0x8f5c290b}, /* 0.38018=f(0.39000)*/ +{15, 0,123,__LINE__, 0x3fd8ec3a, 0xee3b0eba, 0x3fd99999, 0x999999af}, /* 0.38941=f(0.40000)*/ +{14, 0,123,__LINE__, 0x3fd982d0, 0xaefc9748, 0x3fda3d70, 0xa3d70a53}, /* 0.39860=f(0.41000)*/ +{16, 0,123,__LINE__, 0x3fda18bf, 0x3fee2934, 0x3fdae147, 0xae147af7}, /* 0.40776=f(0.42000)*/ +{15, 0,123,__LINE__, 0x3fdaae02, 0xe739baca, 0x3fdb851e, 0xb851eb9b}, /* 0.41687=f(0.43000)*/ +{13, 0,123,__LINE__, 0x3fdb4297, 0x983de70c, 0x3fdc28f5, 0xc28f5c3f}, /* 0.42593=f(0.44000)*/ +{13, 0,123,__LINE__, 0x3fdbd679, 0xa20713e0, 0x3fdccccc, 0xcccccce3}, /* 0.43496=f(0.45000)*/ +{15, 0,123,__LINE__, 0x3fdc69a5, 0x5a913d00, 0x3fdd70a3, 0xd70a3d87}, /* 0.44394=f(0.46000)*/ +{14, 0,123,__LINE__, 0x3fdcfc16, 0xc1ba02f4, 0x3fde147a, 0xe147ae2b}, /* 0.45288=f(0.47000)*/ +{14, 0,123,__LINE__, 0x3fdd8dca, 0x3446fd1e, 0x3fdeb851, 0xeb851ecf}, /* 0.46177=f(0.48000)*/ +{15, 0,123,__LINE__, 0x3fde1ebc, 0x146f6410, 0x3fdf5c28, 0xf5c28f73}, /* 0.47062=f(0.49000)*/ +{15, 0,123,__LINE__, 0x3fdeaee8, 0x74000000, 0x3fe00000, 0x0000000b}, /* 0.47942=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fdf3e4b, 0xbf702bb0, 0x3fe051eb, 0x851eb85d}, /* 0.48817=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fdfcce2, 0x4659bec0, 0x3fe0a3d7, 0x0a3d70af}, /* 0.49688=f(0.52000)*/ +{16, 0,123,__LINE__, 0x3fe02d54, 0x3472f658, 0x3fe0f5c2, 0x8f5c2901}, /* 0.50553=f(0.53000)*/ +{15, 0,123,__LINE__, 0x3fe073cd, 0x5ceda0c6, 0x3fe147ae, 0x147ae153}, /* 0.51413=f(0.54000)*/ +{15, 0,123,__LINE__, 0x3fe0b9da, 0x9761d676, 0x3fe19999, 0x999999a5}, /* 0.52268=f(0.55000)*/ +{15, 0,123,__LINE__, 0x3fe0ff7a, 0x33c62e08, 0x3fe1eb85, 0x1eb851f7}, /* 0.53118=f(0.56000)*/ +{14, 0,123,__LINE__, 0x3fe144aa, 0x6a1ac606, 0x3fe23d70, 0xa3d70a49}, /* 0.53963=f(0.57000)*/ +{14, 0,123,__LINE__, 0x3fe18969, 0x782c89a0, 0x3fe28f5c, 0x28f5c29b}, /* 0.54802=f(0.58000)*/ +{14, 0,123,__LINE__, 0x3fe1cdb5, 0x961530b0, 0x3fe2e147, 0xae147aed}, /* 0.55636=f(0.59000)*/ +{15, 0,123,__LINE__, 0x3fe2118d, 0x233ee698, 0x3fe33333, 0x3333333f}, /* 0.56464=f(0.60000)*/ +{15, 0,123,__LINE__, 0x3fe254ee, 0x2997adc4, 0x3fe3851e, 0xb851eb91}, /* 0.57286=f(0.61000)*/ +{15, 0,123,__LINE__, 0x3fe297d7, 0x0dadda58, 0x3fe3d70a, 0x3d70a3e3}, /* 0.58103=f(0.62000)*/ +{13, 0,123,__LINE__, 0x3fe2da46, 0x185db328, 0x3fe428f5, 0xc28f5c35}, /* 0.58914=f(0.63000)*/ +{13, 0,123,__LINE__, 0x3fe31c39, 0x978dbc50, 0x3fe47ae1, 0x47ae1487}, /* 0.59719=f(0.64000)*/ +{13, 0,123,__LINE__, 0x3fe35daf, 0xd7e1ea68, 0x3fe4cccc, 0xccccccd9}, /* 0.60518=f(0.65000)*/ +{13, 0,123,__LINE__, 0x3fe39ea7, 0x461eacec, 0x3fe51eb8, 0x51eb852b}, /* 0.61311=f(0.66000)*/ +{13, 0,123,__LINE__, 0x3fe3df1e, 0x0843b82c, 0x3fe570a3, 0xd70a3d7d}, /* 0.62098=f(0.67000)*/ +{15, 0,123,__LINE__, 0x3fe41f12, 0x8df369ac, 0x3fe5c28f, 0x5c28f5cf}, /* 0.62879=f(0.68000)*/ +{14, 0,123,__LINE__, 0x3fe45e83, 0x390f2640, 0x3fe6147a, 0xe147ae21}, /* 0.63653=f(0.69000)*/ +{14, 0,123,__LINE__, 0x3fe49d6e, 0x634f5ccc, 0x3fe66666, 0x66666673}, /* 0.64421=f(0.70000)*/ +{14, 0,123,__LINE__, 0x3fe4dbd2, 0x770615a0, 0x3fe6b851, 0xeb851ec5}, /* 0.65183=f(0.71000)*/ +{14, 0,123,__LINE__, 0x3fe519ad, 0xf0a07ac0, 0x3fe70a3d, 0x70a3d717}, /* 0.65938=f(0.72000)*/ +{14, 0,123,__LINE__, 0x3fe556ff, 0x058df020, 0x3fe75c28, 0xf5c28f69}, /* 0.66686=f(0.73000)*/ +{14, 0,123,__LINE__, 0x3fe593c4, 0x4095d910, 0x3fe7ae14, 0x7ae147bb}, /* 0.67428=f(0.74000)*/ +{14, 0,123,__LINE__, 0x3fe5cffc, 0x18000000, 0x3fe80000, 0x0000000d}, /* 0.68163=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe60ba4, 0xf91e6ca0, 0x3fe851eb, 0x851eb85f}, /* 0.68892=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe646bd, 0x60246e20, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.69613=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe68143, 0xcf973f00, 0x3fe8f5c2, 0x8f5c2903}, /* 0.70327=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe6bb36, 0xd0d6ac78, 0x3fe947ae, 0x147ae155}, /* 0.71035=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe6f494, 0xc5bd2530, 0x3fe99999, 0x999999a7}, /* 0.71735=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe72d5c, 0x4dc8d870, 0x3fe9eb85, 0x1eb851f9}, /* 0.72428=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3fe7658b, 0xee7f0040, 0x3fea3d70, 0xa3d70a4b}, /* 0.73114=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3fe79d22, 0x3a3be0b4, 0x3fea8f5c, 0x28f5c29d}, /* 0.73793=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3fe7d41d, 0xc35bbdac, 0x3feae147, 0xae147aef}, /* 0.74464=f(0.84000)*/ +{14, 0,123,__LINE__, 0x3fe80a7d, 0x3f1d07b8, 0x3feb3333, 0x33333341}, /* 0.75128=f(0.85000)*/ +{14, 0,123,__LINE__, 0x3fe8403f, 0x112aef10, 0x3feb851e, 0xb851eb93}, /* 0.75784=f(0.86000)*/ +{14, 0,123,__LINE__, 0x3fe87561, 0xf591ade8, 0x3febd70a, 0x3d70a3e5}, /* 0.76432=f(0.87000)*/ +{13, 0,123,__LINE__, 0x3fe8a9e4, 0x92e0bad0, 0x3fec28f5, 0xc28f5c37}, /* 0.77073=f(0.88000)*/ +{13, 0,123,__LINE__, 0x3fe8ddc5, 0x8f9d4eb0, 0x3fec7ae1, 0x47ae1489}, /* 0.77707=f(0.89000)*/ +{13, 0,123,__LINE__, 0x3fe91103, 0x8e759800, 0x3feccccc, 0xccccccdb}, /* 0.78332=f(0.90000)*/ +{13, 0,123,__LINE__, 0x3fe9439d, 0x63187a70, 0x3fed1eb8, 0x51eb852d}, /* 0.78950=f(0.91000)*/ +{13, 0,123,__LINE__, 0x3fe97591, 0x8a4ef7c0, 0x3fed70a3, 0xd70a3d7f}, /* 0.79560=f(0.92000)*/ +{13, 0,123,__LINE__, 0x3fe9a6de, 0xdf4f5690, 0x3fedc28f, 0x5c28f5d1}, /* 0.80161=f(0.93000)*/ +{13, 0,123,__LINE__, 0x3fe9d784, 0x1642a610, 0x3fee147a, 0xe147ae23}, /* 0.80755=f(0.94000)*/ +{13, 0,123,__LINE__, 0x3fea077f, 0xee1ec208, 0x3fee6666, 0x66666675}, /* 0.81341=f(0.95000)*/ +{13, 0,123,__LINE__, 0x3fea36d1, 0x310cb938, 0x3feeb851, 0xeb851ec7}, /* 0.81919=f(0.96000)*/ +{13, 0,123,__LINE__, 0x3fea6576, 0xc0808a20, 0x3fef0a3d, 0x70a3d719}, /* 0.82488=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3fea936f, 0x3f65d980, 0x3fef5c28, 0xf5c28f6b}, /* 0.83049=f(0.98000)*/ +{13, 0,123,__LINE__, 0x3feac0b9, 0x8ee23980, 0x3fefae14, 0x7ae147bd}, /* 0.83602=f(0.99000)*/ +{13, 0,123,__LINE__, 0x3feaed54, 0x90000000, 0x3ff00000, 0x00000007}, /* 0.84147=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3feb193f, 0x17c982a0, 0x3ff028f5, 0xc28f5c30}, /* 0.84683=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3feb4478, 0x06f72b40, 0x3ff051eb, 0x851eb859}, /* 0.85210=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3feb6efe, 0x42186dc0, 0x3ff07ae1, 0x47ae1482}, /* 0.85729=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3feb98d0, 0xb193c800, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.86240=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3febc1ee, 0x52738ea0, 0x3ff0cccc, 0xccccccd4}, /* 0.86742=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3febea55, 0xfbd69100, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.87235=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fec1206, 0xde7229c0, 0x3ff11eb8, 0x51eb8526}, /* 0.87720=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fec38ff, 0xa2d0aa60, 0x3ff147ae, 0x147ae14f}, /* 0.88195=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fec5f3f, 0x71376ab0, 0x3ff170a3, 0xd70a3d78}, /* 0.88662=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fec84c5, 0x525ed360, 0x3ff19999, 0x999999a1}, /* 0.89120=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3feca990, 0x532842a0, 0x3ff1c28f, 0x5c28f5ca}, /* 0.89569=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3feccd9f, 0x72b28700, 0x3ff1eb85, 0x1eb851f3}, /* 0.90010=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fecf0f1, 0xd7ca8350, 0x3ff2147a, 0xe147ae1c}, /* 0.90441=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fed1386, 0x898f05a0, 0x3ff23d70, 0xa3d70a45}, /* 0.90863=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fed355c, 0xae3d9410, 0x3ff26666, 0x6666666e}, /* 0.91276=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fed5673, 0x708e95c0, 0x3ff28f5c, 0x28f5c297}, /* 0.91680=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fed76c9, 0xecfd00f0, 0x3ff2b851, 0xeb851ec0}, /* 0.92075=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3fed965f, 0x4d4b79b0, 0x3ff2e147, 0xae147ae9}, /* 0.92460=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3fedb532, 0xde4934c0, 0x3ff30a3d, 0x70a3d712}, /* 0.92836=f(1.19000)*/ +{ 0, 0,123,__LINE__, 0x3fefffff, 0xff660711, 0xc012d97c, 0x7f3321d2}, /* 1.00000=f(-4.71238)*/ +{11, 0,123,__LINE__, 0xbfefffff, 0xf488d2e8, 0xbff921fb, 0x54442d18}, /* -1.00000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{11, 0,123,__LINE__, 0x3fefffff, 0xf488d2e8, 0x3ff921fb, 0x54442d18}, /* 1.00000=f(1.57079)*/ +{ 7, 0,123,__LINE__, 0xbe7777a5, 0xcffffff8, 0x400921fb, 0x54442d18}, /* -8.74228e-08=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0xbfefffff, 0xff660711, 0x4012d97c, 0x7f3321d2}, /* -1.00000=f(4.71238)*/ +{11, 0,123,__LINE__, 0x3fef9df4, 0xb1e4642c, 0xc03e0000, 0x00000000}, /* 0.98803=f(-30.0000)*/ +{ 0, 0,123,__LINE__, 0x3f9a4718, 0xcc369d44, 0xc03c4ccc, 0xcccccccd}, /* 0.02566=f(-28.3000)*/ +{ 0, 0,123,__LINE__, 0xbfefd421, 0x492e7c00, 0xc03a9999, 0x9999999a}, /* -0.99464=f(-26.6000)*/ +{ 0, 0,123,__LINE__, 0x3fcd85d3, 0xcf182eb3, 0xc038e666, 0x66666667}, /* 0.23064=f(-24.9000)*/ +{11, 0,123,__LINE__, 0x3feded3d, 0x8b45e97f, 0xc0373333, 0x33333334}, /* 0.93520=f(-23.2000)*/ +{ 0, 0,123,__LINE__, 0xbfde2f57, 0x4d706576, 0xc0358000, 0x00000001}, /* -0.47163=f(-21.5000)*/ +{11, 0,123,__LINE__, 0xbfea099b, 0xf0641080, 0xc033cccc, 0xccccccce}, /* -0.81367=f(-19.8000)*/ +{11, 0,123,__LINE__, 0x3fe5cd52, 0x799b4b25, 0xc0321999, 0x9999999b}, /* 0.68131=f(-18.1000)*/ +{ 0, 0,123,__LINE__, 0x3fe46b5d, 0x881b4460, 0xc0306666, 0x66666668}, /* 0.63810=f(-16.4000)*/ +{11, 0,123,__LINE__, 0xbfeb105c, 0x3d517bfe, 0xc02d6666, 0x6666666a}, /* -0.84574=f(-14.7000)*/ +{10, 0,123,__LINE__, 0xbfdae402, 0xf37793e0, 0xc02a0000, 0x00000004}, /* -0.42016=f(-13.0000)*/ +{11, 0,123,__LINE__, 0x3fee8753, 0x653e5af1, 0xc0269999, 0x9999999e}, /* 0.95401=f(-11.3000)*/ +{ 0, 0,123,__LINE__, 0x3fc65058, 0xbd1b5eb4, 0xc0233333, 0x33333338}, /* 0.17432=f(-9.60000)*/ +{ 0, 0,123,__LINE__, 0xbfeff753, 0xd002012d, 0xc01f9999, 0x999999a3}, /* -0.99894=f(-7.90000)*/ +{ 0, 0,123,__LINE__, 0x3fb5455c, 0x0c1effcb, 0xc018cccc, 0xccccccd6}, /* 0.08308=f(-6.20000)*/ +{11, 0,123,__LINE__, 0x3fef47ed, 0x3d6ef59a, 0xc0120000, 0x00000009}, /* 0.97753=f(-4.50000)*/ +{10, 0,123,__LINE__, 0xbfd57072, 0x5348b244, 0xc0066666, 0x66666678}, /* -0.33498=f(-2.80000)*/ +{11, 0,123,__LINE__, 0xbfec84c5, 0x525ed360, 0xbff19999, 0x999999bd}, /* -0.89120=f(-1.10000)*/ +{15, 0,123,__LINE__, 0x3fe2118d, 0x233ee698, 0x3fe33333, 0x333332ec}, /* 0.56464=f(0.60000)*/ +{ 0, 0,123,__LINE__, 0x3fe7dcd1, 0x3c5edd01, 0x40026666, 0x66666654}, /* 0.74570=f(2.30000)*/ +{ 0, 0,123,__LINE__, 0xbfe837b9, 0xdd343ee8, 0x400fffff, 0xffffffee}, /* -0.75680=f(4.00000)*/ +{11, 0,123,__LINE__, 0xbfe19f37, 0x9f04b0ee, 0x4016cccc, 0xccccccc4}, /* -0.55068=f(5.70000)*/ +{11, 0,123,__LINE__, 0x3fecc237, 0x682e8000, 0x401d9999, 0x99999991}, /* 0.89870=f(7.40000)*/ +{ 0, 0,123,__LINE__, 0x3fd46c1a, 0xb721a161, 0x40223333, 0x3333332f}, /* 0.31909=f(9.10000)*/ +{ 0, 0,123,__LINE__, 0xbfef63d4, 0x692d42ca, 0x40259999, 0x99999995}, /* -0.98093=f(10.8000)*/ +{ 0, 0,123,__LINE__, 0xbfb0fa7b, 0xb96c5598, 0x4028ffff, 0xfffffffb}, /* -0.06632=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0x3fefefd5, 0x9dd228df, 0x402c6666, 0x66666661}, /* 0.99802=f(14.2000)*/ +{10, 0,123,__LINE__, 0xbfc86e07, 0xcd3622f3, 0x402fcccc, 0xccccccc7}, /* -0.19085=f(15.9000)*/ +{ 0, 0,123,__LINE__, 0xbfee5cef, 0x21612ad9, 0x40319999, 0x99999997}, /* -0.94884=f(17.6000)*/ +{ 0, 0,123,__LINE__, 0x3fdbdd01, 0xcfebc4e0, 0x40334ccc, 0xccccccca}, /* 0.43536=f(19.3000)*/ +{11, 0,123,__LINE__, 0x3feac5e2, 0xa3fc3b2e, 0x4034ffff, 0xfffffffd}, /* 0.83665=f(21.0000)*/ +{11, 0,123,__LINE__, 0xbfe4d4af, 0x48b00aed, 0x4036b333, 0x33333330}, /* -0.65096=f(22.7000)*/ +{ 0, 0,123,__LINE__, 0xbfe567b6, 0xfbf31f85, 0x40386666, 0x66666663}, /* -0.66891=f(24.4000)*/ +{11, 0,123,__LINE__, 0x3fea58be, 0x10063200, 0x403a1999, 0x99999996}, /* 0.82333=f(26.1000)*/ +{ 0, 0,123,__LINE__, 0x3fdd3b58, 0xe939af6e, 0x403bcccc, 0xccccccc9}, /* 0.45674=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0xbfee1ced, 0x68d0d25a, 0x403d7fff, 0xfffffffc}, /* -0.94103=f(29.5000)*/ +0,}; +test_sinf(m) {run_vector_1(m,sinf_vec,(char *)(sinf),"sinf","ff"); } diff --git a/newlib/libm/test/sinh_vec.c b/newlib/libm/test/sinh_vec.c new file mode 100644 index 000000000..cdcea79b8 --- /dev/null +++ b/newlib/libm/test/sinh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type sinh_vec[] = { +{61, 0,123,__LINE__, 0xbff826c0, 0xf3412349, 0xbff33333, 0x33333333}, /* -1.50946=f(-1.20000)*/ +{61, 0,123,__LINE__, 0xbff7dce5, 0xac88bd42, 0xbff30a3d, 0x70a3d70a}, /* -1.49143=f(-1.19000)*/ +{60, 0,123,__LINE__, 0xbff793a6, 0xc96a7945, 0xbff2e147, 0xae147ae1}, /* -1.47354=f(-1.18000)*/ +{61, 0,123,__LINE__, 0xbff74b02, 0x69df80b2, 0xbff2b851, 0xeb851eb8}, /* -1.45581=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xbff702f6, 0xb1d59e8d, 0xbff28f5c, 0x28f5c28f}, /* -1.43822=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbff6bb81, 0xc9230f5e, 0xbff26666, 0x66666666}, /* -1.42077=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbff674a1, 0xdb7a6ae1, 0xbff23d70, 0xa3d70a3d}, /* -1.40347=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbff62e55, 0x185ea6e8, 0xbff2147a, 0xe147ae14}, /* -1.38631=f(-1.13000)*/ +{62, 0,123,__LINE__, 0xbff5e899, 0xb3173341, 0xbff1eb85, 0x1eb851eb}, /* -1.36928=f(-1.12000)*/ +{63, 0,123,__LINE__, 0xbff5a36d, 0xe2a42e52, 0xbff1c28f, 0x5c28f5c2}, /* -1.35240=f(-1.11000)*/ +{63, 0,123,__LINE__, 0xbff55ecf, 0xe1b2b212, 0xbff19999, 0x99999999}, /* -1.33564=f(-1.10000)*/ +{61, 0,123,__LINE__, 0xbff51abd, 0xee91391b, 0xbff170a3, 0xd70a3d70}, /* -1.31902=f(-1.09000)*/ +{63, 0,123,__LINE__, 0xbff4d736, 0x4b241b87, 0xbff147ae, 0x147ae147}, /* -1.30254=f(-1.08000)*/ +{59, 0,123,__LINE__, 0xbff49437, 0x3cda2350, 0xbff11eb8, 0x51eb851e}, /* -1.28618=f(-1.07000)*/ +{60, 0,123,__LINE__, 0xbff451bf, 0x0ca137d8, 0xbff0f5c2, 0x8f5c28f5}, /* -1.26995=f(-1.06000)*/ +{63, 0,123,__LINE__, 0xbff40fcc, 0x06db2079, 0xbff0cccc, 0xcccccccc}, /* -1.25385=f(-1.05000)*/ +{60, 0,123,__LINE__, 0xbff3ce5c, 0x7b525d87, 0xbff0a3d7, 0x0a3d70a3}, /* -1.23788=f(-1.04000)*/ +{63, 0,123,__LINE__, 0xbff38d6e, 0xbd2f17d4, 0xbff07ae1, 0x47ae147a}, /* -1.22202=f(-1.03000)*/ +{63, 0,123,__LINE__, 0xbff34d01, 0x22ec2632, 0xbff051eb, 0x851eb851}, /* -1.20630=f(-1.02000)*/ +{61, 0,123,__LINE__, 0xbff30d12, 0x064c28b2, 0xbff028f5, 0xc28f5c28}, /* -1.19069=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbff2cd9f, 0xc44eb981, 0xbfefffff, 0xfffffffe}, /* -1.17520=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbff28ea8, 0xbd25b2d0, 0xbfefae14, 0x7ae147ac}, /* -1.15982=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbff2502b, 0x542a89e1, 0xbfef5c28, 0xf5c28f5a}, /* -1.14457=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbff21225, 0xefd3be98, 0xbfef0a3d, 0x70a3d708}, /* -1.12943=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbff1d496, 0xf9aa5f8e, 0xbfeeb851, 0xeb851eb6}, /* -1.11440=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbff1977c, 0xde3fa237, 0xbfee6666, 0x66666664}, /* -1.09948=f(-0.95000)*/ +{64, 0,123,__LINE__, 0xbff15ad6, 0x0d228eef, 0xbfee147a, 0xe147ae12}, /* -1.08467=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbff11ea0, 0xf8d5c0a0, 0xbfedc28f, 0x5c28f5c0}, /* -1.06997=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbff0e2dc, 0x16c537bc, 0xbfed70a3, 0xd70a3d6e}, /* -1.05538=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbff0a785, 0xdf3c4053, 0xbfed1eb8, 0x51eb851c}, /* -1.04089=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbff06c9c, 0xcd5b6af6, 0xbfeccccc, 0xccccccca}, /* -1.02651=f(-0.90000)*/ +{62, 0,123,__LINE__, 0xbff0321f, 0x5f0e982e, 0xbfec7ae1, 0x47ae1478}, /* -1.01223=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfeff018, 0x2a062c81, 0xbfec28f5, 0xc28f5c26}, /* -0.99805=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfef7cc2, 0xe53ba212, 0xbfebd70a, 0x3d70a3d4}, /* -0.98397=f(-0.87000)*/ +{64, 0,123,__LINE__, 0xbfef0a3b, 0xfbe32730, 0xbfeb851e, 0xb851eb82}, /* -0.96999=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfee9880, 0x7f6ab6d3, 0xbfeb3333, 0x33333330}, /* -0.95611=f(-0.85000)*/ +{64, 0,123,__LINE__, 0xbfee278d, 0x867579cd, 0xbfeae147, 0xae147ade}, /* -0.94232=f(-0.84000)*/ +{64, 0,123,__LINE__, 0xbfedb760, 0x2cc8b1f2, 0xbfea8f5c, 0x28f5c28c}, /* -0.92863=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfed47f5, 0x9338c6e0, 0xbfea3d70, 0xa3d70a3a}, /* -0.91503=f(-0.82000)*/ +{63, 0,123,__LINE__, 0xbfecd94a, 0xdf9673f5, 0xbfe9eb85, 0x1eb851e8}, /* -0.90152=f(-0.81000)*/ +{64, 0,123,__LINE__, 0xbfec6b5d, 0x3c9c16ea, 0xbfe99999, 0x99999996}, /* -0.88810=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfebfe29, 0xd9db1ea9, 0xbfe947ae, 0x147ae144}, /* -0.87477=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfeb91ad, 0xeba999d5, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.86153=f(-0.78000)*/ +{62, 0,123,__LINE__, 0xbfeb25e6, 0xab0fe492, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.84837=f(-0.77000)*/ +{64, 0,123,__LINE__, 0xbfeabad1, 0x55b67515, 0xbfe851eb, 0x851eb84e}, /* -0.83530=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfea506b, 0x2dd3c68b, 0xbfe7ffff, 0xfffffffc}, /* -0.82231=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe9e6b1, 0x7a1a61cb, 0xbfe7ae14, 0x7ae147aa}, /* -0.80941=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe97da1, 0x85a7037c, 0xbfe75c28, 0xf5c28f58}, /* -0.79658=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfe91538, 0x9feedf1e, 0xbfe70a3d, 0x70a3d706}, /* -0.78384=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe8ad74, 0x1cadfe96, 0xbfe6b851, 0xeb851eb4}, /* -0.77117=f(-0.71000)*/ +{60, 0,123,__LINE__, 0xbfe84651, 0x53d5bdb8, 0xbfe66666, 0x66666662}, /* -0.75858=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfe7dfcd, 0xa17b6170, 0xbfe6147a, 0xe147ae10}, /* -0.74606=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe779e6, 0x65c6ca07, 0xbfe5c28f, 0x5c28f5be}, /* -0.73363=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe71499, 0x04e14019, 0xbfe570a3, 0xd70a3d6c}, /* -0.72126=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe6afe2, 0xe6e45bcb, 0xbfe51eb8, 0x51eb851a}, /* -0.70897=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe64bc1, 0x77c905d6, 0xbfe4cccc, 0xccccccc8}, /* -0.69674=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe5e832, 0x275691ec, 0xbfe47ae1, 0x47ae1476}, /* -0.68459=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe58532, 0x6911f213, 0xbfe428f5, 0xc28f5c24}, /* -0.67250=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe522bf, 0xb42d0283, 0xbfe3d70a, 0x3d70a3d2}, /* -0.66049=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe4c0d7, 0x8375ed99, 0xbfe3851e, 0xb851eb80}, /* -0.64854=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe45f77, 0x5546a778, 0xbfe33333, 0x3333332e}, /* -0.63665=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe3fe9c, 0xab7480e1, 0xbfe2e147, 0xae147adc}, /* -0.62483=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe39e45, 0x0b3fd0e4, 0xbfe28f5c, 0x28f5c28a}, /* -0.61307=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe33e6d, 0xfd43b4ed, 0xbfe23d70, 0xa3d70a38}, /* -0.60137=f(-0.57000)*/ +{64, 0,123,__LINE__, 0xbfe2df15, 0x0d65e6dc, 0xbfe1eb85, 0x1eb851e6}, /* -0.58973=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe28037, 0xcac6a8a0, 0xbfe19999, 0x99999994}, /* -0.57815=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe221d3, 0xc7b0c504, 0xbfe147ae, 0x147ae142}, /* -0.56662=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe1c3e6, 0x9989a53c, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.55516=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe1666d, 0xd8c17ac3, 0xbfe0a3d7, 0x0a3d709e}, /* -0.54375=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe10967, 0x20c37d30, 0xbfe051eb, 0x851eb84c}, /* -0.53239=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfe0acd0, 0x0fe63b90, 0xbfdfffff, 0xfffffff4}, /* -0.52109=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfe050a6, 0x475c00e4, 0xbfdf5c28, 0xf5c28f50}, /* -0.50984=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdfe9ce, 0xd64696aa, 0xbfdeb851, 0xeb851eac}, /* -0.49864=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfdf3322, 0x43eeab90, 0xbfde147a, 0xe147ae08}, /* -0.48749=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfde7d42, 0x2a8166ab, 0xbfdd70a3, 0xd70a3d64}, /* -0.47639=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfddc829, 0xe20bf8b2, 0xbfdccccc, 0xccccccc0}, /* -0.46534=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfdd13d4, 0xc7b9193c, 0xbfdc28f5, 0xc28f5c1c}, /* -0.45433=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfdc603e, 0x3db2a4ab, 0xbfdb851e, 0xb851eb78}, /* -0.44337=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdbad61, 0xab035ad2, 0xbfdae147, 0xae147ad4}, /* -0.43245=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfdafb3a, 0x7b78bd98, 0xbfda3d70, 0xa3d70a30}, /* -0.42158=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfda49c4, 0x1f850ec3, 0xbfd99999, 0x9999998c}, /* -0.41075=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd998fa, 0x0c216c44, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.39996=f(-0.39000)*/ +{62, 0,123,__LINE__, 0xbfd8e8d7, 0xbab00a19, 0xbfd851eb, 0x851eb844}, /* -0.38921=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd83958, 0xa8de892b, 0xbfd7ae14, 0x7ae147a0}, /* -0.37850=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd78a78, 0x58886a40, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36782=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd6dc32, 0x4f999c59, 0xbfd66666, 0x66666658}, /* -0.35718=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd62e82, 0x17f125b5, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34658=f(-0.34000)*/ +{62, 0,123,__LINE__, 0xbfd58163, 0x3f43e6b2, 0xbfd51eb8, 0x51eb8510}, /* -0.33602=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd4d4d1, 0x56ff75cc, 0xbfd47ae1, 0x47ae146c}, /* -0.32548=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd428c7, 0xf42d140d, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31498=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd37d42, 0xaf54b916, 0xbfd33333, 0x33333324}, /* -0.30452=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd2d23d, 0x24603618, 0xbfd28f5c, 0x28f5c280}, /* -0.29408=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd227b2, 0xf27e6eed, 0xbfd1eb85, 0x1eb851dc}, /* -0.28367=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd17d9f, 0xbc06a8af, 0xbfd147ae, 0x147ae138}, /* -0.27329=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd0d3ff, 0x265becef, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26293=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfd02acc, 0xd9d080f1, 0xbfcfffff, 0xffffffe0}, /* -0.25261=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfcf0409, 0x0312e035, 0xbfceb851, 0xeb851e98}, /* -0.24231=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfcdb343, 0x96c451c7, 0xbfcd70a3, 0xd70a3d50}, /* -0.23203=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcc6340, 0xcfa05725, 0xbfcc28f5, 0xc28f5c08}, /* -0.22177=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcb13f8, 0x138d93ff, 0xbfcae147, 0xae147ac0}, /* -0.21154=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc9c560, 0xcd35ef5f, 0xbfc99999, 0x99999978}, /* -0.20133=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc87772, 0x6bce5312, 0xbfc851eb, 0x851eb830}, /* -0.19114=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc72a24, 0x62de88dd, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18097=f(-0.18000)*/ +{63, 0,123,__LINE__, 0xbfc5dd6e, 0x2a0933fd, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17082=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc49147, 0x3cd3e598, 0xbfc47ae1, 0x47ae1458}, /* -0.16068=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc345a7, 0x1a6f4aa6, 0xbfc33333, 0x33333310}, /* -0.15056=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1fa85, 0x457f71db, 0xbfc1eb85, 0x1eb851c8}, /* -0.14045=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0afd9, 0x43e4283d, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13036=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbecb35, 0x3d02d5b5, 0xbfbeb851, 0xeb851e71}, /* -0.12028=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc3781, 0xc20fd8a8, 0xbfbc28f5, 0xc28f5be2}, /* -0.11022=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb9a487, 0x337b596c, 0xbfb99999, 0x99999953}, /* -0.10016=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb71234, 0xb28d4487, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09012=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb48079, 0x64dae38a, 0xbfb47ae1, 0x47ae1435}, /* -0.08008=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1ef44, 0x73d869da, 0xbfb1eb85, 0x1eb851a6}, /* -0.07005=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaebd0a, 0x18d535bc, 0xbfaeb851, 0xeb851e2d}, /* -0.06003=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99c54, 0xbcf10d6f, 0xbfa99999, 0x9999990e}, /* -0.05002=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47c47, 0x38fab55b, 0xbfa47ae1, 0x47ae13ef}, /* -0.04001=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb97f, 0xec690a08, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947b3a, 0xc2a15f75, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847af7, 0xa654e7bd, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847af7, 0xa654ec21, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947b3a, 0xc2a161a7, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb97f, 0xec690c3b, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47c47, 0x38fab674, 0x3fa47ae1, 0x47ae1508}, /* 0.04001=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99c54, 0xbcf10e89, 0x3fa99999, 0x99999a27}, /* 0.05002=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faebd0a, 0x18d536d5, 0x3faeb851, 0xeb851f46}, /* 0.06003=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1ef44, 0x73d86a66, 0x3fb1eb85, 0x1eb85232}, /* 0.07005=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb48079, 0x64dae416, 0x3fb47ae1, 0x47ae14c1}, /* 0.08008=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb71234, 0xb28d4514, 0x3fb70a3d, 0x70a3d750}, /* 0.09012=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb9a487, 0x337b59f9, 0x3fb99999, 0x999999df}, /* 0.10016=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc3781, 0xc20fd935, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11022=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbecb35, 0x3d02d642, 0x3fbeb851, 0xeb851efd}, /* 0.12028=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0afd9, 0x43e42883, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13036=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1fa85, 0x457f7222, 0x3fc1eb85, 0x1eb8520e}, /* 0.14045=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc345a7, 0x1a6f4aec, 0x3fc33333, 0x33333356}, /* 0.15056=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc49147, 0x3cd3e5df, 0x3fc47ae1, 0x47ae149e}, /* 0.16068=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5dd6e, 0x2a093444, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17082=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc72a24, 0x62de8924, 0x3fc70a3d, 0x70a3d72e}, /* 0.18097=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc87772, 0x6bce535a, 0x3fc851eb, 0x851eb876}, /* 0.19114=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc9c560, 0xcd35efa6, 0x3fc99999, 0x999999be}, /* 0.20133=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcb13f8, 0x138d9446, 0x3fcae147, 0xae147b06}, /* 0.21154=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcc6340, 0xcfa0576d, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22177=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcdb343, 0x96c4520f, 0x3fcd70a3, 0xd70a3d96}, /* 0.23203=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fcf0409, 0x0312e07d, 0x3fceb851, 0xeb851ede}, /* 0.24231=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd02acc, 0xd9d08115, 0x3fd00000, 0x00000013}, /* 0.25261=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd0d3ff, 0x265bed13, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26293=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd17d9f, 0xbc06a8d3, 0x3fd147ae, 0x147ae15b}, /* 0.27329=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd227b2, 0xf27e6f12, 0x3fd1eb85, 0x1eb851ff}, /* 0.28367=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd2d23d, 0x2460363c, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29408=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd37d42, 0xaf54b93b, 0x3fd33333, 0x33333347}, /* 0.30452=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd428c7, 0xf42d1431, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31498=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd4d4d1, 0x56ff75f0, 0x3fd47ae1, 0x47ae148f}, /* 0.32548=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd58163, 0x3f43e6d6, 0x3fd51eb8, 0x51eb8533}, /* 0.33602=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd62e82, 0x17f125da, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34658=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd6dc32, 0x4f999c7e, 0x3fd66666, 0x6666667b}, /* 0.35718=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd78a78, 0x58886a65, 0x3fd70a3d, 0x70a3d71f}, /* 0.36782=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd83958, 0xa8de8951, 0x3fd7ae14, 0x7ae147c3}, /* 0.37850=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd8e8d7, 0xbab00a3f, 0x3fd851eb, 0x851eb867}, /* 0.38921=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd998fa, 0x0c216c69, 0x3fd8f5c2, 0x8f5c290b}, /* 0.39996=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fda49c4, 0x1f850ee9, 0x3fd99999, 0x999999af}, /* 0.41075=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fdafb3a, 0x7b78bdbe, 0x3fda3d70, 0xa3d70a53}, /* 0.42158=f(0.41000)*/ +{63, 0,123,__LINE__, 0x3fdbad61, 0xab035af9, 0x3fdae147, 0xae147af7}, /* 0.43245=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdc603e, 0x3db2a4d1, 0x3fdb851e, 0xb851eb9b}, /* 0.44337=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fdd13d4, 0xc7b91962, 0x3fdc28f5, 0xc28f5c3f}, /* 0.45433=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fddc829, 0xe20bf8d9, 0x3fdccccc, 0xcccccce3}, /* 0.46534=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fde7d42, 0x2a8166d2, 0x3fdd70a3, 0xd70a3d87}, /* 0.47639=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdf3322, 0x43eeabb7, 0x3fde147a, 0xe147ae2b}, /* 0.48749=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdfe9ce, 0xd64696d2, 0x3fdeb851, 0xeb851ecf}, /* 0.49864=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe050a6, 0x475c00f7, 0x3fdf5c28, 0xf5c28f73}, /* 0.50984=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe0acd0, 0x0fe63ba3, 0x3fe00000, 0x0000000b}, /* 0.52109=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe10967, 0x20c37d43, 0x3fe051eb, 0x851eb85d}, /* 0.53239=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe1666d, 0xd8c17ad6, 0x3fe0a3d7, 0x0a3d70af}, /* 0.54375=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe1c3e6, 0x9989a550, 0x3fe0f5c2, 0x8f5c2901}, /* 0.55516=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe221d3, 0xc7b0c518, 0x3fe147ae, 0x147ae153}, /* 0.56662=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe28037, 0xcac6a8b4, 0x3fe19999, 0x999999a5}, /* 0.57815=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe2df15, 0x0d65e6f0, 0x3fe1eb85, 0x1eb851f7}, /* 0.58973=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe33e6d, 0xfd43b501, 0x3fe23d70, 0xa3d70a49}, /* 0.60137=f(0.57000)*/ +{60, 0,123,__LINE__, 0x3fe39e45, 0x0b3fd0f8, 0x3fe28f5c, 0x28f5c29b}, /* 0.61307=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe3fe9c, 0xab7480f5, 0x3fe2e147, 0xae147aed}, /* 0.62483=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe45f77, 0x5546a78c, 0x3fe33333, 0x3333333f}, /* 0.63665=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe4c0d7, 0x8375edad, 0x3fe3851e, 0xb851eb91}, /* 0.64854=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe522bf, 0xb42d0297, 0x3fe3d70a, 0x3d70a3e3}, /* 0.66049=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe58532, 0x6911f228, 0x3fe428f5, 0xc28f5c35}, /* 0.67250=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe5e832, 0x27569201, 0x3fe47ae1, 0x47ae1487}, /* 0.68459=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe64bc1, 0x77c905eb, 0x3fe4cccc, 0xccccccd9}, /* 0.69674=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe6afe2, 0xe6e45be0, 0x3fe51eb8, 0x51eb852b}, /* 0.70897=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fe71499, 0x04e1402e, 0x3fe570a3, 0xd70a3d7d}, /* 0.72126=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe779e6, 0x65c6ca1c, 0x3fe5c28f, 0x5c28f5cf}, /* 0.73363=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe7dfcd, 0xa17b6185, 0x3fe6147a, 0xe147ae21}, /* 0.74606=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe84651, 0x53d5bdcd, 0x3fe66666, 0x66666673}, /* 0.75858=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe8ad74, 0x1cadfeab, 0x3fe6b851, 0xeb851ec5}, /* 0.77117=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fe91538, 0x9feedf34, 0x3fe70a3d, 0x70a3d717}, /* 0.78384=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe97da1, 0x85a70392, 0x3fe75c28, 0xf5c28f69}, /* 0.79658=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe9e6b1, 0x7a1a61e1, 0x3fe7ae14, 0x7ae147bb}, /* 0.80941=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fea506b, 0x2dd3c6a1, 0x3fe80000, 0x0000000d}, /* 0.82231=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3feabad1, 0x55b6752b, 0x3fe851eb, 0x851eb85f}, /* 0.83530=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3feb25e6, 0xab0fe4a8, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.84837=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3feb91ad, 0xeba999ec, 0x3fe8f5c2, 0x8f5c2903}, /* 0.86153=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3febfe29, 0xd9db1ec0, 0x3fe947ae, 0x147ae155}, /* 0.87477=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fec6b5d, 0x3c9c1700, 0x3fe99999, 0x999999a7}, /* 0.88810=f(0.80000)*/ +{61, 0,123,__LINE__, 0x3fecd94a, 0xdf96740c, 0x3fe9eb85, 0x1eb851f9}, /* 0.90152=f(0.81000)*/ +{60, 0,123,__LINE__, 0x3fed47f5, 0x9338c6f7, 0x3fea3d70, 0xa3d70a4b}, /* 0.91503=f(0.82000)*/ +{62, 0,123,__LINE__, 0x3fedb760, 0x2cc8b20a, 0x3fea8f5c, 0x28f5c29d}, /* 0.92863=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fee278d, 0x867579e5, 0x3feae147, 0xae147aef}, /* 0.94232=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fee9880, 0x7f6ab6ea, 0x3feb3333, 0x33333341}, /* 0.95611=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fef0a3b, 0xfbe32748, 0x3feb851e, 0xb851eb93}, /* 0.96999=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fef7cc2, 0xe53ba22a, 0x3febd70a, 0x3d70a3e5}, /* 0.98397=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3feff018, 0x2a062c99, 0x3fec28f5, 0xc28f5c37}, /* 0.99805=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3ff0321f, 0x5f0e983a, 0x3fec7ae1, 0x47ae1489}, /* 1.01223=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3ff06c9c, 0xcd5b6b02, 0x3feccccc, 0xccccccdb}, /* 1.02651=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3ff0a785, 0xdf3c405f, 0x3fed1eb8, 0x51eb852d}, /* 1.04089=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3ff0e2dc, 0x16c537c8, 0x3fed70a3, 0xd70a3d7f}, /* 1.05538=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3ff11ea0, 0xf8d5c0ac, 0x3fedc28f, 0x5c28f5d1}, /* 1.06997=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3ff15ad6, 0x0d228efc, 0x3fee147a, 0xe147ae23}, /* 1.08467=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3ff1977c, 0xde3fa244, 0x3fee6666, 0x66666675}, /* 1.09948=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3ff1d496, 0xf9aa5f9a, 0x3feeb851, 0xeb851ec7}, /* 1.11440=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3ff21225, 0xefd3bea5, 0x3fef0a3d, 0x70a3d719}, /* 1.12943=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3ff2502b, 0x542a89ee, 0x3fef5c28, 0xf5c28f6b}, /* 1.14457=f(0.98000)*/ +{62, 0,123,__LINE__, 0x3ff28ea8, 0xbd25b2de, 0x3fefae14, 0x7ae147bd}, /* 1.15982=f(0.99000)*/ +{63, 0,123,__LINE__, 0x3ff2cd9f, 0xc44eb98c, 0x3ff00000, 0x00000007}, /* 1.17520=f(1.00000)*/ +{57, 0,123,__LINE__, 0x3ff30d12, 0x064c28bf, 0x3ff028f5, 0xc28f5c30}, /* 1.19069=f(1.01000)*/ +{57, 0,123,__LINE__, 0x3ff34d01, 0x22ec263e, 0x3ff051eb, 0x851eb859}, /* 1.20630=f(1.02000)*/ +{58, 0,123,__LINE__, 0x3ff38d6e, 0xbd2f17df, 0x3ff07ae1, 0x47ae1482}, /* 1.22202=f(1.03000)*/ +{61, 0,123,__LINE__, 0x3ff3ce5c, 0x7b525d94, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.23788=f(1.04000)*/ +{62, 0,123,__LINE__, 0x3ff40fcc, 0x06db2086, 0x3ff0cccc, 0xccccccd4}, /* 1.25385=f(1.05000)*/ +{63, 0,123,__LINE__, 0x3ff451bf, 0x0ca137e7, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.26995=f(1.06000)*/ +{61, 0,123,__LINE__, 0x3ff49437, 0x3cda235d, 0x3ff11eb8, 0x51eb8526}, /* 1.28618=f(1.07000)*/ +{62, 0,123,__LINE__, 0x3ff4d736, 0x4b241b96, 0x3ff147ae, 0x147ae14f}, /* 1.30254=f(1.08000)*/ +{63, 0,123,__LINE__, 0x3ff51abd, 0xee913928, 0x3ff170a3, 0xd70a3d78}, /* 1.31902=f(1.09000)*/ +{62, 0,123,__LINE__, 0x3ff55ecf, 0xe1b2b221, 0x3ff19999, 0x999999a1}, /* 1.33564=f(1.10000)*/ +{58, 0,123,__LINE__, 0x3ff5a36d, 0xe2a42e5f, 0x3ff1c28f, 0x5c28f5ca}, /* 1.35240=f(1.11000)*/ +{59, 0,123,__LINE__, 0x3ff5e899, 0xb317334f, 0x3ff1eb85, 0x1eb851f3}, /* 1.36928=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ff62e55, 0x185ea6f5, 0x3ff2147a, 0xe147ae1c}, /* 1.38631=f(1.13000)*/ +{63, 0,123,__LINE__, 0x3ff674a1, 0xdb7a6aee, 0x3ff23d70, 0xa3d70a45}, /* 1.40347=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ff6bb81, 0xc9230f6b, 0x3ff26666, 0x6666666e}, /* 1.42077=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ff702f6, 0xb1d59e9a, 0x3ff28f5c, 0x28f5c297}, /* 1.43822=f(1.16000)*/ +{61, 0,123,__LINE__, 0x3ff74b02, 0x69df80c3, 0x3ff2b851, 0xeb851ec0}, /* 1.45581=f(1.17000)*/ +{61, 0,123,__LINE__, 0x3ff793a6, 0xc96a7951, 0x3ff2e147, 0xae147ae9}, /* 1.47354=f(1.18000)*/ +{62, 0,123,__LINE__, 0x3ff7dce5, 0xac88bd50, 0x3ff30a3d, 0x70a3d712}, /* 1.49143=f(1.19000)*/ +{61, 0,123,__LINE__, 0xc070bbeb, 0x1603926c, 0xc01921fb, 0x54442d18}, /* -267.744=f(-6.28318)*/ +{60, 0,123,__LINE__, 0xc04bd3c3, 0x4cf00a27, 0xc012d97c, 0x7f3321d2}, /* -55.6543=f(-4.71238)*/ +{63, 0,123,__LINE__, 0xc02718f4, 0x5d72e671, 0xc00921fb, 0x54442d18}, /* -11.5487=f(-3.14159)*/ +{62, 0,123,__LINE__, 0xc002690f, 0x661dd821, 0xbff921fb, 0x54442d18}, /* -2.30129=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{62, 0,123,__LINE__, 0x4002690f, 0x661dd821, 0x3ff921fb, 0x54442d18}, /* 2.30129=f(1.57079)*/ +{63, 0,123,__LINE__, 0x402718f4, 0x5d72e671, 0x400921fb, 0x54442d18}, /* 11.5487=f(3.14159)*/ +{60, 0,123,__LINE__, 0x404bd3c3, 0x4cf00a27, 0x4012d97c, 0x7f3321d2}, /* 55.6543=f(4.71238)*/ +{63, 0,123,__LINE__, 0xc2937047, 0x0aec28e4, 0xc03e0000, 0x00000000}, /* -5.34324e+12=f(-30.0000)*/ +{63, 0,123,__LINE__, 0xc26c68ab, 0xda31cdb8, 0xc03c4ccc, 0xcccccccd}, /* -9.76121e+11=f(-28.3000)*/ +{60, 0,123,__LINE__, 0xc244c263, 0x8e2b5848, 0xc03a9999, 0x9999999a}, /* -1.78321e+11=f(-26.6000)*/ +{63, 0,123,__LINE__, 0xc21e56cf, 0x7144c252, 0xc038e666, 0x66666667}, /* -3.25764e+10=f(-24.9000)*/ +{60, 0,123,__LINE__, 0xc1f62b79, 0x1e77d137, 0xc0373333, 0x33333334}, /* -5.95116e+09=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xc1d03343, 0x003272a8, 0xc0358000, 0x00000001}, /* -1.08718e+09=f(-21.5000)*/ +{62, 0,123,__LINE__, 0xc1a7ad17, 0x51ce1a0d, 0xc033cccc, 0xccccccce}, /* -1.98610e+08=f(-19.8000)*/ +{62, 0,123,__LINE__, 0xc1814d0b, 0xc17d4222, 0xc0321999, 0x9999999b}, /* -3.62827e+07=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xc15948e8, 0xe47ead6c, 0xc0306666, 0x66666668}, /* -6.62826e+06=f(-16.4000)*/ +{63, 0,123,__LINE__, 0xc13279f9, 0xd10e66ed, 0xc02d6666, 0x6666666a}, /* -1.21087e+06=f(-14.7000)*/ +{62, 0,123,__LINE__, 0xc10b00b5, 0x916a31d1, 0xc02a0000, 0x00000004}, /* -221206=f(-13.0000)*/ +{63, 0,123,__LINE__, 0xc0e3bb5a, 0x33507fa0, 0xc0269999, 0x9999999e}, /* -40410=f(-11.3000)*/ +{63, 0,123,__LINE__, 0xc0bcd664, 0x081f1af4, 0xc0233333, 0x33333338}, /* -7382.39=f(-9.60000)*/ +{63, 0,123,__LINE__, 0xc0951290, 0x5cbc9963, 0xc01f9999, 0x999999a3}, /* -1348.64=f(-7.90000)*/ +{62, 0,123,__LINE__, 0xc06ecbf3, 0xc2804b35, 0xc018cccc, 0xccccccd6}, /* -246.373=f(-6.20000)*/ +{62, 0,123,__LINE__, 0xc0468062, 0xab5faa2d, 0xc0120000, 0x00000009}, /* -45.0030=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xc0206243, 0x1f5de430, 0xc0066666, 0x66666678}, /* -8.19191=f(-2.80000)*/ +{63, 0,123,__LINE__, 0xbff55ecf, 0xe1b2b250, 0xbff19999, 0x999999bd}, /* -1.33564=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe45f77, 0x5546a729, 0x3fe33333, 0x333332ec}, /* 0.63665=f(0.60000)*/ +{63, 0,123,__LINE__, 0x4013bf72, 0xea61aeeb, 0x40026666, 0x66666654}, /* 4.93696=f(2.30000)*/ +{61, 0,123,__LINE__, 0x403b4a38, 0x037035f3, 0x400fffff, 0xffffffee}, /* 27.2899=f(4.00000)*/ +{62, 0,123,__LINE__, 0x4062add3, 0x2b565d1a, 0x4016cccc, 0xccccccc4}, /* 149.432=f(5.70000)*/ +{64, 0,123,__LINE__, 0x40898fef, 0x6e2e3c20, 0x401d9999, 0x99999991}, /* 817.991=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40b17da5, 0x73a60dc4, 0x40223333, 0x3333332f}, /* 4477.64=f(9.10000)*/ +{60, 0,123,__LINE__, 0x40d7ef99, 0xa2bdfbc7, 0x40259999, 0x99999995}, /* 24510=f(10.8000)*/ +{64, 0,123,__LINE__, 0x410060c5, 0x2564c024, 0x4028ffff, 0xfffffffb}, /* 134168=f(12.5000)*/ +{62, 0,123,__LINE__, 0x412669c0, 0x308d2005, 0x402c6666, 0x66666661}, /* 734432=f(14.2000)*/ +{62, 0,123,__LINE__, 0x414eac09, 0x532f3d7e, 0x402fcccc, 0xccccccc7}, /* 4.02024e+06=f(15.9000)*/ +{61, 0,123,__LINE__, 0x4174fcb4, 0x4c4756d4, 0x40319999, 0x99999997}, /* 2.20066e+07=f(17.6000)*/ +{63, 0,123,__LINE__, 0x419cb879, 0xa3e73668, 0x40334ccc, 0xccccccca}, /* 1.20463e+08=f(19.3000)*/ +{57, 0,123,__LINE__, 0x41c3a6e1, 0xfd9eecbf, 0x4034ffff, 0xfffffffd}, /* 6.59408e+08=f(21.0000)*/ +{60, 0,123,__LINE__, 0x41eae4b2, 0x68df16f6, 0x4036b333, 0x33333330}, /* 3.60956e+09=f(22.7000)*/ +{63, 0,123,__LINE__, 0x421266ce, 0xffa84595, 0x40386666, 0x66666663}, /* 1.97586e+10=f(24.4000)*/ +{64, 0,123,__LINE__, 0x42392ead, 0xfa09870a, 0x403a1999, 0x99999996}, /* 1.08157e+11=f(26.1000)*/ +{63, 0,123,__LINE__, 0x42613b19, 0x1e69fb25, 0x403bcccc, 0xccccccc9}, /* 5.92048e+11=f(27.8000)*/ +{61, 0,123,__LINE__, 0x42879487, 0x9e85b8dc, 0x403d7fff, 0xfffffffc}, /* 3.24084e+12=f(29.5000)*/ +0,}; +test_sinh(m) {run_vector_1(m,sinh_vec,(char *)(sinh),"sinh","dd"); } diff --git a/newlib/libm/test/sinhf_vec.c b/newlib/libm/test/sinhf_vec.c new file mode 100644 index 000000000..f15709c8b --- /dev/null +++ b/newlib/libm/test/sinhf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type sinhf_vec[] = { +{12, 0,123,__LINE__, 0xbff826c1, 0x00000000, 0xbff33333, 0x33333333}, /* -1.50946=f(-1.20000)*/ +{13, 0,123,__LINE__, 0xbff7dce5, 0xc0000000, 0xbff30a3d, 0x70a3d70a}, /* -1.49143=f(-1.19000)*/ +{13, 0,123,__LINE__, 0xbff793a6, 0xa0000000, 0xbff2e147, 0xae147ae1}, /* -1.47354=f(-1.18000)*/ +{13, 0,123,__LINE__, 0xbff74b02, 0x60000000, 0xbff2b851, 0xeb851eb8}, /* -1.45581=f(-1.17000)*/ +{13, 0,123,__LINE__, 0xbff702f6, 0xa0000000, 0xbff28f5c, 0x28f5c28f}, /* -1.43822=f(-1.16000)*/ +{13, 0,123,__LINE__, 0xbff6bb81, 0xe0000000, 0xbff26666, 0x66666666}, /* -1.42077=f(-1.15000)*/ +{13, 0,123,__LINE__, 0xbff674a1, 0xc0000000, 0xbff23d70, 0xa3d70a3d}, /* -1.40347=f(-1.14000)*/ +{13, 0,123,__LINE__, 0xbff62e55, 0x20000000, 0xbff2147a, 0xe147ae14}, /* -1.38631=f(-1.13000)*/ +{13, 0,123,__LINE__, 0xbff5e899, 0xc0000000, 0xbff1eb85, 0x1eb851eb}, /* -1.36928=f(-1.12000)*/ +{13, 0,123,__LINE__, 0xbff5a36e, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -1.35240=f(-1.11000)*/ +{13, 0,123,__LINE__, 0xbff55ed0, 0x00000000, 0xbff19999, 0x99999999}, /* -1.33564=f(-1.10000)*/ +{13, 0,123,__LINE__, 0xbff51abe, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* -1.31902=f(-1.09000)*/ +{13, 0,123,__LINE__, 0xbff4d736, 0x60000000, 0xbff147ae, 0x147ae147}, /* -1.30254=f(-1.08000)*/ +{13, 0,123,__LINE__, 0xbff49437, 0x40000000, 0xbff11eb8, 0x51eb851e}, /* -1.28618=f(-1.07000)*/ +{13, 0,123,__LINE__, 0xbff451be, 0xe0000000, 0xbff0f5c2, 0x8f5c28f5}, /* -1.26995=f(-1.06000)*/ +{13, 0,123,__LINE__, 0xbff40fcb, 0xe0000000, 0xbff0cccc, 0xcccccccc}, /* -1.25385=f(-1.05000)*/ +{14, 0,123,__LINE__, 0xbff3ce5c, 0x80000000, 0xbff0a3d7, 0x0a3d70a3}, /* -1.23788=f(-1.04000)*/ +{14, 0,123,__LINE__, 0xbff38d6e, 0xc0000000, 0xbff07ae1, 0x47ae147a}, /* -1.22202=f(-1.03000)*/ +{14, 0,123,__LINE__, 0xbff34d01, 0x20000000, 0xbff051eb, 0x851eb851}, /* -1.20630=f(-1.02000)*/ +{14, 0,123,__LINE__, 0xbff30d12, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* -1.19069=f(-1.01000)*/ +{14, 0,123,__LINE__, 0xbff2cd9f, 0xc0000000, 0xbfefffff, 0xfffffffe}, /* -1.17520=f(-0.01000)*/ +{11, 0,123,__LINE__, 0xbff28ea8, 0xc0000000, 0xbfefae14, 0x7ae147ac}, /* -1.15982=f(-0.99000)*/ +{11, 0,123,__LINE__, 0xbff2502b, 0x60000000, 0xbfef5c28, 0xf5c28f5a}, /* -1.14457=f(-0.98000)*/ +{11, 0,123,__LINE__, 0xbff21226, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* -1.12943=f(-0.97000)*/ +{11, 0,123,__LINE__, 0xbff1d497, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* -1.11440=f(-0.96000)*/ +{11, 0,123,__LINE__, 0xbff1977c, 0xe0000000, 0xbfee6666, 0x66666664}, /* -1.09948=f(-0.95000)*/ +{11, 0,123,__LINE__, 0xbff15ad6, 0x00000000, 0xbfee147a, 0xe147ae12}, /* -1.08467=f(-0.94000)*/ +{11, 0,123,__LINE__, 0xbff11ea1, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* -1.06997=f(-0.93000)*/ +{11, 0,123,__LINE__, 0xbff0e2dc, 0x20000000, 0xbfed70a3, 0xd70a3d6e}, /* -1.05538=f(-0.92000)*/ +{11, 0,123,__LINE__, 0xbff0a785, 0xe0000000, 0xbfed1eb8, 0x51eb851c}, /* -1.04089=f(-0.91000)*/ +{11, 0,123,__LINE__, 0xbff06c9c, 0xc0000000, 0xbfeccccc, 0xccccccca}, /* -1.02651=f(-0.90000)*/ +{11, 0,123,__LINE__, 0xbff0321f, 0x60000000, 0xbfec7ae1, 0x47ae1478}, /* -1.01223=f(-0.89000)*/ +{14, 0,123,__LINE__, 0xbfeff018, 0x20000000, 0xbfec28f5, 0xc28f5c26}, /* -0.99805=f(-0.88000)*/ +{13, 0,123,__LINE__, 0xbfef7cc2, 0xe0000000, 0xbfebd70a, 0x3d70a3d4}, /* -0.98397=f(-0.87000)*/ +{13, 0,123,__LINE__, 0xbfef0a3c, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* -0.96999=f(-0.86000)*/ +{13, 0,123,__LINE__, 0xbfee9880, 0x80000000, 0xbfeb3333, 0x33333330}, /* -0.95611=f(-0.85000)*/ +{13, 0,123,__LINE__, 0xbfee278d, 0x80000000, 0xbfeae147, 0xae147ade}, /* -0.94232=f(-0.84000)*/ +{13, 0,123,__LINE__, 0xbfedb760, 0x20000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.92863=f(-0.83000)*/ +{13, 0,123,__LINE__, 0xbfed47f5, 0x80000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.91503=f(-0.82000)*/ +{13, 0,123,__LINE__, 0xbfecd94a, 0xe0000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.90152=f(-0.81000)*/ +{13, 0,123,__LINE__, 0xbfec6b5d, 0x40000000, 0xbfe99999, 0x99999996}, /* -0.88810=f(-0.80000)*/ +{14, 0,123,__LINE__, 0xbfebfe29, 0xe0000000, 0xbfe947ae, 0x147ae144}, /* -0.87477=f(-0.79000)*/ +{14, 0,123,__LINE__, 0xbfeb91ad, 0xe0000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.86153=f(-0.78000)*/ +{14, 0,123,__LINE__, 0xbfeb25e6, 0xa0000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.84837=f(-0.77000)*/ +{14, 0,123,__LINE__, 0xbfeabad1, 0x60000000, 0xbfe851eb, 0x851eb84e}, /* -0.83530=f(-0.76000)*/ +{14, 0,123,__LINE__, 0xbfea506b, 0x20000000, 0xbfe7ffff, 0xfffffffc}, /* -0.82231=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbfe9e6b1, 0x80000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.80941=f(-0.74000)*/ +{12, 0,123,__LINE__, 0xbfe97da1, 0xa0000000, 0xbfe75c28, 0xf5c28f58}, /* -0.79658=f(-0.73000)*/ +{12, 0,123,__LINE__, 0xbfe91538, 0xc0000000, 0xbfe70a3d, 0x70a3d706}, /* -0.78384=f(-0.72000)*/ +{12, 0,123,__LINE__, 0xbfe8ad74, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* -0.77117=f(-0.71000)*/ +{12, 0,123,__LINE__, 0xbfe84651, 0x40000000, 0xbfe66666, 0x66666662}, /* -0.75858=f(-0.70000)*/ +{15, 0,123,__LINE__, 0xbfe7dfcd, 0xa0000000, 0xbfe6147a, 0xe147ae10}, /* -0.74606=f(-0.69000)*/ +{14, 0,123,__LINE__, 0xbfe779e6, 0x60000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.73363=f(-0.68000)*/ +{14, 0,123,__LINE__, 0xbfe71499, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.72126=f(-0.67000)*/ +{14, 0,123,__LINE__, 0xbfe6afe3, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* -0.70897=f(-0.66000)*/ +{14, 0,123,__LINE__, 0xbfe64bc1, 0x60000000, 0xbfe4cccc, 0xccccccc8}, /* -0.69674=f(-0.65000)*/ +{15, 0,123,__LINE__, 0xbfe5e832, 0x20000000, 0xbfe47ae1, 0x47ae1476}, /* -0.68459=f(-0.64000)*/ +{15, 0,123,__LINE__, 0xbfe58532, 0x60000000, 0xbfe428f5, 0xc28f5c24}, /* -0.67250=f(-0.63000)*/ +{13, 0,123,__LINE__, 0xbfe522bf, 0xc0000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.66049=f(-0.62000)*/ +{13, 0,123,__LINE__, 0xbfe4c0d7, 0x80000000, 0xbfe3851e, 0xb851eb80}, /* -0.64854=f(-0.61000)*/ +{13, 0,123,__LINE__, 0xbfe45f77, 0x60000000, 0xbfe33333, 0x3333332e}, /* -0.63665=f(-0.60000)*/ +{15, 0,123,__LINE__, 0xbfe3fe9c, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* -0.62483=f(-0.59000)*/ +{15, 0,123,__LINE__, 0xbfe39e45, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.61307=f(-0.58000)*/ +{15, 0,123,__LINE__, 0xbfe33e6e, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* -0.60137=f(-0.57000)*/ +{14, 0,123,__LINE__, 0xbfe2df15, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.58973=f(-0.56000)*/ +{14, 0,123,__LINE__, 0xbfe28037, 0xe0000000, 0xbfe19999, 0x99999994}, /* -0.57815=f(-0.55000)*/ +{14, 0,123,__LINE__, 0xbfe221d3, 0xe0000000, 0xbfe147ae, 0x147ae142}, /* -0.56662=f(-0.54000)*/ +{15, 0,123,__LINE__, 0xbfe1c3e6, 0x80000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.55516=f(-0.53000)*/ +{15, 0,123,__LINE__, 0xbfe1666d, 0xc0000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.54375=f(-0.52000)*/ +{15, 0,123,__LINE__, 0xbfe10967, 0x20000000, 0xbfe051eb, 0x851eb84c}, /* -0.53239=f(-0.51000)*/ +{16, 0,123,__LINE__, 0xbfe0acd0, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* -0.52109=f(-0.50000)*/ +{10, 0,123,__LINE__, 0xbfe050a6, 0x40000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.50984=f(-0.49000)*/ +{15, 0,123,__LINE__, 0xbfdfe9ce, 0xc0000000, 0xbfdeb851, 0xeb851eac}, /* -0.49864=f(-0.48000)*/ +{15, 0,123,__LINE__, 0xbfdf3322, 0x40000000, 0xbfde147a, 0xe147ae08}, /* -0.48749=f(-0.47000)*/ +{14, 0,123,__LINE__, 0xbfde7d42, 0x40000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.47639=f(-0.46000)*/ +{15, 0,123,__LINE__, 0xbfddc829, 0xe0000000, 0xbfdccccc, 0xccccccc0}, /* -0.46534=f(-0.45000)*/ +{15, 0,123,__LINE__, 0xbfdd13d4, 0xc0000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.45433=f(-0.44000)*/ +{13, 0,123,__LINE__, 0xbfdc603e, 0x40000000, 0xbfdb851e, 0xb851eb78}, /* -0.44337=f(-0.43000)*/ +{15, 0,123,__LINE__, 0xbfdbad61, 0xa0000000, 0xbfdae147, 0xae147ad4}, /* -0.43245=f(-0.42000)*/ +{16, 0,123,__LINE__, 0xbfdafb3a, 0x80000000, 0xbfda3d70, 0xa3d70a30}, /* -0.42158=f(-0.41000)*/ +{14, 0,123,__LINE__, 0xbfda49c4, 0x20000000, 0xbfd99999, 0x9999998c}, /* -0.41075=f(-0.40000)*/ +{15, 0,123,__LINE__, 0xbfd998fa, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.39996=f(-0.39000)*/ +{16, 0,123,__LINE__, 0xbfd8e8d7, 0xc0000000, 0xbfd851eb, 0x851eb844}, /* -0.38921=f(-0.38000)*/ +{12, 0,123,__LINE__, 0xbfd83958, 0xa0000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.37850=f(-0.37000)*/ +{16, 0,123,__LINE__, 0xbfd78a78, 0x60000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.36782=f(-0.36000)*/ +{16, 0,123,__LINE__, 0xbfd6dc32, 0x40000000, 0xbfd66666, 0x66666658}, /* -0.35718=f(-0.35000)*/ +{14, 0,123,__LINE__, 0xbfd62e82, 0x20000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.34658=f(-0.34000)*/ +{16, 0,123,__LINE__, 0xbfd58163, 0x40000000, 0xbfd51eb8, 0x51eb8510}, /* -0.33602=f(-0.33000)*/ +{16, 0,123,__LINE__, 0xbfd4d4d1, 0x40000000, 0xbfd47ae1, 0x47ae146c}, /* -0.32548=f(-0.32000)*/ +{13, 0,123,__LINE__, 0xbfd428c8, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.31498=f(-0.31000)*/ +{17, 0,123,__LINE__, 0xbfd37d42, 0xc0000000, 0xbfd33333, 0x33333324}, /* -0.30452=f(-0.30000)*/ +{17, 0,123,__LINE__, 0xbfd2d23d, 0x20000000, 0xbfd28f5c, 0x28f5c280}, /* -0.29408=f(-0.29000)*/ +{14, 0,123,__LINE__, 0xbfd227b3, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.28367=f(-0.28000)*/ +{18, 0,123,__LINE__, 0xbfd17d9f, 0xc0000000, 0xbfd147ae, 0x147ae138}, /* -0.27329=f(-0.27000)*/ +{17, 0,123,__LINE__, 0xbfd0d3ff, 0x20000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26293=f(-0.26000)*/ +{18, 0,123,__LINE__, 0xbfd02acc, 0xe0000000, 0xbfcfffff, 0xffffffe0}, /* -0.25261=f(-0.25000)*/ +{15, 0,123,__LINE__, 0xbfcf0409, 0x00000000, 0xbfceb851, 0xeb851e98}, /* -0.24231=f(-0.24000)*/ +{16, 0,123,__LINE__, 0xbfcdb343, 0xa0000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.23203=f(-0.23000)*/ +{17, 0,123,__LINE__, 0xbfcc6340, 0xc0000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.22177=f(-0.22000)*/ +{15, 0,123,__LINE__, 0xbfcb13f8, 0x00000000, 0xbfcae147, 0xae147ac0}, /* -0.21154=f(-0.21000)*/ +{17, 0,123,__LINE__, 0xbfc9c560, 0xe0000000, 0xbfc99999, 0x99999978}, /* -0.20133=f(-0.20000)*/ +{18, 0,123,__LINE__, 0xbfc87772, 0x60000000, 0xbfc851eb, 0x851eb830}, /* -0.19114=f(-0.19000)*/ +{18, 0,123,__LINE__, 0xbfc72a24, 0x80000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18097=f(-0.18000)*/ +{19, 0,123,__LINE__, 0xbfc5dd6e, 0x20000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17082=f(-0.17000)*/ +{16, 0,123,__LINE__, 0xbfc49147, 0x40000000, 0xbfc47ae1, 0x47ae1458}, /* -0.16068=f(-0.16000)*/ +{17, 0,123,__LINE__, 0xbfc345a7, 0x20000000, 0xbfc33333, 0x33333310}, /* -0.15056=f(-0.15000)*/ +{19, 0,123,__LINE__, 0xbfc1fa85, 0x40000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.14045=f(-0.14000)*/ +{20, 0,123,__LINE__, 0xbfc0afd9, 0x40000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13036=f(-0.13000)*/ +{17, 0,123,__LINE__, 0xbfbecb35, 0x40000000, 0xbfbeb851, 0xeb851e71}, /* -0.12028=f(-0.12000)*/ +{19, 0,123,__LINE__, 0xbfbc3781, 0xc0000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.11022=f(-0.11000)*/ +{18, 0,123,__LINE__, 0xbfb9a487, 0x40000000, 0xbfb99999, 0x99999953}, /* -0.10016=f(-0.00100)*/ +{19, 0,123,__LINE__, 0xbfb71234, 0xc0000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09012=f(-0.09000)*/ +{16, 0,123,__LINE__, 0xbfb48079, 0x60000000, 0xbfb47ae1, 0x47ae1435}, /* -0.08008=f(-0.08000)*/ +{21, 0,123,__LINE__, 0xbfb1ef44, 0x80000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.07005=f(-0.07000)*/ +{21, 0,123,__LINE__, 0xbfaebd0a, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* -0.06003=f(-0.06000)*/ +{21, 0,123,__LINE__, 0xbfa99c54, 0xc0000000, 0xbfa99999, 0x9999990e}, /* -0.05002=f(-0.05000)*/ +{21, 0,123,__LINE__, 0xbfa47c47, 0x40000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.04001=f(-0.04000)*/ +{23, 0,123,__LINE__, 0xbf9eb97f, 0xe0000000, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{23, 0,123,__LINE__, 0xbf947b3a, 0xc0000000, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{27, 0,123,__LINE__, 0xbf847af7, 0xa0000000, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{27, 0,123,__LINE__, 0x3f847af7, 0xa0000000, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{23, 0,123,__LINE__, 0x3f947b3a, 0xc0000000, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{23, 0,123,__LINE__, 0x3f9eb97f, 0xe0000000, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{21, 0,123,__LINE__, 0x3fa47c47, 0x40000000, 0x3fa47ae1, 0x47ae1508}, /* 0.04001=f(0.04000)*/ +{21, 0,123,__LINE__, 0x3fa99c54, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 0.05002=f(0.05000)*/ +{21, 0,123,__LINE__, 0x3faebd0a, 0x00000000, 0x3faeb851, 0xeb851f46}, /* 0.06003=f(0.06000)*/ +{21, 0,123,__LINE__, 0x3fb1ef44, 0x80000000, 0x3fb1eb85, 0x1eb85232}, /* 0.07005=f(0.07000)*/ +{16, 0,123,__LINE__, 0x3fb48079, 0x60000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.08008=f(0.08000)*/ +{19, 0,123,__LINE__, 0x3fb71234, 0xc0000000, 0x3fb70a3d, 0x70a3d750}, /* 0.09012=f(0.09000)*/ +{18, 0,123,__LINE__, 0x3fb9a487, 0x40000000, 0x3fb99999, 0x999999df}, /* 0.10016=f(0.10000)*/ +{19, 0,123,__LINE__, 0x3fbc3781, 0xc0000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11022=f(0.11000)*/ +{17, 0,123,__LINE__, 0x3fbecb35, 0x40000000, 0x3fbeb851, 0xeb851efd}, /* 0.12028=f(0.12000)*/ +{20, 0,123,__LINE__, 0x3fc0afd9, 0x40000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13036=f(0.13000)*/ +{19, 0,123,__LINE__, 0x3fc1fa85, 0x40000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.14045=f(0.14000)*/ +{17, 0,123,__LINE__, 0x3fc345a7, 0x20000000, 0x3fc33333, 0x33333356}, /* 0.15056=f(0.15000)*/ +{16, 0,123,__LINE__, 0x3fc49147, 0x40000000, 0x3fc47ae1, 0x47ae149e}, /* 0.16068=f(0.16000)*/ +{19, 0,123,__LINE__, 0x3fc5dd6e, 0x20000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17082=f(0.17000)*/ +{18, 0,123,__LINE__, 0x3fc72a24, 0x80000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.18097=f(0.18000)*/ +{18, 0,123,__LINE__, 0x3fc87772, 0x60000000, 0x3fc851eb, 0x851eb876}, /* 0.19114=f(0.19000)*/ +{17, 0,123,__LINE__, 0x3fc9c560, 0xe0000000, 0x3fc99999, 0x999999be}, /* 0.20133=f(0.20000)*/ +{15, 0,123,__LINE__, 0x3fcb13f8, 0x00000000, 0x3fcae147, 0xae147b06}, /* 0.21154=f(0.21000)*/ +{17, 0,123,__LINE__, 0x3fcc6340, 0xc0000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22177=f(0.22000)*/ +{16, 0,123,__LINE__, 0x3fcdb343, 0xa0000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.23203=f(0.23000)*/ +{15, 0,123,__LINE__, 0x3fcf0409, 0x00000000, 0x3fceb851, 0xeb851ede}, /* 0.24231=f(0.24000)*/ +{18, 0,123,__LINE__, 0x3fd02acc, 0xe0000000, 0x3fd00000, 0x00000013}, /* 0.25261=f(0.25000)*/ +{17, 0,123,__LINE__, 0x3fd0d3ff, 0x20000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26293=f(0.26000)*/ +{18, 0,123,__LINE__, 0x3fd17d9f, 0xc0000000, 0x3fd147ae, 0x147ae15b}, /* 0.27329=f(0.27000)*/ +{14, 0,123,__LINE__, 0x3fd227b3, 0x00000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.28367=f(0.28000)*/ +{17, 0,123,__LINE__, 0x3fd2d23d, 0x20000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29408=f(0.29000)*/ +{17, 0,123,__LINE__, 0x3fd37d42, 0xc0000000, 0x3fd33333, 0x33333347}, /* 0.30452=f(0.30000)*/ +{13, 0,123,__LINE__, 0x3fd428c8, 0x00000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.31498=f(0.31000)*/ +{16, 0,123,__LINE__, 0x3fd4d4d1, 0x40000000, 0x3fd47ae1, 0x47ae148f}, /* 0.32548=f(0.32000)*/ +{16, 0,123,__LINE__, 0x3fd58163, 0x40000000, 0x3fd51eb8, 0x51eb8533}, /* 0.33602=f(0.33000)*/ +{14, 0,123,__LINE__, 0x3fd62e82, 0x20000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.34658=f(0.34000)*/ +{16, 0,123,__LINE__, 0x3fd6dc32, 0x40000000, 0x3fd66666, 0x6666667b}, /* 0.35718=f(0.35000)*/ +{16, 0,123,__LINE__, 0x3fd78a78, 0x60000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.36782=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3fd83958, 0xa0000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.37850=f(0.37000)*/ +{16, 0,123,__LINE__, 0x3fd8e8d7, 0xc0000000, 0x3fd851eb, 0x851eb867}, /* 0.38921=f(0.38000)*/ +{15, 0,123,__LINE__, 0x3fd998fa, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.39996=f(0.39000)*/ +{14, 0,123,__LINE__, 0x3fda49c4, 0x20000000, 0x3fd99999, 0x999999af}, /* 0.41075=f(0.40000)*/ +{16, 0,123,__LINE__, 0x3fdafb3a, 0x80000000, 0x3fda3d70, 0xa3d70a53}, /* 0.42158=f(0.41000)*/ +{15, 0,123,__LINE__, 0x3fdbad61, 0xa0000000, 0x3fdae147, 0xae147af7}, /* 0.43245=f(0.42000)*/ +{13, 0,123,__LINE__, 0x3fdc603e, 0x40000000, 0x3fdb851e, 0xb851eb9b}, /* 0.44337=f(0.43000)*/ +{15, 0,123,__LINE__, 0x3fdd13d4, 0xc0000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.45433=f(0.44000)*/ +{15, 0,123,__LINE__, 0x3fddc829, 0xe0000000, 0x3fdccccc, 0xcccccce3}, /* 0.46534=f(0.45000)*/ +{14, 0,123,__LINE__, 0x3fde7d42, 0x40000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.47639=f(0.46000)*/ +{15, 0,123,__LINE__, 0x3fdf3322, 0x40000000, 0x3fde147a, 0xe147ae2b}, /* 0.48749=f(0.47000)*/ +{15, 0,123,__LINE__, 0x3fdfe9ce, 0xc0000000, 0x3fdeb851, 0xeb851ecf}, /* 0.49864=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fe050a6, 0x40000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.50984=f(0.49000)*/ +{16, 0,123,__LINE__, 0x3fe0acd0, 0x00000000, 0x3fe00000, 0x0000000b}, /* 0.52109=f(0.50000)*/ +{15, 0,123,__LINE__, 0x3fe10967, 0x20000000, 0x3fe051eb, 0x851eb85d}, /* 0.53239=f(0.51000)*/ +{15, 0,123,__LINE__, 0x3fe1666d, 0xc0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.54375=f(0.52000)*/ +{15, 0,123,__LINE__, 0x3fe1c3e6, 0x80000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.55516=f(0.53000)*/ +{14, 0,123,__LINE__, 0x3fe221d3, 0xe0000000, 0x3fe147ae, 0x147ae153}, /* 0.56662=f(0.54000)*/ +{14, 0,123,__LINE__, 0x3fe28037, 0xe0000000, 0x3fe19999, 0x999999a5}, /* 0.57815=f(0.55000)*/ +{14, 0,123,__LINE__, 0x3fe2df15, 0x00000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.58973=f(0.56000)*/ +{15, 0,123,__LINE__, 0x3fe33e6e, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 0.60137=f(0.57000)*/ +{15, 0,123,__LINE__, 0x3fe39e45, 0x00000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.61307=f(0.58000)*/ +{15, 0,123,__LINE__, 0x3fe3fe9c, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 0.62483=f(0.59000)*/ +{13, 0,123,__LINE__, 0x3fe45f77, 0x60000000, 0x3fe33333, 0x3333333f}, /* 0.63665=f(0.60000)*/ +{13, 0,123,__LINE__, 0x3fe4c0d7, 0x80000000, 0x3fe3851e, 0xb851eb91}, /* 0.64854=f(0.61000)*/ +{13, 0,123,__LINE__, 0x3fe522bf, 0xc0000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.66049=f(0.62000)*/ +{15, 0,123,__LINE__, 0x3fe58532, 0x60000000, 0x3fe428f5, 0xc28f5c35}, /* 0.67250=f(0.63000)*/ +{15, 0,123,__LINE__, 0x3fe5e832, 0x20000000, 0x3fe47ae1, 0x47ae1487}, /* 0.68459=f(0.64000)*/ +{14, 0,123,__LINE__, 0x3fe64bc1, 0x60000000, 0x3fe4cccc, 0xccccccd9}, /* 0.69674=f(0.65000)*/ +{14, 0,123,__LINE__, 0x3fe6afe3, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.70897=f(0.66000)*/ +{14, 0,123,__LINE__, 0x3fe71499, 0x00000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.72126=f(0.67000)*/ +{14, 0,123,__LINE__, 0x3fe779e6, 0x60000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.73363=f(0.68000)*/ +{15, 0,123,__LINE__, 0x3fe7dfcd, 0xa0000000, 0x3fe6147a, 0xe147ae21}, /* 0.74606=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3fe84651, 0x40000000, 0x3fe66666, 0x66666673}, /* 0.75858=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3fe8ad74, 0x00000000, 0x3fe6b851, 0xeb851ec5}, /* 0.77117=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3fe91538, 0xc0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.78384=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3fe97da1, 0xa0000000, 0x3fe75c28, 0xf5c28f69}, /* 0.79658=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3fe9e6b1, 0x80000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.80941=f(0.74000)*/ +{14, 0,123,__LINE__, 0x3fea506b, 0x20000000, 0x3fe80000, 0x0000000d}, /* 0.82231=f(0.75000)*/ +{14, 0,123,__LINE__, 0x3feabad1, 0x60000000, 0x3fe851eb, 0x851eb85f}, /* 0.83530=f(0.76000)*/ +{14, 0,123,__LINE__, 0x3feb25e6, 0xa0000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.84837=f(0.77000)*/ +{14, 0,123,__LINE__, 0x3feb91ad, 0xe0000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.86153=f(0.78000)*/ +{14, 0,123,__LINE__, 0x3febfe29, 0xe0000000, 0x3fe947ae, 0x147ae155}, /* 0.87477=f(0.79000)*/ +{13, 0,123,__LINE__, 0x3fec6b5d, 0x40000000, 0x3fe99999, 0x999999a7}, /* 0.88810=f(0.80000)*/ +{13, 0,123,__LINE__, 0x3fecd94a, 0xe0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.90152=f(0.81000)*/ +{13, 0,123,__LINE__, 0x3fed47f5, 0x80000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.91503=f(0.82000)*/ +{13, 0,123,__LINE__, 0x3fedb760, 0x20000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.92863=f(0.83000)*/ +{13, 0,123,__LINE__, 0x3fee278d, 0x80000000, 0x3feae147, 0xae147aef}, /* 0.94232=f(0.84000)*/ +{13, 0,123,__LINE__, 0x3fee9880, 0x80000000, 0x3feb3333, 0x33333341}, /* 0.95611=f(0.85000)*/ +{13, 0,123,__LINE__, 0x3fef0a3c, 0x00000000, 0x3feb851e, 0xb851eb93}, /* 0.96999=f(0.86000)*/ +{13, 0,123,__LINE__, 0x3fef7cc2, 0xe0000000, 0x3febd70a, 0x3d70a3e5}, /* 0.98397=f(0.87000)*/ +{14, 0,123,__LINE__, 0x3feff018, 0x20000000, 0x3fec28f5, 0xc28f5c37}, /* 0.99805=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3ff0321f, 0x60000000, 0x3fec7ae1, 0x47ae1489}, /* 1.01223=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3ff06c9c, 0xc0000000, 0x3feccccc, 0xccccccdb}, /* 1.02651=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3ff0a785, 0xe0000000, 0x3fed1eb8, 0x51eb852d}, /* 1.04089=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3ff0e2dc, 0x20000000, 0x3fed70a3, 0xd70a3d7f}, /* 1.05538=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3ff11ea1, 0x00000000, 0x3fedc28f, 0x5c28f5d1}, /* 1.06997=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3ff15ad6, 0x00000000, 0x3fee147a, 0xe147ae23}, /* 1.08467=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3ff1977c, 0xe0000000, 0x3fee6666, 0x66666675}, /* 1.09948=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3ff1d497, 0x00000000, 0x3feeb851, 0xeb851ec7}, /* 1.11440=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3ff21226, 0x00000000, 0x3fef0a3d, 0x70a3d719}, /* 1.12943=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3ff2502b, 0x60000000, 0x3fef5c28, 0xf5c28f6b}, /* 1.14457=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3ff28ea8, 0xc0000000, 0x3fefae14, 0x7ae147bd}, /* 1.15982=f(0.99000)*/ +{14, 0,123,__LINE__, 0x3ff2cd9f, 0xc0000000, 0x3ff00000, 0x00000007}, /* 1.17520=f(1.00000)*/ +{14, 0,123,__LINE__, 0x3ff30d12, 0x00000000, 0x3ff028f5, 0xc28f5c30}, /* 1.19069=f(1.01000)*/ +{14, 0,123,__LINE__, 0x3ff34d01, 0x20000000, 0x3ff051eb, 0x851eb859}, /* 1.20630=f(1.02000)*/ +{14, 0,123,__LINE__, 0x3ff38d6e, 0xc0000000, 0x3ff07ae1, 0x47ae1482}, /* 1.22202=f(1.03000)*/ +{14, 0,123,__LINE__, 0x3ff3ce5c, 0x80000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.23788=f(1.04000)*/ +{13, 0,123,__LINE__, 0x3ff40fcb, 0xe0000000, 0x3ff0cccc, 0xccccccd4}, /* 1.25385=f(1.05000)*/ +{13, 0,123,__LINE__, 0x3ff451be, 0xe0000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.26995=f(1.06000)*/ +{13, 0,123,__LINE__, 0x3ff49437, 0x40000000, 0x3ff11eb8, 0x51eb8526}, /* 1.28618=f(1.07000)*/ +{13, 0,123,__LINE__, 0x3ff4d736, 0x60000000, 0x3ff147ae, 0x147ae14f}, /* 1.30254=f(1.08000)*/ +{13, 0,123,__LINE__, 0x3ff51abe, 0x00000000, 0x3ff170a3, 0xd70a3d78}, /* 1.31902=f(1.09000)*/ +{13, 0,123,__LINE__, 0x3ff55ed0, 0x00000000, 0x3ff19999, 0x999999a1}, /* 1.33564=f(1.10000)*/ +{13, 0,123,__LINE__, 0x3ff5a36e, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.35240=f(1.11000)*/ +{13, 0,123,__LINE__, 0x3ff5e899, 0xc0000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.36928=f(1.12000)*/ +{13, 0,123,__LINE__, 0x3ff62e55, 0x20000000, 0x3ff2147a, 0xe147ae1c}, /* 1.38631=f(1.13000)*/ +{13, 0,123,__LINE__, 0x3ff674a1, 0xc0000000, 0x3ff23d70, 0xa3d70a45}, /* 1.40347=f(1.14000)*/ +{13, 0,123,__LINE__, 0x3ff6bb81, 0xe0000000, 0x3ff26666, 0x6666666e}, /* 1.42077=f(1.15000)*/ +{13, 0,123,__LINE__, 0x3ff702f6, 0xa0000000, 0x3ff28f5c, 0x28f5c297}, /* 1.43822=f(1.16000)*/ +{13, 0,123,__LINE__, 0x3ff74b02, 0x60000000, 0x3ff2b851, 0xeb851ec0}, /* 1.45581=f(1.17000)*/ +{13, 0,123,__LINE__, 0x3ff793a6, 0xa0000000, 0x3ff2e147, 0xae147ae9}, /* 1.47354=f(1.18000)*/ +{13, 0,123,__LINE__, 0x3ff7dce5, 0xc0000000, 0x3ff30a3d, 0x70a3d712}, /* 1.49143=f(1.19000)*/ +{ 0, 0,123,__LINE__, 0xc070bbea, 0xc0000000, 0xc01921fb, 0x54442d18}, /* -267.744=f(-6.28318)*/ +{ 0, 0,123,__LINE__, 0xc04bd3c3, 0x40000000, 0xc012d97c, 0x7f3321d2}, /* -55.6543=f(-4.71238)*/ +{ 8, 0,123,__LINE__, 0xc02718f4, 0x60000000, 0xc00921fb, 0x54442d18}, /* -11.5487=f(-3.14159)*/ +{ 1, 0,123,__LINE__, 0xc002690f, 0x60000000, 0xbff921fb, 0x54442d18}, /* -2.30129=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 1, 0,123,__LINE__, 0x4002690f, 0x60000000, 0x3ff921fb, 0x54442d18}, /* 2.30129=f(1.57079)*/ +{ 8, 0,123,__LINE__, 0x402718f4, 0x60000000, 0x400921fb, 0x54442d18}, /* 11.5487=f(3.14159)*/ +{ 9, 0,123,__LINE__, 0x404bd3c3, 0x40000000, 0x4012d97c, 0x7f3321d2}, /* 55.6543=f(4.71238)*/ +{ 0, 0,123,__LINE__, 0xc2937046, 0x40000000, 0xc03e0000, 0x00000000}, /* -5.34323e+12=f(-30.0000)*/ +{ 0, 0,123,__LINE__, 0xc26c68a8, 0x80000000, 0xc03c4ccc, 0xcccccccd}, /* -9.76120e+11=f(-28.3000)*/ +{ 0, 0,123,__LINE__, 0xc244c263, 0x20000000, 0xc03a9999, 0x9999999a}, /* -1.78321e+11=f(-26.6000)*/ +{ 0, 0,123,__LINE__, 0xc21e56cc, 0x40000000, 0xc038e666, 0x66666667}, /* -3.25763e+10=f(-24.9000)*/ +{ 0, 0,123,__LINE__, 0xc1f62b78, 0xe0000000, 0xc0373333, 0x33333334}, /* -5.95116e+09=f(-23.2000)*/ +{ 0, 0,123,__LINE__, 0xc1d03342, 0xe0000000, 0xc0358000, 0x00000001}, /* -1.08718e+09=f(-21.5000)*/ +{ 0, 0,123,__LINE__, 0xc1a7ad15, 0x80000000, 0xc033cccc, 0xccccccce}, /* -1.98610e+08=f(-19.8000)*/ +{ 0, 0,123,__LINE__, 0xc1814d0b, 0xe0000000, 0xc0321999, 0x9999999b}, /* -3.62827e+07=f(-18.1000)*/ +{ 0, 0,123,__LINE__, 0xc15948e7, 0x20000000, 0xc0306666, 0x66666668}, /* -6.62825e+06=f(-16.4000)*/ +{ 0, 0,123,__LINE__, 0xc13279fa, 0x40000000, 0xc02d6666, 0x6666666a}, /* -1.21087e+06=f(-14.7000)*/ +{ 0, 0,123,__LINE__, 0xc10b00b6, 0x80000000, 0xc02a0000, 0x00000004}, /* -221206=f(-13.0000)*/ +{ 0, 0,123,__LINE__, 0xc0e3bb5a, 0x20000000, 0xc0269999, 0x9999999e}, /* -40410=f(-11.3000)*/ +{ 0, 0,123,__LINE__, 0xc0bcd664, 0x40000000, 0xc0233333, 0x33333338}, /* -7382.39=f(-9.60000)*/ +{ 0, 0,123,__LINE__, 0xc0951290, 0xa0000000, 0xc01f9999, 0x999999a3}, /* -1348.64=f(-7.90000)*/ +{ 0, 0,123,__LINE__, 0xc06ecbf3, 0x20000000, 0xc018cccc, 0xccccccd6}, /* -246.373=f(-6.20000)*/ +{ 0, 0,123,__LINE__, 0xc0468062, 0xc0000000, 0xc0120000, 0x00000009}, /* -45.0030=f(-4.50000)*/ +{11, 0,123,__LINE__, 0xc0206243, 0x00000000, 0xc0066666, 0x66666678}, /* -8.19191=f(-2.80000)*/ +{13, 0,123,__LINE__, 0xbff55ed0, 0x00000000, 0xbff19999, 0x999999bd}, /* -1.33564=f(-1.10000)*/ +{13, 0,123,__LINE__, 0x3fe45f77, 0x60000000, 0x3fe33333, 0x333332ec}, /* 0.63665=f(0.60000)*/ +{11, 0,123,__LINE__, 0x4013bf72, 0xc0000000, 0x40026666, 0x66666654}, /* 4.93696=f(2.30000)*/ +{10, 0,123,__LINE__, 0x403b4a37, 0xe0000000, 0x400fffff, 0xffffffee}, /* 27.2899=f(4.00000)*/ +{ 9, 0,123,__LINE__, 0x4062add2, 0xc0000000, 0x4016cccc, 0xccccccc4}, /* 149.431=f(5.70000)*/ +{ 8, 0,123,__LINE__, 0x40898fef, 0x60000000, 0x401d9999, 0x99999991}, /* 817.991=f(7.40000)*/ +{ 8, 0,123,__LINE__, 0x40b17da6, 0x20000000, 0x40223333, 0x3333332f}, /* 4477.64=f(9.10000)*/ +{ 8, 0,123,__LINE__, 0x40d7ef9a, 0x60000000, 0x40259999, 0x99999995}, /* 24510=f(10.8000)*/ +{ 7, 0,123,__LINE__, 0x410060c5, 0x80000000, 0x4028ffff, 0xfffffffb}, /* 134168=f(12.5000)*/ +{ 7, 0,123,__LINE__, 0x412669c0, 0x80000000, 0x402c6666, 0x66666661}, /* 734432=f(14.2000)*/ +{ 7, 0,123,__LINE__, 0x414eac09, 0x80000000, 0x402fcccc, 0xccccccc7}, /* 4.02024e+06=f(15.9000)*/ +{ 7, 0,123,__LINE__, 0x4174fcb4, 0x40000000, 0x40319999, 0x99999997}, /* 2.20066e+07=f(17.6000)*/ +{ 7, 0,123,__LINE__, 0x419cb879, 0x60000000, 0x40334ccc, 0xccccccca}, /* 1.20463e+08=f(19.3000)*/ +{ 7, 0,123,__LINE__, 0x41c3a6e1, 0xa0000000, 0x4034ffff, 0xfffffffd}, /* 6.59408e+08=f(21.0000)*/ +{ 7, 0,123,__LINE__, 0x41eae4b4, 0x20000000, 0x4036b333, 0x33333330}, /* 3.60957e+09=f(22.7000)*/ +{ 6, 0,123,__LINE__, 0x421266cf, 0xe0000000, 0x40386666, 0x66666663}, /* 1.97586e+10=f(24.4000)*/ +{ 6, 0,123,__LINE__, 0x42392ead, 0x00000000, 0x403a1999, 0x99999996}, /* 1.08157e+11=f(26.1000)*/ +{ 6, 0,123,__LINE__, 0x42613b16, 0xc0000000, 0x403bcccc, 0xccccccc9}, /* 5.92046e+11=f(27.8000)*/ +{ 6, 0,123,__LINE__, 0x42879486, 0x60000000, 0x403d7fff, 0xfffffffc}, /* 3.24083e+12=f(29.5000)*/ +0,}; +test_sinhf(m) {run_vector_1(m,sinhf_vec,(char *)(sinhf),"sinhf","ff"); } diff --git a/newlib/libm/test/sprint_ivec.c b/newlib/libm/test/sprint_ivec.c new file mode 100644 index 000000000..24762c6b3 --- /dev/null +++ b/newlib/libm/test/sprint_ivec.c @@ -0,0 +1,5017 @@ +#include "test.h" + +sprint_int_type sprint_ints[] = +{ +__LINE__, 0x000838d2, "838d2", "%.4x", +__LINE__, 0x0063be46, "63BE46", "%-6X", +__LINE__, -0x1b236c0, "-28456640", "%#0.d", +__LINE__, -0x0000003, "-3", "% 0d", +__LINE__, 0x0000ed51, "ed51", "%2.x", +__LINE__, -0x00001f2, "-498", "%1ld", +__LINE__, 0x0ea3e927, "EA3E927", "%+X", +__LINE__, 0xffbef8da, "FFBEF8DA", "%5X", +__LINE__, 0x62ff9f56, "62ff9f56", "%0x", +__LINE__, 0x00000ad2, "AD2", "%.0X", +__LINE__, 0x00000000, " ", "% 6.ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%1.4X", +__LINE__, 0x0000208c, " 208C", "%5X", +__LINE__, 0x0000003c, "3c", "%x", +__LINE__, 0xffff6177, "0xffff6177", "%+#x", +__LINE__, 0xffffdc8d, "ffffdc8d", "%+x", +__LINE__, 0x00000000, "0", "%X", +__LINE__, 0x00002434, "9268", "%0d", +__LINE__, 0xd2c72cdb, "d2c72cdb", "%-x", +__LINE__, 0xfe38012b, "0xfe38012b", "%+#7x", +__LINE__, 0x00000001, "0001", "%#.4d", +__LINE__, -0x008525a, "-0545370", "%06.7ld", +__LINE__, 0xffffffac, "ffffffac", "%3.7x", +__LINE__, 0x007424d2, "+7611602", "%+ld", +__LINE__, 0x00001a85, "1A85", "%.4X", +__LINE__, -0x0000019, "-25", "%3.d", +__LINE__, 0xfffffffe, "fffffffe", "%-x", +__LINE__, -0x34473b2, "-54817714", "% d", +__LINE__, 0x000000ea, "234", "%1.ld", +__LINE__, -0x0000004, "-4 ", "%-7.ld", +__LINE__, 0x00006c94, "27796", "%0d", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0x00000619, "619", "%1x", +__LINE__, 0x0000209c, "8348", "%ld", +__LINE__, -0x327f8ff, "-52951295", "%-0ld", +__LINE__, 0xffffff0b, "FFFFFF0B", "%2.X", +__LINE__, 0xf199d6ae, "F199D6AE", "%X", +__LINE__, 0x3ca5602e, "1017471022", "%-1.ld", +__LINE__, -0xfb2080b, "-263325707", "%3.5d", +__LINE__, 0x00001cb8, "7352", "%d", +__LINE__, 0x00000000, "0000000", "%3.7d", +__LINE__, 0xffffff40, "FFFFFF40", "%+X", +__LINE__, 0x14664450, "0x14664450", "%#x", +__LINE__, 0x0000002e, "2e", "%1x", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, 0xffff606a, "0XFFFF606A", "%#X", +__LINE__, 0xffffff33, "0XFFFFFF33", "%#X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, -0x0000012, "-00018", "%-2.5d", +__LINE__, 0x0001fbe6, "130022", "%1.d", +__LINE__, 0xfff59dd9, "fff59dd9", "%+x", +__LINE__, 0x00000002, "2", "%0.0d", +__LINE__, 0x00000fe1, "fe1 ", "%-7.x", +__LINE__, 0x001f8f6a, "1F8F6A", "%1.X", +__LINE__, 0x0000001b, "000001B", "%04.7X", +__LINE__, 0x126a2609, " 308946441", "% 4d", +__LINE__, 0xffffffe3, "0XFFFFFFE3", "%+#.1X", +__LINE__, 0x1858f1c9, "1858f1c9", "%.3x", +__LINE__, 0x003fc672, "3fc672", "%1x", +__LINE__, 0x00c0bddc, "12631516", "%#d", +__LINE__, 0x000006d6, "1750", "%#d", +__LINE__, 0x000006a0, "6A0", "%X", +__LINE__, 0x000007be, "7BE", "%X", +__LINE__, -0x1c7cd1a, "-29871386", "%ld", +__LINE__, 0x000000cc, "204", "%ld", +__LINE__, 0x000002db, "731 ", "%-#5d", +__LINE__, 0xffff67ad, "FFFF67AD", "% X", +__LINE__, 0x00000008, "8", "%d", +__LINE__, 0xffe07007, "FFE07007", "%5X", +__LINE__, -0x0000001, " -1", "% 7d", +__LINE__, 0xfffffffe, "fffffffe", "%x", +__LINE__, 0x00027b68, "+162664", "%+ld", +__LINE__, 0x0a7c1997, "+175905175", "%+2ld", +__LINE__, 0xfe300896, "fe300896", "%.4x", +__LINE__, 0x00000537, "537", "%-0.x", +__LINE__, 0x3e981779, "3e981779", "%.6x", +__LINE__, 0xfffff05e, "FFFFF05E", "%1.0X", +__LINE__, -0x07bc0cf, "-8110287", "%-7d", +__LINE__, -0x01371bc, "-1274300", "%.7ld", +__LINE__, -0x0000013, "-19", "%.2ld", +__LINE__, 0x000000d1, "0xd1", "%#x", +__LINE__, -0x0000003, "-3", "%-ld", +__LINE__, 0xfffffffc, "FFFFFFFC", "%4.1X", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, 0x0001c8af, "116911", "%d", +__LINE__, 0x000048c3, "48C3", "%X", +__LINE__, 0x00000079, "0x0000079", "%-#0.7x", +__LINE__, 0x0000615a, " 24922", "% d", +__LINE__, 0xfffffff5, "fffffff5", "%x", +__LINE__, 0x00000308, "0000308", "%+07.7x", +__LINE__, 0xfcadc983, "fcadc983", "%x", +__LINE__, 0x00000097, "151", "%#d", +__LINE__, 0x000001c5, "453", "%0.2ld", +__LINE__, 0x00000000, "00", "%-1.2x", +__LINE__, 0x00000001, "+1", "%+02.d", +__LINE__, 0x01eb4354, "1EB4354", "% X", +__LINE__, 0xffffa7d1, "ffffa7d1", "%5.x", +__LINE__, 0x0003170e, "0x3170e", "%#x", +__LINE__, 0x000001ce, "1CE", "% .2X", +__LINE__, 0x3a2991fb, "975802875", "%d", +__LINE__, -0xcdad8e2, "-215668962", "%-d", +__LINE__, 0xfe0261c3, "fe0261c3", "%x", +__LINE__, -0x0006ea7, "-28327", "% ld", +__LINE__, 0x032854a3, "0X32854A3", "% #6X", +__LINE__, 0x0000004b, "4b", "%x", +__LINE__, 0xffff6ca3, "FFFF6CA3", "%4.X", +__LINE__, 0x00000000, "0", "%X", +__LINE__, 0x00611f04, "611F04", "%.1X", +__LINE__, 0x00000000, " 0", "%#6d", +__LINE__, 0x0002c711, "2c711", "%-02.x", +__LINE__, -0x07a2fe4, "-8007652", "%d", +__LINE__, -0x0000547, "-1351", "%ld", +__LINE__, 0x00013954, "0x13954", "%#x", +__LINE__, -0x00523b7, "-336823", "%ld", +__LINE__, -0x00f6c6e, "-1010798", "%6.ld", +__LINE__, 0xffea6427, "FFEA6427", "%3X", +__LINE__, -0x0000005, "-5", "%d", +__LINE__, -0x04fe618, "-5236248", "% .7d", +__LINE__, 0xffa80a28, "ffa80a28", "%-0x", +__LINE__, 0x00000047, "71", "%ld", +__LINE__, 0x001dc6bb, "1951419", "%#4ld", +__LINE__, 0x00000868, " 2152", "%#6d", +__LINE__, 0x000002fb, "2fb", "%x", +__LINE__, 0x00607fa0, "6324128", "%4d", +__LINE__, 0xfffed161, "fffed161", "%x", +__LINE__, 0x0001c6e4, " 116452", "% 2.5d", +__LINE__, 0x0003dda8, "3DDA8", "%4X", +__LINE__, 0xfffffff8, "fffffff8", "%x", +__LINE__, 0xfacf664a, "facf664a", "%x", +__LINE__, 0x000000c1, "C1", "% 1X", +__LINE__, 0x0000839c, " 839C", "%6X", +__LINE__, 0xfffff69a, "FFFFF69A", "%X", +__LINE__, 0x000e5c2e, "+941102", "%+d", +__LINE__, -0x0000004, "-4", "%#d", +__LINE__, 0x00000000, "00000", "%#.5ld", +__LINE__, 0xfffffffe, "fffffffe", "%3.1x", +__LINE__, 0x0010ed68, "1109352", "%-ld", +__LINE__, 0xffffffe9, "ffffffe9", "%.6x", +__LINE__, 0x00000007, " 7", "% 4.ld", +__LINE__, 0x0000caba, "51898", "%ld", +__LINE__, -0x0000119, "-281", "% d", +__LINE__, 0x0c3012a9, "204477097", "%03.6ld", +__LINE__, -0x001c98f, "-117135", "%ld", +__LINE__, 0x000017b1, "+6065", "%+d", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, -0x0000019, "-25", "% .2d", +__LINE__, 0x0009ae28, "9AE28", "%X", +__LINE__, 0xe861c4fe, "e861c4fe", "%7.x", +__LINE__, 0xffac88d3, "FFAC88D3", "%X", +__LINE__, -0x00005df, "-01503", "%-5.5ld", +__LINE__, 0x0000013e, "318", "%-0d", +__LINE__, 0x04b6f58f, "4b6f58f", "%x", +__LINE__, 0xfffe3978, "fffe3978", "%+0.6x", +__LINE__, 0x57ee5244, "57ee5244", "%+7.4x", +__LINE__, 0xfffb5610, "fffb5610", "% 6x", +__LINE__, 0x00000006, " 6", "%#7d", +__LINE__, 0x0000000c, "0x0000c", "%#.5x", +__LINE__, -0xec59362, "-247829346", "%1.7d", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, -0x0007e4b, "-32331", "% d", +__LINE__, 0x0ececa6f, "248433263", "%0d", +__LINE__, 0x00000578, " 578", "%+6.x", +__LINE__, -0x0000003, "-3", "%ld", +__LINE__, 0x000002bb, "2bb", "% 0x", +__LINE__, -0x0000006, "-6", "%-ld", +__LINE__, 0x000002f9, "761", "%d", +__LINE__, 0xffffd736, "ffffd736", "%3.4x", +__LINE__, 0x0010ba79, "1096313", "%7.4d", +__LINE__, -0x0001244, "-4676", "%#.1d", +__LINE__, 0x00000dbe, "DBE", "%1X", +__LINE__, -0x0000015, "-21", "%-0.d", +__LINE__, 0xffffffff, "0xffffffff", "%#x", +__LINE__, -0x6cdf4a3, "-114160803", "%ld", +__LINE__, 0x00008ac9, "8AC9", "%1X", +__LINE__, 0x00000000, "00", "%.2X", +__LINE__, -0x2263dba, "-36060602", "%5.5d", +__LINE__, 0x00007da9, "32169", "%0d", +__LINE__, 0xfffffff7, "FFFFFFF7", "% 4.X", +__LINE__, 0xfbf36cca, "FBF36CCA", "%.1X", +__LINE__, 0x00000040, "64", "%.0ld", +__LINE__, 0x0000001c, " 28", "% d", +__LINE__, 0xfffffadb, "0xfffffadb", "%#.5x", +__LINE__, 0x0eb95847, "247027783", "%d", +__LINE__, 0xfffd7030, "FFFD7030", "%+02X", +__LINE__, 0x00000005, "00005", "%.5x", +__LINE__, 0xfffffffd, "FFFFFFFD", "%X", +__LINE__, 0x98975b15, "98975B15", "%02X", +__LINE__, -0x0000034, " -52", "%6ld", +__LINE__, 0xffd7d0cc, "ffd7d0cc", "% 5.6x", +__LINE__, 0xffffffa6, "FFFFFFA6", "%X", +__LINE__, 0xfff27132, "fff27132", "%x", +__LINE__, -0x065b74d, "-6666061", "%+6ld", +__LINE__, 0xf6ac99d6, "0XF6AC99D6", "%#X", +__LINE__, 0xfffff4bd, "FFFFF4BD", "%X", +__LINE__, 0xfffffb62, "FFFFFB62", "%6X", +__LINE__, 0xf8434543, "f8434543", "%-0x", +__LINE__, 0x0002b374, "0x2b374", "%-#6x", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xffb5751d, "ffb5751d", "%-3.x", +__LINE__, 0x34ea7347, "887780167", "%d", +__LINE__, -0x008f457, "-586839", "%0ld", +__LINE__, 0x00000001, " 1", "%#4d", +__LINE__, 0xc32d7ad4, "c32d7ad4", "%0x", +__LINE__, 0xfffffb80, "FFFFFB80", "%-.2X", +__LINE__, 0x00000756, "756 ", "%-6x", +__LINE__, 0xfffb020f, "FFFB020F", "%+.2X", +__LINE__, -0xe68619f, "-241721759", "%#1.6ld", +__LINE__, 0x180166cd, "402745037", "%3.7ld", +__LINE__, -0x0000001, "-1", "%+00d", +__LINE__, 0xfdbc3611, "fdbc3611", "%x", +__LINE__, -0x000005b, "-91", "%d", +__LINE__, 0xffffe77f, "ffffe77f", "%x", +__LINE__, -0x0000019, "-25", "%ld", +__LINE__, 0x00000016, "22", "%#d", +__LINE__, -0x0000025, "-37", "%ld", +__LINE__, 0xffffe43f, "ffffe43f", "%x", +__LINE__, 0x000050a5, "00050a5", "%.7x", +__LINE__, 0x0000000c, " 12", "% 5.ld", +__LINE__, -0x001faff, "-129791", "%4d", +__LINE__, 0x239d7cf2, "597523698", "%0.7ld", +__LINE__, 0x04092183, "4092183", "% 7X", +__LINE__, -0x0043498, "-275608", "%-ld", +__LINE__, -0x0018dbe, "-101822", "%d", +__LINE__, 0xff3e09c3, "FF3E09C3", "%X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, -0x15d57558, "-366310744", "%+0.7ld", +__LINE__, 0x0004fb06, "326406", "%0.0d", +__LINE__, 0x00000119, "0X119", "%#X", +__LINE__, -0x14c53e19, "-348470809", "%d", +__LINE__, 0x00000019, "0000019", "% .7X", +__LINE__, -0x0000654, "-1620", "%0.4ld", +__LINE__, -0xde5899b, "-233146779", "%#.1d", +__LINE__, 0x0013c1f0, "1294832", "%4.ld", +__LINE__, 0x0a9fe761, "A9FE761", "%X", +__LINE__, -0x00000e5, "-229", "%1ld", +__LINE__, 0x00000161, "000353", "%.6ld", +__LINE__, 0x6b04e4bd, "0x6b04e4bd", "%#7.0x", +__LINE__, -0x0000ef0, "-3824 ", "%-6.ld", +__LINE__, -0x026306e, "-2502766", "%ld", +__LINE__, 0x00000000, "0", "%-X", +__LINE__, 0xfffffe1f, "fffffe1f", "%-x", +__LINE__, 0x0003aecf, " 241359", "% 2.1ld", +__LINE__, -0x0000014, "-20", "%d", +__LINE__, 0x00000002, "0002", "%-.4ld", +__LINE__, 0xfffff662, "0XFFFFF662", "% #.6X", +__LINE__, 0x00000006, "6", "%0x", +__LINE__, 0x0001f4c4, " 128196", "% 0d", +__LINE__, 0xffffffff, "FFFFFFFF", "%5X", +__LINE__, 0x05605e38, "90201656", "%ld", +__LINE__, 0xffffffde, "0XFFFFFFDE", "% #X", +__LINE__, 0x000001e0, " 1e0", "%7.x", +__LINE__, 0x00000007, "7", "%X", +__LINE__, 0x00000001, "+1", "%+d", +__LINE__, 0xffffffe0, "FFFFFFE0", "% X", +__LINE__, 0xffd7f77a, "FFD7F77A", "%+00.1X", +__LINE__, 0xfffffffe, "0xfffffffe", "%-#x", +__LINE__, 0x01b0a63b, "1b0a63b", "%x", +__LINE__, -0x06554b7, "-6640823", "%d", +__LINE__, 0xfffffff8, "fffffff8", "%x", +__LINE__, 0x00000b2d, "b2d", "%x", +__LINE__, -0x2664ba2, "-40258466", "%-d", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, -0x0000552, " -1362", "%6.2ld", +__LINE__, 0x00000009, " 00009", "%6.5x", +__LINE__, 0x00035c72, "220274", "%05.ld", +__LINE__, -0x014d09d, "-1364125", "%d", +__LINE__, -0x0000002, " -2", "% 4d", +__LINE__, 0x00000001, "1", "%+X", +__LINE__, 0x00000028, "28", "%X", +__LINE__, 0xf25c9eb2, "F25C9EB2", "%7.X", +__LINE__, -0x7ae4b62, "-128863074", "%d", +__LINE__, 0x00630d87, "630D87", "%2X", +__LINE__, 0x000000f8, "F8", "%-X", +__LINE__, 0xfffffff9, "FFFFFFF9", "%X", +__LINE__, -0x0000007, "-7", "%0d", +__LINE__, -0x2518fcd, "-38899661", "% 3ld", +__LINE__, 0xfffff4b4, "FFFFF4B4", "%-5X", +__LINE__, 0x01cc36c8, "30160584", "%ld", +__LINE__, 0xffffffff, "ffffffff", "%-x", +__LINE__, 0x0000000b, " 11", "%6.ld", +__LINE__, 0x00010d55, " 68949", "% d", +__LINE__, -0x0c01306, "-12587782", "% 6.1ld", +__LINE__, 0x001719d7, "1513943", "%.1ld", +__LINE__, -0x0000002, " -2", "%+3.ld", +__LINE__, 0x0000018e, "398", "%d", +__LINE__, 0x000000a6, "0xa6", "%-#3x", +__LINE__, 0x00006f66, " 28518", "% #d", +__LINE__, 0x0000032a, "32A", "%X", +__LINE__, -0x0000145, "-325", "%0d", +__LINE__, 0xffffffff, "ffffffff", "%2.x", +__LINE__, 0x00287171, "2650481", "%ld", +__LINE__, 0x0000004b, "+75", "%+02.ld", +__LINE__, 0xfffffff8, "fffffff8", "%-0x", +__LINE__, 0x00000064, "64", "% X", +__LINE__, 0xfffffca2, "fffffca2", "%0x", +__LINE__, 0x000010b6, "10b6", "% .0x", +__LINE__, -0x003806f, "-229487", "%7d", +__LINE__, -0x00000b7, "-183", "%3ld", +__LINE__, 0xffffe5ba, "FFFFE5BA", "%0X", +__LINE__, 0x001f0da8, "1f0da8", "%+x", +__LINE__, 0x000ce185, "844165", "%0ld", +__LINE__, 0x00000c96, "3222", "%0d", +__LINE__, -0x0013099, "-77977", "%1.ld", +__LINE__, -0x5f3c47a, "-99861626", "%.6ld", +__LINE__, 0x00000cbf, " CBF", "%+5.X", +__LINE__, -0x0000001, "-1", "%+ld", +__LINE__, 0x0d793bc3, "d793bc3", "%6.x", +__LINE__, 0xfffffffd, "0xfffffffd", "%+#x", +__LINE__, -0x0000070, " -112", "%6.d", +__LINE__, 0xfffffb3f, "FFFFFB3F", "%.7X", +__LINE__, 0x037dfc78, "0X37DFC78", "%#X", +__LINE__, 0x00009ba5, "39845", "%3ld", +__LINE__, 0x0000004a, "4a", "%0x", +__LINE__, 0xffffff81, "ffffff81", "%5.5x", +__LINE__, -0x86ef222, "-141488674", "%ld", +__LINE__, -0xac5531e, "-180704030", "% 4ld", +__LINE__, 0x00002493, "2493", "%+X", +__LINE__, 0xffffffff, "FFFFFFFF", "%1.3X", +__LINE__, 0x0005c875, "378997", "%.0ld", +__LINE__, 0x0301d345, "50451269", "%d", +__LINE__, 0xfff6b589, "fff6b589", "%2.4x", +__LINE__, -0x00001db, "-475 ", "%-7.0d", +__LINE__, 0x0000d1e7, "0x000d1e7", "%#2.7x", +__LINE__, 0xf4c4d2bb, "f4c4d2bb", "%.6x", +__LINE__, 0x00c89f54, "13147988", "%ld", +__LINE__, -0x6599253c, "-1704535356", "%+ld", +__LINE__, 0xab7d61ea, "ab7d61ea", "% x", +__LINE__, 0x00000006, "6", "%1ld", +__LINE__, 0xffff5ab7, "ffff5ab7", "%0x", +__LINE__, -0x1cfeca5b, "-486459995", "%#ld", +__LINE__, 0x000000f3, " f3", "% 6.x", +__LINE__, -0x0000021, "-33", "%d", +__LINE__, 0xfe7246ac, "fe7246ac", "%-5.x", +__LINE__, 0x00000017, "00017", "%-.5X", +__LINE__, -0x0cc250a, "-13378826", "%0.0d", +__LINE__, -0x00010ae, "-04270", "%#.5ld", +__LINE__, -0x7952c8b, "-127216779", "% ld", +__LINE__, 0x0002a53e, "173374", "%4.0d", +__LINE__, 0x03801bbf, "3801BBF", "%0X", +__LINE__, 0x0368645f, "+57173087", "%+#0.6ld", +__LINE__, 0x0000002f, "47", "%d", +__LINE__, 0x00000003, "3", "%x", +__LINE__, 0x000005f7, "5F7", "%0X", +__LINE__, -0x06e5e76, "-7233142", "% 0.1ld", +__LINE__, 0x053da936, "53da936", "%1.4x", +__LINE__, -0x0df0c2f, "-14617647", "%.5ld", +__LINE__, 0xfffffffd, "FFFFFFFD", "%-0X", +__LINE__, 0x000104bf, "104BF", "%X", +__LINE__, 0x000353fc, "353FC", "%X", +__LINE__, 0x182a18dc, "+405412060", "%+ld", +__LINE__, 0x0000000e, " 14", "% 2d", +__LINE__, -0x0000091, "-145", "%+ld", +__LINE__, 0x0029a9d6, "2730454", "%d", +__LINE__, 0x00009d57, "009d57", "% .6x", +__LINE__, 0x4c4d4f79, "1280135033", "%5.ld", +__LINE__, -0x000075b, "-1883", "% 03d", +__LINE__, -0x001b718, "-112408", "%+d", +__LINE__, 0xfffaaf57, "FFFAAF57", "%+1X", +__LINE__, 0x00f44e52, "F44E52", "% 4X", +__LINE__, 0x00000002, "0X2", "%#X", +__LINE__, 0x000a85e9, "A85E9", "%+0X", +__LINE__, 0xffff70bb, "ffff70bb", "%6x", +__LINE__, 0x00004e15, "4e15", "%x", +__LINE__, 0x000eeb60, " 977760", "% ld", +__LINE__, 0xfffffff1, "fffffff1", "%0x", +__LINE__, -0x294d7e2, "-43309026", "% 02.d", +__LINE__, 0x0001aaeb, "0109291", "%02.7ld", +__LINE__, 0x000a01fc, "0xa01fc", "%-#.5x", +__LINE__, 0x002c3c30, "+2898992", "%+#d", +__LINE__, 0x015667ae, "+22439854", "%+5ld", +__LINE__, -0x05af42b, "-5960747", "%+d", +__LINE__, 0x0000be36, "be36", "%+2x", +__LINE__, 0x005e3f67, "5e3f67", "% x", +__LINE__, -0x0000020, "-32", "% ld", +__LINE__, -0x0003617, "-13847", "% d", +__LINE__, 0x00000014, "14 ", "%-4.X", +__LINE__, 0x00000001, "001", "%0.3d", +__LINE__, 0xfffffea9, "fffffea9", "%3.x", +__LINE__, 0xe447099e, "E447099E", "%0X", +__LINE__, 0x00049c71, "302193", "%d", +__LINE__, 0x76356ed3, "0x76356ed3", "%#4.1x", +__LINE__, 0x00000005, " 0X5", "%#5X", +__LINE__, 0x00004da2, "0x004da2", "%#1.6x", +__LINE__, 0xffdfb36c, "FFDFB36C", "%4X", +__LINE__, 0xffffe3c5, "FFFFE3C5", "%+4.X", +__LINE__, 0x00000006, "6", "%0x", +__LINE__, -0x914ff17, "-152370967", "% .5ld", +__LINE__, -0x0000002, "-2", "%0ld", +__LINE__, 0xffffff36, "FFFFFF36", "% 2X", +__LINE__, -0x0bb1598, "-12260760", "%-ld", +__LINE__, 0x00006db5, "28085", "%0.5ld", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, -0x0000001, "-1", "%0ld", +__LINE__, 0x0fa37e79, "FA37E79", "%1.X", +__LINE__, -0x00000ac, "-172", "%.2d", +__LINE__, 0xffffffd8, "ffffffd8", "%.7x", +__LINE__, -0x000a513, "-42259", "%ld", +__LINE__, 0x00001294, "4756", "%2ld", +__LINE__, -0x56bae0b4, "-1455087796", "%.1ld", +__LINE__, 0x3b26d5fa, "3b26d5fa", "%x", +__LINE__, 0xff657013, "ff657013", "%x", +__LINE__, -0x00005f5, "-1525", "%0.0ld", +__LINE__, -0x0000001, " -1", "% 7d", +__LINE__, -0x02396b2, "-2332338", "%d", +__LINE__, -0x0000003, "-000003", "%+7.6d", +__LINE__, 0xfd3ec7c1, "fd3ec7c1", "% 3.4x", +__LINE__, -0x076e338, "-7791416", "%0.d", +__LINE__, -0x000015e, "-350", "%3ld", +__LINE__, 0x0a0f0b71, "a0f0b71", "%x", +__LINE__, 0xfffe00ba, "FFFE00BA", "%X", +__LINE__, 0x00036bd8, " 36bd8", "% 06.x", +__LINE__, 0xfffff2df, "0XFFFFF2DF", "%#2.6X", +__LINE__, 0x004687fb, "4622331", "%ld", +__LINE__, -0x0000331, " -817", "%+6.d", +__LINE__, 0xfcd5b090, "fcd5b090", "%+0x", +__LINE__, 0x0334f94c, "334F94C", "%.6X", +__LINE__, 0x00000bce, "3022", "%.3ld", +__LINE__, 0xf28d9ddd, "f28d9ddd", "%x", +__LINE__, 0x00003a79, " 14969", "% ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%.7X", +__LINE__, 0x0043d7fe, "43D7FE", "%X", +__LINE__, -0x0000b82, "-2946", "%-ld", +__LINE__, -0x00e29d8, "-928216", "%d", +__LINE__, 0xffffffec, "ffffffec", "%-x", +__LINE__, 0x0aeaf557, "0xaeaf557", "%-#x", +__LINE__, 0x00c07fe6, "C07FE6", "%X", +__LINE__, 0x307414d8, "307414d8", "% 0x", +__LINE__, -0x045ef67, "-4583271", "%d", +__LINE__, 0x0000024a, " 0000586", "% .7d", +__LINE__, 0xfffffc42, "fffffc42", "%x", +__LINE__, 0xfc38c249, "fc38c249", "%5.x", +__LINE__, -0x000d096, "-53398", "%-d", +__LINE__, -0x213a345, "-34841413", "%ld", +__LINE__, -0x0000130, "-304", "%ld", +__LINE__, -0x000efd1, "-61393", "%ld", +__LINE__, 0xfffff867, "FFFFF867", "%2X", +__LINE__, 0x00113ed0, "0x113ed0", "%-#7x", +__LINE__, 0x00000677, " 1655", "% 3.ld", +__LINE__, 0x0000002f, "2f", "%x", +__LINE__, 0xfffffd38, "fffffd38", "%-4x", +__LINE__, -0x000b3cc, "-46028", "%1.2d", +__LINE__, 0x45da719b, "45DA719B", "%+0X", +__LINE__, -0x000a454, " -42068", "%7.3ld", +__LINE__, 0x01cc7c30, " 30178352", "% d", +__LINE__, -0x05ae80e, "-5957646", "%#.4ld", +__LINE__, 0x000000b9, "185", "%d", +__LINE__, 0x003fcaf4, "4180724", "%1.ld", +__LINE__, 0x02da1b74, "2DA1B74", "%X", +__LINE__, 0xffffffd9, "FFFFFFD9", "%X", +__LINE__, 0x00064359, "64359 ", "%-6X", +__LINE__, 0x000000f0, "240", "%ld", +__LINE__, -0x01715e5, "-1512933", "%ld", +__LINE__, 0xc8f6e118, "0XC8F6E118", "%#X", +__LINE__, 0xfffffd8f, "FFFFFD8F", "%X", +__LINE__, 0x0000176d, "5997 ", "%-6d", +__LINE__, 0x00003cab, "0x3cab", "%#0.3x", +__LINE__, 0x00000001, " 1", "% d", +__LINE__, 0xfffff610, "0XFFFFF610", "%#X", +__LINE__, 0xfffffffe, "FFFFFFFE", "%5.7X", +__LINE__, 0x00000001, "1", "%0x", +__LINE__, 0x00000001, "00001", "%.5ld", +__LINE__, -0x0000d51, "-3409", "%d", +__LINE__, -0x08639ee, "-8796654", "%ld", +__LINE__, 0x00003121, "12577", "%#1.2ld", +__LINE__, 0x0000004e, "78", "%d", +__LINE__, 0xfffff64f, "fffff64f", "%-x", +__LINE__, 0x0000002a, "2a", "%0x", +__LINE__, 0x00000020, "20", "%x", +__LINE__, -0x00000b8, "-184", "%#ld", +__LINE__, 0x0000000a, "10", "%-#d", +__LINE__, 0x00000364, "868", "%.1ld", +__LINE__, 0x00d1f9b6, "D1F9B6", "%0.X", +__LINE__, 0x008cfda1, "8CFDA1", "% 6.X", +__LINE__, 0xffd58cce, "FFD58CCE", "%X", +__LINE__, 0x00000008, "0000008", "%6.7ld", +__LINE__, 0x00000318, " 318", "%4X", +__LINE__, 0x000172d8, "94936", "%2ld", +__LINE__, -0x056ccbf, "-5688511", "%ld", +__LINE__, 0x000000c7, "+000199", "%+0.6d", +__LINE__, 0x00000002, "0X2", "%-#X", +__LINE__, 0xfffff634, "FFFFF634", "%.1X", +__LINE__, -0x00001f3, "-499", "%-ld", +__LINE__, -0x000081b, "-2075", "%-d", +__LINE__, 0x000000b5, "181", "%0d", +__LINE__, 0xfe961ee8, "fe961ee8", "%0x", +__LINE__, 0x000028a2, "10402", "%d", +__LINE__, 0xffffffff, "FFFFFFFF", "%.4X", +__LINE__, -0x000058a, "-1418", "%.3ld", +__LINE__, 0x00001ceb, "1CEB", "%X", +__LINE__, 0x00000021, "21", "% X", +__LINE__, 0x00000002, "2", "%0d", +__LINE__, -0x2f9bbf5, "-49921013", "%.4ld", +__LINE__, 0x00000e91, "03729", "%#.5ld", +__LINE__, 0xf1116740, "f1116740", "%2x", +__LINE__, 0x00014f72, "14F72", "%X", +__LINE__, 0xfffffced, "FFFFFCED", "%X", +__LINE__, 0xffffffff, "ffffffff", "%.5x", +__LINE__, 0x0017cf0c, " 1560332", "% 0ld", +__LINE__, 0x0000000a, "A", "% X", +__LINE__, 0xff3a39d4, "ff3a39d4", "%x", +__LINE__, 0xfffef05f, "FFFEF05F", "%X", +__LINE__, 0xfedfe708, "fedfe708", "%03.0x", +__LINE__, 0x000345a0, "345A0", "% X", +__LINE__, -0x1ed5b6f7, "-517322487", "%d", +__LINE__, 0xd2d56c22, "D2D56C22", "%0.X", +__LINE__, 0x00002cbf, "2CBF", "%.2X", +__LINE__, 0x00000db4, "db4", "%3x", +__LINE__, -0x000b154, "-45396", "%d", +__LINE__, 0x002bf4c7, "2BF4C7", "%X", +__LINE__, 0x6954abf4, "+1767156724", "%+d", +__LINE__, 0xfffffffb, "fffffffb", "%x", +__LINE__, -0x29e0050e, "-702547214", "%-0ld", +__LINE__, -0x0014989, "-84361", "%-#0.3ld", +__LINE__, 0x001a557c, "+1725820", "%+6.5d", +__LINE__, -0x56689a81, "-1449695873", "%.2d", +__LINE__, 0x00000016, " 16", "%05.X", +__LINE__, 0x0001da1e, " 121374", "% d", +__LINE__, -0x04deac7, "-5106375", "%03.4d", +__LINE__, 0x000012b1, "4785", "%d", +__LINE__, 0x0009a116, "9a116", "%-x", +__LINE__, -0x0000003, "-000003", "%4.6ld", +__LINE__, 0x00000000, "", "%.0x", +__LINE__, 0x0000000a, " A", "% 3X", +__LINE__, 0xfffffff0, "0xfffffff0", "%-#0.1x", +__LINE__, 0x00000086, "86", "%0X", +__LINE__, 0x0000001f, "31", "%-d", +__LINE__, 0x0386f706, "59176710", "%3.6ld", +__LINE__, 0xffe437ae, "0XFFE437AE", "%#X", +__LINE__, 0x0e5405c6, "e5405c6", "%-x", +__LINE__, 0xfffdee46, "FFFDEE46", "%+X", +__LINE__, 0xff861e9d, "FF861E9D", "%5.X", +__LINE__, 0xfffff570, "FFFFF570", "%-X", +__LINE__, 0x045c90bd, "45c90bd", "%0x", +__LINE__, 0x000000aa, "AA", "%+X", +__LINE__, -0x747262e, "-122103342", "%0ld", +__LINE__, 0xffffad89, "FFFFAD89", "%X", +__LINE__, 0x00000018, "18", "%0.2X", +__LINE__, 0x00057a2d, " 358957", "% #7.d", +__LINE__, 0x73a0e21d, "1939923485", "%ld", +__LINE__, -0x00021e1, "-8673", "%0d", +__LINE__, 0x000000e9, " 233", "% 06.3ld", +__LINE__, 0xffffcc0d, "ffffcc0d", "%x", +__LINE__, 0x00000052, "52", "%x", +__LINE__, 0x01c155af, "1C155AF", "%.5X", +__LINE__, 0xffffffff, "ffffffff", "%0.x", +__LINE__, -0x00400a4, "-262308", "%-d", +__LINE__, -0x0000001, "-0000001", "%#.7ld", +__LINE__, 0x01fb9c99, "1fb9c99", "% 03.5x", +__LINE__, 0xffffffff, "ffffffff", "%6.x", +__LINE__, 0xff5e5eea, "FF5E5EEA", "%X", +__LINE__, 0x0000000f, "F", "%+0X", +__LINE__, 0xfffffe3a, "fffffe3a", "% x", +__LINE__, 0xfffffffe, "FFFFFFFE", "%-X", +__LINE__, -0x0000007, "-7", "%0ld", +__LINE__, -0x002f635, "-194101", "%d", +__LINE__, -0x0000005, "-5", "%ld", +__LINE__, -0x0000059, "-89", "%0ld", +__LINE__, -0x1ccda96, "-30202518", "%d", +__LINE__, -0x0000002, "-2", "%-d", +__LINE__, 0xffffffda, "0XFFFFFFDA", "%#X", +__LINE__, 0x00036cc5, "224453", "%#d", +__LINE__, 0x00000010, "+16", "%+ld", +__LINE__, 0x0b6039c7, "190855623", "%d", +__LINE__, -0x0000002, "-002", "%#.3d", +__LINE__, 0xfff3e746, "FFF3E746", "%-4X", +__LINE__, 0x0361b3de, "361B3DE", "% 04X", +__LINE__, 0xffffe6a2, "ffffe6a2", "%-x", +__LINE__, 0x00032790, "0x0032790", "%#7.7x", +__LINE__, 0xffe33b4e, "ffe33b4e", "%-0x", +__LINE__, -0x0094663, "-607843", "%.3ld", +__LINE__, -0x00a3efa, "-671482", "%4d", +__LINE__, 0x000000e6, " 00E6", "%7.4X", +__LINE__, 0x000125cb, "125CB", "%+X", +__LINE__, 0x0000b97e, "b97e", "%x", +__LINE__, -0x0000039, "-57", "%+ld", +__LINE__, 0xffffe39a, "ffffe39a", "%5.4x", +__LINE__, 0xffffffff, "ffffffff", "%6.1x", +__LINE__, -0xdee910c, "-233738508", "%-#2d", +__LINE__, -0x14044930, "-335825200", "%6.ld", +__LINE__, 0x00a81259, "a81259", "%x", +__LINE__, 0x020e74c6, "20E74C6", "%X", +__LINE__, -0x00000fb, "-251", "%01.d", +__LINE__, 0x034ceb45, "34CEB45", "%5.X", +__LINE__, 0xfeacb66a, "feacb66a", "% x", +__LINE__, 0x00003eb6, "3EB6", "% X", +__LINE__, 0x000009ef, "9ef", "% x", +__LINE__, 0xf9d9dd07, "F9D9DD07", "%0X", +#ifndef __PCCNECV70__ + +__LINE__, 0x000154d7, "087255", "%.6ld", +__LINE__, -0x000036e, "-878", "%-ld", +__LINE__, -0x0007dcc, "-32204", "% d", +__LINE__, 0x000019dc, "6620", "%d", +__LINE__, 0xffffff6e, "FFFFFF6E", "%2X", +__LINE__, 0x00000016, "0x16", "%-#x", +__LINE__, 0xffdb3e96, "ffdb3e96", "%+.5x", +__LINE__, 0xffffffef, "FFFFFFEF", "% 04.X", +__LINE__, 0xffffffff, "FFFFFFFF", "%5X", +__LINE__, 0x000c08cd, "C08CD", "%-X", +__LINE__, 0x18de71ee, "18de71ee", "%x", +__LINE__, 0xffffffff, "ffffffff", "% x", +__LINE__, -0x00025bd, "-009661", "%#.6d", +__LINE__, 0x2f05de14, " 788913684", "% 6.4ld", +__LINE__, 0x0c99cf86, "211406726", "%.5d", +__LINE__, 0x09e6a21d, " 166109725", "% 0d", +__LINE__, -0x013da65, "-1301093", "%+ld", +__LINE__, 0x000003d0, " 976", "% 4.2d", +__LINE__, -0xef9e3cc, "-251257804", "%-7.0d", +__LINE__, 0x0000000c, "+12", "%+00ld", +__LINE__, 0xffffffe2, "ffffffe2", "%x", +__LINE__, 0x000000fe, "fe", "%-x", +__LINE__, 0xfffffc5f, "fffffc5f", "%x", +__LINE__, -0x0005c55, "-23637", "%d", +__LINE__, -0x0111ff2, "-1122290", "% 7.d", +__LINE__, -0x1a1746e5, "-437733093", "%.4ld", +__LINE__, 0x00001007, "004103", "%00.6d", +__LINE__, 0xffffffe1, "ffffffe1", "%x", +__LINE__, 0x0000d80f, "55311", "%d", +__LINE__, 0x00000004, "4", "%+X", +__LINE__, 0xfffffffd, "fffffffd", "%6x", +__LINE__, -0x2afbcc3c, "-721144892", "%4.6ld", +__LINE__, 0x00377f96, "377F96", "%6.X", +__LINE__, 0xffffffc8, "FFFFFFC8", "%0X", +__LINE__, 0x007ed9d1, "8313297", "%-3d", +__LINE__, 0x00000000, "0", "%-X", +__LINE__, 0x001e122d, "1970733", "%01.d", +__LINE__, -0x000029b, "-667", "%ld", +__LINE__, -0x002f563, "-193891", "% 2.5d", +__LINE__, 0xfffffffe, "fffffffe", "%+3.7x", +__LINE__, 0xfff7658c, "fff7658c", "%x", +__LINE__, -0x0006d08, "-0027912", "%7.7ld", +__LINE__, 0x00000080, "80", "%X", +__LINE__, 0x0000078f, " 1935", "% 6ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "% X", +__LINE__, 0x000000ae, " AE", "%7.X", +__LINE__, -0x000d6aa, "-54954", "%-ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%6.X", +__LINE__, 0x000003bf, "+959", "%+d", +__LINE__, -0x7242d04b, "-1916981323", "% ld", +__LINE__, 0xf0e6546f, "F0E6546F", "% .7X", +__LINE__, 0x047e196a, "75372906", "%ld", +__LINE__, 0x0240174e, "240174E", "%+0X", +__LINE__, -0x0000006, "-006", "%.3ld", +__LINE__, 0x00068aac, "428716", "%#ld", +__LINE__, 0xffffffa1, "ffffffa1", "%0x", +__LINE__, 0x000adab3, "adab3", "%x", +__LINE__, -0x00000ae, "-0000174", "%7.7ld", +__LINE__, 0x0f0a8f4b, "f0a8f4b", "% x", +__LINE__, 0xfee229bc, "fee229bc", "%x", +__LINE__, -0x275b8455, "-660309077", "%.2ld", +__LINE__, -0xca4b2a5, "-212120229", "%d", +__LINE__, 0x000000b5, " 181", "%04.d", +__LINE__, 0xfff213f2, "FFF213F2", "%X", +__LINE__, 0x00000003, "3", "%-X", +__LINE__, 0x0ebb978b, "247175051", "%.6ld", +__LINE__, 0xffffffca, "FFFFFFCA", "%X", +__LINE__, -0x0000003, "-03", "%+0.2d", +__LINE__, -0x178ff86, "-24706950", "%+d", +__LINE__, 0x0000003c, " 60", "%7.ld", +__LINE__, -0x001012d, "-65837", "%.5d", +__LINE__, 0x03673fd2, "3673fd2", "%.5x", +__LINE__, -0x001fe74, "-130676", "%#0.6ld", +__LINE__, 0x004f6226, "4f6226", "%-0x", +__LINE__, 0xfffffa0f, "fffffa0f", "%7x", +__LINE__, 0xfffffff8, "fffffff8", "%-.6x", +__LINE__, -0x0000001, "-1", "%#d", +__LINE__, 0xffffe43d, "ffffe43d", "%7x", +__LINE__, 0x00009d47, "0040263", "%7.7ld", +__LINE__, 0xff0fc79f, "FF0FC79F", "%-4.X", +__LINE__, 0x2d610907, "2d610907", "%x", +__LINE__, -0x00002de, "-734", "%04d", +__LINE__, 0x0000036b, " 36B", "%7.1X", +__LINE__, 0x00000002, "2", "%.0x", +__LINE__, -0x1f577b3e, "-525826878", "%d", +__LINE__, 0x0000002d, "45", "%#ld", +__LINE__, 0xfffffffb, "fffffffb", "%x", +__LINE__, -0x0000004, "-4", "%-.0d", +__LINE__, 0x00016ba4, "16ba4", "%x", +__LINE__, -0x1ad853d5, "-450384853", "% 0ld", +__LINE__, 0x00366899, "366899", "%2.x", +__LINE__, 0x1659158b, "1659158B", "%X", +__LINE__, 0x000076c7, "76c7", "%x", +__LINE__, 0x00000674, "674", "%0x", +__LINE__, 0x016c9d8a, "+23895434", "%+ld", +__LINE__, 0xfffffc43, "FFFFFC43", "%0X", +__LINE__, 0xfff249d2, "fff249d2", "%-2.x", +__LINE__, 0xffffffdd, "ffffffdd", "%5x", +__LINE__, 0xffffa7ef, "FFFFA7EF", "%0.3X", +__LINE__, 0x030d4d06, "30d4d06", "%x", +__LINE__, -0x0e4694b, "-14969163", "%d", +__LINE__, 0x00000078, "120", "%.3ld", +__LINE__, -0x16c1273e, "-381757246", "%0d", +__LINE__, 0xffffd183, "FFFFD183", "% 0X", +__LINE__, -0x2dfdadd, "-48224989", "%ld", +__LINE__, -0x5767fe5c, "-1466433116", "%ld", +__LINE__, 0x01bea036, "29270070", "%#4.3d", +__LINE__, 0x00000027, "27", "%-x", +__LINE__, 0x0004d183, "4D183", "%X", +__LINE__, 0xffdaf9c8, "FFDAF9C8", "%.7X", +__LINE__, 0xfffffd95, "fffffd95", "%x", +__LINE__, -0x0059acb, "-367307", "%00.d", +__LINE__, 0x017d8db4, "17d8db4", "% 05.x", +__LINE__, 0x0001f084, "001F084", "%5.7X", +__LINE__, 0x00000006, " 6", "% ld", +__LINE__, 0x011b0802, "18548738", "%.3ld", +__LINE__, 0x00000006, " 6", "%#3.d", +__LINE__, 0xffffffff, "ffffffff", "%6x", +__LINE__, 0x00000001, "1", "% x", +__LINE__, 0x00000750, " 01872", "% .5d", +__LINE__, 0xfffffff9, "fffffff9", "%x", +__LINE__, -0x00f842c, "-1016876", "%+d", +__LINE__, -0x001dcf0, "-122096", "%-0d", +__LINE__, 0x000000c9, "0XC9", "% #3X", +__LINE__, 0x1e368e86, "1e368e86", "%7x", +__LINE__, -0x0001157, "-4439", "% 03.4d", +__LINE__, 0xfff91e87, "FFF91E87", "%3.5X", +__LINE__, 0x00000006, "6", "%x", +__LINE__, 0x00000bca, "3018", "%ld", +__LINE__, 0x00495ff6, "495ff6", "%01.0x", +__LINE__, -0x0267f7a, "-2523002", "% #5d", +__LINE__, 0x00000060, "96", "%-d", +__LINE__, 0x000850c6, "544966", "%#.1d", +__LINE__, 0x00231457, "231457", "%-6.4X", +__LINE__, 0x0000000b, "11", "%-d", +__LINE__, 0x000003bd, "957", "%#d", +__LINE__, 0xfd51d970, "FD51D970", "%+.7X", +__LINE__, 0x000007bf, "1983", "%-ld", +__LINE__, 0x000034b2, "34B2", "%0.X", +__LINE__, 0x0000c18d, "C18D", "%0.X", +__LINE__, 0xffffbb83, "ffffbb83", "% 3x", +__LINE__, 0x000001d0, "0x1d0", "%#x", +__LINE__, -0x003c784, "-247684", "%#ld", +__LINE__, 0x0210cffa, "210CFFA", "%X", +__LINE__, -0x33093a1, "-53515169", "% 0d", +__LINE__, 0x00000001, " 1", "% #ld", +__LINE__, 0xffffaa53, "ffffaa53", "%-4.5x", +__LINE__, 0x2935c056, "691388502", "%1.d", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x000013d1, "0X013D1", "%+#2.5X", +__LINE__, -0x000035c, "-860", "%-.2d", +__LINE__, 0x00000000, " ", "%-4.X", +__LINE__, -0x0000147, "-327", "%d", +__LINE__, 0x0a317eb0, "171015856", "%.7d", +__LINE__, 0x00000003, "3", "%ld", +__LINE__, 0x000001d6, "1d6", "%-x", +__LINE__, 0x18185214, "404247060", "%-.2ld", +__LINE__, 0x00574140, "0574140", "%.7X", +__LINE__, 0x00002ea5, "02ea5", "%.5x", +__LINE__, 0x00000005, "5", "% x", +__LINE__, 0xffc47ed6, "ffc47ed6", "%-x", +__LINE__, 0x0001f5da, "0X1F5DA", "%#X", +__LINE__, 0xfffffcc9, "fffffcc9", "% x", +__LINE__, 0x02586c98, "2586C98", "%X", +__LINE__, -0x0000036, "-54", "% ld", +__LINE__, 0x00064b57, "412503", "%1.5d", +__LINE__, -0x0000007, "-7", "%#0.0ld", +__LINE__, 0x00023a03, "145923", "%ld", +__LINE__, -0x0000065, "-101", "%+#d", +__LINE__, 0x00000208, "208", "%X", +__LINE__, 0x00e97728, "15300392", "%-ld", +__LINE__, 0x0000030a, "+778", "%+d", +__LINE__, 0xf4d7deee, "F4D7DEEE", "%+X", +__LINE__, -0x000009a, "-154", "%+.3ld", +__LINE__, 0x000002c0, "+704", "%+ld", +__LINE__, 0x0067ec23, "67ec23", "%x", +__LINE__, 0x005ca7fc, "+6072316", "%+d", +__LINE__, 0xfffff5f1, "fffff5f1", "%x", +__LINE__, 0x00000601, " 0X601", "%#7.2X", +__LINE__, -0x0000057, "-87", "% ld", +__LINE__, -0x0000078, " -120", "%7.d", +__LINE__, -0x000001f, "-31 ", "%-6d", +__LINE__, 0x0160c000, "23117824", "%ld", +__LINE__, -0x0000007, "-7", "%0ld", +__LINE__, 0xfffffffe, "fffffffe", "%+x", +__LINE__, 0x5b6ef898, "5b6ef898", "%+0x", +__LINE__, 0x0009bfb6, "638902", "%d", +__LINE__, -0x0000145, " -325", "%#6.0d", +__LINE__, -0x508c048, "-84459592", "%-5.ld", +__LINE__, 0x00000002, " 0x2", "% #4x", +__LINE__, 0x0001486e, "84078", "%#d", +__LINE__, 0x006ac76a, "6997866", "%.6d", +__LINE__, 0xffffff98, "FFFFFF98", "%X", +__LINE__, 0xfffffe08, "fffffe08", "%6.x", +__LINE__, -0x24ef47e, "-38728830", "%1.6ld", +__LINE__, 0x39d1b2db, "39D1B2DB", "% X", +__LINE__, 0xfffc9ce2, "0xfffc9ce2", "%#x", +__LINE__, 0x59485e14, "1497914900", "%#4ld", +__LINE__, 0x000022eb, "22EB", "%3.X", +__LINE__, 0xfa410352, "FA410352", "%-X", +__LINE__, -0x4a342f0, "-77808368", "% ld", +__LINE__, 0xef5825a4, "EF5825A4", "%.6X", +__LINE__, 0x01b0185a, "0x1b0185a", "% #x", +__LINE__, -0x0004290, "-17040", "%.3d", +__LINE__, -0x10f88659, "-284722777", "%+6.2ld", +__LINE__, 0x00003216, "12822", "%-d", +__LINE__, 0x4a31a219, "1244766745", "%d", +__LINE__, 0xffffffb5, "FFFFFFB5", "%-X", +__LINE__, 0x0000d586, "D586", "%-2.X", +__LINE__, 0x00008496, "33942", "%1.d", +__LINE__, -0x0000011, "-17", "%1ld", +__LINE__, 0x0000003c, "3C", "%2.X", +__LINE__, 0xfffffffe, "FFFFFFFE", "%.3X", +__LINE__, 0x0000152a, "152A", "%X", +__LINE__, 0xfffe876e, "FFFE876E", "%X", +__LINE__, -0x0003874, "-14452", "%-ld", +__LINE__, -0x004918a, "-299402", "%#.6d", +__LINE__, -0x000000c, "-12", "%-d", +__LINE__, 0xffffd812, "FFFFD812", "%+X", +__LINE__, -0x000000c, "-12", "%0d", +__LINE__, -0x0000229, "-553", "%0d", +__LINE__, 0x00002ab8, "2AB8", "%4.X", +__LINE__, 0x0000004b, "+75", "%+ld", +__LINE__, 0x001c3178, " 1847672", "% ld", +__LINE__, -0x0000006, "-6", "%.0ld", +__LINE__, 0x0003be65, "245349", "%ld", +__LINE__, -0x0000001, "-1", "%#1ld", +__LINE__, 0x0000007f, "+127", "%+ld", +__LINE__, 0x0000020e, "526 ", "%-5ld", +__LINE__, 0x00000002, "2", "%d", +__LINE__, 0x03bd0873, "0X3BD0873", "%#X", +__LINE__, 0x00093a52, "604754", "%-2d", +__LINE__, -0x00823fc, "-0533500", "%+.7ld", +__LINE__, 0x00000000, " ", "%4.X", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0xfff09ede, "fff09ede", "%-x", +__LINE__, 0x01e28c24, "31624228", "%ld", +__LINE__, 0x00001dcc, "1DCC", "%X", +__LINE__, -0x0f0ea0d, "-15788557", "%-00.ld", +__LINE__, 0xffff73a1, "FFFF73A1", "%X", +__LINE__, -0x0004040, "-16448", "%+#d", +__LINE__, 0x0073b158, "0x73b158", "%#7x", +__LINE__, 0xfffff8ff, "FFFFF8FF", "% 5X", +__LINE__, -0x0000004, "-4", "%0d", +__LINE__, 0xffff56a3, "ffff56a3", "%1.6x", +__LINE__, -0x0000041, "-65", "%0d", +__LINE__, 0x00000009, "+0000009", "%+2.7d", +__LINE__, 0xffffe13d, "0XFFFFE13D", "%+#2.X", +__LINE__, -0x00002ce, "-00718", "%.5ld", +__LINE__, 0xffc53e28, "ffc53e28", "%03.4x", +__LINE__, 0x00000005, "0X5", "%#X", +__LINE__, 0x00000004, "4", "%x", +__LINE__, 0xe21b35eb, "e21b35eb", "%-x", +__LINE__, -0x0000098, "-152", "%-ld", +__LINE__, 0xffffff81, "FFFFFF81", "%2X", +__LINE__, 0x00000003, "00003", "%.5ld", +__LINE__, 0xfffffffc, "fffffffc", "%+x", +__LINE__, 0x000491f5, "299509", "%1.ld", +__LINE__, 0xf06bfd7d, "F06BFD7D", "%X", +__LINE__, -0x0000006, "-6", "%0d", +__LINE__, -0x0a4af7d, "-10792829", "%-0d", +__LINE__, -0x11a74ef, "-18511087", "%ld", +__LINE__, 0x2dc95e17, "768171543", "%-1.d", +__LINE__, -0x0000001, "-1", "%#ld", +__LINE__, 0x00000033, "51", "%-#d", +__LINE__, 0x002d0219, "2949657", "%ld", +__LINE__, 0xfffffffd, "FFFFFFFD", "%2.4X", +__LINE__, 0x00000f20, "+3872", "%+ld", +__LINE__, -0x0000047, "-071", "%4.3ld", +__LINE__, 0x00000010, " 16", "%6d", +__LINE__, 0x00000000, "0", "%0d", +__LINE__, 0xffffff57, "FFFFFF57", "%X", +__LINE__, -0x0000700, "-1792", "%-#d", +__LINE__, -0x0000064, "-100", "%-ld", +__LINE__, 0xff26d49a, "FF26D49A", "%-0X", +__LINE__, -0x0000006, "-6", "%.1ld", +__LINE__, 0x1391edc5, "1391edc5", "%.1x", +__LINE__, 0x0000014a, "330", "%-#ld", +__LINE__, 0x07ecd1e1, "7ecd1e1", "%6x", +__LINE__, -0xa2b8898, "-170625176", "%3.d", +__LINE__, 0x00035287, "0x35287", "%#.0x", +__LINE__, 0x00000000, "00000", "%0.5X", +__LINE__, -0x0000153, "-339", "%d", +__LINE__, 0x0000ad6e, " 44398", "% 0.d", +__LINE__, 0x00000001, "1", "%-X", +__LINE__, -0x000000d, "-13 ", "%-6.2d", +__LINE__, -0x01bff8a, "-1834890", "%d", +__LINE__, 0x000a0fa8, "+659368", "%+ld", +__LINE__, 0xac044dc0, "ac044dc0", "%.0x", +__LINE__, 0x0003a729, "239401", "%ld", +__LINE__, -0x00004f0, "-1264", "%+ld", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0x00000012, "12", "% x", +__LINE__, 0xffff770b, "ffff770b", "%7.1x", +__LINE__, 0xd7458572, "d7458572", "%x", +__LINE__, 0x01f1b4f9, "1f1b4f9", "% 0x", +__LINE__, 0xfffb2198, "0XFFFB2198", "% #1.X", +__LINE__, 0x00ef6189, " 15688073", "% ld", +__LINE__, -0x3f0ae63, "-66104931", "% #d", +__LINE__, -0x0006075, "-24693", "%ld", +__LINE__, 0x000000a1, "161", "%d", +__LINE__, 0xfffffffc, "fffffffc", "%3.2x", +__LINE__, 0xff6b4125, "FF6B4125", "%+5.X", +__LINE__, 0x00000001, " 1", "%6.d", +__LINE__, -0x0000001, "-1", "%+0d", +__LINE__, -0x000096c, "-2412", "%0.4d", +__LINE__, 0x00039c6f, "236655", "%.0d", +__LINE__, 0x3625286c, "908404844", "%.1d", +__LINE__, 0xfffffffa, "fffffffa", "%x", +__LINE__, 0x00000000, "0", "%X", +__LINE__, 0x00c34353, "12796755", "%#.4d", +__LINE__, 0x000002df, "735", "%ld", +__LINE__, 0xffff38fa, "FFFF38FA", "%5.1X", +__LINE__, -0x000002a, "-42", "%0.d", +__LINE__, 0x0000077e, "1918", "%ld", +__LINE__, 0x000001f7, "503", "%ld", +__LINE__, 0x00000004, "4", "%ld", +__LINE__, 0x0021fb02, "2226946", "%d", +__LINE__, 0x007c858d, "8160653", "%-0d", +__LINE__, -0x0000109, "-265", "%.0d", +__LINE__, 0xfffffffa, "fffffffa", "% x", +__LINE__, 0x0097932d, "97932d", "%+x", +__LINE__, 0xfffbbd03, "fffbbd03", "%-.5x", +__LINE__, -0x0000005, "-5", "%0d", +__LINE__, 0x03ee3a95, "65944213", "%ld", +__LINE__, -0x0000002, " -00002", "%7.5d", +__LINE__, 0xea1a4e54, "EA1A4E54", "%X", +__LINE__, -0x000a9d6, "-43478", "%+d", +__LINE__, -0x0fd8d65, "-16616805", "%5ld", +__LINE__, 0x00000001, "1", "%-d", +__LINE__, 0x00000072, "72", "%2.X", +__LINE__, 0xffffff94, "FFFFFF94", "%X", +__LINE__, 0x00000d2a, "D2A", "%+X", +__LINE__, 0xffff614f, "ffff614f", "%x", +__LINE__, -0x0000018, "-24", "%ld", +__LINE__, 0x0000003b, "059", "%2.3d", +__LINE__, 0x0000001a, "1A", "%0X", +__LINE__, -0x0000109, "-265", "%02ld", +__LINE__, 0x00000f9d, "3997", "%#1d", +__LINE__, 0x0000001b, "1b", "%x", +__LINE__, 0xffffff07, "ffffff07", "%x", +__LINE__, 0xfff1a425, "0xfff1a425", "%#x", +__LINE__, 0x00000005, "5", "%-1d", +__LINE__, -0x53a6efd, "-87715581", "%ld", +__LINE__, 0x042f37db, "42F37DB", "%6.X", +__LINE__, 0x00053bd5, "+342997", "%+5ld", +__LINE__, 0xffffffff, "ffffffff", "% x", +__LINE__, 0xffffffef, "FFFFFFEF", "%6.X", +__LINE__, -0x10ec29a, "-17744538", "%+2.d", +__LINE__, 0x01dcc901, "1dcc901", "%x", +__LINE__, 0x0007dc68, "515176", "%-3.d", +__LINE__, -0x0000062, "-0098", "%#2.4d", +__LINE__, 0x00000000, " ", "%3.0X", +__LINE__, -0x00000de, "-222", "%ld", +__LINE__, 0x000c1fb8, "C1FB8", "%0X", +__LINE__, 0x0005bf58, "5BF58", "%X", +__LINE__, -0x000dd1b, "-56603", "%-03.1d", +__LINE__, 0x00000b14, "B14", "%+3.X", +__LINE__, 0x00000799, "799", "%-x", +__LINE__, 0xfffffffa, "fffffffa", "%x", +__LINE__, 0x00000003, "0x00003", "% #7.5x", +__LINE__, -0x002b9f1, "-178673", "%+d", +__LINE__, -0x001b817, "-112663", "%0d", +__LINE__, 0xf6f98533, "f6f98533", "%.1x", +__LINE__, 0x00338ffc, "3379196", "%d", +__LINE__, 0x0409e9b5, "0X409E9B5", "%#X", +__LINE__, 0x00b8e98e, " 12118414", "% 0d", +__LINE__, -0x002a8f6, "-174326", "%ld", +__LINE__, 0x13bb9722, "331061026", "%0d", +__LINE__, 0x00063c71, "63c71", "%x", +__LINE__, 0xfffffe37, "FFFFFE37", "%.1X", +__LINE__, 0xffff7b3e, "ffff7b3e", "%+.1x", +__LINE__, 0x005eeab1, "5eeab1", "%+x", +__LINE__, 0xffc69e99, "ffc69e99", "%x", +__LINE__, -0x000005c, " -92", "%5ld", +__LINE__, 0x07d8fa8a, "7d8fa8a", "%x", +__LINE__, 0x00030e0a, "200202", "%-4.1d", +__LINE__, 0x00001dc1, "1DC1", "%.0X", +__LINE__, 0x00000008, "8", "%0ld", +__LINE__, -0x01b5397, "-1790871", "%3.d", +__LINE__, 0x27fbb4b5, "27fbb4b5", "%x", +__LINE__, -0xe3fdcfc, "-239066364", "%4ld", +__LINE__, 0x0008bcb1, "8bcb1", "%0x", +__LINE__, 0xffff039e, "ffff039e", "%.6x", +__LINE__, 0x000d0bd4, "d0bd4", "%-x", +__LINE__, 0x00000000, "+0", "%+d", +__LINE__, -0x2a49ea4, "-44342948", "%1d", +__LINE__, -0x0000055, "-85", "%0d", +__LINE__, -0x0000a05, "-2565", "%3.3ld", +__LINE__, -0x000000b, "-11 ", "%-4d", +__LINE__, 0xfff30444, "FFF30444", "%7.X", +__LINE__, 0x0000003f, "63", "%-0d", +__LINE__, 0x00046779, "46779", "%X", +__LINE__, 0x000028d7, " 0X28D7", "%#7.X", +__LINE__, 0x00000019, " 19", "%5x", +__LINE__, 0x0032291d, "3287325", "%2.ld", +__LINE__, 0x00057afa, "57AFA", "%X", +__LINE__, 0xfffe8c64, "fffe8c64", "%3.4x", +__LINE__, -0x624110d6, "-1648431318", "%+6d", +__LINE__, 0x0000001a, " 26", "% 5.d", +__LINE__, 0xfffffffd, "FFFFFFFD", "%6.X", +__LINE__, 0x00199490, "1676432", "%-1d", +__LINE__, -0xfff8265, "-268403301", "%-0ld", +__LINE__, 0x0000000e, "e", "%-x", +__LINE__, 0x00c38aec, "c38aec", "%x", +__LINE__, -0x00658f4, "-415988", "%#ld", +__LINE__, 0x0066ac4e, "6728782", "%0d", +__LINE__, 0xc4a808d5, "c4a808d5", "%x", +__LINE__, 0x00000000, " 0", "%6.1x", +__LINE__, 0x00066d24, "66d24", "%x", +__LINE__, 0x00002117, "2117", "%X", +__LINE__, 0xfe06fdf4, "FE06FDF4", "%0X", +__LINE__, 0xfffffff9, "fffffff9", "%x", +__LINE__, 0x1c6bb795, "+476821397", "%+d", +__LINE__, 0xfffffba4, "FFFFFBA4", "%X", +__LINE__, 0xfffd7d44, "fffd7d44", "%0x", +__LINE__, 0x0019dd17, "1694999", "%d", +__LINE__, 0x6475851e, "0x6475851e", "% #7.x", +__LINE__, -0x00330d5, "-209109", "%0ld", +__LINE__, 0x009f53f7, "09F53F7", "%+6.7X", +__LINE__, -0x00172f9, " -94969", "%7.5ld", +__LINE__, 0xffffffdc, "FFFFFFDC", "%X", +__LINE__, -0x013bdec, "-1293804", "%+#2ld", +__LINE__, 0xfff845c0, "fff845c0", "%+7.x", +__LINE__, -0x0fbe712, "-16508690", "%.7d", +__LINE__, 0xffffe13f, "ffffe13f", "%x", +__LINE__, 0xbbc19951, "BBC19951", "%-4X", +__LINE__, -0x28d6d1b, "-42822939", "%#d", +__LINE__, -0x93cda6b, "-154983019", "%-d", +__LINE__, 0xffc93342, "FFC93342", "%7.X", +__LINE__, 0x072ac8b3, " 120244403", "% ld", +__LINE__, 0xfff8d17b, "FFF8D17B", "% X", +__LINE__, 0x00000da5, "DA5", "%0.X", +__LINE__, 0x055ad3ac, "0x55ad3ac", "%#1x", +__LINE__, 0x00000e5a, " 3674", "% .4ld", +__LINE__, 0xffffff79, "FFFFFF79", "%+X", +__LINE__, 0xffffe167, "ffffe167", "%+5x", +__LINE__, 0x0000fa50, "0064080", "%.7ld", +__LINE__, 0x00000001, "1", "%-d", +__LINE__, 0xfffffffe, "fffffffe", "%x", +__LINE__, 0x000009ac, " 2476", "% #2.ld", +__LINE__, 0x00000e78, "0003704", "%.7ld", +__LINE__, -0x000dfc3, "-57283", "%6.d", +__LINE__, 0x00000ee0, "EE0", "%0X", +__LINE__, -0x293703b3, "-691471283", "%ld", +__LINE__, 0x000073e8, " 73e8", "%6x", +__LINE__, 0xffffdffd, "ffffdffd", "%5.5x", +__LINE__, 0x00000004, "4", "%+00.x", +__LINE__, 0x00000008, "0X8", "%#X", +__LINE__, 0x0003044c, "3044c", "%0x", +__LINE__, 0xffc2095e, "FFC2095E", "%0X", +__LINE__, 0x00000aac, "0002732", "%-.7ld", +__LINE__, 0xffffff79, "FFFFFF79", "%+1.X", +__LINE__, 0x53a0f94a, " 1403058506", "% 2.4ld", +__LINE__, 0x000e928d, "e928d", "%x", +__LINE__, 0x0024127a, "2364026", "%5.d", +__LINE__, 0x000f7c1c, " 1014812", "% 2.d", +__LINE__, -0x000003d, "-61 ", "%-#4ld", +__LINE__, -0x0000122, "-290", "%+ld", +__LINE__, 0x00000006, "+6", "%+0d", +__LINE__, 0x00000129, " 000129", "%7.6X", +__LINE__, 0x15d873e5, " 366506981", "% 5.7d", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0x038d6110, "+59597072", "%+d", +__LINE__, 0x0f46ccc3, "256298179", "%-1.4d", +__LINE__, 0xfe434d21, "fe434d21", "%x", +__LINE__, -0x179797d7, "-395810775", "%d", +__LINE__, 0xe35807bf, "e35807bf", "%x", +__LINE__, 0x00000003, " +3", "%+7d", +__LINE__, 0x017e699e, "25061790", "%#ld", +__LINE__, -0x0000029, "-41", "%d", +__LINE__, 0xffffff11, "ffffff11", "%1.x", +__LINE__, -0x0001bf6, "-7158", "%+0ld", +__LINE__, 0xffffff4b, "FFFFFF4B", "%4X", +__LINE__, -0x0000040, "-64", "%ld", +__LINE__, 0x000034d6, "+13526", "%+ld", +__LINE__, 0xffffffa7, "ffffffa7", "%x", +__LINE__, 0xfffffe8e, "fffffe8e", "%+.3x", +__LINE__, 0x00000000, "0", "%0.1d", +__LINE__, -0x007cdf1, "-511473", "%ld", +__LINE__, 0xfffffeef, "FFFFFEEF", "%-X", +__LINE__, 0x00002d91, "2d91", "%x", +__LINE__, -0x000025b, "-603", "%#ld", +__LINE__, -0x000001b, "-27", "%-ld", +__LINE__, 0x042b6752, "42B6752", "%+X", +__LINE__, -0x75afb0a6, "-1974448294", "% ld", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x00000542, " 1346", "%6d", +__LINE__, -0x0000010, "-16", "%+0d", +__LINE__, 0xfffed8f7, "FFFED8F7", "%5.X", +__LINE__, 0x0541852e, "541852e", "% 2.x", +__LINE__, 0xff22aec3, "ff22aec3", "% .1x", +__LINE__, 0x5e34b745, "1580513093", "%ld", +__LINE__, 0xfffffff3, "fffffff3", "%x", +__LINE__, 0x0eda7b86, "+249199494", "%+.3d", +__LINE__, 0xffffe40f, "ffffe40f", "%+x", +__LINE__, -0x0003484, "-13444", "%-1.5ld", +__LINE__, 0x0000334b, " 13131", "%6.ld", +__LINE__, -0x0000149, "-329", "%ld", +__LINE__, 0x00000001, " 001", "% 5.3x", +__LINE__, 0xffeaa035, "ffeaa035", "%+3.5x", +__LINE__, 0x00211dff, "2170367", "%ld", +__LINE__, 0x007e91f4, "7e91f4", "%x", +__LINE__, 0xfffffffc, "0xfffffffc", "%+#5x", +__LINE__, 0xfffffffc, "FFFFFFFC", "%6.X", +__LINE__, 0x0156a9b5, "156a9b5", "%x", +__LINE__, 0xfffffe58, "fffffe58", "%+x", +__LINE__, 0xffff8c66, "FFFF8C66", "%.0X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x00000005, " 5", "%7.d", +__LINE__, -0x0000002, "-2", "%ld", +__LINE__, 0x000076b9, " 30393", "% ld", +__LINE__, 0x00003824, "3824", "%4X", +__LINE__, 0x00000cdf, " CDF", "% 7X", +__LINE__, 0x017c9e8f, "17C9E8F", "%-X", +__LINE__, -0x20f582d, "-34560045", "%-.5d", +__LINE__, 0x0000732e, " 29486", "% 7.ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%+0X", +__LINE__, 0xf379a4a2, "F379A4A2", "% .7X", +__LINE__, -0x0000028, "-40", "%-d", +__LINE__, 0xe73cf79e, "e73cf79e", "%x", +__LINE__, 0x00000002, " 2", "%7ld", +__LINE__, -0x00029b1, "-10673", "%-#1.ld", +__LINE__, -0x0002a58, "-10840", "%3.d", +__LINE__, 0x00000002, "2", "%-X", +__LINE__, 0xfffffffc, "FFFFFFFC", "%X", +__LINE__, -0x000003a, " -58", "%5ld", +__LINE__, 0x0245ef3b, "245ef3b", "%.3x", +__LINE__, 0x00026cca, "158922", "%-06.3ld", +__LINE__, 0x01016fd3, "16871379", "%-d", +__LINE__, 0x000016fc, "5884", "%0ld", +__LINE__, -0x00007fb, " -2043", "%7.3d", +__LINE__, 0xfff73d3c, "fff73d3c", "%0x", +__LINE__, -0x0000110, "-272", "% 04.3d", +__LINE__, 0x0000000e, " 014", "% 04ld", +__LINE__, -0x0000039, "-57", "%.0ld", +__LINE__, 0x00000c95, "c95", "%0x", +__LINE__, 0xffff3b2e, "ffff3b2e", "%x", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, 0x00000015, "21", "%.1d", +__LINE__, 0x0000000c, "+12", "%+ld", +__LINE__, 0x00000000, "0", "%+X", +__LINE__, 0xfffc9a14, "fffc9a14", "%-.5x", +__LINE__, 0x0000003c, "60", "%.2ld", +__LINE__, -0x0000023, " -35", "%6.d", +__LINE__, 0x00000740, "1856", "%ld", +__LINE__, 0x00000160, "160", "% 3.X", +__LINE__, 0x00000006, " 6", "%5.X", +__LINE__, -0x0000677, "-1655", "%.3ld", +__LINE__, 0x12709c7e, "12709C7E", "%.7X", +__LINE__, 0x0000090f, "+2319", "%+#d", +__LINE__, 0xffffffe0, "0xffffffe0", "%#4.1x", +__LINE__, 0x00132ce0, "1256672", "%ld", +__LINE__, 0x00000059, "59", "%+X", +__LINE__, -0x0000017, "-23", "%0d", +__LINE__, -0x01fade6, "-2076134", "%-4.3ld", +__LINE__, 0x000df3fa, "914426", "%.5ld", +__LINE__, 0xfffffd0f, "fffffd0f", "%7x", +__LINE__, -0x000c212, "-49682", "%0.1ld", +__LINE__, 0xffff8bcb, "FFFF8BCB", "%.3X", +__LINE__, 0x0000000a, "a", "% x", +__LINE__, 0x00000021, "21", "%x", +__LINE__, -0x0000040, "-64", "% 1ld", +__LINE__, 0x00000009, " 9", "%6.ld", +__LINE__, -0x0000d67, "-3431", "% 5.3d", +__LINE__, 0x03a85f1b, "61366043", "%ld", +__LINE__, 0x00000035, "000053", "%0.6d", +__LINE__, 0xfffda5cb, "fffda5cb", "%+x", +__LINE__, 0xffffff78, "FFFFFF78", "%-7.0X", +__LINE__, 0xfffffd6d, "fffffd6d", "%7.x", +__LINE__, 0xfffffc08, "fffffc08", "%7.3x", +__LINE__, 0x00003335, " 13109", "% #d", +__LINE__, -0x0000002, " -2", "%5.d", +__LINE__, -0x13767a48, "-326531656", "%+ld", +__LINE__, 0x00000be5, "3045", "%4.0ld", +__LINE__, 0xfffdb28c, "FFFDB28C", "%X", +__LINE__, 0x00127118, "1208600", "%ld", +__LINE__, 0x00000086, " 134", "% ld", +__LINE__, 0x0002214c, "2214c", "%+x", +__LINE__, 0x0000a0c2, " a0c2", "%5.0x", +__LINE__, -0x000007c, "-124", "%ld", +__LINE__, 0x0000012a, "00298", "%3.5d", +__LINE__, 0xfd4f1257, "FD4F1257", "%+2.X", +__LINE__, 0xffffd8aa, "ffffd8aa", "%5x", +__LINE__, -0x00000a7, "-167", "%+ld", +__LINE__, -0x0009c69, "-40041", "%0.0ld", +__LINE__, 0x02230418, "35849240", "%-0.6ld", +__LINE__, 0x00000000, " 0", "%6x", +__LINE__, 0xfffff184, "fffff184", "%02.5x", +__LINE__, -0x0ae967b, "-11441787", "%d", +__LINE__, 0x0015de3a, "1433146", "%-5.3d", +__LINE__, -0x0071e93, "-466579", "%1.ld", +__LINE__, 0xfffff8bd, "fffff8bd", "%+x", +__LINE__, -0x00000e4, "-228", "%+ld", +__LINE__, 0x000001d8, " 472", "% .3ld", +__LINE__, 0x00315faa, "315faa", "%-0x", +__LINE__, 0x00000e59, "e59", "%0x", +__LINE__, -0x0000005, "-5", "%ld", +__LINE__, 0x000018ec, "6380", "%ld", +__LINE__, 0xfffffff9, "fffffff9", "%5.2x", +__LINE__, -0xe7cfd39, "-243072313", "%-d", +__LINE__, 0x0002c30b, "2C30B", "%1.2X", +__LINE__, 0x0000007a, "7A", "%X", +__LINE__, 0xf604ecb2, "F604ECB2", "%2X", +__LINE__, -0x05f602c, "-6250540", "%d", +__LINE__, 0xffff9c86, "ffff9c86", "%2.x", +__LINE__, -0x00d7f55, "-884565", "%#d", +__LINE__, 0xd2a37824, "D2A37824", "%4X", +__LINE__, 0x00000000, "", "%-.0x", +__LINE__, 0x000d4b51, "0d4b51", "%3.6x", +__LINE__, 0x000ecd97, "ecd97", "% x", +__LINE__, -0x0000018, "-024", "%+04ld", +__LINE__, -0x009f292, "-651922", "%ld", +__LINE__, -0x0002da9, "-11689", "%-0ld", +__LINE__, -0x000a218, "-41496", "%4.5d", +__LINE__, 0xffff85ac, "FFFF85AC", "% 04.X", +__LINE__, -0x0d9ffbe, "-14286782", "%0d", +__LINE__, 0xfb18cc8e, "fb18cc8e", "%x", +__LINE__, 0xffffe5d3, "FFFFE5D3", "%-X", +__LINE__, 0x00000000, "0", "%x", +__LINE__, -0x0000006, "-6", "% d", +__LINE__, 0x0002fc62, "2fc62", "% 03.x", +__LINE__, 0x00000000, "00", "%.2d", +__LINE__, -0x00000fd, " -253", "%6ld", +__LINE__, -0x000000b, "-11", "%d", +__LINE__, -0x00042a3, "-17059", "% 6d", +__LINE__, 0x00000002, "2", "% X", +__LINE__, -0x61ead93e, "-1642780990", "%-0d", +__LINE__, 0xf2e61f6d, "f2e61f6d", "%-.4x", +__LINE__, 0xffd31b93, "ffd31b93", "%x", +__LINE__, -0x0000008, "-8", "%ld", +__LINE__, 0xffffffff, "ffffffff", "%00x", +__LINE__, 0x000000fb, "+000251", "%+2.6d", +__LINE__, 0x00000015, " 15", "%4.X", +__LINE__, 0x06ec6d96, "6EC6D96", "%+2.X", +__LINE__, 0xffff1df7, "0xffff1df7", "% #1x", +__LINE__, -0x000004b, "-75", "%-ld", +__LINE__, 0x00000008, "8", "%#.0d", +__LINE__, 0x00001355, "4949", "%3.4ld", +__LINE__, -0x00000f7, "-247", "%d", +__LINE__, 0x0000001f, "31", "%.2ld", +__LINE__, 0x0000d556, "D556", "%-X", +__LINE__, 0xffffd5a5, "ffffd5a5", "% x", +__LINE__, -0x0000e34, "-3636", "%#d", +__LINE__, -0x0000007, "-7", "%d", +__LINE__, 0x01ba10a4, "1ba10a4", "%x", +__LINE__, 0xfffff759, "FFFFF759", "% X", +__LINE__, -0x80d0adb, "-135072475", "%d", +__LINE__, 0x0002bf61, "2bf61", "%x", +__LINE__, 0xffff008b, "FFFF008B", "%-7X", +__LINE__, 0x00000e72, "E72", "%X", +__LINE__, -0x00000ea, "-234", "%0ld", +__LINE__, -0x0007b9d, "-0031645", "%0.7ld", +__LINE__, 0x0001baaa, "0X1BAAA", "%#4X", +__LINE__, 0x0000a57f, " a57f", "%6.x", +__LINE__, -0x21a73726, "-564606758", "%ld", +__LINE__, 0x06f45c9f, "0x6f45c9f", "%#.3x", +__LINE__, 0x00018e5d, "101981", "%-d", +__LINE__, 0x0001e69a, "124570", "%-d", +__LINE__, -0x0000d26, " -3366", "% 07.d", +__LINE__, 0x00000000, "+", "%+0.ld", +__LINE__, 0x00003916, "14614", "%ld", +__LINE__, 0xfffffd8f, "fffffd8f", "%-3.x", +__LINE__, 0x00000011, "11", "%x", +__LINE__, 0x000000e7, "E7", "%X", +__LINE__, 0xfdf9d89b, "FDF9D89B", "%X", +__LINE__, 0x00000a7c, "a7c", "%x", +__LINE__, 0x0000003f, "00003F", "%.6X", +__LINE__, 0xffffe729, "FFFFE729", "%X", +__LINE__, 0xfffffffe, "fffffffe", "% .6x", +__LINE__, -0x0000a4b, "-2635", "%+d", +__LINE__, 0xffffff50, "ffffff50", "%0.7x", +__LINE__, 0xfaf57e8b, "faf57e8b", "% 4.x", +__LINE__, -0x0000056, "-86", "%ld", +__LINE__, 0x08ed2a4d, "8ed2a4d", "%4x", +__LINE__, 0xff8d9081, "FF8D9081", "%+0.X", +__LINE__, 0x002730a1, "2568353", "%4d", +__LINE__, 0xffff9564, "ffff9564", "%x", +__LINE__, -0x0000006, " -6", "%4ld", +__LINE__, -0x19890310, "-428409616", "%0ld", +__LINE__, 0xd2ce636c, "d2ce636c", "%+x", +__LINE__, -0x00001fe, "-510", "%d", +__LINE__, 0x00000006, "0000006", "%+0.7x", +__LINE__, 0xffffffc2, "0XFFFFFFC2", "%-#.5X", +__LINE__, -0x00000fd, "-253", "%+d", +__LINE__, 0x000216aa, "0x216aa", "%#x", +__LINE__, 0xffe36c66, "ffe36c66", "%x", +__LINE__, 0x00000002, "2", "%x", +__LINE__, -0x0000025, "-37", "% d", +__LINE__, 0x0000007e, "126", "%d", +__LINE__, 0x0003c1f9, "+246265", "%+ld", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, -0x00539e7, "-342503", "%06.ld", +__LINE__, 0x00000d42, " 3394", "%#6.ld", +__LINE__, 0xf73b7c4e, "F73B7C4E", "%X", +__LINE__, 0x00000022, "22", "%.1x", +__LINE__, 0xffffa883, "FFFFA883", "%X", +__LINE__, 0x016ec247, "16ec247", "%x", +__LINE__, 0x00000019, "19", "%+X", +__LINE__, 0x0000665a, "665A", "% 2.X", +__LINE__, 0xfffffffc, "FFFFFFFC", "%-5.X", +__LINE__, 0x008e3fbc, "8E3FBC", "%X", +__LINE__, 0xfffffffa, "FFFFFFFA", "%X", +__LINE__, 0x1b806597, "461399447", "%.2d", +__LINE__, 0x00000366, "0000870", "%#1.7ld", +__LINE__, 0x0001d92e, "1d92e", "%x", +__LINE__, 0x000104ce, "104CE", "%-X", +__LINE__, 0xfffffe4c, "fffffe4c", "%x", +__LINE__, 0x000000e9, "E9", "%X", +__LINE__, 0x000a855c, " 689500", "% d", +__LINE__, 0x00000075, "75", "% X", +__LINE__, -0x0000026, "-38", "%ld", +__LINE__, 0xfffff169, "fffff169", "%-04.2x", +__LINE__, 0xffffff6f, "ffffff6f", "%x", +__LINE__, 0x00000003, "0x3", "%#x", +__LINE__, 0x00623bab, "6437803", "%.0d", +__LINE__, -0x2260224c, "-576725580", "%ld", +__LINE__, 0xe7e7a998, "E7E7A998", "%.1X", +__LINE__, 0x00000005, "5", "%X", +__LINE__, 0x0000b560, "0xb560", "%#x", +__LINE__, 0xfe11854d, "fe11854d", "%-.5x", +__LINE__, 0x00190014, "1638420", "%ld", +__LINE__, 0x0001d22a, "0X1D22A", "%-#X", +__LINE__, 0x00000c16, "c16", "%2x", +__LINE__, 0x00000d1a, "3354", "%#d", +__LINE__, 0x000165f6, "91638", "%d", +__LINE__, 0xfffff557, "0XFFFFF557", "%#X", +__LINE__, 0x00000588, " 588", "%07.X", +__LINE__, 0xf4a72708, "f4a72708", "%x", +__LINE__, 0xfff1cba9, "0xfff1cba9", "% #2.5x", +__LINE__, 0x000333a4, "209828", "%d", +__LINE__, 0x0000179b, "179B", "% 2.X", +__LINE__, 0x00000460, "1120", "%0ld", +__LINE__, 0xffffff89, "FFFFFF89", "%X", +__LINE__, -0x0000012, "-18", "%ld", +__LINE__, 0x00004fe0, "20448", "%0.d", +__LINE__, 0x00532e77, "532e77", "%00.x", +__LINE__, 0xf7b92efe, "f7b92efe", "%0x", +__LINE__, -0x0000243, "-579", "%+1.d", +__LINE__, 0x34894bb7, "+881413047", "%+d", +__LINE__, 0xfffaa189, "FFFAA189", "% 6X", +__LINE__, -0x0000579, "-1401", "%+ld", +__LINE__, 0x005acb12, "5acb12", "%5.0x", +__LINE__, 0xffff890a, "FFFF890A", "%X", +__LINE__, 0x010dff2f, "10DFF2F", "%.7X", +__LINE__, 0x00005a7f, "23167", "%#ld", +__LINE__, 0x000005e3, "1507", "%#3d", +__LINE__, -0xa815bcb, "-176249803", "%d", +__LINE__, 0xffffffff, "ffffffff", "%+x", +__LINE__, 0xfffe0ff7, "fffe0ff7", "%3x", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#2.1X", +__LINE__, -0x1cc5ea52, "-482732626", "%6.d", +__LINE__, 0x000425ed, "+0271853", "%+.7d", +__LINE__, 0x00000001, "1", "%+x", +__LINE__, -0x48f2a72, "-76491378", "%7.0d", +__LINE__, 0xfffffff7, "FFFFFFF7", "% 0X", +__LINE__, 0xfd8ffc0a, "fd8ffc0a", "%.1x", +__LINE__, 0x0001f56d, " 1F56D", "%+7.2X", +__LINE__, 0x000000db, " DB", "%6.X", +__LINE__, 0xffffffc2, "ffffffc2", "%x", +__LINE__, 0x00000001, "001", "%03ld", +__LINE__, 0xffd89f58, "ffd89f58", "% 0.x", +__LINE__, 0xfe1a72fc, "fe1a72fc", "%x", +__LINE__, 0xfffff9b6, "FFFFF9B6", "%X", +__LINE__, 0x00243633, "243633", "%X", +__LINE__, 0x00821bc7, "+8526791", "%+#0ld", +__LINE__, 0xfe63f348, "0XFE63F348", "%#3X", +__LINE__, 0xff729f19, "ff729f19", "%4x", +__LINE__, 0xffff570f, "FFFF570F", "%+X", +__LINE__, 0x00a57a42, "10844738", "%6.3d", +__LINE__, 0xfe4a3ed0, "FE4A3ED0", "%6.X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x000001bb, "01bb", "% .4x", +__LINE__, 0x02b4a1e9, "2b4a1e9", "%-7.x", +__LINE__, 0x31750683, "31750683", "%x", +__LINE__, 0x00001cd7, "7383", "%#ld", +__LINE__, 0x0000079d, "1949", "%d", +__LINE__, 0xffb8ff3b, "FFB8FF3B", "%X", +__LINE__, 0x00a768b6, "0A768B6", "%-6.7X", +__LINE__, 0x1c665b48, "0X1C665B48", "% #X", +__LINE__, -0x000037d, "-000893", "%3.6d", +__LINE__, 0x29890443, "29890443", "%+0x", +__LINE__, 0x000000e5, "e5 ", "%-4x", +__LINE__, 0xfff2b5fa, "FFF2B5FA", "%X", +__LINE__, -0x5d32c2b, "-97725483", "%05ld", +__LINE__, -0x00016c5, " -05829", "%+#7.5ld", +__LINE__, 0x00000644, "644", "%X", +__LINE__, -0x018c027, "-1622055", "%+.1d", +__LINE__, 0x0000013c, "0x13c", "%#x", +__LINE__, 0x00000009, "+9", "%+#ld", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, -0x018eb19, "-1633049", "%4.3ld", +__LINE__, 0xfffff429, "FFFFF429", "% X", +__LINE__, 0x0032de67, "32DE67", "%X", +__LINE__, 0x0016bdfa, " 1490426", "% .2ld", +__LINE__, 0x00000065, "65", "%+.0X", +__LINE__, 0x00000072, " 72", "%+4.2X", +__LINE__, 0x00075119, "75119", "%2x", +__LINE__, 0x000000b8, "b8", "%x", +__LINE__, 0x000000d0, "d0", "%x", +__LINE__, 0x000000b9, "b9", "%x", +__LINE__, 0x003fda9d, " 4184733", "% #3.d", +__LINE__, 0x00029a24, "170532", "%4.d", +__LINE__, -0x132a337d, "-321532797", "% ld", +__LINE__, 0x0000047a, "0X47A", "%-#X", +__LINE__, 0x00000000, "0", "%-ld", +__LINE__, -0x0d9750b, "-14251275", "% ld", +__LINE__, 0x00029d6c, "29d6c", "%x", +__LINE__, 0xfb060cc0, "fb060cc0", "%x", +__LINE__, 0xffffd524, "0XFFFFD524", "%#X", +__LINE__, 0xffffff30, "ffffff30", "%-5x", +__LINE__, 0x00001650, "0005712", "%#0.7d", +__LINE__, 0x0000b702, "0B702", "%03.5X", +__LINE__, 0x000003c1, "3c1", "% .1x", +__LINE__, -0x0290412, "-2688018", "%d", +__LINE__, -0x00008bf, "-2239", "%#d", +__LINE__, -0x0000001, "-1", "%d", +__LINE__, 0x0001d750, "1D750", "%-X", +__LINE__, 0x006eee92, "6EEE92", "%-X", +__LINE__, 0xff812b02, "ff812b02", "%0x", +__LINE__, 0xfffffeac, "FFFFFEAC", "%+0X", +__LINE__, 0x000003a5, "3a5", "%x", +__LINE__, -0x15270cee, "-354880750", "%2.ld", +__LINE__, 0x06b686d2, "6b686d2", "%0x", +__LINE__, 0xffe9cdcc, "ffe9cdcc", "%x", +__LINE__, 0x0ecb168e, "ecb168e", "%x", +__LINE__, 0x00000051, "51", "%-X", +__LINE__, -0x0018860, "-100448", "%-0d", +__LINE__, 0x8f08b82b, "0x8f08b82b", "%-#.5x", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, 0x0000000e, "e", "%+01x", +__LINE__, 0x04cf15bc, " 80680380", "% #ld", +__LINE__, 0x50006e8a, "50006e8a", "%x", +__LINE__, 0x0002f669, "194153", "%0d", +__LINE__, 0x000000a6, " 166", "% 5.ld", +__LINE__, -0x04036bb, "-4208315", "%7.5d", +__LINE__, 0x00070dea, "70DEA", "%+X", +__LINE__, 0x00000964, "0x964", "%#x", +__LINE__, 0x0000004d, "0x4d", "% #3.x", +__LINE__, -0x0000001, "-1", "%-0d", +__LINE__, 0x0000043e, "1086", "%ld", +__LINE__, -0x0000001, "-1", "%-d", +__LINE__, 0x00000000, "+0", "%+d", +__LINE__, 0xfffe68d9, "FFFE68D9", "%7.X", +__LINE__, -0x0169199, "-1479065", "%#.5ld", +__LINE__, -0x000003d, "-61", "%ld", +__LINE__, 0x00000001, "+1", "%+.1d", +__LINE__, 0x0001a65d, "1a65d", "%.5x", +__LINE__, 0x00000141, "+000321", "%+#5.6ld", +__LINE__, 0x00000000, " 0", "%4x", +__LINE__, 0x00000408, "1032", "%-2.3ld", +__LINE__, 0xffffffed, "FFFFFFED", "%-X", +__LINE__, 0xfe832351, "FE832351", "% .4X", +__LINE__, 0x003a421b, "3A421B", "%-X", +__LINE__, -0x53ed7f25, "-1408073509", "%ld", +__LINE__, -0x0000003, "-0003", "%-5.4ld", +__LINE__, 0x00000ad0, " 2768", "%7d", +__LINE__, 0xfffaf30b, "FFFAF30B", "%X", +__LINE__, 0x006349d3, " 6506963", "% 6.2ld", +__LINE__, 0x07f0146a, "7f0146a", "%+3.4x", +__LINE__, -0x0000002, " -2", "% 3.ld", +__LINE__, -0x26e94f3, "-40801523", "%-#ld", +__LINE__, -0x0000004, " -004", "%7.3d", +__LINE__, 0xfffe8cc9, "FFFE8CC9", "%0X", +__LINE__, 0x00000018, " 18", "%5.x", +__LINE__, -0x4941de83, "-1229053571", "% 0.5ld", +__LINE__, 0x00000000, " 0", "%6ld", +__LINE__, 0xfffffffe, "0XFFFFFFFE", "%-#X", +__LINE__, -0x0142ae1, "-1321697", "%4.ld", +__LINE__, -0x0319e7f, "-3251839", "%0ld", +__LINE__, 0x000004ff, " 4FF", "%7.2X", +__LINE__, -0x0001c3e, "-7230", "%#.2ld", +__LINE__, 0xffffe522, "ffffe522", "%x", +__LINE__, 0x0001d1cb, "+119243", "%+.3ld", +__LINE__, 0xfad19d52, "FAD19D52", "%+X", +__LINE__, 0x00002a7c, " 10876", "% 0.ld", +__LINE__, 0x00001449, "1449", "%X", +__LINE__, 0x000732b8, "471736", "%d", +__LINE__, -0x211a496e, "-555370862", "%ld", +__LINE__, -0x0000004, "-4", "%1.d", +__LINE__, 0x0295c03d, "43368509", "%5.ld", +__LINE__, 0x01fa5722, "33183522", "%0ld", +__LINE__, 0xfffbff62, "0xfffbff62", "%#x", +__LINE__, 0x000000f5, " 245", "% 2.d", +__LINE__, 0x000000a0, "160", "%-d", +__LINE__, 0x0000000f, "15", "%.2ld", +__LINE__, 0x0bf5f077, "+200667255", "%+ld", +__LINE__, -0x14d3e5a, "-21839450", "%#2.3d", +__LINE__, -0x21cbe656, "-567010902", "%ld", +__LINE__, 0x000002b9, "697", "%ld", +__LINE__, 0xfffff9b0, "FFFFF9B0", "%X", +__LINE__, 0x007fd9c7, "8378823", "%3.4d", +__LINE__, 0x00036d06, "36d06", "%x", +__LINE__, 0xffde8052, "FFDE8052", "%4.6X", +__LINE__, 0x0000000d, "13", "%#d", +__LINE__, 0x68157d93, "68157d93", "%x", +__LINE__, 0x00000005, "5", "%1x", +__LINE__, 0xfffffff4, "FFFFFFF4", "%X", +__LINE__, 0xf5bbf7e9, "f5bbf7e9", "%+.1x", +__LINE__, 0x0be98f98, "BE98F98", "%X", +__LINE__, 0x00000122, "00122", "%.5X", +__LINE__, -0x0000936, "-2358", "%+#3.0ld", +__LINE__, 0xfd230f09, "FD230F09", "%-7X", +__LINE__, 0x00000089, "137", "%ld", +__LINE__, 0x00000078, " 120", "%7d", +__LINE__, -0x68ef2b6b, "-1760504683", "%-ld", +__LINE__, 0xc24480bb, "C24480BB", "%+4X", +__LINE__, 0xfefe36a2, "FEFE36A2", "%0X", +__LINE__, -0x35344ba, "-55788730", "%7.d", +__LINE__, 0xffffffff, "FFFFFFFF", "%+.6X", +__LINE__, -0x0000f40, "-3904", "% ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "%X", +__LINE__, 0x58b37c4b, "58b37c4b", "%2.2x", +__LINE__, 0x000000e2, "226", "%#ld", +__LINE__, 0xfff5ebde, "fff5ebde", "%-7.1x", +__LINE__, 0x0c6ea9be, "208579006", "%-ld", +__LINE__, 0xff708c74, "FF708C74", "% 4.X", +__LINE__, 0x00000000, " 0", "% 3X", +__LINE__, 0x00000004, " 4", "%03.d", +__LINE__, 0x0919be7c, "+152682108", "%+6.d", +__LINE__, 0x00d4fd1e, "13958430", "%0d", +__LINE__, 0xfe77a69e, "fe77a69e", "%-7.x", +__LINE__, 0x284ded44, "676195652", "%-#2ld", +__LINE__, -0x00006e6, "-1766", "% ld", +__LINE__, -0x7dac7ea, "-131778538", "%.0ld", +__LINE__, 0x0003c50f, "247055", "%#d", +__LINE__, 0xfffffffc, "fffffffc", "%-x", +__LINE__, 0xfe0f0d1f, "fe0f0d1f", "% 5.1x", +__LINE__, 0x00000009, "9", "%0ld", +__LINE__, -0x0175cc1, "-1531073", "%-04.d", +__LINE__, 0x000e4da2, " 937378", "% 4.ld", +__LINE__, 0x00000762, "762", "%-0.X", +__LINE__, 0x005211bf, "5211bf", "%-x", +__LINE__, 0xfffffffb, "fffffffb", "%+2.6x", +__LINE__, 0x00008862, "34914", "%ld", +__LINE__, 0xfffc9754, "fffc9754", "%+x", +__LINE__, 0x0000716e, "716E", "%X", +__LINE__, 0x000000a8, "a8", "%x", +__LINE__, 0xffff84f5, "ffff84f5", "%0x", +__LINE__, 0x00005032, "5032", "%x", +__LINE__, 0xffe242b4, "ffe242b4", "%6x", +__LINE__, 0x002df9bd, "3013053", "%ld", +__LINE__, 0xffffe267, "FFFFE267", "%.5X", +__LINE__, 0xffffffc7, "0xffffffc7", "%#x", +__LINE__, -0x1727c38, "-24280120", "%d", +__LINE__, 0x01308072, "1308072", "%x", +__LINE__, -0x5883c7c, "-92814460", "%+ld", +__LINE__, 0x000030ad, "30ad", "%x", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, -0x2090a708, "-546350856", "% d", +__LINE__, 0x0024e6b4, "2418356", "%#ld", +__LINE__, 0x02db71ac, "2DB71AC", "% 6.3X", +__LINE__, 0xfffffffc, "FFFFFFFC", "%2.7X", +__LINE__, -0x000074e, " -1870", "%7.ld", +__LINE__, -0x0011d84, "-73092", "%d", +__LINE__, 0x00160723, "160723", "%1.3x", +__LINE__, 0x00412929, "4270377", "%-d", +__LINE__, -0x0008fc6, "-36806", "% d", +__LINE__, 0x00000002, "2", "%d", +__LINE__, 0x0eb67ffa, "eb67ffa", "%.4x", +__LINE__, 0x05b86c3c, "95972412", "%4.4d", +__LINE__, 0xffffca9c, "FFFFCA9C", "% 4.X", +__LINE__, 0x0007d571, "7d571", "%-0x", +__LINE__, -0x000239b, "-09115", "%5.5d", +__LINE__, -0x0000155, " -341", "%5.3ld", +__LINE__, 0x00000034, "34", "%x", +__LINE__, -0x0000051, "-81", "%.1ld", +__LINE__, 0x309bbbe0, "309bbbe0", "%x", +__LINE__, 0x0075be1e, " 7716382", "% #ld", +__LINE__, 0x000002d5, "2d5", "%x", +__LINE__, 0x006b466d, "6B466D", "%-0X", +__LINE__, 0x01d6c30f, "1D6C30F", "%4.X", +__LINE__, 0x00000003, " 3", "%07.x", +__LINE__, 0xfffcc102, "FFFCC102", "%6.X", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#X", +__LINE__, 0xfffffffe, "fffffffe", "%+x", +__LINE__, 0x00000005, "5", "%ld", +__LINE__, 0xff060284, "ff060284", "%x", +__LINE__, 0x007a3325, "7A3325", "%-X", +__LINE__, 0xf5f595bd, "F5F595BD", "%0X", +__LINE__, 0xfffa3a10, "FFFA3A10", "%0X", +__LINE__, 0x00000000, "0", "%x", +__LINE__, -0x15078f9, "-22051065", "%7d", +__LINE__, -0x0000002, "-000002", "%.6d", +__LINE__, 0x00000036, "54", "%1.1ld", +__LINE__, -0xbbecf6a, "-197054314", "%ld", +__LINE__, 0x0000043d, "43D", "%X", +__LINE__, 0xfffffffa, "0xfffffffa", "% #6.x", +__LINE__, 0x016759f8, "23550456", "%0.ld", +__LINE__, 0x000052d2, "+21202", "%+6.2d", +__LINE__, -0x007d232, "-512562", "%ld", +__LINE__, 0x00240be0, "2362336", "%.1d", +__LINE__, -0x0000001, "-1", "%0d", +__LINE__, 0xfffffffa, "FFFFFFFA", "%X", +__LINE__, -0x0000e88, "-3720", "%ld", +__LINE__, 0xfffffa9b, "FFFFFA9B", "%.5X", +__LINE__, 0x09296eeb, "153710315", "%-1.0d", +__LINE__, 0x001f46fc, "0X1F46FC", "%#X", +__LINE__, 0x00000006, "6", "%X", +__LINE__, 0xffffff87, "0XFFFFFF87", "%+#X", +__LINE__, 0x00000469, "0469", "%04X", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x00000000, "", "%.0ld", +__LINE__, -0x52bc137, "-86753591", "%-#3ld", +__LINE__, -0x2bddb08, "-45996808", "%-3.d", +__LINE__, 0x041367f7, "41367F7", "%+X", +__LINE__, -0x0018eb5, "-102069", "%+ld", +__LINE__, -0x0000537, "-1335", "%#ld", +__LINE__, -0x6f159ff4, "-1863688180", "%+1.d", +__LINE__, 0x00112ac8, "0X112AC8", "%#6.3X", +__LINE__, 0x00000000, " ", "%3.d", +__LINE__, 0x0008afe8, "08afe8", "%+3.6x", +__LINE__, 0x00000015, "21", "%ld", +__LINE__, -0x02b7130, "-2847024", "% #2.4d", +__LINE__, 0xffffffd0, "FFFFFFD0", "%X", +__LINE__, -0x6970fa1, "-110563233", "%+#.4ld", +__LINE__, 0x06387dcc, "0X6387DCC", "%-#X", +__LINE__, 0xffffd506, "ffffd506", "%+6x", +__LINE__, -0x00fe5cd, "-1041869", "%-#7d", +__LINE__, -0x0c35bf6, "-12803062", "%-03d", +__LINE__, -0x0020d89, "-134537", "%#d", +__LINE__, -0x0c7aed3, "-13086419", "%-ld", +__LINE__, -0x000362a, "-13866", "%#.4ld", +__LINE__, -0x02d05f0, "-2950640", "%#ld", +__LINE__, 0x02de1321, "0x2de1321", "%#7.x", +__LINE__, 0xffb56428, "0xffb56428", "%#x", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, 0xf072292d, "F072292D", "%.5X", +__LINE__, -0x0f4b0f2, "-16036082", "%.5ld", +__LINE__, 0x01b81885, "28842117", "%5d", +__LINE__, -0x009cfa6, "-642982", "%d", +__LINE__, 0xfffffffd, "0XFFFFFFFD", "%-#.5X", +__LINE__, 0x0dc97a66, "DC97A66", "%2.X", +__LINE__, 0x000000be, "190", "%.0d", +__LINE__, 0xffffe1c7, "FFFFE1C7", "% X", +__LINE__, 0x01883b9a, "1883b9a", "%3x", +__LINE__, 0xffffdde1, "ffffdde1", "%+x", +__LINE__, 0x2f1b4e32, "+790318642", "%+ld", +__LINE__, 0x000129aa, "129aa", "%x", +__LINE__, -0x00092c2, "-37570", "%d", +__LINE__, 0x00070fbd, "70fbd", "%x", +__LINE__, -0x00000ea, "-234", "%+4ld", +__LINE__, 0xfffffffe, "fffffffe", "%x", +__LINE__, 0x0091c7f7, "91C7F7", "% .3X", +__LINE__, -0x0c14fe2, "-12668898", "%d", +__LINE__, -0x0017c15, "-97301", "%d", +__LINE__, -0x00005d0, "-0001488", "%5.7d", +__LINE__, 0x0114c36e, "18137966", "%0d", +__LINE__, 0xffffffff, "ffffffff", "%+x", +__LINE__, 0x0ac76e78, "180842104", "%d", +__LINE__, 0x001976cd, " 1668813", "% 4.ld", +__LINE__, -0x0642319, "-6562585", "% d", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, -0x035019d, "-3473821", "%.7d", +__LINE__, -0x0000061, "-97", "%#3.d", +__LINE__, 0x0000001f, " 31", "% 6.1ld", +__LINE__, -0x0000024, "-36", "%d", +__LINE__, 0x000b3785, "735109", "%ld", +__LINE__, 0xfffffda9, "fffffda9", "%-x", +__LINE__, 0x00254832, "2443314", "%-ld", +__LINE__, 0xfffffd40, "FFFFFD40", "%0X", +__LINE__, -0x0006105, "-24837", "%+#d", +__LINE__, 0x00000006, "+6", "%+d", +__LINE__, 0xffd40fd8, "ffd40fd8", "%3.x", +__LINE__, -0x000988e, "-39054", "%03d", +__LINE__, 0x0005ad8b, "5AD8B", "%0.0X", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0xfe1f59b7, "fe1f59b7", "%4.x", +__LINE__, -0x0000022, "-34", "%#d", +__LINE__, 0x0018e3e9, "18E3E9", "% X", +__LINE__, 0xffffff25, "FFFFFF25", "%2.X", +__LINE__, -0x00002c6, "-710", "%1.ld", +__LINE__, 0x00009765, "38757", "%5ld", +__LINE__, 0xfe197646, "FE197646", "%-X", +__LINE__, 0x00000001, " 1", "%+5.x", +__LINE__, -0x0000002, "-2", "%#ld", +__LINE__, 0x0072f6be, "72F6BE", "%1X", +__LINE__, -0x000f06d, "-61549", "%-d", +__LINE__, 0x00000001, " 1", "%5X", +__LINE__, 0x328cba28, " 848083496", "% 2.ld", +__LINE__, 0x0000cddc, "cddc", "%.1x", +__LINE__, 0xfffffff9, "fffffff9", "%7x", +__LINE__, 0x00baf511, "BAF511", "%-5.6X", +__LINE__, 0x00000001, " 1", "%4.ld", +__LINE__, 0x0001e4b0, "+124080", "%+ld", +__LINE__, -0x07548f3, "-7686387", "% 6.d", +__LINE__, -0x01b14ea, "-1774826", "% #0d", +__LINE__, -0x000005c, "-92 ", "%-04ld", +__LINE__, -0x00000ae, "-174", "%+.3ld", +__LINE__, 0x0000008c, "0X8C", "%+#X", +__LINE__, 0x14c02360, "14C02360", "%.6X", +__LINE__, 0xfffffff6, "FFFFFFF6", "%X", +__LINE__, 0x009f4ee5, "9f4ee5", "%x", +__LINE__, 0x00000035, "35", "%X", +__LINE__, -0x00000eb, "-235", "%ld", +__LINE__, 0x1552ced8, "1552CED8", "%04X", +__LINE__, 0x0000002a, " 2A", "%5X", +__LINE__, 0xffffffff, "ffffffff", "% x", +__LINE__, -0xdec0db2, "-233573810", "%d", +__LINE__, 0x001e2ef0, "1978096", "%2.d", +__LINE__, 0xffffef24, "ffffef24", "%.5x", +__LINE__, 0xfffe6a6c, "fffe6a6c", "%+x", +__LINE__, -0x0000004, "-4", "% ld", +__LINE__, 0xfe3c6743, "fe3c6743", "%.1x", +__LINE__, 0x0000033d, "829", "%0ld", +__LINE__, -0x00006a0, " -1696", "% 7.ld", +__LINE__, 0xffffffdb, "ffffffdb", "%0.0x", +__LINE__, 0xfffffffc, "FFFFFFFC", "%3.3X", +__LINE__, -0x0000004, "-4", "%#ld", +__LINE__, 0x00b32b56, "B32B56", "%X", +__LINE__, 0xffffffff, "0xffffffff", "%+#x", +__LINE__, 0x01cd1a48, "1cd1a48", "%+7x", +__LINE__, 0xffffffda, "ffffffda", "%x", +__LINE__, 0x1886509e, "1886509E", "% X", +__LINE__, 0x000000eb, "235", "%0d", +__LINE__, 0xfffffff4, "fffffff4", "%0x", +__LINE__, 0x00000547, "547", "% X", +__LINE__, 0x000017e6, "17e6", "%-2.x", +__LINE__, 0x00001dc4, "7620", "%d", +__LINE__, 0xffffffff, "FFFFFFFF", "%3.0X", +__LINE__, 0xffff93fa, "0XFFFF93FA", "%#X", +__LINE__, 0xfffffe1c, "FFFFFE1C", "%-X", +__LINE__, 0x00000000, "", "% .0x", +__LINE__, 0x000000a1, "A1", "%X", +__LINE__, 0xffffffff, "0xffffffff", "%#x", +__LINE__, -0x0001460, "-05216", "%+#.5d", +__LINE__, 0x00000001, "1 ", "%-6.x", +__LINE__, 0xfffd5324, "FFFD5324", "%+2.6X", +__LINE__, 0x00000007, " 07", "%06.2d", +__LINE__, 0x00000003, "3", "%-X", +__LINE__, 0xfffffdb7, "0XFFFFFDB7", "%+#X", +__LINE__, 0xfffff4cc, "fffff4cc", "%0x", +__LINE__, 0x00000000, "0 ", "%-5X", +__LINE__, 0x00758c96, "758C96", "%X", +__LINE__, -0x0000001, "-1", "%-ld", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0x03f03caf, "66075823", "%.2ld", +__LINE__, 0x0000a87c, "a87c", "%1.x", +__LINE__, 0x00000034, "34", "%X", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0x00010167, "10167", "%x", +__LINE__, -0x00007ce, "-1998 ", "%-6ld", +__LINE__, 0x00000001, "1", "%.0d", +__LINE__, 0x00d94cee, "14241006", "%ld", +__LINE__, -0x0000008, "-8", "% d", +__LINE__, -0x71520839, "-1901201465", "%+0d", +__LINE__, 0x0000035a, "35a", "%-x", +__LINE__, 0xfffd2f68, "FFFD2F68", "%-X", +__LINE__, 0x0006ea53, "453203", "%1d", +__LINE__, 0x000000df, "DF", "% 1X", +__LINE__, 0xfffffffe, "fffffffe", "% 7x", +__LINE__, 0x00000156, "156", "% X", +__LINE__, 0x00037ac9, " 228041", "% ld", +__LINE__, 0xffffffde, "FFFFFFDE", "%0.5X", +__LINE__, 0x00000025, "37", "%-0.ld", +__LINE__, -0x4133686, "-68368006", "%2ld", +__LINE__, -0x000003b, "-59", "%.2ld", +__LINE__, 0xfffff910, "fffff910", "% 00.0x", +__LINE__, 0xff9ec802, "FF9EC802", "%2.6X", +__LINE__, 0x00000008, "0X8", "%#1X", +__LINE__, 0xfffffff7, "FFFFFFF7", "%-X", +__LINE__, 0x0029a4da, "2729178", "%04.ld", +__LINE__, 0x007d1588, "8197512", "%#d", +__LINE__, 0x0007e86d, "518253", "%0d", +__LINE__, 0xfffffff9, "fffffff9", "%x", +__LINE__, 0x00000002, "002", "%.3d", +__LINE__, 0x00006ec1, "6EC1", "%2X", +__LINE__, 0x0000300c, "12300", "%-d", +__LINE__, -0x0000002, "-2", "%+ld", +__LINE__, -0x0000002, "-2", "%ld", +__LINE__, -0x00015d5, "-005589", "%#.6ld", +__LINE__, 0x00000041, "65", "%d", +__LINE__, 0x00000229, "0000229", "% 0.7x", +__LINE__, 0xfffffffb, "fffffffb", "%03.x", +__LINE__, 0x00093262, "0602722", "%.7d", +__LINE__, -0x00037b4, "-14260", "%-0ld", +__LINE__, 0xfffffffc, "fffffffc", "%-x", +__LINE__, 0xf24cb3e6, "f24cb3e6", "%1x", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xfffffffb, "FFFFFFFB", "%0X", +__LINE__, 0x00000031, "0000049", "%00.7ld", +__LINE__, 0x00000bb3, "BB3", "%.1X", +__LINE__, -0x0000001, "-0001", "%+#4.4ld", +__LINE__, -0x0000001, "-1", "% d", +__LINE__, 0x00022c0c, "22c0c", "%-x", +__LINE__, 0xffffffd4, "ffffffd4", "%x", +__LINE__, 0x000729c6, "469446", "%3.d", +__LINE__, 0xb180feae, "b180feae", "%3.x", +__LINE__, 0x124fac15, "307211285", "%-0ld", +__LINE__, -0x0000004, "-4", "%ld", +__LINE__, 0x0000006a, "106", "%#d", +__LINE__, 0x0000297f, "297F", "%+3X", +__LINE__, 0x0000000e, "14", "%0ld", +__LINE__, 0x00000027, "27", "%0.1X", +__LINE__, 0xffeb98eb, "ffeb98eb", "% 05.2x", +__LINE__, 0xfffff19b, "FFFFF19B", "%+X", +__LINE__, 0x00025992, "154002", "%6.6d", +__LINE__, 0x00000040, " 040", "%6.3X", +__LINE__, 0x00000a9e, " 0a9e", "%5.4x", +__LINE__, 0x00c7f2cc, "c7f2cc", "%x", +__LINE__, 0x000325e6, " 325E6", "%6.X", +__LINE__, -0x69faad3, "-111127251", "%d", +__LINE__, -0x059a307, "-5874439", "% ld", +__LINE__, 0xfffffff6, "0xfffffff6", "%#0.0x", +__LINE__, 0x0030fdf3, "30fdf3", "%x", +__LINE__, 0x00007343, "+29507", "%+#2d", +__LINE__, 0x0003cf4b, "0X3CF4B", "% #.2X", +__LINE__, 0x00000433, "+1075", "%+0ld", +__LINE__, 0xfffffffd, "fffffffd", "%+.3x", +__LINE__, 0x0ae30c4e, "ae30c4e", "%+00x", +__LINE__, 0x0002540f, "02540f", "%-.6x", +__LINE__, -0x0000001, " -01", "% #5.2ld", +__LINE__, 0xffffffe7, "0xffffffe7", "% #5.x", +__LINE__, 0x0000005b, "91", "%d", +__LINE__, 0x00001f9b, "8091", "%.4ld", +__LINE__, 0xfffff315, "fffff315", "%4.x", +__LINE__, -0x130eec41, "-319745089", "% ld", +__LINE__, 0xfff8fe13, "FFF8FE13", "%X", +__LINE__, -0x0000004, "-00004", "%5.5d", +__LINE__, 0x00000669, "669", "%0X", +__LINE__, -0x0000004, "-4", "%d", +__LINE__, 0xf5e81496, "F5E81496", "% 6X", +__LINE__, -0x0000001, "-1", "% 0d", +__LINE__, 0xfffffff7, "fffffff7", "%x", +__LINE__, 0x000001de, "478", "%d", +__LINE__, 0x0000623e, "25150", "%5.0d", +__LINE__, 0xffffffa8, "FFFFFFA8", "%+X", +__LINE__, -0x0000117, "-279", "% ld", +__LINE__, -0x0000517, "-1303", "%d", +__LINE__, 0xfffff9d5, "fffff9d5", "% x", +__LINE__, 0x000001cc, "1CC", "%-X", +__LINE__, 0x0000019a, "0000410", "%.7d", +__LINE__, 0x00000003, "3 ", "%-06X", +__LINE__, 0x00000009, "0x9", "%#0x", +__LINE__, 0xfd544610, "0XFD544610", "% #X", +__LINE__, 0xfffffffc, "fffffffc", "%+x", +__LINE__, 0x00009437, "37943", "%ld", +__LINE__, -0x00b5ea6, "-745126", "%d", +__LINE__, 0xffffffd8, "ffffffd8", "%6x", +__LINE__, 0x00002a2d, "10797", "%.3ld", +__LINE__, 0x00275238, "2576952", "%0ld", +__LINE__, 0xfff90a34, "FFF90A34", "%-7X", +__LINE__, 0xfffffffe, "FFFFFFFE", "% .7X", +__LINE__, -0xb3b673e, "-188442430", "% ld", +__LINE__, 0xfffff67a, "0xfffff67a", "%#0.x", +__LINE__, 0x0000dff6, " dff6", "%+7.x", +__LINE__, 0xffee46e3, "ffee46e3", "%x", +__LINE__, 0x00001a66, " 0006758", "% 7.7d", +__LINE__, 0x0002b475, "2B475", "%.4X", +__LINE__, 0x0002090d, "002090d", "%.7x", +__LINE__, -0x0057838, "-358456", "%#ld", +__LINE__, 0x00000004, "0x4", "%#x", +__LINE__, 0x0574cb62, "91540322", "%#7d", +__LINE__, -0x0054388, "-344968", "% #d", +__LINE__, 0x000421c2, "421C2", "% X", +__LINE__, 0x00000003, "3", "%0d", +__LINE__, 0xffffe2e2, "ffffe2e2", "% 5.x", +__LINE__, 0x00000021, "+33", "%+d", +__LINE__, -0x0020033, "-131123", "%ld", +__LINE__, -0x0000001, " -1", "%4.ld", +__LINE__, 0x000000fd, "000fd", "%3.5x", +__LINE__, 0x023e4337, "37634871", "%1d", +__LINE__, 0x6e823d96, "6E823D96", "% X", +__LINE__, 0xfff0e133, "fff0e133", "%x", +__LINE__, -0x000decc, "-57036", "%3d", +__LINE__, 0x004397b8, "4429752", "%0d", +__LINE__, -0x0000023, " -35", "%6d", +__LINE__, 0xffe701ca, "FFE701CA", "%3X", +__LINE__, 0x000c0319, "+787225", "%+.6d", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xfffffe1d, "FFFFFE1D", "%X", +__LINE__, 0xfffffb33, "fffffb33", "%x", +__LINE__, 0x02b5e30a, "45474570", "%d", +__LINE__, 0x000074eb, "29931", "%03.ld", +__LINE__, -0x4e42e310, "-1313006352", "%-0.d", +__LINE__, -0x000007b, "-123", "%d", +__LINE__, 0x00000160, " 352", "% d", +__LINE__, -0x16af31ec, "-380580332", "%#ld", +__LINE__, -0x000006e, "-000110", "%07ld", +__LINE__, 0x232699a0, "232699a0", "%7.x", +__LINE__, 0x00f9b8e5, "+16365797", "%+0d", +__LINE__, 0x0000000c, "C", "%X", +__LINE__, 0xfffffd4f, "FFFFFD4F", "%X", +__LINE__, 0xffffe7bb, "FFFFE7BB", "%.7X", +__LINE__, -0x0000163, "-355", "%d", +__LINE__, 0x00070315, " 459541", "% #2.d", +__LINE__, -0x7d5c12a, "-131449130", "% 6.ld", +__LINE__, 0xffffffb2, "FFFFFFB2", "%X", +__LINE__, -0x0004aad, "-19117", "%+6.4ld", +__LINE__, 0x00115586, "1136006", "%0d", +__LINE__, -0x0000021, "-33", "%d", +__LINE__, 0x093ce01e, "93ce01e", "% 5x", +__LINE__, 0x00672135, "672135", "% x", +__LINE__, 0x05f4abd5, "0x5f4abd5", "%+#6.x", +__LINE__, -0x0448b03, "-4492035", "%-0.2ld", +__LINE__, 0x00000000, "0", "%#x", +__LINE__, 0x1987217e, "428286334", "%d", +__LINE__, 0x000010f6, "10f6", "%-x", +__LINE__, 0x0000177a, "177a", "%1x", +__LINE__, 0xfffffefd, "FFFFFEFD", "%7X", +__LINE__, -0x095cbf8, "-9817080", "%-5ld", +__LINE__, 0x0000008a, "138", "%2.0ld", +__LINE__, 0xfffe80ad, "fffe80ad", "%0x", +__LINE__, -0x1a4c8f7, "-27576567", "%d", +__LINE__, 0x00000000, "0", "%-x", +__LINE__, 0x0000a82b, "43051", "%-ld", +__LINE__, 0x000000eb, "235", "%2.3ld", +__LINE__, -0x0002747, "-10055", "%d", +__LINE__, 0x00000319, "0X319", "%#X", +__LINE__, 0xfffffcfe, "FFFFFCFE", "% X", +__LINE__, 0x00050f0e, "50f0e", "%-1x", +__LINE__, -0x398e09e, "-60350622", "%0.7ld", +__LINE__, 0x00000000, " ", "%2.ld", +__LINE__, 0x00000049, "00049", "% .5X", +__LINE__, -0x00000dd, " -221", "%+#5ld", +__LINE__, 0xf6db2fac, "f6db2fac", "%-07x", +__LINE__, 0x0000004f, "4F", "% .0X", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xfd07f692, "fd07f692", "%x", +__LINE__, 0xdb98bde0, "db98bde0", "%x", +__LINE__, 0x00000271, "0271", "% 3.4x", +__LINE__, -0x000115a, "-4442", "%#1.ld", +__LINE__, 0x0002f5f2, "194034", "%ld", +__LINE__, -0x0000152, " -338", "%+7ld", +__LINE__, 0x00059336, "365366", "%d", +__LINE__, 0xfffffff6, "fffffff6", "%-7x", +__LINE__, 0xfb916c51, "fb916c51", "%-x", +__LINE__, 0xffff413d, "FFFF413D", "%-X", +__LINE__, 0xf2576910, "F2576910", "%-4.X", +__LINE__, 0xfffc7730, "fffc7730", "%5.x", +__LINE__, 0x000002e6, "+742", "%+1d", +__LINE__, -0x00001bf, "-447", "%3d", +__LINE__, 0x000002e1, "2E1", "%-X", +__LINE__, 0x00000096, "150", "%#0ld", +__LINE__, 0x000002bd, "701", "%d", +__LINE__, -0x0053386, "-340870", "%#d", +__LINE__, 0xfffdb076, "FFFDB076", "%X", +__LINE__, 0x00004dc5, " +19909", "%+07.ld", +__LINE__, 0x00000f7a, " F7A", "%4X", +__LINE__, 0x02405000, " 37769216", "% ld", +__LINE__, 0xfffce68d, "fffce68d", "%0x", +__LINE__, -0x35b3af2, "-56310514", "%-ld", +__LINE__, -0x0238631, "-2328113", "%.4d", +__LINE__, -0x000001e, "-030", "%.3ld", +__LINE__, 0xffffffdd, "FFFFFFDD", "%.4X", +__LINE__, 0x0013f6ac, "13f6ac", "%02.x", +__LINE__, 0xfffffffa, "fffffffa", "%+07.x", +__LINE__, -0x000192b, " -6443", "%6.d", +__LINE__, 0x0000058b, "+1419", "%+d", +__LINE__, 0x00001391, "5009", "%ld", +__LINE__, -0x0041a57, "-268887", "%1ld", +__LINE__, 0xfffff266, "0xfffff266", "%+#6.6x", +__LINE__, 0x0000018b, " 395", "%6.ld", +__LINE__, 0x009ae24d, "+10150477", "%+ld", +__LINE__, 0x0000007e, "7E", "%X", +__LINE__, 0xfffffd53, "FFFFFD53", "% 0X", +__LINE__, 0x000002fa, "2FA", "%-1.3X", +__LINE__, 0x000000a4, "164", "%0d", +__LINE__, 0x00001833, "6195", "%ld", +__LINE__, -0x0000001, "-1", "%d", +__LINE__, 0xf2fcbd9b, "F2FCBD9B", "%+0.2X", +__LINE__, 0x00004a8a, "4A8A", "%X", +__LINE__, -0x10695cda, "-275340506", "%d", +__LINE__, 0x00000037, "37", "%X", +__LINE__, 0x00082d5c, "82D5C", "%+0.5X", +__LINE__, 0xfffffe01, "fffffe01", "% 5.3x", +__LINE__, 0x000005ea, "05EA", "% 1.4X", +__LINE__, 0x0e0b8826, "e0b8826", "%2x", +__LINE__, -0x0000161, "-353", "%+d", +__LINE__, 0x19e3014a, "19E3014A", "%+5X", +__LINE__, 0x00000140, "140", "%x", +__LINE__, 0xffff84b9, "FFFF84B9", "%X", +__LINE__, -0x0005776, "-22390", "%+5ld", +__LINE__, 0x0162ad61, "162AD61", "% X", +__LINE__, 0x00002395, "2395", "%X", +__LINE__, 0x003702ec, "3605228", "%5.2d", +__LINE__, 0xffffffff, "FFFFFFFF", "%7X", +__LINE__, 0x00001778, "0x1778", "%#5.x", +__LINE__, 0xc52bef7f, "C52BEF7F", "%X", +__LINE__, 0xfffffec4, "FFFFFEC4", "%X", +__LINE__, 0x00000006, "6", "%X", +__LINE__, 0x00000000, "000", "%03.3x", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xffff6c46, "FFFF6C46", "% 2.2X", +__LINE__, -0x1506098, "-22044824", "%01.d", +__LINE__, 0x03415caf, "3415caf", "%x", +__LINE__, -0x00007b4, "-1972", "%#4.4d", +__LINE__, -0x00158c9, "-88265", "%03.4d", +__LINE__, 0x6947c336, "1766310710", "%.6d", +__LINE__, 0x0000017c, "17C", "% 0X", +__LINE__, -0x00001b7, "-439", "% 0ld", +__LINE__, 0x06a7575a, "6A7575A", "%-.0X", +__LINE__, 0x000b3459, "734297", "%ld", +__LINE__, -0x395d8dd, "-60152029", "%ld", +__LINE__, 0x00036bb3, "224179", "%-6.d", +__LINE__, 0xffff14ff, "FFFF14FF", "%X", +__LINE__, -0x15910e4f, "-361827919", "%-0d", +__LINE__, -0x0000004, "-4", "%#d", +__LINE__, 0xf7f7adac, "F7F7ADAC", "% 3.X", +__LINE__, 0xffffff74, "FFFFFF74", "%0X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, -0x000007b, "-123 ", "%-7.d", +__LINE__, -0x000002c, "-44", "%d", +__LINE__, -0x000002b, " -43", "%5d", +__LINE__, 0x0000ae5f, "44639", "%d", +__LINE__, 0x003cbc63, "3CBC63", "%X", +__LINE__, 0xfffffffc, "0XFFFFFFFC", "%#5.7X", +__LINE__, 0x0003e044, "3E044", "%X", +__LINE__, -0x0000c46, "-3142", "%.1d", +__LINE__, 0xff18f4bb, "FF18F4BB", "%0X", +__LINE__, 0xfffffffd, "FFFFFFFD", "%.1X", +__LINE__, -0x01c0f27, "-1838887", "%0d", +__LINE__, -0x1242901f, "-306352159", "%.4ld", +__LINE__, 0x1775c10a, "393593098", "%6.ld", +__LINE__, 0x00000001, " 1", "%03.d", +__LINE__, 0xfff1fd30, "0xfff1fd30", "%#x", +__LINE__, 0x00000191, "191", "%0.X", +__LINE__, 0x2e597178, "777613688", "%2.ld", +__LINE__, -0x4ef0cf3, "-82775283", "%+.6ld", +__LINE__, -0x0000085, " -133", "%6.d", +__LINE__, 0x0000014d, "333 ", "%-5ld", +__LINE__, -0xc03bd74, "-201571700", "%07.6ld", +__LINE__, -0x000000a, "-10", "%d", +__LINE__, 0x01f5e86e, "32893038", "%#2.ld", +__LINE__, 0x00000033, "0X33", "% #X", +__LINE__, 0x0087c797, " 8898455", "% 7.d", +__LINE__, -0x0001205, "-4613", "%5d", +__LINE__, 0x00000192, " 192", "%7.X", +__LINE__, 0x000e6c00, "945152", "%6.1ld", +__LINE__, 0x00018629, " 99881", "% d", +__LINE__, -0x04739c6, "-4667846", "%-01.3ld", +__LINE__, 0x00001f42, "8002", "%d", +__LINE__, 0x00000caf, "3247", "%d", +__LINE__, -0x4992e24, "-77147684", "%#.6d", +__LINE__, 0x0000001d, "1d", "%-0x", +__LINE__, 0x14d79f03, "349675267", "%0ld", +__LINE__, 0x00000dd4, " 03540", "%#6.5ld", +__LINE__, 0x0005f30e, "0X5F30E", "%#X", +__LINE__, 0x00000157, "157", "%X", +__LINE__, -0x9281698, "-153622168", "%d", +__LINE__, -0x000004a, "-74", "%d", +__LINE__, -0x0010c9e, "-68766", "%-0d", +__LINE__, 0x00000059, "00089", "%.5ld", +__LINE__, -0x06959e3, "-6904291", "% 4.d", +__LINE__, 0xfbea12b1, "0XFBEA12B1", "%+#X", +__LINE__, 0xffffdfb1, "FFFFDFB1", "%2.6X", +__LINE__, 0x0434faac, "434faac", "%.5x", +__LINE__, 0xffffffff, "ffffffff", "% x", +__LINE__, 0x00000b32, "B32", "%0X", +__LINE__, 0x00000047, "71", "%.1d", +__LINE__, 0x00070bef, " 0461807", "% .7d", +__LINE__, 0x00000038, "38", "% 0x", +__LINE__, 0x00000000, " 0", "%6X", +__LINE__, 0xfff9c011, "FFF9C011", "%2X", +__LINE__, 0xfffffffe, "fffffffe", "%7x", +__LINE__, 0xfffffff9, "FFFFFFF9", "%X", +__LINE__, -0x016a095, "-1482901", "%4.0ld", +__LINE__, -0x000001c, "-28", "% ld", +__LINE__, 0xfffd6133, "0xfffd6133", "%#x", +__LINE__, 0x000004a4, "0x4a4", "%#x", +__LINE__, 0x000003c2, "0962", "%.4d", +__LINE__, -0x000323b, "-12859", "%+#d", +__LINE__, 0x0f620237, "F620237", "%X", +__LINE__, 0x00007863, "007863", "%.6X", +__LINE__, 0x0000002c, " 44", "% #ld", +__LINE__, 0xfffffff0, "fffffff0", "%03.6x", +__LINE__, 0xffff6346, "FFFF6346", "%1.X", +__LINE__, 0x00063188, "63188", "% x", +__LINE__, 0xfffff91c, "fffff91c", "%-.3x", +__LINE__, 0x004cd0b4, "4CD0B4", "%-2.X", +__LINE__, 0x06b4d739, "112514873", "%0.1d", +__LINE__, -0x0009beb, "-39915", "%.2d", +__LINE__, 0x0000831b, "33563", "%d", +__LINE__, 0x00000001, "1", "%X", +__LINE__, -0x942d76b, "-155375467", "% #0ld", +__LINE__, 0xffff2a95, "FFFF2A95", "%2X", +__LINE__, 0x00548d5e, "5541214", "%.3ld", +__LINE__, 0x0b5e1a01, "B5E1A01", "% .7X", +__LINE__, 0xfffffc22, "fffffc22", "%6x", +__LINE__, -0x0000dd7, "-3543", "%-.3ld", +__LINE__, 0xfffff834, "FFFFF834", "%X", +__LINE__, 0x0365f762, "57014114", "%ld", +__LINE__, -0x0000003, "-3", "%d", +__LINE__, 0x3bd998a3, "1004116131", "%d", +__LINE__, 0xfffff6c9, "FFFFF6C9", "%+X", +__LINE__, 0xffffded9, "FFFFDED9", "%-.1X", +__LINE__, -0x00fbb5a, "-1031002", "% 1.0d", +__LINE__, 0xffffffb7, "ffffffb7", "%6.x", +__LINE__, 0xff1b8ac3, "FF1B8AC3", "%-X", +__LINE__, 0xfffffff2, "FFFFFFF2", "%00.X", +__LINE__, -0x000013d, " -317", "%05.d", +__LINE__, 0x0000f5e2, "+62946", "%+0.2ld", +__LINE__, 0x16ac6358, "16ac6358", "%x", +__LINE__, 0xffff8728, "FFFF8728", "%+X", +__LINE__, -0x0014a6d, "-084589", "%0.6ld", +__LINE__, 0xfc904514, "FC904514", "%+0X", +__LINE__, 0x00000004, "4", "%ld", +__LINE__, 0xffffffe0, "ffffffe0", "%+x", +__LINE__, -0x0a0ffdd, "-10551261", "%+02d", +__LINE__, -0x0000bbc, "-3004", "%+d", +__LINE__, 0x00000006, " +6", "%+7ld", +__LINE__, 0x17afa6e5, "397387493", "%ld", +__LINE__, 0xfffff6bf, "fffff6bf", "%+04.4x", +__LINE__, 0x000001dc, "01dc", "% 02.4x", +__LINE__, 0x0000000e, " 14", "% d", +__LINE__, 0xfffffff9, "0XFFFFFFF9", "%#4.X", +__LINE__, 0x0000005d, "93", "%0d", +__LINE__, -0x004fa05, "-0326149", "%.7d", +__LINE__, -0x0000018, "-24", "%ld", +__LINE__, 0xfffff7eb, "FFFFF7EB", "%X", +__LINE__, 0x0072b044, " 7516228", "% .7ld", +__LINE__, 0xffffffed, "0xffffffed", "%#x", +__LINE__, 0x0010364d, "10364D", "%X", +__LINE__, 0xfff90469, "0XFFF90469", "%#X", +__LINE__, 0x000001b4, " 436", "% 0d", +__LINE__, 0x00000000, "0", "% X", +__LINE__, 0xfffffff3, "fffffff3", "%x", +__LINE__, 0x19335d40, "19335d40", "%6x", +__LINE__, 0x00039c24, "236580", "%ld", +__LINE__, 0x000021f7, "8695", "%0.4ld", +__LINE__, -0x057b406, "-5747718", "%d", +__LINE__, -0x017b371, "-1553265", "%#ld", +__LINE__, 0x0003e405, "254981", "%2.d", +__LINE__, 0x00000001, "1", "%-.1x", +__LINE__, 0x000000ae, "AE", "%.1X", +__LINE__, 0xffd85825, "ffd85825", "%-7.x", +__LINE__, 0xfffad763, "fffad763", "%x", +__LINE__, 0x002431d4, "2372052", "%6.ld", +__LINE__, 0x00000003, "000003", "%-05.6d", +__LINE__, 0xffffffeb, "0xffffffeb", "%#x", +__LINE__, 0xff8cf3b0, "ff8cf3b0", "%x", +__LINE__, 0xfe88d2ff, "0xfe88d2ff", "%+#.2x", +__LINE__, 0xffffff6b, "ffffff6b", "%6.3x", +__LINE__, 0xfffffffe, "fffffffe", "%-x", +__LINE__, 0xe998945a, "e998945a", "%2.x", +__LINE__, 0x03b9c50f, "3B9C50F", "%+X", +__LINE__, 0xffffffff, "FFFFFFFF", "%3.7X", +__LINE__, 0x000024ef, "24ef", "%+x", +__LINE__, 0xfffffc04, "FFFFFC04", "%X", +__LINE__, 0x0d4bef7c, " 223080316", "% .1ld", +__LINE__, -0xc33f3bc, "-204731324", "%.5ld", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#2X", +__LINE__, 0x0000e493, "e493", "%x", +__LINE__, 0x000001b4, "1b4", "%x", +__LINE__, 0xffffffd6, "0xffffffd6", "% #1x", +__LINE__, 0x00000001, "1", "%d", +__LINE__, -0x0000f28, "-3880", "%ld", +__LINE__, 0x00000277, "631", "%-1ld", +__LINE__, 0x00000001, " 1", "%2x", +__LINE__, -0x0ff4d2c, "-16731436", "%#ld", +__LINE__, 0x0bb80344, "196608836", "%00ld", +__LINE__, 0xffffffdc, "FFFFFFDC", "%X", +__LINE__, 0x00000484, "1156", "%ld", +__LINE__, 0x00000341, "341", "%-.2x", +__LINE__, 0x0000ee62, "ee62", "%x", +__LINE__, 0xfffffe20, "fffffe20", "%+x", +__LINE__, -0x00076eb, "-30443", "%.2d", +__LINE__, 0x2c4a7407, "2c4a7407", "% x", +__LINE__, 0x00000000, " ", "%3.X", +__LINE__, 0xffffff60, "ffffff60", "% 4.x", +__LINE__, 0x000e4cf2, "+937202", "%+.5ld", +__LINE__, 0x00000008, " 00008", "%06.5X", +__LINE__, 0x0002f612, "194066", "%d", +__LINE__, 0xfffffc96, "fffffc96", "%-3.3x", +__LINE__, -0x0000001, "-1", "% ld", +__LINE__, 0x00000000, " ", "% 6.0X", +__LINE__, 0xfffffff5, "fffffff5", "%3.x", +__LINE__, 0x0bfd63a1, "201155489", "%d", +__LINE__, -0x1547c214, "-357024276", "%ld", +__LINE__, 0x00000004, "4", "%#0.d", +__LINE__, -0x000f2f3, "-62195", "%.2d", +__LINE__, 0xfff843dd, "FFF843DD", "%X", +__LINE__, 0x00966e36, "9858614", "%.0ld", +__LINE__, 0x0000782e, "0X782E", "% #X", +__LINE__, 0x00bd36c0, "12400320", "%ld", +__LINE__, 0x00000000, "00", "% .2X", +__LINE__, 0x00000000, "0", "%1X", +__LINE__, 0x0003f416, "3f416 ", "%-6.x", +__LINE__, -0x00b74bd, "-750781", "% ld", +__LINE__, 0x0000138a, "138a", "% x", +__LINE__, 0x024df7f0, "24DF7F0", "% 0.6X", +__LINE__, 0xfffffffc, "FFFFFFFC", "%X", +__LINE__, -0x0003284, "-12932 ", "%-07.ld", +__LINE__, 0x000094d3, "94d3", "%x", +__LINE__, 0x000000bf, "bf", "%.2x", +__LINE__, 0x00000000, "00000", "%-1.5X", +__LINE__, -0x04899b8, "-4757944", "%d", +__LINE__, 0x2b51bf20, "+726777632", "%+d", +__LINE__, -0x000000d, "-13", "%.2d", +__LINE__, 0x04f78fbd, "4F78FBD", "% 7.X", +__LINE__, 0x00011684, "71300", "%5.d", +__LINE__, 0x0000539d, "21405", "%0d", +__LINE__, 0x00000008, "000008", "%-3.6X", +__LINE__, 0xfc7a2cdc, "fc7a2cdc", "%2.3x", +__LINE__, 0xffc21da1, "ffc21da1", "%x", +__LINE__, 0x00000273, "273", "%x", +__LINE__, 0x00000000, "0", "%#X", +__LINE__, -0x31cd6b9, "-52221625", "% d", +__LINE__, 0xfffffff8, "FFFFFFF8", "%.0X", +__LINE__, 0x00000002, "2", "%#ld", +__LINE__, 0x00e8922c, "15241772", "%d", +__LINE__, 0xfeb19ea7, "FEB19EA7", "%0.1X", +__LINE__, 0x00003931, "014641", "%06ld", +__LINE__, 0x00000015, "0X00015", "%#.5X", +__LINE__, 0xfffffffe, "FFFFFFFE", "%1.X", +__LINE__, 0xfff17103, "0XFFF17103", "% #X", +__LINE__, 0xfffffffc, "FFFFFFFC", "%+X", +__LINE__, 0x00000002, "00002", "%.5x", +__LINE__, 0x00001617, " 5655", "% 7.d", +__LINE__, -0x0000010, "-000016", "%00.6d", +__LINE__, 0x000000b0, "B0", "% X", +__LINE__, 0xfc9362b2, "FC9362B2", "%-X", +__LINE__, 0xfc3d8276, "fc3d8276", "% 1x", +__LINE__, 0x00001405, "5125", "%#d", +__LINE__, 0x02250183, " 35979651", "% ld", +__LINE__, 0xffc9b007, "ffc9b007", "% 4.x", +__LINE__, 0x00000311, "785", "%0d", +__LINE__, 0x0004d273, " 316019", "% d", +__LINE__, 0x00000001, "1", "%1.x", +__LINE__, 0xffff240f, "FFFF240F", "%4.X", +__LINE__, 0x0049cfda, "+4837338", "%+ld", +__LINE__, 0x012f6dd5, "12F6DD5", "% 6.2X", +__LINE__, 0x00000002, "0x2", "%#2.0x", +__LINE__, 0xfffd834a, "FFFD834A", "%.6X", +__LINE__, 0xfe2a40f8, "0XFE2A40F8", "%#X", +__LINE__, 0xffffffeb, "ffffffeb", "%x", +__LINE__, -0x00ac5cb, "-705995", "%d", +__LINE__, -0x3021108c, "-807473292", "% .4d", +__LINE__, -0x0000035, "-53", "%-ld", +__LINE__, -0x1a36475, "-27485301", "% d", +__LINE__, -0x0000011, "-17", "%d", +__LINE__, 0x000001a3, "000419", "%.6ld", +__LINE__, 0x0030a0a8, "3186856", "%.5ld", +__LINE__, 0x00000019, "25", "%d", +__LINE__, 0xf32deac1, "F32DEAC1", "%06.2X", +__LINE__, -0x0000004, " -00004", "%7.5ld", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, 0x0006bf19, "442137", "%#0.d", +__LINE__, 0x566f6c44, "1450142788", "%1.6d", +__LINE__, 0xfffffc10, "fffffc10", "%.2x", +__LINE__, -0x000e04d, "-57421", "%+0d", +__LINE__, 0x00000000, "0000000", "%+.7X", +__LINE__, 0x00b5c74d, " 11913037", "% ld", +__LINE__, -0x028dfe2, "-2678754", "%05.1d", +__LINE__, 0xfffffee0, "fffffee0", "%0x", +__LINE__, -0x030c077, "-3194999", "%-.6d", +__LINE__, 0x00055ca1, "055ca1", "%-.6x", +__LINE__, 0x00000000, " ", "%7.X", +__LINE__, 0xfffffe3b, "FFFFFE3B", "%X", +__LINE__, 0xffffffff, "FFFFFFFF", "% 3X", +__LINE__, 0x00000857, "2135", "%-#1.d", +__LINE__, -0x00546a2, "-345762", "%0.5d", +__LINE__, 0x0000000b, "0xb ", "%-#6x", +__LINE__, 0x00000d2b, "d2b ", "%-4.0x", +__LINE__, 0x0ae02b9e, "AE02B9E", "%X", +__LINE__, 0xfffffa7b, "fffffa7b", "%-2.x", +__LINE__, 0x00000001, "1", "%X", +__LINE__, 0x000006ad, "01709", "%05.5ld", +__LINE__, -0x0000102, "-258", "%-0.ld", +__LINE__, 0x00000000, "0", "%.1X", +__LINE__, -0x01daa95, "-1944213", "%-1ld", +__LINE__, 0x02b99040, "2B99040", "%2.X", +__LINE__, 0x1b3d5621, "1B3D5621", "%X", +__LINE__, 0x0312d16b, "51564907", "%-1.7ld", +__LINE__, 0x000aa76c, " 698220", "% 2d", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, 0xfff8a4ec, "FFF8A4EC", "%-X", +__LINE__, 0xffffe06d, "ffffe06d", "%x", +__LINE__, 0x00000003, "3", "% x", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xd3e244dd, "D3E244DD", "%+5X", +__LINE__, 0x000028b3, " 28b3", "% 5.x", +__LINE__, 0x0001aceb, "109803", "%6d", +__LINE__, 0xfffbc5ca, "0xfffbc5ca", "%-#5x", +__LINE__, 0x00000097, " 151", "% 7ld", +__LINE__, 0x00001fcc, "+8140", "%+d", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, -0x00052a9, "-21161", "%ld", +__LINE__, 0xfffffc76, "FFFFFC76", "%.1X", +__LINE__, -0x2acb012, "-44871698", "%0.1ld", +__LINE__, 0xffffff81, "ffffff81", "%x", +__LINE__, -0x0018394, "-99220", "%-ld", +__LINE__, 0x0000001b, "1B", "%X", +__LINE__, 0x00000033, "51", "%1d", +__LINE__, 0xffec37e5, "FFEC37E5", "%-1X", +__LINE__, -0x000000a, " -10", "%#5.d", +__LINE__, -0x0000412, "-1042", "%ld", +__LINE__, 0x000cd0b1, "cd0b1 ", "%-7.5x", +__LINE__, 0x0b445370, "B445370", "%+2.0X", +__LINE__, 0xfffffff3, "0XFFFFFFF3", "%-#X", +__LINE__, 0xffff9f33, "FFFF9F33", "%5.X", +__LINE__, 0x00010a1e, "10A1E", "%-2X", +__LINE__, -0xede156f, "-249435503", "% 7.1ld", +__LINE__, 0xfc6d63aa, "fc6d63aa", "% .6x", +__LINE__, 0x0000311c, " 12572", "% ld", +__LINE__, 0x00001f8a, "8074", "%00.d", +__LINE__, 0x00000199, "199", "%-X", +__LINE__, 0xfffffc60, "FFFFFC60", "%+3X", +__LINE__, -0x000022c, "-556", "%+0ld", +__LINE__, 0x021d8407, "35488775", "%-#.7ld", +__LINE__, 0x0000020f, "527", "%d", +__LINE__, -0x000064b, "-1611", "%#ld", +__LINE__, -0x0c15aef, "-12671727", "%d", +__LINE__, -0x1f1a6881, "-521824385", "%ld", +__LINE__, 0xffffc115, "ffffc115", "% x", +__LINE__, 0x00000017, " 23", "% #ld", +__LINE__, 0x00000dc1, "DC1 ", "%-4X", +__LINE__, 0x000002ca, "2CA", "%X", +__LINE__, 0x000f052c, " 984364", "%7.d", +__LINE__, 0x0000005a, "0090", "%0.4d", +__LINE__, -0x001e463, "-124003", "% 4.ld", +__LINE__, 0x00000001, "0000001", "%+.7X", +__LINE__, 0x00000bfb, "0000bfb", "%5.7x", +__LINE__, 0x0002484b, "149579", "%#1d", +__LINE__, 0x0043ba18, "4438552", "%-ld", +__LINE__, 0x000078f8, "0X78F8", "%#X", +__LINE__, 0x00000001, " 1", "%4d", +__LINE__, 0x0cedaeed, "CEDAEED", "%X", +__LINE__, 0x00000003, "+3", "%+ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "%7.4X", +__LINE__, 0x00000169, "361", "%ld", +__LINE__, 0x00003c7a, "+15482", "%+ld", +__LINE__, -0x0159d93, "-1416595", "% 0.0d", +__LINE__, 0x0000775c, "+30556", "%+3.d", +__LINE__, 0x10284768, "+271075176", "%+0.0ld", +__LINE__, -0xf8b610e, "-260792590", "%0d", +__LINE__, 0xfdd8d369, "fdd8d369", "%-.3x", +__LINE__, 0x000c9495, "+824469", "%+ld", +__LINE__, -0x000003f, " -063", "%7.3d", +__LINE__, -0x000073b, "-1851", "%+03.ld", +__LINE__, 0xfffe4e23, "0xfffe4e23", "%#.5x", +__LINE__, 0x0081788c, "81788c", "%5x", +__LINE__, -0x015f888, "-1439880", "%+1d", +__LINE__, -0x31d64b4, "-52257972", "%0.2d", +__LINE__, 0xffffffff, "FFFFFFFF", "%6.5X", +__LINE__, -0x0000072, "-114", "%+.1d", +__LINE__, -0x00000e1, "-225", "%ld", +__LINE__, 0x000006a8, "0x6a8", "%+#x", +__LINE__, 0xfffe673a, "fffe673a", "%01.x", +__LINE__, 0xfff2ee0d, "FFF2EE0D", "%-X", +__LINE__, 0x0290320a, "43004426", "%0ld", +__LINE__, -0xeb7a832, "-246917170", "% ld", +__LINE__, 0x02ae9265, "2ae9265", "%1.x", +__LINE__, 0xffffffd2, "ffffffd2", "%+2.x", +__LINE__, 0x00e6e858, "0xe6e858", "%#0.x", +__LINE__, 0x00000c4a, "+3146", "%+3.1d", +__LINE__, -0x6943c1a, "-110378010", "% 0ld", +__LINE__, 0x0167b119, "167b119", "%0x", +__LINE__, 0xfffffffe, "fffffffe", "%+x", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, 0x000b861e, "755230", "%ld", +__LINE__, 0x0000015b, "347", "%-#ld", +__LINE__, 0xfffffffa, "0XFFFFFFFA", "%#X", +__LINE__, 0x000de9e5, "911845", "%d", +__LINE__, 0x00000001, "01", "%.2d", +__LINE__, 0x000007a5, "1957", "%0d", +__LINE__, 0x0000000f, "f", "%x", +__LINE__, 0x00c38cbf, " 12815551", "% .2d", +__LINE__, -0x7bd1b6e, "-129833838", "% d", +__LINE__, -0x000013c, "-316", "%0d", +__LINE__, 0x00001aad, "1AAD", "%-0X", +__LINE__, 0x0034f903, "3471619", "%00d", +__LINE__, 0xff925717, "ff925717", "%4x", +__LINE__, 0x00000002, "02", "%.2d", +__LINE__, 0x00000f34, "F34", "%+X", +__LINE__, 0xffffeefe, "FFFFEEFE", "%X", +__LINE__, 0xfffeecb4, "FFFEECB4", "% 2.X", +__LINE__, 0x00034421, "214049", "%0ld", +__LINE__, 0x00000000, " 0", "%+6X", +__LINE__, -0x0000062, "-98", "%-#2d", +__LINE__, -0x0000557, "-1367", "%-4.4d", +__LINE__, 0xffffe17c, "FFFFE17C", "%X", +__LINE__, 0x00000097, "00097", "%.5X", +__LINE__, 0xfffcb278, "FFFCB278", "%0.7X", +__LINE__, -0x0000001, "-0001 ", "%-7.4d", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x000002c4, "708", "%d", +__LINE__, 0x04946f45, "4946F45", "%-2.X", +__LINE__, 0x000000ff, "00ff", "% 2.4x", +__LINE__, 0x00073307, "471815", "%3ld", +__LINE__, 0x0085b7b6, "+8763318", "%+ld", +__LINE__, -0x0000002, "-2", "%1ld", +__LINE__, -0x0000001, "-1", "%-2d", +__LINE__, -0x00000b5, " -181", "%7ld", +__LINE__, -0x0412486, "-4269190", "%+2.1ld", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, 0x0000006d, "6d", "%x", +__LINE__, 0x000000da, "218", "%-.3ld", +__LINE__, 0xfffffcfe, "fffffcfe", "%x", +__LINE__, 0x652e60c7, "652E60C7", "%7.7X", +__LINE__, 0x00000035, " 53", "% #2d", +__LINE__, 0x000000fc, "FC", "%-X", +__LINE__, 0x00000019, " 25", "% ld", +__LINE__, 0xfffffcf4, "fffffcf4", "%6x", +__LINE__, 0xffffff41, "ffffff41", "%x", +__LINE__, 0x00000034, " 52", "%3.ld", +__LINE__, 0xffffffb2, "ffffffb2", "%-x", +__LINE__, -0x6dc43e7c, "-1841577596", "% .2ld", +__LINE__, 0x00000004, "4", "%d", +__LINE__, -0x000023b, "-571", "%ld", +__LINE__, -0x000004d, "-77", "%ld", +__LINE__, 0x0000e3ba, "58298", "%.0ld", +__LINE__, 0xfffffff2, "fffffff2", "%0.0x", +__LINE__, -0x0000020, "-32", "%ld", +__LINE__, 0xffffb33e, "0XFFFFB33E", "%-#X", +__LINE__, 0x00000000, " ", "% 4.x", +__LINE__, 0xffd96f92, "FFD96F92", "%X", +__LINE__, 0x0000002e, " 46", "% 0ld", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, -0x5008ba3, "-83921827", "%+d", +__LINE__, 0xfdc1df3d, "FDC1DF3D", "%0X", +__LINE__, 0xfc7410e5, "fc7410e5", "%7x", +__LINE__, 0xfffffffa, "FFFFFFFA", "% 6.X", +__LINE__, 0x00000000, "0", "%X", +__LINE__, -0x040fd4e, "-4259150", "% 05.d", +__LINE__, 0x0000003b, " 59", "%3.2d", +__LINE__, 0xff776dd8, "ff776dd8", "%x", +__LINE__, 0x0000055b, "+1371", "%+#2d", +__LINE__, 0x00004841, "4841", "%.1x", +__LINE__, 0x0229d710, "36296464", "%-.2ld", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xfffe8376, "fffe8376", "%0x", +__LINE__, 0x000a7b83, "a7b83", "%x", +__LINE__, 0x0000000d, " 013", "%#7.3d", +__LINE__, 0xffffffff, "FFFFFFFF", "%5.0X", +__LINE__, 0x00000704, " 0x704", "%#7.0x", +__LINE__, 0xfff970b9, "FFF970B9", "%.1X", +__LINE__, -0x000b60a, "-46602", "%+d", +__LINE__, 0x00000000, " 00000", "%6.5x", +__LINE__, 0x00000003, "3", "%X", +__LINE__, 0x0000c14b, "c14b", "%0x", +__LINE__, 0x066d7860, "107837536", "%-d", +__LINE__, 0x00000013, " 13", "%4.x", +__LINE__, 0xfff96f18, "FFF96F18", "%4X", +__LINE__, 0xffffff30, "FFFFFF30", "%X", +__LINE__, 0xffffffff, "FFFFFFFF", "% .7X", +__LINE__, -0x72a9e985, "-1923737989", "%2.d", +__LINE__, 0x00000002, "0x2", "%#x", +__LINE__, 0x0000050e, "50e", "%2.3x", +__LINE__, 0x0000605c, "24668", "%4.1d", +__LINE__, 0xffffff3e, "ffffff3e", "%x", +__LINE__, -0x0000010, "-16", "%-2d", +__LINE__, 0x000061aa, "61AA", "%X", +__LINE__, 0x000c2ec3, "C2EC3", "%0X", +__LINE__, -0x0000001, "-1", "%-0d", +__LINE__, 0x00130e17, "+1248791", "%+.6ld", +__LINE__, 0x000000ef, "EF", "%-X", +__LINE__, -0x0000001, " -1", "%+5ld", +__LINE__, 0x0000989d, "39069", "%d", +__LINE__, 0x00000000, "0", "%-x", +__LINE__, 0x00000417, "417", "%X", +__LINE__, 0x00005e86, "5E86", "%+X", +__LINE__, -0x0007c08, "-31752", "%ld", +__LINE__, 0x00da8e0f, "DA8E0F", "%2.2X", +__LINE__, -0x3ee095ec, "-1054905836", "% 0d", +__LINE__, 0xfffdb5a3, "fffdb5a3", "%x", +__LINE__, 0xffffff83, "FFFFFF83", "%X", +__LINE__, 0xfff8efd7, "0xfff8efd7", "%#x", +__LINE__, 0x00000020, " 32", "% d", +__LINE__, 0xfff7c002, "fff7c002", "%.7x", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x00000000, " 000", "%05.3X", +__LINE__, 0xfff190ee, "FFF190EE", "%X", +__LINE__, 0x00000a6c, " 2668", "%#6.ld", +__LINE__, 0x00037024, "37024", "%x", +__LINE__, 0xfffec37f, "FFFEC37F", "%X", +__LINE__, 0x007ee9bb, "8317371", "%#0.ld", +__LINE__, 0x00000122, "290", "%ld", +__LINE__, -0x0013b5f, "-80735", "%ld", +__LINE__, 0xfffffff6, "FFFFFFF6", "%X", +__LINE__, -0x0000c16, "-0003094", "%-00.7d", +__LINE__, -0x00010ed, "-4333", "%ld", +__LINE__, 0x00000007, " 0X007", "%#6.3X", +__LINE__, 0x0053781e, " 5470238", "% 2d", +__LINE__, 0xffff03e9, "0XFFFF03E9", "%+#7.3X", +__LINE__, 0xfffffdc2, "0xfffffdc2", "% #4.x", +__LINE__, -0x00018e1, "-6369", "%d", +__LINE__, 0xf3a4abc6, "F3A4ABC6", "%-.2X", +__LINE__, 0xfff64a27, "FFF64A27", "%7.7X", +__LINE__, 0x00195ae5, "195AE5", "%+03.X", +__LINE__, 0xfff8849a, "fff8849a", "%.1x", +__LINE__, -0x001b045, "-110661", "%+ld", +__LINE__, 0x01e8a106, "32022790", "%7.ld", +__LINE__, 0x0008ee94, "8EE94", "%X", +__LINE__, 0xfffcdabc, "FFFCDABC", "%X", +__LINE__, 0xfda75cd2, "fda75cd2", "%x", +__LINE__, 0x00fd505a, "fd505a", "%x", +__LINE__, 0x00003748, "3748", "%+x", +__LINE__, 0xffffffe5, "ffffffe5", "% 3.6x", +__LINE__, -0x1d1c4045, "-488390725", "%d", +__LINE__, 0xfffffff9, "0xfffffff9", "%#x", +__LINE__, -0x0000001, "-1", "%-#ld", +__LINE__, 0x00000191, "191", "%X", +__LINE__, 0xfffffffe, "FFFFFFFE", "%-X", +__LINE__, -0x0000006, "-6", "%ld", +__LINE__, 0x00000033, " 33", "% 4x", +__LINE__, -0x0159a14, "-1415700", "% ld", +__LINE__, 0x000001c3, "00001c3", "%07x", +__LINE__, 0xffffe9e2, "ffffe9e2", "%-x", +__LINE__, 0x5b19abd9, "0x5b19abd9", "%-#x", +__LINE__, 0xffff1bae, "0xffff1bae", "%#x", +__LINE__, 0x00000001, "+1", "%+d", +__LINE__, 0x006a23c7, "6A23C7", "%2.X", +__LINE__, 0x000008a4, " 8a4", "% 4.1x", +__LINE__, 0xfffffcd9, "fffffcd9", "%.1x", +__LINE__, 0x0000121b, "121B", "%X", +__LINE__, 0x001231aa, "1192362", "%7.d", +__LINE__, -0x008026d, "-524909", "%4.2d", +__LINE__, 0x192ea594, "422487444", "%ld", +__LINE__, 0x0001a800, "108544", "%0d", +__LINE__, 0x000062f1, "62f1", "%.4x", +__LINE__, 0xff8b39b0, "ff8b39b0", "% x", +__LINE__, 0x00000001, "0x1", "%+#x", +__LINE__, 0x0000144a, "5194", "%ld", +__LINE__, 0x00002599, "9625", "%d", +__LINE__, 0xffa0a2ef, "ffa0a2ef", "%0x", +__LINE__, 0xff6712e1, "FF6712E1", "%0X", +__LINE__, 0x0007ebb3, "519091", "%1ld", +__LINE__, 0x0000000f, "15 ", "%-4.ld", +__LINE__, -0x0000096, "-150", "%2.ld", +__LINE__, 0x0000004f, "4F", "%.2X", +__LINE__, 0xfffffc29, "fffffc29", "%-4.x", +__LINE__, 0x00000019, "19", "%x", +__LINE__, 0x00000c4e, "c4e", "%x", +__LINE__, 0x0000006b, " 0006B", "%6.5X", +__LINE__, 0x00c8d2c6, "c8d2c6", "%.0x", +__LINE__, -0x256fb8de, "-628078814", "%ld", +__LINE__, 0x4f51fcf4, "4F51FCF4", "%+X", +__LINE__, 0x000f000e, "983054", "%1.ld", +__LINE__, 0xfffff03f, "fffff03f", "%x", +__LINE__, 0x0000001d, " 1D", "%05.X", +__LINE__, 0x0072ea14, "72ea14", "%x", +__LINE__, -0xc6098b9, "-207657145", "%-7d", +__LINE__, 0x00000a76, "2678", "%3ld", +__LINE__, 0xfff84db3, "FFF84DB3", "%X", +__LINE__, 0x0fb52870, "fb52870", "%+x", +__LINE__, 0x08bc170a, "0x8bc170a", "%#x", +__LINE__, 0xfffeeb00, "fffeeb00", "%0.5x", +__LINE__, 0x000ece95, "970389", "%d", +__LINE__, 0x00000000, "0", "%0X", +__LINE__, 0x07f98e8a, "7f98e8a", "% x", +__LINE__, 0x000499eb, " 499eb", "% 6.x", +__LINE__, 0xffffffff, "FFFFFFFF", "%-X", +__LINE__, 0x0aa45e86, "178544262", "%#.2d", +__LINE__, 0xff73387d, "FF73387D", "%03.X", +__LINE__, 0xfffffb51, "FFFFFB51", "%.3X", +__LINE__, 0xffffffdc, "ffffffdc", "%6.x", +__LINE__, 0xffffffed, "FFFFFFED", "%-X", +__LINE__, 0x0001c4c2, "1c4c2", "%0.3x", +__LINE__, -0x0000001, "-0000001", "%-#.7d", +__LINE__, 0x00000007, "7", "%0.x", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0xffffd000, "ffffd000", "%4.3x", +__LINE__, 0x00000030, "48", "%2.d", +__LINE__, -0x6c121ce, "-113320398", "%.5ld", +__LINE__, 0x000001ed, "1ED", "% 3.X", +__LINE__, 0xfffff0f3, "FFFFF0F3", "%+.6X", +__LINE__, 0xffffffec, "ffffffec", "%x", +__LINE__, 0x002d5ab8, "0x2d5ab8", "%-#x", +__LINE__, 0x0026acff, "2534655", "%0ld", +__LINE__, 0x01d90cd7, "+31001815", "%+.2ld", +__LINE__, -0x1f7abc0, "-33008576", "%7.6d", +__LINE__, 0xfc5babcc, "fc5babcc", "%x", +__LINE__, -0x9b74892, "-163006610", "% .6d", +__LINE__, 0x03931d84, "59972996", "%0.d", +__LINE__, 0x07d261ce, "131228110", "%#ld", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0x00000002, "2", "%+X", +__LINE__, -0x0000604, "-1540", "%+d", +__LINE__, 0x00000000, " ", "%7.x", +__LINE__, 0x00000001, "1", "%.0X", +__LINE__, -0x0005a8e, "-23182", "% d", +__LINE__, 0x03fb2730, "3fb2730", "%7.x", +__LINE__, 0xffffff03, "ffffff03", "%x", +__LINE__, 0x00000000, " ", "%-#3.d", +__LINE__, 0x04025a4b, "0X4025A4B", "%+#X", +__LINE__, -0x0000001, " -1", "%4.d", +__LINE__, 0xfffe00a3, "FFFE00A3", "%+X", +__LINE__, -0x1b26e3c8, "-455533512", "% ld", +__LINE__, 0x000017e5, "6117", "%d", +__LINE__, -0x0e4f3b6, "-15004598", "%0ld", +__LINE__, 0x00000034, "52", "%ld", +__LINE__, 0x0000024c, " 24C", "%4X", +__LINE__, 0xfffedf65, "FFFEDF65", "%-0X", +__LINE__, -0x000ff1f, "-65311", "%+#d", +__LINE__, 0x00000007, " 7", "%7.x", +__LINE__, 0x018656ae, "18656ae", "%3.7x", +__LINE__, -0x0000004, "-4", "%d", +__LINE__, 0x7081292d, "1887512877", "%d", +__LINE__, 0x87d3e48c, "87d3e48c", "%-x", +__LINE__, 0xf99c516e, "0xf99c516e", "% #7.4x", +__LINE__, 0xfffffffa, "FFFFFFFA", "%-1X", +__LINE__, -0x000001d, "-29", "%#ld", +__LINE__, -0x0000001, "-1", "%+ld", +__LINE__, 0x28ab3350, " 682308432", "% 1d", +__LINE__, -0x0000006, "-6", "%ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "%.5X", +__LINE__, -0x0000007, "-7", "%#d", +__LINE__, -0x0000328, " -808", "%6.ld", +__LINE__, -0x29386f00, "-691564288", "%.3d", +__LINE__, -0x059f38a, "-5895050", "%.4ld", +__LINE__, 0xfffff888, "FFFFF888", "%3X", +__LINE__, 0xffffffdf, "ffffffdf", "%0.0x", +__LINE__, -0xb4fc354, "-189776724", "%2d", +__LINE__, 0x00058c07, "363527", "%1.d", +__LINE__, 0x0a256162, "a256162", "%x", +__LINE__, -0x05c87b0, "-6064048", "%0ld", +__LINE__, 0xfffffda1, "fffffda1", "%x", +__LINE__, 0x000034b7, "13495", "%d", +__LINE__, -0x6d1a8918, "-1830455576", "%.1d", +__LINE__, 0x00022290, "139920", "%05ld", +__LINE__, 0x00000000, "0", "%-x", +__LINE__, -0x1f8eafce, "-529444814", "%4.d", +__LINE__, -0x7bf32808, "-2079533064", "% ld", +__LINE__, 0x0000023c, "23c", "% x", +__LINE__, 0x00000039, "39", "%X", +__LINE__, -0x000556d, "-21869", "%ld", +__LINE__, -0x00000ca, "-202", "%ld", +__LINE__, 0x00002e28, "11816", "%-d", +__LINE__, 0x00000011, "17", "%-ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "%-X", +__LINE__, 0xfffdd67f, "0XFFFDD67F", "%#X", +__LINE__, -0x000003d, "-61", "%d", +__LINE__, 0x0000bfce, "0XBFCE", "%-#5.2X", +__LINE__, 0xfffffffc, "fffffffc", "%x", +__LINE__, -0x00aea17, "-715287", "%.5d", +__LINE__, -0x02fce89, "-3133065", "%0d", +__LINE__, 0x007f6ed1, "7F6ED1", "%6X", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, -0x0002761, "-10081", "%#6.2d", +__LINE__, 0x003be8d8, "3BE8D8", "%-X", +__LINE__, 0x00000901, " 2305", "%6.d", +__LINE__, 0x00049916, "0301334", "%3.7ld", +__LINE__, 0x0678ffea, "0X678FFEA", "%#4X", +__LINE__, 0xffffffff, "ffffffff", "%+.0x", +__LINE__, -0x31d2ec61, "-835906657", "%.0d", +__LINE__, 0xfffffffc, "FFFFFFFC", "%0X", +__LINE__, -0x0015588, "-87432", "%d", +__LINE__, 0xffffff3e, "ffffff3e", "%.4x", +__LINE__, 0x0000000a, "10", "%d", +__LINE__, -0x0000003, "-3", "%2.1ld", +__LINE__, -0x000d29a, "-53914", "%ld", +__LINE__, -0x04ccbe0, "-5032928", "%2.2ld", +__LINE__, 0x0357c2a5, "357c2a5", "% 7.x", +__LINE__, 0x00000009, " 9", "% 1.ld", +__LINE__, -0x005908d, "-364685", "%0d", +__LINE__, -0x0000de6, "-3558", "%0ld", +__LINE__, 0x2d395e6b, "+758734443", "%+6d", +__LINE__, 0x001aba58, "1ABA58", "% X", +__LINE__, 0x0ceba5ab, "0XCEBA5AB", "%#.1X", +__LINE__, -0x01a8575, "-1738101", "% 2ld", +__LINE__, 0x0000000d, "13", "%#ld", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x4b856407, "4b856407", "%5x", +__LINE__, 0x006f333c, "6F333C", "%-X", +__LINE__, 0x000000d0, "d0", "%x", +__LINE__, 0x2ecf0d4e, "2ecf0d4e", "%0x", +__LINE__, -0x0000188, "-0000392", "%#1.7ld", +__LINE__, -0x0000037, "-55", "%d", +__LINE__, 0xfffffff1, "FFFFFFF1", "% .1X", +__LINE__, 0x00000001, "0x1", "%#3x", +__LINE__, 0x000005ed, "5ED", "%3X", +__LINE__, 0x031183a3, "31183A3", "%X", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, -0x0018695, "-99989", "%-0.5ld", +__LINE__, -0x0000001, "-01", "%0.2ld", +__LINE__, 0x00007822, "7822", "%+x", +__LINE__, 0x00000000, "0", "% x", +__LINE__, 0xfda2461a, "FDA2461A", "%X", +__LINE__, 0x065c50ef, "106713327", "%2.ld", +__LINE__, 0x00000a81, "a81", "% 0x", +__LINE__, -0x000022e, "-558", "%.0ld", +__LINE__, 0x00013d2f, "81199", "%.2ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%+X", +__LINE__, 0x000015f9, "5625", "%04.ld", +__LINE__, 0x0ab575a2, "179664290", "%0d", +__LINE__, 0x0024d07f, "0X24D07F", "%#X", +__LINE__, 0x07ee35e1, "7EE35E1", "%+X", +__LINE__, -0x00c114c, "-790860", "%#ld", +__LINE__, 0x00003be3, " 15331", "%07.d", +__LINE__, 0xfff87570, "FFF87570", "%4.0X", +__LINE__, -0x14eab419, "-350925849", "%-ld", +__LINE__, -0x000001b, "-27", "%ld", +__LINE__, 0x167ce2ea, "0x167ce2ea", "%#0.x", +__LINE__, -0x00009bc, "-002492", "% 3.6d", +__LINE__, 0xfffffdb9, "0XFFFFFDB9", "%#7.X", +__LINE__, 0x008b2b9d, "8B2B9D", "% X", +__LINE__, 0x000cfec3, "CFEC3", "% 05X", +__LINE__, 0x05970be6, "5970be6", "%x", +__LINE__, 0x00002780, "010112", "%2.6d", +__LINE__, 0x00000005, "+5", "%+d", +__LINE__, 0xfffffffb, "0xfffffffb", "%#3.x", +__LINE__, 0x00000001, "1 ", "%-#5.ld", +__LINE__, -0x0000017, "-23", "%ld", +__LINE__, -0x023b943, "-2341187", "%d", +__LINE__, 0x0000000d, "13", "%ld", +__LINE__, 0x00025a03, "25a03", "% .5x", +__LINE__, 0x3e1ebe24, "3e1ebe24", "% x", +__LINE__, 0x0000013a, "0x13a", "%#5.0x", +__LINE__, 0xfff6f5b3, "FFF6F5B3", "%4.X", +__LINE__, -0x0000a8a, "-2698", "%.3d", +__LINE__, 0x0009dd5f, "9dd5f", "%x", +__LINE__, 0x000003c7, " 3C7", "%04.2X", +__LINE__, 0x1bcfa2f2, "1bcfa2f2", "%+1.x", +__LINE__, 0x0001b4f4, "1b4f4", "%+1.x", +__LINE__, 0x1bc19a90, "465672848", "%#d", +__LINE__, 0xffffffff, "ffffffff", "%+06x", +__LINE__, -0x0000a88, "-2696", "%3.d", +__LINE__, 0x00084a19, "84A19", "%-X", +__LINE__, 0xffe1fc8f, "FFE1FC8F", "%0.1X", +__LINE__, -0x0000a3a, "-2618", "%5d", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, -0x5c6183d, "-96868413", "%+ld", +__LINE__, -0x0000001, "-1", "%-d", +__LINE__, 0x0000faa8, "64168", "%05.d", +__LINE__, 0x003913ef, "3740655", "%ld", +__LINE__, 0x0dde330a, "232665866", "%#ld", +__LINE__, 0xfcfb1a7b, "FCFB1A7B", "%+X", +__LINE__, 0x07b1a81f, " 129083423", "% 0d", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0x00000070, " 112", "%5ld", +__LINE__, 0xffff74d9, "ffff74d9", "%x", +__LINE__, -0x001ab93, "-109459", "%03.d", +__LINE__, 0x0eb6b497, "EB6B497", "%+X", +__LINE__, 0x07adbac2, "128826050", "%#0.4d", +__LINE__, 0xff747068, "FF747068", "%6.X", +__LINE__, -0x190ce98f, "-420276623", "%06.6ld", +__LINE__, -0x0000007, "-7", "%.0d", +__LINE__, 0x0001240f, "1240f", "% 3x", +__LINE__, 0x267ae4a0, "645588128", "%-#ld", +__LINE__, -0x0000001, "-1", "% ld", +__LINE__, -0x0000066, "-00102", "%.5ld", +__LINE__, 0x868fa035, "868fa035", "%x", +__LINE__, 0x00000000, " ", "%-4.ld", +__LINE__, 0xfffffe72, "FFFFFE72", "%4.4X", +__LINE__, 0x00a6b4f4, "10925300", "%#ld", +__LINE__, -0x0000002, "-2", "%00.1d", +__LINE__, -0x00000a3, "-163", "%ld", +__LINE__, 0xfffffffe, "fffffffe", "% 3.x", +__LINE__, 0xffe25941, "ffe25941", "% x", +__LINE__, 0x0000a20f, "41487", "%ld", +__LINE__, -0x000009b, "-155", "%#.3ld", +__LINE__, 0x000c5dc1, "810433", "%4.ld", +__LINE__, 0x00003ec4, "16068", "%ld", +__LINE__, 0x000002f3, "0755", "%04ld", +__LINE__, 0xffffff28, "FFFFFF28", "%.5X", +__LINE__, -0x08450ff, "-8671487", "%-3.0ld", +__LINE__, 0x00000092, "92", "%x", +__LINE__, -0x0000317, "-791", "%d", +__LINE__, 0x0000000d, "d", "%x", +__LINE__, 0x00000036, "36", "%x", +__LINE__, -0x112693f, "-17983807", "%ld", +__LINE__, 0x00004226, "16934", "%0.d", +__LINE__, 0x000001ba, " 442", "% ld", +__LINE__, 0xfffffffc, "0XFFFFFFFC", "%#4X", +__LINE__, 0xffdb3d23, "0xffdb3d23", "% #x", +__LINE__, 0x039eb84d, "39EB84D", "%+.6X", +__LINE__, 0xffffc7da, "ffffc7da", "%0x", +__LINE__, 0xfffffdb6, "FFFFFDB6", "%6X", +__LINE__, 0x001b75b0, "1799600", "%ld", +__LINE__, 0xfffffca2, "FFFFFCA2", "%-X", +__LINE__, 0xffffffba, "ffffffba", "%7.4x", +__LINE__, -0x000124e, "-4686", "%3.ld", +__LINE__, -0x000bec0, "-48832", "% 0d", +__LINE__, 0xfffffca0, "fffffca0", "%2.x", +__LINE__, 0x00b2a462, "11707490", "%ld", +__LINE__, 0x0745a647, "745a647", "%+4.x", +__LINE__, 0xfffffbac, "0XFFFFFBAC", "%#3.X", +__LINE__, -0x0000002, "-2", "%-0.1d", +__LINE__, 0x0006cfdb, "446427", "%#5.d", +__LINE__, -0x0000001, "-1", "%d", +__LINE__, 0x043b134e, "43B134E", "%X", +__LINE__, -0x0000015, "-21", "%ld", +__LINE__, -0x0000114, "-276", "%0d", +__LINE__, -0x0004d4a, "-19786", "%-d", +__LINE__, -0x000001c, "-28", "%ld", +__LINE__, -0x0cb89fc, "-13339132", "%ld", +__LINE__, 0xffffffcf, "ffffffcf", "%x", +__LINE__, 0xf6d2387a, "f6d2387a", "%-x", +__LINE__, -0x00000cd, "-205", "%#ld", +__LINE__, 0x00000000, "0", "%#x", +__LINE__, 0xfffffc81, "fffffc81", "%x", +__LINE__, 0x00000000, " 0", "% ld", +__LINE__, 0x00024fb5, "24fb5", "%x", +__LINE__, 0x000012fa, "12FA", "%X", +__LINE__, 0x0318ce7c, "51957372", "%0d", +__LINE__, 0x02280a99, "2280a99", "%-x", +__LINE__, 0xffffff5c, "FFFFFF5C", "%2.X", +__LINE__, -0x000002e, " -46", "%7ld", +__LINE__, -0x04a73e8, "-4879336", "%4ld", +__LINE__, 0x000007f3, "7f3", "% 1.3x", +__LINE__, 0x00000114, "0x114", "%#x", +__LINE__, 0x0000030c, "30c", "%-x", +__LINE__, 0x001dd0dd, "0x1dd0dd", "%+#5.5x", +__LINE__, 0xfff23de3, "fff23de3", "%-x", +__LINE__, -0x0178f9c, "-1544092", "%d", +__LINE__, 0x02ded8da, "2DED8DA", "%X", +__LINE__, -0x0991672, "-10032754", "%3.d", +__LINE__, 0x6943c150, "6943c150", "%x", +__LINE__, 0xffffc25d, "FFFFC25D", "%4X", +__LINE__, 0x00000c9c, " 0003228", "% .7d", +__LINE__, 0xffffffdf, "FFFFFFDF", "% 6.X", +__LINE__, 0x0001a145, " 1a145", "%6.0x", +__LINE__, 0xffdc832f, "0xffdc832f", "%#.1x", +__LINE__, 0x00699f7b, "699f7b", "%x", +__LINE__, 0xf9575268, "F9575268", "%+0X", +__LINE__, 0x04eb4783, "82528131", "%-ld", +__LINE__, -0x0000023, "-35", "%0ld", +__LINE__, -0x012b08a, "-1224842", "%0d", +__LINE__, 0xffffb587, "FFFFB587", "%X", +__LINE__, 0xffffffe9, "ffffffe9", "%x", +__LINE__, 0x006b5596, " 7034262", "% 0d", +__LINE__, 0x004d0d2a, "+5049642", "%+ld", +__LINE__, -0x002a099, "-172185", "%d", +__LINE__, 0x00000224, "548", "%ld", +__LINE__, 0x03e0cca8, "65064104", "%d", +__LINE__, -0x7bb389d, "-129710237", "%.3ld", +__LINE__, 0xffc630f5, "ffc630f5", "%-07.0x", +__LINE__, 0xfffffff8, "FFFFFFF8", "%X", +__LINE__, 0x0030225b, "3154523", "%#d", +__LINE__, 0xff7f4e28, "ff7f4e28", "%+4.x", +__LINE__, 0x14ee154d, "+351147341", "%+ld", +__LINE__, 0x00000003, "03", "%.2d", +__LINE__, 0xfe0359d6, "fe0359d6", "%x", +__LINE__, 0x002b71c3, "2847171", "%d", +__LINE__, 0x055c4d4a, "55C4D4A", "%-X", +__LINE__, 0xfffb17d2, "fffb17d2", "% .0x", +__LINE__, 0x00000002, "2", "%x", +__LINE__, 0x000018e1, "18E1", "%1.1X", +__LINE__, 0x00000331, "817", "%0d", +__LINE__, -0x0000982, "-2434 ", "%-06.ld", +__LINE__, -0x0000168, "-0000360", "%.7ld", +__LINE__, 0xffffffe9, "FFFFFFE9", "%-0.4X", +__LINE__, 0xe42084ef, "E42084EF", "%X", +__LINE__, 0x000000aa, "aa", "%x", +__LINE__, -0xe8b98b5, "-244029621", "%+d", +__LINE__, -0x00000d9, "-217", "%+2.d", +__LINE__, 0x0000027b, "27B", "%+.0X", +__LINE__, 0x002e52db, "3035867", "%-ld", +__LINE__, -0x00e2ba8, "-928680", "%0.2ld", +__LINE__, 0x003b74d8, "3B74D8", "%X", +__LINE__, -0x000006f, "-111", "%+ld", +__LINE__, 0xf8507e22, "0XF8507E22", "%-#X", +__LINE__, 0x0629f4c0, "103412928", "%-ld", +__LINE__, -0x000002d, "-45", "%0d", +__LINE__, -0x0001db0, "-7600", "%d", +__LINE__, -0x00001bb, " -443", "%5.ld", +__LINE__, 0xffffd2b9, "ffffd2b9", "%+x", +__LINE__, 0xffffe685, "0XFFFFE685", "%#0.7X", +__LINE__, 0x0000a4ce, "A4CE", "% X", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, 0x0000000c, "C", "% X", +__LINE__, 0xfff59369, "FFF59369", "%7X", +__LINE__, 0x00000156, " 156", "%5.X", +__LINE__, 0x02833aa9, "+42154665", "%+2d", +__LINE__, 0x0004a8f3, "+305395", "%+d", +__LINE__, 0x01a09267, "1A09267", "%0.3X", +__LINE__, 0x000004f1, "4f1", "%x", +__LINE__, 0x00000005, "5", "%x", +__LINE__, 0x00000119, " 0281", "% #2.4ld", +__LINE__, -0x0001a2a, "-6698", "%ld", +__LINE__, 0xa3633a57, "A3633A57", "%7X", +__LINE__, -0x10bd2970, "-280832368", "%-d", +__LINE__, 0xffff9c38, "ffff9c38", "%x", +__LINE__, 0xffdbe81e, "ffdbe81e", "%+6.7x", +__LINE__, 0xffffffe7, "FFFFFFE7", "%-3.0X", +__LINE__, 0x0002f6d6, "2f6d6", "%5.x", +__LINE__, 0xffffffff, "ffffffff", "% x", +__LINE__, 0xffc2c07a, "ffc2c07a", "%0.x", +__LINE__, 0xfcc0e13a, "FCC0E13A", "%X", +__LINE__, 0x0000000d, "d", "% x", +__LINE__, 0x0016cac8, "16CAC8", "%-0.3X", +__LINE__, 0x00945dc1, "9723329", "%2d", +__LINE__, 0xf19a1cd1, "F19A1CD1", "%-X", +__LINE__, 0x00000003, "+3", "%+ld", +__LINE__, 0x00000773, "1907", "%ld", +__LINE__, 0x000263e6, "263e6", "%-x", +__LINE__, -0x0238b55, "-2329429", "%d", +__LINE__, 0x00006c56, "6C56", "%X", +__LINE__, 0x0000f34b, "62283", "%#.0ld", +__LINE__, -0x1620e21, "-23203361", "%0ld", +__LINE__, 0xf9257d6a, "f9257d6a", "%2x", +__LINE__, -0x00ed463, "-971875", "%03.d", +__LINE__, 0x02bb94c6, "45847750", "%d", +__LINE__, 0xffffd20c, "0XFFFFD20C", "%#X", +__LINE__, 0x000087d8, "34776", "%.0d", +__LINE__, 0xfffffffc, "FFFFFFFC", "%+7.X", +__LINE__, -0x0009cd5, "-40149", "%-ld", +__LINE__, 0xfffff85e, "FFFFF85E", "% 0.7X", +__LINE__, -0x0000006, " -6", "%+#6.ld", +__LINE__, 0x007ff453, "0x7ff453", "%-#1.x", +__LINE__, 0xffffffe6, "FFFFFFE6", "%2X", +__LINE__, 0x0000001f, "0X1F", "%#4X", +__LINE__, -0x001c157, "-115031", "%.3ld", +__LINE__, 0x00096e06, "617990", "%3.1ld", +__LINE__, 0x0f77271d, "259467037", "%d", +__LINE__, -0x0001403, "-5123", "%d", +__LINE__, 0xffffff8a, "ffffff8a", "%x", +__LINE__, -0x000010f, "-271", "%1.ld", +__LINE__, 0xe573cc4a, "E573CC4A", "%0X", +__LINE__, -0x0000d88, "-3464", "%-d", +__LINE__, 0x0000000e, "14", "%#ld", +__LINE__, -0x000345b, "-13403", "%#d", +__LINE__, 0x00000602, "602", "%+x", +__LINE__, 0x00000011, "17", "%#d", +__LINE__, -0x0000002, "-2", "%+d", +__LINE__, 0x030fe6e6, "51373798", "%d", +__LINE__, 0x00000007, "007", "%.3X", +__LINE__, 0x0001abe0, "0X1ABE0", "%+#.4X", +__LINE__, 0xfffffdb7, "fffffdb7", "%-6x", +__LINE__, 0xffffff8d, "FFFFFF8D", "% 02.2X", +__LINE__, 0xfff12126, "FFF12126", "%X", +__LINE__, 0x0208e32d, "34136877", "%.2d", +__LINE__, 0x11c04b55, "297814869", "%ld", +__LINE__, 0xff1e5ca3, "0xff1e5ca3", "%#x", +__LINE__, 0xf9643f09, "f9643f09", "%x", +__LINE__, -0x003c6da, "-247514", "%4d", +__LINE__, 0xff69d0e7, "FF69D0E7", "%-X", +__LINE__, 0x00006ae9, "0x6ae9", "%#x", +__LINE__, -0x005aefe, "-372478", "%d", +__LINE__, 0x0000000d, "00013", "%3.5ld", +__LINE__, 0x00cc185c, "CC185C", "%X", +__LINE__, 0x3dd14d9f, "3DD14D9F", "%1.4X", +__LINE__, -0x4cc2ad3, "-80489171", "%1.d", +__LINE__, 0xfffff79e, "fffff79e", "%x", +__LINE__, 0xfffeeb03, "fffeeb03", "%-1x", +__LINE__, -0x0b1b15c, "-11645276", "%0ld", +__LINE__, -0x06b558d, "-7034253", "%ld", +__LINE__, 0xfffffe61, "fffffe61", "%x", +__LINE__, -0x0000002, "-2", "%d", +__LINE__, -0x0000162, "-000354", "%-5.6d", +__LINE__, 0x01a23780, "27408256", "%d", +__LINE__, 0xffff3a9b, "ffff3a9b", "% x", +__LINE__, 0xfffffdc7, "0xfffffdc7", "%#4.5x", +__LINE__, 0x00000000, "00", "%.2X", +__LINE__, -0x0000006, "-6", "%0ld", +__LINE__, -0x16072c6, "-23098054", "%#5ld", +__LINE__, -0x07152b8, "-7426744", "%01ld", +__LINE__, 0x0000d6c6, "0x0d6c6", "%#1.5x", +__LINE__, 0x00000f7c, "000f7c", "%+04.6x", +__LINE__, 0x00000bd0, "3024", "%4ld", +__LINE__, 0x0000295e, "0x295e", "%#x", +__LINE__, 0x00002e38, "11832", "%.5d", +__LINE__, -0xa2f5de4, "-170876388", "%#d", +__LINE__, -0x001aa36, "-109110", "%-#d", +__LINE__, 0x03012091, "3012091", "%+2.5X", +__LINE__, -0x00009ed, "-002541", "%-0.6ld", +__LINE__, 0x0000001d, "1d", "%x", +__LINE__, 0xffffe315, "FFFFE315", "%+4X", +__LINE__, 0x0000716b, "716B", "%X", +__LINE__, 0xfffb8315, "0xfffb8315", "%+#x", +__LINE__, 0x00000132, "132 ", "%-7.3x", +__LINE__, 0x00000000, "+0000000", "%+1.7d", +__LINE__, 0xe16d27ab, "E16D27AB", "%X", +__LINE__, 0xffffffe5, "ffffffe5", "%+x", +__LINE__, -0x000ab9d, "-43933", "%ld", +__LINE__, 0xffd042d6, "ffd042d6", "%2x", +__LINE__, 0xffffff9b, "ffffff9b", "%x", +__LINE__, 0x000000fb, "0xfb", "% #1.x", +__LINE__, 0x0000000f, " 15", "%#3ld", +__LINE__, 0xfffba2d8, "0XFFFBA2D8", "%-#0.X", +__LINE__, 0xfffffff8, "0XFFFFFFF8", "% #X", +__LINE__, 0x00000000, " ", "%4.ld", +__LINE__, 0x00000002, "2", "%+x", +__LINE__, 0xfffff314, "FFFFF314", "%-X", +__LINE__, 0x00000000, " 0", "% ld", +__LINE__, -0x0000007, "-07", "%3.2ld", +__LINE__, 0xffffdd80, "FFFFDD80", "%.6X", +__LINE__, -0x000001b, "-27", "%-ld", +__LINE__, -0x0000258, "-600", "%-0d", +__LINE__, 0x00016377, "16377", "%3X", +__LINE__, 0x00000001, "1", "%X", +__LINE__, -0xac5d314, "-180736788", "%d", +__LINE__, -0x000036e, "-878", "% ld", +__LINE__, 0xfe346af4, "fe346af4", "%.5x", +__LINE__, 0xffffffe1, "ffffffe1", "%-7.6x", +__LINE__, -0x0a1df07, "-10608391", "%#.5d", +__LINE__, 0x000000c9, " 0XC9", "%+#5.X", +__LINE__, 0xfffffffe, "fffffffe", "%x", +__LINE__, 0xfffffff8, "fffffff8", "%+x", +__LINE__, -0x4517255, "-72446549", "%.6ld", +__LINE__, 0xfffa3670, "FFFA3670", "%-6X", +__LINE__, 0xffffffe0, "ffffffe0", "%2.x", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, 0x0000230d, "8973", "%#.1d", +__LINE__, 0x00000238, "238", "%0X", +__LINE__, 0xfffce5ab, "FFFCE5AB", "%-X", +__LINE__, 0x0000002c, "2C", "%X", +__LINE__, 0x00000001, " 1", "%4.ld", +__LINE__, 0xffffff8d, "FFFFFF8D", "%-X", +__LINE__, 0x00069c69, "433257", "%06d", +__LINE__, 0xfffffb8d, "0xfffffb8d", "%#x", +__LINE__, 0x000d6a2d, "879149", "%5.5d", +__LINE__, -0x0001fcb, " -8139", "%7.ld", +__LINE__, 0xfff86937, "fff86937", "%-0x", +__LINE__, 0x00059cf9, "367865", "%#.0ld", +__LINE__, 0x02c5d87a, "46520442", "%3.ld", +__LINE__, 0x00000571, "1393", "%ld", +__LINE__, 0x0003c73f, "+247615", "%+4ld", +__LINE__, 0x0000004f, "4f", "% 0x", +__LINE__, 0x00000000, "0", "%-ld", +__LINE__, -0x0e5850f, "-15041807", "% ld", +__LINE__, -0x0000002, " -0002", "%7.4d", +__LINE__, 0xfffffd1b, "fffffd1b", "%05x", +__LINE__, 0x0000041c, " 1052", "% #0.ld", +__LINE__, -0x0000030, "-48", "%d", +__LINE__, -0x0013593, "-79251", "% #d", +__LINE__, 0x00000001, "1", "%+X", +__LINE__, 0x0000056b, " 56b", "%4.x", +__LINE__, -0x0000004, "-4 ", "%-3d", +__LINE__, -0x0000003, "-3", "% ld", +__LINE__, 0xffff7c14, "0XFFFF7C14", "%#X", +__LINE__, 0x02f63dd8, "49692120", "%.7ld", +__LINE__, -0x03c51c9, "-3953097", "%+d", +__LINE__, 0x00ded685, "14603909", "%5.ld", +__LINE__, 0xffffffba, "ffffffba", "%x", +__LINE__, 0x000370e8, "225512", "%#ld", +__LINE__, 0x00000003, "3", "%X", +__LINE__, -0x0024a64, "-150116", "%7.d", +__LINE__, 0xff486ca1, "ff486ca1", "%x", +__LINE__, 0x000001cf, "1CF", "% X", +__LINE__, -0x0002d7e, "-11646", "%-0d", +__LINE__, 0x0a594c65, "a594c65", "%.4x", +__LINE__, -0x0000002, "-0002", "%-5.4ld", +__LINE__, 0x00000000, "", "%00.ld", +__LINE__, 0x00058bc4, "58BC4", "%3X", +__LINE__, 0x0002cf8e, " 184206", "% 0ld", +__LINE__, 0x000009c7, "+2503", "%+4.ld", +__LINE__, 0xed0c984d, "ED0C984D", "%X", +__LINE__, -0x0000058, "-088", "%#.3ld", +__LINE__, 0x0076083d, "0X76083D", "%#6X", +__LINE__, -0x0000001, "-1", "%#d", +__LINE__, -0x6bf1777, "-113186679", "%#ld", +__LINE__, -0x000011f, "-287", "%ld", +__LINE__, 0x001b0e7d, "1B0E7D", "%-4X", +__LINE__, 0x000007ac, " 1964", "%5.ld", +__LINE__, 0x00000005, "5", "%0.d", +__LINE__, -0x00003ba, "-954", "%4.0ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, 0x00000019, "19", "%x", +__LINE__, 0xffffffe0, "ffffffe0", "%-.6x", +__LINE__, 0x0000012a, " 298", "% d", +__LINE__, 0x00002c74, "2c74", "% 4.3x", +__LINE__, 0x000002d5, "725", "%d", +__LINE__, 0x0001c9a9, "1c9a9", "%-02x", +__LINE__, 0xffc928c8, "ffc928c8", "%x", +__LINE__, -0x03ae51f, "-3859743", "% #ld", +__LINE__, 0x0000526d, "526d", "%x", +__LINE__, -0x00028f0, "-10480", "%5ld", +__LINE__, -0x49b4262, "-77283938", "%+02.0d", +__LINE__, 0x028d37f0, "0x28d37f0", "%+#x", +__LINE__, 0xd66e0af9, "D66E0AF9", "%03.X", +__LINE__, -0x00c7707, "-816903", "%0d", +__LINE__, -0x00000d0, "-208", "%-.1ld", +__LINE__, 0x0000c328, "49960", "%d", +__LINE__, 0x34cb86f1, "34CB86F1", "%X", +__LINE__, 0x000000f6, "F6", "%+X", +__LINE__, 0x0a3407ec, "0xa3407ec", "%-#x", +__LINE__, 0x00007ebc, "32444", "%#3.d", +__LINE__, 0xfffd3d65, "fffd3d65", "%x", +__LINE__, 0x0007bc82, "0507010", "%0.7d", +__LINE__, 0x0005bb93, "375699", "%ld", +__LINE__, 0x0ec11cc8, "0XEC11CC8", "%+#6.2X", +__LINE__, 0xfffff9c6, "fffff9c6", "%.5x", +__LINE__, 0xff05ab70, "0XFF05AB70", "%-#.3X", +__LINE__, 0x2328b716, "589870870", "%d", +__LINE__, 0x00001a79, "6777", "%.1d", +__LINE__, 0xfffee573, "fffee573", "%0.1x", +__LINE__, -0x0000929, " -2345", "%7.d", +__LINE__, 0xffffff9a, "FFFFFF9A", "%2.X", +__LINE__, 0xfffffe60, "fffffe60", "%.5x", +__LINE__, 0xfffffcd2, "fffffcd2", "%.7x", +__LINE__, 0x00000001, " 001", "%6.3X", +__LINE__, 0x00011e9c, "+73372", "%+0ld", +__LINE__, 0x0000002a, "2a", "% x", +__LINE__, 0xffffffff, "ffffffff", "%.7x", +__LINE__, -0x0008ee8, "-36584", "%ld", +__LINE__, 0x0000001c, "28", "%-d", +__LINE__, 0x000abeda, "704218", "%d", +__LINE__, 0x001347f7, "1347f7", "%3.0x", +__LINE__, 0x0000023e, "574", "%3.3ld", +__LINE__, 0x00000000, "0", "%-ld", +__LINE__, -0x0016de0, "-93664", "%0ld", +__LINE__, 0xffffff45, "FFFFFF45", "% X", +__LINE__, 0x02dfb08c, "48214156", "%#ld", +__LINE__, 0x003d73a2, "3d73a2", "%6.x", +__LINE__, 0x00147da7, "1342887", "%#d", +__LINE__, -0x5ff0f1e, "-100601630", "%-01ld", +__LINE__, -0x000000b, "-11", "%ld", +__LINE__, 0x00000168, " 168", "%+6.x", +__LINE__, 0xffffc28e, "ffffc28e", "%0x", +__LINE__, -0x00003a2, "-930", "%ld", +__LINE__, 0x0002e56f, " 189807", "% 1.ld", +__LINE__, 0x51abf44f, "0x51abf44f", "%#.7x", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x9581268f, "9581268F", "%+X", +__LINE__, 0xffffff3b, "FFFFFF3B", "%X", +__LINE__, 0x000083d4, " 33748", "% #d", +__LINE__, 0x00000001, "1", "%x", +__LINE__, -0x000e51f, "-58655", "%.0ld", +__LINE__, 0x0003eacb, "256715", "%6ld", +__LINE__, 0x02be09db, " 46008795", "% 0.ld", +__LINE__, 0xfffffffb, "FFFFFFFB", "% X", +__LINE__, 0x000084f5, " 34037", "%6ld", +__LINE__, -0x1127f99, "-17989529", "%#d", +__LINE__, 0x5f6512de, "5f6512de", "%.7x", +__LINE__, 0x00000001, "1", "%x", +__LINE__, 0xfff74ab5, "fff74ab5", "%x", +__LINE__, 0x0eebeb94, "250342292", "%4.ld", +__LINE__, 0x0001b846, "0x1b846", "%#1x", +__LINE__, 0x001e8c32, "1E8C32", "%2X", +__LINE__, -0x0dae932, "-14346546", "%5.1d", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, -0x0000042, "-66", "%ld", +__LINE__, 0xffffff51, "FFFFFF51", "%0.1X", +__LINE__, 0x00000043, "43", "%x", +__LINE__, 0x04c21f39, " 79830841", "% 0ld", +__LINE__, 0x0000061e, "1566", "%03.3d", +__LINE__, -0x0000003, "-3", "%+d", +__LINE__, 0x015b32db, " 22754011", "% .4d", +__LINE__, 0xfffff181, "FFFFF181", "%-X", +__LINE__, 0x000017ec, "0X17EC", "%#X", +__LINE__, 0x000d703e, "880702", "%#ld", +__LINE__, -0x6d7533a0, "-1836397472", "%ld", +__LINE__, 0x0000008a, " 138", "% d", +__LINE__, -0x7368794b, "-1936226635", "%+#d", +__LINE__, 0x0000000d, "0XD", "%#X", +__LINE__, 0x0000030d, "30D", "% X", +__LINE__, 0xfffff9fe, "FFFFF9FE", "%5X", +__LINE__, 0x00001bb2, "7090", "%d", +__LINE__, 0x041d2a0c, "41D2A0C", "%0X", +__LINE__, 0x00012aee, " 76526", "% d", +__LINE__, 0x0000055f, "55f", "%.1x", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#1X", +__LINE__, 0x07b0a971, "+129018225", "%+.2ld", +__LINE__, 0xfffffff8, "FFFFFFF8", "%4X", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0x00000038, "+56", "%+2ld", +__LINE__, 0xfffffc2f, "fffffc2f", "%+7.x", +__LINE__, 0x00004477, "0x4477", "% #x", +__LINE__, 0x0000000d, "0XD", "%+#3X", +__LINE__, 0xf5bf37b1, "F5BF37B1", "%1.X", +__LINE__, 0x1a96f431, "446100529", "%d", +__LINE__, 0x0037edf3, "+3665395", "%+#4.5ld", +__LINE__, 0x0007f2aa, "520874", "%0ld", +__LINE__, -0x00051a3, "-20899", "%+#1.ld", +__LINE__, 0x0000037f, "37F", "%0X", +__LINE__, 0xffffffb4, "ffffffb4", "%x", +__LINE__, -0xd984c00, "-228084736", "%+06ld", +__LINE__, 0xffffe1be, "FFFFE1BE", "%X", +__LINE__, 0xfff20d48, "FFF20D48", "%+6.0X", +__LINE__, 0x000028b7, "0x028b7", "%-#7.5x", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, 0x03f37945, "66287941", "%d", +__LINE__, 0xffffffed, "0XFFFFFFED", "%+#6.4X", +__LINE__, 0x0000f046, "f046", "%x", +__LINE__, 0xe9772b51, "E9772B51", "%-1.X", +__LINE__, 0xfffffffe, "fffffffe", "% x", +__LINE__, 0xfffffffa, "0xfffffffa", "%#x", +__LINE__, 0x00000015, "15", "%-X", +__LINE__, 0x0000003c, "60", "%#ld", +__LINE__, 0x3103952d, "822318381", "%0.ld", +__LINE__, 0x17ba68bb, "398092475", "%2d", +__LINE__, 0x000006c4, "+1732", "%+.2d", +__LINE__, 0x00000043, "67", "%#d", +__LINE__, 0x0043fb55, "4455253", "%.1ld", +__LINE__, 0x00004b76, "4b76", "% 0x", +__LINE__, 0xfff4c56b, "FFF4C56B", "%7X", +__LINE__, 0x00766055, "766055", "%+5x", +__LINE__, -0x000009f, "-159", "%+d", +__LINE__, 0xffff063f, "ffff063f", "%-2x", +__LINE__, 0x00808fc8, "808fc8", "%x", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, 0x000000f1, "00000f1", "%+02.7x", +__LINE__, 0x00000002, "2", "%X", +__LINE__, 0x00000000, "000", "%03d", +__LINE__, 0xe63f73b2, "E63F73B2", "% 1X", +__LINE__, 0xfffffffe, "FFFFFFFE", "%5.1X", +__LINE__, 0x0d3fa38b, "222274443", "%1d", +__LINE__, 0x00000000, "0", "% X", +__LINE__, 0x00000001, " 1", "%04.ld", +__LINE__, 0x00000046, "46", "%0X", +__LINE__, 0x0000761f, " 30239", "% ld", +__LINE__, -0x0002517, "-9495", "%+d", +__LINE__, 0x00000156, "156", "% 0x", +__LINE__, 0x1c55eba2, "1c55eba2", "%.6x", +__LINE__, 0x005af80d, "5af80d", "%.6x", +__LINE__, 0x0000002e, "46", "%d", +__LINE__, -0x0007c0f, "-31759", "%ld", +__LINE__, 0xffffe924, "FFFFE924", "%7X", +__LINE__, 0x00000174, "372", "%ld", +__LINE__, 0xffffffc9, "0xffffffc9", "%-#x", +__LINE__, 0x00000020, "+000032", "%+07d", +__LINE__, 0xffffe5d9, "FFFFE5D9", "%4.5X", +__LINE__, 0xffffffa3, "FFFFFFA3", "%+.3X", +__LINE__, 0x00000a03, "+2563", "%+2d", +__LINE__, 0x001b58ca, "+1792202", "%+4d", +__LINE__, 0xffffffc9, "0xffffffc9", "%+#5x", +__LINE__, -0x0000003, "-3", "% d", +__LINE__, 0xfffffffc, "fffffffc", "%+0x", +__LINE__, -0x0000002, "-02", "%.2d", +__LINE__, 0x000243fb, "148475", "%-ld", +__LINE__, 0x00000001, "1", "%0d", +__LINE__, -0x0000672, "-1650", "%ld", +__LINE__, -0x0005413, "-0021523", "% 7.7d", +__LINE__, 0x00000017, "0X17", "%#X", +__LINE__, 0x00000e48, "3656", "%0d", +__LINE__, 0xffe79b38, "ffe79b38", "%-x", +__LINE__, 0xffffff15, "FFFFFF15", "%+6.1X", +__LINE__, 0xfff0272c, "fff0272c", "%-.5x", +__LINE__, -0x00b706f, "-749679", "%1.ld", +__LINE__, 0x0176aeec, "176AEEC", "%.1X", +__LINE__, -0x00005a1, "-1441", "% 0ld", +__LINE__, -0x0000002, "-00002", "%.5d", +__LINE__, -0xd2e6f5d, "-221146973", "%1ld", +__LINE__, -0x0000001, " -001", "%5.3ld", +__LINE__, 0x00000001, " 1", "%05.ld", +__LINE__, 0x0000749e, "+29854", "%+#d", +__LINE__, 0x00000005, "5", "%d", +__LINE__, 0xfa7128b0, "fa7128b0", "%1.x", +__LINE__, 0xffffbbb4, "0XFFFFBBB4", "%#.1X", +__LINE__, 0x0006862f, "427567", "%d", +__LINE__, 0x00000002, "2", "%X", +__LINE__, 0x000005d4, "5d4", "% x", +__LINE__, 0x001387e1, "1279969", "%-05.0ld", +__LINE__, -0x0035a56, "-219734", "%ld", +__LINE__, -0x4064ecc6, "-1080356038", "%ld", +__LINE__, 0x0000360d, "13837", "%0ld", +__LINE__, -0xea1a85b, "-245475419", "%-.2ld", +__LINE__, 0xffffff2d, "FFFFFF2D", "%X", +__LINE__, 0x00000004, " 0004", "%7.4x", +__LINE__, 0x00f72ffd, "F72FFD", "%-X", +__LINE__, 0x00000fa2, "fa2 ", "%-5x", +__LINE__, 0x05ae1f9a, "95297434", "%#ld", +__LINE__, 0x0000bf2e, "48942", "%3.d", +__LINE__, 0x00000000, " ", "%1.X", +__LINE__, 0x01bcb097, "29143191", "%ld", +__LINE__, 0x0000009c, "156 ", "%-4.0d", +__LINE__, 0xfffffffe, "fffffffe", "% x", +__LINE__, 0x00000001, "1 ", "%-6.d", +__LINE__, 0xffffffef, "ffffffef", "%7.x", +__LINE__, 0xfffffec1, "fffffec1", "%.5x", +__LINE__, -0x000000f, "-15", "%-1d", +__LINE__, -0x0008426, "-33830", "%0ld", +__LINE__, 0x005be0ae, "5BE0AE", "% X", +__LINE__, 0x00000009, " 9", "%+7X", +__LINE__, -0x0007e18, "-32280", "%+0.d", +__LINE__, 0x01697ba1, " 23690145", "% 5.ld", +__LINE__, -0x0012042, "-073794", "%7.6d", +__LINE__, 0x04e9bd0d, "4e9bd0d", "%-2x", +__LINE__, 0xffffffd9, "FFFFFFD9", "%.2X", +__LINE__, -0x01b9632, "-1807922", "%.6ld", +__LINE__, 0x000000cd, "205", "%1.ld", +__LINE__, 0x00000000, " ", "% .0d", +__LINE__, 0xff17bbb1, "ff17bbb1", "%x", +__LINE__, -0x00146d7, "-83671", "%+1.ld", +__LINE__, 0xfffff144, "fffff144", "%x", +__LINE__, 0x000f8dbe, "F8DBE", "%3.X", +__LINE__, -0x000381c, "-14364", "%d", +__LINE__, 0x0000001e, " 30", "%4.1d", +__LINE__, 0x00000016, "22", "%-0d", +__LINE__, 0x00000002, "+02", "%+1.2ld", +__LINE__, 0x0000e803, "59395", "%d", +__LINE__, 0xb4c2448d, "b4c2448d", "%-7x", +__LINE__, 0x000e697d, "944509", "%ld", +__LINE__, 0xfffe6e32, "0XFFFE6E32", "%#X", +__LINE__, 0x00000190, " 190", "%+5.X", +__LINE__, -0x03a2219, "-3809817", "%#6.ld", +__LINE__, -0x000003c, "-60 ", "%-#4.ld", +__LINE__, 0x00000000, " ", "% 03.ld", +__LINE__, -0x074f922, "-7665954", "%ld", +__LINE__, -0x00000f0, "-240", "%-ld", +__LINE__, 0xfffe42d2, "0XFFFE42D2", "%#X", +__LINE__, 0x000000dd, "DD", "%X", +__LINE__, 0x00359abe, "359ABE", "%.1X", +__LINE__, 0xffec7bdf, "FFEC7BDF", "%0.1X", +__LINE__, 0x0ecddcba, "248372410", "%-#3.d", +__LINE__, 0x00ad0dbc, "11341244", "%ld", +__LINE__, -0x0000001, "-1", "%-d", +__LINE__, 0x00050841, "50841", "% .5x", +__LINE__, 0x01d359e7, "1d359e7", "%1.x", +__LINE__, 0xff9efaa3, "FF9EFAA3", "%X", +__LINE__, 0x0007ea10, "+518672", "%+ld", +__LINE__, -0x000671c, "-26396", "%1d", +__LINE__, 0xffffff91, "0xffffff91", "%#4.4x", +__LINE__, 0x00000000, "+", "%+0.0ld", +__LINE__, -0x002c53e, "-181566", "%3.d", +__LINE__, 0xffffff56, "ffffff56", "%x", +__LINE__, 0xfffff589, "FFFFF589", "%+X", +__LINE__, 0x00024d13, "24D13", "%-5.2X", +__LINE__, 0x00000000, " 0", "%6.1d", +__LINE__, 0x00a64f33, "A64F33", "%4.4X", +__LINE__, 0xffebb57a, "FFEBB57A", "%5.4X", +__LINE__, 0xfff3b4a0, "fff3b4a0", "%2.x", +__LINE__, 0xffffffd9, "FFFFFFD9", "%.2X", +__LINE__, 0x00d37b84, "13859716", "%d", +__LINE__, 0x00001e85, "0001E85", "%0.7X", +__LINE__, -0x756148f, "-123081871", "% 7.d", +__LINE__, -0x0319339, "-3248953", "%+#.4d", +__LINE__, -0x00798b8, "-497848", "%#5ld", +__LINE__, -0x0000039, "-57", "%0d", +__LINE__, -0x000b1d7, "-45527", "%+0.ld", +__LINE__, 0xff811fba, "FF811FBA", "%+X", +__LINE__, 0x00000042, " 66", "% ld", +__LINE__, 0xfffffe31, "0XFFFFFE31", "%#X", +__LINE__, 0x00000073, "115", "%ld", +__LINE__, 0x45091a39, "0x45091a39", "%+#3.x", +__LINE__, 0x001270f5, "1270f5", "%-5.6x", +__LINE__, 0xfffd91fd, "fffd91fd", "%x", +__LINE__, -0x0817bad, "-8485805", "%#ld", +__LINE__, -0x32ad55f, "-53138783", "%0d", +__LINE__, 0x00003e57, "15959", "%0ld", +__LINE__, -0x0048756, "-296790", "%2.6d", +__LINE__, 0xff90f45f, "FF90F45F", "% X", +__LINE__, 0x0000e454, "0e454", "% .5x", +__LINE__, 0xfffffffc, "fffffffc", "%x", +__LINE__, 0xfffffff7, "FFFFFFF7", "%-2X", +__LINE__, 0xffdabf0e, "FFDABF0E", "%+X", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#1X", +__LINE__, 0x01516650, "1516650", "% x", +__LINE__, 0xffffff51, "FFFFFF51", "%X", +__LINE__, 0x000000ea, "234", "%00.d", +__LINE__, 0x06db60ca, "115040458", "%5.d", +__LINE__, 0x00000f01, " 3841", "% d", +__LINE__, 0x00000009, "9", "%x", +__LINE__, 0x299b3ba0, "299b3ba0", "%6.7x", +__LINE__, 0x0067f298, "67f298", "%-2.6x", +__LINE__, 0xfffffff5, "FFFFFFF5", "% 2X", +__LINE__, 0x00102ff9, "102FF9", "%-.0X", +__LINE__, 0xffc22393, "0xffc22393", "% #6x", +__LINE__, 0x00007db5, "32181", "%-2ld", +__LINE__, 0x0000b0a3, "0xb0a3", "%#0x", +__LINE__, 0x001ceebb, "1CEEBB", "%-3.4X", +__LINE__, 0x00025101, "0x25101", "%#x", +__LINE__, -0x0000001, "-1", "%0ld", +__LINE__, 0xffffd846, "FFFFD846", "%+2.3X", +__LINE__, 0x00001d79, " 7545", "% 0.1ld", +__LINE__, -0x0000002, " -2", "%5d", +__LINE__, 0xf93b9fdc, "f93b9fdc", "%5x", +__LINE__, 0xffff0021, "FFFF0021", "%6X", +__LINE__, 0x00007cf9, "7cf9", "%3.1x", +__LINE__, -0x0000002, "-2", "%d", +__LINE__, 0x00001d84, "1d84", "%0x", +__LINE__, -0x033201e, "-3350558", "%-2.0d", +__LINE__, 0xfff8a6fb, "FFF8A6FB", "%+.7X", +__LINE__, 0x00006fff, " 28671", "% ld", +__LINE__, -0x02a274a, "-2762570", "%d", +__LINE__, -0x0006628, "-26152", "%00ld", +__LINE__, 0x00000011, "11", "%-x", +__LINE__, -0x0000ed9, "-3801", "%0.ld", +__LINE__, 0xfc5b725d, "FC5B725D", "%X", +__LINE__, 0x3530bd4e, "892386638", "%7.d", +__LINE__, 0x03bb4ff7, "62607351", "%#4.7ld", +__LINE__, 0x00009f86, "9f86", "%x", +__LINE__, 0x0000e727, "59175", "%1d", +__LINE__, 0xfffffdf2, "0XFFFFFDF2", "%#X", +__LINE__, 0x00e60dbf, "0XE60DBF", "% #1.X", +__LINE__, 0xffffffff, "FFFFFFFF", "%+X", +__LINE__, 0x0a16f44e, "0XA16F44E", "%#.0X", +__LINE__, 0x0001f97c, "1f97c", "% x", +__LINE__, 0x0000000d, "13", "%#0ld", +__LINE__, 0x0000002a, "42", "%0ld", +__LINE__, 0x00000007, " +7", "%+5ld", +__LINE__, 0xffffff7f, "FFFFFF7F", "%-X", +__LINE__, 0x000006a6, "1702", "%ld", +__LINE__, 0xfaff2fb1, "faff2fb1", "% x", +__LINE__, 0xffff94ab, "ffff94ab", "%x", +__LINE__, 0x011d611b, "0X11D611B", "%#2.3X", +__LINE__, 0x00000000, " +000", "%+#5.3ld", +__LINE__, -0x87fcc37, "-142593079", "%+d", +__LINE__, -0x0417424, "-4289572", "%+d", +__LINE__, 0x03fabc0c, "3fabc0c", "%x", +__LINE__, 0xfffff880, "fffff880", "%-x", +__LINE__, 0x000002d7, "2d7", "%-02.x", +__LINE__, 0x00003e82, "16002", "%#d", +__LINE__, -0x0003713, "-14099", "% 5d", +__LINE__, -0x0000027, "-39", "%ld", +__LINE__, 0x00013098, "0077976", "%01.7d", +__LINE__, -0x000000c, "-12", "%ld", +__LINE__, -0x00000c0, "-192", "% ld", +__LINE__, 0xffbe9285, "FFBE9285", "%3.X", +__LINE__, 0x00000046, "46", "%x", +__LINE__, 0x00000000, " ", "%+4.x", +__LINE__, 0x00011e72, "73330", "%2.3d", +__LINE__, -0x5276dd7, "-86470103", "%d", +__LINE__, 0x00000013, "19", "%-02.ld", +__LINE__, 0x384118a7, "0X384118A7", "%-#X", +__LINE__, 0x00000000, "0", "% #X", +__LINE__, 0x00000009, "9", "%#ld", +__LINE__, 0x00021145, "135493", "%-ld", +__LINE__, 0xff188a0c, "FF188A0C", "%1.X", +__LINE__, 0xffffffd5, "ffffffd5", "%0x", +__LINE__, 0xfffffffe, "FFFFFFFE", "% 0X", +__LINE__, 0xffff74a3, "ffff74a3", "%x", +__LINE__, 0x01d5a2f8, "1d5a2f8", "%-0.x", +__LINE__, 0xfffffef6, "fffffef6", "%+06.x", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0x00000000, "+0", "%+ld", +__LINE__, 0xfffffffc, "fffffffc", "%4.x", +__LINE__, -0x0000344, "-0836", "% .4d", +__LINE__, 0xfffffffd, "FFFFFFFD", "%0X", +__LINE__, 0x000a3121, "667937", "%#4.4ld", +__LINE__, 0x0001e211, "0X1E211", "%#X", +__LINE__, 0x00000c8b, "00C8B", "%05X", +__LINE__, 0xfffffffe, "fffffffe", "%+0x", +__LINE__, 0x001a53ce, "1725390", "%d", +__LINE__, 0x0000057f, "57f ", "%-7.x", +__LINE__, -0x0073e4d, "-474701", "%#ld", +__LINE__, -0x0000002, " -2", "% 3.d", +__LINE__, 0x482dc404, "482DC404", "%X", +__LINE__, 0x0000011c, "11c", "%-.1x", +__LINE__, 0x00000c12, " 3090", "%5.3ld", +__LINE__, 0xfffe1068, "FFFE1068", "%-.4X", +__LINE__, -0x0055e88, "-351880", "%ld", +__LINE__, 0x000c9cef, "+826607", "%+d", +__LINE__, 0xffffffe3, "ffffffe3", "%0x", +__LINE__, -0x0000ee9, "-3817", "%#ld", +__LINE__, 0xff1f6daa, "FF1F6DAA", "%X", +__LINE__, 0xfffffc4e, "FFFFFC4E", "%5.2X", +__LINE__, -0x000040a, "-1034", "%d", +__LINE__, -0x0000085, "-00133", "% 01.5d", +__LINE__, -0x126c797c, "-309098876", "%5.ld", +__LINE__, 0x00000039, " 57", "% d", +__LINE__, 0xfffffff6, "0xfffffff6", "%#5.x", +__LINE__, 0xfffffff4, "fffffff4", "%7.6x", +__LINE__, 0x00000003, "3", "%ld", +__LINE__, 0x0000f8ae, "f8ae", "%.0x", +__LINE__, 0x003ca1cf, "3973583", "%#3.7d", +__LINE__, 0x14687009, "0x14687009", "%+#3x", +__LINE__, 0xfffff1f7, "0xfffff1f7", "%#4.5x", +__LINE__, 0xfffff17a, "fffff17a", "%3.x", +__LINE__, 0x0011ea18, "1174040", "%ld", +__LINE__, -0x0000019, "-25", "%03.d", +__LINE__, 0x00015d72, "0X15D72", "%-#X", +__LINE__, 0xffde4a41, "ffde4a41", "%x", +__LINE__, 0x00006f1f, "28447", "%d", +__LINE__, 0xffffffbd, "0xffffffbd", "%#.1x", +__LINE__, 0x000013b9, "13B9", "%0X", +__LINE__, -0x00001b9, "-00441", "%1.5d", +__LINE__, 0x00000001, "000001", "%-.6d", +__LINE__, 0x7b602d8f, "+2069900687", "%+0ld", +__LINE__, 0x0005e323, "+385827", "%+ld", +__LINE__, 0x00002fce, "2FCE", "%+0X", +__LINE__, 0x0000000e, "0014", "%.4d", +__LINE__, 0xffffffd6, "0XFFFFFFD6", "%#4.X", +__LINE__, 0x037bf361, "58454881", "%5.ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%-7.5X", +__LINE__, -0x016d4dc, "-1496284", "%6ld", +__LINE__, 0x0005be9a, "0x5be9a", "%-#.5x", +__LINE__, 0xffffffff, "ffffffff", "%1x", +__LINE__, 0x00000055, " 85", "% 7.d", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, -0x0135392, "-1266578", "% ld", +__LINE__, 0x00850f26, "8720166", "%d", +__LINE__, 0xffffee39, "ffffee39", "%0x", +__LINE__, 0x000000dd, "221", "%ld", +__LINE__, 0x00000000, " ", "%6.d", +__LINE__, 0x000000d8, "d8", "%x", +__LINE__, 0x000007ec, "002028", "%4.6ld", +__LINE__, 0x0dab4e67, "0XDAB4E67", "%#X", +__LINE__, 0xfffd7c95, "FFFD7C95", "% 4X", +__LINE__, 0x0009302d, "9302D", "%3.1X", +__LINE__, 0x00000003, " 3", "% d", +__LINE__, 0x0000082f, "82f", "%-x", +__LINE__, 0x0652517f, "652517F", "%-.2X", +__LINE__, -0x1fd8f4e3, "-534312163", "%d", +__LINE__, 0x00000176, "176", "%-x", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0x0000001a, "1A", "%X", +__LINE__, -0x0005740, "-22336", "% 0ld", +__LINE__, 0xffffffff, "ffffffff", "%6x", +__LINE__, 0x1b273b80, "0x1b273b80", "%#x", +__LINE__, 0x00000065, "65", "%X", +__LINE__, 0x6a62138a, "1784812426", "%2ld", +__LINE__, 0x000001a2, "1A2", "%X", +__LINE__, -0x002aafd, "-174845", "%02.ld", +__LINE__, 0x00000014, "20", "%d", +__LINE__, -0x00000c7, " -199", "%7.0ld", +__LINE__, 0xff545bfd, "ff545bfd", "%-x", +__LINE__, -0x002beb9, "-179897", "%02.2ld", +__LINE__, -0x00000df, "-223", "% 02.d", +__LINE__, -0x000d569, "-54633", "%1.ld", +__LINE__, 0x0000000e, "14", "%d", +__LINE__, -0x0077407, "-488455", "% ld", +__LINE__, 0x0001be09, "114185", "%ld", +__LINE__, -0x0000514, "-01300", "%+05.5d", +__LINE__, 0xf1fb397f, "f1fb397f", "%+x", +__LINE__, 0xfdb6707c, "FDB6707C", "%X", +__LINE__, 0x03cad111, "3cad111", "%5.x", +__LINE__, -0x022e72f, "-2287407", "%d", +__LINE__, -0xda35f48, "-228810568", "%d", +__LINE__, -0x02d1fd4, "-2957268", "%1.3d", +__LINE__, 0x0000005f, "+95", "%+2d", +__LINE__, 0xfffbf8a1, "FFFBF8A1", "%4.2X", +__LINE__, 0x0000071e, " 71e", "%6.x", +__LINE__, 0x000cc8a5, "+837797", "%+03ld", +__LINE__, 0x000eebe9, " EEBE9", "%6.X", +__LINE__, -0x2896b204, "-680964612", "%d", +__LINE__, -0x09553f8, "-9786360", "%d", +__LINE__, 0x000015d3, "5587", "%0d", +__LINE__, 0x0000056d, " 56d", "%+4.x", +__LINE__, -0x00624ad, "-402605", "% ld", +__LINE__, 0xfea64ba5, "0xfea64ba5", "%#1x", +__LINE__, 0x004f35c6, "5191110", "%-ld", +__LINE__, -0x1441fe4, "-21241828", "%d", +__LINE__, 0xffffff95, "FFFFFF95", "%X", +__LINE__, 0xfffecf81, "FFFECF81", "%-2.X", +__LINE__, -0x00002bb, "-699", "%-d", +__LINE__, -0x0000c29, "-3113", "% 02ld", +__LINE__, 0x000026a3, " 9891", "% .4d", +__LINE__, 0x00000003, "3", "%-x", +__LINE__, 0x000007db, "+02011", "%+.5ld", +__LINE__, 0xfff99558, "FFF99558", "%.1X", +__LINE__, 0x0000fce6, "64742", "%4.0d", +__LINE__, 0x000b7ea2, "753314", "%ld", +__LINE__, 0x13e5df30, "0X13E5DF30", "%#2.X", +__LINE__, 0x006761c4, "06761C4", "%6.7X", +__LINE__, 0xffffff78, "FFFFFF78", "%0.X", +__LINE__, 0xfffff1c0, "0xfffff1c0", "% #x", +__LINE__, -0x034af1c, "-3452700", "% 06.1d", +__LINE__, 0x000000de, "0000222", "%2.7ld", +__LINE__, 0x000003d8, "0x3d8", "%#4.x", +__LINE__, -0x001a1d1, "-106961", "%3.1d", +__LINE__, -0x0000002, "-2", "% d", +__LINE__, 0x00001de6, "+7654", "%+0ld", +__LINE__, 0x00000001, "001", "%#.3d", +__LINE__, -0x53dacf9f, "-1406848927", "%ld", +__LINE__, 0xfffffffc, "fffffffc", "%3.3x", +__LINE__, -0x00950e8, "-610536", "%3.6ld", +__LINE__, 0xff14ade9, "FF14ADE9", "%6X", +__LINE__, 0x012f5284, "0X12F5284", "% #5X", +__LINE__, 0x00005a21, " 5a21", "%5x", +__LINE__, 0x00000638, "1592", "%2.4ld", +__LINE__, -0x063017b, "-6488443", "%ld", +__LINE__, 0x00000000, "0", "% X", +__LINE__, 0xfffe8ef2, "FFFE8EF2", "%+0X", +__LINE__, -0x0001c96, "-7318", "%.3d", +__LINE__, 0x0000ca7d, "51837", "%ld", +__LINE__, 0x00000001, "1", "%+1x", +__LINE__, 0xfffff7bc, "FFFFF7BC", "%X", +__LINE__, -0x03d15e2, "-4003298", "%ld", +__LINE__, 0xfffffffe, "fffffffe", "% x", +__LINE__, 0x00066183, "+418179", "%+7.1ld", +__LINE__, 0xffffef2e, "ffffef2e", "%-2.x", +__LINE__, 0x00000000, " 000", "%04.3x", +__LINE__, -0x000000f, "-15", "% d", +__LINE__, -0x00001f5, "-501", "%d", +__LINE__, 0x0c67f159, "c67f159", "%6.2x", +__LINE__, -0x0000006, "-6", "%.1d", +__LINE__, 0x00000005, "0X5", "%+#1X", +__LINE__, -0x0000002, " -2", "%6.ld", +__LINE__, 0xeb2183ec, "eb2183ec", "% x", +__LINE__, -0x5e12a322, "-1578279714", "%d", +__LINE__, 0x00000001, "0x1", "%#x", +__LINE__, -0x0001ea4, "-7844", "%0d", +__LINE__, -0x19955a3, "-26826147", "%d", +__LINE__, 0x000002a6, "2A6", "%2.X", +__LINE__, 0x00000002, "2", "%X", +__LINE__, 0xfffffeec, "fffffeec", "%0.4x", +__LINE__, 0xfffffffc, "fffffffc", "%0x", +__LINE__, 0xffdfe740, "FFDFE740", "% X", +__LINE__, -0x0b0b3e7, "-11580391", "%.1d", +__LINE__, 0x8e01077c, "8E01077C", "%5.7X", +__LINE__, 0x3b6b6d55, "996896085", "%1.1d", +__LINE__, 0x000016af, "5807", "%ld", +__LINE__, -0x0004900, "-18688", "%d", +__LINE__, 0xfffd77bc, "FFFD77BC", "%X", +__LINE__, 0x004cbd74, "5029236", "%0d", +__LINE__, 0x00000003, " 00003", "%6.5d", +__LINE__, 0x0004720f, "4720f", "% x", +__LINE__, 0x0e44535d, "e44535d", "%4x", +__LINE__, 0xfffffff9, "FFFFFFF9", "%3.3X", +__LINE__, -0x0000005, "-5", "%-d", +__LINE__, 0x000001a6, "00001A6", "%1.7X", +__LINE__, 0x0000004a, "4A", "%-2.X", +__LINE__, 0xfffff249, "FFFFF249", "%X", +__LINE__, 0x00004345, "4345", "%x", +__LINE__, 0x0197041d, "197041d", "%+0x", +__LINE__, 0x0000019a, " 19a", "% 6.x", +__LINE__, 0xfff98376, "FFF98376", "%X", +__LINE__, 0xfc536c41, "FC536C41", "%X", +__LINE__, -0x0008d91, "-36241", "% d", +__LINE__, 0xf058d69d, "f058d69d", "%4.x", +__LINE__, -0x00013ef, "-5103", "%d", +__LINE__, -0x0000003, "-3", "%00ld", +__LINE__, -0x09e80f0, "-10387696", "%+07ld", +__LINE__, -0x0222c15, "-2239509", "%#0.4ld", +__LINE__, 0x00000004, "4", "%0ld", +__LINE__, -0x02c6b0d, "-2910989", "% 0ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%-4X", +__LINE__, 0xffffff3d, "FFFFFF3D", "%-.0X", +__LINE__, -0x0000015, "-21", "%0d", +__LINE__, 0x131dfc90, "+320732304", "%+d", +__LINE__, 0xffffffff, "ffffffff", "%+x", +__LINE__, 0x000035c8, "13768", "%0ld", +__LINE__, 0x00000033, "0x0033", "%#.4x", +__LINE__, 0x0ce7e8c1, "0xce7e8c1", "%#.7x", +__LINE__, 0xfc18b5d2, "FC18B5D2", "%+.3X", +__LINE__, 0x00000015, "21", "%d", +__LINE__, 0x001a5e7c, "1a5e7c", "%05x", +__LINE__, -0x000fbf0, "-64496", "%ld", +__LINE__, -0x000a4f7, "-042231", "%+2.6d", +__LINE__, -0x0000002, "-002", "%3.3ld", +__LINE__, 0x00728878, "728878", "%0X", +__LINE__, -0x0000002, "-2", "%#.1ld", +__LINE__, -0x00002ef, "-751", "%-0ld", +__LINE__, 0xfffffff7, "fffffff7", "%.3x", +__LINE__, 0x00491867, "0491867", "%.7X", +__LINE__, 0x00000d4d, "3405", "%-ld", +__LINE__, 0x00234e86, "234E86", "%0X", +__LINE__, -0x000001b, "-27", "%ld", +__LINE__, 0x00275255, "2576981", "%.5ld", +__LINE__, 0xfeacc214, "0XFEACC214", "%-#3.X", +__LINE__, -0x0001ce5, "-7397", "%+#2.2ld", +__LINE__, 0x089ddb6a, "144563050", "%d", +__LINE__, 0x003d5a95, "3D5A95", "%1X", +__LINE__, 0x002f0b6d, "3083117", "%d", +__LINE__, 0x1e79e228, "511304232", "%ld", +__LINE__, 0xfffffe6b, "FFFFFE6B", "%+0X", +__LINE__, -0x5104ff3, "-84955123", "%.4ld", +__LINE__, 0xfffff1de, "FFFFF1DE", "%X", +__LINE__, 0x000000cf, "+207", "%+.1ld", +__LINE__, -0x16ad0164, "-380436836", "%+5.d", +__LINE__, 0x001fefa6, "2092966", "%ld", +__LINE__, 0x00000000, "00", "%-.2d", +__LINE__, 0x00195f45, "195f45", "%+0x", +__LINE__, 0x00000001, " 1", "%3.ld", +__LINE__, -0x00001c9, "-457", "% ld", +__LINE__, 0x0002479e, "149406", "%#ld", +__LINE__, 0x001ab18b, "1749387", "%04d", +__LINE__, 0x00000045, "69", "%ld", +__LINE__, 0xfbb13f7d, "fbb13f7d", "%.2x", +__LINE__, 0x03ddc208, "3ddc208", "%x", +__LINE__, 0x00000007, "000007", "%#.6d", +__LINE__, 0x00000000, "0", "%01X", +__LINE__, -0x0023110, "-143632", "%+0.3d", +__LINE__, 0x00000006, "06", "%#.2d", +__LINE__, 0xffff9ec9, "ffff9ec9", "%7x", +__LINE__, -0x08afb12, "-9108242", "% #0.ld", +__LINE__, 0x00000004, "4", "%X", +__LINE__, 0x00059684, "59684", "%x", +__LINE__, 0xfff8d8f5, "FFF8D8F5", "%X", +__LINE__, 0x00b7027d, "+11993725", "%+0.7ld", +__LINE__, 0x0000d814, "55316", "%0ld", +__LINE__, 0x03c95a08, "3c95a08", "%3x", +__LINE__, -0x0b65f9a, "-11952026", "%d", +__LINE__, 0xfd956021, "fd956021", "%0x", +__LINE__, 0x000000ed, "ed", "%0x", +__LINE__, -0x006a80c, "-436236", "%.6ld", +__LINE__, 0xfedb109d, "fedb109d", "%x", +__LINE__, 0x00000001, "1", "%X", +__LINE__, 0x00b3eb71, " 11791217", "% d", +__LINE__, 0x00000016, "16", "%0X", +__LINE__, 0x000001db, " 475", "% ld", +__LINE__, 0x00465eaf, "4611759", "%0d", +__LINE__, 0x0001b423, "1B423", "%0X", +__LINE__, 0x05df95ea, "5df95ea", "%+.5x", +__LINE__, 0x0000000e, " 14", "%7ld", +__LINE__, 0xffffb89e, "ffffb89e", "%+x", +__LINE__, 0x01259918, " 19241240", "% d", +__LINE__, -0x0000f8d, "-003981", "%+#.6d", +__LINE__, 0x00054ae0, "54AE0", "%X", +__LINE__, -0x4589ed4, "-72916692", "% ld", +__LINE__, 0x01017516, "1017516", "%6X", +__LINE__, 0xfffb9f15, "FFFB9F15", "%.2X", +__LINE__, 0x005f8394, "5F8394", "%.2X", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, -0x0000001, " -1", "%7.1ld", +__LINE__, 0x004367af, "4417455", "%4.ld", +__LINE__, 0xffffff86, "ffffff86", "%4.5x", +__LINE__, -0x0000d17, "-3351", "%2.0ld", +__LINE__, 0xffffff31, "ffffff31", "%.6x", +__LINE__, -0x0000001, "-1", "%ld", +__LINE__, -0x3d785fab, "-1031298987", "%d", +__LINE__, -0x0000002, "-2", "%-0ld", +__LINE__, 0x0000019c, "412", "%d", +__LINE__, -0x0006f54, "-28500", "%d", +__LINE__, 0xfffe3524, "FFFE3524", "% 6.2X", +__LINE__, -0x128d3c00, "-311245824", "%2d", +__LINE__, -0x3be71293, "-1004999315", "%d", +__LINE__, 0x0000659d, "26013", "%d", +__LINE__, 0x2d947538, "+764704056", "%+5d", +__LINE__, 0xffa2a420, "FFA2A420", "%0X", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0x04477c14, "4477c14", "%.6x", +__LINE__, -0x06e145b, "-7214171", "%d", +__LINE__, 0x00009c01, "39937", "%-.1d", +__LINE__, 0xffde174b, "ffde174b", "% 0x", +__LINE__, 0x0001fbae, "1FBAE", "%01.X", +__LINE__, -0x06b8406, "-7046150", "%d", +__LINE__, 0x000005b8, "005b8", "%05x", +__LINE__, -0x02d780b, "-2979851", "%1d", +__LINE__, 0x00209e26, "2137638", "%2d", +__LINE__, 0x0000041a, "41A", "%0X", +__LINE__, 0x2a77f42c, "2A77F42C", "%02X", +__LINE__, 0x13b6ee14, "+330755604", "%+0d", +__LINE__, -0x0000002, "-2 ", "%-6.d", +__LINE__, -0x0001eee, "-7918", "% #2.ld", +__LINE__, 0xffffffff, "FFFFFFFF", "% .5X", +__LINE__, 0x20d11927, "20d11927", "% 0.x", +__LINE__, -0x0018690, "-99984", "% ld", +__LINE__, 0x000002a0, "2A0", "%-0X", +__LINE__, -0x0000511, "-1297", "%+d", +__LINE__, 0x0e782f31, "242757425", "%-0.ld", +__LINE__, 0x2ce06da0, "752905632", "%#0ld", +__LINE__, 0x00000062, "62 ", "%-07x", +__LINE__, -0x015d9d8, "-1432024", "% 7d", +__LINE__, 0xc9125ea8, "c9125ea8", "%x", +__LINE__, 0x00000006, "6", "%.0ld", +__LINE__, 0x0000019c, "19c", "%x", +__LINE__, 0x00000000, " ", "%6.d", +__LINE__, 0x00043e89, "278153", "%0ld", +__LINE__, 0x3e422abd, "1044523709", "%ld", +__LINE__, 0x0220a75d, "35694429", "%#7.6d", +__LINE__, 0x0000c21c, "C21C", "% X", +__LINE__, 0x000074ab, "29867", "%d", +__LINE__, 0x056b22aa, "56B22AA", "%+0.X", +__LINE__, 0xfffffff9, "FFFFFFF9", "%X", +__LINE__, 0x00000000, "0", "%X", +__LINE__, 0xf094a4f4, "f094a4f4", "%+4.x", +__LINE__, -0x1dad0244, "-497877572", "%d", +__LINE__, 0xffffffff, "FFFFFFFF", "%.1X", +__LINE__, 0xfffffe2d, "fffffe2d", "%7.x", +__LINE__, 0x0000042b, "0x42b", "%#x", +__LINE__, -0x0000001, "-1", "% d", +__LINE__, 0x00e77ef5, " 15171317", "% 7.ld", +__LINE__, 0x00006210, " 25104", "% 06d", +__LINE__, 0x0011187a, "1120378", "%-ld", +__LINE__, -0x000000b, "-11", "% #ld", +__LINE__, 0x14cfaff0, "14cfaff0", "%-2.3x", +__LINE__, 0xffff74ea, "FFFF74EA", "%3.X", +__LINE__, 0x000bfb9d, "bfb9d", "%x", +__LINE__, 0xfffffffe, "FFFFFFFE", "%X", +__LINE__, 0x00014500, "0X14500", "%#4.X", +__LINE__, -0x0000001, "-1", "%#1d", +__LINE__, -0x0000024, "-36", "%-0d", +__LINE__, -0x6528828, "-106072104", "%d", +__LINE__, 0x00000075, " 117", "% #d", +__LINE__, 0xff027d67, "ff027d67", "%0x", +__LINE__, 0x0012b8b3, "12b8b3", "%0.1x", +__LINE__, 0x1070147b, "275780731", "%.6ld", +__LINE__, 0xffffe88e, "FFFFE88E", "%1.3X", +__LINE__, 0xfffffc0d, "fffffc0d", "%00.6x", +__LINE__, 0xffd889f5, "ffd889f5", "%x", +__LINE__, 0x00000470, "1136", "%0ld", +__LINE__, 0x000297f8, "169976", "%ld", +__LINE__, 0xfffffffe, "fffffffe", "%+1x", +__LINE__, 0x0000064a, "64a", "%x", +__LINE__, -0x3d71e43b, "-1030874171", "%1.d", +__LINE__, -0x0000004, "-4 ", "%-3.d", +__LINE__, 0xfffff132, "FFFFF132", "%0.0X", +__LINE__, 0x37b6356f, "37b6356f", "%-x", +__LINE__, 0xffffff7a, "FFFFFF7A", "%.0X", +__LINE__, 0x00023553, "23553", "%x", +__LINE__, 0x39a4c29f, "39a4c29f", "%+5.x", +__LINE__, 0xffffffcc, "ffffffcc", "%x", +__LINE__, 0x0003a83b, "239675", "%#6ld", +__LINE__, 0x00000002, "2", "%0x", +__LINE__, -0x09b4e8c, "-10178188", "%+03.ld", +__LINE__, 0x00000002, "0000002", "%-#.7ld", +__LINE__, 0x00000b5e, "2910", "%-04ld", +__LINE__, -0x0000254, "-596", "%+0d", +__LINE__, 0x00000001, "1", "%+1.x", +__LINE__, 0xf8290d3e, "0XF8290D3E", "% #X", +__LINE__, 0x00000035, "035", "%3.3X", +__LINE__, 0x00131d7d, "131D7D ", "%-7.6X", +__LINE__, 0xffdbb36a, "0xffdbb36a", "%#.6x", +__LINE__, 0xc7275816, "c7275816", "%04.x", +__LINE__, 0x00bae994, "12249492", "%0ld", +__LINE__, 0x00000002, "+2", "%+0.0ld", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, 0xffffffe0, "ffffffe0", "%x", +__LINE__, 0x00000036, "36", "%.0X", +__LINE__, 0xfffffffd, "FFFFFFFD", "%1X", +__LINE__, 0xffffffc8, "ffffffc8", "%+x", +__LINE__, 0xe71c3689, "e71c3689", "%x", +__LINE__, 0x00000007, "7 ", "%-3.ld", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, 0x00030400, "030400", "%-4.6x", +__LINE__, 0xbd8c6fa7, "BD8C6FA7", "%-6X", +__LINE__, 0x00000233, "0000563", "%.7ld", +__LINE__, 0xfef92e35, "fef92e35", "%x", +__LINE__, 0xffff2172, "ffff2172", "%3x", +__LINE__, 0x00001233, "1233", "% X", +__LINE__, -0x000d2e1, "-53985", "%-0d", +__LINE__, -0x3ba8cb5b, "-1000917851", "%0d", +__LINE__, -0x4fefb9a, "-83819418", "%5.ld", +__LINE__, 0xffffe9eb, "FFFFE9EB", "%X", +__LINE__, 0x1e472dc3, "507981251", "%ld", +__LINE__, -0x0077046, "-487494", "%0d", +__LINE__, 0x0002c4c9, "+181449", "%+7.d", +__LINE__, 0xfffffe63, "fffffe63", "%x", +__LINE__, 0xfff5a6db, "FFF5A6DB", "%X", +__LINE__, 0x00174442, "174442", "%-5.0X", +__LINE__, 0x017891d9, "17891D9", "%+5.X", +__LINE__, 0x0261966b, "261966B", "%-X", +__LINE__, -0x3e58614d, "-1045979469", "%ld", +__LINE__, 0x002c4c41, "+2903105", "%+01ld", +__LINE__, 0x0000000c, "012", "%#.3d", +__LINE__, 0x0380f73a, "58783546", "%ld", +__LINE__, 0x000002c7, "0000711", "%2.7ld", +__LINE__, 0x00000002, " 002", "% 04ld", +__LINE__, 0x00687ca0, "687CA0", "%X", +__LINE__, 0x0000058a, "1418", "%0ld", +__LINE__, -0x0000642, "-1602", "% ld", +__LINE__, 0x0001f4f1, "1F4F1", "%X", +__LINE__, 0x0026d6fc, "+2545404", "%+4.ld", +__LINE__, 0x05dd423c, "+98386492", "%+#ld", +__LINE__, 0x0000782c, "0782C", "%3.5X", +__LINE__, 0xf67d91f8, "f67d91f8", "%-x", +__LINE__, 0xffffcf2d, "ffffcf2d", "%+0x", +__LINE__, -0x00af8a6, "-719014", "%0ld", +__LINE__, -0xe606ef9, "-241200889", "%ld", +__LINE__, 0xfe9d87f7, "fe9d87f7", "%+x", +__LINE__, 0x00000d44, "d44", "% 1.x", +__LINE__, 0x008716f5, "8716f5", "%2x", +__LINE__, 0x000027d4, "27D4", "% X", +__LINE__, 0xfdfd92ea, "FDFD92EA", "%-.4X", +__LINE__, 0xfffe764f, "FFFE764F", "%X", +__LINE__, 0xff699032, "ff699032", "%3.x", +__LINE__, 0xffffffff, "FFFFFFFF", "%-3X", +__LINE__, -0x368ba995, "-915122581", "%+#.6ld", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, 0x0000035e, " 862", "% 1d", +__LINE__, 0xfe703e67, "fe703e67", "%07.0x", +__LINE__, 0xfffffffe, "fffffffe", "%4.x", +__LINE__, 0x000e20cf, "e20cf", "%0x", +__LINE__, 0x000063b5, "0X63B5", "%-#X", +__LINE__, 0xfffffffa, "fffffffa", "%+2.x", +__LINE__, 0xffffffff, "FFFFFFFF", "%2.X", +__LINE__, 0xfdfd69da, "FDFD69DA", "%.0X", +__LINE__, 0x00002f61, "0x2f61", "%#3.x", +__LINE__, 0x00000009, "9", "%x", +__LINE__, 0xffffff86, "ffffff86", "%6x", +__LINE__, 0xffffffe4, "ffffffe4", "%0x", +__LINE__, 0x0062e73b, "+6481723", "%+0ld", +__LINE__, -0x2b059130, "-721785136", "%+d", +__LINE__, -0x0000073, "-115", "%d", +__LINE__, 0xf596efcf, "f596efcf", "%x", +__LINE__, 0x0002f1cb, "2F1CB", "%0X", +__LINE__, -0x0000635, "-01589", "%.5ld", +__LINE__, 0xfffa011a, "FFFA011A", "%0X", +__LINE__, 0x00000047, " 47", "%4X", +__LINE__, 0xfffffbc0, "FFFFFBC0", "%5.2X", +__LINE__, 0x00000015, "15", "% X", +__LINE__, 0x002a87a6, "2a87a6", "%.1x", +__LINE__, -0x000069c, "-1692", "%+ld", +__LINE__, 0xfffffffd, "fffffffd", "%+x", +__LINE__, 0xfeda51f5, "FEDA51F5", "%0X", +__LINE__, 0x001781a4, "1781a4", "%-0x", +__LINE__, 0xe77358d4, "e77358d4", "%+0x", +__LINE__, 0x00000084, " 84", "%3.x", +__LINE__, 0xffff0cb2, "FFFF0CB2", "%+5.X", +__LINE__, 0x0009fa17, "653847", "%0.0ld", +__LINE__, -0x0000c92, "-3218", "%d", +__LINE__, 0x0004ebbb, "4ebbb", "%x", +__LINE__, 0x2e72568c, "+779245196", "%+#ld", +__LINE__, 0xffae86a7, "ffae86a7", "%.7x", +__LINE__, 0xffdf3f04, "ffdf3f04", "%x", +__LINE__, 0x000000c7, "199", "%2.d", +__LINE__, -0x0004a55, "-19029", "%ld", +__LINE__, 0x00564ef9, "5656313", "%.6ld", +__LINE__, 0xffffc205, "ffffc205", "%+.0x", +__LINE__, -0x135085d0, "-324044240", "%#.5d", +__LINE__, 0xfffffffe, "fffffffe", "%-7x", +__LINE__, -0x0000003, "-3", "%.1ld", +__LINE__, 0xffda9e0b, "ffda9e0b", "%+0x", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0xffffffda, "ffffffda", "%.6x", +__LINE__, 0x5efdb3d1, "+1593684945", "%+0d", +__LINE__, -0x00000ca, "-202", "% 4.d", +__LINE__, -0x0014433, "-82995", "%.3d", +__LINE__, -0x0000002, "-000002", "% .6ld", +__LINE__, 0x24aac879, "615172217", "%.7d", +__LINE__, -0x1db3c1d, "-31144989", "%+#4ld", +__LINE__, 0x000945ad, "0x945ad", "%#1x", +__LINE__, 0x0000000a, "10", "%#.1ld", +__LINE__, -0x002a2e5, "-172773", "%d", +__LINE__, 0xfffffff3, "FFFFFFF3", "%5X", +__LINE__, 0x0000000e, "e", "%+x", +__LINE__, 0x335333dc, "861090780", "%6.d", +__LINE__, 0xfffa16f4, "FFFA16F4", "%6X", +__LINE__, 0xffffc727, "ffffc727", "%+2.x", +__LINE__, 0x00000273, "273", "%x", +__LINE__, -0x000000f, "-15", "%-0d", +__LINE__, 0x00065fbd, "417725", "%5.1d", +__LINE__, 0x00000ed5, "3797", "%d", +__LINE__, 0x30a40024, "30A40024", "%3.7X", +__LINE__, 0x00000054, "84", "%ld", +__LINE__, 0x00000515, "01301", "%.5ld", +__LINE__, 0x00000897, "+02199", "%+.5d", +__LINE__, -0x0001bcc, "-7116", "% ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%7X", +__LINE__, 0x00000013, "0X13", "%#X", +__LINE__, 0xffffffff, "0xffffffff", "% #x", +__LINE__, 0x00000006, "6", "%ld", +__LINE__, -0x00000c3, "-195", "%1.ld", +__LINE__, -0x005291e, "-338206", "%+d", +__LINE__, 0xffb437a7, "FFB437A7", "%-0X", +__LINE__, 0xff8335cb, "ff8335cb", "%x", +__LINE__, 0x0000006a, "6A", "%2X", +__LINE__, -0x004f629, "-325161", "% .4d", +__LINE__, 0x003698ef, "3578095", "%0ld", +__LINE__, 0x6b5cdf3a, "6b5cdf3a", "%-x", +__LINE__, 0xe9bc5c21, "e9bc5c21", "%+x", +__LINE__, -0x0000001, " -1", "%+6.ld", +__LINE__, 0xfffeffc8, "FFFEFFC8", "%6.X", +__LINE__, 0xff070a73, "ff070a73", "%+.7x", +__LINE__, 0x0023f8ae, "2357422", "%07.4ld", +__LINE__, 0x00000000, "0", "%X", +__LINE__, 0x00000016, "16", "%0X", +__LINE__, -0x000005a, " -90", "%4d", +__LINE__, 0x00000116, "116", "% .3x", +__LINE__, 0xfffed024, "fffed024", "%-x", +__LINE__, 0xfb907950, "fb907950", "%.0x", +__LINE__, 0x0101a1e5, "101a1e5", "%x", +__LINE__, -0x09e7684, "-10385028", "%-#ld", +__LINE__, 0xffffffff, "ffffffff", "%1x", +__LINE__, 0xfffffff6, "fffffff6", "%x", +__LINE__, 0x00000078, "78", "%x", +__LINE__, 0xe6bca9c9, "0XE6BCA9C9", "%#.5X", +__LINE__, -0x0000010, "-16", "%d", +__LINE__, -0x1348f685, "-323548805", "%d", +__LINE__, 0x4dd85797, "1306023831", "%ld", +__LINE__, -0x0000080, "-128", "%.2d", +__LINE__, -0xaed13a7, "-183309223", "%+ld", +__LINE__, -0x000002f, "-47", "% d", +__LINE__, -0x679911f, "-108630303", "%ld", +__LINE__, 0xfffff221, "FFFFF221", "% .7X", +__LINE__, 0x0007476c, "7476c", "%x", +__LINE__, 0xffffe02a, "0xffffe02a", "%#7x", +__LINE__, 0x00000ebb, "0XEBB", "%#X", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%-#X", +__LINE__, 0x00281896, "281896", "%+1.x", +__LINE__, 0x0000085d, " 0X85D", "%#6.3X", +__LINE__, 0x000112bf, "112BF", "%X", +__LINE__, 0xf5518fbf, "F5518FBF", "% X", +__LINE__, -0x00c945b, "-824411", "%ld", +__LINE__, 0x00001b43, "0x1b43", "%-#x", +__LINE__, -0x5872a246, "-1483907654", "%#7.7ld", +__LINE__, 0x00001f96, "8086", "%#d", +__LINE__, 0xfffffff9, "FFFFFFF9", "%X", +__LINE__, -0x006e244, "-451140", "% .3d", +__LINE__, -0x0382188, "-3678600", "%0.2ld", +__LINE__, 0x00000006, "6", "%-x", +__LINE__, 0x00000036, "54 ", "%-5.d", +__LINE__, -0x0000439, " -1081", "%#6.3ld", +__LINE__, 0xfff911c6, "FFF911C6", "%X", +__LINE__, -0x03454dc, "-3429596", "%d", +__LINE__, -0x0363e8d, "-3554957", "%-.2ld", +__LINE__, 0x00000000, "000", "%.3X", +__LINE__, -0x59bb030f, "-1505428239", "%0ld", +__LINE__, 0x073c94d8, "121410776", "%-d", +__LINE__, -0x001ef94, "-126868", "%5.1ld", +__LINE__, 0xfff65fc5, "FFF65FC5", "%0X", +__LINE__, 0xfffffff4, "fffffff4", "%-x", +__LINE__, 0x00001d83, "07555", "%5.5d", +__LINE__, 0x0012b40a, "1225738", "%ld", +__LINE__, -0x0000006, "-6", "%0ld", +__LINE__, 0xfffffffc, "fffffffc", "%06.0x", +__LINE__, -0x0000002, "-00002", "%#.5ld", +__LINE__, 0xf9932c1d, "f9932c1d", "%-x", +__LINE__, -0x46a31d9, "-74068441", "%.3ld", +__LINE__, 0x000987e9, "987E9", "%1X", +__LINE__, 0x0000000f, "15", "%-ld", +__LINE__, -0x0001c4d, "-7245", "%ld", +__LINE__, -0x007deee, "-515822", "%2.6d", +__LINE__, 0xffffffa2, "FFFFFFA2", "%.6X", +__LINE__, 0x00000001, "1", "%-ld", +__LINE__, 0xfc106bde, "fc106bde", "%.4x", +__LINE__, 0x0002f1f8, "0x2f1f8", "%#7.x", +__LINE__, -0x06a290b, "-6957323", "%-ld", +__LINE__, -0x0000037, " -55", "%4ld", +__LINE__, 0x0000152e, "5422", "%2.d", +__LINE__, 0xfffffcb2, "0XFFFFFCB2", "%#3.X", +__LINE__, 0x1b7ca086, "1b7ca086", "%+x", +__LINE__, 0x00000001, "1", "%ld", +__LINE__, 0x006775fc, "6775fc", "%3.2x", +__LINE__, 0x0000000e, "0XE", "%#3.X", +__LINE__, 0xffffffff, "0xffffffff", "%+#4.x", +__LINE__, 0x00001246, "1246", "%X", +__LINE__, 0xffffaed6, "ffffaed6", "%2x", +__LINE__, -0x3a2dec78, "-976088184", "% 0ld", +__LINE__, 0x0001423b, "1423b", "%01x", +__LINE__, 0x00000007, " 0X7", "%#4.X", +__LINE__, 0x01a7ff5a, "27787098", "%.4ld", +__LINE__, -0x0020d05, "-134405", "%-d", +__LINE__, 0xffffff9a, "ffffff9a", "%-.1x", +__LINE__, 0xffff3557, "ffff3557", "%x", +__LINE__, 0x08828e35, "8828e35", "%+.1x", +__LINE__, 0x000006b2, "001714", "%04.6ld", +__LINE__, 0x00000013, "19", "%.0ld", +__LINE__, -0x00341a5, "-213413", "%#d", +__LINE__, -0x0000043, "-67", "%d", +__LINE__, -0x074dce3, "-7658723", "%.1d", +__LINE__, -0x16de2df3, "-383659507", "% ld", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0x00000ce7, "ce7", "% 2.1x", +__LINE__, 0xffecd377, "ffecd377", "% 0x", +__LINE__, 0xa4e8465c, "a4e8465c", "% x", +__LINE__, 0x000005e8, "1512", "%d", +__LINE__, 0x00000513, "1299", "%d", +__LINE__, 0xffffffb8, "FFFFFFB8", "%X", +__LINE__, 0x00000003, "00003", "%3.5x", +__LINE__, -0x0000003, "-3 ", "%-3.ld", +__LINE__, 0xad53f01d, "ad53f01d", "%0x", +__LINE__, 0x0f1c1dae, "253500846", "%-#.0d", +__LINE__, 0xff1753c0, "0xff1753c0", "%#3.x", +__LINE__, -0x00389c5, "-231877", "%d", +__LINE__, 0x0000016e, "00016E", "%.6X", +__LINE__, -0x54d3310f, "-1423126799", "%-d", +__LINE__, 0x00000005, "0X5", "%#.1X", +__LINE__, 0xfffffffd, "0XFFFFFFFD", "%#5.3X", +__LINE__, 0xfffffe0e, "fffffe0e", "%-x", +__LINE__, 0xa3c02157, "a3c02157", "%.5x", +__LINE__, 0x00005765, "22373", "%d", +__LINE__, -0x12668cd, "-19294413", "%+ld", +__LINE__, -0x66544da, "-107300058", "%2d", +__LINE__, 0x8646c605, "0X8646C605", "% #X", +__LINE__, 0x000001f5, "1F5", "%X", +__LINE__, 0x01b33ae4, "28523236", "%5ld", +__LINE__, 0x000007ce, "7ce", "%3.x", +__LINE__, 0x00000355, "355", "%X", +__LINE__, 0x000001ce, "1CE", "% X", +__LINE__, 0xfffffccd, "fffffccd", "%7.0x", +__LINE__, -0x0000001, "-1", "%0ld", +__LINE__, 0x000640b6, "640b6", "%5.x", +__LINE__, 0x0038c4ec, "3720428", "%5.4d", +__LINE__, -0x0f10b5e, "-15797086", "%2ld", +__LINE__, 0x256c815f, "256c815f", "%4.x", +__LINE__, 0x00000682, " 1666", "%6ld", +__LINE__, -0x00000ab, "-171", "%2ld", +__LINE__, 0x00000003, "3", "%0d", +__LINE__, 0x063f5075, "63F5075", "%X", +__LINE__, 0xff83b5d0, "FF83B5D0", "%7.X", +__LINE__, 0xffffffec, "ffffffec", "%x", +__LINE__, 0xffb551c4, "0XFFB551C4", "% #4.X", +__LINE__, -0x071f057, "-7467095", "%3.7d", +__LINE__, 0x00634879, "6506617", "%#ld", +__LINE__, 0x000001d7, "471", "%d", +__LINE__, 0x00a7da92, "A7DA92", "% .4X", +__LINE__, 0x00000003, "3 ", "%-2.ld", +__LINE__, -0x0000004, "-0004", "%.4d", +__LINE__, -0x01dea32, "-1960498", "% #7.d", +__LINE__, 0x53c4159f, "53C4159F", "%1.7X", +__LINE__, -0x1ad7904, "-28145924", "%#d", +__LINE__, -0x0000a85, "-2693", "%ld", +__LINE__, -0x0000c7d, "-3197", "%d", +__LINE__, 0xfffffffc, "FFFFFFFC", "%+0X", +__LINE__, 0x00000004, "00004", "%1.5d", +__LINE__, 0x0000b761, "46945", "%5ld", +__LINE__, -0x0ee3b2c, "-15612716", "%.6d", +__LINE__, 0x0677a73d, "677a73d", "% x", +__LINE__, -0x5f96020, "-100229152", "% d", +__LINE__, 0x00000000, " 0", "%#7X", +__LINE__, -0x5d1cb5b, "-97635163", "% ld", +__LINE__, -0x00a8d8b, "-691595", "%-0ld", +__LINE__, 0xffffffa2, "FFFFFFA2", "%X", +__LINE__, 0xffffffc9, "FFFFFFC9", "%X", +__LINE__, 0x0b180d35, "B180D35", "%X", +__LINE__, 0xfc0b94ce, "fc0b94ce", "%.1x", +__LINE__, 0x0012cd7b, "12CD7B", "% X", +__LINE__, -0x02f1da8, "-3087784", "%ld", +__LINE__, -0x000a6f9, "-42745", "%-ld", +__LINE__, -0x000006d, "-109 ", "%-6d", +__LINE__, 0x00000001, "+1", "%+0d", +__LINE__, 0x00000001, "1", "%1d", +__LINE__, 0xfffffff8, "fffffff8", "%5.x", +__LINE__, -0x00fc4d7, "-1033431", "%+0.5ld", +__LINE__, 0xffff41b4, "0xffff41b4", "%#x", +__LINE__, -0x0000d37, "-3383", "%ld", +__LINE__, 0xffc4e405, "ffc4e405", "%7x", +__LINE__, 0xffffffb0, "FFFFFFB0", "%04X", +__LINE__, -0x0054477, "-345207", "%01.ld", +__LINE__, 0x00512778, "0x512778", "%#3.0x", +__LINE__, 0x00000007, " 7", "%7.d", +__LINE__, 0x00000008, " 00008", "% .5ld", +__LINE__, 0x000053fd, "21501", "%.4ld", +__LINE__, 0x0000370c, "370c", "%2x", +__LINE__, -0x44670a7, "-71725223", "%3d", +__LINE__, 0x00000064, " 64", "%+5x", +__LINE__, 0xfffffffc, "FFFFFFFC", "%X", +__LINE__, 0xf7bbf094, "f7bbf094", "%3x", +__LINE__, 0xfffeb268, "FFFEB268", "%X", +__LINE__, 0x00001ef0, "1ef0", "%4.x", +__LINE__, 0x05ad9aa4, " 95263396", "% 0.ld", +__LINE__, 0xf294dca7, "F294DCA7", "% 4.X", +__LINE__, -0x0000003, "-000003", "%.6d", +__LINE__, 0xfff57471, "fff57471", "% x", +__LINE__, 0x0a848cfd, "176459005", "%d", +__LINE__, -0x000002e, "-46", "%.0d", +__LINE__, 0x00000051, " +81", "%+5d", +__LINE__, -0x000072b, "-0001835", "%06.7d", +__LINE__, -0x0000002, " -2", "%+#6ld", +__LINE__, 0x00000003, "3", "%x", +__LINE__, 0xfffd1799, "FFFD1799", "%6.X", +__LINE__, 0x00000005, "5", "%ld", +__LINE__, 0x0052138b, "5378955", "%#7.7ld", +__LINE__, 0x000000c0, " 192", "% 7ld", +__LINE__, 0x005b26cd, "5B26CD", "%X", +__LINE__, -0x008df17, "-581399", "%.4ld", +__LINE__, 0xfffffad8, "fffffad8", "%-x", +__LINE__, 0x000006a9, "6a9", "%.0x", +__LINE__, -0x003b7f9, "-243705", "%+0ld", +__LINE__, 0x005d7ea4, "6127268", "%ld", +__LINE__, -0x003ccea, "-249066", "%+.0ld", +__LINE__, 0x0000846f, "846F", "%X", +__LINE__, 0x00004f79, "4F79", "%4.X", +__LINE__, 0xe3e1409c, "E3E1409C", "%-X", +__LINE__, 0x07cce2f4, "7CCE2F4", "%2.X", +__LINE__, 0x004bcc8b, "4967563", "%-.5ld", +__LINE__, 0x7d49665e, "2101962334", "%ld", +__LINE__, 0xfffffffc, "FFFFFFFC", "%.5X", +__LINE__, 0x0000019e, "+000414", "%+.6d", +__LINE__, 0x000027ef, "10223", "%d", +__LINE__, -0x0000261, "-609", "%3ld", +__LINE__, -0x000000e, "-14", "% 2.ld", +__LINE__, 0xff3ba3c7, "ff3ba3c7", "%+5.7x", +__LINE__, 0xffffffc4, "FFFFFFC4", "%-1.X", +__LINE__, 0xfffc5a70, "0xfffc5a70", "%#4.4x", +__LINE__, 0x0000d156, " 53590", "% d", +__LINE__, -0x0486258, "-4743768", "%0ld", +__LINE__, 0x00000000, " ", "% 2.d", +__LINE__, 0x04a0ef9f, "77655967", "%0.6ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, 0x00000019, "0000019", "%.7x", +__LINE__, -0x0058d3a, "-363834", "%ld", +__LINE__, 0xfffff6b3, "fffff6b3", "%x", +__LINE__, 0xfffffff5, "FFFFFFF5", "%.0X", +__LINE__, 0x005e1fcb, "5E1FCB", "%+6X", +__LINE__, 0xffc3c866, "0xffc3c866", "%-#.4x", +__LINE__, 0x00000003, "3", "%X", +__LINE__, 0xffa2e961, "FFA2E961", "%7.4X", +__LINE__, 0x00000029, "41", "%d", +__LINE__, -0x0000035, "-53", "%d", +__LINE__, 0x0001b033, "110643", "%ld", +__LINE__, 0x004dd51b, "5100827", "%-2ld", +__LINE__, -0x000252d, "-9517", "% d", +__LINE__, 0xffffdeb2, "ffffdeb2", "%4.x", +__LINE__, 0xffe94eab, "0xffe94eab", "%#x", +__LINE__, 0xf921edf6, "f921edf6", "%4.2x", +__LINE__, 0x0007df97, "515991", "%4.ld", +__LINE__, 0x00709bc5, "709BC5", "%0X", +__LINE__, -0x0000001, "-1", "%d", +__LINE__, 0xfffffffb, "FFFFFFFB", "%7.3X", +__LINE__, -0x0063f74, "-409460", "%+05.0d", +__LINE__, 0xfffffe9a, "FFFFFE9A", "%.2X", +__LINE__, -0x0001ce2, "-7394", "%.4d", +__LINE__, 0x000038c5, "14533", "%ld", +__LINE__, 0x000000ad, "000ad", "% 5.5x", +__LINE__, 0xffffbcc4, "ffffbcc4", "%-5x", +__LINE__, 0x00000000, "0", "% X", +__LINE__, 0x00372877, "372877", "%.6X", +__LINE__, 0xffffffd7, "FFFFFFD7", "%1.X", +__LINE__, 0xfa58b14b, "fa58b14b", "%x", +__LINE__, 0xfffffd9f, "FFFFFD9F", "%0.7X", +__LINE__, 0x00000710, "+1808", "%+#.2ld", +__LINE__, 0x00000006, " 6", "%5.0ld", +__LINE__, 0x0fba9706, "263886598", "%-6.3d", +__LINE__, 0xffff420a, "ffff420a", "%-2x", +__LINE__, 0x14b9a825, "14b9a825", "%x", +__LINE__, 0x0077ffe4, "77FFE4", "%+.2X", +__LINE__, 0x00067108, "422152 ", "%-7.ld", +__LINE__, 0x00000001, " 00001", "%6.5X", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, -0x0000001, " -1", "% 7ld", +__LINE__, 0x01ddc7a3, "31311779", "%d", +__LINE__, -0x2a92f9b, "-44642203", "% 3ld", +__LINE__, 0xfffffff9, "fffffff9", "%4.6x", +__LINE__, 0x0279a274, "279a274", "%x", +__LINE__, 0x2e37ed8e, "775417230", "%d", +__LINE__, 0x5ba59f58, "1537580888", "%-ld", +__LINE__, 0xffffffe0, "ffffffe0", "%x", +__LINE__, 0x3110ae47, "0X3110AE47", "%+#X", +__LINE__, 0x000e00b9, "917689", "%d", +__LINE__, 0x0000002e, " 0046", "% 7.4d", +__LINE__, 0x00000363, " 867", "%7.d", +__LINE__, -0x000000b, "-0011", "% 0.4d", +__LINE__, 0x000349c8, " 349C8", "% 7.X", +__LINE__, -0x01358f1, "-1267953", "%d", +__LINE__, -0x0039d3c, "-236860", "%-.3d", +__LINE__, 0xffd6de19, "ffd6de19", "%04.0x", +__LINE__, -0x0003c54, "-0015444", "%1.7d", +__LINE__, -0x0000e17, "-3607", "%d", +__LINE__, 0xff0fa3a9, "ff0fa3a9", "%+3x", +__LINE__, 0x00000009, "0000009", "%1.7x", +__LINE__, 0xfffffc81, "FFFFFC81", "% X", +__LINE__, -0x4ef2df5, "-82783733", "%ld", +__LINE__, 0x00000013, "19", "%-ld", +__LINE__, 0x00000000, " 0", "%#7x", +__LINE__, -0x3b9485fd, "-999589373", "%1.d", +__LINE__, -0x0000006, "-00006", "%6.5d", +__LINE__, 0x0000003f, "+63", "%+ld", +__LINE__, 0x000004c5, "1221", "%1.d", +__LINE__, 0x003f8a8c, "4164236", "%d", +__LINE__, -0x000001e, "-30", "%-#3d", +__LINE__, 0xfff9d230, "FFF9D230", "%+07.3X", +__LINE__, 0x0147cf17, "147cf17", "% x", +__LINE__, 0xffffffeb, "ffffffeb", "%x", +__LINE__, 0x0000007d, "00125", "%.5ld", +__LINE__, 0x000fff56, "1048406", "%#3d", +__LINE__, 0x064307a0, " 105056160", "% 0.3ld", +__LINE__, 0x007d2860, "8202336", "%-.2d", +__LINE__, 0x00a05711, "a05711", "%x", +__LINE__, 0x179a7f9e, "0x179a7f9e", "%+#.3x", +__LINE__, 0x00000003, "3", "%X", +__LINE__, -0x0001d7d, "-7549", "%#5d", +__LINE__, 0x0025d3f2, "+2479090", "%+2.d", +__LINE__, -0x0000001, "-1", "%#ld", +__LINE__, 0xfffffdd5, "fffffdd5", "%.7x", +__LINE__, 0x003462b9, "3433145", "%d", +__LINE__, 0x00005a81, "23169", "%d", +__LINE__, 0xfffffcdb, "fffffcdb", "%-x", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0xfff22085, "fff22085", "%x", +__LINE__, 0x00016d72, " 93554", "% d", +__LINE__, -0x0000002, "-2", "%0ld", +__LINE__, 0xfffffd21, "fffffd21", "% 0x", +__LINE__, 0x00000931, "2353", "%ld", +__LINE__, 0x00010021, "10021", "%5.1X", +__LINE__, -0x000007e, "-126", "%1.0ld", +__LINE__, 0xfffffff8, "fffffff8", "%01.x", +__LINE__, -0x001d148, "-119112", "%d", +__LINE__, -0x0000008, "-8", "%ld", +__LINE__, -0x000038e, "-910", "% ld", +__LINE__, 0x0039e3e5, "3793893", "%0.1d", +__LINE__, 0x0038fb8e, "38FB8E", "%.2X", +__LINE__, -0x002dafa, "-187130", "%ld", +__LINE__, -0xbec275b, "-200025947", "%ld", +__LINE__, 0x1a32f999, "1A32F999", "%05.4X", +__LINE__, 0x0000002f, "2f", "%x", +__LINE__, -0x0001a5b, "-6747", "%+3.ld", +__LINE__, 0x00000762, " 1890", "%7.ld", +__LINE__, 0x000000c2, "000194", "%0.6ld", +__LINE__, 0xffff002b, "FFFF002B", "%.4X", +__LINE__, -0x0019dae, "-105902", "% .2d", +__LINE__, 0x0000125f, "125f", "%+1x", +__LINE__, -0x000b688, " -46728", "%#7.d", +__LINE__, 0x000401ca, "401ca", "%0x", +__LINE__, 0x00000192, "402", "%#ld", +__LINE__, 0xffffffff, "ffffffff", "%x", +__LINE__, 0x1e505a0c, "0X1E505A0C", "%#1.3X", +__LINE__, 0x000f8f6c, "1019756", "%d", +__LINE__, 0x0004a296, "4a296", "%5.2x", +__LINE__, 0x00000003, "3", "% x", +__LINE__, -0x000d44c, "-54348", "%#ld", +__LINE__, 0x00009ae2, "39650", "%-d", +__LINE__, 0xffffff3a, "FFFFFF3A", "% .7X", +__LINE__, 0x0042350b, "4338955", "%d", +__LINE__, 0x000071af, "71af", "%+.4x", +__LINE__, 0x00000001, "0x1", "%#0x", +__LINE__, 0x00000033, "00051", "%3.5d", +__LINE__, 0x00000001, "1", "%X", +__LINE__, -0xebfb0e7, "-247443687", "%+3ld", +__LINE__, 0x00000027, "27 ", "%-07.X", +__LINE__, -0x0004837, "-18487", "%01d", +__LINE__, 0x1a8c53da, "1A8C53DA", "%X", +__LINE__, -0x0bdb8a9, "-12433577", "%d", +__LINE__, -0x0000098, "-152", "%#ld", +__LINE__, -0x003b554, "-243028", "%d", +__LINE__, 0x000000cb, "00000CB", "%+.7X", +__LINE__, 0xfffffeda, "FFFFFEDA", "%X", +__LINE__, -0x0000010, "-16", "%-#d", +__LINE__, 0x00000006, "+6", "%+d", +__LINE__, 0x003c294a, "+3942730", "%+4.ld", +__LINE__, 0x00000009, "9", "%ld", +__LINE__, 0xfbbdd2bc, "FBBDD2BC", "% X", +__LINE__, 0x71c86678, "+1908958840", "%+0.6ld", +__LINE__, -0x0b49bff, "-11836415", "% 6.ld", +__LINE__, 0xfff416be, "fff416be", "%3.x", +__LINE__, 0x00000077, "+119", "%+d", +__LINE__, 0xfff1cfaa, "FFF1CFAA", "% 0.2X", +__LINE__, 0xfffffffb, "fffffffb", "% x", +__LINE__, 0x0000127e, "4734", "%d", +__LINE__, 0x00107ad2, "107ad2", "%+2.6x", +__LINE__, 0x0006b8e9, "440553", "%-#d", +__LINE__, 0x0000eb6f, "eb6f", "% x", +__LINE__, 0x00001f18, "7960", "%0d", +__LINE__, 0xfffff225, "fffff225", "%1.5x", +__LINE__, 0xfffffff9, "fffffff9", "%+6.x", +__LINE__, 0x000005b9, "01465", "%.5ld", +__LINE__, 0xfffc26b8, "FFFC26B8", "% X", +__LINE__, 0x540d580d, "0X540D580D", "%+#X", +__LINE__, 0x05ad7094, "5AD7094", "% 4.7X", +__LINE__, -0x000019b, "-411", "% d", +__LINE__, 0x00000006, "000006", "%6.6ld", +__LINE__, 0x0000026a, "+618", "%+ld", +__LINE__, 0x0000000b, "11", "%ld", +__LINE__, -0x26985d5, "-40469973", "%#.0ld", +__LINE__, 0x0000007d, "7D", "%+02.0X", +__LINE__, -0x0079ddf, "-0499167", "%+.7ld", +__LINE__, 0x0000375f, "14175", "%0d", +__LINE__, -0x18de7f99, "-417234841", "%ld", +__LINE__, -0x00507cc, "-329676", "%.0d", +__LINE__, 0x000029d5, "29D5", "%-2.1X", +__LINE__, 0x0000328c, "328C", "%-3.X", +__LINE__, 0x016f6234, "24076852", "%3.ld", +__LINE__, 0xfffffffc, "0XFFFFFFFC", "%#.5X", +__LINE__, 0xfe6163ca, "FE6163CA", "%5.X", +__LINE__, 0xffffffc2, "FFFFFFC2", "%X", +__LINE__, 0x00000087, "+135", "%+ld", +__LINE__, 0x00310166, "310166", "% x", +__LINE__, 0x00e8c871, "15255665", "%d", +__LINE__, 0x000005ee, "1518", "%ld", +__LINE__, 0xfcb24306, "FCB24306", "%X", +__LINE__, 0x0000000b, " 11", "%5ld", +__LINE__, 0x006d11d0, "0x6d11d0", "%#.0x", +__LINE__, 0x0010d416, "1102870", "%#6.5d", +__LINE__, -0x0047cb3, "-294067", "%.3d", +__LINE__, 0x000000c0, "c0", "%x", +__LINE__, 0xffffffff, "FFFFFFFF", "%+X", +__LINE__, -0x000000a, "-10", "%d", +__LINE__, -0x0000007, "-7", "% ld", +__LINE__, 0xfffffffe, "FFFFFFFE", "%-X", +__LINE__, 0x00000014, "0x14", "%-#3.1x", +__LINE__, 0x00003319, "3319", "% x", +__LINE__, 0x00000000, "00", "%+#.2X", +__LINE__, -0x0000009, "-9", "% ld", +__LINE__, -0x0000001, "-1 ", "%-3ld", +__LINE__, 0x00262909, "2500873", "%.5ld", +__LINE__, 0x33e76560, "33e76560", "%7.0x", +__LINE__, -0x0000002, "-2", "%ld", +__LINE__, 0x00035ee9, "35EE9", "%-3.X", +__LINE__, -0x0000235, "-565", "%+4.ld", +__LINE__, -0x3ea63c5, "-65692613", "%d", +__LINE__, 0x00000003, "3", "%ld", +__LINE__, -0x003362f, "-210479", "% d", +__LINE__, -0x1a819f8a, "-444702602", "%.7d", +__LINE__, 0x027a4668, "41567848", "%d", +__LINE__, 0x0002b025, "2b025", "%x", +__LINE__, -0x0000001, "-001", "%.3ld", +__LINE__, 0xfffffff0, "fffffff0", "%-0x", +__LINE__, -0x0000d4f, "-3407", "%-ld", +__LINE__, 0x00000146, " 326", "% 1.d", +__LINE__, -0x0000006, "-6", "%d", +__LINE__, 0xffffffff, "FFFFFFFF", "%06.4X", +__LINE__, 0x376fddae, "+930078126", "%+#0ld", +__LINE__, 0x006d9da3, "6d9da3", "%1.x", +__LINE__, -0x0000f28, "-3880", "%3.2ld", +__LINE__, 0x0006962c, " 431660", "% 5d", +__LINE__, 0x000011db, " 4571", "%6.ld", +__LINE__, 0xffffffa8, "ffffffa8", "%+x", +__LINE__, 0x0d886db3, "D886DB3", "%.7X", +__LINE__, 0x00000000, "000000", "%2.6ld", +__LINE__, 0xfffff6b6, "FFFFF6B6", "% X", +__LINE__, -0x0739068, "-7573608", "%+6.ld", +__LINE__, 0xfba62553, "0XFBA62553", "%#X", +__LINE__, -0x4474bc5, "-71781317", "%-2ld", +__LINE__, 0xffffff95, "FFFFFF95", "% 2.X", +__LINE__, -0x1d0e1ca, "-30466506", "%+.0d", +__LINE__, -0x000f3aa, "-62378", "%ld", +__LINE__, 0x00000026, "26", "%1x", +__LINE__, 0x001c5400, "1856512", "%-#d", +__LINE__, 0x03808442, "3808442", "%X", +__LINE__, -0x0000081, "-129", "%+#ld", +__LINE__, 0x000004ae, " 1198", "% 3.4d", +__LINE__, -0x7f4ed54, "-133492052", "%d", +__LINE__, 0x00000000, "+0", "%+ld", +__LINE__, 0x00000000, "0", "%+x", +__LINE__, 0x004c7e46, "5013062", "%.0d", +__LINE__, -0x647d7a65, "-1685944933", "%0.2d", +__LINE__, 0x00003b59, "15193", "%-#1d", +__LINE__, 0xfff3e64d, "FFF3E64D", "%-X", +__LINE__, 0x00007022, "28706", "%-d", +__LINE__, 0xc28d0ad8, "c28d0ad8", "%+x", +__LINE__, -0x005c208, "-377352", "% ld", +__LINE__, 0x00cfbadc, "13613788", "%d", +__LINE__, 0x000016ea, "5866", "%0d", +__LINE__, 0x00000029, "29", "%X", +__LINE__, 0xffe16813, "0XFFE16813", "%+#X", +__LINE__, 0x00000004, "4", "%0X", +__LINE__, -0x0000096, " -150", "%5d", +__LINE__, 0x00027ac7, "162503", "%ld", +__LINE__, -0x0075de0, "-482784", "%d", +__LINE__, 0x005fcff6, "6279158", "%d", +__LINE__, 0xffffffef, "FFFFFFEF", "%3X", +__LINE__, 0x267b05ec, "645596652", "%4ld", +__LINE__, 0xa487b724, "a487b724", "%x", +__LINE__, 0x01da2a11, "31074833", "%-.0ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, 0x0000037a, "37a", "%x", +__LINE__, 0x003d0314, "+3998484", "%+#1d", +__LINE__, 0x0000011b, " 283", "%5.2d", +__LINE__, 0x094f6066, "94f6066", "%x", +__LINE__, 0x00000004, "4", "%X", +__LINE__, -0x102e14bd, "-271455421", "% 7.ld", +__LINE__, 0x000048da, "0018650", "%07ld", +__LINE__, -0x24ae0390, "-615383952", "%0.6d", +__LINE__, 0xffff5159, "0XFFFF5159", "%#0X", +__LINE__, 0xfffd38c3, "fffd38c3", "%x", +__LINE__, 0xfffff9ea, "FFFFF9EA", "%-X", +__LINE__, -0x000fd28, "-64808", "% ld", +__LINE__, 0x002c1bf4, "2890740", "%-.1d", +__LINE__, 0x00d00ee7, "D00EE7", "%0.4X", +__LINE__, 0x00000cf9, "3321", "%0d", +__LINE__, -0x0000001, "-1", "%-#ld", +__LINE__, 0xfffffd75, "FFFFFD75", "%.2X", +__LINE__, 0x00000012, "18", "%-d", +__LINE__, 0xfd44b4b2, "fd44b4b2", "%+5.x", +__LINE__, -0x001c53f, "-116031", "%-#6.d", +__LINE__, 0x000ff6fd, "ff6fd", "%2x", +__LINE__, 0x00000001, "1", "%0d", +__LINE__, 0x0120b478, "120B478", "%.7X", +__LINE__, 0x0145591e, "145591E", "%1.4X", +__LINE__, 0x001f99b9, "1F99B9", "%.1X", +__LINE__, 0xffffd078, "ffffd078", "%-1.5x", +__LINE__, 0xffffff1a, "FFFFFF1A", "%-4.6X", +__LINE__, 0xfffffffa, "fffffffa", "%x", +__LINE__, -0x00000b9, "-185", "%3ld", +__LINE__, 0x00001cf0, "7408", "%-ld", +__LINE__, 0xffffffff, "FFFFFFFF", "%X", +__LINE__, 0x00151f30, "151F30", "%X", +__LINE__, -0x0000103, "-259", "%d", +__LINE__, -0x000303f, "-12351", "%d", +__LINE__, 0x000002ca, "714", "%ld", +__LINE__, -0x0000c55, "-3157", "%1d", +__LINE__, 0x00000691, "01681", "%#.5ld", +__LINE__, 0x00230537, "2295095", "%#d", +__LINE__, 0x032a1faa, "53092266", "%.4d", +__LINE__, 0x000050d7, "20695", "%d", +__LINE__, -0x0c7ad4c, "-13086028", "%#.4ld", +__LINE__, -0x00009d9, "-2521", "%+d", +__LINE__, 0xfffffffe, "fffffffe", "%0x", +__LINE__, 0xffdec2d9, "FFDEC2D9", "%5.1X", +__LINE__, -0x000563c, "-22076", "%-.2ld", +__LINE__, 0x0073b36a, "0x73b36a", "%-#x", +__LINE__, 0xfffffffd, "fffffffd", "%x", +__LINE__, 0x0193ba5a, "193ba5a", "%1.x", +__LINE__, 0x00d147b5, "13715381", "%2.d", +__LINE__, 0xffffff10, "ffffff10", "%4x", +__LINE__, 0x000648d5, "648d5", "%1.3x", +__LINE__, 0x00000011, "11", "%X", +__LINE__, 0xff259f5b, "0xff259f5b", "% #.1x", +__LINE__, 0x00000175, "175", "%x", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, 0x00000015, "21", "%#ld", +__LINE__, 0xfffffffe, "fffffffe", "%-x", +__LINE__, 0x00000013, " 19", "% 0ld", +__LINE__, -0x0000001, "-0000001", "% 5.7ld", +__LINE__, 0x0000139d, "139D", "%X", +__LINE__, 0x0041ad18, "41ad18", "%-.6x", +__LINE__, -0x00000f9, "-249", "% 3.d", +__LINE__, 0x00000076, "118", "%ld", +__LINE__, 0x000006f8, "1784", "%d", +__LINE__, -0x0000005, "-5", "%ld", +__LINE__, -0x00008e7, "-2279", "%+ld", +__LINE__, 0x00003f77, "3F77", "%+0X", +__LINE__, 0x000ca3f8, "0XCA3F8", "%+#X", +__LINE__, -0x00004bf, "-001215", "%#5.6ld", +__LINE__, 0x319129ab, "0x319129ab", "%+#x", +__LINE__, -0x0000002, "-2", "%ld", +__LINE__, -0x0f6686e, "-16148590", "%.6ld", +__LINE__, 0x0329576b, "53041003", "%2.d", +__LINE__, -0x000179e, "-6046", "%d", +__LINE__, 0x000002cc, "+716", "%+1.3ld", +__LINE__, 0xfffffff7, "0xfffffff7", "% #x", +__LINE__, 0x0016eb40, "1502016", "%ld", +__LINE__, 0x00000003, "3", "%-0ld", +__LINE__, 0x0023e0d6, "23E0D6", "%-05.X", +__LINE__, 0xffffa6a4, "0XFFFFA6A4", "%#X", +__LINE__, 0x00087664, "87664", "% .2x", +__LINE__, -0x0000002, " -2", "%3.ld", +__LINE__, 0x003ad85d, "3AD85D", "%X", +__LINE__, 0x00002f20, "12064", "%ld", +__LINE__, 0x02030bfc, "2030BFC", "%02.3X", +__LINE__, 0xfffff36a, "FFFFF36A", "%X", +__LINE__, 0xfe0729ff, "0xfe0729ff", "% #.0x", +__LINE__, 0xfec15164, "FEC15164", "%0.2X", +__LINE__, -0x00169ec, "-92652", "%+d", +__LINE__, 0x006d7990, "0x6d7990", "%#x", +__LINE__, 0xffcc89e6, "ffcc89e6", "%x", +__LINE__, 0x002d7cca, "2981066", "%7.7ld", +__LINE__, -0x1649692b, "-373909803", "%#ld", +__LINE__, 0x00664f47, "664f47", "%+6.x", +__LINE__, 0x00000000, "0", "% X", +__LINE__, 0x00000047, "000047", "%.6X", +__LINE__, 0x00000007, "0000007", "%.7ld", +__LINE__, 0x00000030, "30", "%-x", +__LINE__, -0x25bcbabb, "-633125563", "% ld", +__LINE__, 0xfe11c031, "FE11C031", "%4.6X", +__LINE__, -0x0000001, "-0000001", "%.7d", +__LINE__, 0x00b56d84, "11890052", "%ld", +__LINE__, -0x0000b01, "-0002817", "%+07.7ld", +__LINE__, 0xffffe4ad, "ffffe4ad", "% 0.0x", +__LINE__, 0x007760fc, "7760fc", "%+x", +__LINE__, 0xffef44d8, "FFEF44D8", "%X", +__LINE__, 0xfcb6862e, "fcb6862e", "%+x", +__LINE__, -0x0000001, "-1", "%0d", +__LINE__, 0xffffffe6, "FFFFFFE6", "%3.1X", +__LINE__, 0xff816e27, "FF816E27", "% 6.X", +__LINE__, 0x00006415, "25621", "%ld", +__LINE__, -0xfae5449, "-263083081", "%0ld", +__LINE__, 0x00000001, " 1", "% 0d", +__LINE__, 0x00000009, " 9", "%2.X", +__LINE__, 0x002d7e18, "2981400", "%7d", +__LINE__, -0x00000fc, "-0000252", "%-#.7d", +__LINE__, 0x00000003, "3", "%0x", +__LINE__, 0x0d46e47f, "222749823", "%ld", +__LINE__, 0xfffcbc52, "FFFCBC52", "%+X", +__LINE__, 0x00000000, "0", "%-X", +__LINE__, 0xfffff0e5, "fffff0e5", "%x", +__LINE__, 0xffffffd9, "FFFFFFD9", "%07X", +__LINE__, 0x000004ee, "4ee", "%0x", +__LINE__, 0xffffffff, "ffffffff", "%0x", +__LINE__, -0x0008cb4, "-036020", "%+3.6ld", +__LINE__, 0x0000dada, "0xdada", "%#0.x", +__LINE__, 0x0000001a, "26 ", "%-4d", +__LINE__, -0x000000c, " -12", "%04.d", +__LINE__, 0x0000025c, " 25c", "%7.x", +__LINE__, 0xfe9b091e, "FE9B091E", "%X", +__LINE__, 0x00000002, " 2", "%07.ld", +__LINE__, -0x0004930, "-18736", "% 6.d", +__LINE__, 0xffffffe9, "FFFFFFE9", "%X", +__LINE__, 0x00000003, " 3", "%2.ld", +__LINE__, 0x00000e00, "3584", "%.4d", +__LINE__, 0xffff38c2, "ffff38c2", "%0.x", +__LINE__, 0xffffffff, "FFFFFFFF", "% .3X", +__LINE__, 0xff7c1b2f, "FF7C1B2F", "%-3.2X", +__LINE__, -0x0000005, "-5", "%2d", +__LINE__, 0x00098775, "98775", "%x", +__LINE__, 0x000015ff, " 15FF", "%6.X", +__LINE__, 0xfffbe3ef, "FFFBE3EF", "%0.3X", +__LINE__, -0x0000048, "-72", "%ld", +__LINE__, 0x0001488a, "84106", "%d", +__LINE__, 0x00000001, "1", "%x", +__LINE__, -0x0000002, "-2", "%-0.0ld", +__LINE__, -0x0000001, "-1", "%-d", +__LINE__, 0x0006616f, "6616f", "%x", +__LINE__, 0x3657856d, "911705453", "%6.d", +__LINE__, -0x0007222, "-0029218", "%.7d", +__LINE__, 0x00041606, "267782", "%04.5d", +__LINE__, 0x00000001, " 1", "%2.ld", +__LINE__, 0x00000219, "219", "%0x", +__LINE__, 0x0ae0184c, "ae0184c", "%x", +__LINE__, 0x00003a7d, " 14973", "%7.ld", +__LINE__, 0xffffffff, "0XFFFFFFFF", "%#X", +__LINE__, -0x0000002, "-2", "%0ld", +__LINE__, 0x00002cdf, "11487", "%0ld", +__LINE__, -0x000000c, "-12", "%d", +__LINE__, -0x000000e, "-14", "%-#2d", +__LINE__, 0x00000371, "881", "%#ld", +__LINE__, 0x000015be, " 5566", "%5.ld", +__LINE__, 0x01525b91, "22174609", "%#0.0ld", +__LINE__, 0xff8fc22f, "FF8FC22F", "% X", +__LINE__, -0x0007f7b, "-32635", "%4.ld", +__LINE__, 0x00007bca, "7bca", "%x", +__LINE__, -0x0000582, "-1410", "%ld", +__LINE__, 0x00000047, " +71", "%+04.2d", +__LINE__, 0xf8a8dce2, "f8a8dce2", "%+.6x", +__LINE__, -0x000de2e, "-56878", "%.0d", +__LINE__, 0x019c03c1, "0X19C03C1", "%#X", +__LINE__, -0x0f3a43e, "-15967294", "%ld", +__LINE__, 0x00009e87, "40583", "%#5.1d", +__LINE__, 0x000000b8, "184", "%0ld", +__LINE__, -0x000befe, "-48894", "%2ld", +__LINE__, -0x002ee1a, "-192026", "%.2d", +__LINE__, 0x00004fd8, "4fd8", "%x", +__LINE__, 0x0006d57b, "447867", "%2d", +__LINE__, 0xfffffa9c, "FFFFFA9C", "%-X", +__LINE__, 0x0000000f, "15", "%ld", +__LINE__, 0x0005deb2, "5DEB2", "% X", +__LINE__, 0x00000007, "7", "%X", +__LINE__, 0xffffffc8, "0XFFFFFFC8", "% #.1X", +__LINE__, 0xfffff62f, "FFFFF62F", "%X", +__LINE__, -0x1a935bba, "-445864890", "% 3.5d", +__LINE__, 0x000b34b4, "0x0b34b4", "%-#3.6x", +__LINE__, 0xfffff430, "FFFFF430", "%X", +__LINE__, 0x00000b5f, "+0002911", "%+#.7d", +__LINE__, 0x00000007, " 7", "%3ld", +__LINE__, 0xffffffd8, "FFFFFFD8", "% .7X", +__LINE__, 0xfffff544, "FFFFF544", "%0X", +__LINE__, -0x353667b9, "-892757945", "%d", +__LINE__, 0x00000058, "0x00058", "%+#.5x", +__LINE__, 0x39dbcc4a, "+970705994", "%+0.6ld", +__LINE__, 0xfffffffd, "fffffffd", "% 01x", +__LINE__, 0x00b1c28e, "+11649678", "%+0ld", +__LINE__, 0x000066c2, "0X66C2", "%-#4X", +__LINE__, 0x007171a2, "+7434658", "%+07.ld", +__LINE__, -0x0000001, "-1", "%-d", +__LINE__, 0x00000ae0, "+2784", "%+0d", +__LINE__, 0x13786a57, "326658647", "%#5d", +__LINE__, -0x0000001, "-1", "%2.ld", +__LINE__, -0x0168a16, "-1477142", "%d", +__LINE__, 0x12df7dd6, "316636630", "%ld", +__LINE__, 0x00000000, "000000", "%1.6d", +__LINE__, 0x266da2a9, "644719273", "%ld", +__LINE__, 0x0000004a, "74", "%d", +__LINE__, 0x000102ff, "00102FF", "%+06.7X", +__LINE__, 0x17916237, "0x17916237", "%#5x", +__LINE__, -0x0003cbb, "-0015547", "%-.7d", +__LINE__, 0xe7da2010, "e7da2010", "%2.4x", +__LINE__, 0xfffffff3, "fffffff3", "% .7x", +__LINE__, 0xfc9b64f8, "FC9B64F8", "% 7.X", +__LINE__, 0x000001af, "431", "%0d", +__LINE__, 0xffc81796, "0xffc81796", "%#.5x", +__LINE__, 0x057a1fbc, "+91889596", "%+04d", +__LINE__, 0x00001ae1, "6881", "%ld", +__LINE__, 0xfffffff6, "fffffff6", "%3.0x", +__LINE__, -0x6b7d5db, "-112711131", "%-06.1d", +__LINE__, 0x008e8a5c, " 8e8a5c", "%7.0x", +__LINE__, 0xfe07a9bd, "fe07a9bd", "%.1x", +__LINE__, -0x00278e6, "-162022", "%0ld", +__LINE__, 0xf98709f5, "F98709F5", "%X", +__LINE__, -0x00000c9, "-201", "% 1.d", +__LINE__, -0x000001d, "-00029", "%+2.5ld", +__LINE__, 0x00000030, " 48", "% d", +__LINE__, 0xffd753f4, "FFD753F4", "%0X", +__LINE__, 0xfffffffd, "FFFFFFFD", "%X", +__LINE__, 0x0000a765, "a765", "%x", +__LINE__, 0x0026e2c8, "26E2C8", "%-0X", +__LINE__, -0x00003eb, "-1003", "%3.1ld", +__LINE__, 0x015d53ca, "22893514", "%0ld", +__LINE__, -0x0000020, "-32", "%ld", +__LINE__, -0x03558dd, "-3496157", "%1.0ld", +__LINE__, -0x000007f, "-127", "%1.d", +__LINE__, 0xffffc737, "0xffffc737", "%+#x", +__LINE__, 0x0000a70d, " a70d", "%6.x", +__LINE__, 0x01ea0e31, "0X1EA0E31", "% #1.X", +__LINE__, 0x00b5f406, "0X0B5F406", "%-#.7X", +__LINE__, 0x0e58fa9a, "240712346", "%.2d", +__LINE__, 0xf43ff8a9, "f43ff8a9", "%+0.6x", +__LINE__, -0x5d0d3d3, "-97571795", "%.3ld", +__LINE__, -0x000027a, "-634", "%0d", +__LINE__, 0xffcef248, "FFCEF248", "%07.X", +__LINE__, 0x000002dc, "2dc", "%0x", +__LINE__, -0x31fa6c1, "-52405953", "%.2d", +__LINE__, 0x00000014, "14", "%X", +__LINE__, -0x0282f98, "-2633624", "%ld", +__LINE__, 0x00005f55, "24405", "%#d", +__LINE__, -0x0000004, "-4", "%d", +__LINE__, 0x00000001, "1", "%+x", +__LINE__, 0x013f47ce, "13f47ce", "%0.x", +__LINE__, 0x00143fce, "1327054", "%.3d", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x00001f9a, "1F9A", "% X", +__LINE__, 0x00000cf5, "cf5", "%x", +__LINE__, 0xffea9c24, "ffea9c24", "%x", +__LINE__, 0xf09f85a7, "F09F85A7", "%X", +__LINE__, 0x00001e04, "7684", "%ld", +__LINE__, 0xffffc82a, "ffffc82a", "%7x", +__LINE__, -0x0000a77, "-2679", "% d", +__LINE__, 0x0019a859, "+1681497", "%+2.6ld", +__LINE__, -0x00002d7, "-727", "%ld", +__LINE__, 0x00011b82, "72578", "%-#ld", +__LINE__, 0x00000c32, "3122", "%ld", +__LINE__, -0x0000337, "-823", "%1.d", +__LINE__, 0x00000004, "4", "%1ld", +__LINE__, 0x0000062c, "1580", "%.1ld", +__LINE__, 0xffffffd3, "FFFFFFD3", "% X", +__LINE__, -0x07b1bf8, "-8068088", "%#d", +__LINE__, 0xfffffff9, "fffffff9", "%x", +__LINE__, 0x159e6cfb, "159e6cfb", "%0.x", +__LINE__, 0x0001148d, "1148d", "%-.1x", +__LINE__, 0x003373b7, "3371959", "%#.0d", +__LINE__, 0x00001af2, "1af2", "%.4x", +__LINE__, -0x0000001, "-000001", "%+.6ld", +__LINE__, -0x00001a3, "-419", "%d", +__LINE__, 0xfdb232e7, "fdb232e7", "%5.4x", +__LINE__, -0x000000d, "-13", "%d", +__LINE__, 0x98ec1c74, "98ec1c74", "% 3x", +__LINE__, 0xfffffff8, "fffffff8", "%+1.4x", +__LINE__, -0x0000d58, "-3416", "%+#0ld", +__LINE__, -0x65d1973, "-106764659", "%.6d", +__LINE__, -0x0737641, "-7566913", "%-d", +__LINE__, 0x0000037c, "37c", "%+0x", +__LINE__, 0x0000012c, "0000300", "%#3.7d", +__LINE__, 0x00c12d9b, "12660123", "%1.5ld", +__LINE__, 0xe7e5e77d, "e7e5e77d", "%6x", +__LINE__, 0x1fe0e820, "1FE0E820", "%-4X", +__LINE__, 0xc85a793a, "C85A793A", "%X", +__LINE__, 0x05f9fe2c, "100269612", "%#ld", +__LINE__, 0x00000032, "0X32", "%+#4.1X", +__LINE__, 0xfab4ce81, "fab4ce81", "%3.x", +__LINE__, -0x0000009, "-9", "%2.d", +__LINE__, 0xffff8d2e, "ffff8d2e", "% 6x", +__LINE__, 0xfffffffe, "0xfffffffe", "%#x", +__LINE__, 0x02960f60, "2960f60", "%1.x", +__LINE__, 0x34cf3cbc, " 885996732", "% 5ld", +__LINE__, -0x000006e, "-110", "% d", +__LINE__, -0x0000001, "-1", "%-.0d", +__LINE__, 0x000000b1, " B1", "%+7X", +__LINE__, 0xfffff5b4, "FFFFF5B4", "%01.7X", +__LINE__, 0x00000086, "86", "%0X", +__LINE__, 0x00074367, " 74367", "% 6x", +__LINE__, 0x001000d7, "+1048791", "%+ld", +__LINE__, 0x00000f35, " 3893", "% d", +__LINE__, -0x00000e1, "-225", "%d", +__LINE__, 0xffff6694, "FFFF6694", "%6.X", +__LINE__, 0x00019cf7, "19cf7", "%0.x", +__LINE__, 0x00000046, "0046", "%+.4X", +__LINE__, -0x000001f, "-31", "%ld", +__LINE__, 0xfff25859, "fff25859", "%6x", +__LINE__, 0x21884061, "562577505", "%#ld", +__LINE__, 0x01448b7a, "1448B7A", "%0.1X", +__LINE__, 0xffffffc0, "ffffffc0", "%x", +__LINE__, 0xfffffed5, "fffffed5", "% 1.0x", +__LINE__, 0x0e349767, "E349767", "%.5X", +__LINE__, 0x00000330, "816", "%0d", +__LINE__, -0x0000016, "-22", "%d", +__LINE__, 0xffff9bab, "FFFF9BAB", "%X", +__LINE__, 0xffffee4e, "ffffee4e", "%x", +__LINE__, 0x0026beeb, "2539243", "%6.d", +__LINE__, 0x00002c6c, "11372", "%.2d", +__LINE__, -0x000002c, "-44", "%ld", +__LINE__, -0x001dcfa, "-122106", "% d", +__LINE__, 0x0001683c, "92220", "%#4.ld", +__LINE__, 0x09b51fc9, "9b51fc9", "%+.7x", +__LINE__, 0x0000001d, "29", "%0ld", +__LINE__, -0x83f17e5, "-138352613", "%ld", +__LINE__, 0xfa4e2c1b, "fa4e2c1b", "%x", +__LINE__, 0x000001f3, "499", "%0ld", +__LINE__, 0xffff03e4, "ffff03e4", "%x", +__LINE__, 0x000000ac, "+0172", "%+.4ld", +__LINE__, 0x03c3903b, "63148091", "%00d", +__LINE__, 0x0000000d, "13", "%#d", +__LINE__, 0x0000002e, "0X2E", "%#X", +__LINE__, 0x00006b2d, "6B2D", "%X", +__LINE__, 0x0000010b, " 0010b", "%7.5x", +__LINE__, 0x0000017a, " 17a", "%4x", +__LINE__, 0xfffffffb, "fffffffb", "%+x", +__LINE__, 0xffffac6a, "ffffac6a", "%-.3x", +__LINE__, -0x0005870, "-22640", "%0d", +__LINE__, 0x189c17bc, "189c17bc", "%x", +__LINE__, -0x01bbc38, "-1817656", "%#6.ld", +__LINE__, -0x3382b55, "-54012757", "%d", +__LINE__, -0x0000007, "-7", "%-ld", +__LINE__, -0x000c74b, "-51019", "%ld", +__LINE__, 0x0001a6f2, "+108274", "%+#1.ld", +__LINE__, 0x00077448, "77448", "%x", +__LINE__, 0x00000000, "0", "%x", +__LINE__, 0xfffff056, "FFFFF056", "%.3X", +__LINE__, -0x6f3f9451, "-1866437713", "%-#3.0ld", +__LINE__, 0x000000ac, "AC", "%X", +__LINE__, 0xffc8752f, "ffc8752f", "%-x", +__LINE__, 0xfffffe6d, "FFFFFE6D", "%2.X", +__LINE__, -0x377f1a5, "-58192293", "% .2d", +__LINE__, -0x0000294, "-660", "%d", +__LINE__, 0xfffffffe, "fffffffe", "%-x", +__LINE__, 0xfffcbbe8, "0xfffcbbe8", "%-#4.x", +__LINE__, 0x0022e510, "+2286864", "%+ld", +__LINE__, 0xfffffe2a, "FFFFFE2A", "%0.3X", +__LINE__, 0xfe29f7c0, "fe29f7c0", "%x", +__LINE__, 0xfffe957e, "FFFE957E", "%X", +__LINE__, 0x000080f8, "33016", "%ld", +__LINE__, 0x0003ee2c, " 257580", "%7d", +__LINE__, 0x000003a1, "929", "%d", +__LINE__, 0x0000021f, "21f", "%+x", +__LINE__, 0xffffffff, "ffffffff", "%.5x", +__LINE__, -0x040a988, "-4237704", "%-d", +__LINE__, 0x027c8b69, "41716585", "%ld", +__LINE__, 0x00000003, "3", "%-X", +__LINE__, -0x0000368, " -872", "%7.d", +__LINE__, 0x00000d3c, "3388", "%0.2d", +__LINE__, -0x33734cc, "-53949644", "%2ld", +__LINE__, 0x000003db, "3DB", "%X", +__LINE__, -0x00f154d, "-988493", "%5d", +__LINE__, 0x0000000b, " 11", "%4.ld", +__LINE__, 0x00000067, "103", "%-ld", +__LINE__, -0x0199fce, "-1679310", "%4d", +__LINE__, 0x02b6266b, "2b6266b", "% x", +__LINE__, -0x006b39d, "-439197", "%+d", +__LINE__, 0x00000007, "7", "%ld", +__LINE__, 0x0141fc98, "21101720", "%0ld", +__LINE__, -0x0008420, "-33824", "%d", +__LINE__, 0x0011622b, "1139243", "%6ld", +__LINE__, 0x0000001b, "27", "%-d", +__LINE__, -0x0030935, "-198965", "%3d", +__LINE__, 0x0000001f, " 1f", "%4.x", +__LINE__, -0x10782a19, "-276310553", "%#ld", +__LINE__, -0x007eac4, "-518852", "%06.ld", +__LINE__, 0x0bc4c681, "197445249", "%6ld", +__LINE__, 0x000000f5, "245", "%.3ld", +__LINE__, 0x00000197, "197", "%X", +__LINE__, 0xfffffeab, "FFFFFEAB", "% X", +__LINE__, 0x00000f05, "F05", "%+X", +__LINE__, 0xffe1b785, "0xffe1b785", "%#x", +__LINE__, -0x02d3581, "-2962817", "%05d", +__LINE__, 0xffffb994, "FFFFB994", "%X", +__LINE__, 0x03d139a3, "64043427", "%ld", +__LINE__, -0x0000002, " -2", "%+4.d", +__LINE__, -0x043da83, "-4446851", "%#ld", +__LINE__, -0x6aad891, "-111859857", "%7.ld", +__LINE__, 0x00003e68, "15976", "%-4.5ld", +__LINE__, 0xffe4d3ee, "FFE4D3EE", "%X", +__LINE__, 0x00000002, "000002", "%4.6ld", +__LINE__, 0xffffee32, "ffffee32", "%4x", +__LINE__, 0x0cb7dd25, "cb7dd25", "%3x", +__LINE__, 0xf773d422, "F773D422", "%X", +__LINE__, -0x0b590f7, "-11899127", "%#d", +__LINE__, -0x0002c45, "-11333", "%-#5ld", +__LINE__, -0x1efc9e4, "-32492004", "%ld", +__LINE__, -0x0003b9c, "-15260", "%d", +__LINE__, 0x000001b6, "0X1B6", "%#4X", +__LINE__, 0x3ce93ec3, "1021918915", "%.6d", +__LINE__, 0xffffffff, "ffffffff", "%-x", +__LINE__, 0xfffaf0e4, "fffaf0e4", "%2.x", +__LINE__, 0x00000002, "0x2", "%#x", +__LINE__, 0x0000e806, "e806", "%4x", +__LINE__, 0xfffffff0, "fffffff0", "% 2.x", +__LINE__, 0xfffffc0e, "fffffc0e", "%+.4x", +__LINE__, 0xfd45716e, "FD45716E", "%.4X", +__LINE__, 0xfff96fda, "FFF96FDA", "%-X", +__LINE__, 0xff99d08a, "FF99D08A", "%.5X", +__LINE__, 0x00000002, "2", "%-00.d", +__LINE__, -0x000000f, " -15", "%6.ld", +__LINE__, -0x00d321c, "-864796", "%#1ld", +__LINE__, 0xff19ff8d, "ff19ff8d", "%1.5x", +__LINE__, 0x00000000, "0000000", "%-.7x", +__LINE__, 0x0000f50d, " F50D", "%5X", +__LINE__, 0x00001688, " 5768", "%7.ld", +__LINE__, 0x00000157, "343", "%2ld", +__LINE__, 0xfffffffd, "0xfffffffd", "%+#3x", +__LINE__, 0x00000d52, "3410", "%ld", +__LINE__, 0x00000003, "3", "%d", +__LINE__, 0x0001c6d2, "01c6d2", "%.6x", +__LINE__, 0x242d65d2, "606954962", "%#7.ld", +__LINE__, 0x00000e9f, "0000E9F", "%5.7X", +__LINE__, 0x0002d785, "2D785", "%0X", +__LINE__, 0x00000167, "167", "%0X", +__LINE__, 0xfffff5e5, "fffff5e5", "% x", +__LINE__, 0xffb69a04, "0xffb69a04", "%#0.x", +__LINE__, 0xfffa012e, "FFFA012E", "%X", +__LINE__, 0x0000001a, "0x1a", "% #x", +__LINE__, 0xfffb26d3, "fffb26d3", "%+x", +__LINE__, -0x00003e6, " -998", "%7ld", +__LINE__, 0x00000004, "4", "%-d", +__LINE__, 0xfffffd76, "0XFFFFFD76", "%#7X", +__LINE__, 0x00000035, "53", "%ld", +__LINE__, 0xffc6c190, "0XFFC6C190", "%#X", +__LINE__, 0xffffffe2, "ffffffe2", "%7.0x", +__LINE__, 0x03ff1b87, "67050375", "%2.d", +__LINE__, 0x00020c47, "0X20C47", "%#X", +__LINE__, 0x00000000, "0", "%d", +__LINE__, 0x0000000e, "0X000E", "% #.4X", +__LINE__, -0x00035cd, "-13773", "%+2.d", +__LINE__, 0x00005eec, "5eec", "%1x", +__LINE__, 0x001da0ff, "1941759", "%0d", +__LINE__, 0xf8a9e96a, "f8a9e96a", "%+x", +__LINE__, -0x0000120, "-288 ", "%-#6.d", +__LINE__, 0x00000000, "0", "%-X", +__LINE__, 0x0000152e, "152E", "%+X", +__LINE__, -0x0001077, "-4215", "% 0d", +__LINE__, 0xffffffd7, "FFFFFFD7", "%0X", +__LINE__, 0xfffe097d, "FFFE097D", "%2X", +__LINE__, 0xcb982712, "cb982712", "%x", +__LINE__, 0xfff39f2e, "FFF39F2E", "%.5X", +__LINE__, -0x0058cae, "-363694", "%+.1d", +__LINE__, -0x000002b, "-043", "%#1.3d", +__LINE__, -0x001e989, "-125321", "%1d", +__LINE__, 0x00959ecd, "9805517", "%d", +__LINE__, 0xf49df846, "F49DF846", "%+3X", +__LINE__, 0xfffffffd, "fffffffd", "%+.5x", +__LINE__, -0x000ac76, "-44150", "%3.ld", +__LINE__, 0x00000028, " 0028", "%06.4x", +__LINE__, 0x000003e8, "3E8", "%-02X", +__LINE__, 0x00000012, "012", "%.3X", +__LINE__, 0x00000006, "0X6", "%#X", +__LINE__, 0x00ef8479, "+15697017", "%+0.6d", +__LINE__, 0xffffffe8, "FFFFFFE8", "%-X", +__LINE__, 0x773a90f7, "773a90f7", "%3.5x", +__LINE__, 0x00096d44, "96D44", "%-X", +__LINE__, -0x08a3d96, "-9059734", "%ld", +__LINE__, -0x000001a, "-26", "%00.ld", +__LINE__, 0x32f57585, "32f57585", "% x", +__LINE__, 0x2825f175, "2825F175", "%X", +__LINE__, 0x000054ff, "21759", "%-2d", +__LINE__, -0x0266cdc, "-2518236", "%ld", +__LINE__, 0x0000031d, "0X31D", "%+#4X", +__LINE__, 0x0003fc99, "3fc99", "%x", +__LINE__, -0x0064624, "-411172", "%-#d", +__LINE__, 0x0001b2d9, "111321", "%-ld", +__LINE__, -0x000007c, "-124", "%#d", +__LINE__, 0xfffffffa, "FFFFFFFA", "%+X", +__LINE__, -0x007a5b8, "-501176", "%+ld", +__LINE__, 0x0213b583, "213B583", "%2.X", +__LINE__, 0xfff12e51, "FFF12E51", "%+X", +__LINE__, 0x00052403, "0336899", "%-0.7d", +__LINE__, 0xffffffff, "ffffffff", "%-04.4x", +__LINE__, 0x00000010, "0010", "%0.4X", +__LINE__, 0xffffffb5, "FFFFFFB5", "%-1.3X", +__LINE__, -0x0000001, "-1", "%d", +__LINE__, 0x0003a2d1, "3a2d1", "% x", +__LINE__, 0x00000424, "1060", "%0ld", +__LINE__, -0x0000078, "-120", "%1d", +__LINE__, 0x00000000, "0", "%ld", +__LINE__, 0x00000414, "1044", "%ld", +__LINE__, 0x00000072, "0x072", "%#5.3x", +__LINE__, 0x0000007a, "7A", "% X", +__LINE__, 0x081542a3, "135611043", "%0d", +__LINE__, 0xfffb4ce6, "fffb4ce6", "%4.6x", +__LINE__, 0x00002ab2, "2ab2", "%-1x", +__LINE__, 0x00000000, " 0", "% 2x", +__LINE__, 0xfffffa59, "FFFFFA59", "%2.X", +__LINE__, 0xffffe22b, "ffffe22b", "%-x", +__LINE__, 0xfffffd52, "FFFFFD52", "%+.2X", +__LINE__, 0x0000039f, "927", "%-d", +__LINE__, 0x0002dea6, "2dea6", "%0x", +__LINE__, 0x000216db, "136923", "%ld", +__LINE__, 0x00000013, "19", "%0d", +__LINE__, 0x000047cc, "18380", "%2.2ld", +__LINE__, -0x0007d10, "-32016", "%d", +__LINE__, 0xff9af906, "FF9AF906", "%0X", +__LINE__, 0x02cfa224, "+47161892", "%+0.7d", +__LINE__, -0x0000022, "-34", "%1.d", +__LINE__, 0xfffffff0, "FFFFFFF0", "%-4X", +__LINE__, 0x00000029, " 41", "%6.ld", +__LINE__, 0xffffff76, "ffffff76", "%x", +__LINE__, 0x00000000, "0", "%+X", +__LINE__, 0x00000001, "1", "%d", +__LINE__, 0xfff6de5a, "FFF6DE5A", "%X", +__LINE__, 0x00000002, "2", "%ld", +__LINE__, 0x00000025, "25", "%+x", +__LINE__, 0xfffffffb, "FFFFFFFB", "%5.0X", +__LINE__, 0x0011bbb5, "1162165", "%0.0ld", +__LINE__, 0xfffcdc96, "0XFFFCDC96", "%#X", +__LINE__, 0x00008f5f, "8f5f", "%3.1x", +__LINE__, 0xffa0fa5d, "0XFFA0FA5D", "%#X", +__LINE__, 0x00004534, "4534", "% 0X", +__LINE__, 0xfffffff9, "fffffff9", "%.2x", +__LINE__, 0xffeeae50, "ffeeae50", "%-x", +__LINE__, 0x00002964, " 0010596", "% 0.7d", +__LINE__, 0x000021c9, " 21c9", "%6x", +__LINE__, 0x00000001, " 1", "% d", +__LINE__, 0x0002abd8, "+175064", "%+d", +__LINE__, 0xffffffad, "FFFFFFAD", "%+0X", +__LINE__, 0x00000003, "3", "%ld", +__LINE__, 0x0c036da3, " 201551267", "% .3d", +__LINE__, -0x004343c, "-275516", "%+ld", +__LINE__, 0x00000003, "003", "% .3x", +__LINE__, 0xffffe34e, "ffffe34e", "%x", +__LINE__, 0x0000e118, "e118", "%x", +__LINE__, -0x007d945, "-514373", "%+#0ld", +__LINE__, 0x277f1cc5, "277f1cc5", "% x", +__LINE__, 0x00003bef, "03bef", "% 0.5x", +__LINE__, 0xfffffcb9, "fffffcb9", "%x", +__LINE__, 0x0003311a, "209178", "%ld", +__LINE__, 0x00000000, " ", "%3.ld", +__LINE__, 0x05942225, "5942225", "%x", +__LINE__, 0xfffceb4c, "FFFCEB4C", "%-X", +__LINE__, 0xffd08633, "ffd08633", "%2.x", +__LINE__, -0x0000001, " -1", "%6d", +__LINE__, 0x000fdb12, "1039122", "%d", +__LINE__, 0x00000003, "3", "% 0X", +__LINE__, -0x2fd5bf1, "-50158577", "% 5.ld", +__LINE__, -0x0089a03, "-563715", "%-d", +__LINE__, 0xfffffffe, "FFFFFFFE", "% X", +__LINE__, 0x29fdb2ba, "29fdb2ba", "% 0x", +__LINE__, 0x0000008f, "8F", "% X", +__LINE__, 0x00000003, "3", "%ld", +__LINE__, 0xffc58445, "FFC58445", "%.2X", +__LINE__, -0x00023f6, "-9206", "%+d", +__LINE__, 0x00000011, "11", "%X", +__LINE__, -0x0000003, "-0000003", "%-.7d", +__LINE__, -0x0000003, "-3", "%#ld", +__LINE__, 0x001242d9, "1242D9", "%X", +__LINE__, -0x48d0c81, "-76352641", "%7.d", +__LINE__, -0x001b675, "-112245", "%#ld", +__LINE__, 0x00000003, "3", "%-d", +__LINE__, 0xfff93fdf, "0XFFF93FDF", "% #X", +__LINE__, 0x001a9414, "1741844", "%#ld", +__LINE__, 0x0001fd86, "130438", "%ld", +__LINE__, 0x010f37a8, "17774504", "%4.7d", +__LINE__, 0x00382838, "0382838", "%3.7X", +__LINE__, -0x47fd56c2, "-1207785154", "%ld", +__LINE__, 0x001981dd, "1981dd", "%x", +__LINE__, 0xffffefba, "ffffefba", "% 06.x", +__LINE__, -0x3f402b29, "-1061169961", "%+#ld", +__LINE__, -0x395aae44, "-962244164", "%-1d", +__LINE__, 0x1fa39f42, "530816834", "%#d", +__LINE__, -0x000358d, "-13709", "%d", +__LINE__, -0xdc17b8f, "-230783887", "%ld", +__LINE__, -0x23c41583, "-600053123", "%+3.d", +__LINE__, 0xfffffc16, "fffffc16", "%x", +__LINE__, 0x003f1364, "4133732", "%7.ld", +__LINE__, 0xffffe691, "FFFFE691", "%07X", +__LINE__, 0x07b31d71, "129178993", "%.7d", +__LINE__, -0x0019732, "-104242", "% ld", +__LINE__, 0x02428167, "0x2428167", "%#x", +__LINE__, -0x06c1ecd, "-7085773", "%.7ld", +__LINE__, 0xfb01cb4e, "fb01cb4e", "%x", +__LINE__, 0x00005a41, "+23105", "%+ld", +__LINE__, 0xfffffff4, "FFFFFFF4", "%-5.X", +__LINE__, 0x00000005, " 5", "%4.ld", +__LINE__, 0xf4ab4b2d, "F4AB4B2D", "%0.X", +__LINE__, -0x000fce3, "-64739", "%+#3.ld", +__LINE__, 0x000076ea, " 30442", "%6.2ld", +__LINE__, 0x00000cb9, " cb9", "%4.x", +__LINE__, 0x002f43ef, "3097583", "%1.1ld", +__LINE__, 0xf5bd0105, "F5BD0105", "%+X", +__LINE__, 0x0037954a, "3642698", "%d", +__LINE__, 0xfffffff7, "0XFFFFFFF7", "%-#X", +__LINE__, 0xffffcedf, "0xffffcedf", "%#6.7x", +__LINE__, 0xfffffde4, "FFFFFDE4", "%2.4X", +__LINE__, 0x01a6f103, "1a6f103", "%5.x", +__LINE__, 0x00000191, " 191", "%7.0X", +__LINE__, 0x00000003, "03", "% .2X", +__LINE__, -0xd4e3219, "-223228441", "%6.ld", +__LINE__, 0x00b0efbd, "11595709", "%d", +__LINE__, -0x00000ea, "-234", "%#3d", +__LINE__, 0x00000be8, "BE8 ", "%-5X", +__LINE__, 0xffffffff, "ffffffff", "%5.3x", +__LINE__, -0x267f8c6, "-40368326", "%d", +__LINE__, 0x000006ed, "6ED", "%X", +__LINE__, 0xfdd6c9b6, "FDD6C9B6", "%X", +__LINE__, 0x0007ac29, "7ac29", "%-x", +__LINE__, 0x00000014, "14", "%2x", +__LINE__, 0x123ca563, "+305964387", "%+ld", +__LINE__, 0x00000004, " 4", "%5.d", +__LINE__, 0xffff877a, "ffff877a", "%x", +__LINE__, -0x00003e7, "-999", "%+0.3d", +__LINE__, 0x0a68ba6e, "a68ba6e", "%3.1x", +__LINE__, 0xfe29c810, "FE29C810", "%+X", +#endif + +__LINE__, 0x00000000, "0", "%o", +__LINE__, 0000000123, "123", "%o", +__LINE__, 0000123456, "0123456", "%#o", +__LINE__, 0000123456, "00123456", "%#.8o", +__LINE__, 0000123456, " 00123456", "%#10.8o", +__LINE__, 0x00000123, "0x00123", "%#07x", + +0, +}; diff --git a/newlib/libm/test/sprint_vec.c b/newlib/libm/test/sprint_vec.c new file mode 100644 index 000000000..5ac72518e --- /dev/null +++ b/newlib/libm/test/sprint_vec.c @@ -0,0 +1,3985 @@ +#include "test.h" + +sprint_double_type sprint_doubles[] = +{ +__LINE__, -1.002121970718271e+29, "-1.0E+29", "%.1E", +__LINE__, -1.002126048612756e-02, "-1.002126E-02", "%+#E", +__LINE__, -1.002653755271637e+00, "-1.00265", "%G", +__LINE__, -1.003238744365917e-23, "-0.00", "%4.2f", +__LINE__, -1.005084840877781e-29, " -0", "%4.f", +__LINE__, -1.005362549674427e+01, "-10.0536", "%#g", +__LINE__, -1.005915042991691e-17, "-1.00592E-17", "%G", +__LINE__, -1.007829874228503e-18, "-1.00783e-18", "%.7g", +__LINE__, -1.007829874228503e-18, "-1.007830e-18", "%#.7g", +__LINE__, -1.009390937771849e+15, "-1009390937771848.628657", "%+f", +__LINE__, -1.010679382726182e-29, "-0.0000000", "%.7f", +__LINE__, -1.010691853346650e+13, "-10106918533466.497934", "%+f", +__LINE__, -1.013412912122286e-22, "-1.01E-22", "%.2E", +__LINE__, -1.019269582113858e-25, " -0", "%4.0f", +__LINE__, -1.019886033368556e+24, "-1.019886E+24", "%+.7G", +__LINE__, -1.021037413548719e+02, "-102.103741", "%f", +__LINE__, -1.023833576089065e+26, "-1.023834E+26", "%+E", +__LINE__, -1.024736652408627e+10, "-10247366524.086265", "%+f", +__LINE__, -1.025439198495476e+09, "-1.02544e+09", "%+g", +__LINE__, -1.027080247585776e-04, "-0.0001027", "%6.7f", +__LINE__, -1.028096307262016e+18, "-1.0281E+18", "%3G", +__LINE__, -1.029604290697901e-02, "-0.010296", "%g", +__LINE__, -1.034347730570491e+16, "-10343477305704908.975059", "%+f", +__LINE__, -1.034663325049286e+22, "-1.0E+22", "%#.1E", +__LINE__, -1.034843152721857e-14, " -0", "%6.f", +__LINE__, -1.036082122299529e-29, "-1.04e-29", "%4.3g", +__LINE__, -1.037213662365954e-09, "-1e-09", "%3.e", +__LINE__, -1.038563976775690e-12, "-0.000000", "%f", +__LINE__, -1.040910158681323e-02, "-0.0104091", "%+G", +__LINE__, -1.044680094714482e-20, "-1.04468E-20", "%G", +__LINE__, -1.044990054091126e+24, "-1.044990E+24", "%+E", +__LINE__, -1.045693871096982e+11, "-1.045694e+11", "%+e", +__LINE__, -1.045714133591312e-04, "-0.000104571", "%+#3g", +__LINE__, -1.046215079103016e-15, "-1.04622e-15", "%g", +__LINE__, -1.046285293993789e-18, "-1.04629E-18", "%+4G", +__LINE__, -1.046306092899333e-06, "-0.00", "%0.2f", +__LINE__, -1.047308973649206e-22, "-1.05E-22", "%+1.3G", +__LINE__, -1.047369032507755e+01, "-1.047369E+01", "%E", +__LINE__, -1.048986365562919e-21, "-1.05E-21", "%+.2E", +__LINE__, -1.049530193156793e-17, "-1.04953E-17", "%+G", +__LINE__, -1.050073419263768e+25, "-1.05007e+25", "%g", +__LINE__, -1.051739652002504e-28, "-0.000000", "%+f", +__LINE__, -1.054493420082636e+21, "-1.0545e+21", "%#5.4e", +__LINE__, -1.055867291029098e+18, "-1.05587e+18", "%g", +__LINE__, -1.056514389757866e-16, "-1.05651E-16", "%5.6G", +__LINE__, -1.057180924868704e+15, "-1057180924868704", "%4.f", +__LINE__, -1.058455468395683e-23, "-1.05846e-23", "%g", +__LINE__, -1.062560982393212e+08, "-1.06256e+08", "%g", +__LINE__, -1.063365829241138e-10, "-1.063366e-10", "%+e", +__LINE__, -1.063568908667280e-19, "-1.06357E-19", "%+G", +__LINE__, -1.063734263253492e-13, "-0.000000", "%0f", +__LINE__, -1.064472689765495e-13, "-1E-13", "%4.0G", +__LINE__, -1.067192610000129e-25, "-1.06719E-25", "%G", +__LINE__, -1.068401334996592e-12, "-0.0000000", "%+.7f", +__LINE__, -1.069012628653724e-13, "-1.069013E-13", "%+.7G", +__LINE__, -1.069451976810790e+16, "-10694519768107904.056365", "%f", +__LINE__, -1.069568935323556e+17, "-1.06957e+17", "%g", +__LINE__, -1.071351044854107e-29, "-1.07135e-29", "%g", +__LINE__, -1.072274197526185e-21, "-1E-21", "%1.G", +__LINE__, -1.073875921752995e+23, "-1E+23", "%5.E", +__LINE__, -1.074835151152265e-12, "-1.0748e-12", "%1.5g", +__LINE__, -1.075171047088241e-19, "-1.07517E-19", "%#G", +__LINE__, -1.076258826412760e+22, "-1.076259e+22", "%+e", +__LINE__, -1.076365103160401e+06, "-1.07637E+06", "%+4.6G", +__LINE__, -1.076817750454633e+08, "-1e+08", "%4.g", +__LINE__, -1.078615405755685e-30, "-1e-30", "%4.g", +__LINE__, -1.078629622917468e-25, "-1.078630e-25", "%e", +__LINE__, -1.079352432833170e+11, "-107935243283", "%+2.f", +__LINE__, -1.081431147440215e+16, "-10814311474402147.439378", "%+f", +__LINE__, -1.083042116905339e-16, "-1.083e-16", "%.5g", +__LINE__, -1.085351710708553e-10, "-1.085e-10", "%1.4g", +__LINE__, -1.085796045618276e+07, "-1.085796e+07", "%e", +__LINE__, -1.087398259981007e+22, "-1.0874e+22", "%g", +__LINE__, -1.087986044402224e-11, "-1.087986e-11", "%e", +__LINE__, -1.090451848762709e-02, "-1.090452e-02", "%e", +__LINE__, -1.091463236899737e+11, "-1.091463E+11", "%#E", +__LINE__, -1.091617921737384e-29, "-1.09162e-29", "%3g", +__LINE__, -1.092049328579047e-17, "-1.092049E-17", "%E", +__LINE__, -1.093647615472090e+06, "-1093647.61547", "%6.5f", +__LINE__, -1.094133175602384e-08, "-1.1E-08", "%0.1E", +__LINE__, -1.095397916728214e-23, "-1e-23", "%6.e", +__LINE__, -1.098958790437321e+02, "-109.895879", "%+#f", +__LINE__, -1.100194638181594e-20, "-1.100195e-20", "%e", +__LINE__, -1.102174253534260e+05, "-1.1e+05", "%2.3g", +__LINE__, -1.102890180316350e-12, "-1.10289e-12", "%+g", +__LINE__, -1.105582337418378e+00, "-1.11", "%3.3g", +__LINE__, -1.110515122647056e+04, "-1.E+04", "%#0.G", +__LINE__, -1.111365895262625e-18, "-1e-18", "%0.g", +__LINE__, -1.112010622677495e+04, "-11120.1", "%g", +__LINE__, -1.112580043156699e-23, "-1.11258e-23", "%1g", +__LINE__, -1.112829057091303e+08, "-1.11283e+08", "%+2g", +__LINE__, -1.115019046200472e+18, "-1.1150190e+18", "%+#.7e", +__LINE__, -1.118078332268016e-13, "-1.12E-13", "%1.3G", +__LINE__, -1.119113571963886e+08, "-1.119114e+08", "%e", +__LINE__, -1.120102397563448e-15, "-1.12e-15", "%.4g", +__LINE__, -1.120707480791434e-19, "-1.12071e-19", "%g", +__LINE__, -1.124243676139007e-07, "-0.000000", "%f", +__LINE__, -1.125025214608798e+15, "-1.12503E+15", "%0G", +__LINE__, -1.126074395136447e+06, "-1E+06", "%+.0G", +__LINE__, -1.127203019940870e-06, "-0.000001", "%+#7f", +__LINE__, -1.130577648480677e+01, "-1.130578e+01", "%e", +__LINE__, -1.131469694425240e-11, "-1.13147e-11", "%#0.6g", +__LINE__, -1.132225023239752e+02, "-113.223", "%G", +__LINE__, -1.133702113050128e+20, "-1E+20", "%+3.E", +__LINE__, -1.135529466224404e-13, "-1.13553e-13", "%#g", +__LINE__, -1.137587210063004e+21, "-1e+21", "%.1g", +__LINE__, -1.140765637106361e-21, "-1.1e-21", "%+.1e", +__LINE__, -1.141182595083699e-18, "-0.000000", "%f", +__LINE__, -1.141695709120972e+00, "-1.1417", "%3G", +__LINE__, -1.143199141708028e+18, "-1143199141708027833", "%2.f", +__LINE__, -1.146712902056139e+21, "-1146712902056139071760.298975", "%f", +__LINE__, -1.146837903839073e-02, " -0.0", "%+5.1f", +__LINE__, -1.147363016107446e+10, "-1.14736e+10", "%+7g", +__LINE__, -1.149575523465052e+20, "-114957552346505220697.28140", "%+.5f", +__LINE__, -1.152748955392589e+13, "-1.15275E+13", "%G", +__LINE__, -1.152751106015483e-17, "-1E-17", "%+3.E", +__LINE__, -1.155539139258226e-18, "-1.2e-18", "%+.2g", +__LINE__, -1.157089280563492e+20, "-1.15709e+20", "%g", +__LINE__, -1.161217745859779e+19, "-1.161218E+19", "%E", +__LINE__, -1.162293536734798e+10, "-11622935367.347980", "%f", +__LINE__, -1.162629909468603e+20, "-1.16E+20", "%.3G", +__LINE__, -1.164979155838631e+24, "-1.16498E+24", "%G", +__LINE__, -1.165103052644816e-20, " -1e-20", "%+7.g", +__LINE__, -1.166448459023264e-08, "-0.000000", "%f", +__LINE__, -1.167694506705309e+28, "-1e+28", "%.1g", +__LINE__, -1.169901754818745e-28, "-0.000000", "%+f", +__LINE__, -1.170330336216446e+08, " -1e+08", "%7.g", +__LINE__, -1.170946623214213e-17, "-1.17095E-17", "%G", +__LINE__, -1.174581596799302e+27, "-1.174582e+27", "%+e", +__LINE__, -1.174763473995155e-28, "-1E-28", "%.1G", +__LINE__, -1.175885640508038e-23, "-1E-23", "%+.0E", +__LINE__, -1.177268411775439e-05, "-0.000012", "%#2.6f", +__LINE__, -1.177739669428001e-30, "-1.17774E-30", "%G", +__LINE__, -1.178059639880544e-02, "-0.0117806", "%+.7G", +__LINE__, -1.178793300854446e-13, "-1.2E-13", "%+#0.2G", +__LINE__, -1.179629345138058e-04, "-0.000118", "%0.3g", +__LINE__, -1.180730292213358e-25, "-1.18073e-25", "%g", +__LINE__, -1.180766261654697e+02, "-118.077", "%3g", +__LINE__, -1.181880261069391e-29, "-1.181880e-29", "%+#e", +__LINE__, -1.183752810063514e-09, "-1.18375e-09", "%#g", +__LINE__, -1.184191742443406e-21, "-1.184192e-21", "%e", +__LINE__, -1.184859760488406e-26, "-1.18486E-26", "%G", +__LINE__, -1.187276828720072e-29, "-1.18728E-29", "%G", +__LINE__, -1.187992907205195e-04, "-1.187993E-04", "%E", +__LINE__, -1.190586192763405e-28, "-1.E-28", "%#1.E", +__LINE__, -1.192104053032086e+02, "-119.21", "%G", +__LINE__, -1.192917884333569e+26, "-1.192918E+26", "%E", +__LINE__, -1.195900753509801e+22, "-1.1959e+22", "%g", +__LINE__, -1.196559413116537e-28, "-0.000000", "%6.6f", +__LINE__, -1.197534588732952e+12, "-1.19753e+12", "%#g", +__LINE__, -1.200279514790649e-25, "-0.0000", "%0.4f", +__LINE__, -1.203806667944635e+10, "-1.2038067E+10", "%5.7E", +__LINE__, -1.204344885974736e+07, "-1.204E+07", "%#2.4G", +__LINE__, -1.205668007693083e+00, "-1.20567", "%g", +__LINE__, -1.205898515218947e-11, "-1.2059e-11", "%+g", +__LINE__, -1.206787414909373e-05, "-1.2e-05", "%2.2g", +__LINE__, -1.207905830366447e+15, "-1.207906e+15", "%6.7g", +__LINE__, -1.208067010597729e-17, "-1.208067e-17", "%5e", +__LINE__, -1.210189135822574e+01, "-12", "%+2.0f", +__LINE__, -1.211560695948122e+10, "-1.21156e+10", "%+g", +__LINE__, -1.214003025273234e-18, "-1.214e-18", "%+g", +__LINE__, -1.214096815259005e+17, "-121409681525900459.142520", "%f", +__LINE__, -1.214699041716797e-14, "-1.2147E-14", "%G", +__LINE__, -1.215061611919443e+14, "-121506161191944.306310", "%+#f", +__LINE__, -1.217491221065185e+27, "-1.21749e+27", "%g", +__LINE__, -1.218538401534388e-11, "-1.218538e-11", "%#e", +__LINE__, -1.218810085883466e+16, "-1e+16", "%+.1g", +__LINE__, -1.219422688169801e+08, "-1.219423e+08", "%e", +__LINE__, -1.220473194407651e-14, "-1.2205E-14", "%1.5G", +__LINE__, -1.220824440193375e-02, "-0.012208", "%4f", +__LINE__, -1.221520240637007e+13, "-1.221520E+13", "%1E", +__LINE__, -1.221894719843486e+29, "-1.22189E+29", "%G", +__LINE__, -1.223020108610281e+25, "-1.22302E+25", "%G", +__LINE__, -1.223203206227728e-02, "-0.012232", "%G", +__LINE__, -1.225661737076919e-15, "-1.22566E-15", "%G", +__LINE__, -1.228147221003795e-08, "-1.22815E-08", "%G", +__LINE__, -1.228298534591771e+20, "-1.22830E+20", "%#G", +__LINE__, -1.228469080229780e-02, "-0.012285", "%0f", +__LINE__, -1.229161950699222e-09, "-1e-09", "%0.e", +__LINE__, -1.231294820136559e-17, "-1.231295E-17", "%1.7G", +__LINE__, -1.232588663406698e-21, "-1E-21", "%+0.G", +__LINE__, -1.233381256982191e-26, "-0.000000", "%f", +__LINE__, -1.233435864835578e+14, "-1.23344e+14", "%#g", +__LINE__, -1.237409567806099e-25, "-1.23741E-25", "%#G", +__LINE__, -1.238244697758558e-02, "-1.238245e-02", "%7e", +__LINE__, -1.239393163123284e+26, "-1.23939e+26", "%+g", +__LINE__, -1.240484781756132e-18, "-1E-18", "%4.E", +__LINE__, -1.241420286838750e+23, "-1E+23", "%2.E", +__LINE__, -1.243781122052343e-18, "-1.243781e-18", "%+e", +__LINE__, -1.244421506844779e+07, "-1.244422E+07", "%+6E", +__LINE__, -1.245754054764741e-21, "-1e-21", "%5.0g", +__LINE__, -1.245992228426733e-24, "-0.000000", "%f", +__LINE__, -1.246498277739883e-12, "-0.0000000", "%5.7f", +__LINE__, -1.247130891343776e-18, "-1.24713E-18", "%G", +__LINE__, -1.247309461703025e-03, "-0.0012473", "%#5.5G", +__LINE__, -1.248139162966407e-29, "-1.e-29", "%+#6.g", +__LINE__, -1.249756153623776e+08, "-1.249756e+08", "%e", +__LINE__, -1.250899983565585e-10, "-1.2509e-10", "%5g", +__LINE__, -1.250957368798327e+19, "-1.25096E+19", "%0G", +__LINE__, -1.252630814464822e-02, "-0.012526", "%+f", +__LINE__, -1.253076368257011e-28, "-0.000000", "%f", +__LINE__, -1.254243507039370e+01, "-1.254244e+01", "%e", +__LINE__, -1.257605614492298e-12, "-1.257606E-12", "%6.7G", +__LINE__, -1.258041911573120e+06, "-1258041.911573", "%+f", +__LINE__, -1.261670983426507e-25, "-0.00", "%.2f", +__LINE__, -1.263216883336562e-14, "-1.26322e-14", "%g", +__LINE__, -1.266846944498751e-15, "-1e-15", "%0.g", +__LINE__, -1.266977908502326e+06, "-1266978", "%+1.f", +__LINE__, -1.267006162870084e-23, "-1.267006e-23", "%e", +__LINE__, -1.269144609375931e+01, "-1.269145e+01", "%+e", +__LINE__, -1.269458714257904e+25, "-1.26946E+25", "%G", +__LINE__, -1.276697325772662e-02, "-0.0128", "%7.3G", +__LINE__, -1.278855081807602e+15, "-1278855081807601.87891", "%#0.5f", +__LINE__, -1.278966821639612e+20, "-1.278967E+20", "%3E", +__LINE__, -1.281942705258106e+03, "-1281.94", "%+G", +__LINE__, -1.282331291499203e+14, "-128233129149920.266343", "%+f", +__LINE__, -1.285125739341808e-28, "-1.28513e-28", "%g", +__LINE__, -1.285700693704978e+11, "-1.285701E+11", "%E", +__LINE__, -1.286574096459251e+28, "-1.287E+28", "%6.4G", +__LINE__, -1.287967889247240e+03, "-1287.97", "%G", +__LINE__, -1.288913808801319e-27, "-1.3e-27", "%7.1e", +__LINE__, -1.289147517760377e-18, "-1.289148E-18", "%E", +__LINE__, -1.289355006600107e+23, "-1.28936E+23", "%+G", +__LINE__, -1.291232014623979e+01, "-1.29123E+01", "%+.5E", +__LINE__, -1.293658562875966e-18, "-1.29366e-18", "%+g", +__LINE__, -1.294982911983638e-19, "-1.29498E-19", "%#G", +__LINE__, -1.296123363481695e-13, "-1.296123E-13", "%E", +__LINE__, -1.296632862070602e-20, "-1.29663e-20", "%+g", +__LINE__, -1.297801639022777e+23, "-129780163902277735132884.11777", "%#0.5f", +__LINE__, -1.297886574534611e+16, "-1.297887e+16", "%+e", +__LINE__, -1.300588216308401e+11, "-1.30e+11", "%.2e", +__LINE__, -1.301296100909062e-10, "-1.3013e-10", "%+g", +__LINE__, -1.303144244306468e-07, "-1.303144E-07", "%E", +__LINE__, -1.304096315024042e-20, "-1.3041E-20", "%+G", +__LINE__, -1.304817970675085e+16, "-1.304818E+16", "%+E", +__LINE__, -1.304870304632683e-15, " -1e-15", "%7.g", +__LINE__, -1.305213586757638e-18, "-1.30521e-18", "%g", +__LINE__, -1.306880734910465e-22, "-1.306881E-22", "%E", +__LINE__, -1.308964092631446e-23, "-1.30896e-23", "%g", +__LINE__, -1.312070555198201e+26, "-131207055519820126043839537", "%+7.f", +__LINE__, -1.312511609151056e-30, "-1.312512E-30", "%#E", +__LINE__, -1.313087359008389e-23, "-0.000000", "%+f", +__LINE__, -1.316948423042059e-02, "-1.316948E-02", "%+E", +__LINE__, -1.317080882577385e+29, "-1.317E+29", "%+.4G", +__LINE__, -1.317514598984346e+24, "-1.317515e+24", "%e", +__LINE__, -1.317817551125923e-21, "-1.31782E-21", "%+G", +__LINE__, -1.319603985988120e+29, "-131960398598811989856471882376.354188", "%f", +__LINE__, -1.328850458671907e+06, "-1e+06", "%.0e", +__LINE__, -1.328945346449817e-23, "-1.328945e-23", "%+e", +__LINE__, -1.330146584094221e-08, "-1e-08", "%+5.g", +__LINE__, -1.332609617892115e+00, "-1.33261", "%2.7G", +#ifndef __PCCNECV70__ +__LINE__, -1.332751724965715e+22, "-13327517249657150344432.920974", "%f", +__LINE__, -1.333194379353273e-19, "-0.000000", "%f", +__LINE__, -1.334304387932777e-06, "-1.334304e-06", "%e", +__LINE__, -1.334306581172082e-05, "-1.3e-05", "%+1.2g", +__LINE__, -1.335283510893438e-05, " -1E-05", "%7.G", +__LINE__, -1.337939692108373e+11, "-1.33794e+11", "%+4g", +__LINE__, -1.339117288874809e-03, "-0.001", "%1.3f", +__LINE__, -1.340100588141492e+27, "-1.340101E+27", "%E", +__LINE__, -1.341953272572953e-19, "-0.000000", "%+f", +__LINE__, -1.343058354301620e-02, "-1.343058e-02", "%e", +__LINE__, -1.346662720871543e+22, "-1.34666E+22", "%#G", +__LINE__, -1.354010578652210e-02, "-0.0135401", "%#g", +__LINE__, -1.354066549307666e-12, " -0", "%+6.f", +__LINE__, -1.355284719365947e+21, "-1.35528e+21", "%g", +__LINE__, -1.356326532145087e+29, "-1E+29", "%4.G", +__LINE__, -1.357278618897291e+19, "-13572786188972911780.581398", "%f", +__LINE__, -1.357537331348202e-10, "-0.000", "%+.3f", +__LINE__, -1.360011287595868e-10, "-0.000000", "%f", +__LINE__, -1.360506902899232e+16, "-13605069028992320.", "%#5.f", +__LINE__, -1.361102570277000e+10, "-1.3611E+10", "%G", +__LINE__, -1.362601255900219e+07, "-1.363E+07", "%.4G", +__LINE__, -1.366078182354771e+10, "-1.36608E+10", "%0G", +__LINE__, -1.366667926615127e+08, "-136666792.661513", "%f", +__LINE__, -1.367162823743231e-12, "-0.000000", "%#f", +__LINE__, -1.371523037550709e+09, "-1.37152e+09", "%+g", +__LINE__, -1.374328925986197e-17, "-1.37e-17", "%.2e", +__LINE__, -1.374995603898421e-26, "-1.375e-26", "%+g", +__LINE__, -1.376726539375688e+09, "-1.376727E+09", "%+E", +__LINE__, -1.378351117694958e-13, "-0.000000", "%f", +__LINE__, -1.378514699313619e-14, "-1.378515e-14", "%e", +__LINE__, -1.379347588942324e-23, "-1.4e-23", "%+.1e", +__LINE__, -1.380380583822272e-17, "-0.000000", "%+f", +__LINE__, -1.381658659947406e+19, "-1.38166e+19", "%g", +__LINE__, -1.382775316390237e+29, "-138277531639023653298181670834.3104", "%+#7.4f", +__LINE__, -1.383541138922400e+00, "-1.383541E+00", "%E", +__LINE__, -1.384625301445090e+01, "-13.8", "%+.3g", +__LINE__, -1.386844086284027e-13, "-1.38684E-13", "%+G", +__LINE__, -1.386930516448650e-28, "-1.386931E-28", "%E", +__LINE__, -1.387444896054260e-07, "-1.38744E-07", "%G", +__LINE__, -1.389685107980798e+22, "-1.38969E+22", "%G", +__LINE__, -1.390880300369347e+03, "-1390.880300", "%f", +__LINE__, -1.391423370198150e-17, "-1E-17", "%+2.G", +__LINE__, -1.394441767471218e-09, "-1.394442e-09", "%e", +__LINE__, -1.396275525062527e-20, "-1.39628E-20", "%G", +__LINE__, -1.397045957455157e+24, "-1E+24", "%.0E", +__LINE__, -1.397458546930799e+21, "-1397458546930798526375.383517", "%f", +__LINE__, -1.397584578988941e-14, "-1.39758e-14", "%5g", +__LINE__, -1.397789397300823e+09, "-1.398e+09", "%.4g", +__LINE__, -1.398167472294874e+21, "-1.398167E+21", "%+7E", +__LINE__, -1.398809636136688e-16, "-0.000000", "%+f", +__LINE__, -1.399545335304119e+26, "-139954533530411872277454676.805064", "%#5f", +__LINE__, -1.400102603335755e+20, "-140010260333575509150.705329", "%2f", +__LINE__, -1.401212746235235e+04, "-1.401213e+04", "%e", +__LINE__, -1.404409427681801e+07, "-1E+07", "%4.E", +__LINE__, -1.406018114263948e-25, "-1e-25", "%3.e", +__LINE__, -1.406245608096877e-06, "-1.4e-06", "%+.1e", +__LINE__, -1.410697254683835e-10, "-1.410697e-10", "%e", +__LINE__, -1.410739097553846e+25, "-1.410739E+25", "%+E", +__LINE__, -1.410850631189577e+04, "-14108.5", "%.6g", +__LINE__, -1.411680434455781e+28, "-14116804344557807304738616949.180141", "%f", +__LINE__, -1.413309465660099e-27, "-1.413309E-27", "%+#E", +__LINE__, -1.418468741386300e+09, "-1418468741.386300", "%f", +__LINE__, -1.420277110892909e+06, "-1.42028e+06", "%1g", +__LINE__, -1.420417889565590e-17, "-1.42E-17", "%.2E", +__LINE__, -1.421098212056305e+08, "-1.421098e+08", "%4e", +__LINE__, -1.421792812798986e-20, " -1E-20", "%7.G", +__LINE__, -1.423675488122461e+18, "-1423675488122461363.360571", "%f", +__LINE__, -1.423810545840653e+15, "-1E+15", "%3.E", +__LINE__, -1.424242673476368e-15, "-1.424243e-15", "%e", +__LINE__, -1.427847435688733e-01, "-1.427847E-01", "%E", +__LINE__, -1.433897734612555e-04, "-0.0001", "%3.g", +__LINE__, -1.434537754075696e-24, "-1.435E-24", "%+0.3E", +__LINE__, -1.434774864809324e-24, "-1E-24", "%2.E", +__LINE__, -1.435583851565142e-11, "-1E-11", "%.0E", +__LINE__, -1.438791024010112e+11, "-1.43879e+11", "%#.6g", +__LINE__, -1.439267565343777e+27, "-1.4e+27", "%2.1e", +__LINE__, -1.439440602670449e+02, "-143.944", "%G", +__LINE__, -1.439494412124925e+13, "-14394944121249.251268", "%f", +__LINE__, -1.440032823245152e+10, "-14400328232.451516", "%f", +__LINE__, -1.440174494009562e-08, "-0.000000", "%7f", +__LINE__, -1.440827804010568e+07, "-1.E+07", "%#6.1G", +__LINE__, -1.442760907195336e+09, "-1.44276E+09", "%+5G", +__LINE__, -1.444655304181403e+10, "-14446553041.814035", "%7f", +__LINE__, -1.444995766787036e+04, "-14450", "%5G", +__LINE__, -1.445078682874535e-13, "-1E-13", "%3.E", +__LINE__, -1.446781469662328e+01, "-14.4678", "%G", +__LINE__, -1.447795251395321e-04, "-0.000145", "%+f", +__LINE__, -1.448193079247108e-02, "-0.014", "%4.2G", +__LINE__, -1.449552967961345e+14, "-1E+14", "%1.E", +__LINE__, -1.451269763513571e+10, "-14512697635.135705", "%6f", +__LINE__, -1.451843176990292e+12, "-1e+12", "%1.g", +__LINE__, -1.452631405935931e+06, "-1.452631e+06", "%e", +__LINE__, -1.452753650285897e+21, "-1452753650285897091265.496783", "%5f", +__LINE__, -1.453811512433860e-05, "-1e-05", "%+6.g", +__LINE__, -1.454071430557372e+13, "-1.4541E+13", "%.4E", +__LINE__, -1.455956079562999e+03, "-1455.96", "%G", +__LINE__, -1.459712196146602e-17, "-1.45971e-17", "%g", +__LINE__, -1.461857733495947e-02, "-1.4619E-02", "%.4E", +__LINE__, -1.465257069090911e-11, "-1.465257E-11", "%+E", +__LINE__, -1.465306607257042e+05, "-146531", "%g", +__LINE__, -1.465857076315921e+20, "-1.46586E+20", "%+G", +__LINE__, -1.467919792051489e+16, "-1.46792e+16", "%2g", +__LINE__, -1.469271519834567e+20, "-146927151983456720785", "%+.0f", +__LINE__, -1.472961447442697e-28, "-1.47296e-28", "%#g", +__LINE__, -1.473385695190456e-12, "-1.473386E-12", "%E", +__LINE__, -1.485003089033267e-10, "-1.485E-10", "%2G", +__LINE__, -1.490541379072390e-18, "-1.490541E-18", "%4E", +__LINE__, -1.490683434793125e+22, "-14906834347931249951102.472551", "%#f", +__LINE__, -1.498356837215425e+20, "-1.49836E+20", "%#G", +__LINE__, -1.498677007818122e+14, "-1.49868E+14", "%+4G", +__LINE__, -1.502143197677119e+23, "-150214319767711934616727.", "%#7.f", +__LINE__, -1.503563770470753e-24, "-1.50356e-24", "%.6g", +__LINE__, -1.504643092793197e-18, "-1.504643e-18", "%+4e", +__LINE__, -1.507017706254022e-13, "-1.50702e-13", "%+g", +__LINE__, -1.507054033750081e-22, "-0.000000", "%f", +__LINE__, -1.508662346022339e+16, "-1.508662E+16", "%#E", +__LINE__, -1.509366882438902e+08, "-2e+08", "%4.g", +__LINE__, -1.511086567087967e+20, "-1.51109e+20", "%g", +__LINE__, -1.514959134622707e-18, "-0.000000", "%+f", +__LINE__, -1.515730120364204e+06, "-2E+06", "%0.G", +__LINE__, -1.516372763118606e-09, "-1.51637e-09", "%g", +__LINE__, -1.520610443546204e+27, "-1.52061e+27", "%g", +__LINE__, -1.522040655642012e+11, "-1.52204E+11", "%+2G", +__LINE__, -1.523772495014966e-24, "-2E-24", "%2.G", +__LINE__, -1.523980825983892e-05, "-0.000", "%2.3f", +__LINE__, -1.526696214603152e-03, "-0.0015267", "%+6.5G", +__LINE__, -1.528680540769583e+00, "-1.5287", "%0.5G", +__LINE__, -1.529951830525433e+08, "-1.529952e+08", "%+e", +__LINE__, -1.533052896559935e+05, "-153305", "%4.0f", +__LINE__, -1.533829640475152e-03, "-0.00153383", "%+#g", +__LINE__, -1.535617804643105e-30, "-1.535618e-30", "%e", +__LINE__, -1.537623698361821e+16, "-15376236983618207.7875719", "%4.7f", +__LINE__, -1.544994895330616e+24, "-1.54499e+24", "%g", +__LINE__, -1.545083356728403e+17, "-1.545083e+17", "%e", +__LINE__, -1.545684535393879e+12, "-1.55E+12", "%3.3G", +__LINE__, -1.545878334099427e+13, "-15458783340994.268762", "%1f", +__LINE__, -1.547697185980564e-18, "-1.5477e-18", "%.6g", +__LINE__, -1.548576527172579e-29, "-1.5E-29", "%2.2G", +__LINE__, -1.549712227835891e+08, "-1.549712e+08", "%#6.7g", +__LINE__, -1.550010819435335e-21, "-1.55001E-21", "%G", +__LINE__, -1.551412476164257e+14, "-1.551412E+14", "%E", +__LINE__, -1.553156638090030e+01, " -2E+01", "%7.G", +__LINE__, -1.553733233064355e-01, "-0.2", "%3.g", +__LINE__, -1.558391111609365e+00, "-1.558391", "%+f", +__LINE__, -1.562004019284766e+15, "-1.562E+15", "%6.5G", +__LINE__, -1.562195733239758e-16, "-0.000000", "%f", +__LINE__, -1.563953339012525e-14, "-1.56395E-14", "%1G", +__LINE__, -1.568317638534983e+18, "-1.56832E+18", "%1G", +__LINE__, -1.568546851135348e+04, "-15685.5", "%+#G", +__LINE__, -1.574297872228857e+18, "-1.574298e+18", "%e", +__LINE__, -1.575696460196291e-21, "-1.5757E-21", "%G", +__LINE__, -1.576324848379791e+25, "-1.57632E+25", "%+G", +__LINE__, -1.577524395140843e+06, "-1.5775E+06", "%.5G", +__LINE__, -1.585122856675091e+12, "-1585122856675.091452", "%f", +__LINE__, -1.586734674395556e-02, "-1.586735E-02", "%E", +__LINE__, -1.592602264315192e+22, "-1.5926E+22", "%G", +__LINE__, -1.594121556700562e+05, "-2E+05", "%+.0G", +__LINE__, -1.598538116193430e+22, "-1.59854e+22", "%+g", +__LINE__, -1.605647463222382e+18, "-1.6056E+18", "%.5G", +__LINE__, -1.610891449201191e+06, "-1.6109E+06", "%#6.4E", +__LINE__, -1.614593168166818e-05, "-1.61459E-05", "%G", +__LINE__, -1.615597722557325e-03, "-0.001616", "%f", +__LINE__, -1.616038022182124e-29, "-1.61604E-29", "%1G", +__LINE__, -1.618380771451625e-28, "-2e-28", "%+1.g", +__LINE__, -1.620287456872150e+10, "-1.620e+10", "%#7.3e", +__LINE__, -1.620469955611903e-29, "-0.000000", "%f", +__LINE__, -1.622580720690927e+20, "-1.622581E+20", "%+#E", +__LINE__, -1.622752500991079e-12, "-1.622753E-12", "%E", +__LINE__, -1.622771933776459e+08, "-1.6228E+08", "%+4.4E", +__LINE__, -1.623894567037391e+09, "-1.623895e+09", "%#e", +__LINE__, -1.624021408185354e-25, "-1.624E-25", "%.5G", +__LINE__, -1.624405320939366e-06, "-1.62441e-06", "%+#g", +__LINE__, -1.631236208958857e-25, "-1.631236e-25", "%#e", +__LINE__, -1.632165969536046e+20, "-1.63217E+20", "%G", +__LINE__, -1.632859596256475e+06, "-1.63286E+06", "%G", +__LINE__, -1.634371961703112e+06, "-1.634372E+06", "%+E", +__LINE__, -1.637230383641845e+24, "-1.63723e+24", "%#g", +__LINE__, -1.638081480475853e+17, "-1.63808e+17", "%+g", +__LINE__, -1.638279690467673e+14, "-163827969046767.325523", "%#f", +__LINE__, -1.640360249548215e-29, "-1.64036e-29", "%+6.6g", +__LINE__, -1.645691728060833e-30, "-1.64569e-30", "%g", +__LINE__, -1.648548965852592e-03, " -0", "%5.f", +__LINE__, -1.650100957771182e+21, "-1650100957771182308420.065965", "%+f", +__LINE__, -1.650957176011913e-02, "-0.016510", "%#4.5G", +__LINE__, -1.651165108095301e+29, "-165116510809530137038336761179.380119", "%f", +__LINE__, -1.657132845094847e-06, "-0.000002", "%f", +__LINE__, -1.657152146172541e+12, "-1.657152E+12", "%.7G", +__LINE__, -1.658377345516132e-06, "-0.00", "%.2f", +__LINE__, -1.658850468902324e+20, "-1.659e+20", "%.4g", +__LINE__, -1.661723557149830e+18, "-1.66172E+18", "%G", +__LINE__, -1.663570885140273e+14, "-166357088514027", "%2.f", +__LINE__, -1.665186944896906e+25, "-1.66519E+25", "%G", +__LINE__, -1.675910137717036e+22, "-2e+22", "%5.g", +__LINE__, -1.677447987675587e-15, "-1.67745E-15", "%G", +__LINE__, -1.677510590697220e+06, "-1677510.590697", "%5f", +__LINE__, -1.677658141289510e-18, "-2E-18", "%+5.G", +__LINE__, -1.678316848066192e-03, "-1.678317E-03", "%E", +__LINE__, -1.681506404024821e+24, "-1.68151E+24", "%G", +__LINE__, -1.688584243722160e+12, "-1.68858E+12", "%+#G", +__LINE__, -1.689468295411408e+28, "-1.68947E+28", "%+G", +__LINE__, -1.690746767470207e-11, "-1.69075E-11", "%G", +__LINE__, -1.692773960755248e-14, "-2E-14", "%4.E", +__LINE__, -1.693349092740995e-18, "-1.69335e-18", "%g", +__LINE__, -1.693642321808920e-26, "-1.69364E-26", "%G", +__LINE__, -1.694579128700042e-12, "-0.000000", "%f", +__LINE__, -1.695454897264717e-08, "-1.7E-08", "%+4.3G", +__LINE__, -1.695733278397589e+19, "-1.695733e+19", "%4e", +__LINE__, -1.699522534409388e-05, "-1.69952E-05", "%G", +__LINE__, -1.701752039544919e+00, "-2", "%.0f", +__LINE__, -1.702304998615036e+16, "-1.7023E+16", "%1G", +__LINE__, -1.703113580904556e-25, "-1.703114e-25", "%+e", +__LINE__, -1.705165515454546e+29, "-1.705166e+29", "%+e", +__LINE__, -1.707392568277288e-05, "-1.70739E-05", "%G", +__LINE__, -1.707477319256742e+09, "-1707477319.26", "%7.2f", +__LINE__, -1.709669107513969e-03, " -0.002", "%7.g", +__LINE__, -1.713284011412432e-24, "-1.713e-24", "%3.3e", +__LINE__, -1.715512203951086e-28, "-1.715512E-28", "%E", +__LINE__, -1.716880832248879e+13, "-1.71688e+13", "%+g", +__LINE__, -1.720722835740680e-15, "-1.7E-15", "%.1E", +__LINE__, -1.721855769574895e+07, "-17218557.695749", "%3f", +__LINE__, -1.722449437415368e+01, "-1.722449e+01", "%e", +__LINE__, -1.723218805116591e-29, "-2e-29", "%.0g", +__LINE__, -1.726129004920195e-05, "-1.72613E-05", "%0G", +__LINE__, -1.727400228037571e-28, "-0.0000000", "%2.7f", +__LINE__, -1.730008745782339e-23, "-1.73e-23", "%.4g", +__LINE__, -1.731875670201859e+09, "-1.73188E+09", "%G", +__LINE__, -1.732142976428085e+10, "-2E+10", "%+6.0E", +__LINE__, -1.732699651229194e-02, "-0.017327", "%5g", +__LINE__, -1.734772870736446e-12, "-0.000000", "%+f", +__LINE__, -1.738576887938331e+09, "-1.73858e+09", "%g", +__LINE__, -1.738759937912438e-08, "-1.73876e-08", "%+2g", +__LINE__, -1.739320154069143e-18, "-0.0000", "%1.4f", +__LINE__, -1.739870415800800e+16, "-1.73987e+16", "%g", +__LINE__, -1.741290506928618e+04, "-17412.9", "%G", +__LINE__, -1.742520800031913e+29, "-1.742521e+29", "%7e", +__LINE__, -1.747620095195231e+01, "-2e+01", "%+2.g", +__LINE__, -1.749860675924882e-21, "-1.74986E-21", "%G", +__LINE__, -1.752675363661431e-06, "-1.7527E-06", "%.5G", +__LINE__, -1.752871508059699e-06, " -0", "%7.f", +__LINE__, -1.755178530989839e+25, "-1.7551785e+25", "%1.7e", +__LINE__, -1.755566213249512e-07, "-1.755566e-07", "%.6e", +__LINE__, -1.756193485005071e-24, "-1.75619E-24", "%+2.6G", +__LINE__, -1.758501410496218e+03, "-1758.501", "%.7G", +__LINE__, -1.758795617219102e+20, "-1.75880E+20", "%#6G", +__LINE__, -1.760538679276709e+03, "-2e+03", "%+1.e", +__LINE__, -1.762660914833003e+27, "-1.76266E+27", "%G", +__LINE__, -1.765122691141907e+19, "-17651226911419071186.1", "%5.1f", +__LINE__, -1.765313277389086e-18, "-2E-18", "%+1.E", +__LINE__, -1.765821717148734e+19, "-1.76582E+19", "%G", +__LINE__, -1.767048687863149e-17, "-1.77E-17", "%+.3G", +__LINE__, -1.768661645451962e+18, "-1.77E+18", "%+.3G", +__LINE__, -1.769753257452233e+01, "-17.6975", "%G", +__LINE__, -1.770945665065531e+28, "-1.770946E+28", "%0.7G", +__LINE__, -1.776713865753894e-09, "-2e-09", "%1.g", +__LINE__, -1.778424845787448e+03, "-1.7784E+03", "%.4E", +__LINE__, -1.779060610701250e+06, "-1.779061E+06", "%E", +__LINE__, -1.781447182110762e-27, "-1.781447E-27", "%E", +__LINE__, -1.782655842123784e-13, "-2.E-13", "%#2.1G", +__LINE__, -1.783071018169166e+16, "-17830710181691664.217851", "%+f", +__LINE__, -1.784665985294415e+25, "-2E+25", "%3.G", +__LINE__, -1.787297600658096e+25, "-2E+25", "%+5.E", +__LINE__, -1.788200250255718e+12, "-1.7882E+12", "%2.4E", +__LINE__, -1.792860730579114e-09, "-1.79286E-09", "%G", +__LINE__, -1.793122797100936e+24, "-1.793123e+24", "%e", +__LINE__, -1.793761706915029e-25, "-0.000000", "%f", +__LINE__, -1.793947567431932e+22, "-1.79395e+22", "%g", +__LINE__, -1.796428035404303e-18, "-1.79643e-18", "%g", +__LINE__, -1.797113144273918e-16, "-1.79711E-16", "%.6G", +__LINE__, -1.798796767828424e-29, "-1.7988E-29", "%G", +__LINE__, -1.805004010633763e-11, "-1.805e-11", "%2.5g", +__LINE__, -1.806936269752338e-26, "-1.80694e-26", "%g", +__LINE__, -1.807122541760172e-10, "-1.80712e-10", "%g", +__LINE__, -1.808295407815630e-06, "-1.8083E-06", "%+G", +__LINE__, -1.813893236685959e+15, "-1813893236685959", "%0.f", +__LINE__, -1.816201530145367e+06, "-1816202", "%+2.f", +__LINE__, -1.822811219123512e+13, "-1.82281e+13", "%g", +__LINE__, -1.826276499170243e-25, "-2E-25", "%+3.G", +__LINE__, -1.832399287433839e-26, "-1.832399E-26", "%#4E", +__LINE__, -1.833597815584463e-18, "-0.000000", "%+3f", +__LINE__, -1.834165532712233e+28, "-1.834166E+28", "%.7G", +__LINE__, -1.837633147831083e+28, "-1.8376331e+28", "%.7e", +__LINE__, -1.839756716742518e-01, "-0.2", "%+0.G", +__LINE__, -1.840101206950368e-14, "-1.840101E-14", "%+E", +__LINE__, -1.842043645474877e+17, "-1.84204e+17", "%+g", +__LINE__, -1.842155892969934e+17, "-1.84216e+17", "%+g", +__LINE__, -1.843566073012842e-25, "-1.84357E-25", "%G", +__LINE__, -1.843976321320497e-02, "-0.02", "%+4.2f", +__LINE__, -1.845299931651554e+11, "-1.8453E+11", "%0.4E", +__LINE__, -1.846199038659889e-06, "-1.8462e-06", "%0.5g", +__LINE__, -1.847062180184169e-30, "-1.847062E-30", "%5E", +__LINE__, -1.847962158722201e-16, "-0.000000", "%f", +__LINE__, -1.849446376756582e+15, "-1.8E+15", "%2.2G", +__LINE__, -1.853168465523878e-24, "-2E-24", "%1.E", +__LINE__, -1.853601367230139e+10, "-1.853601e+10", "%e", +__LINE__, -1.857367903775364e+18, "-1.86E+18", "%1.3G", +__LINE__, -1.858332820633906e-05, "-0.000019", "%7f", +__LINE__, -1.860243811657223e-23, "-1.860244e-23", "%e", +__LINE__, -1.860660612539794e+08, "-1.86066e+08", "%+6.5e", +__LINE__, -1.861160816251124e-09, "-2E-09", "%1.G", +__LINE__, -1.862380636974688e-25, "-1.9E-25", "%.2G", +__LINE__, -1.864168808453004e+15, "-1.86417E+15", "%G", +__LINE__, -1.864273144411246e+07, "-1.86427e+07", "%g", +__LINE__, -1.864929236615802e-02, "-2e-02", "%+3.e", +__LINE__, -1.865010503480847e+19, "-2E+19", "%4.G", +__LINE__, -1.866276374553144e+22, "-1.866276e+22", "%e", +__LINE__, -1.870809567910649e+09, "-1.870810e+09", "%e", +__LINE__, -1.872555495839008e-13, "-1.872555E-13", "%3E", +__LINE__, -1.874465717110388e-22, "-1.874466E-22", "%E", +__LINE__, -1.874916306627632e+21, "-1874916306627632422987.517202", "%f", +__LINE__, -1.875804322194491e-23, "-0.000000", "%+f", +__LINE__, -1.876662099198587e-04, "-0.000187666", "%G", +__LINE__, -1.876775504795760e-25, "-1.87678e-25", "%0g", +__LINE__, -1.879343051002554e-20, " -0.", "%#6.f", +__LINE__, -1.881535445774717e-15, "-1.881535e-15", "%e", +__LINE__, -1.887515901404300e+00, "-1.888", "%2.4G", +__LINE__, -1.887730637149009e+17, "-1.887731E+17", "%E", +__LINE__, -1.889920303480086e+17, "-1.889920e+17", "%+e", +__LINE__, -1.891903478784091e+04, "-1.891903e+04", "%e", +__LINE__, -1.893550084305833e+16, "-1.89355e+16", "%g", +__LINE__, -1.894675230197676e+05, "-1.894675e+05", "%#e", +__LINE__, -1.898389624953187e-27, "-1.898390e-27", "%+e", +__LINE__, -1.899250044644046e+21, "-1899250044644046120367.875119", "%+4.6f", +__LINE__, -1.904187609804679e-02, "-1.90419E-02", "%0.5E", +__LINE__, -1.904452538421193e-04, "-2e-04", "%4.0e", +__LINE__, -1.904615326969061e-16, "-1.904615e-16", "%1.7g", +__LINE__, -1.907761255064750e+02, "-190.776126", "%f", +__LINE__, -1.910727641826707e-10, " -2e-10", "%7.g", +__LINE__, -1.913149279262051e+15, "-1.913149e+15", "%.7g", +__LINE__, -1.913235739298009e+28, "-1.913236e+28", "%e", +__LINE__, -1.913526822735271e+18, "-1.914e+18", "%.4g", +__LINE__, -1.913780977515583e+17, "-191378097751558335.9150", "%5.4f", +__LINE__, -1.917095456962182e-10, "-2E-10", "%4.G", +__LINE__, -1.918803033972851e+23, "-191880303397285132405158.947222", "%f", +__LINE__, -1.926420984801848e+16, "-19264209848018483.128840", "%+f", +__LINE__, -1.931905465942639e-10, "-1.93191e-10", "%g", +__LINE__, -1.932907105840252e+06, "-1.932907e+06", "%+#e", +__LINE__, -1.933091601918916e+15, "-1.933092E+15", "%#E", +__LINE__, -1.934296184983361e+09, "-1.9343e+09", "%1.6g", +__LINE__, -1.934637311832448e+11, "-1.93464e+11", "%+g", +__LINE__, -1.936201483262186e+12, "-2e+12", "%+6.g", +__LINE__, -1.939114661603911e+19, "-1.93911E+19", "%G", +__LINE__, -1.940478182124347e-13, "-0.000000", "%f", +__LINE__, -1.943218220654923e+08, "-2E+08", "%+5.0G", +__LINE__, -1.943526872455779e-30, "-1.9E-30", "%.1E", +__LINE__, -1.949869164681357e+19, "-1.949869e+19", "%#3e", +__LINE__, -1.954181060535402e+23, "-1.954181e+23", "%e", +__LINE__, -1.961581555579142e+14, "-1.962E+14", "%.3E", +__LINE__, -1.964535562036915e+07, "-1.96454E+07", "%G", +__LINE__, -1.969749653575926e+04, "-19697.5", "%.6g", +__LINE__, -1.973475369169053e+15, "-1.97348e+15", "%g", +__LINE__, -1.975658532866600e-21, "-2e-21", "%+1.2g", +__LINE__, -1.984050343831260e+09, "-1.984050E+09", "%E", +__LINE__, -1.984422410018571e+12, "-1.984422e+12", "%+4.7g", +__LINE__, -1.984878687667223e-22, "-0.000000", "%f", +__LINE__, -1.986116930967811e-28, "-1.98612e-28", "%g", +__LINE__, -1.986774457812683e+02, "-1.986774e+02", "%e", +__LINE__, -1.987274814938726e-04, "-0.000198727", "%g", +__LINE__, -1.987319200580415e+10, "-1.987319E+10", "%E", +__LINE__, -1.987980768698114e-19, "-0.000000", "%3f", +__LINE__, -1.994698965044602e-29, "-2E-29", "%+4.0G", +__LINE__, -1.997833122667050e+26, "-1.99783E+26", "%G", +__LINE__, -1.999453681184129e-10, "-0.00000", "%.5f", +__LINE__, -1.999897345839745e-16, "-1.9999e-16", "%g", +__LINE__, -2.003703825123989e-22, "-0.000000", "%f", +__LINE__, -2.004569188274957e-23, "-2.00457E-23", "%G", +__LINE__, -2.005911883189058e+07, "-2.00591E+07", "%G", +__LINE__, -2.006438312005722e-25, "-2.006e-25", "%0.4g", +__LINE__, -2.017322171210280e+18, "-2.01732E+18", "%+0G", +__LINE__, -2.017718635819594e-06, "-2.01772e-06", "%5g", +__LINE__, -2.019187445568160e-12, "-0.00", "%.2f", +__LINE__, -2.021022665608503e+25, "-20210226656085028551501636.684", "%2.3f", +__LINE__, -2.022720393474145e+07, "-2.02272E+07", "%#G", +__LINE__, -2.024506694471065e+23, "-2.02451E+23", "%G", +__LINE__, -2.024884686553821e-15, " -2e-15", "%7.g", +__LINE__, -2.027484636128966e-23, "-2.0275E-23", "%.5G", +__LINE__, -2.028185530467237e+21, "-2028185530467237374097.067", "%+4.3f", +__LINE__, -2.028388905566873e-09, "-0.000000", "%f", +__LINE__, -2.029856507431584e-17, "-2.02986E-17", "%G", +__LINE__, -2.029891733449167e+27, "-2029891733449166846270372843.7190875", "%3.7f", +__LINE__, -2.031933616694469e+14, "-2.031934E+14", "%#E", +__LINE__, -2.034011738471413e-10, "-2.03401E-10", "%#G", +__LINE__, -2.036087355975756e+29, "-203608735597575574161055556032.806635", "%+f", +__LINE__, -2.036355025137273e+09, "-2.036355E+09", "%#.7G", +__LINE__, -2.038423730536878e+12, "-2E+12", "%4.G", +__LINE__, -2.045209202278810e+23, "-2.045209e+23", "%+#e", +__LINE__, -2.046794083517423e-06, "-2.04679e-06", "%g", +__LINE__, -2.048042459678599e-19, "-0.000000", "%f", +__LINE__, -2.050526462096153e+18, "-2.05053e+18", "%+g", +__LINE__, -2.053583900249402e+13, "-2.053584e+13", "%0.7g", +__LINE__, -2.054342100957522e-23, "-2.05434E-23", "%#G", +__LINE__, -2.054793400141025e+11, "-205479340014.1", "%+2.1f", +__LINE__, -2.059200689196498e-11, "-0.000000", "%#f", +__LINE__, -2.060960692728114e-16, "-0.000000", "%+f", +__LINE__, -2.061417528654300e-30, "-2.06E-30", "%.3G", +__LINE__, -2.061513401198340e-29, "-2.06151e-29", "%7g", +__LINE__, -2.061846698845984e+27, "-2.061847E+27", "%E", +__LINE__, -2.063922242876789e-19, "-2.06392e-19", "%#g", +__LINE__, -2.065359431805529e+03, "-2065.359432", "%f", +__LINE__, -2.065529069992156e-04, "-0.000206553", "%+G", +__LINE__, -2.066082546490980e-25, "-2.06608e-25", "%5g", +__LINE__, -2.068394312095200e+17, "-2.068394e+17", "%e", +__LINE__, -2.071024178556425e-10, "-2.07102E-10", "%G", +__LINE__, -2.074401605950382e-22, "-2.07e-22", "%1.3g", +__LINE__, -2.074731895144874e-26, "-2.07473E-26", "%G", +__LINE__, -2.074895800882730e+18, "-2074895800882730068.082083", "%+f", +__LINE__, -2.077336220500764e-30, "-0", "%2.f", +__LINE__, -2.078067878561077e+09, "-2.0781e+09", "%0.5g", +__LINE__, -2.080497889634533e+15, "-2.080498E+15", "%4E", +__LINE__, -2.084717279367594e-21, "-2.08472e-21", "%+g", +__LINE__, -2.087827915301948e+29, "-2E+29", "%6.1G", +__LINE__, -2.090268686389680e+05, "-2.090269e+05", "%1e", +__LINE__, -2.092036176589720e+24, "-2.09204e+24", "%+g", +__LINE__, -2.093546373938615e-21, "-2.093546e-21", "%#e", +__LINE__, -2.101302069316682e+18, "-2.1013e+18", "%+7g", +__LINE__, -2.103463622286002e-13, "-2.103464E-13", "%E", +__LINE__, -2.105622845016732e+06, "-2105622.845017", "%1f", +__LINE__, -2.109999123037767e+28, "-2.11E+28", "%.2E", +__LINE__, -2.110317013992166e+04, "-21103.2", "%+g", +__LINE__, -2.112226142154618e+21, "-2112226142154617569702.", "%#6.f", +__LINE__, -2.112519484486528e+06, "-2.11252E+06", "%G", +__LINE__, -2.113439260812000e+23, "-2E+23", "%1.G", +__LINE__, -2.113465893194608e-15, "-2.1135E-15", "%.5G", +__LINE__, -2.113547784669409e+20, "-2.1135e+20", "%2.5g", +__LINE__, -2.114146001321822e+28, "-2.114146e+28", "%e", +__LINE__, -2.114509425574444e-30, " -0", "%4.f", +__LINE__, -2.114887421659561e-21, "-0.000000", "%+f", +__LINE__, -2.121120215127601e+21, "-2121120215127601404958.5683097", "%.7f", +__LINE__, -2.122555390665796e+06, "-2E+06", "%0.G", +__LINE__, -2.123468430242052e-27, "-0.000000", "%+f", +__LINE__, -2.123473598890635e+28, "-2.12347e+28", "%+g", +__LINE__, -2.124328049748190e-04, "-2.124328E-04", "%E", +__LINE__, -2.125633890999010e+28, "-2E+28", "%+5.G", +__LINE__, -2.125697963566045e+21, "-2.1257E+21", "%0G", +__LINE__, -2.127638109230109e+06, "-2.12764e+06", "%+6g", +__LINE__, -2.128456114617786e+07, "-2.128456E+07", "%E", +__LINE__, -2.128732742932824e-04, "-2.128733E-04", "%#E", +__LINE__, -2.129654381588404e+27, "-2129654381588404365999167566.7697564", "%+.7f", +__LINE__, -2.129792795009985e+20, "-2.12979e+20", "%g", +__LINE__, -2.131026925664619e-20, "-2e-20", "%.0e", +__LINE__, -2.132860730144188e-04, "-0.0002", "%5.g", +__LINE__, -2.133620979309562e+06, "-2e+06", "%3.e", +__LINE__, -2.133821423139120e-27, "-2.13382E-27", "%.6G", +__LINE__, -2.134253401425940e-07, "-0.000000", "%f", +__LINE__, -2.135469568156964e-29, "-2.135470E-29", "%+7E", +__LINE__, -2.135723595288365e-25, "-0.0", "%.1f", +__LINE__, -2.137642458920094e-09, "-2.13764e-09", "%g", +__LINE__, -2.143412361116583e+12, "-2.14341e+12", "%+g", +__LINE__, -2.144467087741129e-17, "-2.14447e-17", "%+g", +__LINE__, -2.145726966596964e-11, "-0.000000", "%2f", +__LINE__, -2.148318753042597e+08, "-2.14832E+08", "%5G", +__LINE__, -2.149932310549644e-19, "-2.14993e-19", "%g", +__LINE__, -2.150050917377646e-21, " -0", "%3.f", +__LINE__, -2.150854313643430e-16, "-0.000000", "%.6f", +__LINE__, -2.151071797121845e+00, "-2.15107", "%+g", +__LINE__, -2.158728406865981e+14, "-215872840686598.088666", "%7f", +__LINE__, -2.166062878011641e-23, "-2.166063e-23", "%e", +__LINE__, -2.167045002060684e+12, "-2.167045E+12", "%E", +__LINE__, -2.173752581051530e+20, "-217375258105153035259.604621", "%f", +__LINE__, -2.175599129057555e+24, "-2.175599E+24", "%E", +__LINE__, -2.176564454093042e-02, "-0.0217656", "%+G", +__LINE__, -2.181270774327071e-12, "-0.000000", "%#1f", +__LINE__, -2.184404769844158e-09, "-2.2E-09", "%+.2G", +__LINE__, -2.184881476334310e-07, "-2.18488e-07", "%g", +__LINE__, -2.189197211449684e-11, "-2E-11", "%.0G", +__LINE__, -2.189451286805190e+20, "-218945128680519029984", "%3.f", +__LINE__, -2.190642494146884e-27, " -0.", "%#4.f", +__LINE__, -2.194727956725854e+06, "-2.19E+06", "%.3G", +__LINE__, -2.196145868303877e+11, "-219614586830.387726", "%+5f", +__LINE__, -2.196397972262690e-16, "-0.000000", "%3f", +__LINE__, -2.202692843474668e-01, "-2.203e-01", "%.3e", +__LINE__, -2.204528684782451e-21, "-2.20453E-21", "%G", +__LINE__, -2.214926838821340e-16, "-2e-16", "%+2.g", +__LINE__, -2.215558986352773e+18, "-2215558986352773374", "%0.f", +__LINE__, -2.216976693056186e+27, "-2216976693056186498154147557.215765", "%f", +__LINE__, -2.217348422793322e+13, "-2.21735E+13", "%6G", +__LINE__, -2.217732695583920e-07, "-0", "%.0f", +__LINE__, -2.221185494767834e-14, "-2.22119e-14", "%g", +__LINE__, -2.224557193699609e-16, "-2.224557E-16", "%E", +__LINE__, -2.227417758704028e-18, "-0.000000", "%0f", +__LINE__, -2.231261655673006e-30, "-2.231262E-30", "%E", +__LINE__, -2.233081938836160e+21, "-2233081938836160240668.960", "%+6.3f", +__LINE__, -2.233158918439853e+05, "-223316", "%2G", +__LINE__, -2.233802298007898e-30, "-2.2338E-30", "%2G", +__LINE__, -2.233864858404732e+17, "-223386485840473181.241350", "%f", +__LINE__, -2.241242805107749e+14, "-2.24124E+14", "%G", +__LINE__, -2.244555498855249e+25, "-2.24456E+25", "%#G", +__LINE__, -2.248170665127481e-07, "-2.248171E-07", "%E", +__LINE__, -2.252558275567388e-13, "-2.25256e-13", "%g", +__LINE__, -2.256190083496001e+13, "-22561900834960.0136398", "%7.7f", +__LINE__, -2.259851596715945e+27, "-2.259852e+27", "%e", +__LINE__, -2.260461480001174e-21, "-0.000000", "%f", +__LINE__, -2.264128628428577e+22, "-2.26413e+22", "%1g", +__LINE__, -2.265914518399595e-04, "-0.000226591", "%G", +__LINE__, -2.266251557092826e+23, "-2.26625e+23", "%g", +__LINE__, -2.268592252572450e+19, "-2.268592e+19", "%2.6e", +__LINE__, -2.268597523847349e+11, "-2.2686e+11", "%g", +__LINE__, -2.268963106935546e+05, "-226896", "%+g", +__LINE__, -2.272527876808919e-24, "-0.000000", "%#f", +__LINE__, -2.273366440479073e+02, "-227.337", "%g", +__LINE__, -2.277858038556191e+25, "-2.28E+25", "%0.3G", +__LINE__, -2.282019915623415e+25, "-2E+25", "%5.E", +__LINE__, -2.283333247435650e-27, " -0", "%4.f", +__LINE__, -2.285230610829355e+23, "-2E+23", "%2.G", +__LINE__, -2.290900253402985e+23, "-2.2909E+23", "%G", +__LINE__, -2.293266953268186e+08, "-2.29327e+08", "%g", +__LINE__, -2.293489603164786e+23, "-229348960316478578391752.3076525", "%4.7f", +__LINE__, -2.294434667605481e+15, "-2.2944E+15", "%.5G", +__LINE__, -2.296607768466765e+21, "-2.29661E+21", "%G", +__LINE__, -2.297449967994012e+14, "-229744996799401.23542", "%+.5f", +__LINE__, -2.301162556466583e-01, "-0.230116", "%+#2g", +__LINE__, -2.301676246374004e+05, "-230168.", "%#g", +__LINE__, -2.301976724487835e-01, "-0.230198", "%5G", +__LINE__, -2.303269770571222e-15, "-2.303270e-15", "%.6e", +__LINE__, -2.306451480495636e+23, "-2.30645E+23", "%G", +__LINE__, -2.307659351219690e-17, "-0.000000", "%+3f", +__LINE__, -2.309009762339430e+16, "-2.30901E+16", "%G", +__LINE__, -2.309261751862100e+06, "-2309261.751862", "%+f", +__LINE__, -2.309504876918634e-26, " -2E-26", "%7.E", +__LINE__, -2.310910348147804e-26, "-2e-26", "%5.g", +__LINE__, -2.317173552252235e+05, "-231717.4", "%.7g", +__LINE__, -2.319517289618469e-23, "-2.31952E-23", "%+G", +__LINE__, -2.320103195142527e+08, "-2.320103E+08", "%+E", +__LINE__, -2.323523032125633e+24, "-2323523032125633491773442.07419", "%.5f", +__LINE__, -2.326279126614399e-16, "-0.000000", "%f", +__LINE__, -2.331393688620925e-09, "-2.33139e-09", "%#g", +__LINE__, -2.334233527512469e+01, " -23", "%6.0f", +__LINE__, -2.337418834112767e+24, " -2E+24", "%7.E", +__LINE__, -2.339455293612118e+12, "-2339455293612.1", "%+.1f", +__LINE__, -2.341930318143367e-18, "-2.E-18", "%#4.E", +__LINE__, -2.346107614950921e-17, "-0.00000", "%+2.5f", +__LINE__, -2.348356578807972e+23, "-2.34836e+23", "%g", +__LINE__, -2.351485855138244e+19, "-2.351486e+19", "%+e", +__LINE__, -2.362101647639198e-15, "-2.36210e-15", "%#g", +__LINE__, -2.369743873030115e+08, "-2e+08", "%.1g", +__LINE__, -2.371658164739356e+25, "-23716581647393559784120498.079574", "%f", +__LINE__, -2.372427847607163e+28, "-2.37243E+28", "%G", +__LINE__, -2.375465465294647e+11, "-2.375465e+11", "%e", +__LINE__, -2.377128971572195e-18, "-0.0", "%1.1f", +__LINE__, -2.380322448568089e-13, "-2.38032E-13", "%+#0G", +__LINE__, -2.385960728264882e+26, "-2E+26", "%.0E", +__LINE__, -2.387345744004747e+00, "-2.38735", "%G", +__LINE__, -2.390480023300201e+25, "-2.39048e+25", "%g", +__LINE__, -2.395420431930886e+23, "-2E+23", "%2.E", +__LINE__, -2.401144663870969e-10, "-2.e-10", "%#6.g", +__LINE__, -2.402787441215039e-08, "-2.40279e-08", "%g", +__LINE__, -2.402990830425278e+08, "-2.40299E+08", "%G", +__LINE__, -2.404213682932215e+08, "-2.40421e+08", "%2g", +__LINE__, -2.409385592298822e+21, "-2409385592298821876511.283335", "%7f", +__LINE__, -2.410798267658614e+13, "-2.4108e+13", "%+g", +__LINE__, -2.413180068271811e-24, "-0.000000", "%+f", +__LINE__, -2.413268457113495e+26, "-2.41327E+26", "%3.6G", +__LINE__, -2.415341832206007e-13, "-0.000000", "%+f", +__LINE__, -2.422519577068670e-08, "-0.0000000", "%.7f", +__LINE__, -2.422533651282808e+20, "-2.42253E+20", "%#G", +__LINE__, -2.422795006880671e+17, "-2.4228e+17", "%g", +__LINE__, -2.423483330202008e+20, "-2.42348e+20", "%g", +__LINE__, -2.431756009640369e-04, "-0.000243176", "%+#3g", +__LINE__, -2.431878622534173e-05, "-0.000024", "%f", +__LINE__, -2.432012113077180e+24, "-2.43201e+24", "%g", +__LINE__, -2.433843704470487e+07, "-24338437", "%4.f", +__LINE__, -2.435475755031956e+11, "-2.435476E+11", "%1E", +__LINE__, -2.438081888695437e-13, "-0.000000", "%f", +__LINE__, -2.438334590462860e+10, "-2.4E+10", "%5.2G", +__LINE__, -2.440223135334059e+17, "-2.44022e+17", "%g", +__LINE__, -2.444107281115317e-21, "-2.44411e-21", "%+g", +__LINE__, -2.444582273206171e-02, " -0.02", "%7.G", +__LINE__, -2.445234676352794e+23, "-2.44523e+23", "%#g", +__LINE__, -2.449185020984714e+08, "-2.E+08", "%#2.G", +__LINE__, -2.450646640466020e+22, "-2.45065E+22", "%5G", +__LINE__, -2.456840850262473e+13, "-24568408502625", "%0.f", +__LINE__, -2.464466865714499e-10, "-2e-10", "%6.g", +__LINE__, -2.466022088999151e+27, "-2.46602E+27", "%G", +__LINE__, -2.484398113119779e-04, "-2.484398E-04", "%E", +__LINE__, -2.484591850456328e+23, "-248459185045632846566832.085955", "%+f", +__LINE__, -2.488166252162446e-11, "-2.5E-11", "%4.2G", +__LINE__, -2.493507313049390e+24, "-2.49E+24", "%4.3G", +__LINE__, -2.500280281988428e+28, "-2.5E+28", "%.4G", +__LINE__, -2.500373956445372e-07, "-2.50037e-07", "%g", +__LINE__, -2.505566434769299e-12, "-2.5E-12", "%+#0.2G", +__LINE__, -2.508215917020758e+05, "-2.508216e+05", "%5e", +__LINE__, -2.519368094680315e-29, "-2.51937e-29", "%#0g", +__LINE__, -2.522266530587753e-11, "-2.52227e-11", "%+g", +__LINE__, -2.534492886372514e-06, "-2.53449E-06", "%0G", +__LINE__, -2.534617610955074e-02, "-0.03", "%0.2f", +__LINE__, -2.540551642835634e+26, "-3E+26", "%4.G", +__LINE__, -2.548210731830516e-26, "-0.000", "%2.3f", +__LINE__, -2.558868082397931e-11, "-3E-11", "%2.E", +__LINE__, -2.560062512991052e+11, "-2.56006E+11", "%+G", +__LINE__, -2.561274682814428e-05, "-0.000026", "%f", +__LINE__, -2.563424949397357e-02, " -0", "%6.f", +__LINE__, -2.577010939931465e+17, "-2.57701E+17", "%G", +__LINE__, -2.578224879294822e+10, "-3E+10", "%+4.1G", +__LINE__, -2.585655636750244e+13, "-2.585656e+13", "%+0.7g", +__LINE__, -2.585657986834408e+14, "-2.5857e+14", "%3.5g", +__LINE__, -2.586728929368101e+02, "-258.673", "%+g", +__LINE__, -2.591293023229468e+06, "-2591293.0232295", "%2.7f", +__LINE__, -2.592454222603538e-06, "-2.59245E-06", "%G", +__LINE__, -2.599399905869649e+02, "-259.939991", "%f", +__LINE__, -2.605382860307596e+12, "-2.60538E+12", "%2G", +__LINE__, -2.607507689402762e-01, "-0.260751", "%#.6g", +__LINE__, -2.612933252582967e+15, "-2.61293e+15", "%g", +__LINE__, -2.614337505491483e-14, "-2.61434E-14", "%.6G", +__LINE__, -2.618302263333671e+14, "-2.62e+14", "%3.3g", +__LINE__, -2.622998533972296e+00, "-3.", "%#0.g", +__LINE__, -2.623348319869643e-15, "-2.62335E-15", "%#G", +__LINE__, -2.626703132693163e+23, "-3E+23", "%+6.E", +__LINE__, -2.629610853765779e+25, "-2.62961E+25", "%+#G", +__LINE__, -2.632993880472784e+26, "-2.63299E+26", "%G", +__LINE__, -2.635651112327873e-20, "-2.63565E-20", "%1G", +__LINE__, -2.636003980473492e-23, "-2.636E-23", "%G", +__LINE__, -2.639316453244009e+10, "-26393164532.440094", "%#f", +__LINE__, -2.640517223417942e-28, "-2.641e-28", "%.3e", +__LINE__, -2.640625797147664e-22, "-2.640626E-22", "%E", +__LINE__, -2.644401262524378e-12, " -0.000", "%7.3f", +__LINE__, -2.651033203243637e-14, "-2.651033e-14", "%+e", +__LINE__, -2.652386470126594e-24, "-2.652386E-24", "%E", +__LINE__, -2.654281018623631e-12, "-0.00000", "%6.5f", +__LINE__, -2.655529742118827e+02, "-265.552974", "%f", +__LINE__, -2.658550833241620e+22, "-26585508332416196708436.473273", "%+f", +__LINE__, -2.660515890519100e+08, "-2.660516E+08", "%E", +__LINE__, -2.665025749266086e-24, "-2.66503E-24", "%G", +__LINE__, -2.666117105643095e-20, "-2.66612e-20", "%g", +__LINE__, -2.667051347741259e+11, "-3e+11", "%6.g", +__LINE__, -2.667207607243375e+04, "-26672.076072", "%+#f", +__LINE__, -2.667631877167590e+26, "-2.667632E+26", "%E", +__LINE__, -2.673817942962878e+13, "-2.673818e+13", "%+2.6e", +__LINE__, -2.674972907853507e+20, "-2.674973E+20", "%E", +__LINE__, -2.675830887404867e+14, "-2.675831E+14", "%E", +__LINE__, -2.682749918168908e+26, "-2.682750E+26", "%E", +__LINE__, -2.689222801942679e-03, "-0.0027", "%7.2G", +__LINE__, -2.692245629411156e+25, "-2.69225e+25", "%g", +__LINE__, -2.692606702464273e+11, "-2.69261e+11", "%g", +__LINE__, -2.693070822061136e-27, "-2.69307e-27", "%+g", +__LINE__, -2.694415515655336e-30, "-3E-30", "%+3.0E", +__LINE__, -2.694770057384739e+15, "-2.69477e+15", "%g", +__LINE__, -2.699998392329361e+01, "-27", "%+.2g", +__LINE__, -2.700151952281511e+23, "-270015195228151050343968.", "%+#5.f", +__LINE__, -2.707398527302841e-08, "-2.70740e-08", "%+#3g", +__LINE__, -2.711404950850030e-21, "-2.71E-21", "%.2E", +__LINE__, -2.714057739024281e-10, "-2.714e-10", "%.4g", +__LINE__, -2.717657632815414e-10, "-2.71766e-10", "%g", +__LINE__, -2.720875786430592e-09, "-2.7E-09", "%6.2G", +__LINE__, -2.725886730997891e+19, "-2.72589e+19", "%g", +__LINE__, -2.726089169748676e-09, "-2.72609E-09", "%+G", +__LINE__, -2.732907572038661e-30, "-2.73291E-30", "%G", +__LINE__, -2.737918050958789e+11, "-3e+11", "%1.g", +__LINE__, -2.739024251198484e-18, "-2.73902e-18", "%+g", +__LINE__, -2.742646144452305e+13, "-2.74265e+13", "%g", +__LINE__, -2.742911865386719e+06, "-3E+06", "%+5.G", +__LINE__, -2.759159275123811e-30, "-0.000000", "%+f", +__LINE__, -2.759794813930001e-21, "-2.75979e-21", "%+g", +__LINE__, -2.763243077558348e+20, "-2.7632E+20", "%+0.4E", +__LINE__, -2.770348477810209e-14, "-0.000000", "%2f", +__LINE__, -2.776074766292453e+05, "-277607", "%g", +__LINE__, -2.776610811432007e-07, "-2.77661E-07", "%6G", +__LINE__, -2.778673793270678e+23, "-3E+23", "%+4.E", +__LINE__, -2.782405168708350e+08, "-278240516.87084", "%.5f", +__LINE__, -2.783316149365198e-09, "-3E-09", "%5.0G", +__LINE__, -2.785436703085409e-27, "-2.78544E-27", "%#G", +__LINE__, -2.787479051660640e+21, "-2.78748e+21", "%g", +__LINE__, -2.789445406042450e-03, "-0.002789", "%+f", +__LINE__, -2.791104581836077e+05, "-279110.4581836", "%+7.7f", +__LINE__, -2.802078617775784e+04, "-28020.786", "%0.3f", +__LINE__, -2.804954315579055e+20, "-2.80495E+20", "%G", +__LINE__, -2.806575341862696e-05, "-2.80658E-05", "%G", +__LINE__, -2.807769556900402e-06, "-0.000003", "%+#f", +__LINE__, -2.808882056357941e-12, "-0.0", "%.1f", +__LINE__, -2.809386677339924e+10, "-2.8094E+10", "%6.5G", +__LINE__, -2.818404311437694e+19, "-3E+19", "%6.G", +__LINE__, -2.819463285551660e+01, "-28.1946", "%+G", +__LINE__, -2.821428853207724e-16, "-3e-16", "%6.g", +__LINE__, -2.824452750788444e+07, "-3e+07", "%+2.g", +__LINE__, -2.825430381094971e+28, "-3e+28", "%+.0e", +__LINE__, -2.830010928384944e-17, "-0", "%.0f", +__LINE__, -2.832505114479680e-09, "-0.000000", "%f", +__LINE__, -2.833246604950796e+13, "-2.83325E+13", "%G", +__LINE__, -2.833274073265017e+13, "-28332740732650.174564", "%f", +__LINE__, -2.835842581787797e+07, "-2.83584E+07", "%2G", +__LINE__, -2.839758384681983e-07, "-2.83976E-07", "%.6G", +__LINE__, -2.841077022753766e-09, "-3E-09", "%0.1G", +__LINE__, -2.845307294930682e+00, "-2.845307e+00", "%+1e", +__LINE__, -2.847420163874243e+19, "-2.8e+19", "%1.2g", +__LINE__, -2.848133715109881e-25, "-2.848134E-25", "%E", +__LINE__, -2.850208101288058e-06, "-2.8502E-06", "%+5.4E", +__LINE__, -2.853666525870413e+04, "-28536.665259", "%f", +__LINE__, -2.855661543202034e+21, "-2.85566e+21", "%g", +__LINE__, -2.859528889324159e-08, "-2.859529e-08", "%3e", +__LINE__, -2.860545310690251e+29, "-3e+29", "%.1g", +__LINE__, -2.863576633666884e-14, "-2.863577e-14", "%+5e", +__LINE__, -2.864115740396321e-14, "-2.86412e-14", "%g", +__LINE__, -2.864481979037153e+20, "-2.86E+20", "%3.3G", +__LINE__, -2.867582970177984e-18, "-0.000000", "%f", +__LINE__, -2.868237707901564e+25, "-3E+25", "%6.E", +__LINE__, -2.871741071402520e+13, "-3e+13", "%.1g", +__LINE__, -2.873724610073364e+18, "-2873724610073364438.278531", "%+#f", +__LINE__, -2.876433859770866e-25, "-2.87643e-25", "%g", +__LINE__, -2.877458587075737e-08, "-2.877E-08", "%+.4G", +__LINE__, -2.883349842927101e+24, "-2.883350E+24", "%2E", +__LINE__, -2.883749925642885e+09, "-2.883750e+09", "%e", +__LINE__, -2.883773835633003e-17, "-0.000000", "%+f", +__LINE__, -2.890389090491409e+24, "-2890389090491409262995148.310438", "%#1f", +__LINE__, -2.900848552225810e-11, "-0.000000", "%+f", +__LINE__, -2.911942123176400e+25, "-29119421231764004431852300", "%0.f", +__LINE__, -2.912904462180751e-18, "-2.9129E-18", "%6G", +__LINE__, -2.917717875075651e+26, "-3e+26", "%0.e", +__LINE__, -2.922293201084093e-26, "-2.922293E-26", "%E", +__LINE__, -2.925070319932451e-30, "-0.000000", "%f", +__LINE__, -2.926558572870874e+15, "-2.926559E+15", "%E", +__LINE__, -2.928781435877896e+26, "-2.928781e+26", "%+e", +__LINE__, -2.930178318110376e+28, "-2.930178E+28", "%E", +__LINE__, -2.930984661925819e+05, "-293098.5", "%.7G", +__LINE__, -2.932762424932762e-08, "-0.000000", "%#f", +__LINE__, -2.933415597492494e+10, "-29334155974.924943", "%+#2f", +__LINE__, -2.933564314850986e+29, "-2.93356E+29", "%7G", +__LINE__, -2.943224907893795e+10, "-2.943225E+10", "%+7E", +__LINE__, -2.945311540471221e+19, "-2.94531E+19", "%#G", +__LINE__, -2.945812356522847e+15, "-2.94581e+15", "%+g", +__LINE__, -2.945836999630957e+00, "-2.945837E+00", "%E", +__LINE__, -2.947798782726622e-01, "-0.29478", "%+g", +__LINE__, -2.948958405827917e+18, "-2.94896e+18", "%g", +__LINE__, -2.949790871798059e-11, "-2.94979E-11", "%G", +__LINE__, -2.950347806125225e-12, "-2.95035e-12", "%g", +__LINE__, -2.952781884599368e-29, "-2.952782E-29", "%+E", +__LINE__, -2.956801341442716e+06, "-2.9568E+06", "%G", +__LINE__, -2.957469310356540e-07, "-0.000", "%1.3f", +__LINE__, -2.960464869534870e-23, "-2.96046E-23", "%G", +__LINE__, -2.962339381825446e-07, "-0", "%1.f", +__LINE__, -2.971013180028710e+22, "-2.971e+22", "%3.5g", +__LINE__, -2.975167862441254e+07, "-2.97517e+07", "%g", +__LINE__, -2.976018424339993e+16, "-2.976018e+16", "%3e", +__LINE__, -2.979173094835454e+29, "-2.97917E+29", "%G", +__LINE__, -2.983135249987541e-03, "-0.00298314", "%+G", +__LINE__, -2.985142444917919e-24, "-2.985142E-24", "%+#7E", +__LINE__, -2.988680953635159e-14, "-0.0000000", "%2.7f", +__LINE__, -2.989629778079379e+04, "-29896.297781", "%f", +__LINE__, -2.991274275137276e+19, "-29912742751372762839.423558", "%+4f", +__LINE__, -2.991286396006024e-06, "-2.99129e-06", "%4g", +__LINE__, -2.993310397844811e+04, "-2.993310E+04", "%3.6E", +__LINE__, -2.994669852410861e-29, "-2.99467E-29", "%G", +__LINE__, -2.996082093034831e+27, "-2.996082e+27", "%1e", +__LINE__, -2.999783904575110e+16, "-2.999784E+16", "%#E", +__LINE__, -3.012019221956988e+25, "-3.012019E+25", "%E", +__LINE__, -3.014211917706622e-25, "-0.000000", "%+f", +__LINE__, -3.015149723683428e-19, "-3.01515E-19", "%G", +__LINE__, -3.022158478004638e-19, "-3.02216e-19", "%6g", +__LINE__, -3.022825518373900e-12, "-3.0228E-12", "%+.4E", +__LINE__, -3.025108924057340e-19, "-0.000000", "%f", +__LINE__, -3.026316824631967e+24, "-3026316824631966717618070.106255", "%1f", +__LINE__, -3.033074643529623e-13, "-3.03307e-13", "%g", +__LINE__, -3.035292960731141e+24, "-3035292960731141409524980.190326", "%f", +__LINE__, -3.043291272956732e-13, "-3.04329e-13", "%#g", +__LINE__, -3.045216723973715e-23, "-3.045e-23", "%.4g", +__LINE__, -3.047140976048835e+09, "-3.04714E+09", "%3.5E", +__LINE__, -3.047680278470886e+09, "-3.047680E+09", "%#E", +__LINE__, -3.048465807963461e+05, "-304847", "%g", +__LINE__, -3.050904753556756e+22, "-3.0509E+22", "%G", +__LINE__, -3.052845748999047e-13, "-3.05285e-13", "%g", +__LINE__, -3.053395231883620e-06, "-3E-06", "%2.G", +__LINE__, -3.054894203375445e-28, "-3e-28", "%2.g", +__LINE__, -3.055080347760755e-13, "-0", "%2.f", +__LINE__, -3.055513037393624e-29, "-3e-29", "%3.g", +__LINE__, -3.056198778208295e-06, "-3.0562e-06", "%g", +__LINE__, -3.057813660266980e-21, "-3E-21", "%1.G", +__LINE__, -3.059687036330998e-11, "-3.1E-11", "%#2.2G", +__LINE__, -3.061450385559094e-10, "-3.06145E-10", "%G", +__LINE__, -3.066605713361383e-27, "-0.000000", "%f", +__LINE__, -3.071590110813156e+22, "-3.07159E+22", "%G", +__LINE__, -3.073253864426931e+26, "-3.0733E+26", "%.5G", +__LINE__, -3.078998328596940e+07, "-3.079e+07", "%5.4g", +__LINE__, -3.082733887951920e+06, "-3.082734e+06", "%+6e", +__LINE__, -3.084365358064710e+24, "-3.084365E+24", "%#E", +__LINE__, -3.086948022123716e+25, "-30869480221237162176350921.072299", "%+f", +__LINE__, -3.088200214218024e-10, "-0", "%0.f", +__LINE__, -3.093442983942874e+08, "-309344298.394287", "%f", +__LINE__, -3.103573455403534e-09, "-3.103573E-09", "%#E", +__LINE__, -3.109178443120997e+07, "-31091784.431210", "%f", +__LINE__, -3.111494549914917e+28, "-3e+28", "%0.g", +__LINE__, -3.113384020517480e-17, " -0", "%+6.f", +__LINE__, -3.121622779718055e+14, "-312162277971805.491", "%+.3f", +__LINE__, -3.122780443843900e-01, "-0.312278", "%#g", +__LINE__, -3.122952438335638e-25, "-3.122952E-25", "%E", +__LINE__, -3.128970339463168e-18, "-3e-18", "%3.g", +__LINE__, -3.130862507719335e+10, "-3.130863e+10", "%3e", +__LINE__, -3.145960838955379e+03, "-3145.96", "%g", +__LINE__, -3.149362645138929e+21, "-3.14936e+21", "%g", +__LINE__, -3.150697168664913e+26, "-315069716866491322804222363.629378", "%+f", +__LINE__, -3.157946785041287e+05, "-3.1579e+05", "%.4e", +__LINE__, -3.158347006986809e-02, "-3.E-02", "%#.0E", +__LINE__, -3.159542871923388e+07, "-31595429", "%2.f", +__LINE__, -3.169997512351985e+15, "-3.169998E+15", "%6.7G", +__LINE__, -3.170971776544746e+07, "-31709717.765447", "%f", +__LINE__, -3.173246079104466e+19, "-3.173246E+19", "%1E", +__LINE__, -3.173581228658553e-02, "-0.03", "%+0.G", +__LINE__, -3.187598864929850e-07, "-3.18760E-07", "%#G", +__LINE__, -3.190525302270244e+08, "-3.190525e+08", "%+0.7g", +__LINE__, -3.191879884186422e+19, "-3.19E+19", "%.2E", +__LINE__, -3.197292604744926e+02, "-3.197293e+02", "%+e", +__LINE__, -3.203713337688838e-12, "-3.20371E-12", "%6G", +__LINE__, -3.204416889544914e-18, "-0.000000", "%+f", +__LINE__, -3.204494471917096e+09, "-3.20449e+09", "%g", +__LINE__, -3.211933195516720e+11, "-3.21193E+11", "%G", +__LINE__, -3.214544021431917e-24, "-0.000000", "%1f", +__LINE__, -3.215501229487004e-07, "-3e-07", "%3.e", +__LINE__, -3.232157492322707e-13, "-3.E-13", "%+#5.G", +__LINE__, -3.239074974455177e-05, "-3.239e-05", "%2.4g", +__LINE__, -3.243083730801156e-24, "-3.243084e-24", "%#e", +__LINE__, -3.243128583394124e+07, "-32431285.8339", "%6.4f", +__LINE__, -3.247997999770571e-08, "-3e-08", "%5.e", +__LINE__, -3.258251054563991e-15, "-3.2583E-15", "%.5G", +__LINE__, -3.259499053187446e+07, "-3.2595E+07", "%5.6G", +__LINE__, -3.261907782031174e+20, "-3.3e+20", "%.2g", +__LINE__, -3.263979380855122e+29, "-3.26398E+29", "%G", +__LINE__, -3.264166546402073e+06, "-3.26417E+06", "%5G", +__LINE__, -3.269357648926951e+01, "-3.E+01", "%#5.G", +__LINE__, -3.273523287028019e-30, "-3.27352e-30", "%g", +__LINE__, -3.274464331526264e-14, "-3e-14", "%.0g", +__LINE__, -3.276647049958546e+05, "-327664.7", "%+.1f", +__LINE__, -3.276853612008326e-04, "-3.276854e-04", "%e", +__LINE__, -3.288077788905925e+17, "-3.28808e+17", "%g", +__LINE__, -3.292054327509010e+21, "-3.29205e+21", "%+g", +__LINE__, -3.292086868337041e-16, " -0", "%7.f", +__LINE__, -3.299368070005327e-17, "-3E-17", "%5.G", +__LINE__, -3.307165537474566e-30, "-3e-30", "%+2.g", +__LINE__, -3.310556325973673e-17, "-3.31056E-17", "%G", +__LINE__, -3.315407318453138e-09, "-3.315407e-09", "%+#.6e", +__LINE__, -3.318402800998018e-09, "-3.3184E-09", "%+G", +__LINE__, -3.324277622889107e-04, "-0.000332428", "%G", +__LINE__, -3.326372457131185e+14, "-3.326372e+14", "%0e", +__LINE__, -3.333300611287597e+18, "-3.3E+18", "%4.2G", +__LINE__, -3.333608976277018e-25, "-3.33361e-25", "%g", +__LINE__, -3.333613056182724e-24, "-3.33361e-24", "%.5e", +__LINE__, -3.338505874378410e-26, "-0.00000", "%.5f", +__LINE__, -3.339838772519661e+24, "-3.3398E+24", "%0.5G", +__LINE__, -3.354802735583258e-27, "-3.3548E-27", "%G", +__LINE__, -3.356542080644329e+15, "-3356542080644329.129058", "%#f", +__LINE__, -3.360027692463026e-29, "-3.36003e-29", "%+g", +__LINE__, -3.361845657814323e+06, "-3361845.657814", "%f", +__LINE__, -3.363135493765816e-12, " -0", "%5.f", +__LINE__, -3.367383112102258e+19, "-33673831121022579360.158034", "%f", +__LINE__, -3.376798505037497e+03, "-3376.8", "%+3G", +__LINE__, -3.388170639372559e+09, "-3.388171e+09", "%+e", +__LINE__, -3.397304185715499e-12, "-3.397304e-12", "%+e", +__LINE__, -3.401559374016378e-13, "-3.40156e-13", "%g", +__LINE__, -3.402651870178825e+21, "-3.40265e+21", "%+g", +__LINE__, -3.410491213537530e+12, "-3.41049E+12", "%G", +__LINE__, -3.411695570460075e-01, "-3.411696e-01", "%e", +__LINE__, -3.417311435719220e+29, "-3.4E+29", "%3.1E", +__LINE__, -3.417581063208165e-23, " -0", "%+4.f", +__LINE__, -3.424005615113663e-28, "-0.000000", "%f", +__LINE__, -3.424793585094130e-12, "-0.000000", "%f", +__LINE__, -3.434733077762304e-05, "-3.43473e-05", "%g", +__LINE__, -3.436384988494743e+08, "-3.43638E+08", "%G", +__LINE__, -3.441082995163884e-21, "-0.000000", "%f", +__LINE__, -3.442868661576827e-23, "-3.442869e-23", "%#.7g", +__LINE__, -3.444337521046186e+13, "-3.44434E+13", "%#G", +__LINE__, -3.448230173418967e-28, "-3.44823E-28", "%#G", +__LINE__, -3.448523828225326e-21, "-3.4485e-21", "%.4e", +__LINE__, -3.449876796754720e-07, "-3.44988e-07", "%g", +__LINE__, -3.450163790411588e+25, "-34501637904115876054333966.749255", "%2f", +__LINE__, -3.450224454406567e-26, "-3.450224E-26", "%#1E", +__LINE__, -3.459930768422874e-28, "-3.46E-28", "%2.3G", +__LINE__, -3.460730505022601e-28, "-3.46073e-28", "%#g", +__LINE__, -3.462894265593946e-10, "-3.46289e-10", "%+#g", +__LINE__, -3.464808359229496e+05, "-346481", "%6.6G", +__LINE__, -3.467272303652620e-03, "-0.00346727", "%g", +__LINE__, -3.468252706910251e+10, "-3.5E+10", "%#7.2G", +__LINE__, -3.473623965680253e+27, "-3.47362e+27", "%g", +__LINE__, -3.474527926009729e+11, "-3.475E+11", "%.4G", +__LINE__, -3.476489048299929e+15, "-3.47649e+15", "%g", +__LINE__, -3.477809698895344e-09, "-0.000", "%+.3f", +__LINE__, -3.493008398637667e-28, " -0", "%+4.f", +__LINE__, -3.497441286691613e+07, "-3.49744e+07", "%g", +__LINE__, -3.500904660533358e+00, "-3.500905E+00", "%+1E", +__LINE__, -3.504996054364915e+25, "-3.505e+25", "%+g", +__LINE__, -3.507738629125434e-24, "-0.00", "%+4.2f", +__LINE__, -3.508557770253211e-04, "-3.508558e-04", "%#6e", +__LINE__, -3.516056824437550e+20, "-3.516057e+20", "%#e", +__LINE__, -3.521102917733367e+02, "-352.11", "%g", +__LINE__, -3.523948985825251e+10, "-3.52395e+10", "%+g", +__LINE__, -3.525281835697895e-15, "-3.525282e-15", "%e", +__LINE__, -3.534088845494570e-26, "-0.000000", "%2f", +__LINE__, -3.541002442741569e+01, "-35.410", "%3.3f", +__LINE__, -3.541126630345017e-19, "-3.541127e-19", "%e", +__LINE__, -3.545277845967514e-17, "-0.000000", "%f", +__LINE__, -3.560935430637329e-12, "-3.56094E-12", "%G", +__LINE__, -3.564234584447659e-23, "-3.56423E-23", "%G", +__LINE__, -3.576040378379921e-11, "-0.000000", "%+6f", +__LINE__, -3.578133580350674e-05, "-3.578134e-05", "%#e", +__LINE__, -3.584484015191491e-28, "-0.0", "%+2.1f", +__LINE__, -3.591961845146752e+27, "-3.59196E+27", "%G", +__LINE__, -3.602508380305001e+26, "-3.60251e+26", "%g", +__LINE__, -3.603113449808132e+04, "-36031.134498", "%+3.6f", +__LINE__, -3.605569849504628e+25, "-4E+25", "%6.G", +__LINE__, -3.611297754851416e+05, "-361129.775485", "%+f", +__LINE__, -3.613177909959201e-28, "-0.000000", "%f", +__LINE__, -3.616261225230595e-01, "-0.361626", "%3g", +__LINE__, -3.619203521536307e+09, "-3.6192E+09", "%G", +__LINE__, -3.619316709131723e-27, "-0.0000000", "%.7f", +__LINE__, -3.623100583082346e+28, "-3.6231E+28", "%+G", +__LINE__, -3.626582653589919e+21, "-3626582653589918603387.332041", "%f", +__LINE__, -3.626667540343067e-30, "-4.E-30", "%#.0G", +__LINE__, -3.633539220625861e-30, "-3.634E-30", "%+.3E", +__LINE__, -3.641655782149502e-11, "-3.64166E-11", "%G", +__LINE__, -3.644523594046571e+25, "-3.64452e+25", "%5g", +__LINE__, -3.645977605394108e+25, "-3.646e+25", "%+0.3e", +__LINE__, -3.647864582248812e+13, "-4E+13", "%4.G", +__LINE__, -3.655241667633056e-25, "-3.655242E-25", "%E", +__LINE__, -3.662603655433297e+23, "-3.662604e+23", "%e", +__LINE__, -3.668995445134158e+22, " -4E+22", "%7.G", +__LINE__, -3.670006666569412e-11, "-3.670007e-11", "%e", +__LINE__, -3.670510381138509e-24, "-3.670510e-24", "%e", +__LINE__, -3.671283003268254e-20, "-3.67128E-20", "%G", +__LINE__, -3.687760201176777e-13, "-3.68776E-13", "%G", +__LINE__, -3.687983982100676e-14, "-0.00", "%.2f", +__LINE__, -3.694808382827435e-12, "-3.694808E-12", "%#E", +__LINE__, -3.696158520838821e+28, "-3.69616E+28", "%3G", +__LINE__, -3.700911860811323e+18, "-3.70091e+18", "%+g", +__LINE__, -3.701328314738669e+24, "-3.70133e+24", "%g", +__LINE__, -3.707068461822151e-19, "-3.707068E-19", "%E", +__LINE__, -3.710679411506914e+25, "-3.71068e+25", "%g", +__LINE__, -3.713003840923896e-23, "-3.713e-23", "%7g", +__LINE__, -3.717028397747828e-28, "-3.71703e-28", "%g", +__LINE__, -3.728159642236442e+14, "-3.72816E+14", "%G", +__LINE__, -3.731956233637010e+21, "-3.73196E+21", "%G", +__LINE__, -3.742336623322610e+07, "-3.74234e+07", "%g", +__LINE__, -3.748328269630045e+04, "-37483.3", "%G", +__LINE__, -3.750803081283569e-27, "-3.7508E-27", "%+7G", +__LINE__, -3.752021500826652e-04, "-0.0004", "%.1G", +__LINE__, -3.755942257004103e-12, "-3.75594E-12", "%G", +__LINE__, -3.765921235889045e+03, " -4e+03", "%+7.g", +__LINE__, -3.772453135667801e-28, "-3.77245E-28", "%G", +__LINE__, -3.776384200230367e+27, "-3.776e+27", "%1.4g", +__LINE__, -3.787035870684945e-25, "-4E-25", "%+3.G", +__LINE__, -3.798616350818839e-29, "-3.7986164e-29", "%.7e", +__LINE__, -3.807178315238428e-15, "-0.000000", "%+#6f", +__LINE__, -3.822059837967635e+18, "-3822059837967634621.236357", "%6.6f", +__LINE__, -3.823553096022006e+12, "-3.82355e+12", "%g", +__LINE__, -3.839198115259428e-23, "-0.000000", "%f", +__LINE__, -3.846953640321746e+02, "-3.846954E+02", "%E", +__LINE__, -3.852230696542361e+08, "-3.8522e+08", "%#.5g", +__LINE__, -3.861139362195314e-25, "-3.86114E-25", "%2G", +__LINE__, -3.873388618099769e+09, "-3873388618", "%0.0f", +__LINE__, -3.874161550543817e+15, "-3.874162e+15", "%+e", +__LINE__, -3.874527935469425e+20, "-3.87E+20", "%3.3G", +__LINE__, -3.878069577893697e-30, "-3.878070E-30", "%#E", +__LINE__, -3.878852490397702e-20, "-3.87885e-20", "%g", +__LINE__, -3.879688342272101e-10, "-0.00", "%#4.2f", +__LINE__, -3.879797428399897e+03, "-3880", "%1.4g", +__LINE__, -3.881588804766756e+00, "-3.9", "%+4.2G", +__LINE__, -3.889377318111182e+01, "-38.8938", "%+.4f", +__LINE__, -3.893444523430385e-03, "-0.004", "%+2.g", +__LINE__, -3.894912141515856e+03, "-3894.91", "%+g", +__LINE__, -3.905279115773667e+04, "-39052.791158", "%f", +__LINE__, -3.905333955484919e-20, "-3.90533E-20", "%G", +__LINE__, -3.906559442060730e+27, "-3906559442060730447110472596.250474", "%f", +__LINE__, -3.909396469655334e-26, "-3.91E-26", "%.3G", +__LINE__, -3.920132491092364e+11, "-3.92013e+11", "%g", +__LINE__, -3.935651497471973e+27, "-3935651497471972604103029880", "%5.f", +__LINE__, -3.939742577853889e-03, "-0.004", "%5.G", +__LINE__, -3.943284017088198e+19, "-39432840170881981123.3", "%.1f", +__LINE__, -3.947452186327660e+09, "-3947452186.33", "%0.2f", +__LINE__, -3.951967237553488e+18, "-3951967237553488132.562052", "%f", +__LINE__, -3.953673427359789e-28, "-3.954E-28", "%3.4G", +__LINE__, -3.956044867371602e+23, "-4e+23", "%+6.1g", +__LINE__, -3.965038994251913e-20, "-3.96504e-20", "%g", +__LINE__, -3.970527677577937e+05, "-4.e+05", "%#0.1g", +__LINE__, -3.970717822164395e-20, "-3.970718e-20", "%6e", +__LINE__, -3.978063834438912e-19, "-3.97806E-19", "%G", +__LINE__, -3.982705395472599e+27, "-3.9827e+27", "%#.5g", +__LINE__, -3.983486821352571e-28, "-3.98349e-28", "%g", +__LINE__, -3.985470630230926e-14, "-4e-14", "%.2g", +__LINE__, -3.993095662863953e-16, "-3.993096e-16", "%e", +__LINE__, -4.006984141314271e-22, " -4e-22", "%7.2g", +__LINE__, -4.006984141314271e-22, "-4.0e-22", "%#7.2g", +__LINE__, -4.013226099863981e+06, "-4.013226E+06", "%+E", +__LINE__, -4.013702226581167e+00, "-4.0137022", "%+#3.7f", +__LINE__, -4.017598274642537e+11, "-4E+11", "%5.G", +__LINE__, -4.021385792825529e-09, " -4e-09", "%7.2g", +__LINE__, -4.024099064819937e-20, "-4.0241E-20", "%+G", +__LINE__, -4.026952473441366e+22, "-4.026952e+22", "%6.7g", +__LINE__, -4.027636677087866e+12, "-4.02764E+12", "%G", +__LINE__, -4.036506013049443e+17, "-4.03651e+17", "%0.6g", +__LINE__, -4.063191953523012e-06, " -0.0", "%6.1f", +__LINE__, -4.070953223475192e-23, "-4.07095E-23", "%G", +__LINE__, -4.072425833070524e+09, "-4.072426E+09", "%E", +__LINE__, -4.086025576759603e+12, "-4.086026e+12", "%e", +__LINE__, -4.086627783296081e-24, "-4.087E-24", "%.3E", +__LINE__, -4.086683676772144e+10, "-40866836767.721439", "%f", +__LINE__, -4.087336043219081e-10, "-0.", "%+#0.f", +__LINE__, -4.125162973336809e-26, "-4.125163E-26", "%.7G", +__LINE__, -4.150753797717075e-10, "-4.2e-10", "%.2g", +__LINE__, -4.152126152181912e+23, "-4.15213e+23", "%g", +__LINE__, -4.164458223079432e-07, "-4.164458E-07", "%E", +__LINE__, -4.170624866130099e+03, "-4170.624866", "%4.6f", +__LINE__, -4.171137277374942e-01, " -4E-01", "%+7.E", +__LINE__, -4.176067421901769e-25, "-4.17607E-25", "%G", +__LINE__, -4.179514418604771e+24, "-4.1795e+24", "%3.5g", +__LINE__, -4.196285183415621e+23, "-4.19629E+23", "%5G", +__LINE__, -4.198600486581023e+23, "-4E+23", "%+4.G", +__LINE__, -4.199020494598538e-16, "-0.000000", "%+f", +__LINE__, -4.207824153501688e-01, "-0.420782", "%G", +__LINE__, -4.219086441294006e-13, " -0", "%+4.f", +__LINE__, -4.223689582765525e+12, "-4.22369e+12", "%g", +__LINE__, -4.230213377391093e+04, "-42302.1", "%+2.6G", +__LINE__, -4.232495358100605e-02, "-0.042325", "%+f", +__LINE__, -4.235459662515940e-29, "-0.000000", "%f", +__LINE__, -4.240807508057296e-07, "-4e-07", "%0.g", +__LINE__, -4.248376819122346e-13, "-4.248377e-13", "%7e", +__LINE__, -4.251361939638334e-23, "-4.251362E-23", "%E", +__LINE__, -4.253044333568077e+24, "-4.253044e+24", "%4e", +__LINE__, -4.255728039119772e-30, "-4.25573E-30", "%2G", +__LINE__, -4.256502531648988e+02, "-425.65", "%G", +__LINE__, -4.260731632612400e-04, "-0", "%2.f", +__LINE__, -4.262037138254753e-25, "-4e-25", "%5.g", +__LINE__, -4.270910126379393e+00, "-4.2709", "%#7.4f", +__LINE__, -4.273844276097008e-09, " -0.", "%#4.f", +__LINE__, -4.280424136111831e+21, "-4.280E+21", "%.3E", +__LINE__, -4.284351940366486e-23, "-0.000000", "%+f", +__LINE__, -4.291747881693517e-29, "-4.3e-29", "%+#.2g", +__LINE__, -4.298346825232928e+04, "-42983.5", "%G", +__LINE__, -4.298879924365432e+28, "-42988799243654316484253286034.800112", "%f", +__LINE__, -4.302192665689887e-25, "-0.000000", "%f", +__LINE__, -4.303899568112784e+06, "-4E+06", "%1.G", +__LINE__, -4.307399960278190e-30, "-4.31e-30", "%.3g", +__LINE__, -4.341161949359232e+01, "-43.411619", "%+f", +__LINE__, -4.353334435604675e+17, " -4e+17", "%+7.g", +__LINE__, -4.354760231068195e+08, "-4e+08", "%2.e", +__LINE__, -4.363535913318519e+08, "-4.363536E+08", "%+7E", +__LINE__, -4.365389605557404e-29, "-4.365390e-29", "%e", +__LINE__, -4.369278570829168e-22, "-4.369279E-22", "%5E", +__LINE__, -4.372187639240662e-11, "-4.37219e-11", "%+g", +__LINE__, -4.374221079233858e-15, "-4.37422E-15", "%4.6G", +__LINE__, -4.374840292001664e-13, "-0.000000", "%+f", +__LINE__, -4.376554800103945e+16, "-43765548001039453.751559", "%f", +__LINE__, -4.376659235899513e+07, "-4.4E+07", "%0.2G", +__LINE__, -4.377316129868239e-06, "-4.37732E-06", "%+5G", +__LINE__, -4.380028480226885e+21, "-4e+21", "%1.0e", +__LINE__, -4.380434965450223e+16, "-43804349654502230.393405", "%f", +__LINE__, -4.392477080355168e-15, "-4E-15", "%+2.G", +__LINE__, -4.396120020536161e+17, "-439612002053616102.159594", "%#f", +__LINE__, -4.400993154571784e+13, "-44009931545717.844159", "%f", +__LINE__, -4.402873692051930e-26, "-4.4e-26", "%5.3g", +__LINE__, -4.405330274903779e+24, "-4405330274903779042006135.568954", "%+5f", +__LINE__, -4.406272291312090e+06, "-4.40627e+06", "%+g", +__LINE__, -4.407065949816988e-13, "-0.000000", "%f", +__LINE__, -4.408295597674563e-10, "-4.4083e-10", "%g", +__LINE__, -4.417553815178214e-30, "-4.41755E-30", "%G", +__LINE__, -4.428894120469459e+16, "-4.42889e+16", "%g", +__LINE__, -4.433747825142046e+04, "-4.433748e+04", "%#e", +__LINE__, -4.435051082856639e+11, "-4.43505E+11", "%G", +__LINE__, -4.445045573007259e-27, "-4.445e-27", "%.5g", +__LINE__, -4.447791368960968e-25, " -4e-25", "%+7.g", +__LINE__, -4.449691386526521e-11, "-4.44969e-11", "%g", +__LINE__, -4.451399093849402e+06, "-4.e+06", "%#0.e", +__LINE__, -4.453753130320864e-22, "-4E-22", "%6.E", +__LINE__, -4.455910780463539e+00, "-4", "%2.g", +__LINE__, -4.464935674747308e+25, "-4.46494e+25", "%g", +__LINE__, -4.469759565657550e-29, "-4.46976e-29", "%g", +__LINE__, -4.473254139442931e+14, "-4E+14", "%3.1G", +__LINE__, -4.480844704930373e-04, "-0.000448", "%5.6f", +__LINE__, -4.484177356024563e+19, "-4.484177E+19", "%E", +__LINE__, -4.488115678357666e-13, "-4.48812e-13", "%g", +__LINE__, -4.491545112281561e+12, "-4.491545E+12", "%E", +__LINE__, -4.492547433553077e-23, "-4.49255e-23", "%g", +__LINE__, -4.492701755830813e-05, "-0.000045", "%f", +__LINE__, -4.497405935096372e-02, "-4.497406e-02", "%e", +__LINE__, -4.502764260212887e+21, "-4.50276E+21", "%G", +__LINE__, -4.511984199938207e+29, "-451198419993820731832556703011.505306", "%f", +__LINE__, -4.514517861504637e-13, "-4.51452e-13", "%g", +__LINE__, -4.525577218881990e+24, "-4.5e+24", "%2.2g", +__LINE__, -4.549244580903896e-26, "-5E-26", "%2.G", +__LINE__, -4.569192488002113e-29, "-5E-29", "%3.G", +__LINE__, -4.572011438847734e+17, "-4.57e+17", "%#.3g", +__LINE__, -4.573010973514519e-08, "-4.57301e-08", "%+7g", +__LINE__, -4.584534976177852e-04, "-0.000458453", "%7g", +__LINE__, -4.584729895132228e-21, "-0.000000", "%4f", +__LINE__, -4.585259328217483e-30, "-4.58526E-30", "%+#4.6G", +__LINE__, -4.589603063610410e-04, "-4.589603E-04", "%+E", +__LINE__, -4.592428795671033e+22, " -5e+22", "%7.g", +__LINE__, -4.595683678223830e-20, " -0", "%5.f", +__LINE__, -4.602585606100101e+05, "-4.602586E+05", "%E", +__LINE__, -4.603375306660027e-08, "-5E-08", "%+6.G", +__LINE__, -4.611341343728034e-18, "-4.611341e-18", "%5e", +__LINE__, -4.613608487855863e+05, "-461361", "%6g", +__LINE__, -4.615997775774194e-24, "-4.61600e-24", "%#g", +__LINE__, -4.620310950564759e+23, "-462031095056475926696749", "%1.0f", +__LINE__, -4.620645693595563e-10, "-4.6206457e-10", "%.7e", +__LINE__, -4.621527706233292e-09, "-4.621528e-09", "%#e", +__LINE__, -4.625215210297273e-13, "-4.62522E-13", "%G", +__LINE__, -4.636755152220100e-29, "-0.000000", "%#f", +__LINE__, -4.641203877508087e+23, "-4.6412e+23", "%0g", +__LINE__, -4.648627249239175e+23, "-4.65E+23", "%+0.3G", +__LINE__, -4.662546890623409e-10, "-4.663E-10", "%.3E", +__LINE__, -4.664488650292317e-27, "-4.66449e-27", "%#g", +__LINE__, -4.668715685060282e+08, "-466871568.50603", "%.5f", +__LINE__, -4.673332851657081e-18, "-4.7e-18", "%#5.2g", +__LINE__, -4.683361436174074e+24, "-4.68e+24", "%#.2e", +__LINE__, -4.693748680461066e-01, "-0.469375", "%G", +__LINE__, -4.697110010549124e+23, "-4.69711E+23", "%G", +__LINE__, -4.710442739966989e+06, "-4.710443e+06", "%2e", +__LINE__, -4.713427678642280e-09, "-4.71343e-09", "%g", +__LINE__, -4.721999055940316e-04, "-4.721999e-04", "%#1e", +__LINE__, -4.724262200578540e+17, "-472426220057853996.081576", "%+f", +__LINE__, -4.733267644288093e+01, "-4.733268e+01", "%7e", +__LINE__, -4.742854711396110e-11, "-0.000000", "%f", +__LINE__, -4.757456106385936e+23, "-4.75746e+23", "%g", +__LINE__, -4.770895495642298e+27, "-4770895495642298200777986494.358629", "%2f", +__LINE__, -4.775073456318149e+29, "-4.775073E+29", "%#E", +__LINE__, -4.779997387204258e+17, "-4.78e+17", "%g", +__LINE__, -4.799264315770707e-23, "-4.799264E-23", "%+.7G", +__LINE__, -4.814277930599660e+10, "-5e+10", "%2.1g", +__LINE__, -4.818413387018612e+05, "-5e+05", "%.0g", +__LINE__, -4.818827195107612e-16, "-4.818827e-16", "%e", +__LINE__, -4.841524514024803e+21, "-4.84152E+21", "%G", +__LINE__, -4.860585077313477e+10, "-4.86059E+10", "%+G", +__LINE__, -4.870037451948589e+28, "-48700374519485887248038125107.996166", "%f", +__LINE__, -4.888835952705153e-28, "-4.888836E-28", "%+E", +__LINE__, -4.893523355754114e-19, "-4.893523e-19", "%.6e", +__LINE__, -4.906070260482585e+17, "-490607026048258454", "%+.0f", +__LINE__, -4.907734144101900e+25, "-5E+25", "%+.1G", +__LINE__, -4.917899547741841e-25, "-4.917900e-25", "%e", +__LINE__, -4.923348512538722e+25, "-49233485125387215219916470.232420", "%+.6f", +__LINE__, -4.926052630078460e-26, "-4.926053e-26", "%e", +__LINE__, -4.926751662051156e+14, "-4.927E+14", "%+5.3E", +__LINE__, -4.928017952199046e-12, "-0.000000", "%f", +__LINE__, -4.944296782981195e-21, "-4.9443E-21", "%1.5G", +__LINE__, -4.947320427183599e-19, "-4.947320e-19", "%.6e", +__LINE__, -4.968188938972135e+17, "-4.96819E+17", "%G", +__LINE__, -4.968756725758674e+05, "-496876", "%G", +__LINE__, -4.968788759793340e-26, "-4.97E-26", "%.3G", +__LINE__, -4.983904999913364e-24, "-5E-24", "%0.G", +__LINE__, -4.985209496522767e+23, "-4.985209e+23", "%e", +__LINE__, -4.987363880732866e+08, "-4.98736E+08", "%G", +__LINE__, -4.989754940144973e+05, "-498975.494014", "%f", +__LINE__, -4.998203870733718e-25, "-4.9982e-25", "%g", +__LINE__, -4.999153445016792e-27, "-5e-27", "%+1.e", +__LINE__, -5.002693488258108e+06, " -5e+06", "%+7.g", +__LINE__, -5.017958458603783e+05, "-5.0179585E+05", "%+.7E", +__LINE__, -5.028902178573363e-12, "-5.0289e-12", "%0g", +__LINE__, -5.032337536971444e+07, "-50323375.369714", "%f", +__LINE__, -5.036525516370473e-24, "-5.0365e-24", "%4.5g", +__LINE__, -5.038642321515756e+18, "-5038642321515755639.893541", "%f", +__LINE__, -5.051003516976770e-14, "-5.051E-14", "%+G", +__LINE__, -5.051196143816789e+27, "-5.0512e+27", "%g", +__LINE__, -5.057372886713786e+28, "-5.057373e+28", "%#e", +__LINE__, -5.057475029459727e+12, "-5.05748e+12", "%+g", +__LINE__, -5.068286816124670e-17, "-5.068E-17", "%5.3E", +__LINE__, -5.070475165759468e-12, "-0.000000", "%4.6f", +__LINE__, -5.081352543220476e+20, "-5.081E+20", "%.3E", +__LINE__, -5.084398319179363e+11, "-508439831917.936313", "%#f", +__LINE__, -5.085781220648484e+05, "-5.E+05", "%+#7.G", +__LINE__, -5.094941054632498e-24, "-5.09494E-24", "%+G", +__LINE__, -5.100059596310871e-10, "-5.10006e-10", "%3.6g", +__LINE__, -5.103072553594136e-01, "-0.5", "%+1.g", +__LINE__, -5.106319890388412e+08, "-5.106320e+08", "%4e", +__LINE__, -5.107120687977690e+09, "-5107120687.977690", "%f", +__LINE__, -5.119910716893161e-13, "-5.11991E-13", "%6G", +__LINE__, -5.127594569425709e-29, "-5.12759e-29", "%#g", +__LINE__, -5.130365585632797e+29, "-5.13037e+29", "%#g", +__LINE__, -5.131415638022112e+08, "-513141563.802211", "%0f", +__LINE__, -5.144703216335916e-23, "-5.1447e-23", "%g", +__LINE__, -5.152511923201882e-05, "-5.15251E-05", "%+G", +__LINE__, -5.165484448280190e-12, " -0.0", "%5.1f", +__LINE__, -5.179220760465737e-20, "-5e-20", "%+5.g", +__LINE__, -5.183005119662180e-10, "-5.183005E-10", "%+E", +__LINE__, -5.199587953258117e+13, "-5.19959e+13", "%6g", +__LINE__, -5.202041951844580e-25, "-0.000000", "%f", +__LINE__, -5.202836038621740e+00, "-5.20284", "%G", +__LINE__, -5.212204099528552e-11, "-5.2122e-11", "%.6g", +__LINE__, -5.225617726710534e+17, "-522561772671053414.995868", "%+f", +__LINE__, -5.230162003281426e+25, "-52301620032814257754694153.84578", "%+6.5f", +__LINE__, -5.251849429321286e-11, "-5.25185e-11", "%g", +__LINE__, -5.265174939930368e+23, "-5.265175E+23", "%1.6E", +__LINE__, -5.271218134351422e+21, "-5.27122e+21", "%+1g", +__LINE__, -5.273823357545750e+17, "-527382335754575048.980541", "%f", +__LINE__, -5.279848797214957e+11, "-527984879721.495659", "%0f", +__LINE__, -5.281551888625290e+11, "-5e+11", "%4.g", +__LINE__, -5.281780377142961e-24, "-5.28178e-24", "%g", +__LINE__, -5.292125782379512e+03, "-5292.125782", "%f", +__LINE__, -5.292401691410388e+15, "-5292401691410387.520875", "%f", +__LINE__, -5.305120752102265e-25, "-5.30512e-25", "%+#.5e", +__LINE__, -5.317975791704413e+16, "-5.31798e+16", "%+g", +__LINE__, -5.336522843607233e+27, "-5.33652e+27", "%#6g", +__LINE__, -5.342016438000917e-05, " -5e-05", "%+7.e", +__LINE__, -5.351122291549103e+06, "-5351122.291549", "%+0f", +__LINE__, -5.352043956303597e+00, "-5.35204", "%g", +__LINE__, -5.353582488767747e+09, "-5.354E+09", "%7.3E", +__LINE__, -5.383420177718380e+04, "-5e+04", "%1.e", +__LINE__, -5.384320189791882e-10, "-5.384320e-10", "%e", +__LINE__, -5.409487543257379e-12, "-5.40949E-12", "%G", +__LINE__, -5.418395794776773e+23, "-5.4184e+23", "%g", +__LINE__, -5.419918795921525e-09, "-0.000000", "%+f", +__LINE__, -5.422374157832442e+11, "-5.42237e+11", "%3g", +__LINE__, -5.426916951577001e-27, "-5.42692E-27", "%+G", +__LINE__, -5.430058833461779e+28, "-5.43006E+28", "%G", +__LINE__, -5.444433348653147e+23, "-5.444433E+23", "%E", +__LINE__, -5.446560186537024e+09, "-5.446560E+09", "%E", +__LINE__, -5.464243500152188e+27, "-5.46424E+27", "%G", +__LINE__, -5.464427517531742e+20, "-546442751753174249529.365625", "%f", +__LINE__, -5.465783705970954e+05, "-5E+05", "%1.E", +__LINE__, -5.475138077475789e-11, "-5e-11", "%.0e", +__LINE__, -5.475302250616576e+10, "-54753022506.1658", "%.4f", +__LINE__, -5.488964905442472e+09, "-5.48896e+09", "%g", +__LINE__, -5.492508526846316e-08, "-5.49251e-08", "%.6g", +__LINE__, -5.520533408804846e-15, "-5.520533e-15", "%e", +__LINE__, -5.532744688447266e+28, "-55327446884472664123677532188.594341", "%2.6f", +__LINE__, -5.535834653450131e-14, "-5.5e-14", "%0.1e", +__LINE__, -5.554344735392882e-02, "-5.554345E-02", "%+#E", +__LINE__, -5.555497334515501e-17, "-5.5555e-17", "%g", +__LINE__, -5.558304303221977e+14, "-555830430322197.699411", "%f", +__LINE__, -5.562210815777694e-05, "-5.562211E-05", "%#1E", +__LINE__, -5.564800722538402e-09, "-5.56480e-09", "%#.6g", +__LINE__, -5.567143271590439e-01, "-5.567143e-01", "%#e", +__LINE__, -5.568606044396186e+01, "-55.6861", "%4g", +__LINE__, -5.592027856401721e+12, "-5.592028e+12", "%.7g", +__LINE__, -5.592295342565443e+22, "-6.E+22", "%#3.G", +__LINE__, -5.600007421926053e+07, "-56000074.219261", "%1f", +__LINE__, -5.601444553155006e-12, "-5.60144E-12", "%G", +__LINE__, -5.605128912835080e-03, "-0.005605", "%+f", +__LINE__, -5.610950285679577e+19, "-5.61095E+19", "%G", +__LINE__, -5.622074657679467e+11, "-562207465767.946690", "%f", +__LINE__, -5.627358352391656e-01, "-0.6", "%1.g", +__LINE__, -5.627974317622488e-02, "-5.627974e-02", "%+e", +__LINE__, -5.629497696447229e+27, "-5.629E+27", "%+.4G", +__LINE__, -5.631383567258576e-29, "-5.63138e-29", "%0g", +__LINE__, -5.635241327177333e-18, "-5.63524E-18", "%G", +__LINE__, -5.644819783138381e+06, "-5.644820E+06", "%#E", +__LINE__, -5.648538459114833e+26, "-564853845911483265496144667.849876", "%+f", +__LINE__, -5.649004865848537e+00, "-5.649", "%g", +__LINE__, -5.653403316885170e+23, "-6E+23", "%2.0E", +__LINE__, -5.656109962244926e-18, "-0.000000", "%f", +__LINE__, -5.674988031695793e+22, "-5.674988E+22", "%+.7G", +__LINE__, -5.686380226400881e-22, "-0.000000", "%f", +__LINE__, -5.698840855829442e-14, "-5.69884E-14", "%G", +__LINE__, -5.707036642649580e+03, "-5707.036643", "%f", +__LINE__, -5.710344882278847e+11, "-5.71034E+11", "%+G", +__LINE__, -5.714852196401017e+19, "-5.71485E+19", "%+G", +__LINE__, -5.720153622156089e-22, "-5.72015E-22", "%G", +__LINE__, -5.722366011976922e+26, "-5.72237e+26", "%+g", +__LINE__, -5.722909928097404e+12, "-5.72291E+12", "%2G", +__LINE__, -5.725325961787777e-25, "-5.72533e-25", "%g", +__LINE__, -5.727138241052646e+19, "-5.72714e+19", "%+#g", +__LINE__, -5.734025840446336e+14, "-5.73403e+14", "%+g", +__LINE__, -5.736469106710259e-05, "-0.000057", "%.6f", +__LINE__, -5.755099153733116e-14, "-5.7551e-14", "%+g", +__LINE__, -5.758411844890947e-20, "-6E-20", "%+6.G", +__LINE__, -5.760350214122813e+03, "-5760.35", "%+g", +__LINE__, -5.768009192512392e-30, "-0", "%1.f", +__LINE__, -5.772343286693103e+07, "-5.77234E+07", "%G", +__LINE__, -5.776693265471852e-27, "-5.776693E-27", "%E", +__LINE__, -5.779682861172754e-28, "-5.779683e-28", "%e", +__LINE__, -5.789953490749936e+26, "-578995349074993637117358957.76656", "%5.5f", +__LINE__, -5.796771264754334e+04, "-57967.7", "%g", +__LINE__, -5.804788370597286e-02, "-5.80479E-02", "%+#1.5E", +__LINE__, -5.805343475329215e-13, "-5.80534e-13", "%g", +__LINE__, -5.809853913830122e+09, "-5809853914", "%+0.f", +__LINE__, -5.817313814570609e-30, " -0", "%7.0f", +__LINE__, -5.831708441750138e+00, "-5.83171", "%#g", +__LINE__, -5.846914550593652e+29, "-5.846915e+29", "%e", +__LINE__, -5.851455214762288e+04, "-58514.6", "%+G", +__LINE__, -5.855803663871393e-23, "-6E-23", "%5.E", +__LINE__, -5.858065129988470e+10, "-5.85807e+10", "%+g", +__LINE__, -5.863147168075411e-14, "-5.86315e-14", "%+g", +__LINE__, -5.878936740266680e-04, "-0.000587894", "%g", +__LINE__, -5.887654893386630e+25, "-58876548933866299506689756.526612", "%#f", +__LINE__, -5.889416409731902e-02, "-0.06", "%5.g", +__LINE__, -5.897630195029892e-18, "-5.897630E-18", "%#0.7G", +__LINE__, -5.898506808456422e-19, "-5.89851E-19", "%G", +__LINE__, -5.901768645393515e+29, "-5.90177E+29", "%+G", +__LINE__, -5.907529093570369e+10, "-59075290935.703695", "%f", +__LINE__, -5.910069365260240e+13, "-59100693652602.39849", "%+#5.5f", +__LINE__, -5.915678929676435e-07, "-0.000001", "%+f", +__LINE__, -5.922232380131716e-01, "-0.592223", "%+3f", +__LINE__, -5.923716473994306e+19, "-5.92372E+19", "%+#.6G", +__LINE__, -5.929950428920404e-15, "-5.929950e-15", "%+e", +__LINE__, -5.949552735665802e+26, "-5.94955e+26", "%#g", +__LINE__, -5.949977081310732e-02, "-0.059500", "%f", +__LINE__, -5.954520303889356e-07, "-5.954520E-07", "%5E", +__LINE__, -5.978861337429145e-13, "-6E-13", "%1.G", +__LINE__, -5.980539445081087e+15, "-5.98054E+15", "%.6G", +__LINE__, -5.981724990853490e-03, " -0.006", "%#7.g", +__LINE__, -5.989488907825821e+03, "-6E+03", "%.2G", +__LINE__, -5.998272294890842e+06, "-6.00E+06", "%4.2E", +__LINE__, -6.023775731455919e-29, "-6.023776e-29", "%e", +__LINE__, -6.028153126666870e-05, "-6.e-05", "%+#6.e", +__LINE__, -6.036200621484690e+25, "-6e+25", "%2.2g", +__LINE__, -6.036400640928137e-14, "-6.036401e-14", "%e", +__LINE__, -6.038198451098329e-20, "-6.038198e-20", "%1.7g", +__LINE__, -6.045778975641123e-15, "-6.04578E-15", "%G", +__LINE__, -6.046038904252073e+00, "-6.04604", "%g", +__LINE__, -6.082158462782175e-06, "-0.000006", "%+#f", +__LINE__, -6.106162726644904e+10, "-6.10616e+10", "%g", +__LINE__, -6.126345215489182e+10, "-6e+10", "%+1.g", +__LINE__, -6.131852309620571e+02, "-6e+02", "%4.e", +__LINE__, -6.134589313243809e-01, "-0.613459", "%+#f", +__LINE__, -6.142358153783462e-10, "-6.14236E-10", "%4G", +__LINE__, -6.151524334856263e+27, "-6151524334856262932191839354.345575", "%+6f", +__LINE__, -6.156818333724550e+04, "-6.e+04", "%#.1g", +__LINE__, -6.166172551433993e+24, "-6166172551433993120895138.4178", "%5.4f", +__LINE__, -6.169532428006014e-09, "-6.16953e-09", "%3g", +__LINE__, -6.172019382601770e-28, "-0.000000", "%+f", +__LINE__, -6.174496985807155e-09, "-6.1745E-09", "%G", +__LINE__, -6.186771845105751e+04, "-61867.7", "%G", +__LINE__, -6.200817973780066e+22, "-6.20082E+22", "%3G", +__LINE__, -6.218004335456301e-22, "-0.000000", "%+f", +__LINE__, -6.219009630546262e-18, "-6.22e-18", "%6.3g", +__LINE__, -6.242532875230618e-06, "-0.000006", "%7f", +__LINE__, -6.243612261280864e+14, "-6.24361e+14", "%.6g", +__LINE__, -6.243689597320126e+10, "-6e+10", "%.0e", +__LINE__, -6.244620667090527e+04, "-6e+04", "%6.e", +__LINE__, -6.250789625572054e-09, "-0.000000", "%+f", +__LINE__, -6.253537566219164e+01, "-63.", "%#1.f", +__LINE__, -6.284420289484166e+21, "-6.2844203e+21", "%7.7e", +__LINE__, -6.285939888202846e+27, "-6e+27", "%+.0g", +__LINE__, -6.290025777678105e+13, "-6E+13", "%2.E", +__LINE__, -6.291364254323924e+10, "-6.3E+10", "%3.2G", +__LINE__, -6.292428812164449e+15, "-6292428812164448.714839", "%.6f", +__LINE__, -6.292600606358002e+29, "-6.29260E+29", "%#G", +__LINE__, -6.292739629144148e-15, "-6.292740E-15", "%E", +__LINE__, -6.296471626465745e+28, "-6.29647E+28", "%G", +__LINE__, -6.299575066640315e+27, "-6.300E+27", "%.3E", +__LINE__, -6.315234679394876e-24, "-6E-24", "%2.G", +__LINE__, -6.320883246383228e-01, "-0.632088", "%2g", +__LINE__, -6.324938413548937e-11, "-6e-11", "%.1g", +__LINE__, -6.336312983176250e+04, "-6.336313e+04", "%e", +__LINE__, -6.341786787214541e+06, "-6.341787E+06", "%+7.6E", +__LINE__, -6.360189291106185e-15, "-0.0000000", "%#.7f", +__LINE__, -6.364818355457748e-15, "-0.0000000", "%1.7f", +__LINE__, -6.366291103431814e+04, "-63662.9", "%#G", +__LINE__, -6.366334042923153e-05, "-6.37e-05", "%5.3g", +__LINE__, -6.370477455143194e-12, "-0.000000", "%f", +__LINE__, -6.372829256546279e+23, "-6.37283E+23", "%G", +__LINE__, -6.375208490193110e-23, "-6.37521e-23", "%4.5e", +__LINE__, -6.382595100891736e-24, "-6.3826E-24", "%5G", +__LINE__, -6.396882421146790e-22, "-6.39688e-22", "%+g", +__LINE__, -6.407190354039938e+08, "-6.40719e+08", "%+g", +__LINE__, -6.408581541430886e-10, "-6.E-10", "%#0.0G", +__LINE__, -6.409206904981703e-03, "-0.006", "%+.0G", +__LINE__, -6.416106714707772e+26, "-641610671470777216285341637.558304", "%f", +__LINE__, -6.417436981761998e-04, "-0.000642", "%+#f", +__LINE__, -6.429997249673124e+11, "-642999724967.312414", "%#f", +__LINE__, -6.440827429825250e+16, "-6.44083E+16", "%G", +__LINE__, -6.444869858444955e+02, "-6e+02", "%6.g", +__LINE__, -6.471701890976228e-25, " -6e-25", "%7.1g", +__LINE__, -6.485393161670371e-12, "-6.485393e-12", "%.6e", +__LINE__, -6.487710907063584e+23, "-6.E+23", "%#3.E", +__LINE__, -6.492942931343439e-08, "-0.", "%+#2.0f", +__LINE__, -6.496010652113223e+18, "-6.49601e+18", "%g", +__LINE__, -6.502856921840228e+22, "-6.50286e+22", "%4g", +__LINE__, -6.523559906055000e-10, "-6.52356E-10", "%.6G", +__LINE__, -6.525899074126662e+04, "-6.5e+04", "%+.1e", +__LINE__, -6.532216801155521e-09, "-6.53222E-09", "%G", +__LINE__, -6.544601787025684e-27, "-0", "%+.0f", +__LINE__, -6.558968312132168e-01, " -1", "%+6.f", +__LINE__, -6.559654261655786e+08, "-6.559654e+08", "%e", +__LINE__, -6.566562622196495e-21, "-6.56656E-21", "%.6G", +__LINE__, -6.573486832071960e+04, "-65734.9", "%G", +__LINE__, -6.573806290918275e+13, "-6.57381E+13", "%G", +__LINE__, -6.578113771674787e+17, "-6.57811E+17", "%+#G", +__LINE__, -6.584106931007506e+15, "-6.584107E+15", "%E", +__LINE__, -6.590538844308877e+07, "-65905388.443089", "%f", +__LINE__, -6.593708834068371e-07, "-0.000001", "%f", +__LINE__, -6.597116446195875e+08, "-6.5971164e+08", "%#1.7e", +__LINE__, -6.605813542127091e-04, "-0.0007", "%+0.g", +__LINE__, -6.607491403866429e+07, "-7e+07", "%3.g", +__LINE__, -6.616499847522278e+09, "-6.61650E+09", "%+#G", +__LINE__, -6.618619768691332e+20, "-7E+20", "%2.G", +__LINE__, -6.626748168962331e-22, "-7.E-22", "%+#3.E", +__LINE__, -6.639335450348280e+12, "-6.63934e+12", "%g", +__LINE__, -6.643910144912576e-03, "-0.006644", "%f", +__LINE__, -6.650293872031870e-18, "-6.65029e-18", "%+#g", +__LINE__, -6.654903858656310e-21, "-0.000000", "%f", +__LINE__, -6.665834666726511e-12, "-6.665835E-12", "%E", +__LINE__, -6.666428729917570e-19, "-0.000000", "%+#f", +__LINE__, -6.668415789681128e+27, "-6.66842E+27", "%+G", +__LINE__, -6.675214676269601e-28, "-6.67521e-28", "%#g", +__LINE__, -6.679560072732262e+01, "-66.7956", "%#g", +__LINE__, -6.692325075457020e-19, "-0.000000", "%1f", +__LINE__, -6.697096655164652e+00, "-6.70", "%#.3g", +__LINE__, -6.712436135928394e-28, "-7e-28", "%0.g", +__LINE__, -6.720769486122685e-16, "-7e-16", "%0.e", +__LINE__, -6.727196898490600e+26, "-672719689849060031860972230.8", "%.1f", +__LINE__, -6.744132627576416e+02, "-674.413", "%6G", +__LINE__, -6.757705576425288e+28, "-6.7577056e+28", "%.7e", +__LINE__, -6.760554929237173e-02, "-0.067606", "%+f", +__LINE__, -6.763538810629361e+10, "-6.7635E+10", "%.4E", +__LINE__, -6.764712008860796e-29, "-6.76471E-29", "%+G", +__LINE__, -6.767299719678443e+04, "-67672.997197", "%f", +__LINE__, -6.768326491352134e+20, "-676832649135213415547.70", "%+.2f", +__LINE__, -6.771116968952891e+03, "-7E+03", "%3.1G", +__LINE__, -6.775218099238350e-30, "-7.e-30", "%+#6.g", +__LINE__, -6.782142689928918e-18, "-0.00", "%4.2f", +__LINE__, -6.795409770512149e+08, "-7E+08", "%+5.0G", +__LINE__, -6.820966157097271e+14, "-6.820966e+14", "%e", +__LINE__, -6.824972990592273e-22, "-0.00", "%+#1.2f", +__LINE__, -6.830452914741750e+29, "-6.8E+29", "%+7.2G", +__LINE__, -6.835797187132348e+10, "-6.8358E+10", "%+5G", +__LINE__, -6.837040829636343e-03, "-0.00683704", "%+g", +__LINE__, -6.852956218658224e+23, "-6.85296e+23", "%3g", +__LINE__, -6.854102607287217e-26, "-7e-26", "%5.e", +__LINE__, -6.865065870249438e+16, "-6.86507E+16", "%#G", +__LINE__, -6.884819522625523e-13, "-6.88482E-13", "%5G", +__LINE__, -6.916316600148513e-12, "-0.000000", "%f", +__LINE__, -6.925312418761560e-05, "-6.92531E-05", "%#G", +__LINE__, -6.929518694178331e+09, "-6929518694.178", "%#.3f", +__LINE__, -6.936008056682024e+02, "-6.936008E+02", "%E", +__LINE__, -6.944911117352400e+26, "-6.944911E+26", "%1.6E", +__LINE__, -6.945829492125162e+05, "-6.9e+05", "%+2.2g", +__LINE__, -6.946603162471856e-13, "-6.94660E-13", "%#G", +__LINE__, -6.947529440406653e+22, "-6.9475e+22", "%+6.5g", +__LINE__, -6.950167604854856e-30, "-0.000000", "%7f", +__LINE__, -6.958122319262799e-26, "-7E-26", "%+1.E", +__LINE__, -6.958978258390961e+16, "-6.95898E+16", "%+5.6G", +__LINE__, -6.963780466334008e-06, "-6.96378E-06", "%2G", +__LINE__, -6.965570896221966e+13, "-6.965571E+13", "%5E", +__LINE__, -6.967741871945064e-10, "-6.96774E-10", "%+#G", +__LINE__, -6.973815739524307e+19, "-69738157395243067782.076", "%6.3f", +__LINE__, -6.982714545008106e+13, "-6.98271e+13", "%g", +__LINE__, -6.985955885054476e+03, "-6985.96", "%6G", +__LINE__, -6.986415266835747e+18, "-6.98642e+18", "%#g", +__LINE__, -6.996461529596512e-08, "-7.0E-08", "%#.1E", +__LINE__, -7.000144914012241e-05, "-7.00014e-05", "%#g", +__LINE__, -7.001017894492730e-03, "-0.00700102", "%+#.6G", +__LINE__, -7.003690685875917e+20, "-7E+20", "%0.G", +__LINE__, -7.010454163965384e+00, "-7.010454e+00", "%+e", +__LINE__, -7.011493550018082e-26, " -0", "%7.f", +__LINE__, -7.018018443394008e+21, "-7.0E+21", "%+#1.1E", +__LINE__, -7.027253777387243e-05, "-7.02725E-05", "%+G", +__LINE__, -7.043679213677740e-17, "-0", "%1.f", +__LINE__, -7.051690489227881e-16, "-7.052e-16", "%0.4g", +__LINE__, -7.063422475274161e-16, "-7.063422E-16", "%E", +__LINE__, -7.065069592235558e-30, "-7.06507e-30", "%+#g", +__LINE__, -7.068265283935834e-29, "-7e-29", "%+5.e", +__LINE__, -7.068748224536295e-13, "-0.000000", "%f", +__LINE__, -7.069621910708177e-04, "-0.000707", "%1.3g", +__LINE__, -7.079725450964823e-12, "-0.000000", "%f", +__LINE__, -7.087255464668218e+17, "-7.1e+17", "%.1e", +__LINE__, -7.088715102009605e-09, "-7e-09", "%6.0g", +__LINE__, -7.090414916270137e-15, "-0.00000", "%.5f", +__LINE__, -7.091868311008428e-03, " -0.0", "%5.1f", +__LINE__, -7.094242165237718e+21, "-7.09424e+21", "%+g", +__LINE__, -7.094324305740325e-05, "-7E-05", "%+3.G", +__LINE__, -7.104544752289144e+04, "-71045.4", "%#g", +__LINE__, -7.105164644813694e-29, "-0.000000", "%+f", +__LINE__, -7.114513164219487e-12, "-7.11451e-12", "%+g", +__LINE__, -7.115778236604137e-12, "-7.11578E-12", "%G", +__LINE__, -7.126217683410162e-27, "-7.126218e-27", "%e", +__LINE__, -7.136214260967733e+28, "-71362142609677334803564008325.338364", "%f", +__LINE__, -7.143452595522573e+19, "-7.14345e+19", "%g", +__LINE__, -7.156042088843537e+27, "-7156042088843537207765166385.7977837", "%4.7f", +__LINE__, -7.173687683710490e+24, "-7.17369e+24", "%6g", +__LINE__, -7.190531162598206e+25, "-71905311625982060164119503", "%4.f", +__LINE__, -7.201301831373747e-09, "-7.2013e-09", "%g", +__LINE__, -7.209601436737306e+10, "-7.2096e+10", "%g", +__LINE__, -7.211058997356655e-06, "-7.211059E-06", "%E", +__LINE__, -7.226756177676272e-09, "-7.22676E-09", "%+G", +__LINE__, -7.230870817566419e+19, "-72308708175664193618.1040364", "%#.7f", +__LINE__, -7.231355992133345e-05, "-7.231356E-05", "%#E", +__LINE__, -7.245999575278407e-12, "-7.246e-12", "%g", +__LINE__, -7.247426403040390e-09, "-7.2474E-09", "%+4.5G", +__LINE__, -7.257348680308567e-12, "-7.3E-12", "%1.2G", +__LINE__, -7.258184256387366e-26, "-7.25818E-26", "%+2G", +__LINE__, -7.262633672900126e+10, "-7.26263e+10", "%#g", +__LINE__, -7.268887462426250e+03, "-7.268887e+03", "%+#e", +__LINE__, -7.275284494682963e+08, "-7.27528e+08", "%g", +__LINE__, -7.276335846256479e-07, " -0", "%4.f", +__LINE__, -7.312556378294452e+15, "-7.31256e+15", "%+6g", +__LINE__, -7.334763752442417e-15, "-0.0000", "%#.4f", +__LINE__, -7.354627097325888e-18, "-7E-18", "%0.E", +__LINE__, -7.360087573342401e-25, "-7.4E-25", "%6.2G", +__LINE__, -7.368533563361098e-29, "-7.4E-29", "%3.1E", +__LINE__, -7.379267723540596e-06, "-0.000007", "%f", +__LINE__, -7.384525781709565e-19, "-0.000000", "%+#f", +__LINE__, -7.388940868679677e-09, "-7.388941E-09", "%E", +__LINE__, -7.391602149099698e+00, "-7.391602E+00", "%E", +__LINE__, -7.393159340196723e+22, "-7.39316e+22", "%#2.6g", +__LINE__, -7.399783260198277e-16, "-7.39978E-16", "%G", +__LINE__, -7.405609590448331e-06, "-7.40561e-06", "%g", +__LINE__, -7.407396977847794e-11, "-7.40740E-11", "%#G", +__LINE__, -7.433716848698637e+20, "-7.43372e+20", "%+g", +__LINE__, -7.444176062769411e-01, "-0.744418", "%#g", +__LINE__, -7.448314697244012e+12, "-7448314697244.011739", "%f", +__LINE__, -7.449533988369018e+08, "-7.449534e+08", "%+#7e", +__LINE__, -7.465682839758801e-01, "-7E-01", "%4.E", +__LINE__, -7.466517843126368e-26, "-7.5E-26", "%.1E", +__LINE__, -7.471385785539900e+24, "-7471385785539899515583783.795591", "%f", +__LINE__, -7.478345583780341e+00, "-7.478346e+00", "%e", +__LINE__, -7.524759284626724e-06, "-7.52476e-06", "%2g", +__LINE__, -7.534831049342539e-19, "-7.53483E-19", "%G", +__LINE__, -7.540546673179273e+15, "-8e+15", "%.1g", +__LINE__, -7.543440436184003e-08, "-7.54344E-08", "%6G", +__LINE__, -7.558224240835564e-06, "-7.55822e-06", "%g", +__LINE__, -7.564132915154469e+23, "-756413291515446850610260.298708", "%+f", +__LINE__, -7.566590720355392e+15, "-7.566591e+15", "%1.6e", +__LINE__, -7.568565927479741e-01, "-7.568566e-01", "%#6e", +__LINE__, -7.615574141973305e-17, "-7.6156e-17", "%+.5g", +__LINE__, -7.641297631509318e-28, "-8e-28", "%+.1g", +__LINE__, -7.661227834163450e+09, "-7661227834.1634497", "%+#.7f", +__LINE__, -7.665934364070126e+11, "-766593436407.0", "%.1f", +__LINE__, -7.682500068463102e-27, "-0.000000", "%+#f", +__LINE__, -7.709363160273798e+15, "-7.70936e+15", "%g", +__LINE__, -7.712596019255238e+26, "-7.7e+26", "%.2g", +__LINE__, -7.730213358437991e+25, "-7.7e+25", "%6.2g", +__LINE__, -7.744420019068976e+05, "-7.74442E+05", "%.5E", +__LINE__, -7.745813181942296e+11, "-7.7458132e+11", "%+.7e", +__LINE__, -7.751004379716307e+16, "-7.751004e+16", "%e", +__LINE__, -7.759862226564527e-28, "-7.75986e-28", "%g", +__LINE__, -7.767838880221207e-27, "-7.76784e-27", "%g", +__LINE__, -7.776301142157532e-19, "-0", "%2.f", +__LINE__, -7.783944257077553e-14, "-8e-14", "%3.g", +__LINE__, -7.801587579382377e+28, "-8e+28", "%+0.g", +__LINE__, -7.806685979552780e+25, "-7.806686E+25", "%E", +__LINE__, -7.825968891331719e-05, "-7.82597E-05", "%G", +__LINE__, -7.826834158664018e+12, "-7.826834E+12", "%+#E", +__LINE__, -7.832536798726886e+24, "-7.83254E+24", "%#1G", +__LINE__, -7.840485340202362e-18, "-0.000000", "%.6f", +__LINE__, -7.843236212099233e+21, "-7.84324e+21", "%g", +__LINE__, -7.906644052019278e-13, "-7.906644E-13", "%E", +__LINE__, -7.908090440678874e-20, "-7.90809E-20", "%#G", +__LINE__, -7.917588593012283e+08, "-7.917589E+08", "%+E", +__LINE__, -7.929100086742454e+29, "-792910008674245414539427656563.930213", "%f", +__LINE__, -7.933235286034290e+26, "-7.933235E+26", "%E", +__LINE__, -7.943431966567875e-03, "-0.0079434", "%+.5g", +__LINE__, -7.950872643572970e-22, "-7.95087e-22", "%2g", +__LINE__, -7.971225555313069e-01, "-0.797123", "%f", +__LINE__, -7.978310272676090e-12, "-0.000000", "%#f", +__LINE__, -8.006805393896414e-29, "-8.00681E-29", "%G", +__LINE__, -8.006906303018830e+25, "-8.00691E+25", "%+G", +__LINE__, -8.008484654476057e+18, "-8.008485e+18", "%5.6e", +__LINE__, -8.008943512904249e+27, "-8008943512904249217854157905.0943", "%+.4f", +__LINE__, -8.016539743121665e+27, "-8.01654E+27", "%G", +__LINE__, -8.018247227006128e-05, " -8E-05", "%7.G", +__LINE__, -8.044391842561705e+21, "-8.04439e+21", "%g", +__LINE__, -8.081902305002036e-02, "-8.081902E-02", "%E", +__LINE__, -8.084193011936438e-03, "-0.0080842", "%+5.5g", +__LINE__, -8.105813534846529e-27, "-0.000000", "%f", +__LINE__, -8.128116892989251e+00, "-8.12812", "%G", +__LINE__, -8.136119035731877e+05, "-8e+05", "%+0.g", +__LINE__, -8.140584224052606e+14, "-8E+14", "%5.G", +__LINE__, -8.145928897003907e+13, "-8.15E+13", "%.3G", +__LINE__, -8.164495905907508e-02, "-0.081645", "%G", +__LINE__, -8.169602113313905e+20, "-8.16960e+20", "%#g", +__LINE__, -8.179181640418333e+24, "-8.E+24", "%#.1G", +__LINE__, -8.184324492264231e-18, "-8.18432E-18", "%G", +__LINE__, -8.186480473850516e-28, "-0.000000", "%+f", +__LINE__, -8.196858948158896e+07, "-8.1969E+07", "%.4E", +__LINE__, -8.213138534699043e-30, "-0.000000", "%f", +__LINE__, -8.221181368676532e-21, "-8.221181E-21", "%#1E", +__LINE__, -8.222605734191438e+16, "-8.22261E+16", "%+G", +__LINE__, -8.223925661091432e-14, "-8.223926e-14", "%0e", +__LINE__, -8.232281541044777e-01, "-0.823228", "%f", +__LINE__, -8.245536794508725e+22, "-8E+22", "%6.G", +__LINE__, -8.270687365305925e+25, "-82706873653059247430974210.146815", "%f", +__LINE__, -8.288978945738204e+11, "-8.28898e+11", "%5g", +__LINE__, -8.290628698333139e+02, "-829.063", "%+G", +__LINE__, -8.292416206056451e-16, "-8.29242e-16", "%+g", +__LINE__, -8.296322623746486e-13, "-8.29632E-13", "%0.6G", +__LINE__, -8.298321941376933e-16, "-0.000000", "%+f", +__LINE__, -8.302331258878365e+29, "-8.30233E+29", "%0G", +__LINE__, -8.309022429255061e+06, "-8309022.429255", "%+f", +__LINE__, -8.312786829254646e-23, "-8.312787e-23", "%e", +__LINE__, -8.313852965178063e-15, "-8.313853e-15", "%#7e", +__LINE__, -8.317529094827869e+16, "-8.31753E+16", "%2G", +__LINE__, -8.322847660882248e-17, "-0.000000", "%f", +__LINE__, -8.324060602752638e-30, "-8.32406e-30", "%#g", +__LINE__, -8.325043500735461e+27, "-8325043500735461066142306663.095951", "%#f", +__LINE__, -8.332432016286935e-02, "-0.0833243", "%g", +__LINE__, -8.334251670232117e-09, "-8.33425e-09", "%g", +__LINE__, -8.338076225141778e+02, "-833.808", "%g", +__LINE__, -8.338349587571534e-23, "-8.33835e-23", "%+2g", +__LINE__, -8.342420812231939e+23, "-834242081223193920891390.00745", "%+0.5f", +__LINE__, -8.347404637940894e+17, "-8.347405e+17", "%+e", +__LINE__, -8.367002601133880e-12, "-0.000000", "%#2.6f", +__LINE__, -8.368579538210858e-17, "-8.36858e-17", "%5g", +__LINE__, -8.392398522472401e-10, "-0.0000", "%.4f", +__LINE__, -8.393029677635258e-29, " -8E-29", "%7.G", +__LINE__, -8.393843230819225e-11, "-8.393843E-11", "%E", +__LINE__, -8.397239871789148e-11, "-8.39724e-11", "%g", +__LINE__, -8.402316358199041e-29, "-0.000", "%3.3f", +__LINE__, -8.402910159034304e-14, "-8.4e-14", "%+0.3g", +__LINE__, -8.414960962391726e+09, "-8414960962.391726", "%#f", +__LINE__, -8.417512471384889e-28, "-8.417512e-28", "%e", +__LINE__, -8.418719240222911e+21, "-8418719240222911182058.851409", "%f", +__LINE__, -8.421210956044195e-09, "-0.00000", "%.5f", +__LINE__, -8.422001733529095e+24, "-8E+24", "%0.G", +__LINE__, -8.443614453772469e+21, "-8.44361E+21", "%+G", +__LINE__, -8.445883044175737e-19, "-0", "%+1.f", +__LINE__, -8.460545304711022e-01, "-0.846055", "%G", +__LINE__, -8.470462532754567e+12, "-8.47E+12", "%6.3G", +__LINE__, -8.478488782426476e-07, "-8.478489E-07", "%E", +__LINE__, -8.478657582923923e+09, "-8.5e+09", "%.2g", +__LINE__, -8.482732098043366e+12, "-8482732098043", "%5.f", +__LINE__, -8.489112373854447e+07, "-8.489e+07", "%#3.3e", +__LINE__, -8.494153144629106e+02, "-849.415", "%+g", +__LINE__, -8.496331191616493e+28, "-8E+28", "%+6.G", +__LINE__, -8.503711894495339e+05, "-850371", "%g", +__LINE__, -8.505271893964268e+14, "-8.505272E+14", "%E", +__LINE__, -8.509873985358741e+15, "-9.e+15", "%#7.g", +__LINE__, -8.518336897898081e-20, "-8.51834E-20", "%G", +__LINE__, -8.529588044136128e+21, "-8.529588E+21", "%E", +__LINE__, -8.539706586811079e-23, "-8.53971E-23", "%G", +__LINE__, -8.545924619642008e+10, "-8.545925e+10", "%6e", +__LINE__, -8.572893681637353e+09, "-8.57289E+09", "%G", +__LINE__, -8.585483717692345e+29, "-8.58548E+29", "%+G", +__LINE__, -8.586092014292309e+27, "-8.59e+27", "%.2e", +__LINE__, -8.604716827086833e-26, "-8.60472e-26", "%g", +__LINE__, -8.621349224186615e-04, "-0.000862", "%f", +__LINE__, -8.626097065201103e-21, " -0", "%5.f", +__LINE__, -8.631700514212522e-16, "-8.631701E-16", "%+E", +__LINE__, -8.634703359975640e-09, "-0.000000", "%+5f", +__LINE__, -8.639393025443855e-17, "-8.63939e-17", "%g", +__LINE__, -8.640641942556812e-11, "-8.64064e-11", "%#g", +__LINE__, -8.646260250525495e-09, "-0.000", "%.3f", +__LINE__, -8.667322015806242e+09, "-8667322015.806242", "%+#f", +__LINE__, -8.690705655554451e+10, "-8.690706E+10", "%#E", +__LINE__, -8.714299893763934e-07, "-8.7143E-07", "%.5G", +__LINE__, -8.715729756264988e+27, "-8.71573E+27", "%+.6G", +__LINE__, -8.716518487180945e+16, "-9e+16", "%3.e", +__LINE__, -8.744404488756237e+25, "-87444044887562366596966967.335902", "%4f", +__LINE__, -8.754720498369242e+13, "-8.75472e+13", "%g", +__LINE__, -8.763198097931010e-19, "-8.76320e-19", "%#g", +__LINE__, -8.779007408852458e+28, "-8.77901E+28", "%G", +__LINE__, -8.794576202907937e+11, "-8.79458E+11", "%#2.6G", +__LINE__, -8.799091520612418e-11, "-8.799E-11", "%3.4G", +__LINE__, -8.799246265524921e+11, "-8.79925E+11", "%G", +__LINE__, -8.809010508550436e-04, "-8.8090E-04", "%.4E", +__LINE__, -8.817389999872653e-10, "-8.81739e-10", "%g", +__LINE__, -8.842022428985267e-28, "-8.842022E-28", "%E", +__LINE__, -8.851265987586864e-07, "-0.000001", "%f", +__LINE__, -8.861985131432196e+03, "-8861.985", "%+.7G", +__LINE__, -8.874449013455113e-29, "-8.874449e-29", "%e", +__LINE__, -8.878752609483453e+18, "-8.87875E+18", "%G", +__LINE__, -8.882501665315313e-04, "-0.00088825", "%+G", +__LINE__, -8.892056241505784e-14, "-8.89206E-14", "%G", +__LINE__, -8.895327674961603e-30, "-8.89533E-30", "%G", +__LINE__, -8.900059462213669e-30, "-8.900059E-30", "%+#E", +__LINE__, -8.957100548759815e+18, "-9e+18", "%3.0e", +__LINE__, -8.961352369869012e-30, "-8.961352e-30", "%+#2e", +__LINE__, -8.962296474587800e+02, "-896", "%4.f", +__LINE__, -8.962536469328530e-12, "-8.96254E-12", "%G", +__LINE__, -8.963299420391932e+21, "-8.9633e+21", "%g", +__LINE__, -8.967736672941522e-11, "-8.96774e-11", "%g", +__LINE__, -8.994077362462679e+11, "-8.9940774e+11", "%+#.7e", +__LINE__, -9.000452862345622e+15, "-9e+15", "%2.e", +__LINE__, -9.007489135361462e+07, "-9.0075E+07", "%+2.4E", +__LINE__, -9.036271805879910e+16, "-9.03627E+16", "%G", +__LINE__, -9.036319073700248e+22, "-9.03632e+22", "%1g", +__LINE__, -9.043207635989237e+11, "-9.043208e+11", "%#e", +__LINE__, -9.043856598625815e-26, "-9e-26", "%+1.g", +__LINE__, -9.052760561065698e+14, "-9.052761E+14", "%E", +__LINE__, -9.066480297957160e-06, "-9E-06", "%+1.G", +__LINE__, -9.070971376440752e-01, "-0.907097", "%g", +__LINE__, -9.073301831888273e+09, "-9.07330E+09", "%#G", +__LINE__, -9.091228662702147e+28, "-9E+28", "%4.G", +__LINE__, -9.093652024983832e+04, "-9.093652E+04", "%7.6E", +__LINE__, -9.098945831139295e-04, "-9.098946E-04", "%+1.6E", +__LINE__, -9.124981449916591e+05, "-912498", "%G", +__LINE__, -9.132038703003394e-02, "-0.0913204", "%#G", +__LINE__, -9.138271437433964e-04, "-0.000913827", "%5g", +__LINE__, -9.158186427463699e-04, "-0.000915819", "%g", +__LINE__, -9.160846358172526e+16, "-9.160846E+16", "%#E", +__LINE__, -9.160884330810163e+17, "-9E+17", "%+5.G", +__LINE__, -9.190271387375542e+21, "-9.19027e+21", "%+g", +__LINE__, -9.191651872412619e-04, "-9.191652E-04", "%E", +__LINE__, -9.196426161984341e-10, "-9E-10", "%4.G", +__LINE__, -9.201074139774962e+09, "-9E+09", "%4.G", +__LINE__, -9.223294284802762e+09, "-9.22329E+09", "%G", +__LINE__, -9.224740266754996e+02, "-9E+02", "%6.0G", +__LINE__, -9.231583780512302e-01, " -0.9", "%6.g", +__LINE__, -9.241998826543689e+07, "-92419988", "%1.f", +__LINE__, -9.243603351372128e+27, "-9.243603e+27", "%#e", +__LINE__, -9.255922697415071e+11, "-9.25592e+11", "%g", +__LINE__, -9.265734968114124e-02, "-0.092657", "%f", +__LINE__, -9.273132068521061e+11, "-9.27313E+11", "%G", +__LINE__, -9.276017912826685e+27, "-9.E+27", "%+#5.G", +__LINE__, -9.279781279788505e+17, "-9.27978E+17", "%7G", +__LINE__, -9.305057549822465e-19, "-9.30506E-19", "%5G", +__LINE__, -9.313182384508469e+18, "-9.31318E+18", "%G", +__LINE__, -9.313350925182641e-12, "-9.31E-12", "%.3G", +__LINE__, -9.362202657509130e+08, "-9e+08", "%.1g", +__LINE__, -9.367344757598381e+19, "-9.36734e+19", "%g", +__LINE__, -9.374222399774300e+26, "-9.37422e+26", "%4g", +__LINE__, -9.385734023305105e+02, "-9.385734e+02", "%+0e", +__LINE__, -9.392042570618909e+17, "-9.39204E+17", "%G", +__LINE__, -9.395742939311926e+20, "-939574293931192627837.8451", "%.4f", +__LINE__, -9.409066155962469e+09, "-9.40907E+09", "%#G", +__LINE__, -9.412851077799790e+23, "-9.412851E+23", "%E", +__LINE__, -9.431808019049818e+08, "-9.43181e+08", "%g", +__LINE__, -9.465236900519924e-27, "-9.46524e-27", "%g", +__LINE__, -9.478330386415852e+17, "-9.478330e+17", "%e", +__LINE__, -9.510393719697428e+15, "-9.51039E+15", "%+G", +__LINE__, -9.534229599909890e-09, "-0.000000", "%f", +__LINE__, -9.541731189284823e-17, "-1.E-16", "%+#7.G", +__LINE__, -9.548861908445902e+24, "-9548861908445902102471336.547751", "%f", +__LINE__, -9.578447281451794e+14, "-957844728145179", "%5.f", +__LINE__, -9.580512736933464e+11, "-9.58051E+11", "%G", +__LINE__, -9.596838169770637e-28, "-1E-27", "%+6.G", +__LINE__, -9.597528852877852e-22, "-1e-21", "%2.1g", +__LINE__, -9.599943658427051e+02, "-9.599944E+02", "%E", +__LINE__, -9.603227991185260e-14, "-1E-13", "%+0.E", +__LINE__, -9.606818733892343e+08, "-960681873.389", "%1.3f", +__LINE__, -9.617442692720937e+16, "-9.61744E+16", "%G", +__LINE__, -9.628685516961109e+29, "-9.62869e+29", "%3g", +__LINE__, -9.638354750455226e-11, "-0.000000", "%f", +__LINE__, -9.644266379029137e+16, "-96442663790291369.707575", "%f", +__LINE__, -9.645563533575482e+06, "-1E+07", "%1.G", +__LINE__, -9.645993536742941e-29, "-9.64599e-29", "%+g", +__LINE__, -9.647147223548563e+00, "-9.647147e+00", "%e", +__LINE__, -9.671225879906396e-11, "-0", "%0.f", +__LINE__, -9.675000471729906e-09, "-9.675000E-09", "%E", +__LINE__, -9.683992878297159e-26, "-9.68e-26", "%2.2e", +__LINE__, -9.695491325144765e+10, "-9.69549E+10", "%#G", +__LINE__, -9.695661526907136e-24, " -0.", "%#6.f", +__LINE__, -9.703124881970338e+07, "-9.703e+07", "%0.4g", +__LINE__, -9.707701257031864e+26, "-970770125703186437249314622.022212", "%f", +__LINE__, -9.709879792694702e+09, "-9.709880E+09", "%E", +__LINE__, -9.736052226907940e+26, "-9.73605e+26", "%+#g", +__LINE__, -9.745037157520795e+07, "-9.74504e+07", "%#5.6g", +__LINE__, -9.757293950670832e-29, "-9.757E-29", "%0.4G", +__LINE__, -9.762126832689880e+12, "-9.76213E+12", "%G", +__LINE__, -9.801328150341989e-01, " -1", "%7.G", +__LINE__, -9.837332964629669e-20, "-9.83733E-20", "%0G", +__LINE__, -9.837790327283010e+23, "-1E+24", "%.1G", +__LINE__, -9.839636176463729e+23, "-9.83964E+23", "%#6.5E", +__LINE__, -9.841454250618272e+11, "-9.84E+11", "%+2.3G", +__LINE__, -9.852920805249280e-12, "-9.852921e-12", "%.7g", +__LINE__, -9.854092850182351e+12, "-9.85409e+12", "%0g", +__LINE__, -9.866796026839712e+02, "-9.9E+02", "%#.1E", +__LINE__, -9.867413260289803e-21, "-1e-20", "%.1g", +__LINE__, -9.882136052131983e-08, "-9.88214e-08", "%g", +__LINE__, -9.882755697941866e+20, "-9.882756E+20", "%E", +__LINE__, -9.897275811087050e+20, "-9.9E+20", "%0.3G", +__LINE__, -9.899860651812364e-04, "-9.899861e-04", "%e", +__LINE__, -9.906754113555550e-11, "-9.90675e-11", "%3g", +__LINE__, -9.926067557389940e+11, "-9.92607E+11", "%G", +__LINE__, -9.929638609014063e+17, "-992963860901406292.214233", "%1f", +__LINE__, -9.941214552193284e-24, "-0.000000", "%+#f", +__LINE__, -9.942875240256573e+14, "-9.942875e+14", "%+1e", +__LINE__, -9.944492909695798e-01, "-9.944E-01", "%.3E", +__LINE__, -9.954710507359939e-27, "-1e-26", "%+0.2g", +__LINE__, -9.955410507742851e+03, "-9955.41", "%+G", +__LINE__, -9.974437672251590e+02, "-997.444", "%#G", +__LINE__, -9.975683165288929e-26, "-9.97568E-26", "%6G", +__LINE__, 1.003827370583415e+06, "1003827.370583", "%3f", +__LINE__, 1.004189065268560e-27, "1.004189E-27", "%.7G", +__LINE__, 1.005840059175462e-28, "+1.00584E-28", "%+G", +__LINE__, 1.006586790090557e-12, "0.000000", "%#f", +__LINE__, 1.007598594773359e+18, "1.0076E+18", "%G", +__LINE__, 1.007902307001894e+29, "1.0079e+29", "%g", +__LINE__, 1.008607405036580e-15, "1.00861E-15", "%6G", +__LINE__, 1.008769102466771e+16, "+1.00877E+16", "%+G", +__LINE__, 1.009545698372534e-08, "+1E-08", "%+0.0G", +__LINE__, 1.010173673945099e-12, "+1.01017e-12", "%+#0g", +__LINE__, 1.011375000606627e+09, "1011375000.606627", "%f", +__LINE__, 1.011944652221650e+15, "1011944652221649.98", "%3.2f", +__LINE__, 1.013057788090379e-21, "0.000000", "%#f", +__LINE__, 1.014525729953198e+15, "1.01453e+15", "%3g", +__LINE__, 1.016760538234615e-21, "+1.016761E-21", "%+3E", +__LINE__, 1.017052611781237e-29, "0.000000", "%f", +__LINE__, 1.018471223361229e+14, "1.01847E+14", "%G", +__LINE__, 1.021646959220873e+15, "1021646959220872.6", "%4.1f", +__LINE__, 1.022304833976590e+27, "1.0223e+27", "%g", +__LINE__, 1.022500312067325e-12, "1.0225e-12", "%6g", +__LINE__, 1.023019285462627e-20, "0.000000", "%f", +__LINE__, 1.024192579400824e+06, "1.02419e+06", "%g", +__LINE__, 1.024517953555766e-28, "1.02452E-28", "%G", +__LINE__, 1.026673589339585e+21, "1.02667E+21", "%G", +__LINE__, 1.027231090958880e-19, "1.E-19", "%#3.G", +__LINE__, 1.028249904956487e-27, "1E-27", "%5.G", +__LINE__, 1.028570144661448e-28, "+1.02857E-28", "%+G", +__LINE__, 1.028934898454705e-13, "+1.028935E-13", "%+E", +__LINE__, 1.029071053545906e-26, "1.029071E-26", "%E", +__LINE__, 1.032672895881148e-30, "+1.032673E-30", "%+E", +__LINE__, 1.033502358979511e+06, "1.0335E+06", "%.5G", +__LINE__, 1.036790427717847e+19, "1e+19", "%4.g", +__LINE__, 1.037022928821648e+03, "1037.02", "%5g", +__LINE__, 1.040551683941284e+14, "1.04055E+14", "%G", +__LINE__, 1.044499252101308e-17, "1.044499E-17", "%E", +__LINE__, 1.045791899570889e+15, "+1.04579e+15", "%+g", +__LINE__, 1.048730383198703e+28, "1.049e+28", "%.4g", +__LINE__, 1.050654419882509e-18, "0.000000", "%f", +__LINE__, 1.052600569262127e-27, "+0.000", "%+2.3f", +__LINE__, 1.053213014784149e+15, "1E+15", "%4.G", +__LINE__, 1.057553916225948e-15, "+0.000000", "%+4f", +__LINE__, 1.058191244482453e+19, "1.058e+19", "%.3e", +__LINE__, 1.058746269793972e-26, "+1.1E-26", "%+.2G", +__LINE__, 1.058793271960762e-01, "+1.058793E-01", "%+4E", +__LINE__, 1.058869592738370e-19, "1.05887e-19", "%3g", +__LINE__, 1.060402312803008e+15, "1060402312803008.229025", "%f", +__LINE__, 1.061106284763095e+00, "1.061106", "%0f", +__LINE__, 1.061180160987467e+09, "1e+09", "%2.g", +__LINE__, 1.061181537176067e-06, "+1.06118e-06", "%+g", +__LINE__, 1.065021381771174e+20, "1.06502e+20", "%g", +__LINE__, 1.065464040401130e-16, "1.065464e-16", "%e", +__LINE__, 1.065573419819459e-05, "0.00001", "%.5f", +__LINE__, 1.066107764306644e+13, "1.066108e+13", "%#e", +__LINE__, 1.071318759598956e+12, "1.071319e+12", "%e", +__LINE__, 1.071564727222321e+10, "1.072E+10", "%3.4G", +__LINE__, 1.074652481218139e+14, "1.0747E+14", "%.4E", +__LINE__, 1.078453684911309e-02, "0.0107845", "%g", +__LINE__, 1.078550811446675e-05, "1.07855e-05", "%g", +__LINE__, 1.078780494515273e-04, "0.000107878", "%4G", +__LINE__, 1.079467488876157e-16, "+1.079467E-16", "%+E", +__LINE__, 1.080529722917934e-20, "0.000000", "%f", +__LINE__, 1.082169127709439e+01, "10.8217", "%#5g", +__LINE__, 1.087241285590951e+22, "1E+22", "%4.G", +__LINE__, 1.091049208406195e-14, "0.0000", "%.4f", +__LINE__, 1.095316064213237e+16, "+1e+16", "%+0.g", +__LINE__, 1.095349083237975e-04, "1.095349e-04", "%5e", +__LINE__, 1.098002465452836e+12, "1098002465452.836205", "%f", +__LINE__, 1.098445764138997e+13, "1.09845E+13", "%G", +__LINE__, 1.099968047892474e-13, "1.1e-13", "%2.5g", +__LINE__, 1.101017598311363e-04, "0.000110102", "%G", +__LINE__, 1.102776332077817e+18, "1.103e+18", "%.3e", +__LINE__, 1.103734053887830e-01, "0.110373", "%f", +__LINE__, 1.105730106869006e-03, "0.00110573", "%g", +__LINE__, 1.106366781854058e-10, "1.10637e-10", "%g", +__LINE__, 1.107354763213839e+15, "1.107355e+15", "%6e", +__LINE__, 1.108151709609825e-10, "+1.10815E-10", "%+G", +__LINE__, 1.110054501993647e+21, "+1.11005E+21", "%+G", +__LINE__, 1.111574814737873e-17, "+1.112E-17", "%+1.4G", +__LINE__, 1.111865512360108e-15, "1E-15", "%.0G", +__LINE__, 1.112281568330498e-03, "1.112282e-03", "%.6e", +__LINE__, 1.112625415174238e+21, "+1.11263e+21", "%+g", +__LINE__, 1.112744974910395e-02, "0.011127", "%f", +__LINE__, 1.114726566979885e-10, "1.11473e-10", "%g", +__LINE__, 1.115395843055731e-20, "+0.000000", "%+6f", +__LINE__, 1.115983414693121e+15, "1.11598e+15", "%5.6g", +__LINE__, 1.116118842074266e+27, "1.116119e+27", "%e", +__LINE__, 1.118386983012328e+19, "11183869830123276400.968280", "%1f", +__LINE__, 1.119344607892718e-22, "1.119345e-22", "%e", +__LINE__, 1.120560837110279e-19, "0.000000", "%f", +__LINE__, 1.123620157906291e-02, "0.0112362", "%G", +__LINE__, 1.126804857639478e+29, "1.1268E+29", "%#0.5G", +__LINE__, 1.128962199461581e+11, "1.12896e+11", "%g", +__LINE__, 1.129878714246809e-16, "1E-16", "%0.0G", +__LINE__, 1.130331982972407e-06, "+0.", "%+#1.f", +__LINE__, 1.134167332070028e-16, "0", "%0.0f", +__LINE__, 1.134248080053598e-28, "0.000000", "%f", +__LINE__, 1.136023160708119e-10, "+0.000000", "%+1f", +__LINE__, 1.136167141059036e+23, "113616714105903593434732.101741", "%f", +__LINE__, 1.136439499920164e+10, "+1.13644E+10", "%+G", +__LINE__, 1.136859734932182e+24, "1.13686e+24", "%g", +__LINE__, 1.138985939448731e+09, "1.13899e+09", "%2g", +__LINE__, 1.139287324790407e-25, "1e-25", "%.1g", +__LINE__, 1.140559912153251e+06, "1.14056e+06", "%g", +__LINE__, 1.141318036027086e-26, "1.14132E-26", "%G", +__LINE__, 1.142586049368452e-20, "+1.14259E-20", "%+7.5E", +__LINE__, 1.143283863993333e-17, "1.143284E-17", "%3E", +__LINE__, 1.144637911632432e-28, "1.144638E-28", "%#3E", +__LINE__, 1.145791416532065e-10, "1.14579e-10", "%g", +__LINE__, 1.146958047315780e-17, "1.146958e-17", "%e", +__LINE__, 1.147898346886569e-08, "1E-08", "%3.0E", +__LINE__, 1.149724744965608e-14, "1.14972e-14", "%5g", +__LINE__, 1.155383721940441e-10, "1e-10", "%1.g", +__LINE__, 1.157066617729094e-02, "0", "%1.f", +__LINE__, 1.157893614537215e+05, "1.157894E+05", "%E", +__LINE__, 1.160476344451928e-19, "1.2e-19", "%.1e", +__LINE__, 1.161610499315966e-26, "1.161610E-26", "%E", +__LINE__, 1.162345042181490e+29, "116234504218148981813385489658.685401", "%5.6f", +__LINE__, 1.162376053722862e+23, "1.16238e+23", "%g", +__LINE__, 1.162996084782483e+18, "+1e+18", "%+0.g", +__LINE__, 1.163544861478966e+26, "1.16354E+26", "%G", +__LINE__, 1.167300137450931e+06, "1E+06", "%.0G", +__LINE__, 1.168693829096401e-30, "+1.16869e-30", "%+g", +__LINE__, 1.172791369381396e+15, "1.173E+15", "%.4G", +__LINE__, 1.174427110782028e-29, " 1E-29", "%7.G", +__LINE__, 1.179498322112450e+27, "1179498322112449759657692993.641831", "%f", +__LINE__, 1.179555606293547e+27, "1.17956e+27", "%3g", +__LINE__, 1.180815814881269e+06, "1.180816e+06", "%e", +__LINE__, 1.181494870072805e+20, "1.181495e+20", "%5e", +__LINE__, 1.181524119225619e+12, "+1181524119225.61917", "%+5.5f", +__LINE__, 1.182111212289243e-20, "1e-20", "%4.g", +__LINE__, 1.184503315019769e-27, "1.1845e-27", "%7g", +__LINE__, 1.186413646767670e+29, "1.18641e+29", "%g", +__LINE__, 1.186852938885004e-13, "1.18685e-13", "%4g", +__LINE__, 1.188837612473914e+05, "1e+05", "%.0g", +__LINE__, 1.190317482928293e-29, "1.190317e-29", "%e", +__LINE__, 1.190527491143987e+02, "1.190527E+02", "%E", +__LINE__, 1.191823062060233e-30, "1.2E-30", "%6.2G", +__LINE__, 1.191926974812428e-23, "1.2e-23", "%.2g", +__LINE__, 1.193549622366544e-25, "1E-25", "%4.1G", +__LINE__, 1.195517368629765e-21, "1.195517e-21", "%1.7g", +__LINE__, 1.195573061651289e-27, "1.19557e-27", "%#g", +__LINE__, 1.195806681188325e-03, "+0.00120", "%+#.3G", +__LINE__, 1.196842275192189e-28, "1.19684e-28", "%g", +__LINE__, 1.197307550969576e+04, "1.1973E+04", "%.4E", +__LINE__, 1.197608525847607e+15, "1197608525847606.8062805", "%4.7f", +__LINE__, 1.197801338159407e+04, "11978", "%5G", +__LINE__, 1.197813329735025e+27, "1.19781E+27", "%7G", +__LINE__, 1.199483904123253e-12, "1.19948e-12", "%g", +__LINE__, 1.199535292169766e-09, "1.199535e-09", "%e", +__LINE__, 1.201478067515135e+05, "120147.806752", "%f", +__LINE__, 1.202054662662158e+17, "1.20205E+17", "%#G", +__LINE__, 1.202111922368321e+07, "+1.202112E+07", "%+#E", +__LINE__, 1.202536892743791e-01, "0.120254", "%#g", +__LINE__, 1.205698674119882e-29, "1.2057E-29", "%G", +__LINE__, 1.208091664701942e-13, " 0.", "%#3.f", +__LINE__, 1.208942413954872e-17, "1.20894E-17", "%G", +__LINE__, 1.209704891496613e+10, "1.210e+10", "%2.3e", +__LINE__, 1.211355639334831e+29, "1E+29", "%.0G", +__LINE__, 1.211447553804203e+17, " 1E+17", "%7.E", +__LINE__, 1.212481583429790e-16, "1.212482e-16", "%e", +__LINE__, 1.212849001551862e+26, "121284900155186181613942153.4899157", "%6.7f", +__LINE__, 1.213057538677801e+06, "1213057.538678", "%#.6f", +__LINE__, 1.214609592911893e+25, "1.214610e+25", "%#e", +__LINE__, 1.216086266251665e+01, "1e+01", "%5.e", +__LINE__, 1.216468565931026e-22, "1.216469E-22", "%1E", +__LINE__, 1.216503126598765e+14, "+1E+14", "%+0.E", +__LINE__, 1.216641013695553e-14, "0.000000", "%f", +__LINE__, 1.223142246779504e-23, "0.000000", "%f", +__LINE__, 1.223884786443274e+08, "122388479", "%5.f", +__LINE__, 1.224012562770076e+29, "1.22401e+29", "%0g", +__LINE__, 1.225098157528297e+14, "1.22510e+14", "%#g", +__LINE__, 1.226306848505242e-22, "1.22631E-22", "%G", +__LINE__, 1.227487485547996e-08, "+1.22749e-08", "%+g", +__LINE__, 1.237206486909689e+02, "+123.721", "%+#.6g", +__LINE__, 1.240281126177077e-02, "+0.01", "%+3.g", +__LINE__, 1.241197211306994e-06, "1.241197E-06", "%E", +__LINE__, 1.241776311097410e+07, "1.241776E+07", "%E", +__LINE__, 1.245995986024999e-03, "0.001246", "%g", +__LINE__, 1.246082428199607e+03, "1246.082428", "%f", +__LINE__, 1.247021567954220e+05, " 1e+05", "%7.g", +__LINE__, 1.248140089618390e-30, "+1.24814E-30", "%+G", +__LINE__, 1.248403361652064e-30, "+0.000000", "%+f", +__LINE__, 1.251098538918842e-26, "+1.251099E-26", "%+E", +__LINE__, 1.251952633022061e+25, "1.25195e+25", "%g", +__LINE__, 1.253029705843461e-04, "+1.E-04", "%+#4.E", +__LINE__, 1.259562132729488e-09, "1e-09", "%1.e", +__LINE__, 1.261702205492260e-27, "0.000000", "%f", +__LINE__, 1.265910361926660e-19, "+1.265910e-19", "%+e", +__LINE__, 1.267411912651087e+12, "1.26741E+12", "%1G", +__LINE__, 1.267830718285980e-10, "1.26783e-10", "%g", +__LINE__, 1.268238378987517e-23, "1E-23", "%5.E", +__LINE__, 1.275543253354167e+10, "1.27554E+10", "%G", +__LINE__, 1.277255234454465e-10, "1.27726E-10", "%5G", +__LINE__, 1.280590949834150e-21, "1.280591E-21", "%E", +__LINE__, 1.285570453788242e-02, "1.285570E-02", "%E", +__LINE__, 1.287712130719031e+09, "1287712130.719031", "%#f", +__LINE__, 1.290142876187105e+29, "+1.290143E+29", "%+E", +__LINE__, 1.293129213191961e+21, "1.29313E+21", "%G", +__LINE__, 1.293317101334714e-23, "+0.000000", "%+f", +__LINE__, 1.294506813069071e-13, "0.0", "%3.1f", +__LINE__, 1.295576232685739e-22, "+0.000000", "%+f", +__LINE__, 1.296010470431800e-19, "+0.000000", "%+6f", +__LINE__, 1.298798231947674e+19, "1.2988E+19", "%2G", +__LINE__, 1.299521114379381e+09, "1.29952E+09", "%G", +__LINE__, 1.299847637892712e+24, "1.299848e+24", "%e", +__LINE__, 1.301269777843698e+29, "130126977784369834978406288428.232074", "%f", +__LINE__, 1.302911786437618e-15, " 0", "%6.f", +__LINE__, 1.303863159906719e+27, "1303863159906719415559450681", "%0.f", +__LINE__, 1.304396472326846e-12, "+1E-12", "%+1.0G", +__LINE__, 1.306180443528427e-30, "+1e-30", "%+.1g", +__LINE__, 1.308469138968514e+22, "1.30847E+22", "%0G", +__LINE__, 1.312700156826057e-11, "1.3127e-11", "%g", +__LINE__, 1.315364075120764e+21, "+1.31536E+21", "%+G", +__LINE__, 1.320376485288444e-09, "+1.3204E-09", "%+6.5G", +__LINE__, 1.321434154364635e-08, "1.32143e-08", "%1g", +__LINE__, 1.322777272579176e+19, "+1e+19", "%+3.e", +__LINE__, 1.322861663428564e+00, "1.322862E+00", "%#E", +__LINE__, 1.323566013489230e+14, "+1.323566E+14", "%+1E", +__LINE__, 1.327446904132973e-20, "+1.32745E-20", "%+4.6G", +__LINE__, 1.328226362528158e+19, "1e+19", "%2.g", +__LINE__, 1.329167460803610e+08, "1e+08", "%3.g", +__LINE__, 1.335371420823160e+14, "1.33537E+14", "%7G", +__LINE__, 1.336116185095935e-21, "0.000000", "%f", +__LINE__, 1.338766774704671e-22, "+1.33877e-22", "%+g", +__LINE__, 1.339199373014647e-12, "1E-12", "%1.E", +__LINE__, 1.344293357481519e+26, "134429335748151945750805680.290796", "%#2f", +__LINE__, 1.344328188122843e+29, "1.34433e+29", "%g", +__LINE__, 1.344382581316972e-05, "1E-05", "%5.0E", +__LINE__, 1.349835616116184e+11, "134983561611.6", "%2.1f", +__LINE__, 1.349955669989707e+20, "134995566998970728533.890906", "%7f", +__LINE__, 1.350230411093841e+20, "135023041109384145386.229648", "%f", +__LINE__, 1.353391369565576e+10, " 1E+10", "%7.1G", +__LINE__, 1.356889483699471e+22, "+1.35689E+22", "%+G", +__LINE__, 1.358141775798243e+24, "+1358141775798242578687791.137781", "%+f", +__LINE__, 1.358547541975523e-15, "1.35855e-15", "%g", +__LINE__, 1.363402539800791e+11, "1.3634E+11", "%G", +__LINE__, 1.363676837988798e+16, "+13636768379887982.4053", "%+2.4f", +__LINE__, 1.364592026494839e-24, "1.36459e-24", "%g", +__LINE__, 1.366664212399413e-09, "+1E-09", "%+6.G", +__LINE__, 1.367446193117463e-17, "1.3674e-17", "%2.4e", +__LINE__, 1.368681648785823e-18, "1.36868E-18", "%3G", +__LINE__, 1.370635189583606e+05, "1.370635E+05", "%E", +__LINE__, 1.371395540772186e-18, "+1.371396e-18", "%+e", +__LINE__, 1.371945318043159e+10, "1E+10", "%0.E", +__LINE__, 1.373780604772988e-21, "1e-21", "%3.g", +__LINE__, 1.374244970441862e-28, "0.000000", "%7.6f", +__LINE__, 1.375874695067149e-25, "1.37587E-25", "%#3G", +__LINE__, 1.377165614832621e+20, "1.37717E+20", "%#G", +__LINE__, 1.381541864946684e-09, "1.38154E-09", "%G", +__LINE__, 1.382901694835415e+00, "1.382902E+00", "%E", +__LINE__, 1.384250577530184e-21, "1.384e-21", "%.4g", +__LINE__, 1.385322753374640e-03, " 1E-03", "%6.E", +__LINE__, 1.387026156054724e+19, "1.387026E+19", "%E", +__LINE__, 1.388726735790498e-27, "+1.388727E-27", "%+E", +__LINE__, 1.388819105742044e+16, "1.38882e+16", "%g", +__LINE__, 1.389941086024951e-19, "0.000000", "%f", +__LINE__, 1.390101174785536e+25, "1.3901E+25", "%G", +__LINE__, 1.392210785638597e+24, "+1.39221E+24", "%+G", +__LINE__, 1.396148856283474e-26, "1.4e-26", "%7.3g", +__LINE__, 1.398153728631994e-21, "1.39815E-21", "%G", +__LINE__, 1.398332446762342e-14, "+1.39833E-14", "%+5G", +__LINE__, 1.400250919607987e+10, "1.40025E+10", "%G", +__LINE__, 1.400662469019739e+03, "1.E+03", "%#0.0E", +__LINE__, 1.401720273747805e-12, "0.000000", "%#f", +__LINE__, 1.402151358748719e+22, "1.402151e+22", "%e", +__LINE__, 1.402351913752357e-28, "1.40235E-28", "%#1.6G", +__LINE__, 1.403285877973810e+13, "+14032858779738.097255", "%+4f", +__LINE__, 1.404540981735861e+04, "14045.409817", "%4f", +__LINE__, 1.406420622355064e+19, "1.40642E+19", "%G", +__LINE__, 1.412552725962301e-29, "+1e-29", "%+1.e", +__LINE__, 1.413266982485044e+10, "1.41327e+10", "%g", +__LINE__, 1.413627189411456e+21, "1.41363E+21", "%0G", +__LINE__, 1.416647216002592e-25, "+0.000000", "%+#f", +__LINE__, 1.417107155080584e-10, "1e-10", "%1.e", +__LINE__, 1.418829895346648e+19, "14188298953466484952.912197", "%f", +__LINE__, 1.419404559267523e-11, "1.4194e-11", "%g", +__LINE__, 1.422421321425472e+15, "1.422421E+15", "%E", +__LINE__, 1.424858902008998e+18, "1.42486E+18", "%2.5E", +__LINE__, 1.428863051254205e+22, "1.428863e+22", "%e", +__LINE__, 1.429533727936725e-02, "0.0142953", "%g", +__LINE__, 1.430982219743369e-19, " 1E-19", "%6.G", +__LINE__, 1.431974118434703e+17, "1E+17", "%3.G", +__LINE__, 1.432418341970152e+16, "+1.432418e+16", "%+5e", +__LINE__, 1.433470281650523e+04, "14334.7", "%g", +__LINE__, 1.434446243424653e+24, " +1e+24", "%+7.g", +__LINE__, 1.435118019241039e+24, "+1e+24", "%+4.g", +__LINE__, 1.435691648420278e-01, "0.1435692", "%#4.7g", +__LINE__, 1.437569598098744e+27, "1.437570E+27", "%#E", +__LINE__, 1.437633484061726e-25, "+1.43763e-25", "%+7g", +__LINE__, 1.437866591230707e-13, "1.43787e-13", "%g", +__LINE__, 1.440593154445915e-01, "+0.144059", "%+1G", +__LINE__, 1.441368205977342e+16, "1.441368E+16", "%#E", +__LINE__, 1.441825266684367e+28, "1.44183e+28", "%g", +__LINE__, 1.442374183199456e+20, "1.442374E+20", "%E", +__LINE__, 1.445101893951061e-24, "0", "%0.f", +__LINE__, 1.446037835160094e-20, "+1.44604E-20", "%+2G", +__LINE__, 1.449245376093616e+04, "1.449245e+04", "%e", +__LINE__, 1.454126845620100e+09, "1.45413E+09", "%G", +__LINE__, 1.455764608801107e+09, "1.5e+09", "%6.1e", +__LINE__, 1.457176183149955e-12, "1.45718e-12", "%#g", +__LINE__, 1.458821535020046e-05, "1.45882e-05", "%#g", +__LINE__, 1.460179141161202e-19, "1.460179E-19", "%#E", +__LINE__, 1.461701055446198e-20, "1.461701e-20", "%#2.7g", +__LINE__, 1.462408181482172e+10, "1.4624082E+10", "%3.7E", +__LINE__, 1.463706296748154e+24, "1e+24", "%2.g", +__LINE__, 1.464891255780761e-19, "+1.46489e-19", "%+g", +__LINE__, 1.467903978945872e+25, "1.4679E+25", "%G", +__LINE__, 1.468585992857062e+22, "14685859928570619281629.205943", "%f", +__LINE__, 1.469803528668286e+29, "+1E+29", "%+6.G", +__LINE__, 1.469883002609266e-23, "1.E-23", "%#2.E", +__LINE__, 1.469941481858809e+08, "+146994148.185881", "%+f", +__LINE__, 1.470744493304611e+13, "1.47074e+13", "%g", +__LINE__, 1.471857261085004e+23, "1E+23", "%2.G", +__LINE__, 1.474419778873037e+06, "1474419.7789", "%#.4f", +__LINE__, 1.483134762223381e-03, "0", "%0.0f", +__LINE__, 1.483575501240724e-13, "1.48358e-13", "%g", +__LINE__, 1.486068112294452e+20, "1.486068e+20", "%e", +__LINE__, 1.488665528787761e-03, " +0", "%+4.f", +__LINE__, 1.492145267536713e+07, "14921452.675367", "%f", +__LINE__, 1.492589762884761e-01, "0.149259", "%f", +__LINE__, 1.494784286168215e+01, "1.494784E+01", "%E", +__LINE__, 1.495945331501655e+04, "1.5e+04", "%.2g", +__LINE__, 1.501383201904700e+14, "2e+14", "%1.g", +__LINE__, 1.501387105011959e-02, "0.0150139", "%g", +__LINE__, 1.505784488562271e+26, "1.50578e+26", "%5g", +__LINE__, 1.506367986495534e+10, "1.50637e+10", "%2g", +__LINE__, 1.507421710226296e+19, "1.507422E+19", "%#E", +__LINE__, 1.507960881206134e+16, "2e+16", "%.0g", +__LINE__, 1.508974301049424e+14, "+1.508974E+14", "%+E", +__LINE__, 1.509204025111090e-18, "1.509204E-18", "%E", +__LINE__, 1.511351799767759e+21, "1511351799767759462866.93397", "%.5f", +__LINE__, 1.511712197184520e-06, "+1.51171e-06", "%+1g", +__LINE__, 1.514703727491400e+02, "151.47", "%.5g", +__LINE__, 1.514855355408287e+04, "15148.6", "%g", +__LINE__, 1.516256896575301e+06, "1.516257e+06", "%.6e", +__LINE__, 1.517712083681069e+14, "1.51771e+14", "%0g", +__LINE__, 1.522102209167607e-18, "1.52210e-18", "%#g", +__LINE__, 1.526264862895663e-12, "0.000000", "%f", +__LINE__, 1.527165480858125e+10, "1.527e+10", "%.4g", +__LINE__, 1.528363280308369e+00, "+1.52836", "%+0G", +__LINE__, 1.529108490733420e-22, "1.529108E-22", "%E", +__LINE__, 1.529783364474522e+19, "15297833644745216119.531506", "%7f", +__LINE__, 1.530698363199346e-01, "0.1531", "%#.4f", +__LINE__, 1.531520796537450e+22, "1.53152E+22", "%G", +__LINE__, 1.533314559644813e+06, "+1533314.559645", "%+f", +__LINE__, 1.534682791112854e+01, "+15.3468", "%+0G", +__LINE__, 1.534714026386730e-11, "0.000000", "%f", +__LINE__, 1.537145729498115e+00, "1.537146E+00", "%E", +__LINE__, 1.538740040875751e-23, "1.538740E-23", "%E", +__LINE__, 1.546248240596482e-03, "0.001546", "%f", +__LINE__, 1.546808012239302e-09, "+1.54681E-09", "%+G", +__LINE__, 1.546903877359107e+06, "1.5e+06", "%.2g", +__LINE__, 1.550153973747718e-18, "2e-18", "%.0g", +__LINE__, 1.551703460384378e+00, "+1.5517", "%+.4f", +__LINE__, 1.553995673101369e+29, "1.554E+29", "%G", +__LINE__, 1.555477017531899e+28, "1.55548e+28", "%g", +__LINE__, 1.555548963448462e+12, "1555548963448.46227", "%6.5f", +__LINE__, 1.558702451007712e+16, "2e+16", "%5.1g", +__LINE__, 1.561641587723724e+29, "1.561642e+29", "%e", +__LINE__, 1.561868589559509e-05, "1.56187E-05", "%G", +__LINE__, 1.565229056438949e+13, "1.56523e+13", "%1.6g", +__LINE__, 1.570074406600442e+14, "+1.57007E+14", "%+4G", +__LINE__, 1.570951909913194e+13, "1.57095E+13", "%.6G", +__LINE__, 1.572186421520727e-30, "+1.57219e-30", "%+g", +__LINE__, 1.574374582066945e+12, "1.57e+12", "%5.2e", +__LINE__, 1.577789404823585e+12, "1.577789E+12", "%E", +__LINE__, 1.579641278389186e+04, "15796.413", "%7.3f", +__LINE__, 1.581602330975388e+17, "1.5816E+17", "%#.5G", +__LINE__, 1.587809692297490e-18, "+1.58781e-18", "%+2g", +__LINE__, 1.588672954832388e-05, "1.58867E-05", "%G", +__LINE__, 1.594548954259978e+25, "+1.595e+25", "%+.3e", +__LINE__, 1.596653742160718e+10, "15966537421.6072", "%.4f", +__LINE__, 1.597416186584641e+25, "1.59742e+25", "%g", +__LINE__, 1.597810706039500e-04, "0.000159781", "%g", +__LINE__, 1.601425691153542e+01, "16.0143", "%G", +__LINE__, 1.601491150913706e-15, "+1.60149e-15", "%+g", +__LINE__, 1.609357026469645e+02, "160.936", "%0g", +__LINE__, 1.611064881461188e+06, "+1.611065E+06", "%+E", +__LINE__, 1.611324319640770e-03, "0.00161132", "%G", +__LINE__, 1.613202907940803e+19, "1.6E+19", "%#.1E", +__LINE__, 1.613883500056636e-12, "0.000000", "%5f", +__LINE__, 1.618254213010772e+07, "16182542.130108", "%6f", +__LINE__, 1.620441271211248e-08, "1.62044E-08", "%0G", +__LINE__, 1.622548435024803e-01, "+0.162255", "%+5G", +__LINE__, 1.623740394555269e+19, "16237403945552689066.289531", "%3f", +__LINE__, 1.625774250389937e+18, "1.625774e+18", "%1e", +__LINE__, 1.626300864432426e-02, "0.016263", "%G", +__LINE__, 1.626351146877694e-11, "1.6263511e-11", "%2.7e", +__LINE__, 1.626568757587995e+25, "16265687575879949733348439.62220", "%6.5f", +__LINE__, 1.626717482094360e-28, "+1.626717e-28", "%+3e", +__LINE__, 1.630801585998995e-28, "1.6308e-28", "%0g", +__LINE__, 1.631827173682962e+03, "1632", "%1.4g", +__LINE__, 1.631907571243379e+18, "1631907571243378818.337533", "%f", +__LINE__, 1.632058420447239e-14, " +2E-14", "%+7.G", +__LINE__, 1.632847882621240e+18, "+1.63285E+18", "%+2G", +__LINE__, 1.637329146233172e-09, "+1.63733e-09", "%+g", +__LINE__, 1.638315287442427e-16, "+1.63832E-16", "%+G", +__LINE__, 1.641284849351445e+15, "1641284849351445.096488", "%f", +__LINE__, 1.644871927486929e+10, "2e+10", "%1.e", +__LINE__, 1.645917293047431e-19, "1.64592e-19", "%.6g", +__LINE__, 1.649201265647819e-07, "0.000000", "%f", +__LINE__, 1.650169065733559e+23, "165016906573355903731226.135278", "%3f", +__LINE__, 1.651217291298196e-30, "2E-30", "%4.G", +__LINE__, 1.652680660160331e+08, "2.e+08", "%#3.g", +__LINE__, 1.654171892948767e-15, "1.65417e-15", "%g", +__LINE__, 1.655435863725412e+17, "+1.655436e+17", "%+#e", +__LINE__, 1.656015606204101e+28, "+1.7E+28", "%+3.2G", +__LINE__, 1.656814723110478e-21, "+0.000000", "%+f", +__LINE__, 1.658632655199721e-19, "2.E-19", "%#4.G", +__LINE__, 1.659915061311444e+27, "1.66E+27", "%.3G", +__LINE__, 1.664258574522914e-29, "+1.664259E-29", "%+E", +__LINE__, 1.667662840654469e-28, "+2e-28", "%+0.g", +__LINE__, 1.673124993246863e-25, "+0.000000", "%+f", +__LINE__, 1.677788498058833e-20, "1.678e-20", "%.4g", +__LINE__, 1.681211731173386e-07, "1.68121e-07", "%0.6g", +__LINE__, 1.686341560076196e+02, "169", "%.0f", +__LINE__, 1.686507685287281e+08, "1.686508E+08", "%E", +__LINE__, 1.689500448795801e+03, "+1689.500449", "%+0f", +__LINE__, 1.690639426041009e-13, "2e-13", "%5.0g", +__LINE__, 1.691554939595928e+16, "+1.6916e+16", "%+.5g", +__LINE__, 1.698597126229626e-09, "1.699e-09", "%3.4g", +__LINE__, 1.700093083173516e+16, "17000930831735159", "%5.f", +__LINE__, 1.703653732982710e+13, "+1.70365e+13", "%+g", +__LINE__, 1.705353380573352e-16, "0.000000", "%f", +__LINE__, 1.705973328700179e-26, "1.70597e-26", "%5g", +__LINE__, 1.717797289369145e+22, "+1.717797E+22", "%+7E", +__LINE__, 1.722819196705361e-28, "1.722819E-28", "%1.7G", +__LINE__, 1.723775772891202e+01, "17.237758", "%f", +__LINE__, 1.723787102325353e-23, "0.000000", "%2f", +__LINE__, 1.724551301171870e-13, "0.000000", "%f", +__LINE__, 1.726098078655758e-20, "0.0000000", "%7.7f", +__LINE__, 1.726302822039762e+18, "+2E+18", "%+1.G", +__LINE__, 1.726659209108151e+18, "+1.72666E+18", "%+6G", +__LINE__, 1.728324925097269e-25, "1.728325e-25", "%7e", +__LINE__, 1.728357491215602e+02, "172.836", "%G", +__LINE__, 1.729612227517587e+22, "1.729612e+22", "%e", +__LINE__, 1.731753104740805e-06, "1.73175e-06", "%2g", +__LINE__, 1.736066279733589e+18, "+1.736066E+18", "%+3E", +__LINE__, 1.736626769480182e-19, "2e-19", "%.0g", +__LINE__, 1.737445267713118e-13, " 2e-13", "%7.g", +__LINE__, 1.739264683023077e+05, "173926.468302", "%f", +__LINE__, 1.739423702667596e-16, "+1.73942e-16", "%+g", +__LINE__, 1.741053616961658e-14, "1.74105E-14", "%G", +__LINE__, 1.741085952255057e+29, "1.7e+29", "%#.1e", +__LINE__, 1.743673705633426e+03, "2E+03", "%5.0G", +__LINE__, 1.750940899205665e+27, "1.75094e+27", "%g", +__LINE__, 1.753871003884151e-26, "0.", "%#.0f", +__LINE__, 1.755237470854478e-14, "1.755237e-14", "%4e", +__LINE__, 1.757491419837315e-03, "0.002", "%1.G", +__LINE__, 1.758657797688126e+26, "+1.75866E+26", "%+#G", +__LINE__, 1.760491452270889e+08, "1.76049E+08", "%G", +__LINE__, 1.760816275862939e-10, "2e-10", "%.1g", +__LINE__, 1.760905893493003e-22, "1.76e-22", "%.2e", +__LINE__, 1.762101125986743e-12, "2e-12", "%.0g", +__LINE__, 1.763855968659571e+27, "1.763856E+27", "%E", +__LINE__, 1.764595217341348e-13, "1.764595E-13", "%E", +__LINE__, 1.766737296048445e+08, "+1.77e+08", "%+.3g", +__LINE__, 1.769916386969961e-05, "+1.76992e-05", "%+g", +__LINE__, 1.773873506344176e-01, "1.773874e-01", "%e", +__LINE__, 1.775392554371421e+03, "+1775.39", "%+3.2f", +__LINE__, 1.776007623006870e+24, "1776007623006870161930237.372871", "%f", +__LINE__, 1.777418921678653e-27, " 0", "%6.f", +__LINE__, 1.780967607234234e-18, "1.780968E-18", "%E", +__LINE__, 1.782510583486435e+24, "+2e+24", "%+3.g", +__LINE__, 1.784002921603004e+14, "1.784E+14", "%G", +__LINE__, 1.784231151778382e+11, "1.7842E+11", "%.5G", +__LINE__, 1.785589091453195e+02, " 179.", "%#5.f", +__LINE__, 1.786402639400039e+19, "2e+19", "%0.g", +__LINE__, 1.786506485794647e-25, "2E-25", "%.1G", +__LINE__, 1.787513971482493e-04, "+0.000178751", "%+G", +__LINE__, 1.799765409320039e+23, "179976540932003885586710", "%6.0f", +__LINE__, 1.800451864218989e+08, "+1.80045e+08", "%+g", +__LINE__, 1.800743538258572e+04, " +18007", "%+7.f", +__LINE__, 1.801583764453362e+25, "1.8016e+25", "%0.5g", +__LINE__, 1.804502093739547e+14, "2e+14", "%2.g", +__LINE__, 1.805600104488678e-17, "1.805600E-17", "%E", +__LINE__, 1.811342448081048e+17, "1.811342e+17", "%.6e", +__LINE__, 1.812252160066930e+19, "2e+19", "%0.e", +__LINE__, 1.816287564395273e+02, "182", "%2.f", +__LINE__, 1.817097386762552e-13, "2E-13", "%3.1G", +__LINE__, 1.817881381387254e+06, "1.81788E+06", "%G", +__LINE__, 1.818416380830953e-30, "1.81842E-30", "%G", +__LINE__, 1.824788290177454e-23, "1.82479e-23", "%g", +__LINE__, 1.827832506678437e-18, "1.82783E-18", "%G", +__LINE__, 1.828048053242609e+01, "18.2805", "%g", +__LINE__, 1.828939681844203e-21, "1.82894E-21", "%.6G", +__LINE__, 1.829763900251753e+12, "1829763900251.752773", "%1f", +__LINE__, 1.833100407114602e-05, "0.000018", "%#f", +__LINE__, 1.833672780034284e-07, "1.833673e-07", "%e", +__LINE__, 1.834307692387540e+21, "2E+21", "%5.G", +__LINE__, 1.835119931666753e+14, "+1.835120e+14", "%+e", +__LINE__, 1.835956566920861e-26, "0.000000", "%#f", +__LINE__, 1.837784131899354e+22, "1.83778E+22", "%G", +__LINE__, 1.842867094224664e-09, "1.84287e-09", "%g", +__LINE__, 1.844234823805319e+28, "2E+28", "%1.G", +__LINE__, 1.844877682008962e+12, "1.84488e+12", "%g", +__LINE__, 1.846530424340488e-22, "1.846530e-22", "%#.7g", +__LINE__, 1.849111603036448e-08, "0.00", "%.2f", +__LINE__, 1.850158752678734e+04, "+18502", "%+.5G", +__LINE__, 1.851431391104701e-06, " +2e-06", "%+7.e", +__LINE__, 1.851487430609031e-04, "0.000185149", "%G", +__LINE__, 1.853171650128773e+03, "1853.17", "%G", +__LINE__, 1.854743263740068e-16, "1.854743E-16", "%6.6E", +__LINE__, 1.864399020932753e-11, "+0.000000", "%+f", +__LINE__, 1.865028568072397e-22, "1.86503E-22", "%.6G", +__LINE__, 1.868128423759223e+14, "1.86813E+14", "%4G", +__LINE__, 1.868453558435480e+21, "1.86845E+21", "%G", +__LINE__, 1.870663011627498e-06, "1.87E-06", "%.3G", +__LINE__, 1.873273487748907e+17, "+1.873273E+17", "%+E", +__LINE__, 1.878885220839805e-04, "0.000187889", "%G", +__LINE__, 1.879102515623569e+17, "1.8791e+17", "%g", +__LINE__, 1.889343972100858e-10, "2E-10", "%2.E", +__LINE__, 1.891833282879762e-24, "+2e-24", "%+.1g", +__LINE__, 1.895148778941240e-07, "0.000000", "%0f", +__LINE__, 1.896950834067578e-28, "+1.89695e-28", "%+#g", +__LINE__, 1.898464546986629e-05, "1.898465e-05", "%.7g", +__LINE__, 1.900851427578321e-19, "1.90085e-19", "%6g", +__LINE__, 1.901171344577750e+27, "1.901171e+27", "%7.7g", +__LINE__, 1.903563335316359e+02, "190.356", "%0g", +__LINE__, 1.903817306004701e-16, "+1.90e-16", "%+#6.2e", +__LINE__, 1.910606410246797e+21, "1.91061E+21", "%2.5E", +__LINE__, 1.912537759564710e+29, "1.91254E+29", "%G", +__LINE__, 1.913606675894566e+27, "1.91361E+27", "%7.6G", +__LINE__, 1.916473734025505e-05, " 2e-05", "%7.g", +__LINE__, 1.916507511720523e+23, "+2E+23", "%+.0E", +__LINE__, 1.917688262248837e-28, "1.918e-28", "%.4g", +__LINE__, 1.921375594217083e-12, "1.92138E-12", "%G", +__LINE__, 1.923916000932815e-25, "1.92392E-25", "%G", +__LINE__, 1.926303652776462e-01, "+0.2", "%+0.G", +__LINE__, 1.929411084211293e+21, "1.92941E+21", "%6G", +__LINE__, 1.929996820297491e-26, "1.93e-26", "%.6g", +__LINE__, 1.937301472034748e-29, "1.9373E-29", "%G", +__LINE__, 1.937301660220894e-11, "+1.9373E-11", "%+G", +__LINE__, 1.939038538587083e-02, "0.0193904", "%g", +__LINE__, 1.940575489112444e-09, "1.94058E-09", "%G", +__LINE__, 1.946550455606677e-26, "1.946550E-26", "%#1E", +__LINE__, 1.954250777559491e-14, "1.95425E-14", "%G", +__LINE__, 1.955646327688473e-16, "1.956E-16", "%#.3E", +__LINE__, 1.956999911995683e+20, "2E+20", "%2.G", +__LINE__, 1.959125254298784e-21, "1.95913E-21", "%#G", +__LINE__, 1.960330340481290e+26, "1.96033e+26", "%.6g", +__LINE__, 1.964156478075422e+01, "+19.6416", "%+g", +__LINE__, 1.964702507676036e+19, "2.0e+19", "%2.1e", +__LINE__, 1.965762191674409e-30, "2E-30", "%1.G", +__LINE__, 1.967492699686803e-29, "+1.967493E-29", "%+#E", +__LINE__, 1.970072604062236e-11, "+1.97007E-11", "%+G", +__LINE__, 1.975631055550387e+05, "197563.105555", "%.6f", +__LINE__, 1.975722425389177e+28, "+1.975722e+28", "%+5.6e", +__LINE__, 1.977938328895365e-05, " 2e-05", "%6.e", +__LINE__, 1.981950849019640e+13, "1.981951E+13", "%E", +__LINE__, 1.982543168856985e-26, "1.98254e-26", "%4g", +__LINE__, 1.984873317384181e-20, "1.98487E-20", "%4G", +__LINE__, 1.986146420877074e+02, "+1.986146e+02", "%+0e", +__LINE__, 1.986465942785167e-28, "1.98647e-28", "%g", +__LINE__, 1.988250323235468e-05, " +0", "%+7.f", +__LINE__, 1.989966623080645e-09, "1.989967e-09", "%e", +__LINE__, 1.991243122514519e+11, "199124312251", "%5.f", +__LINE__, 1.993287894645908e+25, "+1.993288E+25", "%+E", +__LINE__, 1.995172329888890e-30, "+1.99517e-30", "%+3g", +__LINE__, 1.997075127236432e+05, "1.997E+05", "%#.4G", +__LINE__, 2.000651599487290e+04, "2E+04", "%2.E", +__LINE__, 2.001429412876339e-28, "0.000000", "%6f", +__LINE__, 2.003535646264196e+03, " 2E+03", "%7.G", +__LINE__, 2.011751504116246e+06, "2E+06", "%2.G", +__LINE__, 2.016361237694652e-30, "2.01636e-30", "%4g", +__LINE__, 2.018266414065554e-08, "0.00", "%2.2f", +__LINE__, 2.020706780608565e+03, "2E+03", "%.0G", +__LINE__, 2.025098418552005e-16, "+2.025098E-16", "%+2E", +__LINE__, 2.026100592518976e-11, "2.026101e-11", "%6e", +__LINE__, 2.026167291572980e+11, "2.02617E+11", "%G", +__LINE__, 2.026782170272331e+07, "2.026782E+07", "%E", +__LINE__, 2.029133469449347e-06, " 2e-06", "%6.g", +__LINE__, 2.031191570768443e-20, "2.031192E-20", "%2.7G", +__LINE__, 2.031884221862863e-16, "2.031884e-16", "%e", +__LINE__, 2.032992924118323e+29, "203299292411832333016263874014.84", "%#0.2f", +__LINE__, 2.035799610097827e+28, "+20357996100978272835391180706.2104344", "%+3.7f", +__LINE__, 2.038008183612069e+25, "20380081836120691463065668", "%7.0f", +__LINE__, 2.041632205119365e-22, "+2.04163e-22", "%+g", +__LINE__, 2.042769811159352e-10, "2e-10", "%.1g", +__LINE__, 2.043034975847005e-08, "2.043035e-08", "%e", +__LINE__, 2.045930666285880e+26, "2.04593e+26", "%g", +__LINE__, 2.048377276651386e-21, "0.00000", "%2.5f", +__LINE__, 2.051785787301292e-23, "0.000000", "%f", +__LINE__, 2.055085792048183e-10, "0.000000", "%f", +__LINE__, 2.055783028451040e-21, "+0", "%+1.f", +__LINE__, 2.057641607509489e-17, "+2E-17", "%+2.G", +__LINE__, 2.058348703001600e-15, "2.05835E-15", "%#G", +__LINE__, 2.059594758787322e+24, "2.05959E+24", "%1G", +__LINE__, 2.062710740295018e+01, "20.6271", "%G", +__LINE__, 2.063240676447750e-11, "0.000000", "%f", +__LINE__, 2.063799238238917e-09, "+0.000000", "%+f", +__LINE__, 2.064564135160425e-17, "2.06456E-17", "%G", +__LINE__, 2.066363476927650e-05, "2.07E-05", "%.3G", +__LINE__, 2.066871450514214e-02, "+2.066871e-02", "%+e", +__LINE__, 2.067258256169148e+07, "2.06726e+07", "%g", +__LINE__, 2.068466590729350e-22, "0.0000", "%.4f", +__LINE__, 2.068779510112540e-26, "2.06878e-26", "%g", +__LINE__, 2.069258770387493e+19, "20692587703874929516.700831", "%3f", +__LINE__, 2.069547778447951e+26, "2.069548e+26", "%6e", +__LINE__, 2.070479507710941e-23, "2.07048E-23", "%G", +__LINE__, 2.071809640061785e+22, "2.071810E+22", "%E", +__LINE__, 2.073364463564950e-06, "2.07336e-06", "%g", +__LINE__, 2.073478953644888e-10, "+2.07E-10", "%+.3G", +__LINE__, 2.076039194312519e+12, "2.07604E+12", "%G", +__LINE__, 2.081490398946229e-07, "+2.08149e-07", "%+g", +__LINE__, 2.084941170287895e-07, "2.084941E-07", "%7E", +__LINE__, 2.087035885023382e-18, "+0.000000", "%+f", +__LINE__, 2.091025884363342e-09, "2.09103E-09", "%G", +__LINE__, 2.091830555397864e+08, "209183056", "%0.f", +__LINE__, 2.091998109232084e-22, "0.000000", "%#f", +__LINE__, 2.093406473464940e-17, "2.09341e-17", "%g", +__LINE__, 2.094646724039720e-26, "2.094647e-26", "%0.7g", +__LINE__, 2.095218667083208e-22, "2.09522e-22", "%.5e", +__LINE__, 2.096932364992728e-27, "2.1E-27", "%.2G", +__LINE__, 2.097012452732083e+17, "2.09701E+17", "%G", +__LINE__, 2.102022216908102e-07, "0.000000", "%f", +__LINE__, 2.104648382618938e-04, "0.00021", "%.3G", +__LINE__, 2.109159578853690e-19, "2.10916e-19", "%6g", +__LINE__, 2.111732624641178e-13, "+2.111733E-13", "%+7.7G", +__LINE__, 2.112676138351330e+21, " 2e+21", "%6.g", +__LINE__, 2.117332904051741e-09, "+0.000000", "%+f", +__LINE__, 2.118001353767757e-14, "2.118E-14", "%4.3E", +__LINE__, 2.119413720893955e+12, "2.119414E+12", "%.7G", +__LINE__, 2.119610992647014e+07, "+21196109.9265", "%+.4f", +__LINE__, 2.120504022069221e+25, "21205040220692210617414730.223", "%#.3f", +__LINE__, 2.120634617123718e-16, "2.120635e-16", "%#e", +__LINE__, 2.128702437175385e+12, "2128702437175.385", "%.3f", +__LINE__, 2.131148830213536e-12, "2.131149e-12", "%e", +__LINE__, 2.132682622145255e+04, "+21326.83", "%+#5.7G", +__LINE__, 2.133864841676473e-01, " +0.2", "%+6.g", +__LINE__, 2.133939058496273e+16, "2E+16", "%4.G", +__LINE__, 2.135087006806302e-24, "0.000000", "%f", +__LINE__, 2.138983961194584e-20, "+2.138984e-20", "%+7e", +__LINE__, 2.146534189669224e+17, "+2.147E+17", "%+.4G", +__LINE__, 2.147375595676503e+09, "2.147376e+09", "%e", +__LINE__, 2.152994986418075e+02, "2E+02", "%0.E", +__LINE__, 2.154127135896811e+06, "2.15E+06", "%2.3G", +__LINE__, 2.154613053892588e-29, "2.1546E-29", "%.4E", +__LINE__, 2.160830430730653e-12, "2.16083E-12", "%#G", +__LINE__, 2.161740591663027e+28, "2.161741e+28", "%e", +__LINE__, 2.167181665934011e-06, "2e-06", "%1.e", +__LINE__, 2.167348761729060e-04, "2.167349e-04", "%#e", +__LINE__, 2.170270852816708e-10, "2.17027E-10", "%0G", +__LINE__, 2.173048229189370e-06, "2.173e-06", "%.5g", +__LINE__, 2.175554537855024e+10, "2.17555E+10", "%G", +__LINE__, 2.177447372527968e-30, "+0.000000", "%+.6f", +__LINE__, 2.178591661569858e+05, "2.1786e+05", "%1.5g", +__LINE__, 2.184700207174818e-29, "0.000000", "%f", +__LINE__, 2.190817031437247e+03, "2.E+03", "%#3.0E", +__LINE__, 2.191396212145558e-01, "2.191E-01", "%6.3E", +__LINE__, 2.191786353372880e-23, "2.19179e-23", "%.5e", +__LINE__, 2.193471126151079e+19, "2.1935E+19", "%.4E", +__LINE__, 2.194750177630526e-15, "2.194750e-15", "%e", +__LINE__, 2.196145170358973e+05, "+219615", "%+g", +__LINE__, 2.199602360934320e-09, "2.19960E-09", "%#6.6G", +__LINE__, 2.202913988776998e+17, "+2.20291e+17", "%+g", +__LINE__, 2.207094560707703e-10, "2.207095e-10", "%e", +__LINE__, 2.207557214621658e-13, " 0", "%4.f", +__LINE__, 2.209428206272229e+13, "2.20943e+13", "%g", +__LINE__, 2.212662463615175e-11, " 0", "%4.0f", +__LINE__, 2.215732710968468e-30, "2E-30", "%.1G", +__LINE__, 2.218490841936778e-10, "2.21849e-10", "%2g", +__LINE__, 2.218850610567959e-01, "+0.221885", "%+G", +__LINE__, 2.220796939261542e-03, "0.002221", "%#f", +__LINE__, 2.221819894808024e+24, "2.2e+24", "%5.1e", +__LINE__, 2.223804993235507e+27, "2.223805e+27", "%1e", +__LINE__, 2.224715386046563e-17, "0.00000", "%#.5f", +__LINE__, 2.224864709983882e-16, "+2.224865e-16", "%+e", +__LINE__, 2.225764510969505e+16, "2.E+16", "%#4.G", +__LINE__, 2.233229189161284e-07, "+2.23323e-07", "%+6g", +__LINE__, 2.236522807209868e+17, "2.23652e+17", "%g", +__LINE__, 2.236641620849775e+20, "2E+20", "%0.G", +__LINE__, 2.237089952728626e-13, "2E-13", "%5.E", +__LINE__, 2.238531255563381e-11, " 2E-11", "%7.1G", +__LINE__, 2.242782296436871e+12, "2242782296436.871103", "%f", +__LINE__, 2.249177852069393e-02, "+2.249178E-02", "%+5E", +__LINE__, 2.250735782732076e+29, "+2.25074e+29", "%+g", +__LINE__, 2.257455203557544e-11, "+2e-11", "%+4.0g", +__LINE__, 2.258002527939529e+24, "2.258e+24", "%g", +__LINE__, 2.266955929448160e+20, "226695592944815960123.6056915", "%.7f", +__LINE__, 2.269019719123250e-23, "0.000000", "%f", +__LINE__, 2.269022332502809e+02, "+226.902233", "%+f", +__LINE__, 2.271165222038591e-03, "0.002", "%1.1g", +__LINE__, 2.273965946408021e+14, "+227396594640802.085507", "%+f", +__LINE__, 2.277221153386242e+22, "22772211533862418697538.032575", "%#f", +__LINE__, 2.280214920187521e-01, "0.2", "%2.G", +__LINE__, 2.280762993019740e+06, "2.28076E+06", "%G", +__LINE__, 2.283479263040833e-24, "+0.000000", "%+f", +__LINE__, 2.283686319235123e-07, "2.2837E-07", "%5.5G", +__LINE__, 2.285842617231066e-26, "0.000000", "%f", +__LINE__, 2.293145864755873e-02, "0.02", "%.0g", +__LINE__, 2.293439381531532e+03, "+2.293439E+03", "%+#1E", +__LINE__, 2.297972500660698e-22, "2.29797e-22", "%g", +__LINE__, 2.298725366073681e+23, "2.29873E+23", "%G", +__LINE__, 2.303151535483950e-29, "2.30315E-29", "%G", +__LINE__, 2.308565313657699e-25, " 0", "%4.f", +__LINE__, 2.309305373760733e-07, "2.309305E-07", "%E", +__LINE__, 2.309693761334710e-19, "2.30969e-19", "%g", +__LINE__, 2.312218220995774e-20, "+2.31222E-20", "%+.6G", +__LINE__, 2.313115729670525e+24, "2.31312E+24", "%G", +__LINE__, 2.315325159866773e-21, "2.315325E-21", "%E", +__LINE__, 2.316932917620091e-19, "0.000000", "%f", +__LINE__, 2.317548394633895e+13, "2.31755E+13", "%0G", +__LINE__, 2.318951465093612e+02, "+2.32e+02", "%+1.2e", +__LINE__, 2.319151794905482e-17, "+0.000000", "%+0f", +__LINE__, 2.319708617851078e-27, "0.000000", "%f", +__LINE__, 2.320019976591725e+20, "2e+20", "%.1g", +__LINE__, 2.322859962551666e+06, "2.32286e+06", "%g", +__LINE__, 2.326474568074649e-29, "2.326e-29", "%.4g", +__LINE__, 2.328400844172053e-07, "2.3284E-07", "%G", +__LINE__, 2.333695247698112e+16, "2.3337e+16", "%g", +__LINE__, 2.333717120257130e-19, "+0.000000", "%+f", +__LINE__, 2.334711793234782e-19, "2.33471E-19", "%5G", +__LINE__, 2.335524987281242e+02, "+233.55", "%+7.5g", +__LINE__, 2.335556767836369e-30, "2.34e-30", "%.3g", +__LINE__, 2.337696964360052e-10, "2.3377e-10", "%1g", +__LINE__, 2.337858249184500e-14, "2.337858E-14", "%5.6E", +__LINE__, 2.339984354781169e-14, "2.339984E-14", "%E", +__LINE__, 2.340849041430089e-04, "0.00023", "%0.2G", +__LINE__, 2.342388410373363e-24, "2.34239E-24", "%G", +__LINE__, 2.343933106737237e-22, "2.34393e-22", "%g", +__LINE__, 2.344870855713960e-08, "0.000000", "%.6f", +__LINE__, 2.347368965433808e+24, "2347368965433808352116785", "%4.f", +__LINE__, 2.349417462171421e-02, "+0.0234942", "%+G", +__LINE__, 2.351071111431207e+11, "235107111143.12", "%.2f", +__LINE__, 2.352756222810670e+19, "+2.e+19", "%+#4.g", +__LINE__, 2.355862529217003e-22, "2.355863e-22", "%#4e", +__LINE__, 2.356804045401445e-30, "2.3568E-30", "%G", +__LINE__, 2.362100710185559e-26, "2.3621e-26", "%g", +__LINE__, 2.368330779173562e-12, " 0", "%4.f", +__LINE__, 2.383329784369796e+22, "2.38333E+22", "%G", +__LINE__, 2.386845229536477e+01, "+23.868452", "%+#f", +__LINE__, 2.388207830036780e-05, "0.000024", "%f", +__LINE__, 2.391809468802907e+21, "+2.391809e+21", "%+e", +__LINE__, 2.395172908564692e-09, "+0.000000", "%+f", +__LINE__, 2.395447167030886e-29, "2.39545e-29", "%g", +__LINE__, 2.397292973389182e+16, "23972929733891823", "%6.f", +__LINE__, 2.401749832237687e-30, "2.401750E-30", "%E", +__LINE__, 2.403610502544347e-03, "0.00240361", "%4G", +__LINE__, 2.404676421776132e+17, "240467642177613206", "%6.f", +__LINE__, 2.406327689091479e+25, "2.406328e+25", "%e", +__LINE__, 2.407341999590511e-02, "0.024073", "%f", +__LINE__, 2.407352797581004e+05, "240735.", "%#g", +__LINE__, 2.407903467439017e+13, "2.4079E+13", "%G", +__LINE__, 2.407979635013539e+21, " +2E+21", "%+7.G", +__LINE__, 2.409513517930790e+29, "240951351793079027174826478585.600853", "%f", +__LINE__, 2.412530651221551e+10, "+2.41253E+10", "%+G", +__LINE__, 2.419943224673811e+00, "2.41994", "%#g", +__LINE__, 2.422474399040258e-15, "0.000000", "%f", +__LINE__, 2.426060206689458e+18, "2.42606E+18", "%1G", +__LINE__, 2.439982659679872e+14, "+2.439983E+14", "%+E", +__LINE__, 2.440528851375447e+13, "24405288513754.466173", "%f", +__LINE__, 2.441340473292679e+19, "2.44134E+19", "%G", +__LINE__, 2.443521636943916e+19, " 2.e+19", "%#7.g", +__LINE__, 2.445925211597624e-27, "2.445925E-27", "%E", +__LINE__, 2.446966179060722e+25, "2.446966e+25", "%5e", +__LINE__, 2.447714218717278e+11, "2e+11", "%1.e", +__LINE__, 2.448339744613286e+06, "2.4483e+06", "%3.5g", +__LINE__, 2.448772993496189e+03, "2448.77", "%G", +__LINE__, 2.448857654325229e+22, "+2.44886e+22", "%+g", +__LINE__, 2.450082452098890e-27, "2.4501E-27", "%#3.5G", +__LINE__, 2.451293602221637e+05, "245129.360222", "%f", +__LINE__, 2.454531490229426e+02, "245.453", "%G", +__LINE__, 2.458958369944980e+14, "2.5E+14", "%6.1E", +__LINE__, 2.463666680775038e+14, "+246366668077503.80", "%+#.2f", +__LINE__, 2.471582990960795e+05, "2.471583e+05", "%e", +__LINE__, 2.474107179274687e+22, "2.47411e+22", "%g", +__LINE__, 2.474332114849132e-08, "+2.47433e-08", "%+g", +__LINE__, 2.476956762431716e+18, "+2476956762431715919.348107", "%+#f", +__LINE__, 2.479091221850607e-22, "0.000000", "%f", +__LINE__, 2.479819586598431e-24, "2.47982e-24", "%g", +__LINE__, 2.480006174601455e-05, "2.48001E-05", "%G", +__LINE__, 2.482672677638334e-26, "+0.000000", "%+f", +__LINE__, 2.492816492208918e-14, " 0", "%7.f", +__LINE__, 2.492964173197140e-12, " 2e-12", "%7.g", +__LINE__, 2.494646635961173e+02, "249.465", "%g", +__LINE__, 2.494687818780545e+11, "249468781878.054546", "%#7f", +__LINE__, 2.510083560147301e-13, "+2.510084e-13", "%+#e", +__LINE__, 2.511186607989480e-30, "2.51E-30", "%.3G", +__LINE__, 2.514164516133643e-11, "2.51416e-11", "%g", +__LINE__, 2.517242520804735e+11, "2.517243e+11", "%e", +__LINE__, 2.518526126400833e-26, "2.51853e-26", "%g", +__LINE__, 2.520313416401176e+09, "2520313416.401176", "%5f", +__LINE__, 2.521653160738683e-29, "2.52165e-29", "%#g", +__LINE__, 2.521941342615338e-16, "2.52194e-16", "%g", +__LINE__, 2.523554774354461e-03, "+3E-03", "%+.0E", +__LINE__, 2.525434130825058e+06, "+2.525434E+06", "%+E", +__LINE__, 2.527616380113364e+02, "2.527616E+02", "%E", +__LINE__, 2.531871347913505e+09, "+2.53187E+09", "%+#G", +__LINE__, 2.532167428661069e+06, "2532167.428661", "%f", +__LINE__, 2.545585718405995e+14, "+2.54559E+14", "%+G", +__LINE__, 2.546305097286406e+10, "2.546305e+10", "%e", +__LINE__, 2.547467156069069e-30, "+0.00", "%+3.2f", +__LINE__, 2.548728793004506e-14, "2.54873E-14", "%G", +__LINE__, 2.560375602395090e+11, "256037560239.509032", "%0f", +__LINE__, 2.560555687476687e+03, "2561", "%.4g", +__LINE__, 2.561709077363443e-24, "+0.000000", "%+f", +__LINE__, 2.563763849675242e+10, "2.5637638E+10", "%.7E", +__LINE__, 2.567482414574355e+11, "+2.567482e+11", "%+e", +__LINE__, 2.571575046303674e-17, "3E-17", "%2.0E", +__LINE__, 2.572997971296986e+11, "257299797129.698593", "%f", +__LINE__, 2.578625935900331e+22, "25786259359003311786295.853381", "%f", +__LINE__, 2.579663282966370e+12, "2.579663e+12", "%e", +__LINE__, 2.593141782397610e-08, "0.000000", "%f", +__LINE__, 2.594386109584196e+04, "3.E+04", "%#6.0E", +__LINE__, 2.598069318007816e-22, "2.59807e-22", "%g", +__LINE__, 2.600910462290091e+09, "2.600910E+09", "%6E", +__LINE__, 2.602580183614458e-03, "2.602580e-03", "%e", +__LINE__, 2.606540360440264e+09, "+2606540360.4", "%+#0.1f", +__LINE__, 2.610016419698116e-21, "+3.e-21", "%+#3.g", +__LINE__, 2.612279323574882e-20, "2.61228E-20", "%G", +__LINE__, 2.614157324336453e-14, "2.61416e-14", "%g", +__LINE__, 2.614688721873993e-09, "2.61e-09", "%6.2e", +__LINE__, 2.616661104472416e-15, " 0", "%5.f", +__LINE__, 2.616742079283195e-09, " +3E-09", "%+7.E", +__LINE__, 2.618075304717427e+24, "2.618075e+24", "%e", +__LINE__, 2.624118573335769e+26, "262411857333576925555007619.550452", "%1f", +__LINE__, 2.625718894274227e+24, "+2625718894274227110940955.753904", "%+f", +__LINE__, 2.627081999477812e+03, "2627.081999", "%f", +__LINE__, 2.631061062224705e+14, "263106106222470.481626", "%f", +__LINE__, 2.631545877128814e+27, "+2.63155e+27", "%+g", +__LINE__, 2.632694395848818e-11, "2.63269e-11", "%g", +__LINE__, 2.636728891022008e-22, "+2.63673e-22", "%+#4g", +__LINE__, 2.638495675008130e-28, "+2.638496e-28", "%+e", +__LINE__, 2.639704195859799e-11, "0.", "%#.0f", +__LINE__, 2.641645264652665e-20, "0", "%0.f", +__LINE__, 2.642012075064497e-20, "3E-20", "%0.E", +__LINE__, 2.648725869006487e-29, " 3E-29", "%6.G", +__LINE__, 2.649060724417770e+12, "3E+12", "%3.G", +__LINE__, 2.651188545120166e-17, "0.000", "%.3f", +__LINE__, 2.652302152621621e+14, "2.7E+14", "%.2G", +__LINE__, 2.653309718412604e-28, "0.000000", "%f", +__LINE__, 2.658344750491858e-21, " 3e-21", "%6.g", +__LINE__, 2.664625074612594e+15, "3e+15", "%1.g", +__LINE__, 2.666953728270800e-15, "3e-15", "%0.e", +__LINE__, 2.674515419678877e-11, " 3E-11", "%6.E", +__LINE__, 2.680054917256578e+15, "2680054917256577.5", "%#2.1f", +__LINE__, 2.680495609883415e-11, "2.68E-11", "%#.3G", +__LINE__, 2.685757893641070e+23, "268575789364107020418259.70809", "%1.5f", +__LINE__, 2.695551226058178e+16, "26955512260581775.407786", "%f", +__LINE__, 2.696346377519671e+04, "+26963.5", "%+G", +__LINE__, 2.714262310601257e+17, "+2.714262E+17", "%+E", +__LINE__, 2.719227450016317e-01, "0.271923", "%G", +__LINE__, 2.724135433346056e-30, "+2.72414e-30", "%+g", +__LINE__, 2.725143224130276e+14, "272514322413027.576530", "%6f", +__LINE__, 2.729355189648310e-03, "+0.00273", "%+.5f", +__LINE__, 2.732872167724945e+11, "2.73287E+11", "%G", +__LINE__, 2.737709476435412e+17, "273770947643541218.141650", "%f", +__LINE__, 2.739299356074967e-15, "2.7E-15", "%.2G", +__LINE__, 2.740793612304798e-27, "2.740794E-27", "%.7G", +__LINE__, 2.742030156175960e+20, "2.74203e+20", "%2.6g", +__LINE__, 2.744455324096085e+11, "2.74446E+11", "%G", +__LINE__, 2.745179546531160e+07, "2.7452E+07", "%.5G", +__LINE__, 2.747470562525333e+04, "3E+04", "%2.E", +__LINE__, 2.750243314674629e+21, "2.75024E+21", "%#G", +__LINE__, 2.750250224436030e+20, "+2.750250e+20", "%+0.6e", +__LINE__, 2.752712858561084e-22, "2.752713e-22", "%e", +__LINE__, 2.756982987656667e-03, "0.002756983", "%#.7G", +__LINE__, 2.761841188479590e+13, "3e+13", "%1.g", +__LINE__, 2.769498440434419e+00, "+3e+00", "%+0.e", +__LINE__, 2.769993785786379e+10, "27699937857.863794", "%f", +__LINE__, 2.772900256376753e-06, "+2.7729E-06", "%+7.6G", +__LINE__, 2.774401482467457e-06, "2.8e-06", "%3.2g", +__LINE__, 2.777691370374757e-02, "+0.027777", "%+f", +__LINE__, 2.779836227365899e-09, "3e-09", "%5.0g", +__LINE__, 2.780481651765741e+01, "2.780482E+01", "%E", +__LINE__, 2.782228478714809e-26, "2.782228E-26", "%4.7G", +__LINE__, 2.790457781719376e+13, "+2.8e+13", "%+.2g", +__LINE__, 2.792026581166417e-30, " 3.e-30", "%#7.0g", +__LINE__, 2.792396278299615e-08, "0.00", "%#.2f", +__LINE__, 2.793658047689995e-10, "2.794e-10", "%#0.4g", +__LINE__, 2.795707358229888e-25, "0.000000", "%f", +__LINE__, 2.796253091758523e-06, "2.796E-06", "%.4G", +__LINE__, 2.796756564788716e-24, "2.796757e-24", "%e", +__LINE__, 2.798730444798773e-14, "2.79873e-14", "%g", +__LINE__, 2.799108397670447e-24, "3E-24", "%.0G", +__LINE__, 2.799389008872835e+06, "2799389.", "%#0.f", +__LINE__, 2.800413998518039e-14, "0.000000", "%f", +__LINE__, 2.803237602587100e+15, "+2803237602587100.418816", "%+5f", +__LINE__, 2.803474415574551e-04, "0.0002803", "%.7f", +__LINE__, 2.804957468647181e+25, "2.80496e+25", "%g", +__LINE__, 2.809345112788226e+09, "2809345112.788226", "%.6f", +__LINE__, 2.811518239408899e+10, "3e+10", "%1.g", +__LINE__, 2.813188439967416e-16, "0.0000000", "%5.7f", +__LINE__, 2.813497118051755e+08, "2.8135e+08", "%.5g", +__LINE__, 2.815748256510577e-29, "0.000000", "%2f", +__LINE__, 2.816076365485207e-01, "0.281608", "%0G", +__LINE__, 2.816083345772131e+24, "2.8161e+24", "%6.4e", +__LINE__, 2.818686957605178e+12, "2.8187E+12", "%.5G", +__LINE__, 2.821903538737691e+20, "2.8219E+20", "%G", +__LINE__, 2.823659589845680e+26, "2.82366e+26", "%2g", +__LINE__, 2.823685630865012e+22, "2.82369E+22", "%G", +__LINE__, 2.828826386007914e+21, "2.828826E+21", "%7E", +__LINE__, 2.830997901034349e+04, "+3e+04", "%+0.e", +__LINE__, 2.833886731091353e-26, "+2.833887e-26", "%+4e", +__LINE__, 2.839965144893913e+28, "28399651448939131626048038015.1421", "%.4f", +__LINE__, 2.840651452049947e-09, "2.841E-09", "%#.3E", +__LINE__, 2.843388001911757e-01, "0.284339", "%g", +__LINE__, 2.846122151080671e+14, "2.84612E+14", "%.5E", +__LINE__, 2.851257828837595e+05, "+285126", "%+5.f", +__LINE__, 2.853823884459520e+07, "+2.85382E+07", "%+G", +__LINE__, 2.853870068368765e-06, "2.854E-06", "%4.3E", +__LINE__, 2.856687358149867e+01, "+28.567", "%+6.5G", +__LINE__, 2.858946600073752e+06, "2.8589466e+06", "%3.7e", +__LINE__, 2.861525727138818e+24, "2.8615257e+24", "%2.7e", +__LINE__, 2.865104175886071e-24, "0.000000", "%f", +__LINE__, 2.870678920363198e-14, "2.87068E-14", "%G", +__LINE__, 2.873298537233691e+09, "+2.8733e+09", "%+g", +__LINE__, 2.877939609444375e-02, "0.028779", "%f", +__LINE__, 2.878253985341728e+13, "2.87825E+13", "%G", +__LINE__, 2.879299244903946e+29, "287929924490394597569320467301", "%0.f", +__LINE__, 2.885516225515485e-26, "0.000000", "%f", +__LINE__, 2.886013724129579e+20, "+3e+20", "%+4.g", +__LINE__, 2.887032786975506e-30, "0.000000", "%f", +__LINE__, 2.890415456531026e-29, "2.89042E-29", "%G", +__LINE__, 2.893177360548214e-13, "2.893E-13", "%#6.3E", +__LINE__, 2.895265536458195e+26, "2.89527e+26", "%5g", +__LINE__, 2.903844533810152e+23, "290384453381015195105874.23", "%.2f", +__LINE__, 2.909060558287504e+27, "2.90906e+27", "%g", +__LINE__, 2.911615480973172e-05, "2.91162E-05", "%3G", +__LINE__, 2.912692297221896e+09, "2912692297.221896", "%#f", +__LINE__, 2.913595662485813e-24, "2.9136E-24", "%G", +__LINE__, 2.915960840341896e-27, "0.000000", "%f", +__LINE__, 2.920451095973991e-16, "2.92e-16", "%2.2e", +__LINE__, 2.920528295810925e+06, "2.92053E+06", "%#G", +__LINE__, 2.921564671017147e+20, "2.921565E+20", "%#6E", +__LINE__, 2.921628350942189e+01, "2.921628E+01", "%E", +__LINE__, 2.921843377455232e+20, "2.921843E+20", "%#E", +__LINE__, 2.930156950319384e+29, "2.930E+29", "%1.3E", +__LINE__, 2.931229858895071e-30, "2.9e-30", "%4.2g", +__LINE__, 2.931753029689166e+20, "2.93175e+20", "%g", +__LINE__, 2.933023693079342e+15, "3.E+15", "%#.1G", +__LINE__, 2.933078733225520e+26, "2.93308E+26", "%G", +__LINE__, 2.933528170896643e-14, "+2.93353e-14", "%+g", +__LINE__, 2.938648437428148e+00, "2.938648e+00", "%e", +__LINE__, 2.940752238221344e+26, "+2.94075E+26", "%+G", +__LINE__, 2.942836470459675e+20, "2.9428e+20", "%6.4e", +__LINE__, 2.943218333254941e+29, "294321833325494086608387078740.634024", "%f", +__LINE__, 2.943690574007512e-27, "0.000000", "%f", +__LINE__, 2.945452907046501e+09, "+2.9455E+09", "%+.5G", +__LINE__, 2.946648725966953e+16, "29466487259669534.637396", "%4f", +__LINE__, 2.955119322417825e+29, "2.95512E+29", "%G", +__LINE__, 2.966481197538973e+24, "2.96648e+24", "%#g", +__LINE__, 2.969362862661362e+08, "+2.969363e+08", "%+7e", +__LINE__, 2.970062459990078e+21, "+2.97006E+21", "%+G", +__LINE__, 2.971059959019791e+10, " 3E+10", "%7.G", +__LINE__, 2.973020205606034e-29, "0.000000", "%f", +__LINE__, 2.977223210301426e+04, "2.977223e+04", "%#e", +__LINE__, 2.977467832772786e-26, "0.000000", "%f", +__LINE__, 2.981433606423384e+18, "2981433606423384397.032805", "%f", +__LINE__, 2.981615513287404e-17, "2.98162e-17", "%g", +__LINE__, 2.983880743847276e+19, " 3e+19", "%7.e", +__LINE__, 2.983927792297305e-28, "2.983928e-28", "%e", +__LINE__, 2.984807359492058e-17, " 0", "%2.f", +__LINE__, 2.985123412933032e+09, "+2.98512e+09", "%+g", +__LINE__, 2.991132955408629e-27, "+2.99113e-27", "%+4g", +__LINE__, 2.992345635923643e+19, "3E+19", "%4.G", +__LINE__, 2.993024238285395e-05, "2.99302e-05", "%2g", +__LINE__, 2.995303406756363e+16, "+2.995303E+16", "%+E", +__LINE__, 2.995492577854335e+19, "+29954925778543346481.797016", "%+f", +__LINE__, 2.996856271675341e-25, "+3e-25", "%+0.e", +__LINE__, 2.997813968112619e+12, "2.99781e+12", "%#5g", +__LINE__, 3.002097486457961e-17, "3.00210e-17", "%5.5e", +__LINE__, 3.006538123158692e+28, "+3.00654E+28", "%+#G", +__LINE__, 3.007293721729544e+04, "30072.937217", "%f", +__LINE__, 3.008301791944493e-07, "3.008e-07", "%.3e", +__LINE__, 3.011742184603817e-17, "3.011742E-17", "%#E", +__LINE__, 3.024641547299177e-30, "3.02464e-30", "%g", +__LINE__, 3.026525135110198e-28, "3e-28", "%.0e", +__LINE__, 3.026768160756558e+20, "3.02677E+20", "%G", +__LINE__, 3.031928829940975e+18, "3031928829940975234.1", "%0.1f", +__LINE__, 3.039787705138620e+24, "+3.E+24", "%+#5.G", +__LINE__, 3.039803824423916e-02, "0.030398", "%5f", +__LINE__, 3.041236293199133e-26, "3.04124e-26", "%g", +__LINE__, 3.045634954037886e+04, "30456.3", "%g", +__LINE__, 3.047528114241850e+25, "3e+25", "%0.e", +__LINE__, 3.047958193737501e-24, "3.04796E-24", "%#G", +__LINE__, 3.049537324414302e-16, "3.04954E-16", "%G", +__LINE__, 3.050500637681798e-30, "3.0505E-30", "%G", +__LINE__, 3.051769626625307e-01, "0.305177", "%f", +__LINE__, 3.057280201971847e+11, "+3.05728E+11", "%+.5E", +__LINE__, 3.060046173306881e-10, "+3.060046e-10", "%+e", +__LINE__, 3.069732667347204e+27, "+3069732667347204291274920251.453295", "%+f", +__LINE__, 3.075060836786916e-14, "0.000000", "%f", +__LINE__, 3.078175179670964e+13, "3.07818E+13", "%G", +__LINE__, 3.080305344303183e-21, "3.08031e-21", "%6g", +__LINE__, 3.088881497064043e+27, "+3.088881E+27", "%+3E", +__LINE__, 3.089196877931209e-20, "3.089197e-20", "%e", +__LINE__, 3.091400888880487e-08, "3e-08", "%2.e", +__LINE__, 3.093410684178904e+16, "3.09341e+16", "%g", +__LINE__, 3.104225344208216e-21, "0.000000", "%f", +__LINE__, 3.105843728248599e+13, "3.e+13", "%#.0g", +__LINE__, 3.106463071390893e-07, "0.0000", "%.4f", +__LINE__, 3.107784123569379e+02, "+310.778", "%+G", +__LINE__, 3.110605148983672e-20, "3.1106051E-20", "%.7E", +__LINE__, 3.111702418162670e-04, "0.00031117", "%.5G", +__LINE__, 3.117610675303153e-17, "3.11761e-17", "%g", +__LINE__, 3.123620125717981e+07, "3.1236e+07", "%2.5g", +__LINE__, 3.125648558809832e-24, "+3.125649E-24", "%+#0.6E", +__LINE__, 3.129025163659283e+10, "31290251636.592825", "%#f", +__LINE__, 3.130689119412709e-29, "+3.131E-29", "%+#.4G", +__LINE__, 3.135681222132527e+13, "3.13568E+13", "%G", +__LINE__, 3.138290485073330e-10, "3.13829E-10", "%G", +__LINE__, 3.141255250155306e-12, "3.14126E-12", "%G", +__LINE__, 3.143224520918429e+25, "3.14322E+25", "%#1G", +__LINE__, 3.144746921366173e-16, " 0", "%7.f", +__LINE__, 3.151336678241994e+19, "+3.15134E+19", "%+G", +__LINE__, 3.161752935716549e+24, "3.2E+24", "%2.1E", +__LINE__, 3.167106521258172e-10, "+3.167107e-10", "%+e", +__LINE__, 3.167266522824146e-04, "3E-04", "%3.E", +__LINE__, 3.169995217131489e+27, "3169995217131488907114089670.358226", "%f", +__LINE__, 3.172117220467692e-21, "3.1721E-21", "%.5G", +__LINE__, 3.173824170351611e+02, " 3e+02", "%6.e", +__LINE__, 3.186291452544739e-28, " 0", "%2.f", +__LINE__, 3.194750094186063e+03, "+3.194750E+03", "%+E", +__LINE__, 3.195001037118137e-20, "0", "%0.0f", +__LINE__, 3.199271564719560e+02, "319.927", "%g", +__LINE__, 3.212803450638544e+20, "3.2128e+20", "%.6g", +__LINE__, 3.214502877263883e+24, "3214502877263882840708220", "%2.f", +__LINE__, 3.214658414074286e-01, "+0.321466", "%+#g", +__LINE__, 3.217627975823673e+00, "3.217628", "%f", +__LINE__, 3.218257328710536e-07, "3.21826e-07", "%6.5e", +__LINE__, 3.221949479347008e+02, "322.194948", "%f", +__LINE__, 3.222862935507443e-14, "3.222863E-14", "%E", +__LINE__, 3.223750247261608e+19, "3.22375e+19", "%g", +__LINE__, 3.236030335782375e+05, "3.236030e+05", "%e", +__LINE__, 3.241078803072735e+19, "3.24108e+19", "%g", +__LINE__, 3.248069569167045e-06, "0.000003", "%#f", +__LINE__, 3.248148973717269e-15, "3.24815E-15", "%G", +__LINE__, 3.251150704311790e+25, "+3.25115e+25", "%+5g", +__LINE__, 3.254498593372140e+15, "+3.2545e+15", "%+g", +__LINE__, 3.254949399612861e-13, "+3.255E-13", "%+7.3E", +__LINE__, 3.255490928554106e-17, "3.255491e-17", "%e", +__LINE__, 3.262333894422112e+17, "326233389442211185.738074", "%0f", +__LINE__, 3.263923577545217e-24, "0.0000000", "%.7f", +__LINE__, 3.267125289609703e+23, "3.26713e+23", "%#.5e", +__LINE__, 3.267906049108331e+27, "3.267906E+27", "%6E", +__LINE__, 3.269885039157328e+14, "326988503915732.797722", "%f", +__LINE__, 3.296011393609953e-27, " 3E-27", "%7.E", +__LINE__, 3.296452164568996e+29, "3.296452E+29", "%E", +__LINE__, 3.296544736555325e+10, "+3.29654E+10", "%+.6G", +__LINE__, 3.301861835798572e+03, "3301.862", "%4.7g", +__LINE__, 3.311292283423002e+21, " 3E+21", "%6.G", +__LINE__, 3.314868440076262e-10, "3.3149E-10", "%.5G", +__LINE__, 3.318057982247451e-13, "3.3181e-13", "%0.5g", +__LINE__, 3.318139218410071e-22, "0.000000", "%f", +__LINE__, 3.326769904839351e-11, "+3.3268e-11", "%+0.4e", +__LINE__, 3.327483659787219e+27, "+3.32748e+27", "%+g", +__LINE__, 3.332666889640198e+17, "333266688964019763.830038", "%f", +__LINE__, 3.333807449377253e+10, "+3.33e+10", "%+.3g", +__LINE__, 3.334572302792625e-09, "3.334572E-09", "%E", +__LINE__, 3.337567126586765e-17, "0.0000000", "%#3.7f", +__LINE__, 3.340512607683786e-04, "+3E-04", "%+1.E", +__LINE__, 3.344911557516870e+04, "33449.1", "%G", +__LINE__, 3.346464302017296e+26, "+3.E+26", "%+#3.G", +__LINE__, 3.348503166628953e+00, "+3.348503e+00", "%+e", +__LINE__, 3.350025157778138e-19, "3.35003e-19", "%6g", +__LINE__, 3.352826233035342e+11, "335282623303.534200", "%7f", +__LINE__, 3.357174089765502e+10, "3.35717E+10", "%G", +__LINE__, 3.369253166475501e+03, "+3369.25", "%+G", +__LINE__, 3.371385975046735e+02, "337.", "%#.0f", +__LINE__, 3.372532650462104e-04, "+0.000", "%+.3f", +__LINE__, 3.376498162710442e-26, "3.376498e-26", "%e", +__LINE__, 3.383510307689135e-12, " 3e-12", "%7.0e", +__LINE__, 3.388427914080631e-04, "0.0003", "%2.4f", +__LINE__, 3.390757423408097e+29, "3.3908E+29", "%.4E", +__LINE__, 3.393963140962879e-11, "3.39396e-11", "%g", +__LINE__, 3.399245742994444e+24, "3.399246E+24", "%E", +__LINE__, 3.417690405546708e-26, "0.00000", "%4.5f", +__LINE__, 3.421159360472045e-30, "3.42116E-30", "%G", +__LINE__, 3.421973947898887e-06, "3.42197E-06", "%4G", +__LINE__, 3.425949002482817e-10, "+3.42595E-10", "%+G", +__LINE__, 3.428355150377972e+08, "3.42836E+08", "%G", +__LINE__, 3.445035158951526e+15, "3445035158951526.454985", "%f", +__LINE__, 3.447363996077534e+28, "+3e+28", "%+2.e", +__LINE__, 3.451571062654907e-03, "0.00345157", "%G", +__LINE__, 3.452787236877688e+09, "3.45279e+09", "%g", +__LINE__, 3.454114826574939e-22, "3.e-22", "%#3.e", +__LINE__, 3.455241965974631e-03, "0.003455", "%#f", +__LINE__, 3.456190496554365e-18, "3.E-18", "%#5.E", +__LINE__, 3.456804565717233e-19, "+0.000", "%+2.3f", +__LINE__, 3.457077651539715e-28, "3.457078E-28", "%E", +__LINE__, 3.472025705376229e+22, "3.472e+22", "%7.4g", +__LINE__, 3.473308270919079e+03, "3.473308e+03", "%e", +__LINE__, 3.474468013243007e-30, "3.47447e-30", "%g", +__LINE__, 3.477976957097698e+22, "3.47798e+22", "%g", +__LINE__, 3.501174631980057e-06, "4e-06", "%4.g", +__LINE__, 3.501808481702140e+20, "3.50181E+20", "%G", +__LINE__, 3.511760000705324e+14, "351176000070532.357000", "%f", +__LINE__, 3.511870226306087e+29, "3.51187e+29", "%.5e", +__LINE__, 3.518846859147841e+02, "+351.885", "%+G", +__LINE__, 3.521659149753418e+25, "35216591497534182053641416", "%5.f", +__LINE__, 3.521721228178747e+21, "4e+21", "%2.e", +__LINE__, 3.526696007281458e+22, "3.5267e+22", "%g", +__LINE__, 3.535631031379084e-11, "4e-11", "%5.0g", +__LINE__, 3.537219665456759e-01, "0.353722", "%f", +__LINE__, 3.537252728287785e-09, "3.537253E-09", "%E", +__LINE__, 3.542561277796815e-19, "3.542561E-19", "%E", +__LINE__, 3.548942336915745e+13, "3.54894E+13", "%.5E", +__LINE__, 3.574385715121768e-24, "3.57439E-24", "%#G", +__LINE__, 3.578068067760211e-13, "3.578068E-13", "%E", +__LINE__, 3.583296432862266e-13, "3.5833e-13", "%g", +__LINE__, 3.591567367115590e+19, "3.59157e+19", "%1g", +__LINE__, 3.594902312287635e-24, "3.5949E-24", "%G", +__LINE__, 3.602929486764515e+12, "3602929486764.514522", "%#f", +__LINE__, 3.606699462631472e-01, "+0.360670", "%+f", +__LINE__, 3.608605968319811e+17, "3.60861e+17", "%g", +__LINE__, 3.608780761567885e+24, "4e+24", "%0.e", +__LINE__, 3.623857274715022e-15, "3.62386E-15", "%1G", +__LINE__, 3.627346251764432e-22, "3.627e-22", "%.4g", +__LINE__, 3.652610391698086e-16, "0.000000", "%3f", +__LINE__, 3.657463146689917e-19, " 0", "%4.0f", +__LINE__, 3.658538858712938e-15, "4E-15", "%5.G", +__LINE__, 3.660337267266058e+16, "+36603372672660579.034698", "%+f", +__LINE__, 3.661588742065142e-01, "0.366159", "%g", +__LINE__, 3.662296387211376e-25, "0.000000", "%f", +__LINE__, 3.668511100303393e-29, "0.000000", "%7f", +__LINE__, 3.669499303661920e+06, "3.6695e+06", "%1.5g", +__LINE__, 3.676856420121343e-23, "3.6769e-23", "%0.4e", +__LINE__, 3.677197473476901e-19, "+3.6772e-19", "%+g", +__LINE__, 3.677281754506453e+12, "+3677281754506.452671", "%+f", +__LINE__, 3.678420802401506e-19, "3.67842E-19", "%G", +__LINE__, 3.679970245325769e+07, "3.67997e+07", "%g", +__LINE__, 3.682528947621349e+05, "4.e+05", "%#5.e", +__LINE__, 3.688257471304210e+22, "36882574713042104441740.320908", "%f", +__LINE__, 3.689129734472166e-01, "0.368913", "%0.6G", +__LINE__, 3.693483801463324e+12, "4E+12", "%3.E", +__LINE__, 3.694612396584729e-21, "+3.69461E-21", "%+G", +__LINE__, 3.706150073392112e-19, "0.000000", "%2f", +__LINE__, 3.706824819530577e+21, "3706824819530576853310.321894", "%f", +__LINE__, 3.709583789659276e+19, "+3.709584E+19", "%+#E", +__LINE__, 3.711137503697284e+22, "3.7111E+22", "%.5G", +__LINE__, 3.717307412969522e-22, "3.717307E-22", "%#E", +__LINE__, 3.717434999853808e+24, " 4E+24", "%6.G", +__LINE__, 3.720761662524312e+14, "+372076166252431.2285", "%+1.4f", +__LINE__, 3.721613815237707e-10, "3.72161e-10", "%g", +__LINE__, 3.725086467464346e+14, "3.72509E+14", "%G", +__LINE__, 3.727427083626536e-15, "+4E-15", "%+.0G", +__LINE__, 3.731138322599465e-13, "3.73114e-13", "%5g", +__LINE__, 3.732248129614146e-04, " 4E-04", "%7.E", +__LINE__, 3.744422223926118e-24, "3.744422E-24", "%E", +__LINE__, 3.745595428897916e+21, "+3745595428897916079336.027906", "%+f", +__LINE__, 3.751308304055989e-08, "+3.751308e-08", "%+e", +__LINE__, 3.755395417696132e-02, "0.037554", "%f", +__LINE__, 3.769103881505159e+09, "3.7691e+09", "%g", +__LINE__, 3.769535572757430e+00, "3.769536", "%6.7G", +__LINE__, 3.770823872348274e-28, "+0.000000", "%+f", +__LINE__, 3.771160653578178e+29, "3.77116e+29", "%g", +__LINE__, 3.776563752716444e-12, "4E-12", "%.0E", +__LINE__, 3.777953798674786e-28, "3.77795e-28", "%g", +__LINE__, 3.785994690686598e+28, "4E+28", "%5.G", +__LINE__, 3.787487488835162e+01, "+37.874875", "%+5f", +__LINE__, 3.788249311173359e-18, "3.788249E-18", "%E", +__LINE__, 3.798728360791314e-08, "3.798728E-08", "%2E", +__LINE__, 3.799038238867092e+05, "3.79904E+05", "%.5E", +__LINE__, 3.799822564549600e+06, "3.79982E+06", "%.5E", +__LINE__, 3.804862840499834e-16, "0", "%1.f", +__LINE__, 3.805375156822481e+12, "3805375156822.4814861", "%.7f", +__LINE__, 3.821612790153376e-17, "3.821613e-17", "%e", +__LINE__, 3.825193659558693e+14, "3.82519E+14", "%#G", +__LINE__, 3.834180638680996e+17, "+383418063868099565.638659", "%+f", +__LINE__, 3.834759760605814e-12, "3.83476E-12", "%G", +__LINE__, 3.839786235582770e+16, "+3.84e+16", "%+0.3g", +__LINE__, 3.843164462248778e+28, "3.84316e+28", "%#g", +__LINE__, 3.845599697858050e+22, "3.8456E+22", "%G", +__LINE__, 3.850147271017228e-21, "3.85e-21", "%.4g", +__LINE__, 3.850283557812101e+07, "3.85028E+07", "%G", +__LINE__, 3.854235609725703e+03, "3854.24", "%G", +__LINE__, 3.864901885489405e-15, "3.8649E-15", "%G", +__LINE__, 3.868630187629983e-24, "3.868630e-24", "%e", +__LINE__, 3.876764606134972e-03, "+3.8767646e-03", "%+#0.7e", +__LINE__, 3.884553592855422e+08, "+3.8845536e+08", "%+4.7e", +__LINE__, 3.887417494351062e+03, "3887.42", "%0g", +__LINE__, 3.887561018972304e+03, "3887.56", "%G", +__LINE__, 3.888554801724658e-24, "3.888555e-24", "%e", +__LINE__, 3.892806891909861e-01, "0.389281", "%f", +__LINE__, 3.914459791345755e+15, "+3.914460E+15", "%+E", +__LINE__, 3.918383209642759e+01, "39.1838", "%#G", +__LINE__, 3.923970658741865e-10, "3.92397E-10", "%G", +__LINE__, 3.928163650272335e+18, "3928163650272335161.162118", "%f", +__LINE__, 3.933053127721002e-20, "3.933053e-20", "%e", +__LINE__, 3.939306552155218e-29, "3.93931E-29", "%G", +__LINE__, 3.953007066379472e+07, "3.953007E+07", "%E", +__LINE__, 3.954924824986267e-01, "3.954925E-01", "%E", +__LINE__, 3.956156072067987e+15, "3.956E+15", "%0.4G", +__LINE__, 3.957756196797224e+22, "4.0E+22", "%4.1E", +__LINE__, 3.960011413261009e+27, "+3960011413261008783592842519.283295", "%+f", +__LINE__, 3.961789076323378e+20, "396178907632337828914.614875", "%f", +__LINE__, 3.961985468081708e-28, "3.96199E-28", "%1G", +__LINE__, 3.975007582283812e-27, "0.000000", "%0.6f", +__LINE__, 3.987586813142132e+15, "+3.98759e+15", "%+g", +__LINE__, 3.992250836957379e+21, "3.99225E+21", "%0G", +__LINE__, 3.992985048620057e+00, "3.9930", "%.4f", +__LINE__, 4.000000000000000e+02, "400.00", "%.2f", +__LINE__, 4.000145414240556e+14, "4.00015e+14", "%#6g", +__LINE__, 4.000774453529974e-25, "4E-25", "%.0E", +__LINE__, 4.002041494804383e+17, "4.002041E+17", "%E", +__LINE__, 4.005505415013214e+17, " 4E+17", "%6.2G", +__LINE__, 4.008960306876491e-28, "0.000", "%.3f", +__LINE__, 4.032337828117640e+16, "4.03234E+16", "%G", +__LINE__, 4.035414597530057e+26, "403541459753005682387083652.429283", "%f", +__LINE__, 4.037065874793069e-01, "0.403707", "%f", +__LINE__, 4.047856284449970e-14, "4.04786E-14", "%#G", +__LINE__, 4.049037221323070e-04, "4.049037e-04", "%e", +__LINE__, 4.053458853142009e-07, "4E-07", "%2.0E", +__LINE__, 4.056455443275955e-22, "4.056455e-22", "%e", +__LINE__, 4.058158020771355e-22, "4.05816e-22", "%#2g", +__LINE__, 4.067283508945137e+02, "+4.07e+02", "%+5.2e", +__LINE__, 4.072155715199509e+11, "4.072e+11", "%.4g", +__LINE__, 4.074643403755990e-22, "4e-22", "%0.g", +__LINE__, 4.077450352325251e+08, "4.1e+08", "%3.2g", +__LINE__, 4.081492619284916e-08, "4.081493E-08", "%E", +__LINE__, 4.083271801996951e-10, "4.083272E-10", "%#E", +__LINE__, 4.090188547940879e-15, "4.090189E-15", "%#E", +__LINE__, 4.091167728938537e-11, "4e-11", "%1.g", +__LINE__, 4.091916745541154e+15, "4091916745541153.588306", "%f", +__LINE__, 4.092366122921161e+23, "4E+23", "%0.E", +__LINE__, 4.094638368212577e-11, "4.09464E-11", "%#G", +__LINE__, 4.097148443124199e-16, "0.000000", "%f", +__LINE__, 4.101057893946401e+06, "4e+06", "%4.g", +__LINE__, 4.101209521231476e+28, "41012095212314756409455185348.633677", "%f", +__LINE__, 4.105683659045903e+05, "+4.E+05", "%+#1.G", +__LINE__, 4.111553717385758e-16, "4.11155e-16", "%g", +__LINE__, 4.112186409918593e+14, "+4.11219e+14", "%+g", +__LINE__, 4.117782144860865e+25, "4.117782E+25", "%5E", +__LINE__, 4.119420921722146e-27, "4.11942e-27", "%g", +__LINE__, 4.134953783635018e+14, "+4.1349538e+14", "%+.7e", +__LINE__, 4.136990822648468e+11, "4.136991E+11", "%E", +__LINE__, 4.140475788523046e+14, "+4E+14", "%+5.G", +__LINE__, 4.149589679915584e+24, "4.14959E+24", "%2G", +__LINE__, 4.151240342256744e-22, " 0", "%2.f", +__LINE__, 4.155533104307272e-04, "+0.000416", "%+f", +__LINE__, 4.155890511880097e+25, "4.155891e+25", "%e", +__LINE__, 4.159907901074450e-19, "4.159908E-19", "%7E", +__LINE__, 4.171899783464252e+18, "4E+18", "%.0E", +__LINE__, 4.177920266276382e-17, "+0.0000", "%+1.4f", +__LINE__, 4.181728014477237e-20, "4.18173e-20", "%.6g", +__LINE__, 4.203600495086497e-30, " 4E-30", "%6.G", +__LINE__, 4.211166112605717e-08, "4E-08", "%5.1G", +__LINE__, 4.219513437404614e+18, "+4E+18", "%+.0E", +__LINE__, 4.221426315236785e+08, "4.221426E+08", "%#E", +__LINE__, 4.226224756005934e-13, " 4.e-13", "%#7.g", +__LINE__, 4.226979046489921e-01, "4.226979e-01", "%#.6e", +__LINE__, 4.236283521629158e-08, "+4.23628E-08", "%+G", +__LINE__, 4.239850628514233e-07, "4.23985E-07", "%.6G", +__LINE__, 4.241177358638621e+04, "42411.773586", "%2f", +__LINE__, 4.245306724398964e-13, "0.000000", "%#f", +__LINE__, 4.246194290300334e+16, "42461942903003340.177293", "%2f", +__LINE__, 4.251238996137952e-05, "4.25124E-05", "%3G", +__LINE__, 4.262432542017438e+13, "42624325420174.375978", "%1f", +__LINE__, 4.266383084300715e+16, "4E+16", "%4.G", +__LINE__, 4.292963398931474e-11, "4.292963E-11", "%E", +__LINE__, 4.296530271399131e-29, "0.000000", "%6f", +__LINE__, 4.303753949741171e+19, "4.30375E+19", "%2G", +__LINE__, 4.303767633827431e-28, "4.30377e-28", "%g", +__LINE__, 4.316181911403991e-30, "4.3162e-30", "%#7.5g", +__LINE__, 4.318654697213126e-18, "4.31865e-18", "%g", +__LINE__, 4.320618603119499e+05, "432061.860312", "%3f", +__LINE__, 4.322443609118441e+21, "4.32244E+21", "%7.5E", +__LINE__, 4.322522446810708e-15, "4.32252e-15", "%.6g", +__LINE__, 4.334728493589115e-18, "0.000000", "%f", +__LINE__, 4.335342531476346e-19, "4.33534E-19", "%G", +__LINE__, 4.340579325084176e-30, "4.34058e-30", "%#0.6g", +__LINE__, 4.340775659883185e+04, "43407.756599", "%6f", +__LINE__, 4.361131891528634e-14, " 4E-14", "%6.G", +__LINE__, 4.366662624371249e-02, "+0.04", "%+4.g", +__LINE__, 4.369919308458348e+28, "+4.36992e+28", "%+2g", +__LINE__, 4.369930393192433e-24, "4.369930e-24", "%e", +__LINE__, 4.376283118322521e-01, "0.437628", "%g", +__LINE__, 4.386868840825930e+19, "4.3869E+19", "%.5G", +__LINE__, 4.389349113395235e+05, "+4.389349e+05", "%+e", +__LINE__, 4.392447466753053e-08, "+4.392E-08", "%+.4G", +__LINE__, 4.394068619246889e-13, "4.39407e-13", "%6g", +__LINE__, 4.404889573700147e-09, "4.404890E-09", "%E", +__LINE__, 4.410531039373014e+05, "+4.41e+05", "%+.2e", +__LINE__, 4.412466606726400e-08, " 0.0", "%6.1f", +__LINE__, 4.414693719279123e+17, "4.414694e+17", "%e", +__LINE__, 4.417050329080679e-01, "+0.441705", "%+g", +__LINE__, 4.419509841929196e-10, "4.4195098E-10", "%.7E", +__LINE__, 4.421012777695611e+07, "+4.42101E+07", "%+0.6G", +__LINE__, 4.426387732151208e+11, "4.42639e+11", "%g", +__LINE__, 4.439567017550398e+26, "4.439567E+26", "%E", +__LINE__, 4.446479816166258e-21, "4.446480e-21", "%0e", +__LINE__, 4.453486178424380e+05, "445348.617842", "%f", +__LINE__, 4.455733696043438e+06, "4.45573e+06", "%3g", +__LINE__, 4.455870606312063e+16, "4.45587e+16", "%g", +__LINE__, 4.458776435431700e+22, "4e+22", "%1.g", +__LINE__, 4.466448605584151e-30, "0.000000", "%f", +__LINE__, 4.471063097005706e+16, "4.47106E+16", "%G", +__LINE__, 4.482001890035190e-22, "+4.482E-22", "%+G", +__LINE__, 4.493246870093631e+05, "449325", "%1G", +__LINE__, 4.496089639281023e+17, "4.49609e+17", "%g", +__LINE__, 4.515066070117557e+15, "4.51507e+15", "%g", +__LINE__, 4.518296460916194e+24, "+4.5183E+24", "%+G", +__LINE__, 4.526548719445596e+02, "452.655", "%6.3f", +__LINE__, 4.532756455106440e-26, "4.53e-26", "%4.2e", +__LINE__, 4.534466782633055e-14, "4.53447E-14", "%G", +__LINE__, 4.541313061854649e-14, "4.54131E-14", "%G", +__LINE__, 4.541848265404338e+02, " 5E+02", "%7.G", +__LINE__, 4.546603085406363e-26, "5E-26", "%3.G", +__LINE__, 4.557349604829375e+28, "+45573496048293753446500886639.", "%+#1.f", +__LINE__, 4.560736449944898e-27, "4.56074e-27", "%g", +__LINE__, 4.563726230559341e-15, "+0.0", "%+2.1f", +__LINE__, 4.572650965532532e-26, "+5E-26", "%+4.G", +__LINE__, 4.574369572115099e-10, "+0.000000", "%+2.6f", +__LINE__, 4.576480601519729e+28, "+4.576481e+28", "%+e", +__LINE__, 4.587487640650499e+02, "+458.75", "%+3.2f", +__LINE__, 4.598365231538559e-27, "4.59837E-27", "%G", +__LINE__, 4.599348244725009e-28, "+4.5993482e-28", "%+#3.7e", +__LINE__, 4.599897524047587e+22, "45998975240475870052136.997401", "%#f", +__LINE__, 4.605415604725077e-25, "0.000000", "%f", +__LINE__, 4.613055015797716e+28, "4.613055E+28", "%E", +__LINE__, 4.618715275814238e-10, "4.618715E-10", "%E", +__LINE__, 4.619044579489540e-14, "0.00", "%.2f", +__LINE__, 4.633693310095410e-20, "+0.000000", "%+f", +__LINE__, 4.648505395281916e-28, "0.000000", "%f", +__LINE__, 4.651232770446398e+21, "4.65e+21", "%.2e", +__LINE__, 4.659743589975352e+28, "+4.65974e+28", "%+g", +__LINE__, 4.660181457075208e-13, "4.66018e-13", "%g", +__LINE__, 4.669787018529686e+20, "4.66979e+20", "%g", +__LINE__, 4.672649286126732e-21, "4.6726E-21", "%4.5G", +__LINE__, 4.675431901120643e-11, " 0", "%3.f", +__LINE__, 4.684404068169945e+26, "468440406816994503458317922.2", "%6.1f", +__LINE__, 4.685438834234642e+19, "5.E+19", "%#6.G", +__LINE__, 4.688915890732712e+00, "+5e+00", "%+2.e", +__LINE__, 4.692999432046297e+00, "4.692999E+00", "%E", +__LINE__, 4.708690772584701e+11, "4.70869e+11", "%g", +__LINE__, 4.711821455782105e-11, "+4.71182e-11", "%+1g", +__LINE__, 4.712413965116830e-01, "4.712414E-01", "%E", +__LINE__, 4.719504715401049e-08, "0.000000", "%f", +__LINE__, 4.719767896031655e+27, "4.71977e+27", "%#g", +__LINE__, 4.722493017411588e-05, "0.000047", "%4f", +__LINE__, 4.729482386761477e+08, "4.72948e+08", "%1g", +__LINE__, 4.730102169800602e-06, "0.000005", "%f", +__LINE__, 4.743951614209393e+24, "4.743952E+24", "%#E", +__LINE__, 4.746077075605921e-16, "4.746E-16", "%.3E", +__LINE__, 4.747802537919248e+24, "4747802537919247889419694", "%4.f", +__LINE__, 4.754727690703025e-26, "0", "%0.f", +__LINE__, 4.756952432926979e-29, " 0.", "%#3.f", +__LINE__, 4.758335147956709e+03, "4758.335148", "%f", +__LINE__, 4.760141880810268e-25, "4.760142e-25", "%e", +__LINE__, 4.767079423650815e-07, "5.E-07", "%#0.G", +__LINE__, 4.785662728343338e-28, "4.78566e-28", "%g", +__LINE__, 4.787146245774150e-13, "+4.78715E-13", "%+G", +__LINE__, 4.787415449888824e-17, "4.78742e-17", "%3g", +__LINE__, 4.794589807429657e-05, "4.79459E-05", "%6G", +__LINE__, 4.794948299666205e+08, "4.79495e+08", "%g", +__LINE__, 4.802292865915992e-04, "4.802293e-04", "%e", +__LINE__, 4.802513688198601e+07, "+4.8e+07", "%+2.3g", +__LINE__, 4.810456746192536e+06, "5E+06", "%0.0G", +__LINE__, 4.820631660081696e+20, "+4.82063E+20", "%+G", +__LINE__, 4.827865857270075e-20, "4.82787e-20", "%g", +__LINE__, 4.835054268490970e+21, "4835054268490970308391.752042", "%#f", +__LINE__, 4.838136770808465e-18, "4.83814E-18", "%G", +__LINE__, 4.839342397882353e-26, "4.839342E-26", "%E", +__LINE__, 4.845130210072029e-16, "0", "%1.f", +__LINE__, 4.845161043167169e-12, "+4.845e-12", "%+.4g", +__LINE__, 4.857425142494964e+01, "48.574251", "%f", +__LINE__, 4.858118337285513e-10, "+4.8581e-10", "%+.5g", +__LINE__, 4.867478343525339e-15, "+4.867478E-15", "%+E", +__LINE__, 4.886137001331278e-11, "0.000000", "%f", +__LINE__, 4.886835850687998e-20, " 0", "%6.0f", +__LINE__, 4.886880737482383e+26, "488688073748238327453918827.814050", "%4f", +__LINE__, 4.888812049144075e-22, "4.888812E-22", "%E", +__LINE__, 4.895869618002905e+02, "+489.587", "%+.7g", +__LINE__, 4.902046593298549e+09, " 5e+09", "%7.g", +__LINE__, 4.907918627564751e-05, "4.91e-05", "%.3g", +__LINE__, 4.916048355579009e+19, "49160483555790088772", "%2.f", +__LINE__, 4.917197806128638e+14, "+5e+14", "%+5.g", +__LINE__, 4.918303274189911e+13, "4.918303e+13", "%e", +__LINE__, 4.922687970321108e+26, "492268797032110771993984599.2485", "%0.4f", +__LINE__, 4.929263362431195e+14, "4.92926e+14", "%g", +__LINE__, 4.933385398543267e-17, "0.000000", "%#f", +__LINE__, 4.942367126455025e+00, " +5", "%+6.f", +__LINE__, 4.947687486717652e-04, "0.000495", "%.6f", +__LINE__, 4.960855200003128e-08, "+4.960855e-08", "%+e", +__LINE__, 4.968485435774085e-21, "0.0000", "%#2.4f", +__LINE__, 4.972088381506133e+01, "49.7", "%.1f", +__LINE__, 4.977561524480392e-15, "4.977562E-15", "%7E", +__LINE__, 4.984592111249502e-13, "5.0e-13", "%.1e", +__LINE__, 4.997502335602838e-14, "4.998e-14", "%6.4g", +__LINE__, 5.001731554335935e-09, "5.00173e-09", "%g", +__LINE__, 5.006231697107042e-17, "5.0062e-17", "%1.5g", +__LINE__, 5.008035801093423e+24, "5.008036E+24", "%#E", +__LINE__, 5.008756965733827e-28, "5.009E-28", "%.4G", +__LINE__, 5.009774027622812e+20, "+5.00977E+20", "%+G", +__LINE__, 5.010576312346293e+29, "5.01058E+29", "%G", +__LINE__, 5.012335250996786e+29, "5.012335e+29", "%.7g", +__LINE__, 5.012404365186907e+20, "5E+20", "%3.2G", +__LINE__, 5.024670103250229e-01, "+5.024670E-01", "%+E", +__LINE__, 5.025765369164560e+03, "5025.77", "%g", +__LINE__, 5.027173841003918e+11, "+5.02717E+11", "%+G", +__LINE__, 5.032093817639893e-26, "5e-26", "%3.e", +__LINE__, 5.039636818525848e-02, "0.050396", "%#f", +__LINE__, 5.040626671307691e+23, "5.040627E+23", "%E", +__LINE__, 5.040788233368296e-11, "+5.04079e-11", "%+g", +__LINE__, 5.040903321336150e-28, "5.0409E-28", "%G", +__LINE__, 5.042078512958994e+12, "5.04208E+12", "%G", +__LINE__, 5.045957900223303e+15, "5045957900223303", "%0.f", +__LINE__, 5.048298764352134e-14, "5.048299e-14", "%1e", +__LINE__, 5.048827326763192e+28, "50488273267631917917697137454.524636", "%f", +__LINE__, 5.049714558347361e-23, "5e-23", "%5.0g", +__LINE__, 5.051509904923853e+16, "50515099049238534", "%5.f", +__LINE__, 5.052789863743305e-10, "5.05279E-10", "%6G", +__LINE__, 5.057429728861999e-29, "0.000", "%#1.3f", +__LINE__, 5.075313093968501e-13, "+5.07531e-13", "%+g", +__LINE__, 5.075874503501582e+29, "5e+29", "%2.e", +__LINE__, 5.079468079020803e+01, "50.795", "%.5G", +__LINE__, 5.086214826494080e-28, " 0.0", "%4.1f", +__LINE__, 5.096054881114421e+13, "5.096e+13", "%.4g", +__LINE__, 5.099045274853458e-23, "5.09905E-23", "%0G", +__LINE__, 5.100248195124433e+00, "5.100248", "%f", +__LINE__, 5.101016114276598e-20, "5e-20", "%4.1g", +__LINE__, 5.103213528670269e+07, "51032135.286703", "%6f", +__LINE__, 5.108373625126768e+08, "+510837362.512677", "%+f", +__LINE__, 5.113097157183416e+07, "5.1131E+07", "%#.4E", +__LINE__, 5.114452611789777e+08, "+5.11445E+08", "%+G", +__LINE__, 5.117099184715288e-16, "5.1171E-16", "%G", +__LINE__, 5.119910534665511e-13, "+5.11991E-13", "%+G", +__LINE__, 5.121320931953720e+23, "+5.121321e+23", "%+#e", +__LINE__, 5.121900318443998e+06, "5.121900e+06", "%e", +__LINE__, 5.135698679084286e+00, "5.1357", "%2g", +__LINE__, 5.146355903104154e-10, "+5.14636E-10", "%+.6G", +__LINE__, 5.148754210958986e-24, "+5.148754e-24", "%+e", +__LINE__, 5.156238368448428e+26, "5e+26", "%5.g", +__LINE__, 5.159924520667922e-19, "+5E-19", "%+0.1G", +__LINE__, 5.159938266135425e-27, "0.000000", "%f", +__LINE__, 5.165915205175676e-01, "5.165915e-01", "%e", +__LINE__, 5.190205499401547e-11, "5e-11", "%2.1g", +__LINE__, 5.193260005542003e+26, "5.19326e+26", "%#g", +__LINE__, 5.194732077318269e+08, "519473207.731827", "%f", +__LINE__, 5.196394616633798e-19, "0", "%.0f", +__LINE__, 5.206753628035638e+19, "5.20675e+19", "%6.6g", +__LINE__, 5.207364136540851e-23, " 0.000", "%6.3f", +__LINE__, 5.210672737132108e-09, "5.21067E-09", "%G", +__LINE__, 5.211423933057123e-20, "+5.21142E-20", "%+G", +__LINE__, 5.219749528363367e-27, "5.219750e-27", "%e", +__LINE__, 5.228031587478653e-06, "+5.2E-06", "%+3.1E", +__LINE__, 5.229303095005359e-25, "+0.000000", "%+#f", +__LINE__, 5.234703511938320e-06, " 0", "%7.f", +__LINE__, 5.235655046937822e-20, "5.235655E-20", "%.6E", +__LINE__, 5.237924986002288e-01, "+0.52379", "%+.5f", +__LINE__, 5.249148093603826e+20, "5.24915E+20", "%0G", +__LINE__, 5.262680920244596e+16, "5.26268E+16", "%G", +__LINE__, 5.267944704715845e-06, "5.e-06", "%#3.g", +__LINE__, 5.268543533730505e-08, "5.26854E-08", "%G", +__LINE__, 5.275727269515247e-02, "0.0527573", "%.6g", +__LINE__, 5.279215316873723e+24, "5279215316873722585455652.733799", "%f", +__LINE__, 5.284326985680811e+16, "52843269856808108.286828", "%6f", +__LINE__, 5.286192957344040e-10, "5.3E-10", "%.1E", +__LINE__, 5.289451976001091e-23, "5.28945E-23", "%G", +__LINE__, 5.289512908209300e+09, "+5.289513e+09", "%+e", +__LINE__, 5.295696957972123e+11, "5.296E+11", "%#.3E", +__LINE__, 5.303584684011050e+16, "53035846840110503.208621", "%f", +__LINE__, 5.310315581980172e+23, "531031558198017172855998", "%4.f", +__LINE__, 5.317492728410062e-14, "5.31749e-14", "%7g", +__LINE__, 5.324506949499409e+18, "5.3245E+18", "%.5G", +__LINE__, 5.329238068668336e-20, "5e-20", "%4.g", +__LINE__, 5.336050125161774e+14, "5.33605e+14", "%g", +__LINE__, 5.349921315003169e-17, "5.34992E-17", "%.6G", +__LINE__, 5.355648481782587e-20, "5.355648e-20", "%e", +__LINE__, 5.358945557589489e-26, "+5e-26", "%+0.g", +__LINE__, 5.359638846465574e+21, "5.359639E+21", "%E", +__LINE__, 5.377048469393900e+14, "5.377E+14", "%.5G", +__LINE__, 5.387471194156434e+23, "5.387471E+23", "%.7G", +__LINE__, 5.401622578962497e-03, "+0.0054", "%+5.2g", +__LINE__, 5.406882732497444e-16, "5.406883E-16", "%E", +__LINE__, 5.421474560523198e-11, "+5.42147e-11", "%+g", +__LINE__, 5.440249323479418e-26, "5.44025E-26", "%7G", +__LINE__, 5.440922682921101e-05, "5e-05", "%.1g", +__LINE__, 5.444400103673185e-01, "0.54444", "%G", +__LINE__, 5.449339470916152e+09, "5449339470.9162", "%.4f", +__LINE__, 5.451583259558706e-15, "5.e-15", "%#4.e", +__LINE__, 5.460153018660573e+26, "+546015301866057267687892817.775719", "%+f", +__LINE__, 5.477591210511918e+08, "+5.47759E+08", "%+0.5E", +__LINE__, 5.481665401407188e-02, "5.481665e-02", "%e", +__LINE__, 5.482670784411319e-16, "5E-16", "%4.G", +__LINE__, 5.487494580636099e+12, "5.48749e+12", "%g", +__LINE__, 5.508630369473937e-10, "5.508630e-10", "%e", +__LINE__, 5.528898001438273e+20, "6e+20", "%4.g", +__LINE__, 5.530331734443152e-24, " 6e-24", "%6.g", +__LINE__, 5.531704398969656e-24, "0.000000", "%f", +__LINE__, 5.539906569043238e+05, "+553990.656904", "%+f", +__LINE__, 5.554571854756323e-08, "+0.00000", "%+4.5f", +__LINE__, 5.555155069925145e-28, "5.55516e-28", "%g", +__LINE__, 5.555302705075539e-08, "+5.5553e-08", "%+g", +__LINE__, 5.563805076159055e-05, "5.563805e-05", "%e", +__LINE__, 5.565063508995002e+07, "5.565E+07", "%.3E", +__LINE__, 5.566281664807526e-08, "5.56628E-08", "%G", +__LINE__, 5.575245679736338e-08, "5.575246e-08", "%e", +__LINE__, 5.578254777281501e-21, "0.", "%#.0f", +__LINE__, 5.582389275770848e-01, " 0.6", "%5.G", +__LINE__, 5.592215029176133e-04, "0.00056", "%.2g", +__LINE__, 5.593536789867047e-25, "5.59354e-25", "%g", +__LINE__, 5.605652054074862e-03, " 0.006", "%8.G", +__LINE__, 5.606982382643258e+20, "+5.60698E+20", "%+G", +__LINE__, 5.614646821116853e-18, "5.6E-18", "%.2G", +__LINE__, 5.625586848606565e-11, "+5.62559E-11", "%+G", +__LINE__, 5.626300428046732e+26, " 6e+26", "%7.g", +__LINE__, 5.638236626881086e-17, " 6E-17", "%6.G", +__LINE__, 5.645744817075691e+04, "5.645745E+04", "%E", +__LINE__, 5.651410004691736e+06, "6.E+06", "%#3.E", +__LINE__, 5.659582345929256e-11, "+0.000000", "%+f", +__LINE__, 5.670968861413510e+16, "+5.67097E+16", "%+G", +__LINE__, 5.672476851235796e+01, "+56.724769", "%+0f", +__LINE__, 5.674563779921248e+28, " 6E+28", "%6.0G", +__LINE__, 5.675558529939025e+19, "5.67556e+19", "%3g", +__LINE__, 5.676326888314589e-08, " 6e-08", "%7.g", +__LINE__, 5.677928507840897e-30, "5.67793e-30", "%0g", +__LINE__, 5.686622552402630e-15, "5.69E-15", "%1.3G", +__LINE__, 5.710441686922142e-14, "5.710442E-14", "%E", +__LINE__, 5.713234603280163e-21, "0.00000", "%0.5f", +__LINE__, 5.714968959046963e+12, "5.71497e+12", "%g", +__LINE__, 5.722025141555638e-23, "5.72e-23", "%.2e", +__LINE__, 5.725398571007033e-09, "5.7254E-09", "%.6G", +__LINE__, 5.751604813862738e+18, "6E+18", "%.1G", +__LINE__, 5.761025444751985e+20, "5.76103e+20", "%g", +__LINE__, 5.762315767948593e+15, "5.76232e+15", "%4g", +__LINE__, 5.764528858586032e-15, "5.764529E-15", "%6.7G", +__LINE__, 5.766408541535810e-07, " 6E-07", "%6.1G", +__LINE__, 5.771831571087174e-01, "0.577183", "%f", +__LINE__, 5.790102497364865e-15, "+5.790102e-15", "%+e", +__LINE__, 5.790222335547785e-08, "5.79022e-08", "%0.6g", +__LINE__, 5.794082127091130e+21, "5794082127091130018925.468903", "%f", +__LINE__, 5.804568463644165e+28, "5.80457e+28", "%g", +__LINE__, 5.827356651901066e+20, "582735665190106555400.006982", "%f", +__LINE__, 5.837553387436408e+18, "5.837553E+18", "%3E", +__LINE__, 5.844458110907209e+22, "5.84446e+22", "%g", +__LINE__, 5.851672125746866e-19, "5.85167e-19", "%g", +__LINE__, 5.868843476784172e-12, "5.868843e-12", "%1.7g", +__LINE__, 5.870854146748864e-04, "0.000587", "%2.3g", +__LINE__, 5.877787821470433e+01, "+58.77788", "%+#3.5f", +__LINE__, 5.881333514866498e+04, "5.881334E+04", "%E", +__LINE__, 5.908427816128965e+28, "+5.908428E+28", "%+E", +__LINE__, 5.918139800007388e+07, "59181398.000074", "%f", +__LINE__, 5.925587467475260e+21, "5925587467475259551008.548442", "%f", +__LINE__, 5.930403502679683e-22, "5.9304E-22", "%.6G", +__LINE__, 5.961572644847521e+02, "+596.157", "%+G", +__LINE__, 5.968917715225198e-21, "5.96892e-21", "%4g", +__LINE__, 5.982184454670110e-08, "0", "%0.f", +__LINE__, 5.988414319040855e+09, "6E+09", "%0.G", +__LINE__, 5.996263783103995e-10, "5.996264e-10", "%e", +__LINE__, 6.004634162276014e-18, "6.00463e-18", "%g", +__LINE__, 6.018734975519166e-08, "6.01873E-08", "%G", +__LINE__, 6.029071822986717e-14, "0.0000000", "%.7f", +__LINE__, 6.030392278117406e+23, "6.030392e+23", "%e", +__LINE__, 6.034553399237175e-27, "+6.03455e-27", "%+g", +__LINE__, 6.034938873443862e+24, "6034938873443861595546877.651941", "%f", +__LINE__, 6.038929148003457e-16, "6.03893e-16", "%g", +__LINE__, 6.039149626573702e-13, "6.0391E-13", "%3.5G", +__LINE__, 6.041247664739301e+29, "6.041248E+29", "%3E", +__LINE__, 6.044220746789781e+20, "+6.04422e+20", "%+g", +__LINE__, 6.045775647107433e+19, "6E+19", "%2.G", +__LINE__, 6.051917010461611e-05, "6.05192E-05", "%G", +__LINE__, 6.059773181566425e+17, "+605977318156642486", "%+5.f", +__LINE__, 6.082239575475813e+01, "+6E+01", "%+.1G", +__LINE__, 6.093984174629151e+18, "6.093984e+18", "%e", +__LINE__, 6.102368380479137e+22, "6.1E+22", "%.2G", +__LINE__, 6.103097446204007e+25, "61030974462040070704915706.301108", "%#0f", +__LINE__, 6.105244994410556e-24, "0.0000000", "%2.7f", +__LINE__, 6.110828906801633e-14, "+6.110829e-14", "%+3e", +__LINE__, 6.124439072468681e-30, "6.12444e-30", "%g", +__LINE__, 6.127714703273447e-15, "0", "%0.f", +__LINE__, 6.128539582408870e-15, "6.12854e-15", "%g", +__LINE__, 6.145470264744349e+24, "6145470264744348654062378.045637", "%f", +__LINE__, 6.159177701667455e+26, "615917770166745537352426254.074089", "%#f", +__LINE__, 6.159348213337442e+17, "6.15935e+17", "%g", +__LINE__, 6.161953891020492e-21, "0.000000", "%f", +__LINE__, 6.169474192777305e+29, "+6.169E+29", "%+.4G", +__LINE__, 6.198519761010651e-15, "+0", "%+1.f", +__LINE__, 6.201381824304919e-27, " 0", "%5.f", +__LINE__, 6.204387065736372e-18, "6.204387E-18", "%7E", +__LINE__, 6.209270088144063e-24, "0.000000", "%f", +__LINE__, 6.209871738353546e-20, "6.20987E-20", "%G", +__LINE__, 6.222733191871026e+14, "+6.22273e+14", "%+g", +__LINE__, 6.234670085354310e+04, "+62346.700854", "%+f", +__LINE__, 6.258389346602224e-09, "6E-09", "%.0G", +__LINE__, 6.263326582587503e+12, "6263326582588.", "%#5.f", +__LINE__, 6.272768026763922e+03, "+6272.77", "%+g", +__LINE__, 6.287747868625765e+00, "6E+00", "%.0E", +__LINE__, 6.297724027388795e-17, "+6E-17", "%+3.G", +__LINE__, 6.309940679156400e+27, "6.30994e+27", "%6.5e", +__LINE__, 6.312960327030170e+06, "+6.312960E+06", "%+E", +__LINE__, 6.317658179632976e+02, "+631.766", "%+g", +__LINE__, 6.321255960699571e-27, "0.000000", "%f", +__LINE__, 6.323069932833900e+03, "6323", "%.4G", +__LINE__, 6.337027835933034e+21, "6.33703e+21", "%#g", +__LINE__, 6.343583177899838e-03, "0.00634358", "%7G", +__LINE__, 6.347464241733904e-03, "6.e-03", "%#0.e", +__LINE__, 6.352038720353924e+07, "63520387.203539", "%f", +__LINE__, 6.355292378565109e+23, "+635529237856510942350496.407016", "%+f", +__LINE__, 6.377901944439164e-29, "0.000", "%2.3f", +__LINE__, 6.378660255554053e-04, "6.37866E-04", "%.5E", +__LINE__, 6.382838195255167e-18, "0.000000", "%f", +__LINE__, 6.391046303581911e+22, "6E+22", "%.0G", +__LINE__, 6.404812348309621e+22, "6.404812E+22", "%.7G", +__LINE__, 6.406154091357119e+16, "6.40615E+16", "%G", +__LINE__, 6.419414726557980e+21, "+6.41941e+21", "%+g", +__LINE__, 6.432166563008504e+10, " +6e+10", "%+7.g", +__LINE__, 6.438463704193190e+19, "6.438464e+19", "%e", +__LINE__, 6.445270237908565e+15, "+6.445270E+15", "%+E", +__LINE__, 6.445536770502964e+09, "6.446e+09", "%.3e", +__LINE__, 6.446614224811444e+28, "64466142248114444157636171439.662576", "%f", +__LINE__, 6.457046289718297e+18, "6457046289718297416.015957", "%4f", +__LINE__, 6.457682856890173e+01, "6.457683E+01", "%2E", +__LINE__, 6.471026352792729e-16, "+6.47103e-16", "%+g", +__LINE__, 6.474527749567342e+19, "6E+19", "%.1G", +__LINE__, 6.481178401781131e-24, "+6.48E-24", "%+6.3G", +__LINE__, 6.490736647261461e-15, "+6.49074e-15", "%+g", +__LINE__, 6.493196535069719e+23, "+6.4932E+23", "%+G", +__LINE__, 6.500296992935538e-20, "+0.0", "%+.1f", +__LINE__, 6.502867735895890e-19, "+0.000000", "%+6f", +__LINE__, 6.506627529164683e+14, "650662752916468", "%5.f", +__LINE__, 6.511909298966434e-15, "+6.51191E-15", "%+G", +__LINE__, 6.514463062693312e+01, "65.1446", "%G", +__LINE__, 6.520721469484543e+16, "6.52072E+16", "%G", +__LINE__, 6.528064508731680e-05, "6.528065E-05", "%7E", +__LINE__, 6.529007214194039e-24, "0.000000", "%f", +__LINE__, 6.537822760557410e-23, "0.000000", "%f", +__LINE__, 6.552222096390805e+29, "+6.55222E+29", "%+G", +__LINE__, 6.554569862717104e+12, "6.55457E+12", "%G", +__LINE__, 6.563440840359989e-30, "7E-30", "%4.G", +__LINE__, 6.586246985535526e+17, "6.58625E+17", "%#4G", +__LINE__, 6.593339522442827e+16, "6.6E+16", "%#4.1E", +__LINE__, 6.611179030024350e+02, "7E+02", "%4.E", +__LINE__, 6.617541638586767e-10, "6.617542E-10", "%E", +__LINE__, 6.619147920886991e-28, "7e-28", "%.1g", +__LINE__, 6.622304444772819e-21, "6.62230E-21", "%#4G", +__LINE__, 6.634766655157910e+12, "6634766655158", "%2.f", +__LINE__, 6.635639771921218e+25, "+6.63564E+25", "%+G", +__LINE__, 6.644575305929087e+17, "+6.64458e+17", "%+g", +__LINE__, 6.648697591328432e+04, "6.648698E+04", "%3E", +__LINE__, 6.665426012448100e+09, "6.66543E+09", "%G", +__LINE__, 6.675222780441723e-23, "6.67522e-23", "%1g", +__LINE__, 6.689765053880623e+00, "6.6898", "%.5g", +__LINE__, 6.693874943680238e+25, "7.e+25", "%#1.g", +__LINE__, 6.695033453546435e+19, "6.695033E+19", "%E", +__LINE__, 6.720131534244976e+03, "+6720.132", "%+.3f", +__LINE__, 6.725287004784564e+19, "+6.72529e+19", "%+g", +__LINE__, 6.743599626906313e-18, "0.0000000", "%7.7f", +__LINE__, 6.755534260704152e+29, "7.e+29", "%#5.e", +__LINE__, 6.761855244766418e-18, "6.8E-18", "%.2G", +__LINE__, 6.764974143681080e-02, "6.765E-02", "%2.3E", +__LINE__, 6.766924477711975e-17, "0.000000", "%4f", +__LINE__, 6.772195434106330e-19, "6.7722E-19", "%G", +__LINE__, 6.779433073319225e-23, "0.00", "%.2f", +__LINE__, 6.790317710068964e+05, "6.8e+05", "%.1e", +__LINE__, 6.791378160292960e+02, "679.137816", "%f", +__LINE__, 6.798381262104190e-27, "0.000000", "%f", +__LINE__, 6.804165939424860e-14, "7e-14", "%4.g", +__LINE__, 6.810668670623699e+11, "681066867062.369852", "%f", +__LINE__, 6.838942637635821e-17, "+6.84e-17", "%+.2e", +__LINE__, 6.868523988329111e-09, "+6.868524e-09", "%+e", +__LINE__, 6.873228061403223e-15, "6.873228E-15", "%3E", +__LINE__, 6.879370500093334e-12, "+0.000000", "%+f", +__LINE__, 6.891525498686674e-10, "7e-10", "%0.g", +__LINE__, 6.923027319286220e+21, "7.e+21", "%#1.g", +__LINE__, 6.923565533024560e-11, "+6.92357e-11", "%+g", +__LINE__, 6.931415640770737e-24, "+6.93142e-24", "%+g", +__LINE__, 6.936582619246057e+09, "6.936583e+09", "%7e", +__LINE__, 6.938661496670582e+05, "693866.1496671", "%2.7f", +__LINE__, 6.946115378286550e-25, "0.000000", "%f", +__LINE__, 6.955823211921219e-09, "6.95582e-09", "%g", +__LINE__, 6.962365243425770e+29, "696236524342577034474288666388.019919", "%7f", +__LINE__, 6.970432274812882e+05, "+7e+05", "%+1.0e", +__LINE__, 6.975784942897122e-13, "6.975785e-13", "%e", +__LINE__, 6.976786489904214e-07, "6.97679E-07", "%3G", +__LINE__, 6.985245976357042e-05, "0.00", "%.2f", +__LINE__, 6.993402879410720e-21, "6.9934e-21", "%g", +__LINE__, 7.012183985341519e+28, "+70121839853415188770213717362", "%+2.f", +__LINE__, 7.028670648856025e-15, "7.028671e-15", "%.7g", +__LINE__, 7.034042985683665e-03, " 0", "%2.f", +__LINE__, 7.044054273278726e+18, "7.044e+18", "%7.4g", +__LINE__, 7.049706744250734e-06, "7E-06", "%0.E", +__LINE__, 7.061982657056197e+13, "+7.061983e+13", "%+e", +__LINE__, 7.066873668945899e+21, "7.06687E+21", "%G", +__LINE__, 7.087941418633258e+26, "7.08794E+26", "%G", +__LINE__, 7.108268134631547e+22, "7.108268E+22", "%E", +__LINE__, 7.112095848565475e-19, "7.1121e-19", "%g", +__LINE__, 7.116326241291862e+16, "7.116326e+16", "%e", +__LINE__, 7.118854843597607e-22, "0.000000", "%f", +__LINE__, 7.121423043456375e-27, "0.000000", "%f", +__LINE__, 7.131415427096460e-03, "0.007131", "%3f", +__LINE__, 7.132023279679892e+22, "7.e+22", "%#3.e", +__LINE__, 7.146250280189992e-18, "0.000000", "%f", +__LINE__, 7.150059058390724e+03, "7150.06", "%g", +__LINE__, 7.161081578177381e-02, "+0.0716108", "%+G", +__LINE__, 7.164935125149336e-27, "7.2E-27", "%#6.2G", +__LINE__, 7.173125717489549e-10, "7.173126e-10", "%e", +__LINE__, 7.174199549624193e+00, "7.1741995", "%.7f", +__LINE__, 7.192493588077649e+27, "7.19249e+27", "%g", +__LINE__, 7.215209568601445e-06, "7.215210e-06", "%e", +__LINE__, 7.238322284100497e+03, "7238.3", "%.1f", +__LINE__, 7.239203871123613e+06, "7239204", "%4.f", +__LINE__, 7.245809072577019e-09, "+7.245809E-09", "%+E", +__LINE__, 7.256275686433336e+03, "7.256276e+03", "%e", +__LINE__, 7.265774291605193e+27, "+7.26577E+27", "%+G", +__LINE__, 7.287968172227119e-21, "+7.287968e-21", "%+e", +__LINE__, 7.306020169678527e+12, "7E+12", "%2.E", +__LINE__, 7.315587463572568e-04, "0.", "%#.0f", +__LINE__, 7.324627764547963e+09, "7.324628E+09", "%#E", +__LINE__, 7.331904966719081e-06, "+7.3319E-06", "%+G", +__LINE__, 7.334448152798243e-02, "0.07", "%0.g", +__LINE__, 7.334487195961240e-01, "+0.733449", "%+#g", +__LINE__, 7.381283575515707e+13, "7.381284E+13", "%E", +__LINE__, 7.394854567245476e-11, "0.000000", "%7f", +__LINE__, 7.401950211415377e-08, " 7e-08", "%6.e", +__LINE__, 7.409023867864680e+03, "7409.023868", "%#3f", +__LINE__, 7.411912956257733e-20, "7e-20", "%0.g", +__LINE__, 7.445275019272160e+11, "744527501927.2159511", "%.7f", +__LINE__, 7.450279765616891e-16, "7.45028e-16", "%.6g", +__LINE__, 7.467047411334495e+14, "7.46705E+14", "%G", +__LINE__, 7.485628870972725e+28, "7E+28", "%.0G", +__LINE__, 7.495391782588563e+11, "749539178258.856253", "%f", +__LINE__, 7.495824101611911e+06, "7.49582e+06", "%.6g", +__LINE__, 7.499759867592402e+20, "+749975986759240154100.3", "%+.1f", +__LINE__, 7.508983397140368e+04, "75089.8", "%g", +__LINE__, 7.512585199581016e-27, "7.512585E-27", "%.6E", +__LINE__, 7.516831372212545e-29, "+7.516831e-29", "%+e", +__LINE__, 7.525789465978582e+00, "7.52579", "%G", +__LINE__, 7.528655653725963e+06, "7.5287e+06", "%3.4e", +__LINE__, 7.533217421035612e+28, "75332174210356122046050586504.861712", "%f", +__LINE__, 7.534147071756384e+03, "7534.15", "%g", +__LINE__, 7.542648637430919e-25, "+0.000000", "%+#f", +__LINE__, 7.554380140947798e-15, " 8e-15", "%7.g", +__LINE__, 7.557366996007743e+25, " 8E+25", "%7.G", +__LINE__, 7.579228950138068e+08, "8e+08", "%3.e", +__LINE__, 7.579773904052487e-13, "0.000000", "%3f", +__LINE__, 7.580377544554059e+27, "7.58038e+27", "%#g", +__LINE__, 7.589615147875915e-15, "7.59E-15", "%.3G", +__LINE__, 7.593317194045158e-12, "+0.", "%+#1.f", +__LINE__, 7.605535657484387e-07, "7.60554E-07", "%G", +__LINE__, 7.609171121278006e-08, " 0", "%5.f", +__LINE__, 7.612033900317304e-14, "7.61203e-14", "%g", +__LINE__, 7.628040858080326e+23, "+7.62804e+23", "%+g", +__LINE__, 7.632109382948695e-01, "0.763211", "%#f", +__LINE__, 7.633415922627254e+28, "76334159226272539910951309138.908982", "%#f", +__LINE__, 7.636190400774419e+22, "+7.636190E+22", "%+E", +__LINE__, 7.636228368661314e-23, "0.000000", "%f", +__LINE__, 7.653292362739654e-17, "7.65329E-17", "%#G", +__LINE__, 7.664044705231460e+03, "7.664045E+03", "%5E", +__LINE__, 7.664257283149626e-05, "7.66426E-05", "%0G", +__LINE__, 7.668996632821614e-19, " 0.0", "%4.1f", +__LINE__, 7.674502669497263e-24, "7.6745e-24", "%g", +__LINE__, 7.681870119755193e+12, "+7.68187e+12", "%+#g", +__LINE__, 7.693453198401315e+02, "769.3453198", "%5.7f", +__LINE__, 7.705080073293603e-29, "7.705080E-29", "%1E", +__LINE__, 7.707244083934683e-07, "7.71E-07", "%2.3G", +__LINE__, 7.749445584970652e-17, "7.75E-17", "%6.3G", +__LINE__, 7.755369447889403e+09, "7.8e+09", "%#4.2g", +__LINE__, 7.760378169707072e-06, "7.76038e-06", "%g", +__LINE__, 7.763518882114968e-10, "0.000000", "%f", +__LINE__, 7.764720069569677e-18, "0.000000", "%0f", +__LINE__, 7.768821339438552e-03, "0.00776882", "%g", +__LINE__, 7.774767835990679e-29, "7.774768E-29", "%7E", +__LINE__, 7.805567188246987e-04, "0.000780557", "%2G", +__LINE__, 7.825157442935941e-26, "0.000000", "%f", +__LINE__, 7.833373563161910e+29, "+783337356316190991378789476584.643126", "%+f", +__LINE__, 7.875872661746674e-16, "7.875873E-16", "%E", +__LINE__, 7.880664458920439e-28, "7.881E-28", "%#0.3E", +__LINE__, 7.893084198630288e+18, "7893084198630288206", "%1.f", +__LINE__, 7.912222737877417e+04, "79122.2", "%G", +__LINE__, 7.913004582748724e-26, "0.000000", "%f", +__LINE__, 7.913749944463836e+17, "791374994446383617.230367", "%f", +__LINE__, 7.923881665760883e-24, "0.000000", "%f", +__LINE__, 7.926699779993694e-03, "0.007927", "%5.6f", +__LINE__, 7.941991860623354e-20, "7.941992e-20", "%e", +__LINE__, 7.942700358097138e+17, "794270035809713803.587329", "%2f", +__LINE__, 7.945451569935757e-16, "7.94545E-16", "%#4.6G", +__LINE__, 7.948277588625241e-04, "0", "%.0f", +__LINE__, 7.952265062569124e+21, "+7.95227e+21", "%+#g", +__LINE__, 7.959953534668040e+11, "8e+11", "%2.e", +__LINE__, 7.962059154424500e-22, "7.96206E-22", "%G", +__LINE__, 7.962856142535673e-26, "7.9629E-26", "%#.5G", +__LINE__, 7.966528574505771e+12, "7.96653e+12", "%g", +__LINE__, 8.006496880305429e-21, "8.0065E-21", "%G", +__LINE__, 8.023374861440542e+06, "+8023375", "%+6.f", +__LINE__, 8.041139717082990e-20, "8.04114e-20", "%g", +__LINE__, 8.044201752824126e+15, "8.04420E+15", "%.5E", +__LINE__, 8.044262927409321e-10, "+8E-10", "%+2.2G", +__LINE__, 8.058285708061202e+02, "+8.058286e+02", "%+e", +__LINE__, 8.104422320765144e+10, "8.10442e+10", "%#4g", +__LINE__, 8.104572628022330e-11, "0.000000", "%f", +__LINE__, 8.112156369917432e+15, "+8.11216E+15", "%+G", +__LINE__, 8.114566569709531e-18, "8.11457E-18", "%G", +__LINE__, 8.114795069552519e+13, "8.114795E+13", "%E", +__LINE__, 8.121382719830660e+03, "8121.382720", "%f", +__LINE__, 8.125179335533733e-12, "+8.125179e-12", "%+e", +__LINE__, 8.126383949107055e+19, "81263839491070548604.056967", "%f", +__LINE__, 8.129961701307842e-04, "+0.00081", "%+5.2g", +__LINE__, 8.143780077390936e+15, "8.14378E+15", "%G", +__LINE__, 8.149891507777399e+16, "+8E+16", "%+1.G", +__LINE__, 8.167395708830107e+03, "8167", "%3.f", +__LINE__, 8.167703619221975e+01, "81.677", "%G", +__LINE__, 8.178463030771759e+06, "+8.17846E+06", "%+G", +__LINE__, 8.188188531273697e+12, "8.18819E+12", "%G", +__LINE__, 8.189094866416537e+11, "+8E+11", "%+.1G", +__LINE__, 8.205086844365809e-18, "+8.205087E-18", "%+#E", +__LINE__, 8.205762333408320e-26, "0.000000", "%f", +__LINE__, 8.212370598174696e-10, "8.2124E-10", "%.5G", +__LINE__, 8.228054316085489e-14, "0.000000", "%3f", +__LINE__, 8.244313484402404e-16, "8.24431e-16", "%g", +__LINE__, 8.244472235472472e+19, "8.24447E+19", "%G", +__LINE__, 8.245421473302411e-09, "+8.2454e-09", "%+1.5g", +__LINE__, 8.252286626634840e-22, "8E-22", "%3.G", +__LINE__, 8.259969177912707e-19, "0.000000", "%f", +__LINE__, 8.265769991725211e+18, "8.26577e+18", "%.5e", +__LINE__, 8.293986939496488e+25, "8.3E+25", "%.1E", +__LINE__, 8.310348813512608e-23, "+8.31035e-23", "%+g", +__LINE__, 8.316951996533247e-20, "0.000000", "%f", +__LINE__, 8.318818016883803e+05, " 8e+05", "%6.1g", +__LINE__, 8.324896920131877e-13, "+8.324897e-13", "%+e", +__LINE__, 8.325228630004624e-03, "0.0083252", "%5.7f", +__LINE__, 8.332538660129034e+14, "8.3e+14", "%5.2g", +__LINE__, 8.343325212751775e+07, "8.34333e+07", "%#4g", +__LINE__, 8.363117398136236e+20, "+8.36e+20", "%+.3g", +__LINE__, 8.364181324448165e+27, "8.36418e+27", "%#g", +__LINE__, 8.372159259848738e+10, "8.37216e+10", "%4g", +__LINE__, 8.379252006152759e-26, "8.37925e-26", "%g", +__LINE__, 8.392670395720252e+09, "8392670395.720252", "%f", +__LINE__, 8.423360059147756e+05, "+842336.", "%+#G", +__LINE__, 8.425921213167943e+09, "8.425921e+09", "%1.7g", +__LINE__, 8.431664412515776e-16, "8.43166E-16", "%#G", +__LINE__, 8.448608859842500e+02, "844.861", "%1.3f", +__LINE__, 8.456292247478771e-14, "8.45629E-14", "%G", +__LINE__, 8.460077225296853e-04, "0.000846008", "%G", +__LINE__, 8.478635925746218e-10, "0.000000", "%f", +__LINE__, 8.492455774427448e+06, "8.49246e+06", "%g", +__LINE__, 8.494450528380746e-07, "8.494451e-07", "%e", +__LINE__, 8.516435842947605e-23, "+0.000000", "%+1f", +__LINE__, 8.519057789029134e-18, "0.000000", "%0f", +__LINE__, 8.522602111109066e+18, " 9.e+18", "%#7.g", +__LINE__, 8.529176788022152e-24, "8.529E-24", "%0.4G", +__LINE__, 8.534979605642793e-07, "0.000001", "%f", +__LINE__, 8.546859563634342e-07, "8.546860E-07", "%E", +__LINE__, 8.552370027054106e+12, "9e+12", "%.0g", +__LINE__, 8.561781328234041e+10, "8.56178e+10", "%4g", +__LINE__, 8.562688793145107e-20, "8.562689e-20", "%1.7g", +__LINE__, 8.573130147270046e-07, " 9E-07", "%7.G", +__LINE__, 8.584571984387802e-18, "8.5846e-18", "%.5g", +__LINE__, 8.596407996491291e+11, "8.596408E+11", "%#E", +__LINE__, 8.604843726850381e+10, " 9E+10", "%6.G", +__LINE__, 8.626884271938994e-23, "8.62688e-23", "%g", +__LINE__, 8.631140282429168e+24, "8631140282429168308908629.", "%#.0f", +__LINE__, 8.635194331917948e-16, "8.63519E-16", "%G", +__LINE__, 8.641417311588688e-24, "+0.000000", "%+f", +__LINE__, 8.649120264278466e+26, "8.65E+26", "%1.3G", +__LINE__, 8.649745523383894e+06, "8.649746e+06", "%e", +__LINE__, 8.654720740091021e+16, "8.65472e+16", "%g", +__LINE__, 8.655445556834509e-08, "9e-08", "%4.g", +__LINE__, 8.658954696751902e+06, "8.65895E+06", "%G", +__LINE__, 8.665712368800818e-10, "+8.66571E-10", "%+G", +__LINE__, 8.666937057116442e-10, "8.666937e-10", "%e", +__LINE__, 8.670981239765155e+05, "867098", "%G", +__LINE__, 8.679631934294932e-25, "+9.E-25", "%+#0.G", +__LINE__, 8.683595173050962e-21, "8.68360E-21", "%#G", +__LINE__, 8.684938704958039e+25, "8.684939E+25", "%E", +__LINE__, 8.686745463281227e-12, "8.686745E-12", "%5.7G", +__LINE__, 8.700227628706534e-12, "8.700228e-12", "%#e", +__LINE__, 8.705101179577200e+04, "87051.011796", "%#2f", +__LINE__, 8.707824829984700e-24, "9e-24", "%.1g", +__LINE__, 8.717654041009233e+21, "+9E+21", "%+6.0E", +__LINE__, 8.741736299906572e-11, "8.74174E-11", "%#0G", +__LINE__, 8.742228350419966e+18, "+8742228350419965821.060941", "%+f", +__LINE__, 8.743045146087558e-17, "+8.74305E-17", "%+2G", +__LINE__, 8.747820269457588e+18, "8.74782E+18", "%G", +__LINE__, 8.756274717008537e-28, "8.756275E-28", "%E", +__LINE__, 8.769782309254687e-24, "+8.769782E-24", "%+2.6E", +__LINE__, 8.788151659193398e-16, " 9E-16", "%6.E", +__LINE__, 8.789514812202340e-07, "9E-07", "%0.G", +__LINE__, 8.792657843164822e-07, "8.79266e-07", "%0g", +__LINE__, 8.810976223440985e+05, "881097.622344", "%f", +__LINE__, 8.822553973113614e+10, "8.82255E+10", "%G", +__LINE__, 8.839440421530611e-04, "0.000883944", "%G", +__LINE__, 8.842539073558434e-12, "0", "%1.f", +__LINE__, 8.882818021261782e-13, "+8.9e-13", "%+4.2g", +__LINE__, 8.899833909201039e+05, "8.8998E+05", "%.5G", +__LINE__, 8.903167498000181e-13, "9e-13", "%0.g", +__LINE__, 8.933727737932164e+09, "+8933727738", "%+4.f", +__LINE__, 8.946226267100711e+06, "8.946E+06", "%1.4G", +__LINE__, 8.953203780849794e-21, "8.9532E-21", "%G", +__LINE__, 8.959934262635649e+28, "+8.959934e+28", "%+e", +__LINE__, 8.969485341781558e-25, "0.000000", "%#f", +__LINE__, 8.970058187654221e+02, "897.005819", "%f", +__LINE__, 8.979846508565979e+02, "8.979847E+02", "%E", +__LINE__, 8.984561117901212e+01, "8.984561E+01", "%E", +__LINE__, 8.992157765875611e-12, "8.99216e-12", "%g", +__LINE__, 9.004487016708012e+01, "9.004487e+01", "%#e", +__LINE__, 9.007306978283218e-24, "9.007307e-24", "%e", +__LINE__, 9.014546375043562e+17, "901454637504356171.007203", "%#3f", +__LINE__, 9.028177786002161e-12, "9.02818E-12", "%G", +__LINE__, 9.029635986381795e-02, "0.09", "%.1g", +__LINE__, 9.032389962233431e-07, "+0.000001", "%+f", +__LINE__, 9.038466945070887e+10, "+9.038467E+10", "%+E", +__LINE__, 9.040166964322772e-27, "9.04017e-27", "%g", +__LINE__, 9.044627673694681e-11, "9.04463E-11", "%G", +__LINE__, 9.045906217628948e+17, "904590621762894819.823941", "%1f", +__LINE__, 9.051764975661710e+11, "9.05176e+11", "%#g", +__LINE__, 9.053142913711405e+29, "9.053143e+29", "%#e", +__LINE__, 9.073185209160657e-19, "+9.07319e-19", "%+g", +__LINE__, 9.074372574441451e+02, "907.437", "%g", +__LINE__, 9.084624602048136e+08, "9.084625E+08", "%E", +__LINE__, 9.088839346363631e+18, "9.09e+18", "%.2e", +__LINE__, 9.091945159170871e-15, "9.09195e-15", "%5g", +__LINE__, 9.115304318083716e+10, "9.115304e+10", "%e", +__LINE__, 9.115978352902710e+28, "9.11598E+28", "%G", +__LINE__, 9.121415008221017e-17, "9.E-17", "%#6.G", +__LINE__, 9.127270978060388e+18, "9.E+18", "%#5.G", +__LINE__, 9.143941729069086e+08, "9.143942E+08", "%#E", +__LINE__, 9.162740105978580e-19, " 9.E-19", "%#7.G", +__LINE__, 9.221509957559626e-18, "9.22151e-18", "%g", +__LINE__, 9.227419774250317e-28, " 0.", "%#3.f", +__LINE__, 9.230846660807540e-21, "0.000000", "%f", +__LINE__, 9.238091727277130e-06, "+0.00001", "%+.5f", +__LINE__, 9.244337357684406e+10, "9E+10", "%5.G", +__LINE__, 9.259179793993285e-19, " 9E-19", "%7.0G", +__LINE__, 9.274068541525759e-17, "9.274069e-17", "%e", +__LINE__, 9.283833535882367e+16, "9.28383e+16", "%#g", +__LINE__, 9.295693096364605e+11, "+9.295693E+11", "%+E", +__LINE__, 9.301820438602407e+05, "930182", "%G", +__LINE__, 9.322805251555376e-29, "9e-29", "%1.e", +__LINE__, 9.358443042421307e-27, "9.35844e-27", "%g", +__LINE__, 9.372658444745124e-23, "9.372658e-23", "%e", +__LINE__, 9.380302971355292e+05, "938030.3", "%.7g", +__LINE__, 9.381976354968076e-26, "+9.382E-26", "%+5.4G", +__LINE__, 9.391072061980585e-15, "9.391072E-15", "%E", +__LINE__, 9.403554117166546e-06, "0.000009", "%f", +__LINE__, 9.403712900426614e-28, "9.40371e-28", "%g", +__LINE__, 9.419046629820578e+03, "9419.046630", "%f", +__LINE__, 9.422344695378412e+22, "94223446953784115720509.362291", "%f", +__LINE__, 9.433327680467576e+01, "9.433328e+01", "%e", +__LINE__, 9.443975205260596e+20, "9.44398e+20", "%g", +__LINE__, 9.445134851965593e-04, "+9.445135E-04", "%+E", +__LINE__, 9.448403585149890e+24, "9e+24", "%0.g", +__LINE__, 9.463149430113036e+18, "9.46315e+18", "%g", +__LINE__, 9.465735160722534e+27, "+9465735160722534402566452627.070248", "%+f", +__LINE__, 9.495210794344892e-04, "0.000950", "%f", +__LINE__, 9.501916506373814e-25, "9.50192E-25", "%#G", +__LINE__, 9.514641335897739e+29, "9.51464E+29", "%G", +__LINE__, 9.524633436992819e-04, " 0.001", "%6.G", +__LINE__, 9.530925101873022e-18, "9.530925e-18", "%2e", +__LINE__, 9.557903833216979e-22, "9.557904E-22", "%E", +__LINE__, 9.587709102390903e-01, " 1", "%2.f", +__LINE__, 9.592723000828453e-02, "9.592723E-02", "%5E", +__LINE__, 9.603430008794172e+27, "9.60343e+27", "%g", +__LINE__, 9.622648414989433e-18, "9.622648e-18", "%1e", +__LINE__, 9.633326171289319e-23, "9.633326e-23", "%e", +__LINE__, 9.662064616152408e+19, "96620646161524081918.5146393", "%1.7f", +__LINE__, 9.668544846563163e-23, "9.668545e-23", "%e", +__LINE__, 9.691014191346685e+28, "9.69101E+28", "%G", +__LINE__, 9.693075414840598e+02, "+969.308", "%+G", +__LINE__, 9.695013453291907e-30, "9.695013e-30", "%5e", +__LINE__, 9.705983477801926e-24, "9.70598e-24", "%g", +__LINE__, 9.709022568030226e-17, "0.000000", "%f", +__LINE__, 9.715194901854826e+20, "9.715195e+20", "%e", +__LINE__, 9.721011821337717e+16, "1E+17", "%0.G", +__LINE__, 9.734895542899672e+14, "9.734896e+14", "%e", +__LINE__, 9.741486438769710e-29, " 1e-28", "%6.g", +__LINE__, 9.766657482315475e-24, "9.76666E-24", "%7G", +__LINE__, 9.767283293054552e-02, "0.09767", "%5.5f", +__LINE__, 9.769553159146005e-20, "9.76955E-20", "%G", +__LINE__, 9.777220880605434e-10, "0.00", "%4.2f", +__LINE__, 9.790290569034575e+20, "979029056903457473027.", "%#6.f", +__LINE__, 9.793128245822718e-01, "0.979313", "%G", +__LINE__, 9.804758536498200e+08, "980475853.650", "%.3f", +__LINE__, 9.816883664191066e-02, "0.1", "%.0g", +__LINE__, 9.836109821010300e+25, "9.83611e+25", "%g", +__LINE__, 9.846197559631225e+03, "1E+04", "%2.G", +__LINE__, 9.863289416819924e+12, "9.86329e+12", "%g", +__LINE__, 9.865893798657353e+12, "9.866e+12", "%0.4g", +__LINE__, 9.868248446640862e-15, "0.000000", "%#f", +__LINE__, 9.869973080775134e+04, "98699.7", "%G", +__LINE__, 9.899444006312953e+20, "1E+21", "%.1G", +__LINE__, 9.904083146074285e-08, "9.904083e-08", "%6e", +__LINE__, 9.909790408255471e+15, "9909790408255471.305665", "%f", +__LINE__, 9.930297455798394e-13, "+9.930297E-13", "%+5.6E", +__LINE__, 9.933314448709083e-15, "9.93331E-15", "%#.6G", +__LINE__, 9.938714530509870e+29, "9.938715e+29", "%e", +__LINE__, 9.953892603540162e+07, "9.95389E+07", "%G", +__LINE__, 9.962084643867200e+14, "+996208464386720.038419", "%+f", +__LINE__, 9.977706708809947e-09, "9.9777E-09", "%#.4E", +#endif +__LINE__, 9.978034352999867e+15, "9.978034e+15", "%2.6e", +__LINE__, 9.998315286730175e-30, "9.998315e-30", "%6e", +0 +}; diff --git a/newlib/libm/test/sqrt_vec.c b/newlib/libm/test/sqrt_vec.c new file mode 100644 index 000000000..49bef146d --- /dev/null +++ b/newlib/libm/test/sqrt_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type sqrt_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3e60c357, 0x8c15393e, 0x3cd19000, 0x00000000}, /* 3.12236e-08=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3fb99999, 0x99999af9, 0x3f847ae1, 0x47ae16ad}, /* 0.10000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3fc21a18, 0x51ff6386, 0x3f947ae1, 0x47ae1594}, /* 0.14142=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3fc62b95, 0x86ad0a88, 0x3f9eb851, 0xeb851fd2}, /* 0.17320=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fc99999, 0x999999f2, 0x3fa47ae1, 0x47ae1508}, /* 0.20000=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fcc9f25, 0xc5bfee28, 0x3fa99999, 0x99999a27}, /* 0.22360=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3fcf5a7c, 0xecdb6892, 0x3faeb851, 0xeb851f46}, /* 0.24494=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fd0eecc, 0x87dbfa76, 0x3fb1eb85, 0x1eb85232}, /* 0.26457=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fd21a18, 0x51ff6329, 0x3fb47ae1, 0x47ae14c1}, /* 0.28284=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fd33333, 0x33333350, 0x3fb70a3d, 0x70a3d750}, /* 0.30000=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fd43d13, 0x6248492a, 0x3fb99999, 0x999999df}, /* 0.31622=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fd539f5, 0x433125de, 0x3fbc28f5, 0xc28f5c6e}, /* 0.33166=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fd62b95, 0x86ad0a3a, 0x3fbeb851, 0xeb851efd}, /* 0.34641=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fd71355, 0xd04de1a7, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.36055=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fd7f254, 0xdab9cc52, 0x3fc1eb85, 0x1eb8520e}, /* 0.37416=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fd8c97e, 0xf43f725e, 0x3fc33333, 0x33333356}, /* 0.38729=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fd99999, 0x999999b0, 0x3fc47ae1, 0x47ae149e}, /* 0.40000=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fda634b, 0xd77fe1ba, 0x3fc5c28f, 0x5c28f5e6}, /* 0.41231=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fdb2724, 0x7aff14a4, 0x3fc70a3d, 0x70a3d72e}, /* 0.42426=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fdbe59e, 0xba3a166f, 0x3fc851eb, 0x851eb876}, /* 0.43588=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fdc9f25, 0xc5bfedee, 0x3fc99999, 0x999999be}, /* 0.44721=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fdd5417, 0x8e8830e9, 0x3fcae147, 0xae147b06}, /* 0.45825=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fde04c6, 0xf553bdec, 0x3fcc28f5, 0xc28f5c4e}, /* 0.46904=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fdeb17d, 0x88be6d04, 0x3fcd70a3, 0xd70a3d96}, /* 0.47958=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fdf5a7c, 0xecdb685e, 0x3fceb851, 0xeb851ede}, /* 0.48989=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fe00000, 0x0000000a, 0x3fd00000, 0x00000013}, /* 0.50000=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fe0511d, 0xe5a82668, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.50990=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fe0a0b0, 0x2501c7a3, 0x3fd147ae, 0x147ae15b}, /* 0.51961=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fe0eecc, 0x87dbfa5e, 0x3fd1eb85, 0x1eb851ff}, /* 0.52915=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fe13b86, 0xea20ae66, 0x3fd28f5c, 0x28f5c2a3}, /* 0.53851=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fe186f1, 0x74f8847c, 0x3fd33333, 0x33333347}, /* 0.54772=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fe1d11c, 0xd1209b0c, 0x3fd3d70a, 0x3d70a3eb}, /* 0.55677=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fe21a18, 0x51ff6313, 0x3fd47ae1, 0x47ae148f}, /* 0.56568=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fe261f2, 0x1ab573fc, 0x3fd51eb8, 0x51eb8533}, /* 0.57445=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fe2a8b7, 0x3e294fbe, 0x3fd5c28f, 0x5c28f5d7}, /* 0.58309=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fe2ee73, 0xdadc9b60, 0x3fd66666, 0x6666667b}, /* 0.59160=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fe33333, 0x3333333c, 0x3fd70a3d, 0x70a3d71f}, /* 0.60000=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fe376ff, 0xc2b649d0, 0x3fd7ae14, 0x7ae147c3}, /* 0.60827=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fe3b9e3, 0x50c59eb6, 0x3fd851eb, 0x851eb867}, /* 0.61644=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fe3fbe7, 0x01157610, 0x3fd8f5c2, 0x8f5c290b}, /* 0.62449=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fe43d13, 0x62484918, 0x3fd99999, 0x999999af}, /* 0.63245=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fe47d70, 0x7ae665a2, 0x3fda3d70, 0xa3d70a53}, /* 0.64031=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fe4bd05, 0xd4eb41f2, 0x3fdae147, 0xae147af7}, /* 0.64807=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fe4fbda, 0x8817b456, 0x3fdb851e, 0xb851eb9b}, /* 0.65574=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fe539f5, 0x433125cc, 0x3fdc28f5, 0xc28f5c3f}, /* 0.66332=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fe5775c, 0x544ff26b, 0x3fdccccc, 0xcccccce3}, /* 0.67082=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fe5b415, 0xb05a4024, 0x3fdd70a3, 0xd70a3d87}, /* 0.67823=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fe5f026, 0xf9c4765a, 0x3fde147a, 0xe147ae2b}, /* 0.68556=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fe62b95, 0x86ad0a2a, 0x3fdeb851, 0xeb851ecf}, /* 0.69282=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fe66666, 0x6666666e, 0x3fdf5c28, 0xf5c28f73}, /* 0.70000=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe6a09e, 0x667f3bd4, 0x3fe00000, 0x0000000b}, /* 0.70710=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe6da42, 0x17576979, 0x3fe051eb, 0x851eb85d}, /* 0.71414=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe71355, 0xd04de197, 0x3fe0a3d7, 0x0a3d70af}, /* 0.72111=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe74bdd, 0xb3926328, 0x3fe0f5c2, 0x8f5c2901}, /* 0.72801=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe783dd, 0xb1a48e40, 0x3fe147ae, 0x147ae153}, /* 0.73484=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe7bb59, 0x8c88b4b4, 0x3fe19999, 0x999999a5}, /* 0.74161=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe7f254, 0xdab9cc42, 0x3fe1eb85, 0x1eb851f7}, /* 0.74833=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe828d3, 0x09df0c51, 0x3fe23d70, 0xa3d70a49}, /* 0.75498=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe85ed7, 0x614b0394, 0x3fe28f5c, 0x28f5c29b}, /* 0.76157=f(0.58000)*/ +{64, 0,123,__LINE__, 0x3fe89465, 0x04494bea, 0x3fe2e147, 0xae147aed}, /* 0.76811=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe8c97e, 0xf43f7250, 0x3fe33333, 0x3333333f}, /* 0.77459=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe8fe28, 0x12a529f5, 0x3fe3851e, 0xb851eb91}, /* 0.78102=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe93263, 0x22d7727c, 0x3fe3d70a, 0x3d70a3e3}, /* 0.78740=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe96632, 0xcbc9f786, 0x3fe428f5, 0xc28f5c35}, /* 0.79372=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe99999, 0x999999a1, 0x3fe47ae1, 0x47ae1487}, /* 0.80000=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe9cc99, 0xff02c488, 0x3fe4cccc, 0xccccccd9}, /* 0.80622=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe9ff36, 0x56bdf34e, 0x3fe51eb8, 0x51eb852b}, /* 0.81240=f(0.66000)*/ +{64, 0,123,__LINE__, 0x3fea3170, 0xe4c4874c, 0x3fe570a3, 0xd70a3d7d}, /* 0.81853=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fea634b, 0xd77fe1ac, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82462=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fea94c9, 0x48e48016, 0x3fe6147a, 0xe147ae21}, /* 0.83066=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3feac5eb, 0x3f7ab300, 0x3fe66666, 0x66666673}, /* 0.83666=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3feaf6b3, 0xaf565e77, 0x3fe6b851, 0xeb851ec5}, /* 0.84261=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3feb2724, 0x7aff1496, 0x3fe70a3d, 0x70a3d717}, /* 0.84852=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3feb573f, 0x7449baa6, 0x3fe75c28, 0xf5c28f69}, /* 0.85440=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3feb8706, 0x5d24ceeb, 0x3fe7ae14, 0x7ae147bb}, /* 0.86023=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3febb67a, 0xe8584cb2, 0x3fe80000, 0x0000000d}, /* 0.86602=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3febe59e, 0xba3a1662, 0x3fe851eb, 0x851eb85f}, /* 0.87177=f(0.76000)*/ +{64, 0,123,__LINE__, 0x3fec1473, 0x6957b972, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.87749=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fec42fa, 0x7f164e74, 0x3fe8f5c2, 0x8f5c2903}, /* 0.88317=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fec7135, 0x78492721, 0x3fe947ae, 0x147ae155}, /* 0.88881=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fec9f25, 0xc5bfede0, 0x3fe99999, 0x999999a7}, /* 0.89442=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3feccccc, 0xccccccd4, 0x3fe9eb85, 0x1eb851f9}, /* 0.90000=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fecfa2b, 0xe7c326a7, 0x3fea3d70, 0xa3d70a4b}, /* 0.90553=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fed2744, 0x666f6047, 0x3fea8f5c, 0x28f5c29d}, /* 0.91104=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fed5417, 0x8e8830dc, 0x3feae147, 0xae147aef}, /* 0.91651=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3fed80a6, 0x9c19e432, 0x3feb3333, 0x33333341}, /* 0.92195=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fedacf2, 0xc1ebf38e, 0x3feb851e, 0xb851eb93}, /* 0.92736=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fedd8fd, 0x29e15177, 0x3febd70a, 0x3d70a3e5}, /* 0.93273=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fee04c6, 0xf553bddf, 0x3fec28f5, 0xc28f5c37}, /* 0.93808=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3fee3051, 0x3d6a720a, 0x3fec7ae1, 0x47ae1489}, /* 0.94339=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fee5b9d, 0x136c6d9e, 0x3feccccc, 0xccccccdb}, /* 0.94868=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fee86ab, 0x810ea91a, 0x3fed1eb8, 0x51eb852d}, /* 0.95393=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3feeb17d, 0x88be6cf8, 0x3fed70a3, 0xd70a3d7f}, /* 0.95916=f(0.92000)*/ +{64, 0,123,__LINE__, 0x3feedc14, 0x25e8086e, 0x3fedc28f, 0x5c28f5d1}, /* 0.96436=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fef0670, 0x4d3a1e77, 0x3fee147a, 0xe147ae23}, /* 0.96953=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fef3092, 0xece5bc3d, 0x3fee6666, 0x66666675}, /* 0.97467=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fef5a7c, 0xecdb6852, 0x3feeb851, 0xeb851ec7}, /* 0.97979=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fef842f, 0x2f05570c, 0x3fef0a3d, 0x70a3d719}, /* 0.98488=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fefadaa, 0x8f7eed59, 0x3fef5c28, 0xf5c28f6b}, /* 0.98994=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fefd6ef, 0xe4c9b8ac, 0x3fefae14, 0x7ae147bd}, /* 0.99498=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000004, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{64, 0,123,__LINE__, 0x3ff0146d, 0xd68287f7, 0x3ff028f5, 0xc28f5c30}, /* 1.00498=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3ff028c1, 0xd959b066, 0x3ff051eb, 0x851eb859}, /* 1.00995=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ff03cfc, 0x69845aac, 0x3ff07ae1, 0x47ae1482}, /* 1.01488=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3ff0511d, 0xe5a82662, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.01980=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ff06526, 0xaa25a13e, 0x3ff0cccc, 0xccccccd4}, /* 1.02469=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3ff07917, 0x112b9a0a, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.02956=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3ff08cef, 0x72c9a20a, 0x3ff11eb8, 0x51eb8526}, /* 1.03440=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3ff0a0b0, 0x2501c79d, 0x3ff147ae, 0x147ae14f}, /* 1.03923=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3ff0b459, 0x7bd99430, 0x3ff170a3, 0xd70a3d78}, /* 1.04403=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3ff0c7eb, 0xc96a56f9, 0x3ff19999, 0x999999a1}, /* 1.04880=f(1.10000)*/ +{64, 0,123,__LINE__, 0x3ff0db67, 0x5df0c584, 0x3ff1c28f, 0x5c28f5ca}, /* 1.05356=f(1.11000)*/ +{64, 0,123,__LINE__, 0x3ff0eecc, 0x87dbfa58, 0x3ff1eb85, 0x1eb851f3}, /* 1.05830=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3ff1021b, 0x93dbd9c8, 0x3ff2147a, 0xe147ae1c}, /* 1.06301=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3ff11554, 0xcceee44c, 0x3ff23d70, 0xa3d70a45}, /* 1.06770=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3ff12878, 0x7c6f7d7e, 0x3ff26666, 0x6666666e}, /* 1.07238=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3ff13b86, 0xea20ae60, 0x3ff28f5c, 0x28f5c297}, /* 1.07703=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3ff14e80, 0x5c3a692f, 0x3ff2b851, 0xeb851ec0}, /* 1.08166=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3ff16165, 0x177554b2, 0x3ff2e147, 0xae147ae9}, /* 1.08627=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3ff17435, 0x5f1624a2, 0x3ff30a3d, 0x70a3d712}, /* 1.09087=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{64, 0,123,__LINE__, 0x3ff40d93, 0x1ff62706, 0x3ff921fb, 0x54442d18}, /* 1.25331=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3ffc5bf8, 0x91b4ef6a, 0x400921fb, 0x54442d18}, /* 1.77245=f(3.14159)*/ +{64, 0,123,__LINE__, 0x40015dce, 0x5d1822cc, 0x4012d97c, 0x7f3321d2}, /* 2.17080=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe8c97e, 0xf43f721a, 0x3fe33333, 0x333332ec}, /* 0.77459=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3ff843e4, 0x3d85e5a6, 0x40026666, 0x66666654}, /* 1.51657=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3fffffff, 0xfffffff7, 0x400fffff, 0xffffffee}, /* 2.00000=f(4.00000)*/ +{64, 0,123,__LINE__, 0x40031988, 0x71a0e80a, 0x4016cccc, 0xccccccc4}, /* 2.38746=f(5.70000)*/ +{64, 0,123,__LINE__, 0x4005c329, 0x8dd40b22, 0x401d9999, 0x99999991}, /* 2.72029=f(7.40000)*/ +{64, 0,123,__LINE__, 0x40082209, 0xfea1fd35, 0x40223333, 0x3333332f}, /* 3.01662=f(9.10000)*/ +{64, 0,123,__LINE__, 0x400a4a6a, 0x2f74c6a8, 0x40259999, 0x99999995}, /* 3.28633=f(10.8000)*/ +{64, 0,123,__LINE__, 0x400c48c6, 0x001f0abd, 0x4028ffff, 0xfffffffb}, /* 3.53553=f(12.5000)*/ +{64, 0,123,__LINE__, 0x400e2574, 0x90a1c701, 0x402c6666, 0x66666661}, /* 3.76828=f(14.2000)*/ +{64, 0,123,__LINE__, 0x400fe65c, 0x20bc6144, 0x402fcccc, 0xccccccc7}, /* 3.98748=f(15.9000)*/ +{64, 0,123,__LINE__, 0x4010c7eb, 0xc96a56f4, 0x40319999, 0x99999997}, /* 4.19523=f(17.6000)*/ +{64, 0,123,__LINE__, 0x4011929c, 0xde1931e4, 0x40334ccc, 0xccccccca}, /* 4.39317=f(19.3000)*/ +{64, 0,123,__LINE__, 0x4012548e, 0xb9151e84, 0x4034ffff, 0xfffffffd}, /* 4.58257=f(21.0000)*/ +{64, 0,123,__LINE__, 0x40130ecc, 0x6d288adc, 0x4036b333, 0x33333330}, /* 4.76445=f(22.7000)*/ +{64, 0,123,__LINE__, 0x4013c22f, 0xd6a2b7b0, 0x40386666, 0x66666663}, /* 4.93963=f(24.4000)*/ +{64, 0,123,__LINE__, 0x40146f6d, 0x70171f62, 0x403a1999, 0x99999996}, /* 5.10881=f(26.1000)*/ +{64, 0,123,__LINE__, 0x4015171c, 0xbaaadfe0, 0x403bcccc, 0xccccccc9}, /* 5.27257=f(27.8000)*/ +{64, 0,123,__LINE__, 0x4015b9be, 0x5d52a9d8, 0x403d7fff, 0xfffffffc}, /* 5.43139=f(29.5000)*/ +0,}; +test_sqrt(m) {run_vector_1(m,sqrt_vec,(char *)(sqrt),"sqrt","dd"); } diff --git a/newlib/libm/test/sqrtf_vec.c b/newlib/libm/test/sqrtf_vec.c new file mode 100644 index 000000000..0e52fac0f --- /dev/null +++ b/newlib/libm/test/sqrtf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type sqrtf_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3e60c357, 0x80000000, 0x3cd19000, 0x00000000}, /* 3.12236e-08=f(9.74915e-16)*/ +{ 9, 0,123,__LINE__, 0x3fb99999, 0xa0000000, 0x3f847ae1, 0x47ae16ad}, /* 0.10000=f(0.01000)*/ +{12, 0,123,__LINE__, 0x3fc21a18, 0x40000000, 0x3f947ae1, 0x47ae1594}, /* 0.14142=f(0.02000)*/ +{12, 0,123,__LINE__, 0x3fc62b95, 0x80000000, 0x3f9eb851, 0xeb851fd2}, /* 0.17320=f(0.03000)*/ +{11, 0,123,__LINE__, 0x3fc99999, 0xa0000000, 0x3fa47ae1, 0x47ae1508}, /* 0.20000=f(0.04000)*/ +{11, 0,123,__LINE__, 0x3fcc9f25, 0xc0000000, 0x3fa99999, 0x99999a27}, /* 0.22360=f(0.05000)*/ +{11, 0,123,__LINE__, 0x3fcf5a7c, 0xe0000000, 0x3faeb851, 0xeb851f46}, /* 0.24494=f(0.06000)*/ +{13, 0,123,__LINE__, 0x3fd0eecc, 0x80000000, 0x3fb1eb85, 0x1eb85232}, /* 0.26457=f(0.07000)*/ +{12, 0,123,__LINE__, 0x3fd21a18, 0x40000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.28284=f(0.08000)*/ +{12, 0,123,__LINE__, 0x3fd33333, 0x40000000, 0x3fb70a3d, 0x70a3d750}, /* 0.30000=f(0.09000)*/ +{12, 0,123,__LINE__, 0x3fd43d13, 0x60000000, 0x3fb99999, 0x999999df}, /* 0.31622=f(0.10000)*/ +{12, 0,123,__LINE__, 0x3fd539f5, 0x40000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.33166=f(0.11000)*/ +{12, 0,123,__LINE__, 0x3fd62b95, 0x80000000, 0x3fbeb851, 0xeb851efd}, /* 0.34641=f(0.12000)*/ +{12, 0,123,__LINE__, 0x3fd71355, 0xc0000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.36055=f(0.13000)*/ +{12, 0,123,__LINE__, 0x3fd7f254, 0xe0000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.37416=f(0.14000)*/ +{10, 0,123,__LINE__, 0x3fd8c97f, 0x00000000, 0x3fc33333, 0x33333356}, /* 0.38729=f(0.15000)*/ +{10, 0,123,__LINE__, 0x3fd99999, 0xa0000000, 0x3fc47ae1, 0x47ae149e}, /* 0.40000=f(0.16000)*/ +{10, 0,123,__LINE__, 0x3fda634b, 0xe0000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.41231=f(0.17000)*/ +{10, 0,123,__LINE__, 0x3fdb2724, 0x80000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.42426=f(0.18000)*/ +{10, 0,123,__LINE__, 0x3fdbe59e, 0xc0000000, 0x3fc851eb, 0x851eb876}, /* 0.43588=f(0.19000)*/ +{10, 0,123,__LINE__, 0x3fdc9f25, 0xc0000000, 0x3fc99999, 0x999999be}, /* 0.44721=f(0.20000)*/ +{10, 0,123,__LINE__, 0x3fdd5417, 0x80000000, 0x3fcae147, 0xae147b06}, /* 0.45825=f(0.21000)*/ +{10, 0,123,__LINE__, 0x3fde04c7, 0x00000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.46904=f(0.22000)*/ +{10, 0,123,__LINE__, 0x3fdeb17d, 0x80000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.47958=f(0.23000)*/ +{10, 0,123,__LINE__, 0x3fdf5a7c, 0xe0000000, 0x3fceb851, 0xeb851ede}, /* 0.48989=f(0.24000)*/ +{13, 0,123,__LINE__, 0x3fe00000, 0x00000000, 0x3fd00000, 0x00000013}, /* 0.50000=f(0.25000)*/ +{13, 0,123,__LINE__, 0x3fe0511d, 0xe0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.50990=f(0.26000)*/ +{13, 0,123,__LINE__, 0x3fe0a0b0, 0x20000000, 0x3fd147ae, 0x147ae15b}, /* 0.51961=f(0.27000)*/ +{13, 0,123,__LINE__, 0x3fe0eecc, 0x80000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.52915=f(0.28000)*/ +{12, 0,123,__LINE__, 0x3fe13b86, 0xe0000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.53851=f(0.29000)*/ +{12, 0,123,__LINE__, 0x3fe186f1, 0x80000000, 0x3fd33333, 0x33333347}, /* 0.54772=f(0.30000)*/ +{12, 0,123,__LINE__, 0x3fe1d11c, 0xe0000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.55677=f(0.31000)*/ +{12, 0,123,__LINE__, 0x3fe21a18, 0x40000000, 0x3fd47ae1, 0x47ae148f}, /* 0.56568=f(0.32000)*/ +{12, 0,123,__LINE__, 0x3fe261f2, 0x20000000, 0x3fd51eb8, 0x51eb8533}, /* 0.57445=f(0.33000)*/ +{12, 0,123,__LINE__, 0x3fe2a8b7, 0x40000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.58309=f(0.34000)*/ +{12, 0,123,__LINE__, 0x3fe2ee73, 0xe0000000, 0x3fd66666, 0x6666667b}, /* 0.59160=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3fe33333, 0x40000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.60000=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3fe376ff, 0xc0000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.60827=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fe3b9e3, 0x40000000, 0x3fd851eb, 0x851eb867}, /* 0.61644=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3fe3fbe7, 0x00000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.62449=f(0.39000)*/ +{12, 0,123,__LINE__, 0x3fe43d13, 0x60000000, 0x3fd99999, 0x999999af}, /* 0.63245=f(0.40000)*/ +{12, 0,123,__LINE__, 0x3fe47d70, 0x80000000, 0x3fda3d70, 0xa3d70a53}, /* 0.64031=f(0.41000)*/ +{12, 0,123,__LINE__, 0x3fe4bd05, 0xc0000000, 0x3fdae147, 0xae147af7}, /* 0.64807=f(0.42000)*/ +{12, 0,123,__LINE__, 0x3fe4fbda, 0x80000000, 0x3fdb851e, 0xb851eb9b}, /* 0.65574=f(0.43000)*/ +{12, 0,123,__LINE__, 0x3fe539f5, 0x40000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.66332=f(0.44000)*/ +{12, 0,123,__LINE__, 0x3fe5775c, 0x40000000, 0x3fdccccc, 0xcccccce3}, /* 0.67082=f(0.45000)*/ +{12, 0,123,__LINE__, 0x3fe5b415, 0xc0000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.67823=f(0.46000)*/ +{12, 0,123,__LINE__, 0x3fe5f027, 0x00000000, 0x3fde147a, 0xe147ae2b}, /* 0.68556=f(0.47000)*/ +{12, 0,123,__LINE__, 0x3fe62b95, 0x80000000, 0x3fdeb851, 0xeb851ecf}, /* 0.69282=f(0.48000)*/ +{12, 0,123,__LINE__, 0x3fe66666, 0x60000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.69999=f(0.49000)*/ +{12, 0,123,__LINE__, 0x3fe6a09e, 0x60000000, 0x3fe00000, 0x0000000b}, /* 0.70710=f(0.50000)*/ +{12, 0,123,__LINE__, 0x3fe6da42, 0x20000000, 0x3fe051eb, 0x851eb85d}, /* 0.71414=f(0.51000)*/ +{12, 0,123,__LINE__, 0x3fe71355, 0xc0000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.72111=f(0.52000)*/ +{12, 0,123,__LINE__, 0x3fe74bdd, 0xa0000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.72801=f(0.53000)*/ +{12, 0,123,__LINE__, 0x3fe783dd, 0xc0000000, 0x3fe147ae, 0x147ae153}, /* 0.73484=f(0.54000)*/ +{12, 0,123,__LINE__, 0x3fe7bb59, 0xa0000000, 0x3fe19999, 0x999999a5}, /* 0.74161=f(0.55000)*/ +{12, 0,123,__LINE__, 0x3fe7f254, 0xe0000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.74833=f(0.56000)*/ +{11, 0,123,__LINE__, 0x3fe828d3, 0x00000000, 0x3fe23d70, 0xa3d70a49}, /* 0.75498=f(0.57000)*/ +{11, 0,123,__LINE__, 0x3fe85ed7, 0x60000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.76157=f(0.58000)*/ +{11, 0,123,__LINE__, 0x3fe89465, 0x00000000, 0x3fe2e147, 0xae147aed}, /* 0.76811=f(0.59000)*/ +{11, 0,123,__LINE__, 0x3fe8c97f, 0x00000000, 0x3fe33333, 0x3333333f}, /* 0.77459=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3fe8fe28, 0x20000000, 0x3fe3851e, 0xb851eb91}, /* 0.78102=f(0.61000)*/ +{11, 0,123,__LINE__, 0x3fe93263, 0x20000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.78740=f(0.62000)*/ +{11, 0,123,__LINE__, 0x3fe96632, 0xc0000000, 0x3fe428f5, 0xc28f5c35}, /* 0.79372=f(0.63000)*/ +{11, 0,123,__LINE__, 0x3fe99999, 0xa0000000, 0x3fe47ae1, 0x47ae1487}, /* 0.80000=f(0.64000)*/ +{11, 0,123,__LINE__, 0x3fe9cc9a, 0x00000000, 0x3fe4cccc, 0xccccccd9}, /* 0.80622=f(0.65000)*/ +{11, 0,123,__LINE__, 0x3fe9ff36, 0x60000000, 0x3fe51eb8, 0x51eb852b}, /* 0.81240=f(0.66000)*/ +{11, 0,123,__LINE__, 0x3fea3170, 0xe0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.81853=f(0.67000)*/ +{11, 0,123,__LINE__, 0x3fea634b, 0xe0000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.82462=f(0.68000)*/ +{11, 0,123,__LINE__, 0x3fea94c9, 0x40000000, 0x3fe6147a, 0xe147ae21}, /* 0.83066=f(0.69000)*/ +{11, 0,123,__LINE__, 0x3feac5eb, 0x40000000, 0x3fe66666, 0x66666673}, /* 0.83666=f(0.70000)*/ +{11, 0,123,__LINE__, 0x3feaf6b3, 0xa0000000, 0x3fe6b851, 0xeb851ec5}, /* 0.84261=f(0.71000)*/ +{11, 0,123,__LINE__, 0x3feb2724, 0x80000000, 0x3fe70a3d, 0x70a3d717}, /* 0.84852=f(0.72000)*/ +{11, 0,123,__LINE__, 0x3feb573f, 0x80000000, 0x3fe75c28, 0xf5c28f69}, /* 0.85440=f(0.73000)*/ +{11, 0,123,__LINE__, 0x3feb8706, 0x60000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.86023=f(0.74000)*/ +{11, 0,123,__LINE__, 0x3febb67a, 0xe0000000, 0x3fe80000, 0x0000000d}, /* 0.86602=f(0.75000)*/ +{11, 0,123,__LINE__, 0x3febe59e, 0xc0000000, 0x3fe851eb, 0x851eb85f}, /* 0.87177=f(0.76000)*/ +{11, 0,123,__LINE__, 0x3fec1473, 0x60000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.87749=f(0.77000)*/ +{11, 0,123,__LINE__, 0x3fec42fa, 0x80000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.88317=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3fec7135, 0x80000000, 0x3fe947ae, 0x147ae155}, /* 0.88881=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3fec9f25, 0xc0000000, 0x3fe99999, 0x999999a7}, /* 0.89442=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3feccccc, 0xc0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.89999=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3fecfa2b, 0xe0000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.90553=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3fed2744, 0x60000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.91104=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3fed5417, 0x80000000, 0x3feae147, 0xae147aef}, /* 0.91651=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3fed80a6, 0xa0000000, 0x3feb3333, 0x33333341}, /* 0.92195=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3fedacf2, 0xc0000000, 0x3feb851e, 0xb851eb93}, /* 0.92736=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3fedd8fd, 0x20000000, 0x3febd70a, 0x3d70a3e5}, /* 0.93273=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3fee04c7, 0x00000000, 0x3fec28f5, 0xc28f5c37}, /* 0.93808=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3fee3051, 0x40000000, 0x3fec7ae1, 0x47ae1489}, /* 0.94339=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3fee5b9d, 0x00000000, 0x3feccccc, 0xccccccdb}, /* 0.94868=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3fee86ab, 0x80000000, 0x3fed1eb8, 0x51eb852d}, /* 0.95393=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3feeb17d, 0x80000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.95916=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3feedc14, 0x20000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.96436=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3fef0670, 0x40000000, 0x3fee147a, 0xe147ae23}, /* 0.96953=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3fef3092, 0xe0000000, 0x3fee6666, 0x66666675}, /* 0.97467=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3fef5a7c, 0xe0000000, 0x3feeb851, 0xeb851ec7}, /* 0.97979=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3fef842f, 0x40000000, 0x3fef0a3d, 0x70a3d719}, /* 0.98488=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3fefadaa, 0xa0000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.98994=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3fefd6ef, 0xe0000000, 0x3fefae14, 0x7ae147bd}, /* 0.99498=f(0.99000)*/ +{13, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000007}, /* 1.00000=f(1.00000)*/ +{13, 0,123,__LINE__, 0x3ff0146d, 0xe0000000, 0x3ff028f5, 0xc28f5c30}, /* 1.00498=f(1.01000)*/ +{13, 0,123,__LINE__, 0x3ff028c1, 0xe0000000, 0x3ff051eb, 0x851eb859}, /* 1.00995=f(1.02000)*/ +{13, 0,123,__LINE__, 0x3ff03cfc, 0x60000000, 0x3ff07ae1, 0x47ae1482}, /* 1.01488=f(1.03000)*/ +{13, 0,123,__LINE__, 0x3ff0511d, 0xe0000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.01980=f(1.04000)*/ +{13, 0,123,__LINE__, 0x3ff06526, 0xa0000000, 0x3ff0cccc, 0xccccccd4}, /* 1.02469=f(1.05000)*/ +{13, 0,123,__LINE__, 0x3ff07917, 0x00000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.02956=f(1.06000)*/ +{13, 0,123,__LINE__, 0x3ff08cef, 0x80000000, 0x3ff11eb8, 0x51eb8526}, /* 1.03440=f(1.07000)*/ +{13, 0,123,__LINE__, 0x3ff0a0b0, 0x20000000, 0x3ff147ae, 0x147ae14f}, /* 1.03923=f(1.08000)*/ +{13, 0,123,__LINE__, 0x3ff0b459, 0x80000000, 0x3ff170a3, 0xd70a3d78}, /* 1.04403=f(1.09000)*/ +{13, 0,123,__LINE__, 0x3ff0c7eb, 0xc0000000, 0x3ff19999, 0x999999a1}, /* 1.04880=f(1.10000)*/ +{13, 0,123,__LINE__, 0x3ff0db67, 0x60000000, 0x3ff1c28f, 0x5c28f5ca}, /* 1.05356=f(1.11000)*/ +{13, 0,123,__LINE__, 0x3ff0eecc, 0x80000000, 0x3ff1eb85, 0x1eb851f3}, /* 1.05830=f(1.12000)*/ +{12, 0,123,__LINE__, 0x3ff1021b, 0xa0000000, 0x3ff2147a, 0xe147ae1c}, /* 1.06301=f(1.13000)*/ +{12, 0,123,__LINE__, 0x3ff11554, 0xc0000000, 0x3ff23d70, 0xa3d70a45}, /* 1.06770=f(1.14000)*/ +{12, 0,123,__LINE__, 0x3ff12878, 0x80000000, 0x3ff26666, 0x6666666e}, /* 1.07238=f(1.15000)*/ +{12, 0,123,__LINE__, 0x3ff13b86, 0xe0000000, 0x3ff28f5c, 0x28f5c297}, /* 1.07703=f(1.16000)*/ +{12, 0,123,__LINE__, 0x3ff14e80, 0x60000000, 0x3ff2b851, 0xeb851ec0}, /* 1.08166=f(1.17000)*/ +{12, 0,123,__LINE__, 0x3ff16165, 0x20000000, 0x3ff2e147, 0xae147ae9}, /* 1.08627=f(1.18000)*/ +{12, 0,123,__LINE__, 0x3ff17435, 0x60000000, 0x3ff30a3d, 0x70a3d712}, /* 1.09087=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{12, 0,123,__LINE__, 0x3ff40d93, 0x20000000, 0x3ff921fb, 0x54442d18}, /* 1.25331=f(1.57079)*/ +{ 1, 0,123,__LINE__, 0x3ffc5bf8, 0xa0000000, 0x400921fb, 0x54442d18}, /* 1.77245=f(3.14159)*/ +{12, 0,123,__LINE__, 0x40015dce, 0x60000000, 0x4012d97c, 0x7f3321d2}, /* 2.17080=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{11, 0,123,__LINE__, 0x3fe8c97f, 0x00000000, 0x3fe33333, 0x333332ec}, /* 0.77459=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0x3ff843e4, 0x40000000, 0x40026666, 0x66666654}, /* 1.51657=f(2.30000)*/ +{13, 0,123,__LINE__, 0x40000000, 0x00000000, 0x400fffff, 0xffffffee}, /* 2.00000=f(4.00000)*/ +{12, 0,123,__LINE__, 0x40031988, 0x60000000, 0x4016cccc, 0xccccccc4}, /* 2.38746=f(5.70000)*/ +{12, 0,123,__LINE__, 0x4005c329, 0xa0000000, 0x401d9999, 0x99999991}, /* 2.72029=f(7.40000)*/ +{11, 0,123,__LINE__, 0x4008220a, 0x00000000, 0x40223333, 0x3333332f}, /* 3.01662=f(9.10000)*/ +{11, 0,123,__LINE__, 0x400a4a6a, 0x40000000, 0x40259999, 0x99999995}, /* 3.28633=f(10.8000)*/ +{11, 0,123,__LINE__, 0x400c48c6, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 3.53553=f(12.5000)*/ +{11, 0,123,__LINE__, 0x400e2574, 0x80000000, 0x402c6666, 0x66666661}, /* 3.76828=f(14.2000)*/ +{11, 0,123,__LINE__, 0x400fe65c, 0x20000000, 0x402fcccc, 0xccccccc7}, /* 3.98748=f(15.9000)*/ +{13, 0,123,__LINE__, 0x4010c7eb, 0xc0000000, 0x40319999, 0x99999997}, /* 4.19523=f(17.6000)*/ +{12, 0,123,__LINE__, 0x4011929c, 0xe0000000, 0x40334ccc, 0xccccccca}, /* 4.39317=f(19.3000)*/ +{12, 0,123,__LINE__, 0x4012548e, 0xc0000000, 0x4034ffff, 0xfffffffd}, /* 4.58257=f(21.0000)*/ +{12, 0,123,__LINE__, 0x40130ecc, 0x80000000, 0x4036b333, 0x33333330}, /* 4.76445=f(22.7000)*/ +{12, 0,123,__LINE__, 0x4013c22f, 0xe0000000, 0x40386666, 0x66666663}, /* 4.93963=f(24.4000)*/ +{12, 0,123,__LINE__, 0x40146f6d, 0x80000000, 0x403a1999, 0x99999996}, /* 5.10881=f(26.1000)*/ +{12, 0,123,__LINE__, 0x4015171c, 0xc0000000, 0x403bcccc, 0xccccccc9}, /* 5.27257=f(27.8000)*/ +{12, 0,123,__LINE__, 0x4015b9be, 0x60000000, 0x403d7fff, 0xfffffffc}, /* 5.43139=f(29.5000)*/ +0,}; +test_sqrtf(m) {run_vector_1(m,sqrtf_vec,(char *)(sqrtf),"sqrtf","ff"); } diff --git a/newlib/libm/test/string.c b/newlib/libm/test/string.c new file mode 100644 index 000000000..c47047212 --- /dev/null +++ b/newlib/libm/test/string.c @@ -0,0 +1,556 @@ +#include "test.h" +#include <string.h> +#include <errno.h> + + +_CONST char *it = "<UNSET>"; /* Routine name for message routines. */ +int errors = 0; + +/* Complain if condition is not true. */ +#define check(thing) checkit(thing, __LINE__) + +void +_DEFUN(checkit,(ok,l), + int ok _AND + int l ) + +{ + newfunc(it); + line(l); + + if (!ok) + { + printf("string.c:%d %s\n", l, it); + ++errors; + } +} + + + +/* Complain if first two args don't strcmp as equal. */ +#define equal(a, b) funcqual(a,b,__LINE__); + +void +_DEFUN(funcqual,(a,b,l), + char *a _AND + char *b _AND + int l) +{ + newfunc(it); + + line(l); + if (a == NULL && b == NULL) return; + if (strcmp(a,b)) { + printf("string.c:%d (%s)\n", l, it); + } +} + + + +static char one[50]; +static char two[50]; + + +void test_string() +{ + /* Test strcmp first because we use it to test other things. */ + it = "strcmp"; + check(strcmp("", "") == 0); /* Trivial case. */ + check(strcmp("a", "a") == 0); /* Identity. */ + check(strcmp("abc", "abc") == 0); /* Multicharacter. */ + check(strcmp("abc", "abcd") < 0); /* Length mismatches. */ + check(strcmp("abcd", "abc") > 0); + check(strcmp("abcd", "abce") < 0); /* Honest miscompares. */ + check(strcmp("abce", "abcd") > 0); + check(strcmp("a\103", "a") > 0); /* Tricky if char signed. */ + check(strcmp("a\103", "a\003") > 0); + + /* Test strcpy next because we need it to set up other tests. */ + it = "strcpy"; + check(strcpy(one, "abcd") == one); /* Returned value. */ + equal(one, "abcd"); /* Basic test. */ + + (void) strcpy(one, "x"); + equal(one, "x"); /* Writeover. */ + equal(one+2, "cd"); /* Wrote too much? */ + + (void) strcpy(two, "hi there"); + (void) strcpy(one, two); + equal(one, "hi there"); /* Basic test encore. */ + equal(two, "hi there"); /* Stomped on source? */ + + (void) strcpy(one, ""); + equal(one, ""); /* Boundary condition. */ + + /* strcat. */ + it = "strcat"; + (void) strcpy(one, "ijk"); + check(strcat(one, "lmn") == one); /* Returned value. */ + equal(one, "ijklmn"); /* Basic test. */ + + (void) strcpy(one, "x"); + (void) strcat(one, "yz"); + equal(one, "xyz"); /* Writeover. */ + equal(one+4, "mn"); /* Wrote too much? */ + + (void) strcpy(one, "gh"); + (void) strcpy(two, "ef"); + (void) strcat(one, two); + equal(one, "ghef"); /* Basic test encore. */ + equal(two, "ef"); /* Stomped on source? */ + + (void) strcpy(one, ""); + (void) strcat(one, ""); + equal(one, ""); /* Boundary conditions. */ + (void) strcpy(one, "ab"); + (void) strcat(one, ""); + equal(one, "ab"); + (void) strcpy(one, ""); + (void) strcat(one, "cd"); + equal(one, "cd"); + + /* strncat - first test it as strcat, with big counts, + then test the count mechanism. */ + it = "strncat"; + (void) strcpy(one, "ijk"); + check(strncat(one, "lmn", 99) == one); /* Returned value. */ + equal(one, "ijklmn"); /* Basic test. */ + + (void) strcpy(one, "x"); + (void) strncat(one, "yz", 99); + equal(one, "xyz"); /* Writeover. */ + equal(one+4, "mn"); /* Wrote too much? */ + + (void) strcpy(one, "gh"); + (void) strcpy(two, "ef"); + (void) strncat(one, two, 99); + equal(one, "ghef"); /* Basic test encore. */ + equal(two, "ef"); /* Stomped on source? */ + + (void) strcpy(one, ""); + (void) strncat(one, "", 99); + equal(one, ""); /* Boundary conditions. */ + (void) strcpy(one, "ab"); + (void) strncat(one, "", 99); + equal(one, "ab"); + (void) strcpy(one, ""); + (void) strncat(one, "cd", 99); + equal(one, "cd"); + + (void) strcpy(one, "ab"); + (void) strncat(one, "cdef", 2); + equal(one, "abcd"); /* Count-limited. */ + + (void) strncat(one, "gh", 0); + equal(one, "abcd"); /* Zero count. */ + + (void) strncat(one, "gh", 2); + equal(one, "abcdgh"); /* Count _AND length equal. */ + it = "strncmp"; + /* strncmp - first test as strcmp with big counts";*/ + check(strncmp("", "", 99) == 0); /* Trivial case. */ + check(strncmp("a", "a", 99) == 0); /* Identity. */ + check(strncmp("abc", "abc", 99) == 0); /* Multicharacter. */ + check(strncmp("abc", "abcd", 99) < 0); /* Length unequal. */ + check(strncmp("abcd", "abc",99) > 0); + check(strncmp("abcd", "abce", 99) < 0); /* Honestly unequal. */ + check(strncmp("abce", "abcd",99)>0); + check(strncmp("abce", "abcd", 3) == 0); /* Count limited. */ + check(strncmp("abce", "abc", 3) == 0); /* Count == length. */ + check(strncmp("abcd", "abce", 4) < 0); /* Nudging limit. */ + check(strncmp("abc", "def", 0) == 0); /* Zero count. */ + + /* strncpy - testing is a bit different because of odd semantics. */ + it = "strncpy"; + check(strncpy(one, "abc", 4) == one); /* Returned value. */ + equal(one, "abc"); /* Did the copy go right? */ + + (void) strcpy(one, "abcdefgh"); + (void) strncpy(one, "xyz", 2); + equal(one, "xycdefgh"); /* Copy cut by count. */ + + (void) strcpy(one, "abcdefgh"); + (void) strncpy(one, "xyz", 3); /* Copy cut just before NUL. */ + equal(one, "xyzdefgh"); + + (void) strcpy(one, "abcdefgh"); + (void) strncpy(one, "xyz", 4); /* Copy just includes NUL. */ + equal(one, "xyz"); + equal(one+4, "efgh"); /* Wrote too much? */ + + (void) strcpy(one, "abcdefgh"); + (void) strncpy(one, "xyz", 5); /* Copy includes padding. */ + equal(one, "xyz"); + equal(one+4, ""); + equal(one+5, "fgh"); + + (void) strcpy(one, "abc"); + (void) strncpy(one, "xyz", 0); /* Zero-length copy. */ + equal(one, "abc"); + + (void) strncpy(one, "", 2); /* Zero-length source. */ + equal(one, ""); + equal(one+1, ""); + equal(one+2, "c"); + + (void) strcpy(one, "hi there"); + (void) strncpy(two, one, 9); + equal(two, "hi there"); /* Just paranoia. */ + equal(one, "hi there"); /* Stomped on source? */ + + /* strlen. */ + it = "strlen"; + check(strlen("") == 0); /* Empty. */ + check(strlen("a") == 1); /* Single char. */ + check(strlen("abcd") == 4); /* Multiple chars. */ + + /* strchr. */ + it = "strchr"; + check(strchr("abcd", 'z') == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(strchr(one, 'c') == one+2); /* Basic test. */ + check(strchr(one, 'd') == one+3); /* End of string. */ + check(strchr(one, 'a') == one); /* Beginning. */ + check(strchr(one, '\0') == one+4); /* Finding NUL. */ + (void) strcpy(one, "ababa"); + check(strchr(one, 'b') == one+1); /* Finding first. */ + (void) strcpy(one, ""); + check(strchr(one, 'b') == NULL); /* Empty string. */ + check(strchr(one, '\0') == one); /* NUL in empty string. */ + + /* index - just like strchr. */ + it = "index"; + check(index("abcd", 'z') == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(index(one, 'c') == one+2); /* Basic test. */ + check(index(one, 'd') == one+3); /* End of string. */ + check(index(one, 'a') == one); /* Beginning. */ + check(index(one, '\0') == one+4); /* Finding NUL. */ + (void) strcpy(one, "ababa"); + check(index(one, 'b') == one+1); /* Finding first. */ + (void) strcpy(one, ""); + check(index(one, 'b') == NULL); /* Empty string. */ + check(index(one, '\0') == one); /* NUL in empty string. */ + + /* strrchr. */ + it = "strrchr"; + check(strrchr("abcd", 'z') == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(strrchr(one, 'c') == one+2); /* Basic test. */ + check(strrchr(one, 'd') == one+3); /* End of string. */ + check(strrchr(one, 'a') == one); /* Beginning. */ + check(strrchr(one, '\0') == one+4); /* Finding NUL. */ + (void) strcpy(one, "ababa"); + check(strrchr(one, 'b') == one+3); /* Finding last. */ + (void) strcpy(one, ""); + check(strrchr(one, 'b') == NULL); /* Empty string. */ + check(strrchr(one, '\0') == one); /* NUL in empty string. */ + + /* rindex - just like strrchr. */ + it = "rindex"; + check(rindex("abcd", 'z') == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(rindex(one, 'c') == one+2); /* Basic test. */ + check(rindex(one, 'd') == one+3); /* End of string. */ + check(rindex(one, 'a') == one); /* Beginning. */ + check(rindex(one, '\0') == one+4); /* Finding NUL. */ + (void) strcpy(one, "ababa"); + check(rindex(one, 'b') == one+3); /* Finding last. */ + (void) strcpy(one, ""); + check(rindex(one, 'b') == NULL); /* Empty string. */ + check(rindex(one, '\0') == one); /* NUL in empty string. */ + + /* strpbrk - somewhat like strchr. */ + it = "strpbrk"; + check(strpbrk("abcd", "z") == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(strpbrk(one, "c") == one+2); /* Basic test. */ + check(strpbrk(one, "d") == one+3); /* End of string. */ + check(strpbrk(one, "a") == one); /* Beginning. */ + check(strpbrk(one, "") == NULL); /* Empty search list. */ + check(strpbrk(one, "cb") == one+1); /* Multiple search. */ + (void) strcpy(one, "abcabdea"); + check(strpbrk(one, "b") == one+1); /* Finding first. */ + check(strpbrk(one, "cb") == one+1); /* With multiple search. */ + check(strpbrk(one, "db") == one+1); /* Another variant. */ + (void) strcpy(one, ""); + check(strpbrk(one, "bc") == NULL); /* Empty string. */ + check(strpbrk(one, "") == NULL); /* Both strings empty. */ + + /* strstr - somewhat like strchr. */ + it = "strstr"; + check(strstr("z", "abcd") == NULL); /* Not found. */ + check(strstr("abx", "abcd") == NULL); /* Dead end. */ + (void) strcpy(one, "abcd"); + check(strstr(one,"c") == one+2); /* Basic test. */ + check(strstr(one, "bc") == one+1); /* Multichar. */ + check(strstr(one,"d") == one+3); /* End of string. */ + check(strstr(one,"cd") == one+2); /* Tail of string. */ + check(strstr(one,"abc") == one); /* Beginning. */ + check(strstr(one,"abcd") == one); /* Exact match. */ + check(strstr(one,"de") == NULL); /* Past end. */ + check(strstr(one,"") == one); /* Finding empty. */ + (void) strcpy(one, "ababa"); + check(strstr(one,"ba") == one+1); /* Finding first. */ + (void) strcpy(one, ""); + check(strstr(one, "b") == NULL); /* Empty string. */ + check(strstr(one,"") == one); /* Empty in empty string. */ + (void) strcpy(one, "bcbca"); + check(strstr(one,"bca") == one+2); /* False start. */ + (void) strcpy(one, "bbbcabbca"); + check(strstr(one,"bbca") == one+1); /* With overlap. */ + + /* strspn. */ + it = "strspn"; + check(strspn("abcba", "abc") == 5); /* Whole string. */ + check(strspn("abcba", "ab") == 2); /* Partial. */ + check(strspn("abc", "qx") == 0); /* None. */ + check(strspn("", "ab") == 0); /* Null string. */ + check(strspn("abc", "") == 0); /* Null search list. */ + + /* strcspn. */ + it = "strcspn"; + check(strcspn("abcba", "qx") == 5); /* Whole string. */ + check(strcspn("abcba", "cx") == 2); /* Partial. */ + check(strcspn("abc", "abc") == 0); /* None. */ + check(strcspn("", "ab") == 0); /* Null string. */ + check(strcspn("abc", "") == 3); /* Null search list. */ + + /* strtok - the hard one. */ + it = "strtok"; + (void) strcpy(one, "first, second, third"); + equal(strtok(one, ", "), "first"); /* Basic test. */ + equal(one, "first"); + equal(strtok((char *)NULL, ", "), "second"); + equal(strtok((char *)NULL, ", "), "third"); + check(strtok((char *)NULL, ", ") == NULL); + (void) strcpy(one, ", first, "); + equal(strtok(one, ", "), "first"); /* Extra delims, 1 tok. */ + check(strtok((char *)NULL, ", ") == NULL); + (void) strcpy(one, "1a, 1b; 2a, 2b"); + equal(strtok(one, ", "), "1a"); /* Changing delim lists. */ + equal(strtok((char *)NULL, "; "), "1b"); + equal(strtok((char *)NULL, ", "), "2a"); + (void) strcpy(two, "x-y"); + equal(strtok(two, "-"), "x"); /* New string before done. */ + equal(strtok((char *)NULL, "-"), "y"); + check(strtok((char *)NULL, "-") == NULL); + (void) strcpy(one, "a,b, c,, ,d"); + equal(strtok(one, ", "), "a"); /* Different separators. */ + equal(strtok((char *)NULL, ", "), "b"); + equal(strtok((char *)NULL, " ,"), "c"); /* Permute list too. */ + equal(strtok((char *)NULL, " ,"), "d"); + check(strtok((char *)NULL, ", ") == NULL); + check(strtok((char *)NULL, ", ") == NULL); /* Persistence. */ + (void) strcpy(one, ", "); + check(strtok(one, ", ") == NULL); /* No tokens. */ + (void) strcpy(one, ""); + check(strtok(one, ", ") == NULL); /* Empty string. */ + (void) strcpy(one, "abc"); + equal(strtok(one, ", "), "abc"); /* No delimiters. */ + check(strtok((char *)NULL, ", ") == NULL); + (void) strcpy(one, "abc"); + equal(strtok(one, ""), "abc"); /* Empty delimiter list. */ + check(strtok((char *)NULL, "") == NULL); + (void) strcpy(one, "abcdefgh"); + (void) strcpy(one, "a,b,c"); + equal(strtok(one, ","), "a"); /* Basics again... */ + equal(strtok((char *)NULL, ","), "b"); + equal(strtok((char *)NULL, ","), "c"); + check(strtok((char *)NULL, ",") == NULL); + equal(one+6, "gh"); /* Stomped past end? */ + equal(one, "a"); /* Stomped old tokens? */ + equal(one+2, "b"); + equal(one+4, "c"); + + /* memcmp. */ + it = "memcmp"; + check(memcmp("a", "a", 1) == 0); /* Identity. */ + check(memcmp("abc", "abc", 3) == 0); /* Multicharacter. */ + check(memcmp("abcd", "abce", 4) < 0); /* Honestly unequal. */ + check(memcmp("abce", "abcd",4)); + check(memcmp("alph", "beta", 4) < 0); + check(memcmp("abce", "abcd", 3) == 0); /* Count limited. */ + check(memcmp("abc", "def", 0) == 0); /* Zero count. */ + + /* memcmp should test strings as unsigned */ + one[0] = 0xfe; + two[0] = 0x03; + check(memcmp(one, two,1) > 0); + + + /* memchr. */ + it = "memchr"; + check(memchr("abcd", 'z', 4) == NULL); /* Not found. */ + (void) strcpy(one, "abcd"); + check(memchr(one, 'c', 4) == one+2); /* Basic test. */ + check(memchr(one, 'd', 4) == one+3); /* End of string. */ + check(memchr(one, 'a', 4) == one); /* Beginning. */ + check(memchr(one, '\0', 5) == one+4); /* Finding NUL. */ + (void) strcpy(one, "ababa"); + check(memchr(one, 'b', 5) == one+1); /* Finding first. */ + check(memchr(one, 'b', 0) == NULL); /* Zero count. */ + check(memchr(one, 'a', 1) == one); /* Singleton case. */ + (void) strcpy(one, "a\203b"); + check(memchr(one, 0203, 3) == one+1); /* Unsignedness. */ + + /* memcpy - need not work for overlap. */ + it = "memcpy"; + check(memcpy(one, "abc", 4) == one); /* Returned value. */ + equal(one, "abc"); /* Did the copy go right? */ + + (void) strcpy(one, "abcdefgh"); + (void) memcpy(one+1, "xyz", 2); + equal(one, "axydefgh"); /* Basic test. */ + + (void) strcpy(one, "abc"); + (void) memcpy(one, "xyz", 0); + equal(one, "abc"); /* Zero-length copy. */ + + (void) strcpy(one, "hi there"); + (void) strcpy(two, "foo"); + (void) memcpy(two, one, 9); + equal(two, "hi there"); /* Just paranoia. */ + equal(one, "hi there"); /* Stomped on source? */ +#if 0 + /* memmove - must work on overlap. */ + it = "memmove"; + check(memmove(one, "abc", 4) == one); /* Returned value. */ + equal(one, "abc"); /* Did the copy go right? */ + + (void) strcpy(one, "abcdefgh"); + (void) memmove(one+1, "xyz", 2); + equal(one, "axydefgh"); /* Basic test. */ + + (void) strcpy(one, "abc"); + (void) memmove(one, "xyz", 0); + equal(one, "abc"); /* Zero-length copy. */ + + (void) strcpy(one, "hi there"); + (void) strcpy(two, "foo"); + (void) memmove(two, one, 9); + equal(two, "hi there"); /* Just paranoia. */ + equal(one, "hi there"); /* Stomped on source? */ + + (void) strcpy(one, "abcdefgh"); + (void) memmove(one+1, one, 9); + equal(one, "aabcdefgh"); /* Overlap, right-to-left. */ + + (void) strcpy(one, "abcdefgh"); + (void) memmove(one+1, one+2, 7); + equal(one, "acdefgh"); /* Overlap, left-to-right. */ + + (void) strcpy(one, "abcdefgh"); + (void) memmove(one, one, 9); + equal(one, "abcdefgh"); /* 100% overlap. */ +#endif +#if 0 + /* memccpy - first test like memcpy, then the search part + The SVID, the only place where memccpy is mentioned, says + overlap might fail, so we don't try it. Besides, it's hard + to see the rationale for a non-left-to-right memccpy. */ + it = "memccpy"; + check(memccpy(one, "abc", 'q', 4) == NULL); /* Returned value. */ + equal(one, "abc"); /* Did the copy go right? */ + + (void) strcpy(one, "abcdefgh"); + (void) memccpy(one+1, "xyz", 'q', 2); + equal(one, "axydefgh"); /* Basic test. */ + + (void) strcpy(one, "abc"); + (void) memccpy(one, "xyz", 'q', 0); + equal(one, "abc"); /* Zero-length copy. */ + + (void) strcpy(one, "hi there"); + (void) strcpy(two, "foo"); + (void) memccpy(two, one, 'q', 9); + equal(two, "hi there"); /* Just paranoia. */ + equal(one, "hi there"); /* Stomped on source? */ + + (void) strcpy(one, "abcdefgh"); + (void) strcpy(two, "horsefeathers"); + check(memccpy(two, one, 'f', 9) == two+6); /* Returned value. */ + equal(one, "abcdefgh"); /* Source intact? */ + equal(two, "abcdefeathers"); /* Copy correct? */ + + (void) strcpy(one, "abcd"); + (void) strcpy(two, "bumblebee"); + check(memccpy(two, one, 'a', 4) == two+1); /* First char. */ + equal(two, "aumblebee"); + check(memccpy(two, one, 'd', 4) == two+4); /* Last char. */ + equal(two, "abcdlebee"); + (void) strcpy(one, "xyz"); + check(memccpy(two, one, 'x', 1) == two+1); /* Singleton. */ + equal(two, "xbcdlebee"); +#endif + /* memset. */ + it = "memset"; + (void) strcpy(one, "abcdefgh"); + check(memset(one+1, 'x', 3) == one+1); /* Return value. */ + equal(one, "axxxefgh"); /* Basic test. */ + + (void) memset(one+2, 'y', 0); + equal(one, "axxxefgh"); /* Zero-length set. */ + + (void) memset(one+5, 0, 1); + equal(one, "axxxe"); /* Zero fill. */ + equal(one+6, "gh"); /* _AND the leftover. */ + + (void) memset(one+2, 010045, 1); + equal(one, "ax\045xe"); /* Unsigned char convert. */ + + /* bcopy - much like memcpy. + Berklix manual is silent about overlap, so don't test it. */ + it = "bcopy"; + (void) bcopy("abc", one, 4); + equal(one, "abc"); /* Simple copy. */ + + (void) strcpy(one, "abcdefgh"); + (void) bcopy("xyz", one+1, 2); + equal(one, "axydefgh"); /* Basic test. */ + + (void) strcpy(one, "abc"); + (void) bcopy("xyz", one, 0); + equal(one, "abc"); /* Zero-length copy. */ + + (void) strcpy(one, "hi there"); + (void) strcpy(two, "foo"); + (void) bcopy(one, two, 9); + equal(two, "hi there"); /* Just paranoia. */ + equal(one, "hi there"); /* Stomped on source? */ + + /* bzero. */ + it = "bzero"; + (void) strcpy(one, "abcdef"); + bzero(one+2, 2); + equal(one, "ab"); /* Basic test. */ + equal(one+3, ""); + equal(one+4, "ef"); + + (void) strcpy(one, "abcdef"); + bzero(one+2, 0); + equal(one, "abcdef"); /* Zero-length copy. */ + + /* bcmp - somewhat like memcmp. */ + it = "bcmp"; + check(bcmp("a", "a", 1) == 0); /* Identity. */ + check(bcmp("abc", "abc", 3) == 0); /* Multicharacter. */ + check(bcmp("abcd", "abce", 4) != 0); /* Honestly unequal. */ + check(bcmp("abce", "abcd",4)); + check(bcmp("alph", "beta", 4) != 0); + check(bcmp("abce", "abcd", 3) == 0); /* Count limited. */ + check(bcmp("abc", "def", 0) == 0); /* Zero count. */ + +#if 0 /* strerror - VERY system-dependent. */ +{ + extern CONST unsigned int _sys_nerr; + extern CONST char *CONST _sys_errlist[]; + int f; + it = "strerror"; + f = open("/", O_WRONLY); /* Should always fail. */ + check(f < 0 && errno > 0 && errno < _sys_nerr); + equal(strerror(errno), _sys_errlist[errno]); +} +#endif +} + diff --git a/newlib/libm/test/tan_vec.c b/newlib/libm/test/tan_vec.c new file mode 100644 index 000000000..eb76cb562 --- /dev/null +++ b/newlib/libm/test/tan_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type tan_vec[] = { +{64, 0,123,__LINE__, 0xc00493c4, 0x3acb164c, 0xbff33333, 0x33333333}, /* -2.57215=f(-1.20000)*/ +{63, 0,123,__LINE__, 0xc003fbb2, 0xac8d6e09, 0xbff30a3d, 0x70a3d70a}, /* -2.49789=f(-1.19000)*/ +{63, 0,123,__LINE__, 0xc0036b0a, 0xa04728b5, 0xbff2e147, 0xae147ae1}, /* -2.42726=f(-1.18000)*/ +{64, 0,123,__LINE__, 0xc002e13d, 0xc4352012, 0xbff2b851, 0xeb851eb8}, /* -2.35998=f(-1.17000)*/ +{64, 0,123,__LINE__, 0xc0025dcb, 0xa00cf2d1, 0xbff28f5c, 0x28f5c28f}, /* -2.29579=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xc001e03f, 0xefaf53c9, 0xbff26666, 0x66666666}, /* -2.23449=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xc0016831, 0x3887b2e3, 0xbff23d70, 0xa3d70a3d}, /* -2.17587=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xc000f53f, 0x9047cd43, 0xbff2147a, 0xe147ae14}, /* -2.11975=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xc0008713, 0x8d550701, 0xbff1eb85, 0x1eb851eb}, /* -2.06595=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xc0001d5d, 0x5a921689, 0xbff1c28f, 0x5c28f5c2}, /* -2.01433=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfff6fa7, 0xd286214a, 0xbff19999, 0x99999999}, /* -1.96476=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbffeac68, 0x7953b03b, 0xbff170a3, 0xd70a3d70}, /* -1.91709=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbffdf081, 0x975fac4d, 0xbff147ae, 0x147ae147}, /* -1.87121=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbffd3b81, 0xeb0fcaad, 0xbff11eb8, 0x51eb851e}, /* -1.82702=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbffc8d01, 0x0d5ddd8b, 0xbff0f5c2, 0x8f5c28f5}, /* -1.78442=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbffbe49e, 0x982fe6aa, 0xbff0cccc, 0xcccccccc}, /* -1.74331=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbffb4201, 0x654a4047, 0xbff0a3d7, 0x0a3d70a3}, /* -1.70361=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbffaa4d6, 0xe2aca2f8, 0xbff07ae1, 0x47ae147a}, /* -1.66524=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbffa0cd2, 0x79a136ed, 0xbff051eb, 0x851eb851}, /* -1.62813=f(-1.02000)*/ +{64, 0,123,__LINE__, 0xbff979ad, 0x06284697, 0xbff028f5, 0xc28f5c28}, /* -1.59220=f(-1.01000)*/ +{63, 0,123,__LINE__, 0xbff8eb24, 0x5cbee3a1, 0xbfefffff, 0xfffffffe}, /* -1.55740=f(-0.01000)*/ +{58, 0,123,__LINE__, 0xbff860fa, 0xdcc59060, 0xbfefae14, 0x7ae147ac}, /* -1.52367=f(-0.99000)*/ +{64, 0,123,__LINE__, 0xbff7daf7, 0x0e07fa59, 0xbfef5c28, 0xf5c28f5a}, /* -1.49095=f(-0.98000)*/ +{62, 0,123,__LINE__, 0xbff758e3, 0x4819d01a, 0xbfef0a3d, 0x70a3d708}, /* -1.45920=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbff6da8d, 0x62683760, 0xbfeeb851, 0xeb851eb6}, /* -1.42835=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbff65fc6, 0x6c04955b, 0xbfee6666, 0x66666664}, /* -1.39838=f(-0.95000)*/ +{62, 0,123,__LINE__, 0xbff5e862, 0x6a4d39ca, 0xbfee147a, 0xe147ae12}, /* -1.36923=f(-0.94000)*/ +{63, 0,123,__LINE__, 0xbff57438, 0x1db3e2ff, 0xbfedc28f, 0x5c28f5c0}, /* -1.34087=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbff50320, 0xcbf9abc7, 0xbfed70a3, 0xd70a3d6e}, /* -1.31326=f(-0.92000)*/ +{63, 0,123,__LINE__, 0xbff494f8, 0x0f4c58a1, 0xbfed1eb8, 0x51eb851c}, /* -1.28636=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbff4299b, 0xa9c2a134, 0xbfeccccc, 0xccccccca}, /* -1.26015=f(-0.90000)*/ +{63, 0,123,__LINE__, 0xbff3c0eb, 0x5cc4656d, 0xbfec7ae1, 0x47ae1478}, /* -1.23459=f(-0.89000)*/ +{61, 0,123,__LINE__, 0xbff35ac8, 0xc3f910bc, 0xbfec28f5, 0xc28f5c26}, /* -1.20966=f(-0.88000)*/ +{60, 0,123,__LINE__, 0xbff2f717, 0x33620b29, 0xbfebd70a, 0x3d70a3d4}, /* -1.18532=f(-0.87000)*/ +{63, 0,123,__LINE__, 0xbff295bb, 0x98513ca9, 0xbfeb851e, 0xb851eb82}, /* -1.16155=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbff2369c, 0x5cf4878a, 0xbfeb3333, 0x33333330}, /* -1.13833=f(-0.85000)*/ +{62, 0,123,__LINE__, 0xbff1d9a1, 0x4e36e752, 0xbfeae147, 0xae147ade}, /* -1.11563=f(-0.84000)*/ +{62, 0,123,__LINE__, 0xbff17eb3, 0x83beb82e, 0xbfea8f5c, 0x28f5c28c}, /* -1.09343=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbff125bd, 0x49d6af66, 0xbfea3d70, 0xa3d70a3a}, /* -1.07171=f(-0.82000)*/ +{63, 0,123,__LINE__, 0xbff0ceaa, 0x0d145bf5, 0xbfe9eb85, 0x1eb851e8}, /* -1.05045=f(-0.81000)*/ +{63, 0,123,__LINE__, 0xbff07966, 0x4793b607, 0xbfe99999, 0x99999996}, /* -1.02963=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbff025df, 0x6fa369bb, 0xbfe947ae, 0x147ae144}, /* -1.00924=f(-0.79000)*/ +{62, 0,123,__LINE__, 0xbfefa807, 0xcf826c3d, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.98926=f(-0.78000)*/ +{64, 0,123,__LINE__, 0xbfef0785, 0xdf91f899, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.96966=f(-0.77000)*/ +{62, 0,123,__LINE__, 0xbfee6a19, 0x2e7801f1, 0xbfe851eb, 0x851eb84e}, /* -0.95045=f(-0.76000)*/ +{62, 0,123,__LINE__, 0xbfedcfa3, 0x6110eee5, 0xbfe7ffff, 0xfffffffc}, /* -0.93159=f(-0.75000)*/ +{61, 0,123,__LINE__, 0xbfed3807, 0x8a7774ea, 0xbfe7ae14, 0x7ae147aa}, /* -0.91308=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfeca32a, 0x16174ae8, 0xbfe75c28, 0xf5c28f58}, /* -0.89491=f(-0.73000)*/ +{64, 0,123,__LINE__, 0xbfec10f0, 0xb34aae96, 0xbfe70a3d, 0x70a3d706}, /* -0.87706=f(-0.72000)*/ +{62, 0,123,__LINE__, 0xbfeb8142, 0x426299ed, 0xbfe6b851, 0xeb851eb4}, /* -0.85952=f(-0.71000)*/ +{60, 0,123,__LINE__, 0xbfeaf406, 0xc2fc78a7, 0xbfe66666, 0x66666662}, /* -0.84228=f(-0.70000)*/ +{64, 0,123,__LINE__, 0xbfea6927, 0x438ad4c2, 0xbfe6147a, 0xe147ae10}, /* -0.82533=f(-0.69000)*/ +{64, 0,123,__LINE__, 0xbfe9e08d, 0xd1f8d28c, 0xbfe5c28f, 0x5c28f5be}, /* -0.80866=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe95a25, 0x6d52797a, 0xbfe570a3, 0xd70a3d6c}, /* -0.79225=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe8d5d9, 0xf85db5f5, 0xbfe51eb8, 0x51eb851a}, /* -0.77610=f(-0.66000)*/ +{64, 0,123,__LINE__, 0xbfe85398, 0x2d11be31, 0xbfe4cccc, 0xccccccc8}, /* -0.76020=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe7d34d, 0x90dc178c, 0xbfe47ae1, 0x47ae1476}, /* -0.74454=f(-0.64000)*/ +{64, 0,123,__LINE__, 0xbfe754e8, 0x69a3e63a, 0xbfe428f5, 0xc28f5c24}, /* -0.72911=f(-0.63000)*/ +{64, 0,123,__LINE__, 0xbfe6d857, 0xb37d7b1e, 0xbfe3d70a, 0x3d70a3d2}, /* -0.71390=f(-0.62000)*/ +{64, 0,123,__LINE__, 0xbfe65d8b, 0x17013ed4, 0xbfe3851e, 0xb851eb80}, /* -0.69891=f(-0.61000)*/ +{64, 0,123,__LINE__, 0xbfe5e472, 0xe03a2805, 0xbfe33333, 0x3333332e}, /* -0.68413=f(-0.60000)*/ +{64, 0,123,__LINE__, 0xbfe56cff, 0xf620e1f3, 0xbfe2e147, 0xae147adc}, /* -0.66955=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe4f723, 0xd299a7be, 0xbfe28f5c, 0x28f5c28a}, /* -0.65516=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe482d0, 0x7aeba509, 0xbfe23d70, 0xa3d70a38}, /* -0.64096=f(-0.57000)*/ +{63, 0,123,__LINE__, 0xbfe40ff8, 0x78a96652, 0xbfe1eb85, 0x1eb851e6}, /* -0.62694=f(-0.56000)*/ +{64, 0,123,__LINE__, 0xbfe39e8e, 0xd3028c71, 0xbfe19999, 0x99999994}, /* -0.61310=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfe32e87, 0x0877915c, 0xbfe147ae, 0x147ae142}, /* -0.59942=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfe2bfd5, 0x08e8f96f, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.58591=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfe2526d, 0x2ffbcd57, 0xbfe0a3d7, 0x0a3d709e}, /* -0.57256=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfe1e644, 0x3fcdaee5, 0xbfe051eb, 0x851eb84c}, /* -0.55935=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfe17b4f, 0x5bf34743, 0xbfdfffff, 0xfffffff4}, /* -0.54630=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfe11184, 0x04bc2fcf, 0xbfdf5c28, 0xf5c28f50}, /* -0.53338=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfe0a8d8, 0x12b7d223, 0xbfdeb851, 0xeb851eac}, /* -0.52061=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfe04141, 0xb2770eea, 0xbfde147a, 0xe147ae08}, /* -0.50796=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdfb56e, 0xc10d900b, 0xbfdd70a3, 0xd70a3d64}, /* -0.49544=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdeea5f, 0xcb3f61a3, 0xbfdccccc, 0xccccccc0}, /* -0.48305=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfde2144, 0xa61010ac, 0xbfdc28f5, 0xc28f5c1c}, /* -0.47078=f(-0.44000)*/ +{60, 0,123,__LINE__, 0xbfdd5a0b, 0xfe483966, 0xbfdb851e, 0xb851eb78}, /* -0.45862=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfdc94a5, 0x04655ca0, 0xbfdae147, 0xae147ad4}, /* -0.44657=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfdbd0ff, 0x6664f780, 0xbfda3d70, 0xa3d70a30}, /* -0.43463=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfdb0f0b, 0x49dcdcc8, 0xbfd99999, 0x9999998c}, /* -0.42279=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfda4eb9, 0x465c156f, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41105=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd98ffa, 0x600fde98, 0xbfd851eb, 0x851eb844}, /* -0.39941=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd8d2c0, 0x02a8a451, 0xbfd7ae14, 0x7ae147a0}, /* -0.38786=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd816fb, 0xfc7b1cf2, 0xbfd70a3d, 0x70a3d6fc}, /* -0.37640=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd75ca0, 0x79d9e7d4, 0xbfd66666, 0x66666658}, /* -0.36502=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd6a3a0, 0x00a44c7b, 0xbfd5c28f, 0x5c28f5b4}, /* -0.35373=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd5ebed, 0x6c06ed80, 0xbfd51eb8, 0x51eb8510}, /* -0.34252=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd5357b, 0xe86b7455, 0xbfd47ae1, 0x47ae146c}, /* -0.33138=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd4803e, 0xef9469bf, 0xbfd3d70a, 0x3d70a3c8}, /* -0.32032=f(-0.31000)*/ +{63, 0,123,__LINE__, 0xbfd3cc2a, 0x44e29986, 0xbfd33333, 0x33333324}, /* -0.30933=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd31931, 0xf1c1881e, 0xbfd28f5c, 0x28f5c280}, /* -0.29841=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd2674a, 0x4238a5c3, 0xbfd1eb85, 0x1eb851dc}, /* -0.28755=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd1b667, 0xc19f0d22, 0xbfd147ae, 0x147ae138}, /* -0.27675=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd1067f, 0x376fbb46, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26602=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfd05785, 0xa43c4c45, 0xbfcfffff, 0xffffffe0}, /* -0.25534=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfcf52e0, 0x7d78c725, 0xbfceb851, 0xeb851e98}, /* -0.24471=f(-0.24000)*/ +{62, 0,123,__LINE__, 0xbfcdf868, 0xe1f0008d, 0xbfcd70a3, 0xd70a3d50}, /* -0.23414=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcc9f8f, 0xab162ad9, 0xbfcc28f5, 0xc28f5c08}, /* -0.22361=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfcb4840, 0x6a01a891, 0xbfcae147, 0xae147ac0}, /* -0.21314=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc9f267, 0x068a55c9, 0xbfc99999, 0x99999978}, /* -0.20271=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc89def, 0xba56182d, 0xbfc851eb, 0x851eb830}, /* -0.19231=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc74ac7, 0x0c0c4f51, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18196=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc5f8d9, 0xcaad92ee, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17165=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc4a815, 0x090d4ab9, 0xbfc47ae1, 0x47ae1458}, /* -0.16137=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc35866, 0x196ac71e, 0xbfc33333, 0x33333310}, /* -0.15113=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc209ba, 0x89279ba7, 0xbfc1eb85, 0x1eb851c8}, /* -0.14092=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc0bc00, 0x1c99135d, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13073=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbede49, 0x95e55a38, 0xbfbeb851, 0xeb851e71}, /* -0.12057=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc462d, 0x748f42c5, 0xbfbc28f5, 0xc28f5be2}, /* -0.11044=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb9af88, 0x77430b39, 0xbfb99999, 0x99999953}, /* -0.10033=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb71a37, 0x8e5461ea, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09024=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb48617, 0xf0ce2c03, 0xbfb47ae1, 0x47ae1435}, /* -0.08017=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1f307, 0x1508a3a2, 0xbfb1eb85, 0x1eb851a6}, /* -0.07011=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaec1c5, 0x52b6f47b, 0xbfaeb851, 0xeb851e2d}, /* -0.06007=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99f11, 0x19d15be5, 0xbfa99999, 0x9999990e}, /* -0.05004=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47dad, 0x90f9a68b, 0xbfa47ae1, 0x47ae13ef}, /* -0.04002=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9ebaae, 0x1e069446, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947b94, 0x43fee8b6, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847b0e, 0x05625d64, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847b0e, 0x056261c9, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947b94, 0x43feeae8, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9ebaae, 0x1e069678, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47dad, 0x90f9a7a3, 0x3fa47ae1, 0x47ae1508}, /* 0.04002=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99f11, 0x19d15cff, 0x3fa99999, 0x99999a27}, /* 0.05004=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faec1c5, 0x52b6f595, 0x3faeb851, 0xeb851f46}, /* 0.06007=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1f307, 0x1508a42f, 0x3fb1eb85, 0x1eb85232}, /* 0.07011=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb48617, 0xf0ce2c90, 0x3fb47ae1, 0x47ae14c1}, /* 0.08017=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb71a37, 0x8e546278, 0x3fb70a3d, 0x70a3d750}, /* 0.09024=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb9af88, 0x77430bc6, 0x3fb99999, 0x999999df}, /* 0.10033=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc462d, 0x748f4352, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11044=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbede49, 0x95e55ac6, 0x3fbeb851, 0xeb851efd}, /* 0.12057=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc0bc00, 0x1c9913a5, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13073=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc209ba, 0x89279bef, 0x3fc1eb85, 0x1eb8520e}, /* 0.14092=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc35866, 0x196ac767, 0x3fc33333, 0x33333356}, /* 0.15113=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc4a815, 0x090d4b02, 0x3fc47ae1, 0x47ae149e}, /* 0.16137=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc5f8d9, 0xcaad9335, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17165=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc74ac7, 0x0c0c4f99, 0x3fc70a3d, 0x70a3d72e}, /* 0.18196=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc89def, 0xba561876, 0x3fc851eb, 0x851eb876}, /* 0.19231=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc9f267, 0x068a5611, 0x3fc99999, 0x999999be}, /* 0.20271=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fcb4840, 0x6a01a8da, 0x3fcae147, 0xae147b06}, /* 0.21314=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcc9f8f, 0xab162b24, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22361=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fcdf868, 0xe1f000d7, 0x3fcd70a3, 0xd70a3d96}, /* 0.23414=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fcf52e0, 0x7d78c76f, 0x3fceb851, 0xeb851ede}, /* 0.24471=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fd05785, 0xa43c4c6a, 0x3fd00000, 0x00000013}, /* 0.25534=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd1067f, 0x376fbb6b, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26602=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd1b667, 0xc19f0d48, 0x3fd147ae, 0x147ae15b}, /* 0.27675=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd2674a, 0x4238a5ea, 0x3fd1eb85, 0x1eb851ff}, /* 0.28755=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd31931, 0xf1c18844, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29841=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd3cc2a, 0x44e299ad, 0x3fd33333, 0x33333347}, /* 0.30933=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd4803e, 0xef9469e5, 0x3fd3d70a, 0x3d70a3eb}, /* 0.32032=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd5357b, 0xe86b747c, 0x3fd47ae1, 0x47ae148f}, /* 0.33138=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd5ebed, 0x6c06eda6, 0x3fd51eb8, 0x51eb8533}, /* 0.34252=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd6a3a0, 0x00a44ca3, 0x3fd5c28f, 0x5c28f5d7}, /* 0.35373=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd75ca0, 0x79d9e7fc, 0x3fd66666, 0x6666667b}, /* 0.36502=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd816fb, 0xfc7b1d1a, 0x3fd70a3d, 0x70a3d71f}, /* 0.37640=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd8d2c0, 0x02a8a479, 0x3fd7ae14, 0x7ae147c3}, /* 0.38786=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd98ffa, 0x600fdec0, 0x3fd851eb, 0x851eb867}, /* 0.39941=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fda4eb9, 0x465c1599, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41105=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fdb0f0b, 0x49dcdcf1, 0x3fd99999, 0x999999af}, /* 0.42279=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fdbd0ff, 0x6664f7aa, 0x3fda3d70, 0xa3d70a53}, /* 0.43463=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fdc94a5, 0x04655ccb, 0x3fdae147, 0xae147af7}, /* 0.44657=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fdd5a0b, 0xfe483992, 0x3fdb851e, 0xb851eb9b}, /* 0.45862=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fde2144, 0xa61010d6, 0x3fdc28f5, 0xc28f5c3f}, /* 0.47078=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdeea5f, 0xcb3f61ce, 0x3fdccccc, 0xcccccce3}, /* 0.48305=f(0.45000)*/ +{63, 0,123,__LINE__, 0x3fdfb56e, 0xc10d9036, 0x3fdd70a3, 0xd70a3d87}, /* 0.49544=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fe04141, 0xb2770f00, 0x3fde147a, 0xe147ae2b}, /* 0.50796=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fe0a8d8, 0x12b7d239, 0x3fdeb851, 0xeb851ecf}, /* 0.52061=f(0.48000)*/ +{62, 0,123,__LINE__, 0x3fe11184, 0x04bc2fe5, 0x3fdf5c28, 0xf5c28f73}, /* 0.53338=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fe17b4f, 0x5bf34759, 0x3fe00000, 0x0000000b}, /* 0.54630=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fe1e644, 0x3fcdaefb, 0x3fe051eb, 0x851eb85d}, /* 0.55935=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fe2526d, 0x2ffbcd6d, 0x3fe0a3d7, 0x0a3d70af}, /* 0.57256=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fe2bfd5, 0x08e8f986, 0x3fe0f5c2, 0x8f5c2901}, /* 0.58591=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fe32e87, 0x08779173, 0x3fe147ae, 0x147ae153}, /* 0.59942=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe39e8e, 0xd3028c89, 0x3fe19999, 0x999999a5}, /* 0.61310=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe40ff8, 0x78a9666a, 0x3fe1eb85, 0x1eb851f7}, /* 0.62694=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe482d0, 0x7aeba521, 0x3fe23d70, 0xa3d70a49}, /* 0.64096=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe4f723, 0xd299a7d5, 0x3fe28f5c, 0x28f5c29b}, /* 0.65516=f(0.58000)*/ +{61, 0,123,__LINE__, 0x3fe56cff, 0xf620e20b, 0x3fe2e147, 0xae147aed}, /* 0.66955=f(0.59000)*/ +{62, 0,123,__LINE__, 0x3fe5e472, 0xe03a281d, 0x3fe33333, 0x3333333f}, /* 0.68413=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe65d8b, 0x17013eec, 0x3fe3851e, 0xb851eb91}, /* 0.69891=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe6d857, 0xb37d7b38, 0x3fe3d70a, 0x3d70a3e3}, /* 0.71390=f(0.62000)*/ +{61, 0,123,__LINE__, 0x3fe754e8, 0x69a3e653, 0x3fe428f5, 0xc28f5c35}, /* 0.72911=f(0.63000)*/ +{64, 0,123,__LINE__, 0x3fe7d34d, 0x90dc17a7, 0x3fe47ae1, 0x47ae1487}, /* 0.74454=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe85398, 0x2d11be4c, 0x3fe4cccc, 0xccccccd9}, /* 0.76020=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe8d5d9, 0xf85db610, 0x3fe51eb8, 0x51eb852b}, /* 0.77610=f(0.66000)*/ +{63, 0,123,__LINE__, 0x3fe95a25, 0x6d527996, 0x3fe570a3, 0xd70a3d7d}, /* 0.79225=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe9e08d, 0xd1f8d2a8, 0x3fe5c28f, 0x5c28f5cf}, /* 0.80866=f(0.68000)*/ +{58, 0,123,__LINE__, 0x3fea6927, 0x438ad4df, 0x3fe6147a, 0xe147ae21}, /* 0.82533=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3feaf406, 0xc2fc78c3, 0x3fe66666, 0x66666673}, /* 0.84228=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3feb8142, 0x42629a0b, 0x3fe6b851, 0xeb851ec5}, /* 0.85952=f(0.71000)*/ +{64, 0,123,__LINE__, 0x3fec10f0, 0xb34aaeb4, 0x3fe70a3d, 0x70a3d717}, /* 0.87706=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3feca32a, 0x16174b05, 0x3fe75c28, 0xf5c28f69}, /* 0.89491=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fed3807, 0x8a77750a, 0x3fe7ae14, 0x7ae147bb}, /* 0.91308=f(0.74000)*/ +{63, 0,123,__LINE__, 0x3fedcfa3, 0x6110ef04, 0x3fe80000, 0x0000000d}, /* 0.93159=f(0.75000)*/ +{64, 0,123,__LINE__, 0x3fee6a19, 0x2e780214, 0x3fe851eb, 0x851eb85f}, /* 0.95045=f(0.76000)*/ +{63, 0,123,__LINE__, 0x3fef0785, 0xdf91f8b8, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.96966=f(0.77000)*/ +{58, 0,123,__LINE__, 0x3fefa807, 0xcf826c5d, 0x3fe8f5c2, 0x8f5c2903}, /* 0.98926=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3ff025df, 0x6fa369cc, 0x3fe947ae, 0x147ae155}, /* 1.00924=f(0.79000)*/ +{60, 0,123,__LINE__, 0x3ff07966, 0x4793b619, 0x3fe99999, 0x999999a7}, /* 1.02963=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3ff0ceaa, 0x0d145c07, 0x3fe9eb85, 0x1eb851f9}, /* 1.05045=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3ff125bd, 0x49d6af78, 0x3fea3d70, 0xa3d70a4b}, /* 1.07171=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3ff17eb3, 0x83beb840, 0x3fea8f5c, 0x28f5c29d}, /* 1.09343=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3ff1d9a1, 0x4e36e764, 0x3feae147, 0xae147aef}, /* 1.11563=f(0.84000)*/ +{64, 0,123,__LINE__, 0x3ff2369c, 0x5cf4879c, 0x3feb3333, 0x33333341}, /* 1.13833=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3ff295bb, 0x98513cbe, 0x3feb851e, 0xb851eb93}, /* 1.16155=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3ff2f717, 0x33620b3c, 0x3febd70a, 0x3d70a3e5}, /* 1.18532=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3ff35ac8, 0xc3f910d0, 0x3fec28f5, 0xc28f5c37}, /* 1.20966=f(0.88000)*/ +{64, 0,123,__LINE__, 0x3ff3c0eb, 0x5cc46582, 0x3fec7ae1, 0x47ae1489}, /* 1.23459=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3ff4299b, 0xa9c2a14a, 0x3feccccc, 0xccccccdb}, /* 1.26015=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3ff494f8, 0x0f4c58b7, 0x3fed1eb8, 0x51eb852d}, /* 1.28636=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3ff50320, 0xcbf9abde, 0x3fed70a3, 0xd70a3d7f}, /* 1.31326=f(0.92000)*/ +{63, 0,123,__LINE__, 0x3ff57438, 0x1db3e317, 0x3fedc28f, 0x5c28f5d1}, /* 1.34087=f(0.93000)*/ +{63, 0,123,__LINE__, 0x3ff5e862, 0x6a4d39e3, 0x3fee147a, 0xe147ae23}, /* 1.36923=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3ff65fc6, 0x6c049574, 0x3fee6666, 0x66666675}, /* 1.39838=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3ff6da8d, 0x6268377b, 0x3feeb851, 0xeb851ec7}, /* 1.42835=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3ff758e3, 0x4819d034, 0x3fef0a3d, 0x70a3d719}, /* 1.45920=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3ff7daf7, 0x0e07fa74, 0x3fef5c28, 0xf5c28f6b}, /* 1.49095=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3ff860fa, 0xdcc5907c, 0x3fefae14, 0x7ae147bd}, /* 1.52367=f(0.99000)*/ +{63, 0,123,__LINE__, 0x3ff8eb24, 0x5cbee3bd, 0x3ff00000, 0x00000007}, /* 1.55740=f(1.00000)*/ +{61, 0,123,__LINE__, 0x3ff979ad, 0x062846b5, 0x3ff028f5, 0xc28f5c30}, /* 1.59220=f(1.01000)*/ +{62, 0,123,__LINE__, 0x3ffa0cd2, 0x79a1370a, 0x3ff051eb, 0x851eb859}, /* 1.62813=f(1.02000)*/ +{64, 0,123,__LINE__, 0x3ffaa4d6, 0xe2aca316, 0x3ff07ae1, 0x47ae1482}, /* 1.66524=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3ffb4201, 0x654a4066, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.70361=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3ffbe49e, 0x982fe6cb, 0x3ff0cccc, 0xccccccd4}, /* 1.74331=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3ffc8d01, 0x0d5dddad, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.78442=f(1.06000)*/ +{63, 0,123,__LINE__, 0x3ffd3b81, 0xeb0fcacf, 0x3ff11eb8, 0x51eb8526}, /* 1.82702=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3ffdf081, 0x975fac71, 0x3ff147ae, 0x147ae14f}, /* 1.87121=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3ffeac68, 0x7953b060, 0x3ff170a3, 0xd70a3d78}, /* 1.91709=f(1.09000)*/ +{63, 0,123,__LINE__, 0x3fff6fa7, 0xd2862171, 0x3ff19999, 0x999999a1}, /* 1.96476=f(1.10000)*/ +{64, 0,123,__LINE__, 0x40001d5d, 0x5a92169e, 0x3ff1c28f, 0x5c28f5ca}, /* 2.01433=f(1.11000)*/ +{64, 0,123,__LINE__, 0x40008713, 0x8d550717, 0x3ff1eb85, 0x1eb851f3}, /* 2.06595=f(1.12000)*/ +{64, 0,123,__LINE__, 0x4000f53f, 0x9047cd58, 0x3ff2147a, 0xe147ae1c}, /* 2.11975=f(1.13000)*/ +{64, 0,123,__LINE__, 0x40016831, 0x3887b2fa, 0x3ff23d70, 0xa3d70a45}, /* 2.17587=f(1.14000)*/ +{64, 0,123,__LINE__, 0x4001e03f, 0xefaf53e1, 0x3ff26666, 0x6666666e}, /* 2.23449=f(1.15000)*/ +{64, 0,123,__LINE__, 0x40025dcb, 0xa00cf2ea, 0x3ff28f5c, 0x28f5c297}, /* 2.29579=f(1.16000)*/ +{64, 0,123,__LINE__, 0x4002e13d, 0xc435202c, 0x3ff2b851, 0xeb851ec0}, /* 2.35998=f(1.17000)*/ +{64, 0,123,__LINE__, 0x40036b0a, 0xa04728d0, 0x3ff2e147, 0xae147ae9}, /* 2.42726=f(1.18000)*/ +{64, 0,123,__LINE__, 0x4003fbb2, 0xac8d6e26, 0x3ff30a3d, 0x70a3d712}, /* 2.49789=f(1.19000)*/ +{27, 0,123,__LINE__, 0x3cb1a620, 0x00000000, 0xc01921fb, 0x54442d18}, /* 2.44928e-16=f(-6.28318)*/ +{27, 0,123,__LINE__, 0xc3335715, 0xc89e712f, 0xc012d97c, 0x7f3321d2}, /* -5.44378e+15=f(-4.71238)*/ +{27, 0,123,__LINE__, 0x3ca1a620, 0x00000000, 0xc00921fb, 0x54442d18}, /* 1.22464e-16=f(-3.14159)*/ +{26, 0,123,__LINE__, 0xc34d02a0, 0xaceda9c7, 0xbff921fb, 0x54442d18}, /* -1.63313e+16=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{26, 0,123,__LINE__, 0x434d02a0, 0xaceda9c7, 0x3ff921fb, 0x54442d18}, /* 1.63313e+16=f(1.57079)*/ +{27, 0,123,__LINE__, 0xbca1a620, 0x00000000, 0x400921fb, 0x54442d18}, /* -1.22464e-16=f(3.14159)*/ +{27, 0,123,__LINE__, 0x43335715, 0xc89e712f, 0x4012d97c, 0x7f3321d2}, /* 5.44378e+15=f(4.71238)*/ +{64, 0,123,__LINE__, 0x40199f0f, 0x242693c3, 0xc03e0000, 0x00000000}, /* 6.40533=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbf9a49b2, 0x510ff816, 0xc03c4ccc, 0xcccccccd}, /* -0.02567=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xc0233f61, 0xec28ea0a, 0xc03a9999, 0x9999999a}, /* -9.62379=f(-26.6000)*/ +{64, 0,123,__LINE__, 0x3fce5738, 0x470a4647, 0xc038e666, 0x66666667}, /* 0.23703=f(-24.9000)*/ +{61, 0,123,__LINE__, 0xc005210b, 0xfc3dbe54, 0xc0373333, 0x33333334}, /* -2.64113=f(-23.2000)*/ +{63, 0,123,__LINE__, 0x3fe11d9b, 0xf21d0970, 0xc0358000, 0x00000001}, /* 0.53486=f(-21.5000)*/ +{62, 0,123,__LINE__, 0xbff66527, 0x7e5f32c2, 0xc033cccc, 0xccccccce}, /* -1.39969=f(-19.8000)*/ +{64, 0,123,__LINE__, 0x3fedc8d8, 0x8c976b0e, 0xc0321999, 0x9999999b}, /* 0.93076=f(-18.1000)*/ +{62, 0,123,__LINE__, 0xbfea8540, 0x3fe57519, 0xc0306666, 0x66666668}, /* -0.82876=f(-16.4000)*/ +{64, 0,123,__LINE__, 0x3ff95c47, 0x92ef95dd, 0xc02d6666, 0x6666666a}, /* 1.58502=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xbfdda223, 0x63d46c99, 0xc02a0000, 0x00000004}, /* -0.46302=f(-13.0000)*/ +{64, 0,123,__LINE__, 0x4009764d, 0xf48e7ae2, 0xc0269999, 0x9999999e}, /* 3.18276=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xbfc6a92b, 0x1538da8a, 0xc0233333, 0x33333338}, /* -0.17703=f(-9.60000)*/ +{64, 0,123,__LINE__, 0x4035b711, 0x9feaed40, 0xc01f9999, 0x999999a3}, /* 21.7151=f(-7.90000)*/ +{64, 0,123,__LINE__, 0x3fb5583d, 0xee9078b6, 0xc018cccc, 0xccccccd6}, /* 0.08337=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xc0128ca0, 0xc62bf65f, 0xc0120000, 0x00000009}, /* -4.63733=f(-4.50000)*/ +{64, 0,123,__LINE__, 0x3fd6c100, 0x31ec6ced, 0xc0066666, 0x66666678}, /* 0.35552=f(-2.80000)*/ +{63, 0,123,__LINE__, 0xbfff6fa7, 0xd28621f9, 0xbff19999, 0x999999bd}, /* -1.96476=f(-1.10000)*/ +{64, 0,123,__LINE__, 0x3fe5e472, 0xe03a27a3, 0x3fe33333, 0x333332ec}, /* 0.68413=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbff1e84c, 0x9047c388, 0x40026666, 0x66666654}, /* -1.11921=f(2.30000)*/ +{63, 0,123,__LINE__, 0x3ff2866f, 0x9be4ddbf, 0x400fffff, 0xffffffee}, /* 1.15782=f(4.00000)*/ +{59, 0,123,__LINE__, 0xbfe51c83, 0x499b4d2f, 0x4016cccc, 0xccccccc4}, /* -0.65973=f(5.70000)*/ +{64, 0,123,__LINE__, 0x400064ef, 0x1934ec81, 0x401d9999, 0x99999991}, /* 2.04928=f(7.40000)*/ +{64, 0,123,__LINE__, 0xbfd58c80, 0x5d64d043, 0x40223333, 0x3333332f}, /* -0.33670=f(9.10000)*/ +{64, 0,123,__LINE__, 0x401430ef, 0x6b305cef, 0x40259999, 0x99999995}, /* 5.04778=f(10.8000)*/ +{64, 0,123,__LINE__, 0xbfb10410, 0x0d0681dd, 0x4028ffff, 0xfffffffb}, /* -0.06646=f(12.5000)*/ +{64, 0,123,__LINE__, 0xc02fc9d9, 0xb26ed77b, 0x402c6666, 0x66666661}, /* -15.8942=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3fc8e32b, 0xf9e67cb7, 0x402fcccc, 0xccccccc7}, /* 0.19443=f(15.9000)*/ +{64, 0,123,__LINE__, 0xc0080a76, 0xc02a4902, 0x40319999, 0x99999997}, /* -3.00510=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3fdef359, 0x829ee0fa, 0x40334ccc, 0xccccccca}, /* 0.48360=f(19.3000)*/ +{64, 0,123,__LINE__, 0xbff870a2, 0x4bce3344, 0x4034ffff, 0xfffffffd}, /* -1.52749=f(21.0000)*/ +{64, 0,123,__LINE__, 0x3feb70ea, 0x1a297e19, 0x4036b333, 0x33333330}, /* 0.85753=f(22.7000)*/ +{61, 0,123,__LINE__, 0xbfeccbb4, 0x686d348a, 0x40386666, 0x66666663}, /* -0.89986=f(24.4000)*/ +{63, 0,123,__LINE__, 0x3ff735e4, 0x5e7305e1, 0x403a1999, 0x99999996}, /* 1.45065=f(26.1000)*/ +{64, 0,123,__LINE__, 0xbfe06e04, 0xfc5ca3b7, 0x403bcccc, 0xccccccc9}, /* -0.51343=f(27.8000)*/ +{63, 0,123,__LINE__, 0x4006407d, 0xaf0ccd5f, 0x403d7fff, 0xfffffffc}, /* 2.78149=f(29.5000)*/ +0,}; +test_tan(m) {run_vector_1(m,tan_vec,(char *)(tan),"tan","dd"); } diff --git a/newlib/libm/test/tanf_vec.c b/newlib/libm/test/tanf_vec.c new file mode 100644 index 000000000..e6106e78a --- /dev/null +++ b/newlib/libm/test/tanf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type tanf_vec[] = { +{ 1, 0,123,__LINE__, 0xc00493c4, 0x60a46c17, 0xbff33333, 0x33333333}, /* -2.57215=f(-1.20000)*/ +{ 1, 0,123,__LINE__, 0xc003fbb2, 0xd945e787, 0xbff30a3d, 0x70a3d70a}, /* -2.49790=f(-1.19000)*/ +{ 1, 0,123,__LINE__, 0xc0036b0a, 0x697947b9, 0xbff2e147, 0xae147ae1}, /* -2.42726=f(-1.18000)*/ +{ 1, 0,123,__LINE__, 0xc002e13d, 0x9fc3ce6f, 0xbff2b851, 0xeb851eb8}, /* -2.35998=f(-1.17000)*/ +{ 1, 0,123,__LINE__, 0xc0025dcb, 0x75d83ff1, 0xbff28f5c, 0x28f5c28f}, /* -2.29579=f(-1.16000)*/ +{ 1, 0,123,__LINE__, 0xc001e03f, 0xd68293e3, 0xbff26666, 0x66666666}, /* -2.23449=f(-1.15000)*/ +{ 1, 0,123,__LINE__, 0xc0016831, 0x1d167463, 0xbff23d70, 0xa3d70a3d}, /* -2.17587=f(-1.14000)*/ +{ 1, 0,123,__LINE__, 0xc000f53f, 0x76ea55a9, 0xbff2147a, 0xe147ae14}, /* -2.11975=f(-1.13000)*/ +{ 1, 0,123,__LINE__, 0xc0008713, 0x8be051ea, 0xbff1eb85, 0x1eb851eb}, /* -2.06595=f(-1.12000)*/ +{ 1, 0,123,__LINE__, 0xc0001d5d, 0x5f776659, 0xbff1c28f, 0x5c28f5c2}, /* -2.01433=f(-1.11000)*/ +{12, 0,123,__LINE__, 0xbfff6fa7, 0xeae23a93, 0xbff19999, 0x99999999}, /* -1.96476=f(-1.10000)*/ +{12, 0,123,__LINE__, 0xbffeac68, 0x9d7c22ff, 0xbff170a3, 0xd70a3d70}, /* -1.91709=f(-1.09000)*/ +{12, 0,123,__LINE__, 0xbffdf081, 0x9f873dbf, 0xbff147ae, 0x147ae147}, /* -1.87121=f(-1.08000)*/ +{12, 0,123,__LINE__, 0xbffd3b82, 0x4a60b096, 0xbff11eb8, 0x51eb851e}, /* -1.82702=f(-1.07000)*/ +{12, 0,123,__LINE__, 0xbffc8d00, 0xd97f0c46, 0xbff0f5c2, 0x8f5c28f5}, /* -1.78442=f(-1.06000)*/ +{12, 0,123,__LINE__, 0xbffbe49e, 0x8f515157, 0xbff0cccc, 0xcccccccc}, /* -1.74331=f(-1.05000)*/ +{12, 0,123,__LINE__, 0xbffb4201, 0x4882fd2c, 0xbff0a3d7, 0x0a3d70a3}, /* -1.70361=f(-1.04000)*/ +{12, 0,123,__LINE__, 0xbffaa4d6, 0xdfc58e3b, 0xbff07ae1, 0x47ae147a}, /* -1.66524=f(-1.03000)*/ +{12, 0,123,__LINE__, 0xbffa0cd2, 0x792fd5e4, 0xbff051eb, 0x851eb851}, /* -1.62813=f(-1.02000)*/ +{12, 0,123,__LINE__, 0xbff979ad, 0x0a3bf80e, 0xbff028f5, 0xc28f5c28}, /* -1.59220=f(-1.01000)*/ +{12, 0,123,__LINE__, 0xbff8eb24, 0x557be2c5, 0xbfefffff, 0xfffffffe}, /* -1.55740=f(-0.01000)*/ +{11, 0,123,__LINE__, 0xbff860fa, 0xfc5b36cb, 0xbfefae14, 0x7ae147ac}, /* -1.52367=f(-0.99000)*/ +{11, 0,123,__LINE__, 0xbff7daf7, 0x25adb72c, 0xbfef5c28, 0xf5c28f5a}, /* -1.49095=f(-0.98000)*/ +{11, 0,123,__LINE__, 0xbff758e3, 0x5c5c4bc3, 0xbfef0a3d, 0x70a3d708}, /* -1.45920=f(-0.97000)*/ +{11, 0,123,__LINE__, 0xbff6da8d, 0x465b10d3, 0xbfeeb851, 0xeb851eb6}, /* -1.42835=f(-0.96000)*/ +{11, 0,123,__LINE__, 0xbff65fc6, 0x7a1852b8, 0xbfee6666, 0x66666664}, /* -1.39838=f(-0.95000)*/ +{11, 0,123,__LINE__, 0xbff5e862, 0x7bea5ee0, 0xbfee147a, 0xe147ae12}, /* -1.36923=f(-0.94000)*/ +{11, 0,123,__LINE__, 0xbff57438, 0x289b5e3b, 0xbfedc28f, 0x5c28f5c0}, /* -1.34087=f(-0.93000)*/ +{11, 0,123,__LINE__, 0xbff50320, 0xdce90618, 0xbfed70a3, 0xd70a3d6e}, /* -1.31326=f(-0.92000)*/ +{11, 0,123,__LINE__, 0xbff494f8, 0x1ca9a021, 0xbfed1eb8, 0x51eb851c}, /* -1.28636=f(-0.91000)*/ +{11, 0,123,__LINE__, 0xbff4299b, 0xb677a625, 0xbfeccccc, 0xccccccca}, /* -1.26015=f(-0.90000)*/ +{11, 0,123,__LINE__, 0xbff3c0eb, 0x5d6dc71b, 0xbfec7ae1, 0x47ae1478}, /* -1.23459=f(-0.89000)*/ +{11, 0,123,__LINE__, 0xbff35ac8, 0xb71c3141, 0xbfec28f5, 0xc28f5c26}, /* -1.20966=f(-0.88000)*/ +{11, 0,123,__LINE__, 0xbff2f717, 0x54f79b3d, 0xbfebd70a, 0x3d70a3d4}, /* -1.18532=f(-0.87000)*/ +{11, 0,123,__LINE__, 0xbff295bb, 0xbebe939a, 0xbfeb851e, 0xb851eb82}, /* -1.16155=f(-0.86000)*/ +{11, 0,123,__LINE__, 0xbff2369c, 0x7eb294a6, 0xbfeb3333, 0x33333330}, /* -1.13833=f(-0.85000)*/ +{11, 0,123,__LINE__, 0xbff1d9a1, 0x4ce6a1cc, 0xbfeae147, 0xae147ade}, /* -1.11563=f(-0.84000)*/ +{11, 0,123,__LINE__, 0xbff17eb3, 0x91304e28, 0xbfea8f5c, 0x28f5c28c}, /* -1.09343=f(-0.83000)*/ +{11, 0,123,__LINE__, 0xbff125bd, 0x4df8fefb, 0xbfea3d70, 0xa3d70a3a}, /* -1.07171=f(-0.82000)*/ +{11, 0,123,__LINE__, 0xbff0ceaa, 0x1f93873e, 0xbfe9eb85, 0x1eb851e8}, /* -1.05045=f(-0.81000)*/ +{11, 0,123,__LINE__, 0xbff07966, 0x513a3b5a, 0xbfe99999, 0x99999996}, /* -1.02963=f(-0.80000)*/ +{11, 0,123,__LINE__, 0xbff025df, 0x6f29f2ec, 0xbfe947ae, 0x147ae144}, /* -1.00924=f(-0.79000)*/ +{13, 0,123,__LINE__, 0xbfefa807, 0xb37fe893, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.98926=f(-0.78000)*/ +{13, 0,123,__LINE__, 0xbfef0785, 0xe6cc72c0, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.96966=f(-0.77000)*/ +{13, 0,123,__LINE__, 0xbfee6a19, 0x1a5a5d47, 0xbfe851eb, 0x851eb84e}, /* -0.95045=f(-0.76000)*/ +{13, 0,123,__LINE__, 0xbfedcfa3, 0x6f0e1bb8, 0xbfe7ffff, 0xfffffffc}, /* -0.93159=f(-0.75000)*/ +{12, 0,123,__LINE__, 0xbfed3807, 0xa38f5e1e, 0xbfe7ae14, 0x7ae147aa}, /* -0.91308=f(-0.74000)*/ +{12, 0,123,__LINE__, 0xbfeca32a, 0x27dbdb5f, 0xbfe75c28, 0xf5c28f58}, /* -0.89491=f(-0.73000)*/ +{12, 0,123,__LINE__, 0xbfec10f0, 0xd1dce257, 0xbfe70a3d, 0x70a3d706}, /* -0.87706=f(-0.72000)*/ +{12, 0,123,__LINE__, 0xbfeb8142, 0x14ec2f58, 0xbfe6b851, 0xeb851eb4}, /* -0.85952=f(-0.71000)*/ +{12, 0,123,__LINE__, 0xbfeaf406, 0xb7b84f13, 0xbfe66666, 0x66666662}, /* -0.84228=f(-0.70000)*/ +{12, 0,123,__LINE__, 0xbfea6927, 0x36d404a7, 0xbfe6147a, 0xe147ae10}, /* -0.82533=f(-0.69000)*/ +{12, 0,123,__LINE__, 0xbfe9e08d, 0xcd0c4515, 0xbfe5c28f, 0x5c28f5be}, /* -0.80866=f(-0.68000)*/ +{12, 0,123,__LINE__, 0xbfe95a25, 0x8371b38d, 0xbfe570a3, 0xd70a3d6c}, /* -0.79225=f(-0.67000)*/ +{12, 0,123,__LINE__, 0xbfe8d5da, 0x0959b4d1, 0xbfe51eb8, 0x51eb851a}, /* -0.77610=f(-0.66000)*/ +{12, 0,123,__LINE__, 0xbfe85398, 0x1f2129f6, 0xbfe4cccc, 0xccccccc8}, /* -0.76020=f(-0.65000)*/ +{14, 0,123,__LINE__, 0xbfe7d34d, 0x9cd5962b, 0xbfe47ae1, 0x47ae1476}, /* -0.74454=f(-0.64000)*/ +{14, 0,123,__LINE__, 0xbfe754e8, 0x7d3a768e, 0xbfe428f5, 0xc28f5c24}, /* -0.72911=f(-0.63000)*/ +{13, 0,123,__LINE__, 0xbfe6d857, 0xa6938407, 0xbfe3d70a, 0x3d70a3d2}, /* -0.71390=f(-0.62000)*/ +{13, 0,123,__LINE__, 0xbfe65d8b, 0x3a5a9ac2, 0xbfe3851e, 0xb851eb80}, /* -0.69891=f(-0.61000)*/ +{13, 0,123,__LINE__, 0xbfe5e472, 0xf54ac1cd, 0xbfe33333, 0x3333332e}, /* -0.68413=f(-0.60000)*/ +{13, 0,123,__LINE__, 0xbfe56cff, 0xf73da40d, 0xbfe2e147, 0xae147adc}, /* -0.66955=f(-0.59000)*/ +{13, 0,123,__LINE__, 0xbfe4f723, 0xb1c7defb, 0xbfe28f5c, 0x28f5c28a}, /* -0.65516=f(-0.58000)*/ +{13, 0,123,__LINE__, 0xbfe482d0, 0x863bd3e6, 0xbfe23d70, 0xa3d70a38}, /* -0.64096=f(-0.57000)*/ +{13, 0,123,__LINE__, 0xbfe40ff8, 0x7abe2d6d, 0xbfe1eb85, 0x1eb851e6}, /* -0.62694=f(-0.56000)*/ +{14, 0,123,__LINE__, 0xbfe39e8e, 0xdcee4dab, 0xbfe19999, 0x99999994}, /* -0.61310=f(-0.55000)*/ +{14, 0,123,__LINE__, 0xbfe32e87, 0x1791a835, 0xbfe147ae, 0x147ae142}, /* -0.59942=f(-0.54000)*/ +{14, 0,123,__LINE__, 0xbfe2bfd4, 0xfeeb10a3, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.58591=f(-0.53000)*/ +{14, 0,123,__LINE__, 0xbfe2526d, 0x0988d60f, 0xbfe0a3d7, 0x0a3d709e}, /* -0.57256=f(-0.52000)*/ +{15, 0,123,__LINE__, 0xbfe1e644, 0x2ff16a35, 0xbfe051eb, 0x851eb84c}, /* -0.55935=f(-0.51000)*/ +{15, 0,123,__LINE__, 0xbfe17b4f, 0x6c66f0e1, 0xbfdfffff, 0xfffffff4}, /* -0.54630=f(-0.50000)*/ +{10, 0,123,__LINE__, 0xbfe11183, 0xff3448f4, 0xbfdf5c28, 0xf5c28f50}, /* -0.53338=f(-0.49000)*/ +{10, 0,123,__LINE__, 0xbfe0a8d8, 0x0a4956f5, 0xbfdeb851, 0xeb851eac}, /* -0.52061=f(-0.48000)*/ +{10, 0,123,__LINE__, 0xbfe04141, 0xb4ad5c2d, 0xbfde147a, 0xe147ae08}, /* -0.50796=f(-0.47000)*/ +{14, 0,123,__LINE__, 0xbfdfb56e, 0xceae5e05, 0xbfdd70a3, 0xd70a3d64}, /* -0.49544=f(-0.46000)*/ +{14, 0,123,__LINE__, 0xbfdeea5f, 0xd110f177, 0xbfdccccc, 0xccccccc0}, /* -0.48305=f(-0.45000)*/ +{14, 0,123,__LINE__, 0xbfde2144, 0x9284fe48, 0xbfdc28f5, 0xc28f5c1c}, /* -0.47078=f(-0.44000)*/ +{13, 0,123,__LINE__, 0xbfdd5a0c, 0x033c25a0, 0xbfdb851e, 0xb851eb78}, /* -0.45862=f(-0.43000)*/ +{13, 0,123,__LINE__, 0xbfdc94a5, 0x0a6220fa, 0xbfdae147, 0xae147ad4}, /* -0.44657=f(-0.42000)*/ +{15, 0,123,__LINE__, 0xbfdbd0ff, 0x60047876, 0xbfda3d70, 0xa3d70a30}, /* -0.43463=f(-0.41000)*/ +{14, 0,123,__LINE__, 0xbfdb0f0b, 0x4978206b, 0xbfd99999, 0x9999998c}, /* -0.42279=f(-0.40000)*/ +{14, 0,123,__LINE__, 0xbfda4eb9, 0x401b707d, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.41105=f(-0.39000)*/ +{15, 0,123,__LINE__, 0xbfd98ffa, 0x4e05150d, 0xbfd851eb, 0x851eb844}, /* -0.39941=f(-0.38000)*/ +{12, 0,123,__LINE__, 0xbfd8d2c0, 0x07dca0a5, 0xbfd7ae14, 0x7ae147a0}, /* -0.38786=f(-0.37000)*/ +{12, 0,123,__LINE__, 0xbfd816fc, 0x07412ce9, 0xbfd70a3d, 0x70a3d6fc}, /* -0.37640=f(-0.36000)*/ +{15, 0,123,__LINE__, 0xbfd75ca0, 0x82a3500f, 0xbfd66666, 0x66666658}, /* -0.36502=f(-0.35000)*/ +{14, 0,123,__LINE__, 0xbfd6a3a0, 0x09c992e0, 0xbfd5c28f, 0x5c28f5b4}, /* -0.35373=f(-0.34000)*/ +{16, 0,123,__LINE__, 0xbfd5ebed, 0x814343f4, 0xbfd51eb8, 0x51eb8510}, /* -0.34252=f(-0.33000)*/ +{15, 0,123,__LINE__, 0xbfd5357b, 0xe63018f6, 0xbfd47ae1, 0x47ae146c}, /* -0.33138=f(-0.32000)*/ +{13, 0,123,__LINE__, 0xbfd4803e, 0xea116264, 0xbfd3d70a, 0x3d70a3c8}, /* -0.32032=f(-0.31000)*/ +{16, 0,123,__LINE__, 0xbfd3cc2a, 0x5ad65335, 0xbfd33333, 0x33333324}, /* -0.30933=f(-0.30000)*/ +{15, 0,123,__LINE__, 0xbfd31931, 0xe060c520, 0xbfd28f5c, 0x28f5c280}, /* -0.29841=f(-0.29000)*/ +{14, 0,123,__LINE__, 0xbfd2674a, 0x365ed2ae, 0xbfd1eb85, 0x1eb851dc}, /* -0.28755=f(-0.28000)*/ +{16, 0,123,__LINE__, 0xbfd1b667, 0xbd871769, 0xbfd147ae, 0x147ae138}, /* -0.27675=f(-0.27000)*/ +{15, 0,123,__LINE__, 0xbfd1067f, 0x22f340e2, 0xbfd0a3d7, 0x0a3d7094}, /* -0.26602=f(-0.26000)*/ +{17, 0,123,__LINE__, 0xbfd05785, 0xa2aa8f5d, 0xbfcfffff, 0xffffffe0}, /* -0.25534=f(-0.25000)*/ +{15, 0,123,__LINE__, 0xbfcf52e0, 0x751724d3, 0xbfceb851, 0xeb851e98}, /* -0.24471=f(-0.24000)*/ +{16, 0,123,__LINE__, 0xbfcdf868, 0xde3343a6, 0xbfcd70a3, 0xd70a3d50}, /* -0.23414=f(-0.23000)*/ +{16, 0,123,__LINE__, 0xbfcc9f8f, 0xa9db8e2b, 0xbfcc28f5, 0xc28f5c08}, /* -0.22361=f(-0.22000)*/ +{15, 0,123,__LINE__, 0xbfcb4840, 0x5ef1cde7, 0xbfcae147, 0xae147ac0}, /* -0.21314=f(-0.21000)*/ +{17, 0,123,__LINE__, 0xbfc9f267, 0x18b23cb5, 0xbfc99999, 0x99999978}, /* -0.20271=f(-0.20000)*/ +{16, 0,123,__LINE__, 0xbfc89def, 0xcd08bbff, 0xbfc851eb, 0x851eb830}, /* -0.19231=f(-0.19000)*/ +{17, 0,123,__LINE__, 0xbfc74ac7, 0x1ea87149, 0xbfc70a3d, 0x70a3d6e8}, /* -0.18196=f(-0.18000)*/ +{18, 0,123,__LINE__, 0xbfc5f8d9, 0xce721592, 0xbfc5c28f, 0x5c28f5a0}, /* -0.17165=f(-0.17000)*/ +{16, 0,123,__LINE__, 0xbfc4a814, 0xfe573588, 0xbfc47ae1, 0x47ae1458}, /* -0.16137=f(-0.16000)*/ +{17, 0,123,__LINE__, 0xbfc35866, 0x273726ca, 0xbfc33333, 0x33333310}, /* -0.15113=f(-0.15000)*/ +{14, 0,123,__LINE__, 0xbfc209ba, 0x880c5f49, 0xbfc1eb85, 0x1eb851c8}, /* -0.14092=f(-0.14000)*/ +{19, 0,123,__LINE__, 0xbfc0bc00, 0x2285a47a, 0xbfc0a3d7, 0x0a3d7080}, /* -0.13073=f(-0.13000)*/ +{17, 0,123,__LINE__, 0xbfbede49, 0x9104b8d8, 0xbfbeb851, 0xeb851e71}, /* -0.12057=f(-0.12000)*/ +{17, 0,123,__LINE__, 0xbfbc462d, 0x5b22fd0b, 0xbfbc28f5, 0xc28f5be2}, /* -0.11044=f(-0.11000)*/ +{18, 0,123,__LINE__, 0xbfb9af88, 0x775294d2, 0xbfb99999, 0x99999953}, /* -0.10033=f(-0.00100)*/ +{19, 0,123,__LINE__, 0xbfb71a37, 0x986fb16c, 0xbfb70a3d, 0x70a3d6c4}, /* -0.09024=f(-0.09000)*/ +{16, 0,123,__LINE__, 0xbfb48617, 0xe06053a2, 0xbfb47ae1, 0x47ae1435}, /* -0.08017=f(-0.08000)*/ +{19, 0,123,__LINE__, 0xbfb1f307, 0x1446b81c, 0xbfb1eb85, 0x1eb851a6}, /* -0.07011=f(-0.07000)*/ +{17, 0,123,__LINE__, 0xbfaec1c5, 0x462ce097, 0xbfaeb851, 0xeb851e2d}, /* -0.06007=f(-0.06000)*/ +{21, 0,123,__LINE__, 0xbfa99f11, 0x2eccbf2c, 0xbfa99999, 0x9999990e}, /* -0.05004=f(-0.05000)*/ +{21, 0,123,__LINE__, 0xbfa47dad, 0x91e06543, 0xbfa47ae1, 0x47ae13ef}, /* -0.04002=f(-0.04000)*/ +{22, 0,123,__LINE__, 0xbf9ebaae, 0x24cfb752, 0xbf9eb851, 0xeb851da0}, /* -0.03000=f(-0.03000)*/ +{23, 0,123,__LINE__, 0xbf947b94, 0x37e95c0b, 0xbf947ae1, 0x47ae1362}, /* -0.02000=f(-0.02000)*/ +{23, 0,123,__LINE__, 0xbf847b0e, 0x045fdf61, 0xbf847ae1, 0x47ae1249}, /* -0.01000=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{23, 0,123,__LINE__, 0x3f847b0e, 0x045fdf61, 0x3f847ae1, 0x47ae16ad}, /* 0.01000=f(0.01000)*/ +{23, 0,123,__LINE__, 0x3f947b94, 0x37e95c0b, 0x3f947ae1, 0x47ae1594}, /* 0.02000=f(0.02000)*/ +{22, 0,123,__LINE__, 0x3f9ebaae, 0x24cfb752, 0x3f9eb851, 0xeb851fd2}, /* 0.03000=f(0.03000)*/ +{21, 0,123,__LINE__, 0x3fa47dad, 0x91e06543, 0x3fa47ae1, 0x47ae1508}, /* 0.04002=f(0.04000)*/ +{21, 0,123,__LINE__, 0x3fa99f11, 0x2eccbf2c, 0x3fa99999, 0x99999a27}, /* 0.05004=f(0.05000)*/ +{17, 0,123,__LINE__, 0x3faec1c5, 0x462ce097, 0x3faeb851, 0xeb851f46}, /* 0.06007=f(0.06000)*/ +{19, 0,123,__LINE__, 0x3fb1f307, 0x1446b81c, 0x3fb1eb85, 0x1eb85232}, /* 0.07011=f(0.07000)*/ +{16, 0,123,__LINE__, 0x3fb48617, 0xe06053a2, 0x3fb47ae1, 0x47ae14c1}, /* 0.08017=f(0.08000)*/ +{19, 0,123,__LINE__, 0x3fb71a37, 0x986fb16c, 0x3fb70a3d, 0x70a3d750}, /* 0.09024=f(0.09000)*/ +{18, 0,123,__LINE__, 0x3fb9af88, 0x775294d2, 0x3fb99999, 0x999999df}, /* 0.10033=f(0.10000)*/ +{17, 0,123,__LINE__, 0x3fbc462d, 0x5b22fd0b, 0x3fbc28f5, 0xc28f5c6e}, /* 0.11044=f(0.11000)*/ +{17, 0,123,__LINE__, 0x3fbede49, 0x9104b8d8, 0x3fbeb851, 0xeb851efd}, /* 0.12057=f(0.12000)*/ +{19, 0,123,__LINE__, 0x3fc0bc00, 0x2285a47a, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.13073=f(0.13000)*/ +{14, 0,123,__LINE__, 0x3fc209ba, 0x880c5f49, 0x3fc1eb85, 0x1eb8520e}, /* 0.14092=f(0.14000)*/ +{17, 0,123,__LINE__, 0x3fc35866, 0x273726ca, 0x3fc33333, 0x33333356}, /* 0.15113=f(0.15000)*/ +{16, 0,123,__LINE__, 0x3fc4a814, 0xfe573588, 0x3fc47ae1, 0x47ae149e}, /* 0.16137=f(0.16000)*/ +{18, 0,123,__LINE__, 0x3fc5f8d9, 0xce721592, 0x3fc5c28f, 0x5c28f5e6}, /* 0.17165=f(0.17000)*/ +{17, 0,123,__LINE__, 0x3fc74ac7, 0x1ea87149, 0x3fc70a3d, 0x70a3d72e}, /* 0.18196=f(0.18000)*/ +{16, 0,123,__LINE__, 0x3fc89def, 0xcd08bbff, 0x3fc851eb, 0x851eb876}, /* 0.19231=f(0.19000)*/ +{17, 0,123,__LINE__, 0x3fc9f267, 0x18b23cb5, 0x3fc99999, 0x999999be}, /* 0.20271=f(0.20000)*/ +{15, 0,123,__LINE__, 0x3fcb4840, 0x5ef1cde7, 0x3fcae147, 0xae147b06}, /* 0.21314=f(0.21000)*/ +{16, 0,123,__LINE__, 0x3fcc9f8f, 0xa9db8e2b, 0x3fcc28f5, 0xc28f5c4e}, /* 0.22361=f(0.22000)*/ +{16, 0,123,__LINE__, 0x3fcdf868, 0xde3343a6, 0x3fcd70a3, 0xd70a3d96}, /* 0.23414=f(0.23000)*/ +{15, 0,123,__LINE__, 0x3fcf52e0, 0x751724d3, 0x3fceb851, 0xeb851ede}, /* 0.24471=f(0.24000)*/ +{17, 0,123,__LINE__, 0x3fd05785, 0xa2aa8f5d, 0x3fd00000, 0x00000013}, /* 0.25534=f(0.25000)*/ +{15, 0,123,__LINE__, 0x3fd1067f, 0x22f340e2, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.26602=f(0.26000)*/ +{16, 0,123,__LINE__, 0x3fd1b667, 0xbd871769, 0x3fd147ae, 0x147ae15b}, /* 0.27675=f(0.27000)*/ +{14, 0,123,__LINE__, 0x3fd2674a, 0x365ed2ae, 0x3fd1eb85, 0x1eb851ff}, /* 0.28755=f(0.28000)*/ +{15, 0,123,__LINE__, 0x3fd31931, 0xe060c520, 0x3fd28f5c, 0x28f5c2a3}, /* 0.29841=f(0.29000)*/ +{16, 0,123,__LINE__, 0x3fd3cc2a, 0x5ad65335, 0x3fd33333, 0x33333347}, /* 0.30933=f(0.30000)*/ +{13, 0,123,__LINE__, 0x3fd4803e, 0xea116264, 0x3fd3d70a, 0x3d70a3eb}, /* 0.32032=f(0.31000)*/ +{15, 0,123,__LINE__, 0x3fd5357b, 0xe63018f6, 0x3fd47ae1, 0x47ae148f}, /* 0.33138=f(0.32000)*/ +{16, 0,123,__LINE__, 0x3fd5ebed, 0x814343f4, 0x3fd51eb8, 0x51eb8533}, /* 0.34252=f(0.33000)*/ +{14, 0,123,__LINE__, 0x3fd6a3a0, 0x09c992e0, 0x3fd5c28f, 0x5c28f5d7}, /* 0.35373=f(0.34000)*/ +{15, 0,123,__LINE__, 0x3fd75ca0, 0x82a3500f, 0x3fd66666, 0x6666667b}, /* 0.36502=f(0.35000)*/ +{12, 0,123,__LINE__, 0x3fd816fc, 0x07412ce9, 0x3fd70a3d, 0x70a3d71f}, /* 0.37640=f(0.36000)*/ +{12, 0,123,__LINE__, 0x3fd8d2c0, 0x07dca0a5, 0x3fd7ae14, 0x7ae147c3}, /* 0.38786=f(0.37000)*/ +{15, 0,123,__LINE__, 0x3fd98ffa, 0x4e05150d, 0x3fd851eb, 0x851eb867}, /* 0.39941=f(0.38000)*/ +{14, 0,123,__LINE__, 0x3fda4eb9, 0x401b707d, 0x3fd8f5c2, 0x8f5c290b}, /* 0.41105=f(0.39000)*/ +{14, 0,123,__LINE__, 0x3fdb0f0b, 0x4978206b, 0x3fd99999, 0x999999af}, /* 0.42279=f(0.40000)*/ +{15, 0,123,__LINE__, 0x3fdbd0ff, 0x60047876, 0x3fda3d70, 0xa3d70a53}, /* 0.43463=f(0.41000)*/ +{13, 0,123,__LINE__, 0x3fdc94a5, 0x0a6220fa, 0x3fdae147, 0xae147af7}, /* 0.44657=f(0.42000)*/ +{13, 0,123,__LINE__, 0x3fdd5a0c, 0x033c25a0, 0x3fdb851e, 0xb851eb9b}, /* 0.45862=f(0.43000)*/ +{14, 0,123,__LINE__, 0x3fde2144, 0x9284fe48, 0x3fdc28f5, 0xc28f5c3f}, /* 0.47078=f(0.44000)*/ +{14, 0,123,__LINE__, 0x3fdeea5f, 0xd110f177, 0x3fdccccc, 0xcccccce3}, /* 0.48305=f(0.45000)*/ +{14, 0,123,__LINE__, 0x3fdfb56e, 0xceae5e05, 0x3fdd70a3, 0xd70a3d87}, /* 0.49544=f(0.46000)*/ +{10, 0,123,__LINE__, 0x3fe04141, 0xb4ad5c2d, 0x3fde147a, 0xe147ae2b}, /* 0.50796=f(0.47000)*/ +{10, 0,123,__LINE__, 0x3fe0a8d8, 0x0a4956f5, 0x3fdeb851, 0xeb851ecf}, /* 0.52061=f(0.48000)*/ +{10, 0,123,__LINE__, 0x3fe11183, 0xff3448f4, 0x3fdf5c28, 0xf5c28f73}, /* 0.53338=f(0.49000)*/ +{15, 0,123,__LINE__, 0x3fe17b4f, 0x6c66f0e1, 0x3fe00000, 0x0000000b}, /* 0.54630=f(0.50000)*/ +{15, 0,123,__LINE__, 0x3fe1e644, 0x2ff16a35, 0x3fe051eb, 0x851eb85d}, /* 0.55935=f(0.51000)*/ +{14, 0,123,__LINE__, 0x3fe2526d, 0x0988d60f, 0x3fe0a3d7, 0x0a3d70af}, /* 0.57256=f(0.52000)*/ +{14, 0,123,__LINE__, 0x3fe2bfd4, 0xfeeb10a3, 0x3fe0f5c2, 0x8f5c2901}, /* 0.58591=f(0.53000)*/ +{14, 0,123,__LINE__, 0x3fe32e87, 0x1791a835, 0x3fe147ae, 0x147ae153}, /* 0.59942=f(0.54000)*/ +{14, 0,123,__LINE__, 0x3fe39e8e, 0xdcee4dab, 0x3fe19999, 0x999999a5}, /* 0.61310=f(0.55000)*/ +{13, 0,123,__LINE__, 0x3fe40ff8, 0x7abe2d6d, 0x3fe1eb85, 0x1eb851f7}, /* 0.62694=f(0.56000)*/ +{13, 0,123,__LINE__, 0x3fe482d0, 0x863bd3e6, 0x3fe23d70, 0xa3d70a49}, /* 0.64096=f(0.57000)*/ +{13, 0,123,__LINE__, 0x3fe4f723, 0xb1c7defb, 0x3fe28f5c, 0x28f5c29b}, /* 0.65516=f(0.58000)*/ +{13, 0,123,__LINE__, 0x3fe56cff, 0xf73da40d, 0x3fe2e147, 0xae147aed}, /* 0.66955=f(0.59000)*/ +{13, 0,123,__LINE__, 0x3fe5e472, 0xf54ac1cd, 0x3fe33333, 0x3333333f}, /* 0.68413=f(0.60000)*/ +{13, 0,123,__LINE__, 0x3fe65d8b, 0x3a5a9ac2, 0x3fe3851e, 0xb851eb91}, /* 0.69891=f(0.61000)*/ +{13, 0,123,__LINE__, 0x3fe6d857, 0xa6938407, 0x3fe3d70a, 0x3d70a3e3}, /* 0.71390=f(0.62000)*/ +{14, 0,123,__LINE__, 0x3fe754e8, 0x7d3a768e, 0x3fe428f5, 0xc28f5c35}, /* 0.72911=f(0.63000)*/ +{14, 0,123,__LINE__, 0x3fe7d34d, 0x9cd5962b, 0x3fe47ae1, 0x47ae1487}, /* 0.74454=f(0.64000)*/ +{12, 0,123,__LINE__, 0x3fe85398, 0x1f2129f6, 0x3fe4cccc, 0xccccccd9}, /* 0.76020=f(0.65000)*/ +{12, 0,123,__LINE__, 0x3fe8d5da, 0x0959b4d1, 0x3fe51eb8, 0x51eb852b}, /* 0.77610=f(0.66000)*/ +{12, 0,123,__LINE__, 0x3fe95a25, 0x8371b38d, 0x3fe570a3, 0xd70a3d7d}, /* 0.79225=f(0.67000)*/ +{12, 0,123,__LINE__, 0x3fe9e08d, 0xcd0c4515, 0x3fe5c28f, 0x5c28f5cf}, /* 0.80866=f(0.68000)*/ +{12, 0,123,__LINE__, 0x3fea6927, 0x36d404a7, 0x3fe6147a, 0xe147ae21}, /* 0.82533=f(0.69000)*/ +{12, 0,123,__LINE__, 0x3feaf406, 0xb7b84f13, 0x3fe66666, 0x66666673}, /* 0.84228=f(0.70000)*/ +{12, 0,123,__LINE__, 0x3feb8142, 0x14ec2f58, 0x3fe6b851, 0xeb851ec5}, /* 0.85952=f(0.71000)*/ +{12, 0,123,__LINE__, 0x3fec10f0, 0xd1dce257, 0x3fe70a3d, 0x70a3d717}, /* 0.87706=f(0.72000)*/ +{12, 0,123,__LINE__, 0x3feca32a, 0x27dbdb5f, 0x3fe75c28, 0xf5c28f69}, /* 0.89491=f(0.73000)*/ +{12, 0,123,__LINE__, 0x3fed3807, 0xa38f5e1e, 0x3fe7ae14, 0x7ae147bb}, /* 0.91308=f(0.74000)*/ +{13, 0,123,__LINE__, 0x3fedcfa3, 0x6f0e1bb8, 0x3fe80000, 0x0000000d}, /* 0.93159=f(0.75000)*/ +{13, 0,123,__LINE__, 0x3fee6a19, 0x1a5a5d47, 0x3fe851eb, 0x851eb85f}, /* 0.95045=f(0.76000)*/ +{13, 0,123,__LINE__, 0x3fef0785, 0xe6cc72c0, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.96966=f(0.77000)*/ +{13, 0,123,__LINE__, 0x3fefa807, 0xb37fe893, 0x3fe8f5c2, 0x8f5c2903}, /* 0.98926=f(0.78000)*/ +{11, 0,123,__LINE__, 0x3ff025df, 0x6f29f2ec, 0x3fe947ae, 0x147ae155}, /* 1.00924=f(0.79000)*/ +{11, 0,123,__LINE__, 0x3ff07966, 0x513a3b5a, 0x3fe99999, 0x999999a7}, /* 1.02963=f(0.80000)*/ +{11, 0,123,__LINE__, 0x3ff0ceaa, 0x1f93873e, 0x3fe9eb85, 0x1eb851f9}, /* 1.05045=f(0.81000)*/ +{11, 0,123,__LINE__, 0x3ff125bd, 0x4df8fefb, 0x3fea3d70, 0xa3d70a4b}, /* 1.07171=f(0.82000)*/ +{11, 0,123,__LINE__, 0x3ff17eb3, 0x91304e28, 0x3fea8f5c, 0x28f5c29d}, /* 1.09343=f(0.83000)*/ +{11, 0,123,__LINE__, 0x3ff1d9a1, 0x4ce6a1cc, 0x3feae147, 0xae147aef}, /* 1.11563=f(0.84000)*/ +{11, 0,123,__LINE__, 0x3ff2369c, 0x7eb294a6, 0x3feb3333, 0x33333341}, /* 1.13833=f(0.85000)*/ +{11, 0,123,__LINE__, 0x3ff295bb, 0xbebe939a, 0x3feb851e, 0xb851eb93}, /* 1.16155=f(0.86000)*/ +{11, 0,123,__LINE__, 0x3ff2f717, 0x54f79b3d, 0x3febd70a, 0x3d70a3e5}, /* 1.18532=f(0.87000)*/ +{11, 0,123,__LINE__, 0x3ff35ac8, 0xb71c3141, 0x3fec28f5, 0xc28f5c37}, /* 1.20966=f(0.88000)*/ +{11, 0,123,__LINE__, 0x3ff3c0eb, 0x5d6dc71b, 0x3fec7ae1, 0x47ae1489}, /* 1.23459=f(0.89000)*/ +{11, 0,123,__LINE__, 0x3ff4299b, 0xb677a625, 0x3feccccc, 0xccccccdb}, /* 1.26015=f(0.90000)*/ +{11, 0,123,__LINE__, 0x3ff494f8, 0x1ca9a021, 0x3fed1eb8, 0x51eb852d}, /* 1.28636=f(0.91000)*/ +{11, 0,123,__LINE__, 0x3ff50320, 0xdce90618, 0x3fed70a3, 0xd70a3d7f}, /* 1.31326=f(0.92000)*/ +{11, 0,123,__LINE__, 0x3ff57438, 0x289b5e3b, 0x3fedc28f, 0x5c28f5d1}, /* 1.34087=f(0.93000)*/ +{11, 0,123,__LINE__, 0x3ff5e862, 0x7bea5ee0, 0x3fee147a, 0xe147ae23}, /* 1.36923=f(0.94000)*/ +{11, 0,123,__LINE__, 0x3ff65fc6, 0x7a1852b8, 0x3fee6666, 0x66666675}, /* 1.39838=f(0.95000)*/ +{11, 0,123,__LINE__, 0x3ff6da8d, 0x465b10d3, 0x3feeb851, 0xeb851ec7}, /* 1.42835=f(0.96000)*/ +{11, 0,123,__LINE__, 0x3ff758e3, 0x5c5c4bc3, 0x3fef0a3d, 0x70a3d719}, /* 1.45920=f(0.97000)*/ +{11, 0,123,__LINE__, 0x3ff7daf7, 0x25adb72c, 0x3fef5c28, 0xf5c28f6b}, /* 1.49095=f(0.98000)*/ +{11, 0,123,__LINE__, 0x3ff860fa, 0xfc5b36cb, 0x3fefae14, 0x7ae147bd}, /* 1.52367=f(0.99000)*/ +{12, 0,123,__LINE__, 0x3ff8eb24, 0x557be2c5, 0x3ff00000, 0x00000007}, /* 1.55740=f(1.00000)*/ +{12, 0,123,__LINE__, 0x3ff979ad, 0x0a3bf80e, 0x3ff028f5, 0xc28f5c30}, /* 1.59220=f(1.01000)*/ +{12, 0,123,__LINE__, 0x3ffa0cd2, 0x792fd5e4, 0x3ff051eb, 0x851eb859}, /* 1.62813=f(1.02000)*/ +{12, 0,123,__LINE__, 0x3ffaa4d6, 0xdfc58e3b, 0x3ff07ae1, 0x47ae1482}, /* 1.66524=f(1.03000)*/ +{12, 0,123,__LINE__, 0x3ffb4201, 0x4882fd2c, 0x3ff0a3d7, 0x0a3d70ab}, /* 1.70361=f(1.04000)*/ +{12, 0,123,__LINE__, 0x3ffbe49e, 0x8f515157, 0x3ff0cccc, 0xccccccd4}, /* 1.74331=f(1.05000)*/ +{12, 0,123,__LINE__, 0x3ffc8d00, 0xd97f0c46, 0x3ff0f5c2, 0x8f5c28fd}, /* 1.78442=f(1.06000)*/ +{12, 0,123,__LINE__, 0x3ffd3b82, 0x4a60b096, 0x3ff11eb8, 0x51eb8526}, /* 1.82702=f(1.07000)*/ +{12, 0,123,__LINE__, 0x3ffdf081, 0x9f873dbf, 0x3ff147ae, 0x147ae14f}, /* 1.87121=f(1.08000)*/ +{12, 0,123,__LINE__, 0x3ffeac68, 0x9d7c22ff, 0x3ff170a3, 0xd70a3d78}, /* 1.91709=f(1.09000)*/ +{12, 0,123,__LINE__, 0x3fff6fa7, 0xeae23a93, 0x3ff19999, 0x999999a1}, /* 1.96476=f(1.10000)*/ +{ 1, 0,123,__LINE__, 0x40001d5d, 0x5f776659, 0x3ff1c28f, 0x5c28f5ca}, /* 2.01433=f(1.11000)*/ +{ 1, 0,123,__LINE__, 0x40008713, 0x8be051ea, 0x3ff1eb85, 0x1eb851f3}, /* 2.06595=f(1.12000)*/ +{ 1, 0,123,__LINE__, 0x4000f53f, 0x76ea55a9, 0x3ff2147a, 0xe147ae1c}, /* 2.11975=f(1.13000)*/ +{ 1, 0,123,__LINE__, 0x40016831, 0x1d167463, 0x3ff23d70, 0xa3d70a45}, /* 2.17587=f(1.14000)*/ +{ 1, 0,123,__LINE__, 0x4001e03f, 0xd68293e3, 0x3ff26666, 0x6666666e}, /* 2.23449=f(1.15000)*/ +{ 1, 0,123,__LINE__, 0x40025dcb, 0x75d83ff1, 0x3ff28f5c, 0x28f5c297}, /* 2.29579=f(1.16000)*/ +{ 1, 0,123,__LINE__, 0x4002e13d, 0x9fc3ce6f, 0x3ff2b851, 0xeb851ec0}, /* 2.35998=f(1.17000)*/ +{ 1, 0,123,__LINE__, 0x40036b0a, 0x697947b9, 0x3ff2e147, 0xae147ae9}, /* 2.42726=f(1.18000)*/ +{ 1, 0,123,__LINE__, 0x4003fbb2, 0xd945e787, 0x3ff30a3d, 0x70a3d712}, /* 2.49790=f(1.19000)*/ +{ 1, 0,123,__LINE__, 0xbe8777a5, 0xc0000000, 0xc01921fb, 0x54442d18}, /* -1.74846e-07=f(-6.28318)*/ +{ 0, 0,123,__LINE__, 0x4193fe4d, 0xa6dc0b8b, 0xc012d97c, 0x7f3321d2}, /* 8.38583e+07=f(-4.71238)*/ +{ 0, 0,123,__LINE__, 0xbe7777a5, 0xc0000000, 0xc00921fb, 0x54442d18}, /* -8.74228e-08=f(-3.14159)*/ +{ 0, 0,123,__LINE__, 0x4175d149, 0x55395d8c, 0xbff921fb, 0x54442d18}, /* 2.28773e+07=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0xc175d149, 0x55395d8c, 0x3ff921fb, 0x54442d18}, /* -2.28773e+07=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0x3e7777a5, 0xc0000000, 0x400921fb, 0x54442d18}, /* 8.74228e-08=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0xc193fe4d, 0xa6dc0b8b, 0x4012d97c, 0x7f3321d2}, /* -8.38583e+07=f(4.71238)*/ +{ 1, 0,123,__LINE__, 0x40199f0f, 0x27615149, 0xc03e0000, 0x00000000}, /* 6.40533=f(-30.0000)*/ +{ 0, 0,123,__LINE__, 0xbf9a497f, 0x04d53b60, 0xc03c4ccc, 0xcccccccd}, /* -0.02567=f(-28.3000)*/ +{10, 0,123,__LINE__, 0xc0233f66, 0xa749aaa3, 0xc03a9999, 0x9999999a}, /* -9.62383=f(-26.6000)*/ +{10, 0,123,__LINE__, 0x3fce573b, 0x9297a04b, 0xc038e666, 0x66666667}, /* 0.23703=f(-24.9000)*/ +{ 0, 0,123,__LINE__, 0xc005210f, 0x278724c9, 0xc0373333, 0x33333334}, /* -2.64114=f(-23.2000)*/ +{ 0, 0,123,__LINE__, 0x3fe11d9b, 0xecc8f3e1, 0xc0358000, 0x00000001}, /* 0.53486=f(-21.5000)*/ +{12, 0,123,__LINE__, 0xbff66525, 0x1fb50b52, 0xc033cccc, 0xccccccce}, /* -1.39969=f(-19.8000)*/ +{11, 0,123,__LINE__, 0x3fedc8d6, 0xf318ea3e, 0xc0321999, 0x9999999b}, /* 0.93076=f(-18.1000)*/ +{ 0, 0,123,__LINE__, 0xbfea853e, 0xdf877c46, 0xc0306666, 0x66666668}, /* -0.82876=f(-16.4000)*/ +{ 0, 0,123,__LINE__, 0x3ff95c48, 0x49def39c, 0xc02d6666, 0x6666666a}, /* 1.58503=f(-14.7000)*/ +{ 1, 0,123,__LINE__, 0xbfdda223, 0x56cf430d, 0xc02a0000, 0x00000004}, /* -0.46302=f(-13.0000)*/ +{ 1, 0,123,__LINE__, 0x4009764c, 0xead1c266, 0xc0269999, 0x9999999e}, /* 3.18276=f(-11.3000)*/ +{ 0, 0,123,__LINE__, 0xbfc6a92e, 0x6a1e57c7, 0xc0233333, 0x33333338}, /* -0.17703=f(-9.60000)*/ +{ 0, 0,123,__LINE__, 0x4035b70e, 0xa0da4c53, 0xc01f9999, 0x999999a3}, /* 21.7150=f(-7.90000)*/ +{ 1, 0,123,__LINE__, 0x3fb55841, 0x3f74c4ae, 0xc018cccc, 0xccccccd6}, /* 0.08337=f(-6.20000)*/ +{ 0, 0,123,__LINE__, 0xc0128ca0, 0xc0967da8, 0xc0120000, 0x00000009}, /* -4.63733=f(-4.50000)*/ +{ 0, 0,123,__LINE__, 0x3fd6c100, 0x5a9084a9, 0xc0066666, 0x66666678}, /* 0.35552=f(-2.80000)*/ +{12, 0,123,__LINE__, 0xbfff6fa7, 0xeae23a93, 0xbff19999, 0x999999bd}, /* -1.96476=f(-1.10000)*/ +{13, 0,123,__LINE__, 0x3fe5e472, 0xf54ac1cd, 0x3fe33333, 0x333332ec}, /* 0.68413=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0xbff1e84c, 0xb42a7218, 0x40026666, 0x66666654}, /* -1.11921=f(2.30000)*/ +{ 0, 0,123,__LINE__, 0x3ff2866f, 0x908b6cb4, 0x400fffff, 0xffffffee}, /* 1.15782=f(4.00000)*/ +{ 0, 0,123,__LINE__, 0xbfe51c83, 0xd0e60b2d, 0x4016cccc, 0xccccccc4}, /* -0.65973=f(5.70000)*/ +{ 0, 0,123,__LINE__, 0x400064ef, 0x579fabbb, 0x401d9999, 0x99999991}, /* 2.04928=f(7.40000)*/ +{ 0, 0,123,__LINE__, 0xbfd58c7e, 0x92511400, 0x40223333, 0x3333332f}, /* -0.33670=f(9.10000)*/ +{ 0, 0,123,__LINE__, 0x401430f0, 0xbdd4c56f, 0x40259999, 0x99999995}, /* 5.04779=f(10.8000)*/ +{ 0, 0,123,__LINE__, 0xbfb10410, 0x17477fcb, 0x4028ffff, 0xfffffffb}, /* -0.06646=f(12.5000)*/ +{ 1, 0,123,__LINE__, 0xc02fc9df, 0xd67a3cab, 0x402c6666, 0x66666661}, /* -15.8942=f(14.2000)*/ +{10, 0,123,__LINE__, 0x3fc8e328, 0x966c190b, 0x402fcccc, 0xccccccc7}, /* 0.19443=f(15.9000)*/ +{ 0, 0,123,__LINE__, 0xc0080a74, 0xb4824c6f, 0x40319999, 0x99999997}, /* -3.00510=f(17.6000)*/ +{ 1, 0,123,__LINE__, 0x3fdef355, 0xac5c412f, 0x40334ccc, 0xccccccca}, /* 0.48360=f(19.3000)*/ +{ 1, 0,123,__LINE__, 0xbff870a2, 0x2427cd2a, 0x4034ffff, 0xfffffffd}, /* -1.52749=f(21.0000)*/ +{ 0, 0,123,__LINE__, 0x3feb70ec, 0xd329acfd, 0x4036b333, 0x33333330}, /* 0.85753=f(22.7000)*/ +{ 0, 0,123,__LINE__, 0xbfeccbb5, 0xc889fb0f, 0x40386666, 0x66666663}, /* -0.89986=f(24.4000)*/ +{ 0, 0,123,__LINE__, 0x3ff735e5, 0x7ffe01fb, 0x403a1999, 0x99999996}, /* 1.45065=f(26.1000)*/ +{ 0, 0,123,__LINE__, 0xbfe06e07, 0x062e771c, 0x403bcccc, 0xccccccc9}, /* -0.51343=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0x4006407d, 0xa6634ee2, 0x403d7fff, 0xfffffffc}, /* 2.78149=f(29.5000)*/ +0,}; +test_tanf(m) {run_vector_1(m,tanf_vec,(char *)(tanf),"tanf","ff"); } diff --git a/newlib/libm/test/tanh_vec.c b/newlib/libm/test/tanh_vec.c new file mode 100644 index 000000000..01ad1c220 --- /dev/null +++ b/newlib/libm/test/tanh_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type tanh_vec[] = { +{64, 0,123,__LINE__, 0xbfeaad4c, 0x6d28dcaf, 0xbff33333, 0x33333333}, /* -0.83365=f(-1.20000)*/ +{64, 0,123,__LINE__, 0xbfea941a, 0x22a3e4a9, 0xbff30a3d, 0x70a3d70a}, /* -0.83057=f(-1.19000)*/ +{64, 0,123,__LINE__, 0xbfea7a7b, 0xcd09aecf, 0xbff2e147, 0xae147ae1}, /* -0.82745=f(-1.18000)*/ +{60, 0,123,__LINE__, 0xbfea6070, 0x07d3d0d8, 0xbff2b851, 0xeb851eb8}, /* -0.82427=f(-1.17000)*/ +{63, 0,123,__LINE__, 0xbfea45f5, 0x6de12a6b, 0xbff28f5c, 0x28f5c28f}, /* -0.82103=f(-1.16000)*/ +{64, 0,123,__LINE__, 0xbfea2b0a, 0x99a1b256, 0xbff26666, 0x66666666}, /* -0.81775=f(-1.15000)*/ +{64, 0,123,__LINE__, 0xbfea0fae, 0x254400cf, 0xbff23d70, 0xa3d70a3d}, /* -0.81441=f(-1.14000)*/ +{64, 0,123,__LINE__, 0xbfe9f3de, 0xaae49d27, 0xbff2147a, 0xe147ae14}, /* -0.81101=f(-1.13000)*/ +{64, 0,123,__LINE__, 0xbfe9d79a, 0xc4bf14e4, 0xbff1eb85, 0x1eb851eb}, /* -0.80756=f(-1.12000)*/ +{64, 0,123,__LINE__, 0xbfe9bae1, 0x0d60e1cc, 0xbff1c28f, 0x5c28f5c2}, /* -0.80406=f(-1.11000)*/ +{64, 0,123,__LINE__, 0xbfe99db0, 0x1fde2404, 0xbff19999, 0x99999999}, /* -0.80049=f(-1.10000)*/ +{63, 0,123,__LINE__, 0xbfe98006, 0x98083507, 0xbff170a3, 0xd70a3d70}, /* -0.79687=f(-1.09000)*/ +{64, 0,123,__LINE__, 0xbfe961e3, 0x12a61778, 0xbff147ae, 0x147ae147}, /* -0.79319=f(-1.08000)*/ +{64, 0,123,__LINE__, 0xbfe94344, 0x2daec7a4, 0xbff11eb8, 0x51eb851e}, /* -0.78946=f(-1.07000)*/ +{64, 0,123,__LINE__, 0xbfe92428, 0x88856fa2, 0xbff0f5c2, 0x8f5c28f5}, /* -0.78566=f(-1.06000)*/ +{64, 0,123,__LINE__, 0xbfe9048e, 0xc437818f, 0xbff0cccc, 0xcccccccc}, /* -0.78180=f(-1.05000)*/ +{64, 0,123,__LINE__, 0xbfe8e475, 0x83bcb9ca, 0xbff0a3d7, 0x0a3d70a3}, /* -0.77788=f(-1.04000)*/ +{64, 0,123,__LINE__, 0xbfe8c3db, 0x6c390a32, 0xbff07ae1, 0x47ae147a}, /* -0.77390=f(-1.03000)*/ +{64, 0,123,__LINE__, 0xbfe8a2bf, 0x25406ee4, 0xbff051eb, 0x851eb851}, /* -0.76986=f(-1.02000)*/ +{63, 0,123,__LINE__, 0xbfe8811f, 0x591cac08, 0xbff028f5, 0xc28f5c28}, /* -0.76576=f(-1.01000)*/ +{64, 0,123,__LINE__, 0xbfe85efa, 0xb514f394, 0xbfefffff, 0xfffffffe}, /* -0.76159=f(-0.01000)*/ +{64, 0,123,__LINE__, 0xbfe83c4f, 0xe9b770e0, 0xbfefae14, 0x7ae147ac}, /* -0.75736=f(-0.99000)*/ +{63, 0,123,__LINE__, 0xbfe8191d, 0xab24b746, 0xbfef5c28, 0xf5c28f5a}, /* -0.75306=f(-0.98000)*/ +{64, 0,123,__LINE__, 0xbfe7f562, 0xb15d0fce, 0xbfef0a3d, 0x70a3d708}, /* -0.74870=f(-0.97000)*/ +{64, 0,123,__LINE__, 0xbfe7d11d, 0xb88fa124, 0xbfeeb851, 0xeb851eb6}, /* -0.74427=f(-0.96000)*/ +{64, 0,123,__LINE__, 0xbfe7ac4d, 0x816b6c0b, 0xbfee6666, 0x66666664}, /* -0.73978=f(-0.95000)*/ +{63, 0,123,__LINE__, 0xbfe786f0, 0xd1721548, 0xbfee147a, 0xe147ae12}, /* -0.73522=f(-0.94000)*/ +{64, 0,123,__LINE__, 0xbfe76106, 0x734c7526, 0xbfedc28f, 0x5c28f5c0}, /* -0.73059=f(-0.93000)*/ +{64, 0,123,__LINE__, 0xbfe73a8d, 0x3720e34a, 0xbfed70a3, 0xd70a3d6e}, /* -0.72589=f(-0.92000)*/ +{64, 0,123,__LINE__, 0xbfe71383, 0xf2eb34bd, 0xbfed1eb8, 0x51eb851c}, /* -0.72113=f(-0.91000)*/ +{64, 0,123,__LINE__, 0xbfe6ebe9, 0x82d6605b, 0xbfeccccc, 0xccccccca}, /* -0.71629=f(-0.90000)*/ +{61, 0,123,__LINE__, 0xbfe6c3bc, 0xc997bd23, 0xbfec7ae1, 0x47ae1478}, /* -0.71139=f(-0.89000)*/ +{64, 0,123,__LINE__, 0xbfe69afc, 0xb0cbcc26, 0xbfec28f5, 0xc28f5c26}, /* -0.70641=f(-0.88000)*/ +{64, 0,123,__LINE__, 0xbfe671a8, 0x29547ec2, 0xbfebd70a, 0x3d70a3d4}, /* -0.70137=f(-0.87000)*/ +{62, 0,123,__LINE__, 0xbfe647be, 0x2bb8e865, 0xbfeb851e, 0xb851eb82}, /* -0.69625=f(-0.86000)*/ +{64, 0,123,__LINE__, 0xbfe61d3d, 0xb88649b0, 0xbfeb3333, 0x33333330}, /* -0.69106=f(-0.85000)*/ +{63, 0,123,__LINE__, 0xbfe5f225, 0xd8b26165, 0xbfeae147, 0xae147ade}, /* -0.68580=f(-0.84000)*/ +{63, 0,123,__LINE__, 0xbfe5c675, 0x9dfeee35, 0xbfea8f5c, 0x28f5c28c}, /* -0.68047=f(-0.83000)*/ +{64, 0,123,__LINE__, 0xbfe59a2c, 0x235e4ad2, 0xbfea3d70, 0xa3d70a3a}, /* -0.67506=f(-0.82000)*/ +{62, 0,123,__LINE__, 0xbfe56d48, 0x8d590c72, 0xbfe9eb85, 0x1eb851e8}, /* -0.66959=f(-0.81000)*/ +{63, 0,123,__LINE__, 0xbfe53fca, 0x0a748a3e, 0xbfe99999, 0x99999996}, /* -0.66403=f(-0.80000)*/ +{64, 0,123,__LINE__, 0xbfe511af, 0xd39a32b6, 0xbfe947ae, 0x147ae144}, /* -0.65840=f(-0.79000)*/ +{64, 0,123,__LINE__, 0xbfe4e2f9, 0x2c7f9282, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.65270=f(-0.78000)*/ +{62, 0,123,__LINE__, 0xbfe4b3a5, 0x640eeeb6, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.64692=f(-0.77000)*/ +{62, 0,123,__LINE__, 0xbfe483b3, 0xd4d052ee, 0xbfe851eb, 0x851eb84e}, /* -0.64107=f(-0.76000)*/ +{64, 0,123,__LINE__, 0xbfe45323, 0xe552f226, 0xbfe7ffff, 0xfffffffc}, /* -0.63514=f(-0.75000)*/ +{64, 0,123,__LINE__, 0xbfe421f5, 0x0896b7b0, 0xbfe7ae14, 0x7ae147aa}, /* -0.62914=f(-0.74000)*/ +{64, 0,123,__LINE__, 0xbfe3f026, 0xbe75e420, 0xbfe75c28, 0xf5c28f58}, /* -0.62306=f(-0.73000)*/ +{63, 0,123,__LINE__, 0xbfe3bdb8, 0x940e909b, 0xbfe70a3d, 0x70a3d706}, /* -0.61690=f(-0.72000)*/ +{64, 0,123,__LINE__, 0xbfe38aaa, 0x242bf149, 0xbfe6b851, 0xeb851eb4}, /* -0.61067=f(-0.71000)*/ +{64, 0,123,__LINE__, 0xbfe356fb, 0x17af2e8e, 0xbfe66666, 0x66666662}, /* -0.60436=f(-0.70000)*/ +{63, 0,123,__LINE__, 0xbfe322ab, 0x25f7aadc, 0xbfe6147a, 0xe147ae10}, /* -0.59798=f(-0.69000)*/ +{63, 0,123,__LINE__, 0xbfe2edba, 0x154a89f9, 0xbfe5c28f, 0x5c28f5be}, /* -0.59151=f(-0.68000)*/ +{64, 0,123,__LINE__, 0xbfe2b827, 0xbb394cea, 0xbfe570a3, 0xd70a3d6c}, /* -0.58497=f(-0.67000)*/ +{64, 0,123,__LINE__, 0xbfe281f3, 0xfd0754b6, 0xbfe51eb8, 0x51eb851a}, /* -0.57836=f(-0.66000)*/ +{62, 0,123,__LINE__, 0xbfe24b1e, 0xd00e1cb8, 0xbfe4cccc, 0xccccccc8}, /* -0.57166=f(-0.65000)*/ +{64, 0,123,__LINE__, 0xbfe213a8, 0x3a1ffc62, 0xbfe47ae1, 0x47ae1476}, /* -0.56489=f(-0.64000)*/ +{63, 0,123,__LINE__, 0xbfe1db90, 0x51e93ee4, 0xbfe428f5, 0xc28f5c24}, /* -0.55805=f(-0.63000)*/ +{62, 0,123,__LINE__, 0xbfe1a2d7, 0x3f4f5e90, 0xbfe3d70a, 0x3d70a3d2}, /* -0.55112=f(-0.62000)*/ +{61, 0,123,__LINE__, 0xbfe1697d, 0x3bce3092, 0xbfe3851e, 0xb851eb80}, /* -0.54412=f(-0.61000)*/ +{63, 0,123,__LINE__, 0xbfe12f82, 0x92d2ccf8, 0xbfe33333, 0x3333332e}, /* -0.53704=f(-0.60000)*/ +{62, 0,123,__LINE__, 0xbfe0f4e7, 0xa213fe44, 0xbfe2e147, 0xae147adc}, /* -0.52989=f(-0.59000)*/ +{64, 0,123,__LINE__, 0xbfe0b9ac, 0xd9e8032a, 0xbfe28f5c, 0x28f5c28a}, /* -0.52266=f(-0.58000)*/ +{64, 0,123,__LINE__, 0xbfe07dd2, 0xbd976c80, 0xbfe23d70, 0xa3d70a38}, /* -0.51535=f(-0.57000)*/ +{57, 0,123,__LINE__, 0xbfe04159, 0xe3ace13f, 0xbfe1eb85, 0x1eb851e6}, /* -0.50797=f(-0.56000)*/ +{54, 0,123,__LINE__, 0xbfe00442, 0xf64191fe, 0xbfe19999, 0x99999994}, /* -0.50052=f(-0.55000)*/ +{64, 0,123,__LINE__, 0xbfdf8d1d, 0x668c4a9c, 0xbfe147ae, 0x147ae142}, /* -0.49298=f(-0.54000)*/ +{64, 0,123,__LINE__, 0xbfdf107b, 0xd98fcce8, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.48538=f(-0.53000)*/ +{64, 0,123,__LINE__, 0xbfde92a3, 0x1263fffb, 0xbfe0a3d7, 0x0a3d709e}, /* -0.47770=f(-0.52000)*/ +{64, 0,123,__LINE__, 0xbfde1395, 0x0715184e, 0xbfe051eb, 0x851eb84c}, /* -0.46994=f(-0.51000)*/ +{64, 0,123,__LINE__, 0xbfdd9353, 0xd7568aea, 0xbfdfffff, 0xfffffff4}, /* -0.46211=f(-0.50000)*/ +{64, 0,123,__LINE__, 0xbfdd11e1, 0xcceb44fe, 0xbfdf5c28, 0xf5c28f50}, /* -0.45421=f(-0.49000)*/ +{64, 0,123,__LINE__, 0xbfdc8f41, 0x5c04518a, 0xbfdeb851, 0xeb851eac}, /* -0.44624=f(-0.48000)*/ +{64, 0,123,__LINE__, 0xbfdc0b75, 0x239586a4, 0xbfde147a, 0xe147ae08}, /* -0.43819=f(-0.47000)*/ +{64, 0,123,__LINE__, 0xbfdb867f, 0xed9fd638, 0xbfdd70a3, 0xd70a3d64}, /* -0.43008=f(-0.46000)*/ +{64, 0,123,__LINE__, 0xbfdb0064, 0xaf70e0b0, 0xbfdccccc, 0xccccccc0}, /* -0.42189=f(-0.45000)*/ +{64, 0,123,__LINE__, 0xbfda7926, 0x89d76b00, 0xbfdc28f5, 0xc28f5c1c}, /* -0.41364=f(-0.44000)*/ +{64, 0,123,__LINE__, 0xbfd9f0c8, 0xc94c5cc2, 0xbfdb851e, 0xb851eb78}, /* -0.40532=f(-0.43000)*/ +{64, 0,123,__LINE__, 0xbfd9674e, 0xe60feeea, 0xbfdae147, 0xae147ad4}, /* -0.39693=f(-0.42000)*/ +{64, 0,123,__LINE__, 0xbfd8dcbc, 0x843ab76e, 0xbfda3d70, 0xa3d70a30}, /* -0.38847=f(-0.41000)*/ +{64, 0,123,__LINE__, 0xbfd85115, 0x73c242ca, 0xbfd99999, 0x9999998c}, /* -0.37994=f(-0.40000)*/ +{64, 0,123,__LINE__, 0xbfd7c45d, 0xb070f0ee, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.37136=f(-0.39000)*/ +{64, 0,123,__LINE__, 0xbfd73699, 0x61d0d031, 0xbfd851eb, 0x851eb844}, /* -0.36270=f(-0.38000)*/ +{64, 0,123,__LINE__, 0xbfd6a7cc, 0xdb093664, 0xbfd7ae14, 0x7ae147a0}, /* -0.35399=f(-0.37000)*/ +{64, 0,123,__LINE__, 0xbfd617fc, 0x9aaeddca, 0xbfd70a3d, 0x70a3d6fc}, /* -0.34521=f(-0.36000)*/ +{64, 0,123,__LINE__, 0xbfd5872d, 0x4a8651c9, 0xbfd66666, 0x66666658}, /* -0.33637=f(-0.35000)*/ +{64, 0,123,__LINE__, 0xbfd4f563, 0xbf387d9c, 0xbfd5c28f, 0x5c28f5b4}, /* -0.32747=f(-0.34000)*/ +{64, 0,123,__LINE__, 0xbfd462a4, 0xf7f935d1, 0xbfd51eb8, 0x51eb8510}, /* -0.31852=f(-0.33000)*/ +{64, 0,123,__LINE__, 0xbfd3cef6, 0x1e1f9c83, 0xbfd47ae1, 0x47ae146c}, /* -0.30950=f(-0.32000)*/ +{64, 0,123,__LINE__, 0xbfd33a5c, 0x84b04735, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30043=f(-0.31000)*/ +{64, 0,123,__LINE__, 0xbfd2a4dd, 0xa7d914ec, 0xbfd33333, 0x33333324}, /* -0.29131=f(-0.30000)*/ +{64, 0,123,__LINE__, 0xbfd20e7f, 0x2c5eaa96, 0xbfd28f5c, 0x28f5c280}, /* -0.28213=f(-0.29000)*/ +{64, 0,123,__LINE__, 0xbfd17746, 0xdefb93d0, 0xbfd1eb85, 0x1eb851dc}, /* -0.27290=f(-0.28000)*/ +{64, 0,123,__LINE__, 0xbfd0df3a, 0xb3b10e2e, 0xbfd147ae, 0x147ae138}, /* -0.26362=f(-0.27000)*/ +{64, 0,123,__LINE__, 0xbfd04660, 0xc5098d45, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25429=f(-0.26000)*/ +{64, 0,123,__LINE__, 0xbfcf597e, 0xa69a1c68, 0xbfcfffff, 0xffffffe0}, /* -0.24491=f(-0.25000)*/ +{64, 0,123,__LINE__, 0xbfce24b9, 0x874eb37a, 0xbfceb851, 0xeb851e98}, /* -0.23549=f(-0.24000)*/ +{64, 0,123,__LINE__, 0xbfccee7f, 0x3e80b94e, 0xbfcd70a3, 0xd70a3d50}, /* -0.22602=f(-0.23000)*/ +{64, 0,123,__LINE__, 0xbfcbb6dd, 0x248d8d37, 0xbfcc28f5, 0xc28f5c08}, /* -0.21651=f(-0.22000)*/ +{64, 0,123,__LINE__, 0xbfca7de0, 0xd5da50b4, 0xbfcae147, 0xae147ac0}, /* -0.20696=f(-0.21000)*/ +{64, 0,123,__LINE__, 0xbfc94398, 0x30b3a570, 0xbfc99999, 0x99999978}, /* -0.19737=f(-0.20000)*/ +{64, 0,123,__LINE__, 0xbfc80811, 0x531380b4, 0xbfc851eb, 0x851eb830}, /* -0.18774=f(-0.19000)*/ +{64, 0,123,__LINE__, 0xbfc6cb5a, 0x984db955, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17808=f(-0.18000)*/ +{64, 0,123,__LINE__, 0xbfc58d82, 0x96a4059b, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16838=f(-0.17000)*/ +{64, 0,123,__LINE__, 0xbfc44e98, 0x1cc22f53, 0xbfc47ae1, 0x47ae1458}, /* -0.15864=f(-0.16000)*/ +{64, 0,123,__LINE__, 0xbfc30eaa, 0x2f235432, 0xbfc33333, 0x33333310}, /* -0.14888=f(-0.15000)*/ +{64, 0,123,__LINE__, 0xbfc1cdc8, 0x0561186b, 0xbfc1eb85, 0x1eb851c8}, /* -0.13909=f(-0.14000)*/ +{64, 0,123,__LINE__, 0xbfc08c01, 0x076dc0aa, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12927=f(-0.13000)*/ +{64, 0,123,__LINE__, 0xbfbe92c9, 0x95746e8e, 0xbfbeb851, 0xeb851e71}, /* -0.11942=f(-0.12000)*/ +{64, 0,123,__LINE__, 0xbfbc0c06, 0x1e921d60, 0xbfbc28f5, 0xc28f5be2}, /* -0.10955=f(-0.11000)*/ +{64, 0,123,__LINE__, 0xbfb983d7, 0x795f40f4, 0xbfb99999, 0x99999953}, /* -0.09966=f(-0.00100)*/ +{64, 0,123,__LINE__, 0xbfb6fa5d, 0xbe0ceab2, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08975=f(-0.09000)*/ +{64, 0,123,__LINE__, 0xbfb46fb9, 0x47945c79, 0xbfb47ae1, 0x47ae1435}, /* -0.07982=f(-0.08000)*/ +{64, 0,123,__LINE__, 0xbfb1e40a, 0xad5c640a, 0xbfb1eb85, 0x1eb851a6}, /* -0.06988=f(-0.07000)*/ +{64, 0,123,__LINE__, 0xbfaeaee5, 0x7989b65b, 0xbfaeb851, 0xeb851e2d}, /* -0.05992=f(-0.06000)*/ +{64, 0,123,__LINE__, 0xbfa99424, 0xe535f66d, 0xbfa99999, 0x9999990e}, /* -0.04995=f(-0.05000)*/ +{64, 0,123,__LINE__, 0xbfa47815, 0xe8f28682, 0xbfa47ae1, 0x47ae13ef}, /* -0.03997=f(-0.04000)*/ +{64, 0,123,__LINE__, 0xbf9eb5f6, 0x2856ff57, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{64, 0,123,__LINE__, 0xbf947a2e, 0x5a063e00, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{64, 0,123,__LINE__, 0xbf847ab4, 0x8ae4572c, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{64, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0x3f847ab4, 0x8ae45b90, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{64, 0,123,__LINE__, 0x3f947a2e, 0x5a064032, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{64, 0,123,__LINE__, 0x3f9eb5f6, 0x28570189, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{64, 0,123,__LINE__, 0x3fa47815, 0xe8f2879b, 0x3fa47ae1, 0x47ae1508}, /* 0.03997=f(0.04000)*/ +{64, 0,123,__LINE__, 0x3fa99424, 0xe535f785, 0x3fa99999, 0x99999a27}, /* 0.04995=f(0.05000)*/ +{64, 0,123,__LINE__, 0x3faeaee5, 0x7989b773, 0x3faeb851, 0xeb851f46}, /* 0.05992=f(0.06000)*/ +{64, 0,123,__LINE__, 0x3fb1e40a, 0xad5c6495, 0x3fb1eb85, 0x1eb85232}, /* 0.06988=f(0.07000)*/ +{64, 0,123,__LINE__, 0x3fb46fb9, 0x47945d05, 0x3fb47ae1, 0x47ae14c1}, /* 0.07982=f(0.08000)*/ +{64, 0,123,__LINE__, 0x3fb6fa5d, 0xbe0ceb3c, 0x3fb70a3d, 0x70a3d750}, /* 0.08975=f(0.09000)*/ +{64, 0,123,__LINE__, 0x3fb983d7, 0x795f417f, 0x3fb99999, 0x999999df}, /* 0.09966=f(0.10000)*/ +{64, 0,123,__LINE__, 0x3fbc0c06, 0x1e921deb, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10955=f(0.11000)*/ +{64, 0,123,__LINE__, 0x3fbe92c9, 0x95746f18, 0x3fbeb851, 0xeb851efd}, /* 0.11942=f(0.12000)*/ +{64, 0,123,__LINE__, 0x3fc08c01, 0x076dc0ee, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12927=f(0.13000)*/ +{64, 0,123,__LINE__, 0x3fc1cdc8, 0x056118b0, 0x3fc1eb85, 0x1eb8520e}, /* 0.13909=f(0.14000)*/ +{64, 0,123,__LINE__, 0x3fc30eaa, 0x2f235477, 0x3fc33333, 0x33333356}, /* 0.14888=f(0.15000)*/ +{64, 0,123,__LINE__, 0x3fc44e98, 0x1cc22f98, 0x3fc47ae1, 0x47ae149e}, /* 0.15864=f(0.16000)*/ +{64, 0,123,__LINE__, 0x3fc58d82, 0x96a405df, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16838=f(0.17000)*/ +{64, 0,123,__LINE__, 0x3fc6cb5a, 0x984db998, 0x3fc70a3d, 0x70a3d72e}, /* 0.17808=f(0.18000)*/ +{64, 0,123,__LINE__, 0x3fc80811, 0x531380f8, 0x3fc851eb, 0x851eb876}, /* 0.18774=f(0.19000)*/ +{64, 0,123,__LINE__, 0x3fc94398, 0x30b3a5b3, 0x3fc99999, 0x999999be}, /* 0.19737=f(0.20000)*/ +{64, 0,123,__LINE__, 0x3fca7de0, 0xd5da50f7, 0x3fcae147, 0xae147b06}, /* 0.20696=f(0.21000)*/ +{64, 0,123,__LINE__, 0x3fcbb6dd, 0x248d8d7a, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21651=f(0.22000)*/ +{64, 0,123,__LINE__, 0x3fccee7f, 0x3e80b991, 0x3fcd70a3, 0xd70a3d96}, /* 0.22602=f(0.23000)*/ +{64, 0,123,__LINE__, 0x3fce24b9, 0x874eb3bc, 0x3fceb851, 0xeb851ede}, /* 0.23549=f(0.24000)*/ +{64, 0,123,__LINE__, 0x3fcf597e, 0xa69a1caa, 0x3fd00000, 0x00000013}, /* 0.24491=f(0.25000)*/ +{64, 0,123,__LINE__, 0x3fd04660, 0xc5098d66, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25429=f(0.26000)*/ +{64, 0,123,__LINE__, 0x3fd0df3a, 0xb3b10e4e, 0x3fd147ae, 0x147ae15b}, /* 0.26362=f(0.27000)*/ +{64, 0,123,__LINE__, 0x3fd17746, 0xdefb93f0, 0x3fd1eb85, 0x1eb851ff}, /* 0.27290=f(0.28000)*/ +{64, 0,123,__LINE__, 0x3fd20e7f, 0x2c5eaab6, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28213=f(0.29000)*/ +{64, 0,123,__LINE__, 0x3fd2a4dd, 0xa7d9150c, 0x3fd33333, 0x33333347}, /* 0.29131=f(0.30000)*/ +{64, 0,123,__LINE__, 0x3fd33a5c, 0x84b04755, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30043=f(0.31000)*/ +{64, 0,123,__LINE__, 0x3fd3cef6, 0x1e1f9ca2, 0x3fd47ae1, 0x47ae148f}, /* 0.30950=f(0.32000)*/ +{64, 0,123,__LINE__, 0x3fd462a4, 0xf7f935f1, 0x3fd51eb8, 0x51eb8533}, /* 0.31852=f(0.33000)*/ +{64, 0,123,__LINE__, 0x3fd4f563, 0xbf387dbb, 0x3fd5c28f, 0x5c28f5d7}, /* 0.32747=f(0.34000)*/ +{64, 0,123,__LINE__, 0x3fd5872d, 0x4a8651e8, 0x3fd66666, 0x6666667b}, /* 0.33637=f(0.35000)*/ +{64, 0,123,__LINE__, 0x3fd617fc, 0x9aaedde9, 0x3fd70a3d, 0x70a3d71f}, /* 0.34521=f(0.36000)*/ +{64, 0,123,__LINE__, 0x3fd6a7cc, 0xdb093683, 0x3fd7ae14, 0x7ae147c3}, /* 0.35399=f(0.37000)*/ +{64, 0,123,__LINE__, 0x3fd73699, 0x61d0d04f, 0x3fd851eb, 0x851eb867}, /* 0.36270=f(0.38000)*/ +{64, 0,123,__LINE__, 0x3fd7c45d, 0xb070f10c, 0x3fd8f5c2, 0x8f5c290b}, /* 0.37136=f(0.39000)*/ +{64, 0,123,__LINE__, 0x3fd85115, 0x73c242e8, 0x3fd99999, 0x999999af}, /* 0.37994=f(0.40000)*/ +{64, 0,123,__LINE__, 0x3fd8dcbc, 0x843ab78b, 0x3fda3d70, 0xa3d70a53}, /* 0.38847=f(0.41000)*/ +{64, 0,123,__LINE__, 0x3fd9674e, 0xe60fef07, 0x3fdae147, 0xae147af7}, /* 0.39693=f(0.42000)*/ +{64, 0,123,__LINE__, 0x3fd9f0c8, 0xc94c5cdf, 0x3fdb851e, 0xb851eb9b}, /* 0.40532=f(0.43000)*/ +{64, 0,123,__LINE__, 0x3fda7926, 0x89d76b1d, 0x3fdc28f5, 0xc28f5c3f}, /* 0.41364=f(0.44000)*/ +{64, 0,123,__LINE__, 0x3fdb0064, 0xaf70e0cd, 0x3fdccccc, 0xcccccce3}, /* 0.42189=f(0.45000)*/ +{64, 0,123,__LINE__, 0x3fdb867f, 0xed9fd654, 0x3fdd70a3, 0xd70a3d87}, /* 0.43008=f(0.46000)*/ +{64, 0,123,__LINE__, 0x3fdc0b75, 0x239586c0, 0x3fde147a, 0xe147ae2b}, /* 0.43819=f(0.47000)*/ +{64, 0,123,__LINE__, 0x3fdc8f41, 0x5c0451a6, 0x3fdeb851, 0xeb851ecf}, /* 0.44624=f(0.48000)*/ +{64, 0,123,__LINE__, 0x3fdd11e1, 0xcceb451a, 0x3fdf5c28, 0xf5c28f73}, /* 0.45421=f(0.49000)*/ +{64, 0,123,__LINE__, 0x3fdd9353, 0xd7568b05, 0x3fe00000, 0x0000000b}, /* 0.46211=f(0.50000)*/ +{64, 0,123,__LINE__, 0x3fde1395, 0x07151869, 0x3fe051eb, 0x851eb85d}, /* 0.46994=f(0.51000)*/ +{64, 0,123,__LINE__, 0x3fde92a3, 0x12640015, 0x3fe0a3d7, 0x0a3d70af}, /* 0.47770=f(0.52000)*/ +{64, 0,123,__LINE__, 0x3fdf107b, 0xd98fcd02, 0x3fe0f5c2, 0x8f5c2901}, /* 0.48538=f(0.53000)*/ +{64, 0,123,__LINE__, 0x3fdf8d1d, 0x668c4ab6, 0x3fe147ae, 0x147ae153}, /* 0.49298=f(0.54000)*/ +{64, 0,123,__LINE__, 0x3fe00442, 0xf641920c, 0x3fe19999, 0x999999a5}, /* 0.50052=f(0.55000)*/ +{64, 0,123,__LINE__, 0x3fe04159, 0xe3ace14c, 0x3fe1eb85, 0x1eb851f7}, /* 0.50797=f(0.56000)*/ +{64, 0,123,__LINE__, 0x3fe07dd2, 0xbd976c8c, 0x3fe23d70, 0xa3d70a49}, /* 0.51535=f(0.57000)*/ +{64, 0,123,__LINE__, 0x3fe0b9ac, 0xd9e80336, 0x3fe28f5c, 0x28f5c29b}, /* 0.52266=f(0.58000)*/ +{62, 0,123,__LINE__, 0x3fe0f4e7, 0xa213fe51, 0x3fe2e147, 0xae147aed}, /* 0.52989=f(0.59000)*/ +{64, 0,123,__LINE__, 0x3fe12f82, 0x92d2cd04, 0x3fe33333, 0x3333333f}, /* 0.53704=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fe1697d, 0x3bce30a0, 0x3fe3851e, 0xb851eb91}, /* 0.54412=f(0.61000)*/ +{64, 0,123,__LINE__, 0x3fe1a2d7, 0x3f4f5e9e, 0x3fe3d70a, 0x3d70a3e3}, /* 0.55112=f(0.62000)*/ +{64, 0,123,__LINE__, 0x3fe1db90, 0x51e93ef0, 0x3fe428f5, 0xc28f5c35}, /* 0.55805=f(0.63000)*/ +{62, 0,123,__LINE__, 0x3fe213a8, 0x3a1ffc6d, 0x3fe47ae1, 0x47ae1487}, /* 0.56489=f(0.64000)*/ +{64, 0,123,__LINE__, 0x3fe24b1e, 0xd00e1cc4, 0x3fe4cccc, 0xccccccd9}, /* 0.57166=f(0.65000)*/ +{64, 0,123,__LINE__, 0x3fe281f3, 0xfd0754c1, 0x3fe51eb8, 0x51eb852b}, /* 0.57836=f(0.66000)*/ +{62, 0,123,__LINE__, 0x3fe2b827, 0xbb394cf6, 0x3fe570a3, 0xd70a3d7d}, /* 0.58497=f(0.67000)*/ +{64, 0,123,__LINE__, 0x3fe2edba, 0x154a8a04, 0x3fe5c28f, 0x5c28f5cf}, /* 0.59151=f(0.68000)*/ +{64, 0,123,__LINE__, 0x3fe322ab, 0x25f7aae8, 0x3fe6147a, 0xe147ae21}, /* 0.59798=f(0.69000)*/ +{64, 0,123,__LINE__, 0x3fe356fb, 0x17af2e99, 0x3fe66666, 0x66666673}, /* 0.60436=f(0.70000)*/ +{64, 0,123,__LINE__, 0x3fe38aaa, 0x242bf154, 0x3fe6b851, 0xeb851ec5}, /* 0.61067=f(0.71000)*/ +{63, 0,123,__LINE__, 0x3fe3bdb8, 0x940e90a5, 0x3fe70a3d, 0x70a3d717}, /* 0.61690=f(0.72000)*/ +{64, 0,123,__LINE__, 0x3fe3f026, 0xbe75e42a, 0x3fe75c28, 0xf5c28f69}, /* 0.62306=f(0.73000)*/ +{64, 0,123,__LINE__, 0x3fe421f5, 0x0896b7ba, 0x3fe7ae14, 0x7ae147bb}, /* 0.62914=f(0.74000)*/ +{64, 0,123,__LINE__, 0x3fe45323, 0xe552f230, 0x3fe80000, 0x0000000d}, /* 0.63514=f(0.75000)*/ +{60, 0,123,__LINE__, 0x3fe483b3, 0xd4d052f8, 0x3fe851eb, 0x851eb85f}, /* 0.64107=f(0.76000)*/ +{57, 0,123,__LINE__, 0x3fe4b3a5, 0x640eeec0, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.64692=f(0.77000)*/ +{64, 0,123,__LINE__, 0x3fe4e2f9, 0x2c7f928c, 0x3fe8f5c2, 0x8f5c2903}, /* 0.65270=f(0.78000)*/ +{64, 0,123,__LINE__, 0x3fe511af, 0xd39a32c0, 0x3fe947ae, 0x147ae155}, /* 0.65840=f(0.79000)*/ +{64, 0,123,__LINE__, 0x3fe53fca, 0x0a748a48, 0x3fe99999, 0x999999a7}, /* 0.66403=f(0.80000)*/ +{64, 0,123,__LINE__, 0x3fe56d48, 0x8d590c7a, 0x3fe9eb85, 0x1eb851f9}, /* 0.66959=f(0.81000)*/ +{64, 0,123,__LINE__, 0x3fe59a2c, 0x235e4ada, 0x3fea3d70, 0xa3d70a4b}, /* 0.67506=f(0.82000)*/ +{64, 0,123,__LINE__, 0x3fe5c675, 0x9dfeee3e, 0x3fea8f5c, 0x28f5c29d}, /* 0.68047=f(0.83000)*/ +{64, 0,123,__LINE__, 0x3fe5f225, 0xd8b2616e, 0x3feae147, 0xae147aef}, /* 0.68580=f(0.84000)*/ +{60, 0,123,__LINE__, 0x3fe61d3d, 0xb88649b7, 0x3feb3333, 0x33333341}, /* 0.69106=f(0.85000)*/ +{64, 0,123,__LINE__, 0x3fe647be, 0x2bb8e86e, 0x3feb851e, 0xb851eb93}, /* 0.69625=f(0.86000)*/ +{64, 0,123,__LINE__, 0x3fe671a8, 0x29547eca, 0x3febd70a, 0x3d70a3e5}, /* 0.70137=f(0.87000)*/ +{64, 0,123,__LINE__, 0x3fe69afc, 0xb0cbcc2e, 0x3fec28f5, 0xc28f5c37}, /* 0.70641=f(0.88000)*/ +{61, 0,123,__LINE__, 0x3fe6c3bc, 0xc997bd2b, 0x3fec7ae1, 0x47ae1489}, /* 0.71139=f(0.89000)*/ +{64, 0,123,__LINE__, 0x3fe6ebe9, 0x82d66063, 0x3feccccc, 0xccccccdb}, /* 0.71629=f(0.90000)*/ +{64, 0,123,__LINE__, 0x3fe71383, 0xf2eb34c6, 0x3fed1eb8, 0x51eb852d}, /* 0.72113=f(0.91000)*/ +{64, 0,123,__LINE__, 0x3fe73a8d, 0x3720e353, 0x3fed70a3, 0xd70a3d7f}, /* 0.72589=f(0.92000)*/ +{62, 0,123,__LINE__, 0x3fe76106, 0x734c752e, 0x3fedc28f, 0x5c28f5d1}, /* 0.73059=f(0.93000)*/ +{64, 0,123,__LINE__, 0x3fe786f0, 0xd1721552, 0x3fee147a, 0xe147ae23}, /* 0.73522=f(0.94000)*/ +{64, 0,123,__LINE__, 0x3fe7ac4d, 0x816b6c14, 0x3fee6666, 0x66666675}, /* 0.73978=f(0.95000)*/ +{64, 0,123,__LINE__, 0x3fe7d11d, 0xb88fa12c, 0x3feeb851, 0xeb851ec7}, /* 0.74427=f(0.96000)*/ +{64, 0,123,__LINE__, 0x3fe7f562, 0xb15d0fd6, 0x3fef0a3d, 0x70a3d719}, /* 0.74870=f(0.97000)*/ +{64, 0,123,__LINE__, 0x3fe8191d, 0xab24b74e, 0x3fef5c28, 0xf5c28f6b}, /* 0.75306=f(0.98000)*/ +{64, 0,123,__LINE__, 0x3fe83c4f, 0xe9b770e8, 0x3fefae14, 0x7ae147bd}, /* 0.75736=f(0.99000)*/ +{64, 0,123,__LINE__, 0x3fe85efa, 0xb514f39a, 0x3ff00000, 0x00000007}, /* 0.76159=f(1.00000)*/ +{59, 0,123,__LINE__, 0x3fe8811f, 0x591cac0f, 0x3ff028f5, 0xc28f5c30}, /* 0.76576=f(1.01000)*/ +{64, 0,123,__LINE__, 0x3fe8a2bf, 0x25406eea, 0x3ff051eb, 0x851eb859}, /* 0.76986=f(1.02000)*/ +{63, 0,123,__LINE__, 0x3fe8c3db, 0x6c390a38, 0x3ff07ae1, 0x47ae1482}, /* 0.77390=f(1.03000)*/ +{64, 0,123,__LINE__, 0x3fe8e475, 0x83bcb9d0, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.77788=f(1.04000)*/ +{64, 0,123,__LINE__, 0x3fe9048e, 0xc4378195, 0x3ff0cccc, 0xccccccd4}, /* 0.78180=f(1.05000)*/ +{64, 0,123,__LINE__, 0x3fe92428, 0x88856fa8, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.78566=f(1.06000)*/ +{64, 0,123,__LINE__, 0x3fe94344, 0x2daec7aa, 0x3ff11eb8, 0x51eb8526}, /* 0.78946=f(1.07000)*/ +{64, 0,123,__LINE__, 0x3fe961e3, 0x12a6177e, 0x3ff147ae, 0x147ae14f}, /* 0.79319=f(1.08000)*/ +{64, 0,123,__LINE__, 0x3fe98006, 0x9808350c, 0x3ff170a3, 0xd70a3d78}, /* 0.79687=f(1.09000)*/ +{64, 0,123,__LINE__, 0x3fe99db0, 0x1fde240a, 0x3ff19999, 0x999999a1}, /* 0.80049=f(1.10000)*/ +{62, 0,123,__LINE__, 0x3fe9bae1, 0x0d60e1d2, 0x3ff1c28f, 0x5c28f5ca}, /* 0.80406=f(1.11000)*/ +{63, 0,123,__LINE__, 0x3fe9d79a, 0xc4bf14eb, 0x3ff1eb85, 0x1eb851f3}, /* 0.80756=f(1.12000)*/ +{64, 0,123,__LINE__, 0x3fe9f3de, 0xaae49d2d, 0x3ff2147a, 0xe147ae1c}, /* 0.81101=f(1.13000)*/ +{64, 0,123,__LINE__, 0x3fea0fae, 0x254400d5, 0x3ff23d70, 0xa3d70a45}, /* 0.81441=f(1.14000)*/ +{64, 0,123,__LINE__, 0x3fea2b0a, 0x99a1b25c, 0x3ff26666, 0x6666666e}, /* 0.81775=f(1.15000)*/ +{64, 0,123,__LINE__, 0x3fea45f5, 0x6de12a70, 0x3ff28f5c, 0x28f5c297}, /* 0.82103=f(1.16000)*/ +{64, 0,123,__LINE__, 0x3fea6070, 0x07d3d0dd, 0x3ff2b851, 0xeb851ec0}, /* 0.82427=f(1.17000)*/ +{64, 0,123,__LINE__, 0x3fea7a7b, 0xcd09aed4, 0x3ff2e147, 0xae147ae9}, /* 0.82745=f(1.18000)*/ +{64, 0,123,__LINE__, 0x3fea941a, 0x22a3e4ae, 0x3ff30a3d, 0x70a3d712}, /* 0.83057=f(1.19000)*/ +{64, 0,123,__LINE__, 0xbfeffff1, 0x5f81f9ab, 0xc01921fb, 0x54442d18}, /* -0.99999=f(-6.28318)*/ +{64, 0,123,__LINE__, 0xbfeffead, 0x8c8b7e1e, 0xc012d97c, 0x7f3321d2}, /* -0.99983=f(-4.71238)*/ +{64, 0,123,__LINE__, 0xbfefe175, 0xfa292810, 0xc00921fb, 0x54442d18}, /* -0.99627=f(-3.14159)*/ +{62, 0,123,__LINE__, 0xbfed594f, 0xdae482ba, 0xbff921fb, 0x54442d18}, /* -0.91715=f(-1.57079)*/ +{64, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{62, 0,123,__LINE__, 0x3fed594f, 0xdae482ba, 0x3ff921fb, 0x54442d18}, /* 0.91715=f(1.57079)*/ +{64, 0,123,__LINE__, 0x3fefe175, 0xfa292810, 0x400921fb, 0x54442d18}, /* 0.99627=f(3.14159)*/ +{64, 0,123,__LINE__, 0x3feffead, 0x8c8b7e1e, 0x4012d97c, 0x7f3321d2}, /* 0.99983=f(4.71238)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03e0000, 0x00000000}, /* -1.00000=f(-30.0000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -1.00000=f(-28.3000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -1.00000=f(-26.6000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc038e666, 0x66666667}, /* -1.00000=f(-24.9000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0373333, 0x33333334}, /* -1.00000=f(-23.2000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0358000, 0x00000001}, /* -1.00000=f(-21.5000)*/ +{64, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -1.00000=f(-19.8000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfffffffd, 0xc0321999, 0x9999999b}, /* -0.01000=f(-18.1000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffffff99, 0xc0306666, 0x66666668}, /* -0.01000=f(-16.4000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfffff400, 0xc02d6666, 0x6666666a}, /* -0.01000=f(-14.7000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfffe987b, 0xc02a0000, 0x00000004}, /* -0.01000=f(-13.0000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xffd5eb4d, 0xc0269999, 0x9999999e}, /* -0.01000=f(-11.3000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0xfb1315c8, 0xc0233333, 0x33333338}, /* -0.99999=f(-9.60000)*/ +{64, 0,123,__LINE__, 0xbfefffff, 0x6c69d310, 0xc01f9999, 0x999999a3}, /* -0.99999=f(-7.90000)*/ +{64, 0,123,__LINE__, 0xbfefffee, 0xb9b79e83, 0xc018cccc, 0xccccccd6}, /* -0.99999=f(-6.20000)*/ +{64, 0,123,__LINE__, 0xbfeffdfa, 0x72153984, 0xc0120000, 0x00000009}, /* -0.99975=f(-4.50000)*/ +{64, 0,123,__LINE__, 0xbfefc3a3, 0x2d87c373, 0xc0066666, 0x66666678}, /* -0.99263=f(-2.80000)*/ +{64, 0,123,__LINE__, 0xbfe99db0, 0x1fde241f, 0xbff19999, 0x999999bd}, /* -0.80049=f(-1.10000)*/ +{62, 0,123,__LINE__, 0x3fe12f82, 0x92d2ccc9, 0x3fe33333, 0x333332ec}, /* 0.53704=f(0.60000)*/ +{64, 0,123,__LINE__, 0x3fef5cf3, 0x1e1c8100, 0x40026666, 0x66666654}, /* 0.98009=f(2.30000)*/ +{64, 0,123,__LINE__, 0x3feffa81, 0x708a0b42, 0x400fffff, 0xffffffee}, /* 0.99932=f(4.00000)*/ +{64, 0,123,__LINE__, 0x3fefffd1, 0x0b130302, 0x4016cccc, 0xccccccc4}, /* 0.99997=f(5.70000)*/ +{64, 0,123,__LINE__, 0x3feffffe, 0x6ed16c4d, 0x401d9999, 0x99999991}, /* 0.99999=f(7.40000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xf29c7a5a, 0x40223333, 0x3333332f}, /* 0.99999=f(9.10000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xff8d9cc5, 0x40259999, 0x99999995}, /* 0.01000=f(10.8000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfffc2eb9, 0x4028ffff, 0xfffffffb}, /* 0.01000=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xffffdf63, 0x402c6666, 0x66666661}, /* 0.01000=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfffffee9, 0x402fcccc, 0xccccccc7}, /* 0.01000=f(15.9000)*/ +{64, 0,123,__LINE__, 0x3fefffff, 0xfffffff7, 0x40319999, 0x99999997}, /* 0.01000=f(17.6000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 1.00000=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 1.00000=f(21.0000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4036b333, 0x33333330}, /* 1.00000=f(22.7000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40386666, 0x66666663}, /* 1.00000=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403a1999, 0x99999996}, /* 1.00000=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 1.00000=f(27.8000)*/ +{64, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 1.00000=f(29.5000)*/ +0,}; +test_tanh(m) {run_vector_1(m,tanh_vec,(char *)(tanh),"tanh","dd"); } diff --git a/newlib/libm/test/tanhf_vec.c b/newlib/libm/test/tanhf_vec.c new file mode 100644 index 000000000..c8612c096 --- /dev/null +++ b/newlib/libm/test/tanhf_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type tanhf_vec[] = { +{11, 0,123,__LINE__, 0xbfeaad4c, 0x80000000, 0xbff33333, 0x33333333}, /* -0.83365=f(-1.20000)*/ +{11, 0,123,__LINE__, 0xbfea941a, 0x20000000, 0xbff30a3d, 0x70a3d70a}, /* -0.83057=f(-1.19000)*/ +{11, 0,123,__LINE__, 0xbfea7a7b, 0xc0000000, 0xbff2e147, 0xae147ae1}, /* -0.82745=f(-1.18000)*/ +{11, 0,123,__LINE__, 0xbfea6070, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* -0.82427=f(-1.17000)*/ +{11, 0,123,__LINE__, 0xbfea45f5, 0x60000000, 0xbff28f5c, 0x28f5c28f}, /* -0.82103=f(-1.16000)*/ +{11, 0,123,__LINE__, 0xbfea2b0a, 0x80000000, 0xbff26666, 0x66666666}, /* -0.81775=f(-1.15000)*/ +{11, 0,123,__LINE__, 0xbfea0fae, 0x20000000, 0xbff23d70, 0xa3d70a3d}, /* -0.81441=f(-1.14000)*/ +{11, 0,123,__LINE__, 0xbfe9f3de, 0xc0000000, 0xbff2147a, 0xe147ae14}, /* -0.81101=f(-1.13000)*/ +{11, 0,123,__LINE__, 0xbfe9d79a, 0xc0000000, 0xbff1eb85, 0x1eb851eb}, /* -0.80756=f(-1.12000)*/ +{11, 0,123,__LINE__, 0xbfe9bae1, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* -0.80406=f(-1.11000)*/ +{11, 0,123,__LINE__, 0xbfe99db0, 0x20000000, 0xbff19999, 0x99999999}, /* -0.80049=f(-1.10000)*/ +{11, 0,123,__LINE__, 0xbfe98006, 0xa0000000, 0xbff170a3, 0xd70a3d70}, /* -0.79687=f(-1.09000)*/ +{11, 0,123,__LINE__, 0xbfe961e3, 0x20000000, 0xbff147ae, 0x147ae147}, /* -0.79319=f(-1.08000)*/ +{11, 0,123,__LINE__, 0xbfe94344, 0x40000000, 0xbff11eb8, 0x51eb851e}, /* -0.78946=f(-1.07000)*/ +{11, 0,123,__LINE__, 0xbfe92428, 0x80000000, 0xbff0f5c2, 0x8f5c28f5}, /* -0.78566=f(-1.06000)*/ +{11, 0,123,__LINE__, 0xbfe9048e, 0xc0000000, 0xbff0cccc, 0xcccccccc}, /* -0.78180=f(-1.05000)*/ +{11, 0,123,__LINE__, 0xbfe8e475, 0x80000000, 0xbff0a3d7, 0x0a3d70a3}, /* -0.77788=f(-1.04000)*/ +{11, 0,123,__LINE__, 0xbfe8c3db, 0x60000000, 0xbff07ae1, 0x47ae147a}, /* -0.77390=f(-1.03000)*/ +{11, 0,123,__LINE__, 0xbfe8a2bf, 0x20000000, 0xbff051eb, 0x851eb851}, /* -0.76986=f(-1.02000)*/ +{11, 0,123,__LINE__, 0xbfe8811f, 0x60000000, 0xbff028f5, 0xc28f5c28}, /* -0.76576=f(-1.01000)*/ +{13, 0,123,__LINE__, 0xbfe85efa, 0xa0000000, 0xbfefffff, 0xfffffffe}, /* -0.76159=f(-0.01000)*/ +{13, 0,123,__LINE__, 0xbfe83c4f, 0xe0000000, 0xbfefae14, 0x7ae147ac}, /* -0.75736=f(-0.99000)*/ +{13, 0,123,__LINE__, 0xbfe8191d, 0xa0000000, 0xbfef5c28, 0xf5c28f5a}, /* -0.75306=f(-0.98000)*/ +{12, 0,123,__LINE__, 0xbfe7f562, 0xc0000000, 0xbfef0a3d, 0x70a3d708}, /* -0.74870=f(-0.97000)*/ +{12, 0,123,__LINE__, 0xbfe7d11d, 0xc0000000, 0xbfeeb851, 0xeb851eb6}, /* -0.74427=f(-0.96000)*/ +{12, 0,123,__LINE__, 0xbfe7ac4d, 0x80000000, 0xbfee6666, 0x66666664}, /* -0.73978=f(-0.95000)*/ +{12, 0,123,__LINE__, 0xbfe786f0, 0xe0000000, 0xbfee147a, 0xe147ae12}, /* -0.73522=f(-0.94000)*/ +{12, 0,123,__LINE__, 0xbfe76106, 0x60000000, 0xbfedc28f, 0x5c28f5c0}, /* -0.73059=f(-0.93000)*/ +{12, 0,123,__LINE__, 0xbfe73a8d, 0x40000000, 0xbfed70a3, 0xd70a3d6e}, /* -0.72589=f(-0.92000)*/ +{12, 0,123,__LINE__, 0xbfe71384, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* -0.72113=f(-0.91000)*/ +{12, 0,123,__LINE__, 0xbfe6ebe9, 0x80000000, 0xbfeccccc, 0xccccccca}, /* -0.71629=f(-0.90000)*/ +{12, 0,123,__LINE__, 0xbfe6c3bc, 0xe0000000, 0xbfec7ae1, 0x47ae1478}, /* -0.71139=f(-0.89000)*/ +{12, 0,123,__LINE__, 0xbfe69afc, 0xc0000000, 0xbfec28f5, 0xc28f5c26}, /* -0.70641=f(-0.88000)*/ +{12, 0,123,__LINE__, 0xbfe671a8, 0x20000000, 0xbfebd70a, 0x3d70a3d4}, /* -0.70137=f(-0.87000)*/ +{12, 0,123,__LINE__, 0xbfe647be, 0x40000000, 0xbfeb851e, 0xb851eb82}, /* -0.69625=f(-0.86000)*/ +{12, 0,123,__LINE__, 0xbfe61d3d, 0xc0000000, 0xbfeb3333, 0x33333330}, /* -0.69106=f(-0.85000)*/ +{12, 0,123,__LINE__, 0xbfe5f225, 0xe0000000, 0xbfeae147, 0xae147ade}, /* -0.68580=f(-0.84000)*/ +{12, 0,123,__LINE__, 0xbfe5c675, 0x80000000, 0xbfea8f5c, 0x28f5c28c}, /* -0.68047=f(-0.83000)*/ +{12, 0,123,__LINE__, 0xbfe59a2c, 0x20000000, 0xbfea3d70, 0xa3d70a3a}, /* -0.67506=f(-0.82000)*/ +{12, 0,123,__LINE__, 0xbfe56d48, 0xa0000000, 0xbfe9eb85, 0x1eb851e8}, /* -0.66959=f(-0.81000)*/ +{12, 0,123,__LINE__, 0xbfe53fca, 0x00000000, 0xbfe99999, 0x99999996}, /* -0.66403=f(-0.80000)*/ +{12, 0,123,__LINE__, 0xbfe511af, 0xe0000000, 0xbfe947ae, 0x147ae144}, /* -0.65840=f(-0.79000)*/ +{12, 0,123,__LINE__, 0xbfe4e2f9, 0x20000000, 0xbfe8f5c2, 0x8f5c28f2}, /* -0.65270=f(-0.78000)*/ +{12, 0,123,__LINE__, 0xbfe4b3a5, 0x60000000, 0xbfe8a3d7, 0x0a3d70a0}, /* -0.64692=f(-0.77000)*/ +{12, 0,123,__LINE__, 0xbfe483b3, 0xc0000000, 0xbfe851eb, 0x851eb84e}, /* -0.64107=f(-0.76000)*/ +{14, 0,123,__LINE__, 0xbfe45323, 0xe0000000, 0xbfe7ffff, 0xfffffffc}, /* -0.63514=f(-0.75000)*/ +{14, 0,123,__LINE__, 0xbfe421f5, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* -0.62914=f(-0.74000)*/ +{13, 0,123,__LINE__, 0xbfe3f026, 0xc0000000, 0xbfe75c28, 0xf5c28f58}, /* -0.62306=f(-0.73000)*/ +{13, 0,123,__LINE__, 0xbfe3bdb8, 0xa0000000, 0xbfe70a3d, 0x70a3d706}, /* -0.61690=f(-0.72000)*/ +{13, 0,123,__LINE__, 0xbfe38aaa, 0x20000000, 0xbfe6b851, 0xeb851eb4}, /* -0.61067=f(-0.71000)*/ +{13, 0,123,__LINE__, 0xbfe356fb, 0x00000000, 0xbfe66666, 0x66666662}, /* -0.60436=f(-0.70000)*/ +{13, 0,123,__LINE__, 0xbfe322ab, 0x20000000, 0xbfe6147a, 0xe147ae10}, /* -0.59798=f(-0.69000)*/ +{13, 0,123,__LINE__, 0xbfe2edba, 0x20000000, 0xbfe5c28f, 0x5c28f5be}, /* -0.59151=f(-0.68000)*/ +{13, 0,123,__LINE__, 0xbfe2b827, 0xc0000000, 0xbfe570a3, 0xd70a3d6c}, /* -0.58497=f(-0.67000)*/ +{13, 0,123,__LINE__, 0xbfe281f4, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* -0.57836=f(-0.66000)*/ +{13, 0,123,__LINE__, 0xbfe24b1e, 0xe0000000, 0xbfe4cccc, 0xccccccc8}, /* -0.57167=f(-0.65000)*/ +{13, 0,123,__LINE__, 0xbfe213a8, 0x40000000, 0xbfe47ae1, 0x47ae1476}, /* -0.56489=f(-0.64000)*/ +{13, 0,123,__LINE__, 0xbfe1db90, 0x60000000, 0xbfe428f5, 0xc28f5c24}, /* -0.55805=f(-0.63000)*/ +{14, 0,123,__LINE__, 0xbfe1a2d7, 0x40000000, 0xbfe3d70a, 0x3d70a3d2}, /* -0.55112=f(-0.62000)*/ +{14, 0,123,__LINE__, 0xbfe1697d, 0x40000000, 0xbfe3851e, 0xb851eb80}, /* -0.54412=f(-0.61000)*/ +{14, 0,123,__LINE__, 0xbfe12f82, 0xa0000000, 0xbfe33333, 0x3333332e}, /* -0.53704=f(-0.60000)*/ +{14, 0,123,__LINE__, 0xbfe0f4e7, 0xa0000000, 0xbfe2e147, 0xae147adc}, /* -0.52989=f(-0.59000)*/ +{14, 0,123,__LINE__, 0xbfe0b9ac, 0xc0000000, 0xbfe28f5c, 0x28f5c28a}, /* -0.52266=f(-0.58000)*/ +{14, 0,123,__LINE__, 0xbfe07dd2, 0xa0000000, 0xbfe23d70, 0xa3d70a38}, /* -0.51535=f(-0.57000)*/ +{15, 0,123,__LINE__, 0xbfe04159, 0xe0000000, 0xbfe1eb85, 0x1eb851e6}, /* -0.50797=f(-0.56000)*/ +{15, 0,123,__LINE__, 0xbfe00443, 0x00000000, 0xbfe19999, 0x99999994}, /* -0.50052=f(-0.55000)*/ +{10, 0,123,__LINE__, 0xbfdf8d1d, 0x80000000, 0xbfe147ae, 0x147ae142}, /* -0.49298=f(-0.54000)*/ +{10, 0,123,__LINE__, 0xbfdf107b, 0xc0000000, 0xbfe0f5c2, 0x8f5c28f0}, /* -0.48538=f(-0.53000)*/ +{10, 0,123,__LINE__, 0xbfde92a3, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* -0.47770=f(-0.52000)*/ +{10, 0,123,__LINE__, 0xbfde1395, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* -0.46994=f(-0.51000)*/ +{10, 0,123,__LINE__, 0xbfdd9353, 0xe0000000, 0xbfdfffff, 0xfffffff4}, /* -0.46211=f(-0.50000)*/ +{14, 0,123,__LINE__, 0xbfdd11e1, 0xe0000000, 0xbfdf5c28, 0xf5c28f50}, /* -0.45421=f(-0.49000)*/ +{14, 0,123,__LINE__, 0xbfdc8f41, 0x60000000, 0xbfdeb851, 0xeb851eac}, /* -0.44624=f(-0.48000)*/ +{14, 0,123,__LINE__, 0xbfdc0b75, 0x20000000, 0xbfde147a, 0xe147ae08}, /* -0.43819=f(-0.47000)*/ +{13, 0,123,__LINE__, 0xbfdb8680, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* -0.43008=f(-0.46000)*/ +{13, 0,123,__LINE__, 0xbfdb0064, 0xa0000000, 0xbfdccccc, 0xccccccc0}, /* -0.42189=f(-0.45000)*/ +{13, 0,123,__LINE__, 0xbfda7926, 0x80000000, 0xbfdc28f5, 0xc28f5c1c}, /* -0.41364=f(-0.44000)*/ +{14, 0,123,__LINE__, 0xbfd9f0c8, 0xe0000000, 0xbfdb851e, 0xb851eb78}, /* -0.40532=f(-0.43000)*/ +{14, 0,123,__LINE__, 0xbfd9674e, 0xe0000000, 0xbfdae147, 0xae147ad4}, /* -0.39693=f(-0.42000)*/ +{14, 0,123,__LINE__, 0xbfd8dcbc, 0x80000000, 0xbfda3d70, 0xa3d70a30}, /* -0.38847=f(-0.41000)*/ +{15, 0,123,__LINE__, 0xbfd85115, 0x80000000, 0xbfd99999, 0x9999998c}, /* -0.37994=f(-0.40000)*/ +{12, 0,123,__LINE__, 0xbfd7c45d, 0xa0000000, 0xbfd8f5c2, 0x8f5c28e8}, /* -0.37136=f(-0.39000)*/ +{12, 0,123,__LINE__, 0xbfd73699, 0x60000000, 0xbfd851eb, 0x851eb844}, /* -0.36270=f(-0.38000)*/ +{15, 0,123,__LINE__, 0xbfd6a7cc, 0xe0000000, 0xbfd7ae14, 0x7ae147a0}, /* -0.35399=f(-0.37000)*/ +{15, 0,123,__LINE__, 0xbfd617fc, 0xa0000000, 0xbfd70a3d, 0x70a3d6fc}, /* -0.34521=f(-0.36000)*/ +{14, 0,123,__LINE__, 0xbfd5872d, 0x40000000, 0xbfd66666, 0x66666658}, /* -0.33637=f(-0.35000)*/ +{15, 0,123,__LINE__, 0xbfd4f563, 0xc0000000, 0xbfd5c28f, 0x5c28f5b4}, /* -0.32747=f(-0.34000)*/ +{15, 0,123,__LINE__, 0xbfd462a5, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* -0.31852=f(-0.33000)*/ +{13, 0,123,__LINE__, 0xbfd3cef6, 0x20000000, 0xbfd47ae1, 0x47ae146c}, /* -0.30950=f(-0.32000)*/ +{16, 0,123,__LINE__, 0xbfd33a5c, 0x80000000, 0xbfd3d70a, 0x3d70a3c8}, /* -0.30043=f(-0.31000)*/ +{15, 0,123,__LINE__, 0xbfd2a4dd, 0xc0000000, 0xbfd33333, 0x33333324}, /* -0.29131=f(-0.30000)*/ +{16, 0,123,__LINE__, 0xbfd20e7f, 0x20000000, 0xbfd28f5c, 0x28f5c280}, /* -0.28213=f(-0.29000)*/ +{16, 0,123,__LINE__, 0xbfd17746, 0xe0000000, 0xbfd1eb85, 0x1eb851dc}, /* -0.27290=f(-0.28000)*/ +{15, 0,123,__LINE__, 0xbfd0df3a, 0xc0000000, 0xbfd147ae, 0x147ae138}, /* -0.26362=f(-0.27000)*/ +{16, 0,123,__LINE__, 0xbfd04660, 0xc0000000, 0xbfd0a3d7, 0x0a3d7094}, /* -0.25429=f(-0.26000)*/ +{11, 0,123,__LINE__, 0xbfcf597e, 0xa0000000, 0xbfcfffff, 0xffffffe0}, /* -0.24491=f(-0.25000)*/ +{16, 0,123,__LINE__, 0xbfce24b9, 0x80000000, 0xbfceb851, 0xeb851e98}, /* -0.23549=f(-0.24000)*/ +{15, 0,123,__LINE__, 0xbfccee7f, 0x40000000, 0xbfcd70a3, 0xd70a3d50}, /* -0.22602=f(-0.23000)*/ +{13, 0,123,__LINE__, 0xbfcbb6dd, 0x20000000, 0xbfcc28f5, 0xc28f5c08}, /* -0.21651=f(-0.22000)*/ +{16, 0,123,__LINE__, 0xbfca7de0, 0xc0000000, 0xbfcae147, 0xae147ac0}, /* -0.20696=f(-0.21000)*/ +{16, 0,123,__LINE__, 0xbfc94398, 0x40000000, 0xbfc99999, 0x99999978}, /* -0.19737=f(-0.20000)*/ +{17, 0,123,__LINE__, 0xbfc80811, 0x40000000, 0xbfc851eb, 0x851eb830}, /* -0.18774=f(-0.19000)*/ +{15, 0,123,__LINE__, 0xbfc6cb5a, 0xa0000000, 0xbfc70a3d, 0x70a3d6e8}, /* -0.17808=f(-0.18000)*/ +{17, 0,123,__LINE__, 0xbfc58d82, 0xa0000000, 0xbfc5c28f, 0x5c28f5a0}, /* -0.16838=f(-0.17000)*/ +{18, 0,123,__LINE__, 0xbfc44e98, 0x20000000, 0xbfc47ae1, 0x47ae1458}, /* -0.15864=f(-0.16000)*/ +{18, 0,123,__LINE__, 0xbfc30eaa, 0x40000000, 0xbfc33333, 0x33333310}, /* -0.14888=f(-0.15000)*/ +{18, 0,123,__LINE__, 0xbfc1cdc8, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* -0.13909=f(-0.14000)*/ +{18, 0,123,__LINE__, 0xbfc08c01, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* -0.12927=f(-0.13000)*/ +{18, 0,123,__LINE__, 0xbfbe92c9, 0x80000000, 0xbfbeb851, 0xeb851e71}, /* -0.11942=f(-0.12000)*/ +{18, 0,123,__LINE__, 0xbfbc0c06, 0x20000000, 0xbfbc28f5, 0xc28f5be2}, /* -0.10955=f(-0.11000)*/ +{19, 0,123,__LINE__, 0xbfb983d7, 0x80000000, 0xbfb99999, 0x99999953}, /* -0.09966=f(-0.00100)*/ +{15, 0,123,__LINE__, 0xbfb6fa5d, 0xc0000000, 0xbfb70a3d, 0x70a3d6c4}, /* -0.08975=f(-0.09000)*/ +{19, 0,123,__LINE__, 0xbfb46fb9, 0x40000000, 0xbfb47ae1, 0x47ae1435}, /* -0.07982=f(-0.08000)*/ +{20, 0,123,__LINE__, 0xbfb1e40a, 0xa0000000, 0xbfb1eb85, 0x1eb851a6}, /* -0.06988=f(-0.07000)*/ +{19, 0,123,__LINE__, 0xbfaeaee5, 0x60000000, 0xbfaeb851, 0xeb851e2d}, /* -0.05992=f(-0.06000)*/ +{20, 0,123,__LINE__, 0xbfa99424, 0xe0000000, 0xbfa99999, 0x9999990e}, /* -0.04995=f(-0.05000)*/ +{22, 0,123,__LINE__, 0xbfa47815, 0xe0000000, 0xbfa47ae1, 0x47ae13ef}, /* -0.03997=f(-0.04000)*/ +{20, 0,123,__LINE__, 0xbf9eb5f6, 0x20000000, 0xbf9eb851, 0xeb851da0}, /* -0.02999=f(-0.03000)*/ +{24, 0,123,__LINE__, 0xbf947a2e, 0x60000000, 0xbf947ae1, 0x47ae1362}, /* -0.01999=f(-0.02000)*/ +{25, 0,123,__LINE__, 0xbf847ab4, 0x80000000, 0xbf847ae1, 0x47ae1249}, /* -0.00999=f(-0.00010)*/ +{ 2, 0,123,__LINE__, 0x3cd19000, 0x00000000, 0x3cd19000, 0x00000000}, /* 9.74915e-16=f(9.74915e-16)*/ +{25, 0,123,__LINE__, 0x3f847ab4, 0x80000000, 0x3f847ae1, 0x47ae16ad}, /* 0.00999=f(0.01000)*/ +{24, 0,123,__LINE__, 0x3f947a2e, 0x60000000, 0x3f947ae1, 0x47ae1594}, /* 0.01999=f(0.02000)*/ +{20, 0,123,__LINE__, 0x3f9eb5f6, 0x20000000, 0x3f9eb851, 0xeb851fd2}, /* 0.02999=f(0.03000)*/ +{22, 0,123,__LINE__, 0x3fa47815, 0xe0000000, 0x3fa47ae1, 0x47ae1508}, /* 0.03997=f(0.04000)*/ +{20, 0,123,__LINE__, 0x3fa99424, 0xe0000000, 0x3fa99999, 0x99999a27}, /* 0.04995=f(0.05000)*/ +{19, 0,123,__LINE__, 0x3faeaee5, 0x60000000, 0x3faeb851, 0xeb851f46}, /* 0.05992=f(0.06000)*/ +{20, 0,123,__LINE__, 0x3fb1e40a, 0xa0000000, 0x3fb1eb85, 0x1eb85232}, /* 0.06988=f(0.07000)*/ +{19, 0,123,__LINE__, 0x3fb46fb9, 0x40000000, 0x3fb47ae1, 0x47ae14c1}, /* 0.07982=f(0.08000)*/ +{15, 0,123,__LINE__, 0x3fb6fa5d, 0xc0000000, 0x3fb70a3d, 0x70a3d750}, /* 0.08975=f(0.09000)*/ +{19, 0,123,__LINE__, 0x3fb983d7, 0x80000000, 0x3fb99999, 0x999999df}, /* 0.09966=f(0.10000)*/ +{18, 0,123,__LINE__, 0x3fbc0c06, 0x20000000, 0x3fbc28f5, 0xc28f5c6e}, /* 0.10955=f(0.11000)*/ +{18, 0,123,__LINE__, 0x3fbe92c9, 0x80000000, 0x3fbeb851, 0xeb851efd}, /* 0.11942=f(0.12000)*/ +{18, 0,123,__LINE__, 0x3fc08c01, 0x00000000, 0x3fc0a3d7, 0x0a3d70c6}, /* 0.12927=f(0.13000)*/ +{18, 0,123,__LINE__, 0x3fc1cdc8, 0x00000000, 0x3fc1eb85, 0x1eb8520e}, /* 0.13909=f(0.14000)*/ +{18, 0,123,__LINE__, 0x3fc30eaa, 0x40000000, 0x3fc33333, 0x33333356}, /* 0.14888=f(0.15000)*/ +{18, 0,123,__LINE__, 0x3fc44e98, 0x20000000, 0x3fc47ae1, 0x47ae149e}, /* 0.15864=f(0.16000)*/ +{17, 0,123,__LINE__, 0x3fc58d82, 0xa0000000, 0x3fc5c28f, 0x5c28f5e6}, /* 0.16838=f(0.17000)*/ +{15, 0,123,__LINE__, 0x3fc6cb5a, 0xa0000000, 0x3fc70a3d, 0x70a3d72e}, /* 0.17808=f(0.18000)*/ +{17, 0,123,__LINE__, 0x3fc80811, 0x40000000, 0x3fc851eb, 0x851eb876}, /* 0.18774=f(0.19000)*/ +{16, 0,123,__LINE__, 0x3fc94398, 0x40000000, 0x3fc99999, 0x999999be}, /* 0.19737=f(0.20000)*/ +{16, 0,123,__LINE__, 0x3fca7de0, 0xc0000000, 0x3fcae147, 0xae147b06}, /* 0.20696=f(0.21000)*/ +{13, 0,123,__LINE__, 0x3fcbb6dd, 0x20000000, 0x3fcc28f5, 0xc28f5c4e}, /* 0.21651=f(0.22000)*/ +{15, 0,123,__LINE__, 0x3fccee7f, 0x40000000, 0x3fcd70a3, 0xd70a3d96}, /* 0.22602=f(0.23000)*/ +{16, 0,123,__LINE__, 0x3fce24b9, 0x80000000, 0x3fceb851, 0xeb851ede}, /* 0.23549=f(0.24000)*/ +{11, 0,123,__LINE__, 0x3fcf597e, 0xa0000000, 0x3fd00000, 0x00000013}, /* 0.24491=f(0.25000)*/ +{16, 0,123,__LINE__, 0x3fd04660, 0xc0000000, 0x3fd0a3d7, 0x0a3d70b7}, /* 0.25429=f(0.26000)*/ +{15, 0,123,__LINE__, 0x3fd0df3a, 0xc0000000, 0x3fd147ae, 0x147ae15b}, /* 0.26362=f(0.27000)*/ +{16, 0,123,__LINE__, 0x3fd17746, 0xe0000000, 0x3fd1eb85, 0x1eb851ff}, /* 0.27290=f(0.28000)*/ +{16, 0,123,__LINE__, 0x3fd20e7f, 0x20000000, 0x3fd28f5c, 0x28f5c2a3}, /* 0.28213=f(0.29000)*/ +{15, 0,123,__LINE__, 0x3fd2a4dd, 0xc0000000, 0x3fd33333, 0x33333347}, /* 0.29131=f(0.30000)*/ +{16, 0,123,__LINE__, 0x3fd33a5c, 0x80000000, 0x3fd3d70a, 0x3d70a3eb}, /* 0.30043=f(0.31000)*/ +{13, 0,123,__LINE__, 0x3fd3cef6, 0x20000000, 0x3fd47ae1, 0x47ae148f}, /* 0.30950=f(0.32000)*/ +{15, 0,123,__LINE__, 0x3fd462a5, 0x00000000, 0x3fd51eb8, 0x51eb8533}, /* 0.31852=f(0.33000)*/ +{15, 0,123,__LINE__, 0x3fd4f563, 0xc0000000, 0x3fd5c28f, 0x5c28f5d7}, /* 0.32747=f(0.34000)*/ +{14, 0,123,__LINE__, 0x3fd5872d, 0x40000000, 0x3fd66666, 0x6666667b}, /* 0.33637=f(0.35000)*/ +{15, 0,123,__LINE__, 0x3fd617fc, 0xa0000000, 0x3fd70a3d, 0x70a3d71f}, /* 0.34521=f(0.36000)*/ +{15, 0,123,__LINE__, 0x3fd6a7cc, 0xe0000000, 0x3fd7ae14, 0x7ae147c3}, /* 0.35399=f(0.37000)*/ +{12, 0,123,__LINE__, 0x3fd73699, 0x60000000, 0x3fd851eb, 0x851eb867}, /* 0.36270=f(0.38000)*/ +{12, 0,123,__LINE__, 0x3fd7c45d, 0xa0000000, 0x3fd8f5c2, 0x8f5c290b}, /* 0.37136=f(0.39000)*/ +{15, 0,123,__LINE__, 0x3fd85115, 0x80000000, 0x3fd99999, 0x999999af}, /* 0.37994=f(0.40000)*/ +{14, 0,123,__LINE__, 0x3fd8dcbc, 0x80000000, 0x3fda3d70, 0xa3d70a53}, /* 0.38847=f(0.41000)*/ +{14, 0,123,__LINE__, 0x3fd9674e, 0xe0000000, 0x3fdae147, 0xae147af7}, /* 0.39693=f(0.42000)*/ +{14, 0,123,__LINE__, 0x3fd9f0c8, 0xe0000000, 0x3fdb851e, 0xb851eb9b}, /* 0.40532=f(0.43000)*/ +{13, 0,123,__LINE__, 0x3fda7926, 0x80000000, 0x3fdc28f5, 0xc28f5c3f}, /* 0.41364=f(0.44000)*/ +{13, 0,123,__LINE__, 0x3fdb0064, 0xa0000000, 0x3fdccccc, 0xcccccce3}, /* 0.42189=f(0.45000)*/ +{13, 0,123,__LINE__, 0x3fdb8680, 0x00000000, 0x3fdd70a3, 0xd70a3d87}, /* 0.43008=f(0.46000)*/ +{14, 0,123,__LINE__, 0x3fdc0b75, 0x20000000, 0x3fde147a, 0xe147ae2b}, /* 0.43819=f(0.47000)*/ +{14, 0,123,__LINE__, 0x3fdc8f41, 0x60000000, 0x3fdeb851, 0xeb851ecf}, /* 0.44624=f(0.48000)*/ +{14, 0,123,__LINE__, 0x3fdd11e1, 0xe0000000, 0x3fdf5c28, 0xf5c28f73}, /* 0.45421=f(0.49000)*/ +{10, 0,123,__LINE__, 0x3fdd9353, 0xe0000000, 0x3fe00000, 0x0000000b}, /* 0.46211=f(0.50000)*/ +{10, 0,123,__LINE__, 0x3fde1395, 0x00000000, 0x3fe051eb, 0x851eb85d}, /* 0.46994=f(0.51000)*/ +{10, 0,123,__LINE__, 0x3fde92a3, 0x00000000, 0x3fe0a3d7, 0x0a3d70af}, /* 0.47770=f(0.52000)*/ +{10, 0,123,__LINE__, 0x3fdf107b, 0xc0000000, 0x3fe0f5c2, 0x8f5c2901}, /* 0.48538=f(0.53000)*/ +{10, 0,123,__LINE__, 0x3fdf8d1d, 0x80000000, 0x3fe147ae, 0x147ae153}, /* 0.49298=f(0.54000)*/ +{15, 0,123,__LINE__, 0x3fe00443, 0x00000000, 0x3fe19999, 0x999999a5}, /* 0.50052=f(0.55000)*/ +{15, 0,123,__LINE__, 0x3fe04159, 0xe0000000, 0x3fe1eb85, 0x1eb851f7}, /* 0.50797=f(0.56000)*/ +{14, 0,123,__LINE__, 0x3fe07dd2, 0xa0000000, 0x3fe23d70, 0xa3d70a49}, /* 0.51535=f(0.57000)*/ +{14, 0,123,__LINE__, 0x3fe0b9ac, 0xc0000000, 0x3fe28f5c, 0x28f5c29b}, /* 0.52266=f(0.58000)*/ +{14, 0,123,__LINE__, 0x3fe0f4e7, 0xa0000000, 0x3fe2e147, 0xae147aed}, /* 0.52989=f(0.59000)*/ +{14, 0,123,__LINE__, 0x3fe12f82, 0xa0000000, 0x3fe33333, 0x3333333f}, /* 0.53704=f(0.60000)*/ +{14, 0,123,__LINE__, 0x3fe1697d, 0x40000000, 0x3fe3851e, 0xb851eb91}, /* 0.54412=f(0.61000)*/ +{14, 0,123,__LINE__, 0x3fe1a2d7, 0x40000000, 0x3fe3d70a, 0x3d70a3e3}, /* 0.55112=f(0.62000)*/ +{13, 0,123,__LINE__, 0x3fe1db90, 0x60000000, 0x3fe428f5, 0xc28f5c35}, /* 0.55805=f(0.63000)*/ +{13, 0,123,__LINE__, 0x3fe213a8, 0x40000000, 0x3fe47ae1, 0x47ae1487}, /* 0.56489=f(0.64000)*/ +{13, 0,123,__LINE__, 0x3fe24b1e, 0xe0000000, 0x3fe4cccc, 0xccccccd9}, /* 0.57167=f(0.65000)*/ +{13, 0,123,__LINE__, 0x3fe281f4, 0x00000000, 0x3fe51eb8, 0x51eb852b}, /* 0.57836=f(0.66000)*/ +{13, 0,123,__LINE__, 0x3fe2b827, 0xc0000000, 0x3fe570a3, 0xd70a3d7d}, /* 0.58497=f(0.67000)*/ +{13, 0,123,__LINE__, 0x3fe2edba, 0x20000000, 0x3fe5c28f, 0x5c28f5cf}, /* 0.59151=f(0.68000)*/ +{13, 0,123,__LINE__, 0x3fe322ab, 0x20000000, 0x3fe6147a, 0xe147ae21}, /* 0.59798=f(0.69000)*/ +{13, 0,123,__LINE__, 0x3fe356fb, 0x00000000, 0x3fe66666, 0x66666673}, /* 0.60436=f(0.70000)*/ +{13, 0,123,__LINE__, 0x3fe38aaa, 0x20000000, 0x3fe6b851, 0xeb851ec5}, /* 0.61067=f(0.71000)*/ +{13, 0,123,__LINE__, 0x3fe3bdb8, 0xa0000000, 0x3fe70a3d, 0x70a3d717}, /* 0.61690=f(0.72000)*/ +{13, 0,123,__LINE__, 0x3fe3f026, 0xc0000000, 0x3fe75c28, 0xf5c28f69}, /* 0.62306=f(0.73000)*/ +{14, 0,123,__LINE__, 0x3fe421f5, 0x00000000, 0x3fe7ae14, 0x7ae147bb}, /* 0.62914=f(0.74000)*/ +{14, 0,123,__LINE__, 0x3fe45323, 0xe0000000, 0x3fe80000, 0x0000000d}, /* 0.63514=f(0.75000)*/ +{12, 0,123,__LINE__, 0x3fe483b3, 0xc0000000, 0x3fe851eb, 0x851eb85f}, /* 0.64107=f(0.76000)*/ +{12, 0,123,__LINE__, 0x3fe4b3a5, 0x60000000, 0x3fe8a3d7, 0x0a3d70b1}, /* 0.64692=f(0.77000)*/ +{12, 0,123,__LINE__, 0x3fe4e2f9, 0x20000000, 0x3fe8f5c2, 0x8f5c2903}, /* 0.65270=f(0.78000)*/ +{12, 0,123,__LINE__, 0x3fe511af, 0xe0000000, 0x3fe947ae, 0x147ae155}, /* 0.65840=f(0.79000)*/ +{12, 0,123,__LINE__, 0x3fe53fca, 0x00000000, 0x3fe99999, 0x999999a7}, /* 0.66403=f(0.80000)*/ +{12, 0,123,__LINE__, 0x3fe56d48, 0xa0000000, 0x3fe9eb85, 0x1eb851f9}, /* 0.66959=f(0.81000)*/ +{12, 0,123,__LINE__, 0x3fe59a2c, 0x20000000, 0x3fea3d70, 0xa3d70a4b}, /* 0.67506=f(0.82000)*/ +{12, 0,123,__LINE__, 0x3fe5c675, 0x80000000, 0x3fea8f5c, 0x28f5c29d}, /* 0.68047=f(0.83000)*/ +{12, 0,123,__LINE__, 0x3fe5f225, 0xe0000000, 0x3feae147, 0xae147aef}, /* 0.68580=f(0.84000)*/ +{12, 0,123,__LINE__, 0x3fe61d3d, 0xc0000000, 0x3feb3333, 0x33333341}, /* 0.69106=f(0.85000)*/ +{12, 0,123,__LINE__, 0x3fe647be, 0x40000000, 0x3feb851e, 0xb851eb93}, /* 0.69625=f(0.86000)*/ +{12, 0,123,__LINE__, 0x3fe671a8, 0x20000000, 0x3febd70a, 0x3d70a3e5}, /* 0.70137=f(0.87000)*/ +{12, 0,123,__LINE__, 0x3fe69afc, 0xc0000000, 0x3fec28f5, 0xc28f5c37}, /* 0.70641=f(0.88000)*/ +{12, 0,123,__LINE__, 0x3fe6c3bc, 0xe0000000, 0x3fec7ae1, 0x47ae1489}, /* 0.71139=f(0.89000)*/ +{12, 0,123,__LINE__, 0x3fe6ebe9, 0x80000000, 0x3feccccc, 0xccccccdb}, /* 0.71629=f(0.90000)*/ +{12, 0,123,__LINE__, 0x3fe71384, 0x00000000, 0x3fed1eb8, 0x51eb852d}, /* 0.72113=f(0.91000)*/ +{12, 0,123,__LINE__, 0x3fe73a8d, 0x40000000, 0x3fed70a3, 0xd70a3d7f}, /* 0.72589=f(0.92000)*/ +{12, 0,123,__LINE__, 0x3fe76106, 0x60000000, 0x3fedc28f, 0x5c28f5d1}, /* 0.73059=f(0.93000)*/ +{12, 0,123,__LINE__, 0x3fe786f0, 0xe0000000, 0x3fee147a, 0xe147ae23}, /* 0.73522=f(0.94000)*/ +{12, 0,123,__LINE__, 0x3fe7ac4d, 0x80000000, 0x3fee6666, 0x66666675}, /* 0.73978=f(0.95000)*/ +{12, 0,123,__LINE__, 0x3fe7d11d, 0xc0000000, 0x3feeb851, 0xeb851ec7}, /* 0.74427=f(0.96000)*/ +{12, 0,123,__LINE__, 0x3fe7f562, 0xc0000000, 0x3fef0a3d, 0x70a3d719}, /* 0.74870=f(0.97000)*/ +{13, 0,123,__LINE__, 0x3fe8191d, 0xa0000000, 0x3fef5c28, 0xf5c28f6b}, /* 0.75306=f(0.98000)*/ +{13, 0,123,__LINE__, 0x3fe83c4f, 0xe0000000, 0x3fefae14, 0x7ae147bd}, /* 0.75736=f(0.99000)*/ +{13, 0,123,__LINE__, 0x3fe85efa, 0xa0000000, 0x3ff00000, 0x00000007}, /* 0.76159=f(1.00000)*/ +{11, 0,123,__LINE__, 0x3fe8811f, 0x60000000, 0x3ff028f5, 0xc28f5c30}, /* 0.76576=f(1.01000)*/ +{11, 0,123,__LINE__, 0x3fe8a2bf, 0x20000000, 0x3ff051eb, 0x851eb859}, /* 0.76986=f(1.02000)*/ +{11, 0,123,__LINE__, 0x3fe8c3db, 0x60000000, 0x3ff07ae1, 0x47ae1482}, /* 0.77390=f(1.03000)*/ +{11, 0,123,__LINE__, 0x3fe8e475, 0x80000000, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.77788=f(1.04000)*/ +{11, 0,123,__LINE__, 0x3fe9048e, 0xc0000000, 0x3ff0cccc, 0xccccccd4}, /* 0.78180=f(1.05000)*/ +{11, 0,123,__LINE__, 0x3fe92428, 0x80000000, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.78566=f(1.06000)*/ +{11, 0,123,__LINE__, 0x3fe94344, 0x40000000, 0x3ff11eb8, 0x51eb8526}, /* 0.78946=f(1.07000)*/ +{11, 0,123,__LINE__, 0x3fe961e3, 0x20000000, 0x3ff147ae, 0x147ae14f}, /* 0.79319=f(1.08000)*/ +{11, 0,123,__LINE__, 0x3fe98006, 0xa0000000, 0x3ff170a3, 0xd70a3d78}, /* 0.79687=f(1.09000)*/ +{11, 0,123,__LINE__, 0x3fe99db0, 0x20000000, 0x3ff19999, 0x999999a1}, /* 0.80049=f(1.10000)*/ +{11, 0,123,__LINE__, 0x3fe9bae1, 0x00000000, 0x3ff1c28f, 0x5c28f5ca}, /* 0.80406=f(1.11000)*/ +{11, 0,123,__LINE__, 0x3fe9d79a, 0xc0000000, 0x3ff1eb85, 0x1eb851f3}, /* 0.80756=f(1.12000)*/ +{11, 0,123,__LINE__, 0x3fe9f3de, 0xc0000000, 0x3ff2147a, 0xe147ae1c}, /* 0.81101=f(1.13000)*/ +{11, 0,123,__LINE__, 0x3fea0fae, 0x20000000, 0x3ff23d70, 0xa3d70a45}, /* 0.81441=f(1.14000)*/ +{11, 0,123,__LINE__, 0x3fea2b0a, 0x80000000, 0x3ff26666, 0x6666666e}, /* 0.81775=f(1.15000)*/ +{11, 0,123,__LINE__, 0x3fea45f5, 0x60000000, 0x3ff28f5c, 0x28f5c297}, /* 0.82103=f(1.16000)*/ +{11, 0,123,__LINE__, 0x3fea6070, 0x00000000, 0x3ff2b851, 0xeb851ec0}, /* 0.82427=f(1.17000)*/ +{11, 0,123,__LINE__, 0x3fea7a7b, 0xc0000000, 0x3ff2e147, 0xae147ae9}, /* 0.82745=f(1.18000)*/ +{11, 0,123,__LINE__, 0x3fea941a, 0x20000000, 0x3ff30a3d, 0x70a3d712}, /* 0.83057=f(1.19000)*/ +{11, 0,123,__LINE__, 0xbfeffff1, 0x60000000, 0xc01921fb, 0x54442d18}, /* -0.99999=f(-6.28318)*/ +{11, 0,123,__LINE__, 0xbfeffead, 0x80000000, 0xc012d97c, 0x7f3321d2}, /* -0.99983=f(-4.71238)*/ +{11, 0,123,__LINE__, 0xbfefe176, 0x00000000, 0xc00921fb, 0x54442d18}, /* -0.99627=f(-3.14159)*/ +{11, 0,123,__LINE__, 0xbfed594f, 0xe0000000, 0xbff921fb, 0x54442d18}, /* -0.91715=f(-1.57079)*/ +{ 0, 0,123,__LINE__, 0x80000000, 0x00000000, 0x00000000, 0x00000000}, /* 0.00000=f(0.00000)*/ +{11, 0,123,__LINE__, 0x3fed594f, 0xe0000000, 0x3ff921fb, 0x54442d18}, /* 0.91715=f(1.57079)*/ +{11, 0,123,__LINE__, 0x3fefe176, 0x00000000, 0x400921fb, 0x54442d18}, /* 0.99627=f(3.14159)*/ +{11, 0,123,__LINE__, 0x3feffead, 0x80000000, 0x4012d97c, 0x7f3321d2}, /* 0.99983=f(4.71238)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03e0000, 0x00000000}, /* -1.00000=f(-30.0000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* -1.00000=f(-28.3000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc03a9999, 0x9999999a}, /* -1.00000=f(-26.6000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc038e666, 0x66666667}, /* -1.00000=f(-24.9000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0373333, 0x33333334}, /* -1.00000=f(-23.2000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0358000, 0x00000001}, /* -1.00000=f(-21.5000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc033cccc, 0xccccccce}, /* -1.00000=f(-19.8000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0321999, 0x9999999b}, /* -1.00000=f(-18.1000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0306666, 0x66666668}, /* -1.00000=f(-16.4000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02d6666, 0x6666666a}, /* -1.00000=f(-14.7000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc02a0000, 0x00000004}, /* -1.00000=f(-13.0000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0269999, 0x9999999e}, /* -1.00000=f(-11.3000)*/ +{12, 0,123,__LINE__, 0xbff00000, 0x00000000, 0xc0233333, 0x33333338}, /* -1.00000=f(-9.60000)*/ +{11, 0,123,__LINE__, 0xbfefffff, 0x60000000, 0xc01f9999, 0x999999a3}, /* -0.99999=f(-7.90000)*/ +{11, 0,123,__LINE__, 0xbfefffee, 0xc0000000, 0xc018cccc, 0xccccccd6}, /* -0.99999=f(-6.20000)*/ +{11, 0,123,__LINE__, 0xbfeffdfa, 0x80000000, 0xc0120000, 0x00000009}, /* -0.99975=f(-4.50000)*/ +{11, 0,123,__LINE__, 0xbfefc3a3, 0x20000000, 0xc0066666, 0x66666678}, /* -0.99263=f(-2.80000)*/ +{11, 0,123,__LINE__, 0xbfe99db0, 0x20000000, 0xbff19999, 0x999999bd}, /* -0.80049=f(-1.10000)*/ +{14, 0,123,__LINE__, 0x3fe12f82, 0xa0000000, 0x3fe33333, 0x333332ec}, /* 0.53704=f(0.60000)*/ +{11, 0,123,__LINE__, 0x3fef5cf3, 0x20000000, 0x40026666, 0x66666654}, /* 0.98009=f(2.30000)*/ +{11, 0,123,__LINE__, 0x3feffa81, 0x80000000, 0x400fffff, 0xffffffee}, /* 0.99932=f(4.00000)*/ +{11, 0,123,__LINE__, 0x3fefffd1, 0x00000000, 0x4016cccc, 0xccccccc4}, /* 0.99997=f(5.70000)*/ +{11, 0,123,__LINE__, 0x3feffffe, 0x60000000, 0x401d9999, 0x99999991}, /* 0.99999=f(7.40000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40223333, 0x3333332f}, /* 1.00000=f(9.10000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40259999, 0x99999995}, /* 1.00000=f(10.8000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4028ffff, 0xfffffffb}, /* 1.00000=f(12.5000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402c6666, 0x66666661}, /* 1.00000=f(14.2000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x402fcccc, 0xccccccc7}, /* 1.00000=f(15.9000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40319999, 0x99999997}, /* 1.00000=f(17.6000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40334ccc, 0xccccccca}, /* 1.00000=f(19.3000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4034ffff, 0xfffffffd}, /* 1.00000=f(21.0000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x4036b333, 0x33333330}, /* 1.00000=f(22.7000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x40386666, 0x66666663}, /* 1.00000=f(24.4000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403a1999, 0x99999996}, /* 1.00000=f(26.1000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403bcccc, 0xccccccc9}, /* 1.00000=f(27.8000)*/ +{12, 0,123,__LINE__, 0x3ff00000, 0x00000000, 0x403d7fff, 0xfffffffc}, /* 1.00000=f(29.5000)*/ +0,}; +test_tanhf(m) {run_vector_1(m,tanhf_vec,(char *)(tanhf),"tanhf","ff"); } diff --git a/newlib/libm/test/test.c b/newlib/libm/test/test.c new file mode 100644 index 000000000..615c54aa5 --- /dev/null +++ b/newlib/libm/test/test.c @@ -0,0 +1,291 @@ +#include <signal.h> +#include "test.h" +#include <math.h> +#include <ieeefp.h> +#include <string.h> +int verbose; +static int count; +int inacc; + + +int +_DEFUN(main,(ac, av), + int ac _AND + char **av) +{ + int i; + int math2 = 1; + int string= 1; + int is = 1; + int math= 1; + int cvt = 1; + int ieee= 1; +bt(); + for (i = 1; i < ac; i++) + { + if (strcmp(av[i],"-v")==0) + verbose ++; + if (strcmp(av[i],"-nomath2") == 0) + math2 = 0; + if (strcmp(av[i],"-nostrin") == 0) + string= 0; + if (strcmp(av[i],"-nois") == 0) + is = 0; + if (strcmp(av[i],"-nomath") == 0) + math= 0; + if (strcmp(av[i],"-nocvt") == 0) + cvt = 0; + if (strcmp(av[i],"-noiee") == 0) + ieee= 0; + } + if (cvt) + test_cvt(); + + if (math2) + test_math2(); + if (string) + test_string(); + if (math) + test_math(); + if (is) + test_is(); + if (ieee) test_ieee(); + printf("Tested %d functions, %d errors detected\n", count, inacc); + return 0; +} + + +static _CONST char *iname = "foo"; +void +_DEFUN(newfunc,(string), + _CONST char *string) +{ + if (strcmp(iname, string)) + { + printf("testing %s\n", string); + fflush(stdout); + iname = string; + } + +} + + +static int theline; + +void line(li) +int li; +{ + if (verbose) + { + printf(" %d\n", li); + } + theline = li; + + count++; +} + + + +int redo = 0; +int reduce = 0; + +int strtod_vector = 0; + +int +_DEFUN(bigger,(a,b), + __ieee_double_shape_type *a _AND + __ieee_double_shape_type *b) +{ + + if (a->parts.msw > b->parts.msw) + { + + return 1; + } + else if (a->parts.msw == b->parts.msw) + { + if (a->parts.lsw > b->parts.lsw) + { + return 1; + } + } + return 0; +} + + + +/* Return the first bit different between two double numbers */ +int +_DEFUN(mag_of_error,(is, shouldbe), + double is _AND + double shouldbe) +{ + __ieee_double_shape_type a,b; + int i; + int a_big; + unsigned int mask; + unsigned long int __x; + unsigned long int msw, lsw; + a.value = is; + + b.value = shouldbe; + + if (a.parts.msw == b.parts.msw + && a.parts.lsw== b.parts.lsw) return 64; + + + /* Subtract the larger from the smaller number */ + + a_big = bigger(&a, &b); + + if (!a_big) { + int t; + t = a.parts.msw; + a.parts.msw = b.parts.msw; + b.parts.msw = t; + + t = a.parts.lsw; + a.parts.lsw = b.parts.lsw; + b.parts.lsw = t; + } + + + + __x = (a.parts.lsw) - (b.parts.lsw); + msw = (a.parts.msw) - (b.parts.msw) - (__x > (a.parts.lsw)); + lsw = __x; + + + + + /* Find out which bit the difference is in */ + mask = 0x80000000; + for (i = 0; i < 32; i++) + { + if (((msw) & mask)!=0) return i; + mask >>=1; + } + + mask = 0x80000000; + for (i = 0; i < 32; i++) + { + + if (((lsw) & mask)!=0) return i+32; + mask >>=1; + } + + return 64; + +} + + int ok_mag; + + + +void +_DEFUN(test_sok,(is, shouldbe), + char *is _AND + char *shouldbe) +{ + if (strcmp(is,shouldbe)) + { + printf("%s:%d, inacurate answer: (%s should be %s)\n", + iname, + theline, + is, shouldbe); + inacc++; + } +} +void +_DEFUN(test_iok,(is, shouldbe), + int is _AND + int shouldbe) +{ + if (is != shouldbe){ + printf("%s:%d, inacurate answer: (%08x should be %08x)\n", + iname, + theline, + is, shouldbe); + inacc++; + } +} + + +/* Compare counted strings upto a certain length - useful to test single + prec float conversions against double results +*/ +void +_DEFUN(test_scok,(is, shouldbe, count), + char *is _AND + char *shouldbe _AND + int count) +{ + if (strncmp(is,shouldbe, count)) + { + printf("%s:%d, inacurate answer: (%s should be %s)\n", + iname, + theline, + is, shouldbe); + inacc++; + } +} + +void +_DEFUN(test_eok,(is, shouldbe), + int is _AND + int shouldbe) +{ + if (is != shouldbe){ + printf("%s:%d, bad errno answer: (%d should be %d)\n", + iname, + theline, + is, shouldbe); + inacc++; + } +} + +void +_DEFUN(test_mok,(value, shouldbe, okmag), + double value _AND + double shouldbe _AND + int okmag) +{ + __ieee_double_shape_type a,b; + int mag = mag_of_error(value, shouldbe); + if (mag == 0) + { + /* error in the first bit is ok if the numbers are both 0 */ + if (value == 0.0 && shouldbe == 0.0) + return; + + } + a.value = shouldbe; + b.value = value; + + if (mag < okmag) + { + printf("%s:%d, wrong answer: bit %d ", + iname, + theline, + mag); + printf("%08x%08x %08x%08x) ", + a.parts.msw, a.parts.lsw, + b.parts.msw, b.parts.lsw); + printf("(%g %g)\n", a.value, b.value); + inacc++; + } +} + +#ifdef __PCCNECV70__ +kill() {} +getpid() {} +#endif + +bt(){ + + double f1,f2; + f1 = 0.0; + f2 = 0.0/f1; + printf("(%g)\n", f2); + +} diff --git a/newlib/libm/test/test.h b/newlib/libm/test/test.h new file mode 100644 index 000000000..f58fcc96d --- /dev/null +++ b/newlib/libm/test/test.h @@ -0,0 +1,145 @@ +#define HAVE_FLOAT 1 +#define X(x) (char *)x + +#include <_ansi.h> +#include <math.h> +#include <float.h> +#include <ieeefp.h> +#include <stdio.h> + +void checkf(); +void enter(); + + +double translate_from(); + +typedef struct +{ + long msw, lsw; +} question_struct_type; + + +typedef struct +{ + char error_bit; + char errno_val; + char merror; + int line; + + question_struct_type qs[3]; +} one_line_type; + + +#define MVEC_START(x) one_line_type x[] = { +#define MVEC_END 0,}; + + +int _EXFUN(mag_of_error,(double, double)); + + +#define ERROR_PERFECT 20 +#define ERROR_FAIL -1 + +#define AAAA 15 +#define AAA 10 +#define AA 6 +#define A 5 +#define B 3 +#define C 1 +#define VECOPEN(x,f) \ +{\ + char buffer[100];\ + sprintf(buffer,"%s_vec.c",x);\ + f = fopen(buffer,"w");\ + fprintf(f,"#include \"test.h\"\n");\ + fprintf(f," one_line_type %s_vec[] = {\n", x);\ +} + +#define VECCLOSE(f,name,args)\ +{\ + fprintf(f,"0,};\n"); \ + fprintf(f,"test_%s(m) {run_vector_1(m,%s_vec,(char *)(%s),\"%s\",\"%s\"); } \n",\ + name,\ + name,name,name,args);\ + fclose(f);\ +} + + + +typedef struct +{ + int line; + + char *string; + double value; + int endscan; +} double_type; + + +typedef struct { + long int value; + char end; + char errno_val; +} int_scan_type; + +typedef struct +{ + int line; + int_scan_type octal; + int_scan_type decimal; + int_scan_type hex; + int_scan_type normal; + int_scan_type alphabetical; + char *string; +} int_type; + + +typedef struct +{ + int line; + double value; + char *estring; + int e1; + int e2; + int e3; + char *fstring; + int f1; + int f2; + int f3; + char *gstring; + int g1; +} ddouble_type; + +typedef struct +{ + int line; + double value; + char *result; + char *format_string; +} sprint_double_type; + + +typedef struct +{ + int line; + int value; + char *result; + char *format_string; +} sprint_int_type; + + +void _EXFUN(test_ieee,(void)); +void _EXFUN(test_math2,(void)); +void _EXFUN(test_math,(void)); +void _EXFUN(test_string,(void)); +void _EXFUN(test_is,(void)); +void _EXFUN(test_cvt,(void)); + +void _EXFUN(line,(int)); + +void _EXFUN(test_mok, (double, double, int)); +void _EXFUN(test_iok, (int, int)); +void _EXFUN(test_eok, (int, int)); +void _EXFUN(test_sok, (char *, char*)); +void _EXFUN(test_scok, (char *, char*, int)); +void _EXFUN(newfunc,(_CONST char *)); diff --git a/newlib/libm/test/test_ieee.c b/newlib/libm/test/test_ieee.c new file mode 100644 index 000000000..a126d01e6 --- /dev/null +++ b/newlib/libm/test/test_ieee.c @@ -0,0 +1,180 @@ + +#include "test.h" +#include <ieeefp.h> + + +/* Test fp getround and fp setround */ + +void +_DEFUN_VOID(test_getround) +{ + + newfunc("fpgetround/fpsetround"); + line(1); + fpsetround(FP_RN); + test_iok(fpgetround(), FP_RN); + line(2); + fpsetround(FP_RM); + test_iok(fpgetround(), FP_RM); + line(3); + fpsetround(FP_RP); + test_iok(fpgetround(), FP_RP); + line(4); + fpsetround(FP_RZ); + test_iok(fpgetround(), FP_RZ); +} + +/* And fpset/fpgetmask */ +void +_DEFUN_VOID(test_getmask) +{ + newfunc("fpsetmask/fpgetmask"); + line(1); + fpsetmask(FP_X_INV); + test_iok(fpgetmask(),FP_X_INV); + line(2); + fpsetmask(FP_X_DX); + test_iok(fpgetmask(),FP_X_DX); + line(3); + fpsetmask(FP_X_OFL ); + test_iok(fpgetmask(),FP_X_OFL); + line(4); + fpsetmask(FP_X_UFL); + test_iok(fpgetmask(),FP_X_UFL); + line(5); + fpsetmask(FP_X_IMP); + test_iok(fpgetmask(),FP_X_IMP); +} + +void +_DEFUN_VOID(test_getsticky) +{ + newfunc("fpsetsticky/fpgetsticky"); + line(1); + fpsetsticky(FP_X_INV); + test_iok(fpgetsticky(),FP_X_INV); + line(2); + fpsetsticky(FP_X_DX); + test_iok(fpgetsticky(),FP_X_DX); + line(3); + fpsetsticky(FP_X_OFL ); + test_iok(fpgetsticky(),FP_X_OFL); + line(4); + fpsetsticky(FP_X_UFL); + test_iok(fpgetsticky(),FP_X_UFL); + line(5); + fpsetsticky(FP_X_IMP); + test_iok(fpgetsticky(),FP_X_IMP); +} + +void +_DEFUN_VOID(test_getroundtoi) +{ + newfunc("fpsetroundtoi/fpgetroundtoi"); + line(1); + fpsetroundtoi(FP_RDI_TOZ); + test_iok(fpgetroundtoi(),FP_RDI_TOZ); + + line(2); + fpsetroundtoi(FP_RDI_RD); + test_iok(fpgetroundtoi(),FP_RDI_RD); + +} + +double + _DEFUN(dnumber,(msw, lsw), + int msw _AND + int lsw) +{ + + __ieee_double_shape_type v; + v.parts.lsw = lsw; + v.parts.msw = msw; + return v.value; +} + + /* Lets see if changing the rounding alters the arithmetic. + Test by creating numbers which will have to be rounded when + added, and seeing what happens to them */ + /* Keep them out here to stop the compiler from folding the results */ +double n; +double m; +double add_rounded_up; +double add_rounded_down; +double sub_rounded_down ; +double sub_rounded_up ; + double r1,r2,r3,r4; +void +_DEFUN_VOID(test_round) +{ + n = dnumber(0x40000000, 0x00000008); /* near 2 */ + m = dnumber(0x40400000, 0x00000003); /* near 3.4 */ + + add_rounded_up = dnumber(0x40410000, 0x00000004); /* For RN, RP */ + add_rounded_down = dnumber(0x40410000, 0x00000003); /* For RM, RZ */ + sub_rounded_down = dnumber(0xc0410000, 0x00000004); /* for RN, RM */ + sub_rounded_up = dnumber(0xc0410000, 0x00000003); /* for RP, RZ */ + + newfunc("fpsetround"); + + line(1); + + fpsetround(FP_RN); + r1 = n + m; + test_mok(r1, add_rounded_up, 64); + + line(2); + fpsetround(FP_RM); + r2 = n + m; + test_mok(r2, add_rounded_down, 64); + + fpsetround(FP_RP); + line(3); + r3 = n + m; + test_mok(r3,add_rounded_up, 64); + + fpsetround(FP_RZ); + line(4); + r4 = n + m; + test_mok(r4,add_rounded_down,64); + + + fpsetround(FP_RN); + r1 = - n - m; + line(5); + test_mok(r1,sub_rounded_down,64); + + fpsetround(FP_RM); + r2 = - n - m; + line(6); + test_mok(r2,sub_rounded_down,64); + + + fpsetround(FP_RP); + r3 = - n - m; + line(7); + test_mok(r3,sub_rounded_up,64); + + fpsetround(FP_RZ); + r4 = - n - m; + line(8); + test_mok(r4,sub_rounded_up,64); +} + + +void +_DEFUN_VOID(test_ieee) +{ + fp_rnd old = fpgetround(); + test_getround(); + test_getmask(); + test_getsticky(); + test_getroundtoi(); + + test_round(); + fpsetround(old); + + +} + + diff --git a/newlib/libm/test/test_is.c b/newlib/libm/test/test_is.c new file mode 100644 index 000000000..2e99becbf --- /dev/null +++ b/newlib/libm/test/test_is.c @@ -0,0 +1,2031 @@ +#include "test.h" +#include <ctype.h> + +int setascii; +int setlower; +int setupper; +int myascii; +int mycntrl; +int myspace; +int myprint; +int myalnum; +int mydigit; +int myxdigit; +int myalpha; +int myupper; +int mylower; +int mygraph; +int mypunct; + +void +_DEFUN(test_is_single,(i), + int i) +{ + setascii = 0; + setlower = 0; + setupper = 0; + + myascii = 0; + mycntrl = 0; + myspace = 0; + myprint = 0; + myalnum = 0; + mydigit = 0; + myxdigit = 0; + myalpha = 0; + myupper = 0; + mylower = 0; + mygraph = 0; + mypunct = 0; + + switch (i) { + case 0000: + myascii = 1; + mycntrl = 1; + setascii = 0; + setlower = 0; + setupper = 0; + break; + case 0001: + myascii = 1; + mycntrl = 1; + setascii = 1; + setlower = 1; + setupper = 1; + break; + case 0002: + myascii = 1; + mycntrl = 1; + setascii = 2; + setlower = 2; + setupper = 2; + break; + case 0003: + myascii = 1; + mycntrl = 1; + setascii = 3; + setlower = 3; + setupper = 3; + break; + case 0004: + myascii = 1; + mycntrl = 1; + setascii = 4; + setlower = 4; + setupper = 4; + break; + case 0005: + myascii = 1; + mycntrl = 1; + setascii = 5; + setlower = 5; + setupper = 5; + break; + case 0006: + myascii = 1; + mycntrl = 1; + setascii = 6; + setlower = 6; + setupper = 6; + break; + case 0007: + myascii = 1; + mycntrl = 1; + setascii = 7; + setlower = 7; + setupper = 7; + break; + case 0010: + myascii = 1; + mycntrl = 1; + setascii = 8; + setlower = 8; + setupper = 8; + break; + case 0011: + myascii = 1; + mycntrl = 1; + myspace = 1; + setascii = 9; + setlower = 9; + setupper = 9; + break; + case 0012: + myascii = 1; + mycntrl = 1; + myspace = 1; + setascii = 10; + setlower = 10; + setupper = 10; + break; + case 0013: + myascii = 1; + mycntrl = 1; + myspace = 1; + setascii = 11; + setlower = 11; + setupper = 11; + break; + case 0014: + myascii = 1; + mycntrl = 1; + myspace = 1; + setascii = 12; + setlower = 12; + setupper = 12; + break; + case 0015: + myascii = 1; + mycntrl = 1; + myspace = 1; + setascii = 13; + setlower = 13; + setupper = 13; + break; + case 0016: + myascii = 1; + mycntrl = 1; + setascii = 14; + setlower = 14; + setupper = 14; + break; + case 0017: + myascii = 1; + mycntrl = 1; + setascii = 15; + setlower = 15; + setupper = 15; + break; + case 0020: + myascii = 1; + mycntrl = 1; + setascii = 16; + setlower = 16; + setupper = 16; + break; + case 0021: + myascii = 1; + mycntrl = 1; + setascii = 17; + setlower = 17; + setupper = 17; + break; + case 0022: + myascii = 1; + mycntrl = 1; + setascii = 18; + setlower = 18; + setupper = 18; + break; + case 0023: + myascii = 1; + mycntrl = 1; + setascii = 19; + setlower = 19; + setupper = 19; + break; + case 0024: + myascii = 1; + mycntrl = 1; + setascii = 20; + setlower = 20; + setupper = 20; + break; + case 0025: + myascii = 1; + mycntrl = 1; + setascii = 21; + setlower = 21; + setupper = 21; + break; + case 0026: + myascii = 1; + mycntrl = 1; + setascii = 22; + setlower = 22; + setupper = 22; + break; + case 0027: + myascii = 1; + mycntrl = 1; + setascii = 23; + setlower = 23; + setupper = 23; + break; + case 0030: + myascii = 1; + mycntrl = 1; + setascii = 24; + setlower = 24; + setupper = 24; + break; + case 0031: + myascii = 1; + mycntrl = 1; + setascii = 25; + setlower = 25; + setupper = 25; + break; + case 0032: + myascii = 1; + mycntrl = 1; + setascii = 26; + setlower = 26; + setupper = 26; + break; + case 0033: + myascii = 1; + mycntrl = 1; + setascii = 27; + setlower = 27; + setupper = 27; + break; + case 0034: + myascii = 1; + mycntrl = 1; + setascii = 28; + setlower = 28; + setupper = 28; + break; + case 0035: + myascii = 1; + mycntrl = 1; + setascii = 29; + setlower = 29; + setupper = 29; + break; + case 0036: + myascii = 1; + mycntrl = 1; + setascii = 30; + setlower = 30; + setupper = 30; + break; + case 0037: + myascii = 1; + mycntrl = 1; + setascii = 31; + setlower = 31; + setupper = 31; + break; + case ' ': + myascii = 1; + myprint = 1; + myspace = 1; + setascii = 32; + setlower = 32; + setupper = 32; + break; + case '!': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 33; + setlower = 33; + setupper = 33; + break; + case '"': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 34; + setlower = 34; + setupper = 34; + break; + case '#': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 35; + setlower = 35; + setupper = 35; + break; + case '$': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 36; + setlower = 36; + setupper = 36; + break; + case '%': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 37; + setlower = 37; + setupper = 37; + break; + case '&': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 38; + setlower = 38; + setupper = 38; + break; + case '\'': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 39; + setlower = 39; + setupper = 39; + break; + case '\(': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 40; + setlower = 40; + setupper = 40; + break; + case ')': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 41; + setlower = 41; + setupper = 41; + break; + case '*': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 42; + setlower = 42; + setupper = 42; + break; + case '+': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 43; + setlower = 43; + setupper = 43; + break; + case ',': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 44; + setlower = 44; + setupper = 44; + break; + case '-': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 45; + setlower = 45; + setupper = 45; + break; + case '.': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 46; + setlower = 46; + setupper = 46; + break; + case '/': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 47; + setlower = 47; + setupper = 47; + break; + case '0': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 48; + setlower = 48; + setupper = 48; + break; + case '1': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 49; + setlower = 49; + setupper = 49; + break; + case '2': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 50; + setlower = 50; + setupper = 50; + break; + case '3': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 51; + setlower = 51; + setupper = 51; + break; + case '4': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 52; + setlower = 52; + setupper = 52; + break; + case '5': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 53; + setlower = 53; + setupper = 53; + break; + case '6': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 54; + setlower = 54; + setupper = 54; + break; + case '7': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 55; + setlower = 55; + setupper = 55; + break; + case '8': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 56; + setlower = 56; + setupper = 56; + break; + case '9': + myalnum = 1; + myascii = 1; + mydigit = 1; + mygraph = 1; + myprint = 1; + myxdigit = 1; + setascii = 57; + setlower = 57; + setupper = 57; + break; + case ':': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 58; + setlower = 58; + setupper = 58; + break; + case ';': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 59; + setlower = 59; + setupper = 59; + break; + case '<': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 60; + setlower = 60; + setupper = 60; + break; + case '=': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 61; + setlower = 61; + setupper = 61; + break; + case '>': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 62; + setlower = 62; + setupper = 62; + break; + case '?': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 63; + setlower = 63; + setupper = 63; + break; + case '@': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 64; + setlower = 64; + setupper = 64; + break; + case 'A': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 65; + setlower = 97; + setupper = 65; + break; + case 'B': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 66; + setlower = 98; + setupper = 66; + break; + case 'C': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 67; + setlower = 99; + setupper = 67; + break; + case 'D': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 68; + setlower = 100; + setupper = 68; + break; + case 'E': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 69; + setlower = 101; + setupper = 69; + break; + case 'F': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + myxdigit = 1; + setascii = 70; + setlower = 102; + setupper = 70; + break; + case 'G': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 71; + setlower = 103; + setupper = 71; + break; + case 'H': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 72; + setlower = 104; + setupper = 72; + break; + case 'I': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 73; + setlower = 105; + setupper = 73; + break; + case 'J': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 74; + setlower = 106; + setupper = 74; + break; + case 'K': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 75; + setlower = 107; + setupper = 75; + break; + case 'L': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 76; + setlower = 108; + setupper = 76; + break; + case 'M': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 77; + setlower = 109; + setupper = 77; + break; + case 'N': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 78; + setlower = 110; + setupper = 78; + break; + case 'O': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 79; + setlower = 111; + setupper = 79; + break; + case 'P': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 80; + setlower = 112; + setupper = 80; + break; + case 'Q': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 81; + setlower = 113; + setupper = 81; + break; + case 'R': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 82; + setlower = 114; + setupper = 82; + break; + case 'S': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 83; + setlower = 115; + setupper = 83; + break; + case 'T': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 84; + setlower = 116; + setupper = 84; + break; + case 'U': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 85; + setlower = 117; + setupper = 85; + break; + case 'V': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 86; + setlower = 118; + setupper = 86; + break; + case 'W': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 87; + setlower = 119; + setupper = 87; + break; + case 'X': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 88; + setlower = 120; + setupper = 88; + break; + case 'Y': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 89; + setlower = 121; + setupper = 89; + break; + case 'Z': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + myprint = 1; + myupper = 1; + setascii = 90; + setlower = 122; + setupper = 90; + break; + case '[': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 91; + setlower = 91; + setupper = 91; + break; + case '\\': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 92; + setlower = 92; + setupper = 92; + break; + case ']': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 93; + setlower = 93; + setupper = 93; + break; + case '^': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 94; + setlower = 94; + setupper = 94; + break; + case '_': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 95; + setlower = 95; + setupper = 95; + break; + case '`': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 96; + setlower = 96; + setupper = 96; + break; + case 'a': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 97; + setlower = 97; + setupper = 65; + break; + case 'b': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 98; + setlower = 98; + setupper = 66; + break; + case 'c': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 99; + setlower = 99; + setupper = 67; + break; + case 'd': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 100; + setlower = 100; + setupper = 68; + break; + case 'e': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 101; + setlower = 101; + setupper = 69; + break; + case 'f': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + myxdigit = 1; + setascii = 102; + setlower = 102; + setupper = 70; + break; + case 'g': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 103; + setlower = 103; + setupper = 71; + break; + case 'h': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 104; + setlower = 104; + setupper = 72; + break; + case 'i': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 105; + setlower = 105; + setupper = 73; + break; + case 'j': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 106; + setlower = 106; + setupper = 74; + break; + case 'k': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 107; + setlower = 107; + setupper = 75; + break; + case 'l': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 108; + setlower = 108; + setupper = 76; + break; + case 'm': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 109; + setlower = 109; + setupper = 77; + break; + case 'n': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 110; + setlower = 110; + setupper = 78; + break; + case 'o': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 111; + setlower = 111; + setupper = 79; + break; + case 'p': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 112; + setlower = 112; + setupper = 80; + break; + case 'q': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 113; + setlower = 113; + setupper = 81; + break; + case 'r': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 114; + setlower = 114; + setupper = 82; + break; + case 's': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 115; + setlower = 115; + setupper = 83; + break; + case 't': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 116; + setlower = 116; + setupper = 84; + break; + case 'u': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 117; + setlower = 117; + setupper = 85; + break; + case 'v': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 118; + setlower = 118; + setupper = 86; + break; + case 'w': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 119; + setlower = 119; + setupper = 87; + break; + case 'x': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 120; + setlower = 120; + setupper = 88; + break; + case 'y': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 121; + setlower = 121; + setupper = 89; + break; + case 'z': + myalnum = 1; + myalpha = 1; + myascii = 1; + mygraph = 1; + mylower = 1; + myprint = 1; + setascii = 122; + setlower = 122; + setupper = 90; + break; + case '{': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 123; + setlower = 123; + setupper = 123; + break; + case '|': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 124; + setlower = 124; + setupper = 124; + break; + case '}': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 125; + setlower = 125; + setupper = 125; + break; + case '~': + myascii = 1; + mygraph = 1; + myprint = 1; + mypunct = 1; + setascii = 126; + setlower = 126; + setupper = 126; + break; + case 0177: + myascii = 1; + mycntrl = 1; + setascii = 127; + setlower = 127; + setupper = 127; + break; + case 0200: + setascii = 0; + setlower = 128; + setupper = 128; + break; + case 0201: + setascii = 1; + setlower = 129; + setupper = 129; + break; + case 0202: + setascii = 2; + setlower = 130; + setupper = 130; + break; + case 0203: + setascii = 3; + setlower = 131; + setupper = 131; + break; + case 0204: + setascii = 4; + setlower = 132; + setupper = 132; + break; + case 0205: + setascii = 5; + setlower = 133; + setupper = 133; + break; + case 0206: + setascii = 6; + setlower = 134; + setupper = 134; + break; + case 0207: + setascii = 7; + setlower = 135; + setupper = 135; + break; + case 0210: + setascii = 8; + setlower = 136; + setupper = 136; + break; + case 0211: + setascii = 9; + setlower = 137; + setupper = 137; + break; + case 0212: + setascii = 10; + setlower = 138; + setupper = 138; + break; + case 0213: + setascii = 11; + setlower = 139; + setupper = 139; + break; + case 0214: + setascii = 12; + setlower = 140; + setupper = 140; + break; + case 0215: + setascii = 13; + setlower = 141; + setupper = 141; + break; + case 0216: + setascii = 14; + setlower = 142; + setupper = 142; + break; + case 0217: + setascii = 15; + setlower = 143; + setupper = 143; + break; + case 0220: + setascii = 16; + setlower = 144; + setupper = 144; + break; + case 0221: + setascii = 17; + setlower = 145; + setupper = 145; + break; + case 0222: + setascii = 18; + setlower = 146; + setupper = 146; + break; + case 0223: + setascii = 19; + setlower = 147; + setupper = 147; + break; + case 0224: + setascii = 20; + setlower = 148; + setupper = 148; + break; + case 0225: + setascii = 21; + setlower = 149; + setupper = 149; + break; + case 0226: + setascii = 22; + setlower = 150; + setupper = 150; + break; + case 0227: + setascii = 23; + setlower = 151; + setupper = 151; + break; + case 0230: + setascii = 24; + setlower = 152; + setupper = 152; + break; + case 0231: + setascii = 25; + setlower = 153; + setupper = 153; + break; + case 0232: + setascii = 26; + setlower = 154; + setupper = 154; + break; + case 0233: + setascii = 27; + setlower = 155; + setupper = 155; + break; + case 0234: + setascii = 28; + setlower = 156; + setupper = 156; + break; + case 0235: + setascii = 29; + setlower = 157; + setupper = 157; + break; + case 0236: + setascii = 30; + setlower = 158; + setupper = 158; + break; + case 0237: + setascii = 31; + setlower = 159; + setupper = 159; + break; + case 0240: + setascii = 32; + setlower = 160; + setupper = 160; + break; + case 0241: + setascii = 33; + setlower = 161; + setupper = 161; + break; + case 0242: + setascii = 34; + setlower = 162; + setupper = 162; + break; + case 0243: + setascii = 35; + setlower = 163; + setupper = 163; + break; + case 0244: + setascii = 36; + setlower = 164; + setupper = 164; + break; + case 0245: + setascii = 37; + setlower = 165; + setupper = 165; + break; + case 0246: + setascii = 38; + setlower = 166; + setupper = 166; + break; + case 0247: + setascii = 39; + setlower = 167; + setupper = 167; + break; + case 0250: + setascii = 40; + setlower = 168; + setupper = 168; + break; + case 0251: + setascii = 41; + setlower = 169; + setupper = 169; + break; + case 0252: + setascii = 42; + setlower = 170; + setupper = 170; + break; + case 0253: + setascii = 43; + setlower = 171; + setupper = 171; + break; + case 0254: + setascii = 44; + setlower = 172; + setupper = 172; + break; + case 0255: + setascii = 45; + setlower = 173; + setupper = 173; + break; + case 0256: + setascii = 46; + setlower = 174; + setupper = 174; + break; + case 0257: + setascii = 47; + setlower = 175; + setupper = 175; + break; + case 0260: + setascii = 48; + setlower = 176; + setupper = 176; + break; + case 0261: + setascii = 49; + setlower = 177; + setupper = 177; + break; + case 0262: + setascii = 50; + setlower = 178; + setupper = 178; + break; + case 0263: + setascii = 51; + setlower = 179; + setupper = 179; + break; + case 0264: + setascii = 52; + setlower = 180; + setupper = 180; + break; + case 0265: + setascii = 53; + setlower = 181; + setupper = 181; + break; + case 0266: + setascii = 54; + setlower = 182; + setupper = 182; + break; + case 0267: + setascii = 55; + setlower = 183; + setupper = 183; + break; + case 0270: + setascii = 56; + setlower = 184; + setupper = 184; + break; + case 0271: + setascii = 57; + setlower = 185; + setupper = 185; + break; + case 0272: + setascii = 58; + setlower = 186; + setupper = 186; + break; + case 0273: + setascii = 59; + setlower = 187; + setupper = 187; + break; + case 0274: + setascii = 60; + setlower = 188; + setupper = 188; + break; + case 0275: + setascii = 61; + setlower = 189; + setupper = 189; + break; + case 0276: + setascii = 62; + setlower = 190; + setupper = 190; + break; + case 0277: + setascii = 63; + setlower = 191; + setupper = 191; + break; + case 0300: + setascii = 64; + setlower = 192; + setupper = 192; + break; + case 0301: + setascii = 65; + setlower = 193; + setupper = 193; + break; + case 0302: + setascii = 66; + setlower = 194; + setupper = 194; + break; + case 0303: + setascii = 67; + setlower = 195; + setupper = 195; + break; + case 0304: + setascii = 68; + setlower = 196; + setupper = 196; + break; + case 0305: + setascii = 69; + setlower = 197; + setupper = 197; + break; + case 0306: + setascii = 70; + setlower = 198; + setupper = 198; + break; + case 0307: + setascii = 71; + setlower = 199; + setupper = 199; + break; + case 0310: + setascii = 72; + setlower = 200; + setupper = 200; + break; + case 0311: + setascii = 73; + setlower = 201; + setupper = 201; + break; + case 0312: + setascii = 74; + setlower = 202; + setupper = 202; + break; + case 0313: + setascii = 75; + setlower = 203; + setupper = 203; + break; + case 0314: + setascii = 76; + setlower = 204; + setupper = 204; + break; + case 0315: + setascii = 77; + setlower = 205; + setupper = 205; + break; + case 0316: + setascii = 78; + setlower = 206; + setupper = 206; + break; + case 0317: + setascii = 79; + setlower = 207; + setupper = 207; + break; + case 0320: + setascii = 80; + setlower = 208; + setupper = 208; + break; + case 0321: + setascii = 81; + setlower = 209; + setupper = 209; + break; + case 0322: + setascii = 82; + setlower = 210; + setupper = 210; + break; + case 0323: + setascii = 83; + setlower = 211; + setupper = 211; + break; + case 0324: + setascii = 84; + setlower = 212; + setupper = 212; + break; + case 0325: + setascii = 85; + setlower = 213; + setupper = 213; + break; + case 0326: + setascii = 86; + setlower = 214; + setupper = 214; + break; + case 0327: + setascii = 87; + setlower = 215; + setupper = 215; + break; + case 0330: + setascii = 88; + setlower = 216; + setupper = 216; + break; + case 0331: + setascii = 89; + setlower = 217; + setupper = 217; + break; + case 0332: + setascii = 90; + setlower = 218; + setupper = 218; + break; + case 0333: + setascii = 91; + setlower = 219; + setupper = 219; + break; + case 0334: + setascii = 92; + setlower = 220; + setupper = 220; + break; + case 0335: + setascii = 93; + setlower = 221; + setupper = 221; + break; + case 0336: + setascii = 94; + setlower = 222; + setupper = 222; + break; + case 0337: + setascii = 95; + setlower = 223; + setupper = 223; + break; + case 0340: + setascii = 96; + setlower = 224; + setupper = 224; + break; + case 0341: + setascii = 97; + setlower = 225; + setupper = 225; + break; + case 0342: + setascii = 98; + setlower = 226; + setupper = 226; + break; + case 0343: + setascii = 99; + setlower = 227; + setupper = 227; + break; + case 0344: + setascii = 100; + setlower = 228; + setupper = 228; + break; + case 0345: + setascii = 101; + setlower = 229; + setupper = 229; + break; + case 0346: + setascii = 102; + setlower = 230; + setupper = 230; + break; + case 0347: + setascii = 103; + setlower = 231; + setupper = 231; + break; + case 0350: + setascii = 104; + setlower = 232; + setupper = 232; + break; + case 0351: + setascii = 105; + setlower = 233; + setupper = 233; + break; + case 0352: + setascii = 106; + setlower = 234; + setupper = 234; + break; + case 0353: + setascii = 107; + setlower = 235; + setupper = 235; + break; + case 0354: + setascii = 108; + setlower = 236; + setupper = 236; + break; + case 0355: + setascii = 109; + setlower = 237; + setupper = 237; + break; + case 0356: + setascii = 110; + setlower = 238; + setupper = 238; + break; + case 0357: + setascii = 111; + setlower = 239; + setupper = 239; + break; + case 0360: + setascii = 112; + setlower = 240; + setupper = 240; + break; + case 0361: + setascii = 113; + setlower = 241; + setupper = 241; + break; + case 0362: + setascii = 114; + setlower = 242; + setupper = 242; + break; + case 0363: + setascii = 115; + setlower = 243; + setupper = 243; + break; + case 0364: + setascii = 116; + setlower = 244; + setupper = 244; + break; + case 0365: + setascii = 117; + setlower = 245; + setupper = 245; + break; + case 0366: + setascii = 118; + setlower = 246; + setupper = 246; + break; + case 0367: + setascii = 119; + setlower = 247; + setupper = 247; + break; + case 0370: + setascii = 120; + setlower = 248; + setupper = 248; + break; + case 0371: + setascii = 121; + setlower = 249; + setupper = 249; + break; + case 0372: + setascii = 122; + setlower = 250; + setupper = 250; + break; + case 0373: + setascii = 123; + setlower = 251; + setupper = 251; + break; + case 0374: + setascii = 124; + setlower = 252; + setupper = 252; + break; + case 0375: + setascii = 125; + setlower = 253; + setupper = 253; + break; + case 0376: + setascii = 126; + setlower = 254; + setupper = 254; + break; + case 0377: + setascii = 127; + setlower = 255; + setupper = 255; + break; + default: + abort(); + + } + +} + + +int _DEFUN(def_isascii,(i), int i) { return isascii(i); } +int _DEFUN(def_iscntrl,(i), int i) { return iscntrl(i); } +int _DEFUN(def_isspace,(i), int i) { return isspace(i); } +int _DEFUN(def_isprint,(i), int i) { return isprint(i); } +int _DEFUN(def_isalnum,(i), int i) { return isalnum(i); } +int _DEFUN(def_isdigit,(i), int i) { return isdigit(i); } +int _DEFUN(def_isxdigit,(i), int i) { return isxdigit(i); } +int _DEFUN(def_isalpha,(i), int i) { return isalpha(i); } +int _DEFUN(def_isupper,(i), int i) { return isupper(i); } +int _DEFUN(def_islower,(i), int i) { return islower(i); } +int _DEFUN(def_isgraph,(i), int i) { return isgraph(i); } +int _DEFUN(def_ispunct,(i), int i) { return ispunct(i); } +int _DEFUN(def_tolower,(i), int i) { return tolower(i); } +int _DEFUN(def_toupper,(i), int i) { return toupper(i); } +int _DEFUN(def_toascii,(i), int i) { return toascii(i); } +int _DEFUN(def__tolower,(i), int i) { return _tolower(i); } +int _DEFUN(def__toupper,(i), int i) { return _toupper(i); } + +extern int inacc; +void +_DEFUN(test_is_set,(func, name, p), + int (*func)() _AND + char *name _AND + int *p) +{ + int i; + newfunc(name); + for (i = 0; i < 255; i++) { + int r = func(i) != 0; + line(i); + test_is_single(i); + if (*p != r) + { + printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p); + inacc++; + } + } +} +void +_DEFUN(test_to_set,(func, name, p, low, high), + int (*func)() _AND + char *name _AND + int *p _AND + int low _AND + int high) +{ + int i; + newfunc(name); + for (i = low; i <= high; i++) { + int r = func(i) ; + line(i); + test_is_single(i); + if (*p != r) + { + printf("%s:%d wrong result, is %d shouldbe %d\n", name, i, r,*p); + inacc++; + } + } +} + + +#undef isascii +#undef iscntrl +#undef isspace +#undef isprint +#undef isalnum +#undef isdigit +#undef isxdigit +#undef isalpha +#undef isupper +#undef islower +#undef isgraph +#undef ispunct +#undef tolower +#undef toupper +#undef toascii +#undef _tolower +#undef _toupper + +void +_DEFUN_VOID(test_is) +{ + test_is_set(def_isalnum, "isalnum define", &myalnum); + test_is_set(def_isalpha, "isalpha define", &myalpha); + test_is_set(def_isascii, "isascii define", &myascii); + test_is_set(def_iscntrl, "iscntrl define", &mycntrl); + test_is_set(def_isdigit, "isdigit define", &mydigit); + test_is_set(def_isgraph, "isgraph define", &mygraph); + test_is_set(def_islower, "islower define", &mylower); + test_is_set(def_isprint, "isprint define", &myprint); + test_is_set(def_ispunct, "ispunct define", &mypunct); + test_is_set(def_isspace, "isspace define", &myspace); + test_is_set(def_isupper, "isupper define", &myupper); + test_is_set(def_isxdigit, "isxdigit define", &myxdigit); + test_is_set(isalnum, "isalnum function", &myalnum); + test_is_set(isalpha, "isalpha function", &myalpha); + test_is_set(isascii, "isascii function", &myascii); + test_is_set(iscntrl, "iscntrl function", &mycntrl); + test_is_set(isgraph, "isgraph function", &mygraph); + test_is_set(islower, "islower function", &mylower); + test_is_set(isprint, "isprint function", &myprint); + test_is_set(ispunct, "ispunct function", &mypunct); + test_is_set(isspace, "isspace function", &myspace); + test_is_set(isupper, "isupper function", &myupper); + test_is_set(isxdigit, "isxdigit function", &myxdigit); + test_to_set(_tolower, "_tolower function", &setlower, 'A','Z'); + test_to_set(_toupper, "_toupper function", &setupper, 'a','z'); + test_to_set(def__tolower, "_tolower define", &setlower, 'A','Z'); + test_to_set(def__toupper, "_toupper define", &setupper, 'a','z'); + test_to_set(def_toascii, "toascii define", &setascii, 0,255); + test_to_set(def_tolower, "tolower define", &setlower, 0,255); + test_to_set(def_toupper, "toupper define", &setupper, 0,255); + test_to_set(toascii, "toascii function", &setascii, 0,255); + test_to_set(tolower, "tolower function", &setlower, 0,255); + test_to_set(toupper, "toupper function", &setupper, 0,255); +} diff --git a/newlib/libm/test/y0_vec.c b/newlib/libm/test/y0_vec.c new file mode 100644 index 000000000..9fae15418 --- /dev/null +++ b/newlib/libm/test/y0_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type y0_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0xc03613fa, 0xd0072757, 0x3cd19000, 0x00000000}, /* -22.0780=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0xc0080b2c, 0x5336d29e, 0x3f847ae1, 0x47ae16ad}, /* -3.00545=f(0.01000)*/ +{64, 0,123,__LINE__, 0xc00482fb, 0x0dc4d2d8, 0x3f947ae1, 0x47ae1594}, /* -2.56395=f(0.02000)*/ +{64, 0,123,__LINE__, 0xc00271a2, 0xcda61095, 0x3f9eb851, 0xeb851fd2}, /* -2.30548=f(0.03000)*/ +{64, 0,123,__LINE__, 0xc000f9a7, 0x00acda15, 0x3fa47ae1, 0x47ae1508}, /* -2.12190=f(0.04000)*/ +{64, 0,123,__LINE__, 0xbfffab42, 0x0311f75e, 0x3fa99999, 0x99999a27}, /* -1.97931=f(0.05000)*/ +{64, 0,123,__LINE__, 0xbffdcd51, 0x596ca896, 0x3faeb851, 0xeb851f46}, /* -1.86262=f(0.06000)*/ +{64, 0,123,__LINE__, 0xbffc3885, 0x010279bd, 0x3fb1eb85, 0x1eb85232}, /* -1.76379=f(0.07000)*/ +{64, 0,123,__LINE__, 0xbffad931, 0x2cb8fd00, 0x3fb47ae1, 0x47ae14c1}, /* -1.67802=f(0.08000)*/ +{64, 0,123,__LINE__, 0xbff9a2a6, 0xd440e8ee, 0x3fb70a3d, 0x70a3d750}, /* -1.60221=f(0.09000)*/ +{64, 0,123,__LINE__, 0xbff88c3d, 0xd3fcf172, 0x3fb99999, 0x999999df}, /* -1.53423=f(0.10000)*/ +{64, 0,123,__LINE__, 0xbff78fca, 0x39b900f4, 0x3fbc28f5, 0xc28f5c6e}, /* -1.47260=f(0.11000)*/ +{64, 0,123,__LINE__, 0xbff6a8be, 0x0dfec480, 0x3fbeb851, 0xeb851efd}, /* -1.41619=f(0.12000)*/ +{64, 0,123,__LINE__, 0xbff5d3a4, 0x60c3d140, 0x3fc0a3d7, 0x0a3d70c6}, /* -1.36417=f(0.13000)*/ +{64, 0,123,__LINE__, 0xbff50dcd, 0xc13e44cf, 0x3fc1eb85, 0x1eb8520e}, /* -1.31587=f(0.14000)*/ +{64, 0,123,__LINE__, 0xbff45519, 0x9a9aa235, 0x3fc33333, 0x33333356}, /* -1.27077=f(0.15000)*/ +{64, 0,123,__LINE__, 0xbff3a7d1, 0x3d22b9d9, 0x3fc47ae1, 0x47ae149e}, /* -1.22847=f(0.16000)*/ +{64, 0,123,__LINE__, 0xbff3048e, 0x21fbf0fd, 0x3fc5c28f, 0x5c28f5e6}, /* -1.18861=f(0.17000)*/ +{64, 0,123,__LINE__, 0xbff26a27, 0x8d77c68f, 0x3fc70a3d, 0x70a3d72e}, /* -1.15091=f(0.18000)*/ +{64, 0,123,__LINE__, 0xbff1d7a5, 0x2abcff8e, 0x3fc851eb, 0x851eb876}, /* -1.11514=f(0.19000)*/ +{64, 0,123,__LINE__, 0xbff14c35, 0x1831ea87, 0x3fc99999, 0x999999be}, /* -1.08110=f(0.20000)*/ +{64, 0,123,__LINE__, 0xbff0c724, 0x62650605, 0x3fcae147, 0xae147b06}, /* -1.04861=f(0.21000)*/ +{64, 0,123,__LINE__, 0xbff047d9, 0x3f6f6495, 0x3fcc28f5, 0xc28f5c4e}, /* -1.01754=f(0.22000)*/ +{64, 0,123,__LINE__, 0xbfef9b9d, 0x260f32c2, 0x3fcd70a3, 0xd70a3d96}, /* -0.98774=f(0.23000)*/ +{64, 0,123,__LINE__, 0xbfeeb120, 0xce71adbb, 0x3fceb851, 0xeb851ede}, /* -0.95912=f(0.24000)*/ +{64, 0,123,__LINE__, 0xbfedcf72, 0x3b7d21da, 0x3fd00000, 0x00000013}, /* -0.93157=f(0.25000)*/ +{63, 0,123,__LINE__, 0xbfecf5de, 0x5d066c27, 0x3fd0a3d7, 0x0a3d70b7}, /* -0.90501=f(0.26000)*/ +{64, 0,123,__LINE__, 0xbfec23c6, 0xa684d2d6, 0x3fd147ae, 0x147ae15b}, /* -0.87936=f(0.27000)*/ +{64, 0,123,__LINE__, 0xbfeb589e, 0x10edc97e, 0x3fd1eb85, 0x1eb851ff}, /* -0.85456=f(0.28000)*/ +{64, 0,123,__LINE__, 0xbfea93e6, 0xa3324d2a, 0x3fd28f5c, 0x28f5c2a3}, /* -0.83055=f(0.29000)*/ +{61, 0,123,__LINE__, 0xbfe9d52f, 0x65f30ccc, 0x3fd33333, 0x33333347}, /* -0.80727=f(0.30000)*/ +{64, 0,123,__LINE__, 0xbfe91c12, 0xad4d3d82, 0x3fd3d70a, 0x3d70a3eb}, /* -0.78467=f(0.31000)*/ +{64, 0,123,__LINE__, 0xbfe86834, 0xa854a417, 0x3fd47ae1, 0x47ae148f}, /* -0.76272=f(0.32000)*/ +{64, 0,123,__LINE__, 0xbfe7b942, 0x2959afbe, 0x3fd51eb8, 0x51eb8533}, /* -0.74136=f(0.33000)*/ +{64, 0,123,__LINE__, 0xbfe70eef, 0x9ccc2e23, 0x3fd5c28f, 0x5c28f5d7}, /* -0.72057=f(0.34000)*/ +{64, 0,123,__LINE__, 0xbfe668f8, 0x269cb97a, 0x3fd66666, 0x6666667b}, /* -0.70031=f(0.35000)*/ +{64, 0,123,__LINE__, 0xbfe5c71c, 0xdf9924d4, 0x3fd70a3d, 0x70a3d71f}, /* -0.68055=f(0.36000)*/ +{64, 0,123,__LINE__, 0xbfe52924, 0x2d8054ea, 0x3fd7ae14, 0x7ae147c3}, /* -0.66127=f(0.37000)*/ +{64, 0,123,__LINE__, 0xbfe48ed9, 0x3185c09e, 0x3fd851eb, 0x851eb867}, /* -0.64243=f(0.38000)*/ +{64, 0,123,__LINE__, 0xbfe3f80b, 0x49c44373, 0x3fd8f5c2, 0x8f5c290b}, /* -0.62402=f(0.39000)*/ +{64, 0,123,__LINE__, 0xbfe3648d, 0xa2beeda8, 0x3fd99999, 0x999999af}, /* -0.60602=f(0.40000)*/ +{64, 0,123,__LINE__, 0xbfe2d436, 0xd68e0fe9, 0x3fda3d70, 0xa3d70a53}, /* -0.58840=f(0.41000)*/ +{63, 0,123,__LINE__, 0xbfe246e0, 0x97bdb58b, 0x3fdae147, 0xae147af7}, /* -0.57115=f(0.42000)*/ +{63, 0,123,__LINE__, 0xbfe1bc67, 0x66365027, 0x3fdb851e, 0xb851eb9b}, /* -0.55424=f(0.43000)*/ +{64, 0,123,__LINE__, 0xbfe134aa, 0x4ccc8542, 0x3fdc28f5, 0xc28f5c3f}, /* -0.53767=f(0.44000)*/ +{63, 0,123,__LINE__, 0xbfe0af8a, 0xa64cf89e, 0x3fdccccc, 0xcccccce3}, /* -0.52142=f(0.45000)*/ +{64, 0,123,__LINE__, 0xbfe02ceb, 0xe907006b, 0x3fdd70a3, 0xd70a3d87}, /* -0.50548=f(0.46000)*/ +{61, 0,123,__LINE__, 0xbfdf5966, 0xeffea91b, 0x3fde147a, 0xe147ae2b}, /* -0.48983=f(0.47000)*/ +{64, 0,123,__LINE__, 0xbfde5d90, 0xf2270065, 0x3fdeb851, 0xeb851ecf}, /* -0.47446=f(0.48000)*/ +{64, 0,123,__LINE__, 0xbfdd6627, 0x5ee2acd4, 0x3fdf5c28, 0xf5c28f73}, /* -0.45935=f(0.49000)*/ +{64, 0,123,__LINE__, 0xbfdc72fe, 0xb3b7b883, 0x3fe00000, 0x0000000b}, /* -0.44451=f(0.50000)*/ +{61, 0,123,__LINE__, 0xbfdb83ee, 0x28938e2b, 0x3fe051eb, 0x851eb85d}, /* -0.42992=f(0.51000)*/ +{64, 0,123,__LINE__, 0xbfda98cf, 0x78f2e6a7, 0x3fe0a3d7, 0x0a3d70af}, /* -0.41557=f(0.52000)*/ +{64, 0,123,__LINE__, 0xbfd9b17e, 0xb2472a4b, 0x3fe0f5c2, 0x8f5c2901}, /* -0.40145=f(0.53000)*/ +{63, 0,123,__LINE__, 0xbfd8cdda, 0x0702844f, 0x3fe147ae, 0x147ae153}, /* -0.38756=f(0.54000)*/ +{64, 0,123,__LINE__, 0xbfd7edc1, 0xa5c749e1, 0x3fe19999, 0x999999a5}, /* -0.37388=f(0.55000)*/ +{64, 0,123,__LINE__, 0xbfd71117, 0x9447ee75, 0x3fe1eb85, 0x1eb851f7}, /* -0.36041=f(0.56000)*/ +{64, 0,123,__LINE__, 0xbfd637bf, 0x8d72fc1c, 0x3fe23d70, 0xa3d70a49}, /* -0.34715=f(0.57000)*/ +{64, 0,123,__LINE__, 0xbfd5619e, 0xe292c8ed, 0x3fe28f5c, 0x28f5c29b}, /* -0.33408=f(0.58000)*/ +{62, 0,123,__LINE__, 0xbfd48e9c, 0x5f133676, 0x3fe2e147, 0xae147aed}, /* -0.32120=f(0.59000)*/ +{64, 0,123,__LINE__, 0xbfd3bea0, 0x2ea8f036, 0x3fe33333, 0x3333333f}, /* -0.30850=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbfd2f193, 0xc59d8f6f, 0x3fe3851e, 0xb851eb91}, /* -0.29599=f(0.61000)*/ +{60, 0,123,__LINE__, 0xbfd22761, 0xcb0af398, 0x3fe3d70a, 0x3d70a3e3}, /* -0.28365=f(0.62000)*/ +{64, 0,123,__LINE__, 0xbfd15ff6, 0x04d6244b, 0x3fe428f5, 0xc28f5c35}, /* -0.27148=f(0.63000)*/ +{64, 0,123,__LINE__, 0xbfd09b3d, 0x453f55ca, 0x3fe47ae1, 0x47ae1487}, /* -0.25947=f(0.64000)*/ +{63, 0,123,__LINE__, 0xbfcfb24a, 0xb3c2891b, 0x3fe4cccc, 0xccccccd9}, /* -0.24762=f(0.65000)*/ +{60, 0,123,__LINE__, 0xbfce3339, 0xf7fc5219, 0x3fe51eb8, 0x51eb852b}, /* -0.23593=f(0.66000)*/ +{64, 0,123,__LINE__, 0xbfccb927, 0x83f826c9, 0x3fe570a3, 0xd70a3d7d}, /* -0.22440=f(0.67000)*/ +{61, 0,123,__LINE__, 0xbfcb43f4, 0x23eb43f4, 0x3fe5c28f, 0x5c28f5cf}, /* -0.21301=f(0.68000)*/ +{64, 0,123,__LINE__, 0xbfc9d382, 0x2a8d95b6, 0x3fe6147a, 0xe147ae21}, /* -0.20176=f(0.69000)*/ +{63, 0,123,__LINE__, 0xbfc867b5, 0x59ffc6db, 0x3fe66666, 0x66666673}, /* -0.19066=f(0.70000)*/ +{56, 0,123,__LINE__, 0xbfc70072, 0xce567b80, 0x3fe6b851, 0xeb851ec5}, /* -0.17970=f(0.71000)*/ +{63, 0,123,__LINE__, 0xbfc59da0, 0xe9a74147, 0x3fe70a3d, 0x70a3d717}, /* -0.16887=f(0.72000)*/ +{63, 0,123,__LINE__, 0xbfc43f27, 0x41772e25, 0x3fe75c28, 0xf5c28f69}, /* -0.15817=f(0.73000)*/ +{63, 0,123,__LINE__, 0xbfc2e4ee, 0x8d6e34f7, 0x3fe7ae14, 0x7ae147bb}, /* -0.14761=f(0.74000)*/ +{63, 0,123,__LINE__, 0xbfc18ee0, 0x9734f206, 0x3fe80000, 0x0000000d}, /* -0.13717=f(0.75000)*/ +{63, 0,123,__LINE__, 0xbfc03ce8, 0x2b6521ad, 0x3fe851eb, 0x851eb85f}, /* -0.12685=f(0.76000)*/ +{61, 0,123,__LINE__, 0xbfbddde2, 0x16ee44c4, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.11666=f(0.77000)*/ +{63, 0,123,__LINE__, 0xbfbb49cf, 0xc131b14f, 0x3fe8f5c2, 0x8f5c2903}, /* -0.10659=f(0.78000)*/ +{62, 0,123,__LINE__, 0xbfb8bd74, 0x5eb81ab8, 0x3fe947ae, 0x147ae155}, /* -0.09664=f(0.79000)*/ +{61, 0,123,__LINE__, 0xbfb638ac, 0x9857e6d4, 0x3fe99999, 0x999999a7}, /* -0.08680=f(0.80000)*/ +{60, 0,123,__LINE__, 0xbfb3bb56, 0xa0f5dce9, 0x3fe9eb85, 0x1eb851f9}, /* -0.07707=f(0.81000)*/ +{59, 0,123,__LINE__, 0xbfb14552, 0x2135f8f0, 0x3fea3d70, 0xa3d70a4b}, /* -0.06746=f(0.82000)*/ +{61, 0,123,__LINE__, 0xbfadad00, 0x48d1344d, 0x3fea8f5c, 0x28f5c29d}, /* -0.05796=f(0.83000)*/ +{58, 0,123,__LINE__, 0xbfa8dd86, 0x0d3a74e4, 0x3feae147, 0xae147aef}, /* -0.04856=f(0.84000)*/ +{61, 0,123,__LINE__, 0xbfa41bfc, 0xc78b837e, 0x3feb3333, 0x33333341}, /* -0.03927=f(0.85000)*/ +{59, 0,123,__LINE__, 0xbf9ed05c, 0x1f5d00d4, 0x3feb851e, 0xb851eb93}, /* -0.03009=f(0.86000)*/ +{57, 0,123,__LINE__, 0xbf9583cb, 0x7f59a6c6, 0x3febd70a, 0x3d70a3e5}, /* -0.02101=f(0.87000)*/ +{57, 0,123,__LINE__, 0xbf88a3c7, 0x5dfcb6c0, 0x3fec28f5, 0xc28f5c37}, /* -0.01203=f(0.88000)*/ +{55, 0,123,__LINE__, 0xbf69d226, 0x276b5330, 0x3fec7ae1, 0x47ae1489}, /* -0.00315=f(0.89000)*/ +{57, 0,123,__LINE__, 0x3f770db5, 0x0ee194b8, 0x3feccccc, 0xccccccdb}, /* 0.00562=f(0.90000)*/ +{59, 0,123,__LINE__, 0x3f8d4f15, 0x757ba360, 0x3fed1eb8, 0x51eb852d}, /* 0.01431=f(0.91000)*/ +{60, 0,123,__LINE__, 0x3f977268, 0x67a99a82, 0x3fed70a3, 0xd70a3d7f}, /* 0.02289=f(0.92000)*/ +{61, 0,123,__LINE__, 0x3fa0122b, 0xda106701, 0x3fedc28f, 0x5c28f5d1}, /* 0.03138=f(0.93000)*/ +{57, 0,123,__LINE__, 0x3fa45ed3, 0x6a0180b8, 0x3fee147a, 0xe147ae23}, /* 0.03978=f(0.94000)*/ +{60, 0,123,__LINE__, 0x3fa89f50, 0x75b2c684, 0x3fee6666, 0x66666675}, /* 0.04809=f(0.95000)*/ +{60, 0,123,__LINE__, 0x3facd3c7, 0x19481690, 0x3feeb851, 0xeb851ec7}, /* 0.05630=f(0.96000)*/ +{62, 0,123,__LINE__, 0x3fb07e2d, 0x0606b9d8, 0x3fef0a3d, 0x70a3d719}, /* 0.06442=f(0.97000)*/ +{61, 0,123,__LINE__, 0x3fb28c95, 0x5852b1f3, 0x3fef5c28, 0xf5c28f6b}, /* 0.07245=f(0.98000)*/ +{61, 0,123,__LINE__, 0x3fb4952c, 0x92323b12, 0x3fefae14, 0x7ae147bd}, /* 0.08040=f(0.99000)*/ +{60, 0,123,__LINE__, 0x3fb69802, 0x26f35936, 0x3ff00000, 0x00000007}, /* 0.08825=f(1.00000)*/ +{61, 0,123,__LINE__, 0x3fb89524, 0xf5756983, 0x3ff028f5, 0xc28f5c30}, /* 0.09602=f(1.01000)*/ +{61, 0,123,__LINE__, 0x3fba8ca3, 0x4ebf2953, 0x3ff051eb, 0x851eb859}, /* 0.10370=f(1.02000)*/ +{55, 0,123,__LINE__, 0x3fbc7e8a, 0xfc424cfc, 0x3ff07ae1, 0x47ae1482}, /* 0.11130=f(1.03000)*/ +{60, 0,123,__LINE__, 0x3fbe6ae9, 0x45d171b7, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.11881=f(1.04000)*/ +{60, 0,123,__LINE__, 0x3fc028e5, 0x7ba671d5, 0x3ff0cccc, 0xccccccd4}, /* 0.12624=f(1.05000)*/ +{62, 0,123,__LINE__, 0x3fc1199e, 0x33053259, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.13359=f(1.06000)*/ +{55, 0,123,__LINE__, 0x3fc207a4, 0xbafdecfe, 0x3ff11eb8, 0x51eb8526}, /* 0.14085=f(1.07000)*/ +{61, 0,123,__LINE__, 0x3fc2f2fe, 0xcf4c4293, 0x3ff147ae, 0x147ae14f}, /* 0.14804=f(1.08000)*/ +{61, 0,123,__LINE__, 0x3fc3dbb1, 0xf7c61890, 0x3ff170a3, 0xd70a3d78}, /* 0.15514=f(1.09000)*/ +{62, 0,123,__LINE__, 0x3fc4c1c3, 0x8a97c191, 0x3ff19999, 0x999999a1}, /* 0.16216=f(1.10000)*/ +{61, 0,123,__LINE__, 0x3fc5a538, 0xae6635da, 0x3ff1c28f, 0x5c28f5ca}, /* 0.16910=f(1.11000)*/ +{62, 0,123,__LINE__, 0x3fc68616, 0x5c58c204, 0x3ff1eb85, 0x1eb851f3}, /* 0.17596=f(1.12000)*/ +{62, 0,123,__LINE__, 0x3fc76461, 0x620b7b60, 0x3ff2147a, 0xe147ae1c}, /* 0.18275=f(1.13000)*/ +{60, 0,123,__LINE__, 0x3fc8401e, 0x636bb4c6, 0x3ff23d70, 0xa3d70a45}, /* 0.18945=f(1.14000)*/ +{61, 0,123,__LINE__, 0x3fc91951, 0xdc7f9b60, 0x3ff26666, 0x6666666e}, /* 0.19608=f(1.15000)*/ +{59, 0,123,__LINE__, 0x3fc9f000, 0x231a10ce, 0x3ff28f5c, 0x28f5c297}, /* 0.20263=f(1.16000)*/ +{60, 0,123,__LINE__, 0x3fcac42d, 0x687bc737, 0x3ff2b851, 0xeb851ec0}, /* 0.20911=f(1.17000)*/ +{61, 0,123,__LINE__, 0x3fcb95dd, 0xbae29481, 0x3ff2e147, 0xae147ae9}, /* 0.21551=f(1.18000)*/ +{61, 0,123,__LINE__, 0x3fcc6515, 0x0707e2ea, 0x3ff30a3d, 0x70a3d712}, /* 0.22183=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{57, 0,123,__LINE__, 0x3fda3d7f, 0xedadd03e, 0x3ff921fb, 0x54442d18}, /* 0.41000=f(1.57079)*/ +{59, 0,123,__LINE__, 0x3fd503f4, 0x1f0be448, 0x400921fb, 0x54442d18}, /* 0.32836=f(3.14159)*/ +{57, 0,123,__LINE__, 0xbfd02737, 0x6bc5f94c, 0x4012d97c, 0x7f3321d2}, /* -0.25239=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbfd3bea0, 0x2ea8f107, 0x3fe33333, 0x333332ec}, /* -0.30850=f(0.60000)*/ +{62, 0,123,__LINE__, 0x3fe09412, 0xda725e0d, 0x40026666, 0x66666654}, /* 0.51807=f(2.30000)*/ +{53, 0,123,__LINE__, 0xbf9158e9, 0xc57c1cb0, 0x400fffff, 0xffffffee}, /* -0.01694=f(4.00000)*/ +{56, 0,123,__LINE__, 0xbfd50086, 0xceea16be, 0x4016cccc, 0xccccccc4}, /* -0.32815=f(5.70000)*/ +{52, 0,123,__LINE__, 0x3fb736dc, 0xb6bee4f8, 0x401d9999, 0x99999991}, /* 0.09068=f(7.40000)*/ +{58, 0,123,__LINE__, 0x3fce81cb, 0x35aa7ce0, 0x40223333, 0x3333332f}, /* 0.23833=f(9.10000)*/ +{63, 0,123,__LINE__, 0xbfc0fa4b, 0x699333e5, 0x40259999, 0x99999995}, /* -0.13263=f(10.8000)*/ +{62, 0,123,__LINE__, 0xbfc5ea59, 0xb440a95d, 0x4028ffff, 0xfffffffb}, /* -0.17121=f(12.5000)*/ +{64, 0,123,__LINE__, 0x3fc42a56, 0xd5029d97, 0x402c6666, 0x66666661}, /* 0.15754=f(14.2000)*/ +{62, 0,123,__LINE__, 0x3fbcf7b9, 0x4cdab6a4, 0x402fcccc, 0xccccccc7}, /* 0.11315=f(15.9000)*/ +{64, 0,123,__LINE__, 0xbfc5afb0, 0xfa559fa9, 0x40319999, 0x99999997}, /* -0.16942=f(17.6000)*/ +{63, 0,123,__LINE__, 0xbfaf2149, 0x60705433, 0x40334ccc, 0xccccccca}, /* -0.06080=f(19.3000)*/ +{64, 0,123,__LINE__, 0x3fc5c92b, 0xd5128a73, 0x4034ffff, 0xfffffffd}, /* 0.17020=f(21.0000)*/ +{64, 0,123,__LINE__, 0x3f8c1ae3, 0xf0289190, 0x4036b333, 0x33333330}, /* 0.01372=f(22.7000)*/ +{62, 0,123,__LINE__, 0xbfc4a662, 0x4701d3a0, 0x40386666, 0x66666663}, /* -0.16132=f(24.4000)*/ +{64, 0,123,__LINE__, 0x3f9c2b29, 0x4eeab90c, 0x403a1999, 0x99999996}, /* 0.02750=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3fc2771c, 0x9fef6e9f, 0x403bcccc, 0xccccccc9}, /* 0.14426=f(27.8000)*/ +{64, 0,123,__LINE__, 0xbfafc3a0, 0x56b6c32f, 0x403d7fff, 0xfffffffc}, /* -0.06203=f(29.5000)*/ +0,}; +test_y0(m) {run_vector_1(m,y0_vec,(char *)(y0),"y0","dd"); } diff --git a/newlib/libm/test/y0f_vec.c b/newlib/libm/test/y0f_vec.c new file mode 100644 index 000000000..5567a9f30 --- /dev/null +++ b/newlib/libm/test/y0f_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type y0f_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 0, 0,123,__LINE__, 0xc03613fa, 0xd0157475, 0x3cd19000, 0x00000000}, /* -22.0780=f(9.74915e-16)*/ +{12, 0,123,__LINE__, 0xc0080b2c, 0x65e8bb34, 0x3f847ae1, 0x47ae16ad}, /* -3.00545=f(0.01000)*/ +{14, 0,123,__LINE__, 0xc00482fb, 0x167ab8af, 0x3f947ae1, 0x47ae1594}, /* -2.56395=f(0.02000)*/ +{13, 0,123,__LINE__, 0xc00271a2, 0xce956552, 0x3f9eb851, 0xeb851fd2}, /* -2.30548=f(0.03000)*/ +{13, 0,123,__LINE__, 0xc000f9a6, 0xfbe14c40, 0x3fa47ae1, 0x47ae1508}, /* -2.12190=f(0.04000)*/ +{ 1, 0,123,__LINE__, 0xbfffab41, 0xdcf836ee, 0x3fa99999, 0x99999a27}, /* -1.97931=f(0.05000)*/ +{ 1, 0,123,__LINE__, 0xbffdcd51, 0x5f1e597e, 0x3faeb851, 0xeb851f46}, /* -1.86262=f(0.06000)*/ +{ 1, 0,123,__LINE__, 0xbffc3884, 0xecdfd9cb, 0x3fb1eb85, 0x1eb85232}, /* -1.76379=f(0.07000)*/ +{ 1, 0,123,__LINE__, 0xbffad931, 0x2e8c3a35, 0x3fb47ae1, 0x47ae14c1}, /* -1.67802=f(0.08000)*/ +{ 1, 0,123,__LINE__, 0xbff9a2a6, 0xcfb3e479, 0x3fb70a3d, 0x70a3d750}, /* -1.60221=f(0.09000)*/ +{ 1, 0,123,__LINE__, 0xbff88c3d, 0xc5e474db, 0x3fb99999, 0x999999df}, /* -1.53423=f(0.10000)*/ +{ 1, 0,123,__LINE__, 0xbff78fca, 0x3c65350b, 0x3fbc28f5, 0xc28f5c6e}, /* -1.47260=f(0.11000)*/ +{ 1, 0,123,__LINE__, 0xbff6a8be, 0x16428fd9, 0x3fbeb851, 0xeb851efd}, /* -1.41619=f(0.12000)*/ +{ 1, 0,123,__LINE__, 0xbff5d3a4, 0x54935731, 0x3fc0a3d7, 0x0a3d70c6}, /* -1.36417=f(0.13000)*/ +{ 1, 0,123,__LINE__, 0xbff50dcd, 0xd05dfb44, 0x3fc1eb85, 0x1eb8520e}, /* -1.31587=f(0.14000)*/ +{ 1, 0,123,__LINE__, 0xbff45519, 0x98afe6d4, 0x3fc33333, 0x33333356}, /* -1.27077=f(0.15000)*/ +{ 1, 0,123,__LINE__, 0xbff3a7d1, 0x55b910ee, 0x3fc47ae1, 0x47ae149e}, /* -1.22847=f(0.16000)*/ +{ 1, 0,123,__LINE__, 0xbff3048e, 0x25cc1c2c, 0x3fc5c28f, 0x5c28f5e6}, /* -1.18861=f(0.17000)*/ +{ 1, 0,123,__LINE__, 0xbff26a27, 0x8b1b9c1b, 0x3fc70a3d, 0x70a3d72e}, /* -1.15091=f(0.18000)*/ +{ 1, 0,123,__LINE__, 0xbff1d7a5, 0x382033ee, 0x3fc851eb, 0x851eb876}, /* -1.11514=f(0.19000)*/ +{ 1, 0,123,__LINE__, 0xbff14c35, 0x16c60be0, 0x3fc99999, 0x999999be}, /* -1.08110=f(0.20000)*/ +{ 1, 0,123,__LINE__, 0xbff0c724, 0x6a313a78, 0x3fcae147, 0xae147b06}, /* -1.04861=f(0.21000)*/ +{ 1, 0,123,__LINE__, 0xbff047d9, 0x39f4244d, 0x3fcc28f5, 0xc28f5c4e}, /* -1.01754=f(0.22000)*/ +{ 1, 0,123,__LINE__, 0xbfef9b9c, 0xffb1d19b, 0x3fcd70a3, 0xd70a3d96}, /* -0.98774=f(0.23000)*/ +{ 1, 0,123,__LINE__, 0xbfeeb120, 0xda8652cd, 0x3fceb851, 0xeb851ede}, /* -0.95912=f(0.24000)*/ +{ 1, 0,123,__LINE__, 0xbfedcf72, 0x39b988fd, 0x3fd00000, 0x00000013}, /* -0.93157=f(0.25000)*/ +{ 1, 0,123,__LINE__, 0xbfecf5de, 0x75169083, 0x3fd0a3d7, 0x0a3d70b7}, /* -0.90501=f(0.26000)*/ +{ 1, 0,123,__LINE__, 0xbfec23c6, 0x9cb0682c, 0x3fd147ae, 0x147ae15b}, /* -0.87936=f(0.27000)*/ +{ 1, 0,123,__LINE__, 0xbfeb589e, 0x1c5ad1cd, 0x3fd1eb85, 0x1eb851ff}, /* -0.85456=f(0.28000)*/ +{ 1, 0,123,__LINE__, 0xbfea93e6, 0xa7bacb6e, 0x3fd28f5c, 0x28f5c2a3}, /* -0.83055=f(0.29000)*/ +{ 1, 0,123,__LINE__, 0xbfe9d52f, 0x4aeef861, 0x3fd33333, 0x33333347}, /* -0.80727=f(0.30000)*/ +{ 1, 0,123,__LINE__, 0xbfe91c12, 0xa8fc5906, 0x3fd3d70a, 0x3d70a3eb}, /* -0.78467=f(0.31000)*/ +{ 1, 0,123,__LINE__, 0xbfe86834, 0xbeb85d56, 0x3fd47ae1, 0x47ae148f}, /* -0.76272=f(0.32000)*/ +{ 1, 0,123,__LINE__, 0xbfe7b942, 0x24ff37a0, 0x3fd51eb8, 0x51eb8533}, /* -0.74136=f(0.33000)*/ +{ 1, 0,123,__LINE__, 0xbfe70eef, 0xae91a21e, 0x3fd5c28f, 0x5c28f5d7}, /* -0.72057=f(0.34000)*/ +{ 1, 0,123,__LINE__, 0xbfe668f8, 0x3374bc4e, 0x3fd66666, 0x6666667b}, /* -0.70031=f(0.35000)*/ +{ 1, 0,123,__LINE__, 0xbfe5c71c, 0xe323fcc2, 0x3fd70a3d, 0x70a3d71f}, /* -0.68055=f(0.36000)*/ +{ 1, 0,123,__LINE__, 0xbfe52924, 0x31ec0a44, 0x3fd7ae14, 0x7ae147c3}, /* -0.66127=f(0.37000)*/ +{ 1, 0,123,__LINE__, 0xbfe48ed9, 0x46cd6f38, 0x3fd851eb, 0x851eb867}, /* -0.64243=f(0.38000)*/ +{ 1, 0,123,__LINE__, 0xbfe3f80b, 0x5b891d2e, 0x3fd8f5c2, 0x8f5c290b}, /* -0.62402=f(0.39000)*/ +{ 1, 0,123,__LINE__, 0xbfe3648d, 0x9d654db1, 0x3fd99999, 0x999999af}, /* -0.60602=f(0.40000)*/ +{ 1, 0,123,__LINE__, 0xbfe2d436, 0xd605ba53, 0x3fda3d70, 0xa3d70a53}, /* -0.58840=f(0.41000)*/ +{ 1, 0,123,__LINE__, 0xbfe246e0, 0xad0f08fe, 0x3fdae147, 0xae147af7}, /* -0.57115=f(0.42000)*/ +{ 1, 0,123,__LINE__, 0xbfe1bc67, 0x6ab3f013, 0x3fdb851e, 0xb851eb9b}, /* -0.55424=f(0.43000)*/ +{ 1, 0,123,__LINE__, 0xbfe134aa, 0x5b7abac2, 0x3fdc28f5, 0xc28f5c3f}, /* -0.53767=f(0.44000)*/ +{ 1, 0,123,__LINE__, 0xbfe0af8a, 0xacc5d2a3, 0x3fdccccc, 0xcccccce3}, /* -0.52142=f(0.45000)*/ +{ 1, 0,123,__LINE__, 0xbfe02ceb, 0xdabc796e, 0x3fdd70a3, 0xd70a3d87}, /* -0.50548=f(0.46000)*/ +{ 1, 0,123,__LINE__, 0xbfdf5966, 0xfb706944, 0x3fde147a, 0xe147ae2b}, /* -0.48983=f(0.47000)*/ +{ 1, 0,123,__LINE__, 0xbfde5d90, 0xfa976950, 0x3fdeb851, 0xeb851ecf}, /* -0.47446=f(0.48000)*/ +{ 1, 0,123,__LINE__, 0xbfdd6627, 0x330d2f69, 0x3fdf5c28, 0xf5c28f73}, /* -0.45935=f(0.49000)*/ +{ 1, 0,123,__LINE__, 0xbfdc72fe, 0xbcda76e8, 0x3fe00000, 0x0000000b}, /* -0.44451=f(0.50000)*/ +{ 1, 0,123,__LINE__, 0xbfdb83ee, 0x39c42d37, 0x3fe051eb, 0x851eb85d}, /* -0.42992=f(0.51000)*/ +{ 1, 0,123,__LINE__, 0xbfda98cf, 0xa0a76beb, 0x3fe0a3d7, 0x0a3d70af}, /* -0.41557=f(0.52000)*/ +{ 1, 0,123,__LINE__, 0xbfd9b17e, 0xdbcbce9f, 0x3fe0f5c2, 0x8f5c2901}, /* -0.40145=f(0.53000)*/ +{ 1, 0,123,__LINE__, 0xbfd8cdd9, 0xca3b07a2, 0x3fe147ae, 0x147ae153}, /* -0.38756=f(0.54000)*/ +{ 1, 0,123,__LINE__, 0xbfd7edc1, 0x92d90b99, 0x3fe19999, 0x999999a5}, /* -0.37388=f(0.55000)*/ +{ 1, 0,123,__LINE__, 0xbfd71117, 0x7f6f4770, 0x3fe1eb85, 0x1eb851f7}, /* -0.36041=f(0.56000)*/ +{ 1, 0,123,__LINE__, 0xbfd637bf, 0x94556efa, 0x3fe23d70, 0xa3d70a49}, /* -0.34715=f(0.57000)*/ +{ 1, 0,123,__LINE__, 0xbfd5619e, 0xf7009734, 0x3fe28f5c, 0x28f5c29b}, /* -0.33408=f(0.58000)*/ +{ 1, 0,123,__LINE__, 0xbfd48e9c, 0x74637e22, 0x3fe2e147, 0xae147aed}, /* -0.32120=f(0.59000)*/ +{ 1, 0,123,__LINE__, 0xbfd3bea0, 0x1c4bb77b, 0x3fe33333, 0x3333333f}, /* -0.30850=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0xbfd2f193, 0xab2ec86d, 0x3fe3851e, 0xb851eb91}, /* -0.29599=f(0.61000)*/ +{ 1, 0,123,__LINE__, 0xbfd22761, 0xc7dae699, 0x3fe3d70a, 0x3d70a3e3}, /* -0.28365=f(0.62000)*/ +{ 1, 0,123,__LINE__, 0xbfd15ff6, 0x04a7b8ea, 0x3fe428f5, 0xc28f5c35}, /* -0.27148=f(0.63000)*/ +{ 1, 0,123,__LINE__, 0xbfd09b3d, 0x66cfa891, 0x3fe47ae1, 0x47ae1487}, /* -0.25947=f(0.64000)*/ +{ 1, 0,123,__LINE__, 0xbfcfb24a, 0xd545e2c6, 0x3fe4cccc, 0xccccccd9}, /* -0.24762=f(0.65000)*/ +{ 1, 0,123,__LINE__, 0xbfce3339, 0xb888fa56, 0x3fe51eb8, 0x51eb852b}, /* -0.23593=f(0.66000)*/ +{ 1, 0,123,__LINE__, 0xbfccb927, 0x83ce8bbe, 0x3fe570a3, 0xd70a3d7d}, /* -0.22440=f(0.67000)*/ +{ 1, 0,123,__LINE__, 0xbfcb43f4, 0x168cfe7b, 0x3fe5c28f, 0x5c28f5cf}, /* -0.21301=f(0.68000)*/ +{ 1, 0,123,__LINE__, 0xbfc9d382, 0x45775c64, 0x3fe6147a, 0xe147ae21}, /* -0.20176=f(0.69000)*/ +{ 1, 0,123,__LINE__, 0xbfc867b5, 0x7c5223ab, 0x3fe66666, 0x66666673}, /* -0.19066=f(0.70000)*/ +{ 1, 0,123,__LINE__, 0xbfc70072, 0xd8203bf4, 0x3fe6b851, 0xeb851ec5}, /* -0.17970=f(0.71000)*/ +{ 1, 0,123,__LINE__, 0xbfc59da0, 0xa42a12f8, 0x3fe70a3d, 0x70a3d717}, /* -0.16887=f(0.72000)*/ +{ 1, 0,123,__LINE__, 0xbfc43f27, 0x334406c5, 0x3fe75c28, 0xf5c28f69}, /* -0.15817=f(0.73000)*/ +{ 1, 0,123,__LINE__, 0xbfc2e4ee, 0x82ff6855, 0x3fe7ae14, 0x7ae147bb}, /* -0.14761=f(0.74000)*/ +{ 1, 0,123,__LINE__, 0xbfc18ee0, 0x8f1c8aa5, 0x3fe80000, 0x0000000d}, /* -0.13717=f(0.75000)*/ +{ 1, 0,123,__LINE__, 0xbfc03ce8, 0x49291398, 0x3fe851eb, 0x851eb85f}, /* -0.12685=f(0.76000)*/ +{ 1, 0,123,__LINE__, 0xbfbddde2, 0x6b84be91, 0x3fe8a3d7, 0x0a3d70b1}, /* -0.11666=f(0.77000)*/ +{ 1, 0,123,__LINE__, 0xbfbb49d0, 0x84bdd24e, 0x3fe8f5c2, 0x8f5c2903}, /* -0.10659=f(0.78000)*/ +{ 1, 0,123,__LINE__, 0xbfb8bd74, 0x4bdc54de, 0x3fe947ae, 0x147ae155}, /* -0.09664=f(0.79000)*/ +{ 1, 0,123,__LINE__, 0xbfb638ac, 0x4e447aff, 0x3fe99999, 0x999999a7}, /* -0.08680=f(0.80000)*/ +{ 1, 0,123,__LINE__, 0xbfb3bb56, 0xca102bc6, 0x3fe9eb85, 0x1eb851f9}, /* -0.07707=f(0.81000)*/ +{ 1, 0,123,__LINE__, 0xbfb14552, 0x512e5b8e, 0x3fea3d70, 0xa3d70a4b}, /* -0.06746=f(0.82000)*/ +{ 1, 0,123,__LINE__, 0xbfadad00, 0xc5026e27, 0x3fea8f5c, 0x28f5c29d}, /* -0.05796=f(0.83000)*/ +{ 1, 0,123,__LINE__, 0xbfa8dd87, 0x12800ea9, 0x3feae147, 0xae147aef}, /* -0.04856=f(0.84000)*/ +{ 1, 0,123,__LINE__, 0xbfa41bfc, 0x1f1aae90, 0x3feb3333, 0x33333341}, /* -0.03927=f(0.85000)*/ +{ 1, 0,123,__LINE__, 0xbf9ed05b, 0x719fc568, 0x3feb851e, 0xb851eb93}, /* -0.03009=f(0.86000)*/ +{ 1, 0,123,__LINE__, 0xbf9583cb, 0x4ba407dc, 0x3febd70a, 0x3d70a3e5}, /* -0.02101=f(0.87000)*/ +{ 1, 0,123,__LINE__, 0xbf88a3c5, 0xc52aaf88, 0x3fec28f5, 0xc28f5c37}, /* -0.01203=f(0.88000)*/ +{ 1, 0,123,__LINE__, 0xbf69d22b, 0x911b2280, 0x3fec7ae1, 0x47ae1489}, /* -0.00315=f(0.89000)*/ +{ 0, 0,123,__LINE__, 0x3f770daf, 0x6101c668, 0x3feccccc, 0xccccccdb}, /* 0.00562=f(0.90000)*/ +{ 0, 0,123,__LINE__, 0x3f8d4f18, 0x0c831594, 0x3fed1eb8, 0x51eb852d}, /* 0.01431=f(0.91000)*/ +{ 0, 0,123,__LINE__, 0x3f977269, 0x03a31ca4, 0x3fed70a3, 0xd70a3d7f}, /* 0.02289=f(0.92000)*/ +{ 0, 0,123,__LINE__, 0x3fa0122b, 0xe928b410, 0x3fedc28f, 0x5c28f5d1}, /* 0.03138=f(0.93000)*/ +{ 0, 0,123,__LINE__, 0x3fa45ed3, 0x447d25b7, 0x3fee147a, 0xe147ae23}, /* 0.03978=f(0.94000)*/ +{ 0, 0,123,__LINE__, 0x3fa89f50, 0x415046de, 0x3fee6666, 0x66666675}, /* 0.04809=f(0.95000)*/ +{ 0, 0,123,__LINE__, 0x3facd3c6, 0x911830f6, 0x3feeb851, 0xeb851ec7}, /* 0.05630=f(0.96000)*/ +{ 0, 0,123,__LINE__, 0x3fb07e2d, 0x5511a49e, 0x3fef0a3d, 0x70a3d719}, /* 0.06442=f(0.97000)*/ +{ 0, 0,123,__LINE__, 0x3fb28c95, 0x95b125ec, 0x3fef5c28, 0xf5c28f6b}, /* 0.07245=f(0.98000)*/ +{ 0, 0,123,__LINE__, 0x3fb4952c, 0xc9b3d886, 0x3fefae14, 0x7ae147bd}, /* 0.08040=f(0.99000)*/ +{ 0, 0,123,__LINE__, 0x3fb69802, 0x2cfb60b5, 0x3ff00000, 0x00000007}, /* 0.08825=f(1.00000)*/ +{ 0, 0,123,__LINE__, 0x3fb89524, 0xe4b0c050, 0x3ff028f5, 0xc28f5c30}, /* 0.09602=f(1.01000)*/ +{ 0, 0,123,__LINE__, 0x3fba8ca2, 0xf9b15c06, 0x3ff051eb, 0x851eb859}, /* 0.10370=f(1.02000)*/ +{ 0, 0,123,__LINE__, 0x3fbc7e8a, 0x9ed79098, 0x3ff07ae1, 0x47ae1482}, /* 0.11130=f(1.03000)*/ +{ 0, 0,123,__LINE__, 0x3fbe6ae8, 0xd81c685a, 0x3ff0a3d7, 0x0a3d70ab}, /* 0.11881=f(1.04000)*/ +{ 0, 0,123,__LINE__, 0x3fc028e5, 0x1ecaf482, 0x3ff0cccc, 0xccccccd4}, /* 0.12624=f(1.05000)*/ +{ 0, 0,123,__LINE__, 0x3fc1199d, 0xd8c1ca89, 0x3ff0f5c2, 0x8f5c28fd}, /* 0.13359=f(1.06000)*/ +{ 0, 0,123,__LINE__, 0x3fc207a5, 0x00967a0c, 0x3ff11eb8, 0x51eb8526}, /* 0.14085=f(1.07000)*/ +{ 0, 0,123,__LINE__, 0x3fc2f2ff, 0x0ac8da61, 0x3ff147ae, 0x147ae14f}, /* 0.14804=f(1.08000)*/ +{ 0, 0,123,__LINE__, 0x3fc3dbb2, 0x2de590c0, 0x3ff170a3, 0xd70a3d78}, /* 0.15514=f(1.09000)*/ +{ 0, 0,123,__LINE__, 0x3fc4c1c3, 0x993e54f7, 0x3ff19999, 0x999999a1}, /* 0.16216=f(1.10000)*/ +{ 0, 0,123,__LINE__, 0x3fc5a538, 0x9e473ea3, 0x3ff1c28f, 0x5c28f5ca}, /* 0.16910=f(1.11000)*/ +{ 0, 0,123,__LINE__, 0x3fc68616, 0x65138df1, 0x3ff1eb85, 0x1eb851f3}, /* 0.17596=f(1.12000)*/ +{ 0, 0,123,__LINE__, 0x3fc76461, 0x39214d4f, 0x3ff2147a, 0xe147ae1c}, /* 0.18275=f(1.13000)*/ +{ 0, 0,123,__LINE__, 0x3fc8401e, 0x81b1b3fd, 0x3ff23d70, 0xa3d70a45}, /* 0.18945=f(1.14000)*/ +{ 0, 0,123,__LINE__, 0x3fc91951, 0xc2045f8e, 0x3ff26666, 0x6666666e}, /* 0.19608=f(1.15000)*/ +{ 0, 0,123,__LINE__, 0x3fc9efff, 0xddaaef74, 0x3ff28f5c, 0x28f5c297}, /* 0.20263=f(1.16000)*/ +{ 0, 0,123,__LINE__, 0x3fcac42d, 0x488344e0, 0x3ff2b851, 0xeb851ec0}, /* 0.20911=f(1.17000)*/ +{ 0, 0,123,__LINE__, 0x3fcb95dd, 0x8a0f6a44, 0x3ff2e147, 0xae147ae9}, /* 0.21551=f(1.18000)*/ +{ 0, 0,123,__LINE__, 0x3fcc6515, 0x566cfdce, 0x3ff30a3d, 0x70a3d712}, /* 0.22183=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 0, 0,123,__LINE__, 0x3fda3d7f, 0xe8da69b9, 0x3ff921fb, 0x54442d18}, /* 0.41000=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0x3fd503f3, 0xfb09862e, 0x400921fb, 0x54442d18}, /* 0.32836=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0xbfd02737, 0xc250c8a7, 0x4012d97c, 0x7f3321d2}, /* -0.25239=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0xbfd3bea0, 0x1c4bb77b, 0x3fe33333, 0x333332ec}, /* -0.30850=f(0.60000)*/ +{ 0, 0,123,__LINE__, 0x3fe09412, 0xdcf4aa39, 0x40026666, 0x66666654}, /* 0.51807=f(2.30000)*/ +{ 0, 0,123,__LINE__, 0xbf9158e6, 0x2d7ad280, 0x400fffff, 0xffffffee}, /* -0.01694=f(4.00000)*/ +{10, 0,123,__LINE__, 0xbfd50086, 0x992c5a9f, 0x4016cccc, 0xccccccc4}, /* -0.32815=f(5.70000)*/ +{ 9, 0,123,__LINE__, 0x3fb736e8, 0x14d0c29c, 0x401d9999, 0x99999991}, /* 0.09068=f(7.40000)*/ +{ 0, 0,123,__LINE__, 0x3fce81cb, 0x425ee3a4, 0x40223333, 0x3333332f}, /* 0.23833=f(9.10000)*/ +{ 0, 0,123,__LINE__, 0xbfc0fa4a, 0xce88dd87, 0x40259999, 0x99999995}, /* -0.13263=f(10.8000)*/ +{ 0, 0,123,__LINE__, 0xbfc5ea5a, 0x3f977d63, 0x4028ffff, 0xfffffffb}, /* -0.17121=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0x3fc42a55, 0xca6bbeaa, 0x402c6666, 0x66666661}, /* 0.15754=f(14.2000)*/ +{ 0, 0,123,__LINE__, 0x3fbcf7bc, 0x29132ab3, 0x402fcccc, 0xccccccc7}, /* 0.11315=f(15.9000)*/ +{ 0, 0,123,__LINE__, 0xbfc5afb0, 0xb91e5ad2, 0x40319999, 0x99999997}, /* -0.16942=f(17.6000)*/ +{ 9, 0,123,__LINE__, 0xbfaf2151, 0xaaebb221, 0x40334ccc, 0xccccccca}, /* -0.06080=f(19.3000)*/ +{10, 0,123,__LINE__, 0x3fc5c92b, 0xac925867, 0x4034ffff, 0xfffffffd}, /* 0.17020=f(21.0000)*/ +{ 0, 0,123,__LINE__, 0x3f8c1ae5, 0x97a54388, 0x4036b333, 0x33333330}, /* 0.01372=f(22.7000)*/ +{ 0, 0,123,__LINE__, 0xbfc4a662, 0x75aefccb, 0x40386666, 0x66666663}, /* -0.16132=f(24.4000)*/ +{ 9, 0,123,__LINE__, 0x3f9c2b22, 0xd169e40f, 0x403a1999, 0x99999996}, /* 0.02750=f(26.1000)*/ +{ 0, 0,123,__LINE__, 0x3fc2771d, 0x63e62eec, 0x403bcccc, 0xccccccc9}, /* 0.14426=f(27.8000)*/ +{ 0, 0,123,__LINE__, 0xbfafc39b, 0xf28f96ed, 0x403d7fff, 0xfffffffc}, /* -0.06203=f(29.5000)*/ +0,}; +test_y0f(m) {run_vector_1(m,y0f_vec,(char *)(y0f),"y0f","ff"); } diff --git a/newlib/libm/test/y1_vec.c b/newlib/libm/test/y1_vec.c new file mode 100644 index 000000000..3cb549749 --- /dev/null +++ b/newlib/libm/test/y1_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type y1_vec[] = { +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{64, 0,123,__LINE__, 0xc3028f34, 0x51ccc8e4, 0x3cd19000, 0x00000000}, /* -6.53001e+14=f(9.74915e-16)*/ +{64, 0,123,__LINE__, 0xc04fd6dc, 0x3e334e38, 0x3f847ae1, 0x47ae16ad}, /* -63.6785=f(0.01000)*/ +{64, 0,123,__LINE__, 0xc03fdc1c, 0xb0eef4ea, 0x3f947ae1, 0x47ae1594}, /* -31.8598=f(0.02000)*/ +{64, 0,123,__LINE__, 0xc0354290, 0xb7c32631, 0x3f9eb851, 0xeb851fd2}, /* -21.2600=f(0.03000)*/ +{64, 0,123,__LINE__, 0xc02fedb9, 0xe607ef4f, 0x3fa47ae1, 0x47ae1508}, /* -15.9643=f(0.04000)*/ +{64, 0,123,__LINE__, 0xc0299467, 0xe5a18b39, 0x3fa99999, 0x99999a27}, /* -12.7898=f(0.05000)*/ +{64, 0,123,__LINE__, 0xc0255a01, 0x0c0e9f0b, 0x3faeb851, 0xeb851f46}, /* -10.6757=f(0.06000)*/ +{64, 0,123,__LINE__, 0xc02255c1, 0x41fbfbf0, 0x3fb1eb85, 0x1eb85232}, /* -9.16749=f(0.07000)*/ +{64, 0,123,__LINE__, 0xc0201349, 0x6e9843f8, 0x3fb47ae1, 0x47ae14c1}, /* -8.03767=f(0.08000)*/ +{64, 0,123,__LINE__, 0xc01ca3e9, 0xbb27878f, 0x3fb70a3d, 0x70a3d750}, /* -7.16007=f(0.09000)*/ +{64, 0,123,__LINE__, 0xc019d5f7, 0x4698d559, 0x3fb99999, 0x999999df}, /* -6.45895=f(0.10000)*/ +{64, 0,123,__LINE__, 0xc0178b61, 0xd24a2160, 0x3fbc28f5, 0xc28f5c6e}, /* -5.88611=f(0.11000)*/ +{64, 0,123,__LINE__, 0xc015a344, 0x4a03f79e, 0x3fbeb851, 0xeb851efd}, /* -5.40944=f(0.12000)*/ +{64, 0,123,__LINE__, 0xc01406d9, 0xbe1b5f10, 0x3fc0a3d7, 0x0a3d70c6}, /* -5.00669=f(0.13000)*/ +{64, 0,123,__LINE__, 0xc012a5df, 0x770b6f6d, 0x3fc1eb85, 0x1eb8520e}, /* -4.66198=f(0.14000)*/ +{64, 0,123,__LINE__, 0xc0117469, 0x70206659, 0x3fc33333, 0x33333356}, /* -4.36368=f(0.15000)*/ +{64, 0,123,__LINE__, 0xc0106987, 0x29e4663a, 0x3fc47ae1, 0x47ae149e}, /* -4.10305=f(0.16000)*/ +{64, 0,123,__LINE__, 0xc00efcc6, 0x1239add3, 0x3fc5c28f, 0x5c28f5e6}, /* -3.87342=f(0.17000)*/ +{64, 0,123,__LINE__, 0xc00d5b59, 0x31f511ee, 0x3fc70a3d, 0x70a3d72e}, /* -3.66960=f(0.18000)*/ +{64, 0,123,__LINE__, 0xc00be664, 0x31944804, 0x3fc851eb, 0x851eb876}, /* -3.48749=f(0.19000)*/ +{64, 0,123,__LINE__, 0xc00a9731, 0x8e2c8b12, 0x3fc99999, 0x999999be}, /* -3.32382=f(0.20000)*/ +{64, 0,123,__LINE__, 0xc0096853, 0x558ea2d0, 0x3fcae147, 0xae147b06}, /* -3.17594=f(0.21000)*/ +{64, 0,123,__LINE__, 0xc0085558, 0xa9b5bffa, 0x3fcc28f5, 0xc28f5c4e}, /* -3.04167=f(0.22000)*/ +{64, 0,123,__LINE__, 0xc0075a96, 0xb404b99e, 0x3fcd70a3, 0xd70a3d96}, /* -2.91923=f(0.23000)*/ +{64, 0,123,__LINE__, 0xc00674ff, 0x5ccd6bf8, 0x3fceb851, 0xeb851ede}, /* -2.80712=f(0.24000)*/ +{64, 0,123,__LINE__, 0xc005a201, 0xec26d03b, 0x3fd00000, 0x00000013}, /* -2.70410=f(0.25000)*/ +{64, 0,123,__LINE__, 0xc004df72, 0xe8cf58bb, 0x3fd0a3d7, 0x0a3d70b7}, /* -2.60910=f(0.26000)*/ +{64, 0,123,__LINE__, 0xc0042b79, 0x54525687, 0x3fd147ae, 0x147ae15b}, /* -2.52122=f(0.27000)*/ +{64, 0,123,__LINE__, 0xc003847f, 0xed0a3f74, 0x3fd1eb85, 0x1eb851ff}, /* -2.43969=f(0.28000)*/ +{64, 0,123,__LINE__, 0xc002e929, 0x7d58868e, 0x3fd28f5c, 0x28f5c2a3}, /* -2.36384=f(0.29000)*/ +{64, 0,123,__LINE__, 0xc0025847, 0x81bd5896, 0x3fd33333, 0x33333347}, /* -2.29310=f(0.30000)*/ +{64, 0,123,__LINE__, 0xc001d0d2, 0x9e89a058, 0x3fd3d70a, 0x3d70a3eb}, /* -2.22696=f(0.31000)*/ +{64, 0,123,__LINE__, 0xc00151e4, 0x7fb8d6a3, 0x3fd47ae1, 0x47ae148f}, /* -2.16498=f(0.32000)*/ +{64, 0,123,__LINE__, 0xc000dab2, 0xd6195bcc, 0x3fd51eb8, 0x51eb8533}, /* -2.10678=f(0.33000)*/ +{64, 0,123,__LINE__, 0xc0006a8b, 0x37002a86, 0x3fd5c28f, 0x5c28f5d7}, /* -2.05202=f(0.34000)*/ +{64, 0,123,__LINE__, 0xc00000cf, 0xb133ff94, 0x3fd66666, 0x6666667b}, /* -2.00039=f(0.35000)*/ +{64, 0,123,__LINE__, 0xbfff39e7, 0xe79ec9ca, 0x3fd70a3d, 0x70a3d71f}, /* -1.95163=f(0.36000)*/ +{64, 0,123,__LINE__, 0xbffe7cf5, 0xd6f1bcf2, 0x3fd7ae14, 0x7ae147c3}, /* -1.90550=f(0.37000)*/ +{64, 0,123,__LINE__, 0xbffdc9e9, 0x8043d492, 0x3fd851eb, 0x851eb867}, /* -1.86179=f(0.38000)*/ +{64, 0,123,__LINE__, 0xbffd1ffa, 0x43ee5bc8, 0x3fd8f5c2, 0x8f5c290b}, /* -1.82030=f(0.39000)*/ +{64, 0,123,__LINE__, 0xbffc7e73, 0xaf48021c, 0x3fd99999, 0x999999af}, /* -1.78087=f(0.40000)*/ +{64, 0,123,__LINE__, 0xbffbe4b3, 0x0580d476, 0x3fda3d70, 0xa3d70a53}, /* -1.74333=f(0.41000)*/ +{64, 0,123,__LINE__, 0xbffb5225, 0x22c20732, 0x3fdae147, 0xae147af7}, /* -1.70755=f(0.42000)*/ +{64, 0,123,__LINE__, 0xbffac644, 0xaadd5200, 0x3fdb851e, 0xb851eb9b}, /* -1.67340=f(0.43000)*/ +{64, 0,123,__LINE__, 0xbffa4098, 0x7784512a, 0x3fdc28f5, 0xc28f5c3f}, /* -1.64077=f(0.44000)*/ +{64, 0,123,__LINE__, 0xbff9c0b2, 0x3c24180d, 0x3fdccccc, 0xcccccce3}, /* -1.60954=f(0.45000)*/ +{64, 0,123,__LINE__, 0xbff9462d, 0x5739a738, 0x3fdd70a3, 0xd70a3d87}, /* -1.57963=f(0.46000)*/ +{64, 0,123,__LINE__, 0xbff8d0ad, 0xca581cba, 0x3fde147a, 0xe147ae2b}, /* -1.55094=f(0.47000)*/ +{64, 0,123,__LINE__, 0xbff85fdf, 0x533acd50, 0x3fdeb851, 0xeb851ecf}, /* -1.52340=f(0.48000)*/ +{64, 0,123,__LINE__, 0xbff7f374, 0xa129a302, 0x3fdf5c28, 0xf5c28f73}, /* -1.49693=f(0.49000)*/ +{64, 0,123,__LINE__, 0xbff78b26, 0xa2b7c4d2, 0x3fe00000, 0x0000000b}, /* -1.47147=f(0.50000)*/ +{64, 0,123,__LINE__, 0xbff726b3, 0xe88401f2, 0x3fe051eb, 0x851eb85d}, /* -1.44694=f(0.51000)*/ +{64, 0,123,__LINE__, 0xbff6c5e0, 0x1a2655ef, 0x3fe0a3d7, 0x0a3d70af}, /* -1.42330=f(0.52000)*/ +{64, 0,123,__LINE__, 0xbff66873, 0x7ae34f38, 0x3fe0f5c2, 0x8f5c2901}, /* -1.40050=f(0.53000)*/ +{64, 0,123,__LINE__, 0xbff60e3a, 0x7c1955f2, 0x3fe147ae, 0x147ae153}, /* -1.37847=f(0.54000)*/ +{64, 0,123,__LINE__, 0xbff5b705, 0x5ba816cb, 0x3fe19999, 0x999999a5}, /* -1.35718=f(0.55000)*/ +{64, 0,123,__LINE__, 0xbff562a7, 0xccd257c6, 0x3fe1eb85, 0x1eb851f7}, /* -1.33658=f(0.56000)*/ +{64, 0,123,__LINE__, 0xbff510f8, 0xaa5062b5, 0x3fe23d70, 0xa3d70a49}, /* -1.31664=f(0.57000)*/ +{63, 0,123,__LINE__, 0xbff4c1d1, 0xb076b8b2, 0x3fe28f5c, 0x28f5c29b}, /* -1.29731=f(0.58000)*/ +{64, 0,123,__LINE__, 0xbff4750f, 0x3e7b569c, 0x3fe2e147, 0xae147aed}, /* -1.27857=f(0.59000)*/ +{64, 0,123,__LINE__, 0xbff42a90, 0x1e049cad, 0x3fe33333, 0x3333333f}, /* -1.26039=f(0.60000)*/ +{64, 0,123,__LINE__, 0xbff3e235, 0x5048deef, 0x3fe3851e, 0xb851eb91}, /* -1.24272=f(0.61000)*/ +{62, 0,123,__LINE__, 0xbff39be1, 0xe01d876d, 0x3fe3d70a, 0x3d70a3e3}, /* -1.22555=f(0.62000)*/ +{64, 0,123,__LINE__, 0xbff3577a, 0xb8692d6b, 0x3fe428f5, 0xc28f5c35}, /* -1.20885=f(0.63000)*/ +{64, 0,123,__LINE__, 0xbff314e6, 0x7e7d9c43, 0x3fe47ae1, 0x47ae1487}, /* -1.19260=f(0.64000)*/ +{64, 0,123,__LINE__, 0xbff2d40d, 0x6feded0b, 0x3fe4cccc, 0xccccccd9}, /* -1.17677=f(0.65000)*/ +{64, 0,123,__LINE__, 0xbff294d9, 0x4381ec61, 0x3fe51eb8, 0x51eb852b}, /* -1.16134=f(0.66000)*/ +{64, 0,123,__LINE__, 0xbff25735, 0x0cf35a15, 0x3fe570a3, 0xd70a3d7d}, /* -1.14629=f(0.67000)*/ +{64, 0,123,__LINE__, 0xbff21b0d, 0x232b6443, 0x3fe5c28f, 0x5c28f5cf}, /* -1.13160=f(0.68000)*/ +{64, 0,123,__LINE__, 0xbff1e04f, 0x08bf4b2c, 0x3fe6147a, 0xe147ae21}, /* -1.11726=f(0.69000)*/ +{64, 0,123,__LINE__, 0xbff1a6e9, 0x56728d2d, 0x3fe66666, 0x66666673}, /* -1.10325=f(0.70000)*/ +{64, 0,123,__LINE__, 0xbff16ecb, 0xa78b7a7c, 0x3fe6b851, 0xeb851ec5}, /* -1.08955=f(0.71000)*/ +{64, 0,123,__LINE__, 0xbff137e6, 0x87ccc07e, 0x3fe70a3d, 0x70a3d717}, /* -1.07614=f(0.72000)*/ +{64, 0,123,__LINE__, 0xbff1022b, 0x62eb78d4, 0x3fe75c28, 0xf5c28f69}, /* -1.06303=f(0.73000)*/ +{64, 0,123,__LINE__, 0xbff0cd8c, 0x755da97a, 0x3fe7ae14, 0x7ae147bb}, /* -1.05018=f(0.74000)*/ +{64, 0,123,__LINE__, 0xbff099fc, 0xbe60fd7b, 0x3fe80000, 0x0000000d}, /* -1.03759=f(0.75000)*/ +{64, 0,123,__LINE__, 0xbff0676f, 0xf31ce374, 0x3fe851eb, 0x851eb85f}, /* -1.02525=f(0.76000)*/ +{64, 0,123,__LINE__, 0xbff035da, 0x72c63ebc, 0x3fe8a3d7, 0x0a3d70b1}, /* -1.01314=f(0.77000)*/ +{64, 0,123,__LINE__, 0xbff00531, 0x3bad7f1b, 0x3fe8f5c2, 0x8f5c2903}, /* -1.00126=f(0.78000)*/ +{64, 0,123,__LINE__, 0xbfefaad3, 0xc2449974, 0x3fe947ae, 0x147ae155}, /* -0.98960=f(0.79000)*/ +{64, 0,123,__LINE__, 0xbfef4cf5, 0x04341779, 0x3fe99999, 0x999999a7}, /* -0.97814=f(0.80000)*/ +{64, 0,123,__LINE__, 0xbfeef0b3, 0x8110aaef, 0x3fe9eb85, 0x1eb851f9}, /* -0.96688=f(0.81000)*/ +{60, 0,123,__LINE__, 0xbfee95fd, 0x72b45756, 0x3fea3d70, 0xa3d70a4b}, /* -0.95580=f(0.82000)*/ +{64, 0,123,__LINE__, 0xbfee3cc1, 0xfa0c451d, 0x3fea8f5c, 0x28f5c29d}, /* -0.94491=f(0.83000)*/ +{64, 0,123,__LINE__, 0xbfede4f1, 0x114a1d4d, 0x3feae147, 0xae147aef}, /* -0.93419=f(0.84000)*/ +{64, 0,123,__LINE__, 0xbfed8e7b, 0x7f0fdfe2, 0x3feb3333, 0x33333341}, /* -0.92364=f(0.85000)*/ +{64, 0,123,__LINE__, 0xbfed3952, 0xca81c193, 0x3feb851e, 0xb851eb93}, /* -0.91324=f(0.86000)*/ +{64, 0,123,__LINE__, 0xbfece569, 0x302b8076, 0x3febd70a, 0x3d70a3e5}, /* -0.90300=f(0.87000)*/ +{64, 0,123,__LINE__, 0xbfec92b1, 0x97a84f99, 0x3fec28f5, 0xc28f5c37}, /* -0.89290=f(0.88000)*/ +{64, 0,123,__LINE__, 0xbfec411f, 0x89fdfebe, 0x3fec7ae1, 0x47ae1489}, /* -0.88294=f(0.89000)*/ +{64, 0,123,__LINE__, 0xbfebf0a7, 0x289d61ad, 0x3feccccc, 0xccccccdb}, /* -0.87312=f(0.90000)*/ +{64, 0,123,__LINE__, 0xbfeba13d, 0x24fb35db, 0x3fed1eb8, 0x51eb852d}, /* -0.86343=f(0.91000)*/ +{64, 0,123,__LINE__, 0xbfeb52d6, 0xb8b5e1a3, 0x3fed70a3, 0xd70a3d7f}, /* -0.85386=f(0.92000)*/ +{64, 0,123,__LINE__, 0xbfeb0569, 0x9e3d6973, 0x3fedc28f, 0x5c28f5d1}, /* -0.84441=f(0.93000)*/ +{64, 0,123,__LINE__, 0xbfeab8ec, 0x09f3df7c, 0x3fee147a, 0xe147ae23}, /* -0.83507=f(0.94000)*/ +{64, 0,123,__LINE__, 0xbfea6d54, 0xa3bd64c4, 0x3fee6666, 0x66666675}, /* -0.82584=f(0.95000)*/ +{64, 0,123,__LINE__, 0xbfea229a, 0x80f7910d, 0x3feeb851, 0xeb851ec7}, /* -0.81672=f(0.96000)*/ +{64, 0,123,__LINE__, 0xbfe9d8b5, 0x1ed0c3c8, 0x3fef0a3d, 0x70a3d719}, /* -0.80770=f(0.97000)*/ +{64, 0,123,__LINE__, 0xbfe98f9c, 0x5cf87d44, 0x3fef5c28, 0xf5c28f6b}, /* -0.79878=f(0.98000)*/ +{64, 0,123,__LINE__, 0xbfe94748, 0x78a26dfe, 0x3fefae14, 0x7ae147bd}, /* -0.78995=f(0.99000)*/ +{64, 0,123,__LINE__, 0xbfe8ffb2, 0x07d66b88, 0x3ff00000, 0x00000007}, /* -0.78121=f(1.00000)*/ +{64, 0,123,__LINE__, 0xbfe8b8d1, 0xf507f0f4, 0x3ff028f5, 0xc28f5c30}, /* -0.77256=f(1.01000)*/ +{64, 0,123,__LINE__, 0xbfe872a1, 0x7af03c5a, 0x3ff051eb, 0x851eb859}, /* -0.76399=f(1.02000)*/ +{64, 0,123,__LINE__, 0xbfe82d1a, 0x20a67d2e, 0x3ff07ae1, 0x47ae1482}, /* -0.75550=f(1.03000)*/ +{64, 0,123,__LINE__, 0xbfe7e835, 0xb5f1e144, 0x3ff0a3d7, 0x0a3d70ab}, /* -0.74709=f(1.04000)*/ +{64, 0,123,__LINE__, 0xbfe7a3ee, 0x4fd1a02b, 0x3ff0cccc, 0xccccccd4}, /* -0.73876=f(1.05000)*/ +{64, 0,123,__LINE__, 0xbfe7603e, 0x45376fba, 0x3ff0f5c2, 0x8f5c28fd}, /* -0.73049=f(1.06000)*/ +{64, 0,123,__LINE__, 0xbfe71d20, 0x2bf11178, 0x3ff11eb8, 0x51eb8526}, /* -0.72230=f(1.07000)*/ +{64, 0,123,__LINE__, 0xbfe6da8e, 0xd5bde79a, 0x3ff147ae, 0x147ae14f}, /* -0.71417=f(1.08000)*/ +{64, 0,123,__LINE__, 0xbfe69885, 0x4d8db9f0, 0x3ff170a3, 0xd70a3d78}, /* -0.70611=f(1.09000)*/ +{64, 0,123,__LINE__, 0xbfe656fe, 0xd4e60874, 0x3ff19999, 0x999999a1}, /* -0.69811=f(1.10000)*/ +{64, 0,123,__LINE__, 0xbfe615f6, 0xe16b79b2, 0x3ff1c28f, 0x5c28f5ca}, /* -0.69018=f(1.11000)*/ +{64, 0,123,__LINE__, 0xbfe5d569, 0x1a8d2048, 0x3ff1eb85, 0x1eb851f3}, /* -0.68230=f(1.12000)*/ +{64, 0,123,__LINE__, 0xbfe59551, 0x574f7bdf, 0x3ff2147a, 0xe147ae1c}, /* -0.67447=f(1.13000)*/ +{64, 0,123,__LINE__, 0xbfe555ab, 0x9c35400a, 0x3ff23d70, 0xa3d70a45}, /* -0.66670=f(1.14000)*/ +{64, 0,123,__LINE__, 0xbfe51674, 0x19440e79, 0x3ff26666, 0x6666666e}, /* -0.65899=f(1.15000)*/ +{64, 0,123,__LINE__, 0xbfe4d7a7, 0x28237235, 0x3ff28f5c, 0x28f5c297}, /* -0.65132=f(1.16000)*/ +{64, 0,123,__LINE__, 0xbfe49941, 0x4a548778, 0x3ff2b851, 0xeb851ec0}, /* -0.64370=f(1.17000)*/ +{64, 0,123,__LINE__, 0xbfe45b3f, 0x2780d71b, 0x3ff2e147, 0xae147ae9}, /* -0.63613=f(1.18000)*/ +{64, 0,123,__LINE__, 0xbfe41d9d, 0x8bdf0626, 0x3ff30a3d, 0x70a3d712}, /* -0.62861=f(1.19000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{63, 0,123,__LINE__, 0xbfd77123, 0x5406f041, 0x3ff921fb, 0x54442d18}, /* -0.36628=f(1.57079)*/ +{61, 0,123,__LINE__, 0x3fd6f7c6, 0x1c3e790b, 0x400921fb, 0x54442d18}, /* 0.35887=f(3.14159)*/ +{59, 0,123,__LINE__, 0x3fced109, 0x0321e8e8, 0x4012d97c, 0x7f3321d2}, /* 0.24075=f(4.71238)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{64,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{64, 0,123,__LINE__, 0xbff42a90, 0x1e049cf8, 0x3fe33333, 0x333332ec}, /* -1.26039=f(0.60000)*/ +{60, 0,123,__LINE__, 0x3faac417, 0xa3bf4753, 0x40026666, 0x66666654}, /* 0.05227=f(2.30000)*/ +{59, 0,123,__LINE__, 0x3fd9779d, 0x664523cf, 0x400fffff, 0xffffffee}, /* 0.39792=f(4.00000)*/ +{56, 0,123,__LINE__, 0xbfb6b692, 0xa5de21ac, 0x4016cccc, 0xccccccc4}, /* -0.08872=f(5.70000)*/ +{55, 0,123,__LINE__, 0xbfd17ab7, 0x2b13b91f, 0x401d9999, 0x99999991}, /* -0.27311=f(7.40000)*/ +{57, 0,123,__LINE__, 0x3fc050cd, 0x513210be, 0x40223333, 0x3333332f}, /* 0.12746=f(9.10000)*/ +{62, 0,123,__LINE__, 0x3fc940c4, 0xd7d877b5, 0x40259999, 0x99999995}, /* 0.19728=f(10.8000)*/ +{63, 0,123,__LINE__, 0xbfc3b0f8, 0xd459e252, 0x4028ffff, 0xfffffffb}, /* -0.15383=f(12.5000)*/ +{61, 0,123,__LINE__, 0xbfc165b0, 0xfd54018b, 0x402c6666, 0x66666661}, /* -0.13591=f(14.2000)*/ +{64, 0,123,__LINE__, 0x3fc594e5, 0x4261700e, 0x402fcccc, 0xccccccc7}, /* 0.16860=f(15.9000)*/ +{64, 0,123,__LINE__, 0x3fb4e0ac, 0x47a4e1a5, 0x40319999, 0x99999997}, /* 0.08155=f(17.6000)*/ +{64, 0,123,__LINE__, 0xbfc61c4c, 0x8f518084, 0x40334ccc, 0xccccccca}, /* -0.17273=f(19.3000)*/ +{64, 0,123,__LINE__, 0xbfa0a8fc, 0x69909f2e, 0x4034ffff, 0xfffffffd}, /* -0.03253=f(21.0000)*/ +{59, 0,123,__LINE__, 0x3fc567a2, 0x1848d0cf, 0x4036b333, 0x33333330}, /* 0.16722=f(22.7000)*/ +{64, 0,123,__LINE__, 0xbf867d4b, 0x580d2579, 0x40386666, 0x66666663}, /* -0.01098=f(24.4000)*/ +{64, 0,123,__LINE__, 0xbfc39cd0, 0xcf7f5216, 0x403a1999, 0x99999996}, /* -0.15322=f(26.1000)*/ +{64, 0,123,__LINE__, 0x3fa8b66b, 0x18717143, 0x403bcccc, 0xccccccc9}, /* 0.04826=f(27.8000)*/ +{64, 0,123,__LINE__, 0x3fc0e92b, 0x1cafe2d0, 0x403d7fff, 0xfffffffc}, /* 0.13211=f(29.5000)*/ +0,}; +test_y1(m) {run_vector_1(m,y1_vec,(char *)(y1),"y1","dd"); } diff --git a/newlib/libm/test/y1f_vec.c b/newlib/libm/test/y1f_vec.c new file mode 100644 index 000000000..419afb12b --- /dev/null +++ b/newlib/libm/test/y1f_vec.c @@ -0,0 +1,288 @@ +#include "test.h" + one_line_type y1f_vec[] = { +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff33333, 0x33333333}, /* 64.0000=f(-1.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff30a3d, 0x70a3d70a}, /* 64.0000=f(-1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2e147, 0xae147ae1}, /* 64.0000=f(-1.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2b851, 0xeb851eb8}, /* 64.0000=f(-1.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff28f5c, 0x28f5c28f}, /* 64.0000=f(-1.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff26666, 0x66666666}, /* 64.0000=f(-1.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff23d70, 0xa3d70a3d}, /* 64.0000=f(-1.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff2147a, 0xe147ae14}, /* 64.0000=f(-1.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1eb85, 0x1eb851eb}, /* 64.0000=f(-1.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff1c28f, 0x5c28f5c2}, /* 64.0000=f(-1.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x99999999}, /* 64.0000=f(-1.10000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff170a3, 0xd70a3d70}, /* 64.0000=f(-1.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff147ae, 0x147ae147}, /* 64.0000=f(-1.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff11eb8, 0x51eb851e}, /* 64.0000=f(-1.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0f5c2, 0x8f5c28f5}, /* 64.0000=f(-1.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0cccc, 0xcccccccc}, /* 64.0000=f(-1.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff0a3d7, 0x0a3d70a3}, /* 64.0000=f(-1.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff07ae1, 0x47ae147a}, /* 64.0000=f(-1.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff051eb, 0x851eb851}, /* 64.0000=f(-1.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff028f5, 0xc28f5c28}, /* 64.0000=f(-1.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefffff, 0xfffffffe}, /* 64.0000=f(-0.01000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfefae14, 0x7ae147ac}, /* 64.0000=f(-0.99000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef5c28, 0xf5c28f5a}, /* 64.0000=f(-0.98000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfef0a3d, 0x70a3d708}, /* 64.0000=f(-0.97000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeeb851, 0xeb851eb6}, /* 64.0000=f(-0.96000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee6666, 0x66666664}, /* 64.0000=f(-0.95000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfee147a, 0xe147ae12}, /* 64.0000=f(-0.94000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfedc28f, 0x5c28f5c0}, /* 64.0000=f(-0.93000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed70a3, 0xd70a3d6e}, /* 64.0000=f(-0.92000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfed1eb8, 0x51eb851c}, /* 64.0000=f(-0.91000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeccccc, 0xccccccca}, /* 64.0000=f(-0.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec7ae1, 0x47ae1478}, /* 64.0000=f(-0.89000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfec28f5, 0xc28f5c26}, /* 64.0000=f(-0.88000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfebd70a, 0x3d70a3d4}, /* 64.0000=f(-0.87000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb851e, 0xb851eb82}, /* 64.0000=f(-0.86000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeb3333, 0x33333330}, /* 64.0000=f(-0.85000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfeae147, 0xae147ade}, /* 64.0000=f(-0.84000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea8f5c, 0x28f5c28c}, /* 64.0000=f(-0.83000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfea3d70, 0xa3d70a3a}, /* 64.0000=f(-0.82000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe9eb85, 0x1eb851e8}, /* 64.0000=f(-0.81000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe99999, 0x99999996}, /* 64.0000=f(-0.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe947ae, 0x147ae144}, /* 64.0000=f(-0.79000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8f5c2, 0x8f5c28f2}, /* 64.0000=f(-0.78000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe8a3d7, 0x0a3d70a0}, /* 64.0000=f(-0.77000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe851eb, 0x851eb84e}, /* 64.0000=f(-0.76000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ffff, 0xfffffffc}, /* 64.0000=f(-0.75000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe7ae14, 0x7ae147aa}, /* 64.0000=f(-0.74000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe75c28, 0xf5c28f58}, /* 64.0000=f(-0.73000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe70a3d, 0x70a3d706}, /* 64.0000=f(-0.72000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6b851, 0xeb851eb4}, /* 64.0000=f(-0.71000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe66666, 0x66666662}, /* 64.0000=f(-0.70000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe6147a, 0xe147ae10}, /* 64.0000=f(-0.69000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe5c28f, 0x5c28f5be}, /* 64.0000=f(-0.68000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe570a3, 0xd70a3d6c}, /* 64.0000=f(-0.67000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe51eb8, 0x51eb851a}, /* 64.0000=f(-0.66000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe4cccc, 0xccccccc8}, /* 64.0000=f(-0.65000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe47ae1, 0x47ae1476}, /* 64.0000=f(-0.64000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe428f5, 0xc28f5c24}, /* 64.0000=f(-0.63000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3d70a, 0x3d70a3d2}, /* 64.0000=f(-0.62000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe3851e, 0xb851eb80}, /* 64.0000=f(-0.61000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe33333, 0x3333332e}, /* 64.0000=f(-0.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe2e147, 0xae147adc}, /* 64.0000=f(-0.59000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe28f5c, 0x28f5c28a}, /* 64.0000=f(-0.58000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe23d70, 0xa3d70a38}, /* 64.0000=f(-0.57000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe1eb85, 0x1eb851e6}, /* 64.0000=f(-0.56000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe19999, 0x99999994}, /* 64.0000=f(-0.55000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe147ae, 0x147ae142}, /* 64.0000=f(-0.54000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0f5c2, 0x8f5c28f0}, /* 64.0000=f(-0.53000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe0a3d7, 0x0a3d709e}, /* 64.0000=f(-0.52000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfe051eb, 0x851eb84c}, /* 64.0000=f(-0.51000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdfffff, 0xfffffff4}, /* 64.0000=f(-0.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdf5c28, 0xf5c28f50}, /* 64.0000=f(-0.49000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdeb851, 0xeb851eac}, /* 64.0000=f(-0.48000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfde147a, 0xe147ae08}, /* 64.0000=f(-0.47000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdd70a3, 0xd70a3d64}, /* 64.0000=f(-0.46000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdccccc, 0xccccccc0}, /* 64.0000=f(-0.45000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdc28f5, 0xc28f5c1c}, /* 64.0000=f(-0.44000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdb851e, 0xb851eb78}, /* 64.0000=f(-0.43000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfdae147, 0xae147ad4}, /* 64.0000=f(-0.42000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfda3d70, 0xa3d70a30}, /* 64.0000=f(-0.41000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd99999, 0x9999998c}, /* 64.0000=f(-0.40000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd8f5c2, 0x8f5c28e8}, /* 64.0000=f(-0.39000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd851eb, 0x851eb844}, /* 64.0000=f(-0.38000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd7ae14, 0x7ae147a0}, /* 64.0000=f(-0.37000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd70a3d, 0x70a3d6fc}, /* 64.0000=f(-0.36000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd66666, 0x66666658}, /* 64.0000=f(-0.35000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd5c28f, 0x5c28f5b4}, /* 64.0000=f(-0.34000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd51eb8, 0x51eb8510}, /* 64.0000=f(-0.33000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd47ae1, 0x47ae146c}, /* 64.0000=f(-0.32000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd3d70a, 0x3d70a3c8}, /* 64.0000=f(-0.31000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd33333, 0x33333324}, /* 64.0000=f(-0.30000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd28f5c, 0x28f5c280}, /* 64.0000=f(-0.29000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd1eb85, 0x1eb851dc}, /* 64.0000=f(-0.28000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd147ae, 0x147ae138}, /* 64.0000=f(-0.27000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfd0a3d7, 0x0a3d7094}, /* 64.0000=f(-0.26000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcfffff, 0xffffffe0}, /* 64.0000=f(-0.25000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfceb851, 0xeb851e98}, /* 64.0000=f(-0.24000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcd70a3, 0xd70a3d50}, /* 64.0000=f(-0.23000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcc28f5, 0xc28f5c08}, /* 64.0000=f(-0.22000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfcae147, 0xae147ac0}, /* 64.0000=f(-0.21000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc99999, 0x99999978}, /* 64.0000=f(-0.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc851eb, 0x851eb830}, /* 64.0000=f(-0.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc70a3d, 0x70a3d6e8}, /* 64.0000=f(-0.18000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc5c28f, 0x5c28f5a0}, /* 64.0000=f(-0.17000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc47ae1, 0x47ae1458}, /* 64.0000=f(-0.16000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc33333, 0x33333310}, /* 64.0000=f(-0.15000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc1eb85, 0x1eb851c8}, /* 64.0000=f(-0.14000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfc0a3d7, 0x0a3d7080}, /* 64.0000=f(-0.13000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbeb851, 0xeb851e71}, /* 64.0000=f(-0.12000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfbc28f5, 0xc28f5be2}, /* 64.0000=f(-0.11000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb99999, 0x99999953}, /* 64.0000=f(-0.00100)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb70a3d, 0x70a3d6c4}, /* 64.0000=f(-0.09000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb47ae1, 0x47ae1435}, /* 64.0000=f(-0.08000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfb1eb85, 0x1eb851a6}, /* 64.0000=f(-0.07000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfaeb851, 0xeb851e2d}, /* 64.0000=f(-0.06000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa99999, 0x9999990e}, /* 64.0000=f(-0.05000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbfa47ae1, 0x47ae13ef}, /* 64.0000=f(-0.04000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf9eb851, 0xeb851da0}, /* 64.0000=f(-0.03000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf947ae1, 0x47ae1362}, /* 64.0000=f(-0.02000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbf847ae1, 0x47ae1249}, /* 64.0000=f(-0.00010)*/ +{ 0, 0,123,__LINE__, 0xc3028f34, 0x51ccc8e4, 0x3cd19000, 0x00000000}, /* -6.53001e+14=f(9.74915e-16)*/ +{10, 0,123,__LINE__, 0xc04fd6dc, 0x4a237936, 0x3f847ae1, 0x47ae16ad}, /* -63.6785=f(0.01000)*/ +{ 9, 0,123,__LINE__, 0xc03fdc1c, 0xbcdbf22f, 0x3f947ae1, 0x47ae1594}, /* -31.8598=f(0.02000)*/ +{ 9, 0,123,__LINE__, 0xc0354290, 0xbfb7f7f9, 0x3f9eb851, 0xeb851fd2}, /* -21.2600=f(0.03000)*/ +{ 9, 0,123,__LINE__, 0xc02fedb9, 0xf1ea1fcd, 0x3fa47ae1, 0x47ae1508}, /* -15.9643=f(0.04000)*/ +{ 9, 0,123,__LINE__, 0xc0299467, 0xdf586605, 0x3fa99999, 0x99999a27}, /* -12.7898=f(0.05000)*/ +{ 9, 0,123,__LINE__, 0xc0255a01, 0x13ed563a, 0x3faeb851, 0xeb851f46}, /* -10.6757=f(0.06000)*/ +{ 9, 0,123,__LINE__, 0xc02255c1, 0x40b58d14, 0x3fb1eb85, 0x1eb85232}, /* -9.16749=f(0.07000)*/ +{ 9, 0,123,__LINE__, 0xc0201349, 0x7474bd52, 0x3fb47ae1, 0x47ae14c1}, /* -8.03767=f(0.08000)*/ +{ 9, 0,123,__LINE__, 0xc01ca3e9, 0xa85cbc4d, 0x3fb70a3d, 0x70a3d750}, /* -7.16007=f(0.09000)*/ +{ 9, 0,123,__LINE__, 0xc019d5f7, 0x403ad72f, 0x3fb99999, 0x999999df}, /* -6.45895=f(0.10000)*/ +{10, 0,123,__LINE__, 0xc0178b61, 0xd44ddafb, 0x3fbc28f5, 0xc28f5c6e}, /* -5.88611=f(0.11000)*/ +{10, 0,123,__LINE__, 0xc015a344, 0x51f62ac0, 0x3fbeb851, 0xeb851efd}, /* -5.40944=f(0.12000)*/ +{10, 0,123,__LINE__, 0xc01406d9, 0xca1b1ec4, 0x3fc0a3d7, 0x0a3d70c6}, /* -5.00669=f(0.13000)*/ +{10, 0,123,__LINE__, 0xc012a5df, 0x75a19fe5, 0x3fc1eb85, 0x1eb8520e}, /* -4.66198=f(0.14000)*/ +{10, 0,123,__LINE__, 0xc0117469, 0x650d860b, 0x3fc33333, 0x33333356}, /* -4.36368=f(0.15000)*/ +{10, 0,123,__LINE__, 0xc0106987, 0x2f9911e2, 0x3fc47ae1, 0x47ae149e}, /* -4.10305=f(0.16000)*/ +{10, 0,123,__LINE__, 0xc00efcc6, 0x0cef1edd, 0x3fc5c28f, 0x5c28f5e6}, /* -3.87342=f(0.17000)*/ +{10, 0,123,__LINE__, 0xc00d5b59, 0x1f256b63, 0x3fc70a3d, 0x70a3d72e}, /* -3.66960=f(0.18000)*/ +{10, 0,123,__LINE__, 0xc00be664, 0x37c9ea76, 0x3fc851eb, 0x851eb876}, /* -3.48749=f(0.19000)*/ +{10, 0,123,__LINE__, 0xc00a9731, 0x87a43b11, 0x3fc99999, 0x999999be}, /* -3.32382=f(0.20000)*/ +{10, 0,123,__LINE__, 0xc0096853, 0x6207b116, 0x3fcae147, 0xae147b06}, /* -3.17594=f(0.21000)*/ +{10, 0,123,__LINE__, 0xc0085558, 0xab8c81c6, 0x3fcc28f5, 0xc28f5c4e}, /* -3.04167=f(0.22000)*/ +{10, 0,123,__LINE__, 0xc0075a96, 0xadd549e9, 0x3fcd70a3, 0xd70a3d96}, /* -2.91923=f(0.23000)*/ +{10, 0,123,__LINE__, 0xc00674ff, 0x647a71f2, 0x3fceb851, 0xeb851ede}, /* -2.80712=f(0.24000)*/ +{10, 0,123,__LINE__, 0xc005a201, 0xecdf68b2, 0x3fd00000, 0x00000013}, /* -2.70410=f(0.25000)*/ +{10, 0,123,__LINE__, 0xc004df72, 0xf5273d90, 0x3fd0a3d7, 0x0a3d70b7}, /* -2.60910=f(0.26000)*/ +{10, 0,123,__LINE__, 0xc0042b79, 0x474cf53e, 0x3fd147ae, 0x147ae15b}, /* -2.52122=f(0.27000)*/ +{10, 0,123,__LINE__, 0xc003847f, 0xeadb17f2, 0x3fd1eb85, 0x1eb851ff}, /* -2.43969=f(0.28000)*/ +{10, 0,123,__LINE__, 0xc002e929, 0x84dde3dd, 0x3fd28f5c, 0x28f5c2a3}, /* -2.36384=f(0.29000)*/ +{10, 0,123,__LINE__, 0xc0025847, 0x76766e7f, 0x3fd33333, 0x33333347}, /* -2.29310=f(0.30000)*/ +{10, 0,123,__LINE__, 0xc001d0d2, 0x9bd35dd2, 0x3fd3d70a, 0x3d70a3eb}, /* -2.22696=f(0.31000)*/ +{10, 0,123,__LINE__, 0xc00151e4, 0x86d2966e, 0x3fd47ae1, 0x47ae148f}, /* -2.16498=f(0.32000)*/ +{10, 0,123,__LINE__, 0xc000dab2, 0xccba8b79, 0x3fd51eb8, 0x51eb8533}, /* -2.10678=f(0.33000)*/ +{10, 0,123,__LINE__, 0xc0006a8b, 0x34ef3ba2, 0x3fd5c28f, 0x5c28f5d7}, /* -2.05202=f(0.34000)*/ +{10, 0,123,__LINE__, 0xc00000cf, 0xb57b49e0, 0x3fd66666, 0x6666667b}, /* -2.00039=f(0.35000)*/ +{ 1, 0,123,__LINE__, 0xbfff39e7, 0xd5e069b9, 0x3fd70a3d, 0x70a3d71f}, /* -1.95163=f(0.36000)*/ +{ 1, 0,123,__LINE__, 0xbffe7cf5, 0xcfb6bb04, 0x3fd7ae14, 0x7ae147c3}, /* -1.90550=f(0.37000)*/ +{ 1, 0,123,__LINE__, 0xbffdc9e9, 0x84715789, 0x3fd851eb, 0x851eb867}, /* -1.86179=f(0.38000)*/ +{ 1, 0,123,__LINE__, 0xbffd1ffa, 0x532d1010, 0x3fd8f5c2, 0x8f5c290b}, /* -1.82030=f(0.39000)*/ +{ 1, 0,123,__LINE__, 0xbffc7e73, 0xa80be7b4, 0x3fd99999, 0x999999af}, /* -1.78087=f(0.40000)*/ +{ 1, 0,123,__LINE__, 0xbffbe4b3, 0x08cbc129, 0x3fda3d70, 0xa3d70a53}, /* -1.74333=f(0.41000)*/ +{ 1, 0,123,__LINE__, 0xbffb5225, 0x2d974e02, 0x3fdae147, 0xae147af7}, /* -1.70755=f(0.42000)*/ +{ 1, 0,123,__LINE__, 0xbffac644, 0xa3fbbb53, 0x3fdb851e, 0xb851eb9b}, /* -1.67340=f(0.43000)*/ +{ 1, 0,123,__LINE__, 0xbffa4098, 0x791e8810, 0x3fdc28f5, 0xc28f5c3f}, /* -1.64077=f(0.44000)*/ +{ 1, 0,123,__LINE__, 0xbff9c0b2, 0x443a9962, 0x3fdccccc, 0xcccccce3}, /* -1.60954=f(0.45000)*/ +{ 1, 0,123,__LINE__, 0xbff9462d, 0x5176d096, 0x3fdd70a3, 0xd70a3d87}, /* -1.57963=f(0.46000)*/ +{ 1, 0,123,__LINE__, 0xbff8d0ad, 0xcab18106, 0x3fde147a, 0xe147ae2b}, /* -1.55094=f(0.47000)*/ +{ 1, 0,123,__LINE__, 0xbff85fdf, 0x5afc2e9d, 0x3fdeb851, 0xeb851ecf}, /* -1.52340=f(0.48000)*/ +{ 1, 0,123,__LINE__, 0xbff7f374, 0x9b4ece25, 0x3fdf5c28, 0xf5c28f73}, /* -1.49693=f(0.49000)*/ +{ 1, 0,123,__LINE__, 0xbff78b26, 0xa14ebe4d, 0x3fe00000, 0x0000000b}, /* -1.47147=f(0.50000)*/ +{ 1, 0,123,__LINE__, 0xbff726b3, 0xef5ba82b, 0x3fe051eb, 0x851eb85d}, /* -1.44694=f(0.51000)*/ +{ 1, 0,123,__LINE__, 0xbff6c5e0, 0x27287fd4, 0x3fe0a3d7, 0x0a3d70af}, /* -1.42330=f(0.52000)*/ +{ 1, 0,123,__LINE__, 0xbff66873, 0x8b9d7d55, 0x3fe0f5c2, 0x8f5c2901}, /* -1.40050=f(0.53000)*/ +{ 1, 0,123,__LINE__, 0xbff60e3a, 0x6fb7e04d, 0x3fe147ae, 0x147ae153}, /* -1.37847=f(0.54000)*/ +{ 1, 0,123,__LINE__, 0xbff5b705, 0x5494eec7, 0x3fe19999, 0x999999a5}, /* -1.35718=f(0.55000)*/ +{ 1, 0,123,__LINE__, 0xbff562a7, 0xc8873b56, 0x3fe1eb85, 0x1eb851f7}, /* -1.33658=f(0.56000)*/ +{ 1, 0,123,__LINE__, 0xbff510f8, 0xac10341b, 0x3fe23d70, 0xa3d70a49}, /* -1.31664=f(0.57000)*/ +{ 1, 0,123,__LINE__, 0xbff4c1d1, 0xb7f254a4, 0x3fe28f5c, 0x28f5c29b}, /* -1.29731=f(0.58000)*/ +{ 1, 0,123,__LINE__, 0xbff4750f, 0x4d1c1754, 0x3fe2e147, 0xae147aed}, /* -1.27857=f(0.59000)*/ +{ 1, 0,123,__LINE__, 0xbff42a90, 0x1421761a, 0x3fe33333, 0x3333333f}, /* -1.26039=f(0.60000)*/ +{ 1, 0,123,__LINE__, 0xbff3e235, 0x495873ef, 0x3fe3851e, 0xb851eb91}, /* -1.24272=f(0.61000)*/ +{ 1, 0,123,__LINE__, 0xbff39be1, 0xdf1524d9, 0x3fe3d70a, 0x3d70a3e3}, /* -1.22555=f(0.62000)*/ +{ 1, 0,123,__LINE__, 0xbff3577a, 0xbb1a7992, 0x3fe428f5, 0xc28f5c35}, /* -1.20885=f(0.63000)*/ +{ 1, 0,123,__LINE__, 0xbff314e6, 0x836fcf3f, 0x3fe47ae1, 0x47ae1487}, /* -1.19260=f(0.64000)*/ +{ 1, 0,123,__LINE__, 0xbff2d40d, 0x77e9513f, 0x3fe4cccc, 0xccccccd9}, /* -1.17677=f(0.65000)*/ +{ 1, 0,123,__LINE__, 0xbff294d9, 0x39398046, 0x3fe51eb8, 0x51eb852b}, /* -1.16134=f(0.66000)*/ +{ 1, 0,123,__LINE__, 0xbff25735, 0x074c0d2c, 0x3fe570a3, 0xd70a3d7d}, /* -1.14629=f(0.67000)*/ +{ 1, 0,123,__LINE__, 0xbff21b0d, 0x1fe7cb73, 0x3fe5c28f, 0x5c28f5cf}, /* -1.13160=f(0.68000)*/ +{ 1, 0,123,__LINE__, 0xbff1e04f, 0x0c1f895a, 0x3fe6147a, 0xe147ae21}, /* -1.11726=f(0.69000)*/ +{ 1, 0,123,__LINE__, 0xbff1a6e9, 0x5e0f6dee, 0x3fe66666, 0x66666673}, /* -1.10325=f(0.70000)*/ +{ 1, 0,123,__LINE__, 0xbff16ecb, 0xafbeb161, 0x3fe6b851, 0xeb851ec5}, /* -1.08955=f(0.71000)*/ +{ 1, 0,123,__LINE__, 0xbff137e6, 0x7cee008e, 0x3fe70a3d, 0x70a3d717}, /* -1.07614=f(0.72000)*/ +{ 1, 0,123,__LINE__, 0xbff1022b, 0x5f391746, 0x3fe75c28, 0xf5c28f69}, /* -1.06303=f(0.73000)*/ +{ 1, 0,123,__LINE__, 0xbff0cd8c, 0x719e24e0, 0x3fe7ae14, 0x7ae147bb}, /* -1.05018=f(0.74000)*/ +{ 1, 0,123,__LINE__, 0xbff099fc, 0xbf17f408, 0x3fe80000, 0x0000000d}, /* -1.03759=f(0.75000)*/ +{ 1, 0,123,__LINE__, 0xbff0676f, 0xf6ac6964, 0x3fe851eb, 0x851eb85f}, /* -1.02525=f(0.76000)*/ +{ 1, 0,123,__LINE__, 0xbff035da, 0x791dd777, 0x3fe8a3d7, 0x0a3d70b1}, /* -1.01314=f(0.77000)*/ +{ 1, 0,123,__LINE__, 0xbff00531, 0x4452868e, 0x3fe8f5c2, 0x8f5c2903}, /* -1.00126=f(0.78000)*/ +{ 1, 0,123,__LINE__, 0xbfefaad3, 0xb5488590, 0x3fe947ae, 0x147ae155}, /* -0.98960=f(0.79000)*/ +{ 1, 0,123,__LINE__, 0xbfef4cf4, 0xfac34842, 0x3fe99999, 0x999999a7}, /* -0.97814=f(0.80000)*/ +{ 1, 0,123,__LINE__, 0xbfeef0b3, 0x7d0d0a14, 0x3fe9eb85, 0x1eb851f9}, /* -0.96688=f(0.81000)*/ +{ 1, 0,123,__LINE__, 0xbfee95fd, 0x72c13d3c, 0x3fea3d70, 0xa3d70a4b}, /* -0.95580=f(0.82000)*/ +{ 1, 0,123,__LINE__, 0xbfee3cc2, 0x02405282, 0x3fea8f5c, 0x28f5c29d}, /* -0.94491=f(0.83000)*/ +{ 1, 0,123,__LINE__, 0xbfede4f1, 0x2169e4b2, 0x3feae147, 0xae147aef}, /* -0.93419=f(0.84000)*/ +{ 1, 0,123,__LINE__, 0xbfed8e7b, 0x70eebaa2, 0x3feb3333, 0x33333341}, /* -0.92364=f(0.85000)*/ +{ 1, 0,123,__LINE__, 0xbfed3952, 0xc37c84a3, 0x3feb851e, 0xb851eb93}, /* -0.91324=f(0.86000)*/ +{ 1, 0,123,__LINE__, 0xbfece569, 0x2f8d8d89, 0x3febd70a, 0x3d70a3e5}, /* -0.90300=f(0.87000)*/ +{ 1, 0,123,__LINE__, 0xbfec92b1, 0x957f9085, 0x3fec28f5, 0xc28f5c37}, /* -0.89290=f(0.88000)*/ +{ 1, 0,123,__LINE__, 0xbfec411f, 0x90c84f96, 0x3fec7ae1, 0x47ae1489}, /* -0.88294=f(0.89000)*/ +{ 1, 0,123,__LINE__, 0xbfebf0a7, 0x385803a0, 0x3feccccc, 0xccccccdb}, /* -0.87312=f(0.90000)*/ +{ 1, 0,123,__LINE__, 0xbfeba13d, 0x149538a5, 0x3fed1eb8, 0x51eb852d}, /* -0.86343=f(0.91000)*/ +{ 1, 0,123,__LINE__, 0xbfeb52d6, 0xb49d78c1, 0x3fed70a3, 0xd70a3d7f}, /* -0.85386=f(0.92000)*/ +{ 1, 0,123,__LINE__, 0xbfeb0569, 0x9f962ef1, 0x3fedc28f, 0x5c28f5d1}, /* -0.84441=f(0.93000)*/ +{ 1, 0,123,__LINE__, 0xbfeab8ec, 0x08798c0f, 0x3fee147a, 0xe147ae23}, /* -0.83507=f(0.94000)*/ +{ 1, 0,123,__LINE__, 0xbfea6d54, 0xa670484c, 0x3fee6666, 0x66666675}, /* -0.82584=f(0.95000)*/ +{ 1, 0,123,__LINE__, 0xbfea229a, 0x8d1b4fdf, 0x3feeb851, 0xeb851ec7}, /* -0.81672=f(0.96000)*/ +{ 1, 0,123,__LINE__, 0xbfe9d8b5, 0x1279c296, 0x3fef0a3d, 0x70a3d719}, /* -0.80770=f(0.97000)*/ +{ 1, 0,123,__LINE__, 0xbfe98f9c, 0x5132eb03, 0x3fef5c28, 0xf5c28f6b}, /* -0.79878=f(0.98000)*/ +{ 1, 0,123,__LINE__, 0xbfe94748, 0x74fa8638, 0x3fefae14, 0x7ae147bd}, /* -0.78995=f(0.99000)*/ +{ 1, 0,123,__LINE__, 0xbfe8ffb2, 0x0500d76c, 0x3ff00000, 0x00000007}, /* -0.78121=f(1.00000)*/ +{ 1, 0,123,__LINE__, 0xbfe8b8d1, 0xf6b4e039, 0x3ff028f5, 0xc28f5c30}, /* -0.77256=f(1.01000)*/ +{ 1, 0,123,__LINE__, 0xbfe872a1, 0x80b50abc, 0x3ff051eb, 0x851eb859}, /* -0.76399=f(1.02000)*/ +{ 1, 0,123,__LINE__, 0xbfe82d1a, 0x2a0769e6, 0x3ff07ae1, 0x47ae1482}, /* -0.75550=f(1.03000)*/ +{ 1, 0,123,__LINE__, 0xbfe7e835, 0xc7e1c475, 0x3ff0a3d7, 0x0a3d70ab}, /* -0.74709=f(1.04000)*/ +{ 1, 0,123,__LINE__, 0xbfe7a3ee, 0x64c46067, 0x3ff0cccc, 0xccccccd4}, /* -0.73876=f(1.05000)*/ +{ 1, 0,123,__LINE__, 0xbfe7603e, 0x5b89fec6, 0x3ff0f5c2, 0x8f5c28fd}, /* -0.73049=f(1.06000)*/ +{ 1, 0,123,__LINE__, 0xbfe71d20, 0x14b064ca, 0x3ff11eb8, 0x51eb8526}, /* -0.72230=f(1.07000)*/ +{ 1, 0,123,__LINE__, 0xbfe6da8e, 0xc246ed18, 0x3ff147ae, 0x147ae14f}, /* -0.71417=f(1.08000)*/ +{ 1, 0,123,__LINE__, 0xbfe69885, 0x40ffdd26, 0x3ff170a3, 0xd70a3d78}, /* -0.70611=f(1.09000)*/ +{ 1, 0,123,__LINE__, 0xbfe656fe, 0xcc5e5f1b, 0x3ff19999, 0x999999a1}, /* -0.69811=f(1.10000)*/ +{ 1, 0,123,__LINE__, 0xbfe615f6, 0xdddba6f2, 0x3ff1c28f, 0x5c28f5ca}, /* -0.69018=f(1.11000)*/ +{ 1, 0,123,__LINE__, 0xbfe5d569, 0x1a0bb056, 0x3ff1eb85, 0x1eb851f3}, /* -0.68230=f(1.12000)*/ +{ 1, 0,123,__LINE__, 0xbfe59551, 0x60024644, 0x3ff2147a, 0xe147ae1c}, /* -0.67447=f(1.13000)*/ +{ 1, 0,123,__LINE__, 0xbfe555ab, 0xa2d085db, 0x3ff23d70, 0xa3d70a45}, /* -0.66670=f(1.14000)*/ +{ 1, 0,123,__LINE__, 0xbfe51674, 0x20b37355, 0x3ff26666, 0x6666666e}, /* -0.65899=f(1.15000)*/ +{ 1, 0,123,__LINE__, 0xbfe4d7a7, 0x333b278a, 0x3ff28f5c, 0x28f5c297}, /* -0.65132=f(1.16000)*/ +{ 1, 0,123,__LINE__, 0xbfe49941, 0x5c040ab4, 0x3ff2b851, 0xeb851ec0}, /* -0.64370=f(1.17000)*/ +{ 1, 0,123,__LINE__, 0xbfe45b3f, 0x3dd3b5ca, 0x3ff2e147, 0xae147ae9}, /* -0.63613=f(1.18000)*/ +{ 1, 0,123,__LINE__, 0xbfe41d9d, 0x71471f82, 0x3ff30a3d, 0x70a3d712}, /* -0.62861=f(1.19000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01921fb, 0x54442d18}, /* 64.0000=f(-6.28318)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc012d97c, 0x7f3321d2}, /* 64.0000=f(-4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc00921fb, 0x54442d18}, /* 64.0000=f(-3.14159)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff921fb, 0x54442d18}, /* 64.0000=f(-1.57079)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0x00000000, 0x00000000}, /* 64.0000=f(0.00000)*/ +{ 1, 0,123,__LINE__, 0xbfd77123, 0x3c9f8927, 0x3ff921fb, 0x54442d18}, /* -0.36628=f(1.57079)*/ +{ 0, 0,123,__LINE__, 0x3fd6f7c6, 0x3e78d349, 0x400921fb, 0x54442d18}, /* 0.35887=f(3.14159)*/ +{ 0, 0,123,__LINE__, 0x3fced109, 0x2d70aba0, 0x4012d97c, 0x7f3321d2}, /* 0.24075=f(4.71238)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03e0000, 0x00000000}, /* 64.0000=f(-30.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03c4ccc, 0xcccccccd}, /* 64.0000=f(-28.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc03a9999, 0x9999999a}, /* 64.0000=f(-26.6000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc038e666, 0x66666667}, /* 64.0000=f(-24.9000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0373333, 0x33333334}, /* 64.0000=f(-23.2000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0358000, 0x00000001}, /* 64.0000=f(-21.5000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc033cccc, 0xccccccce}, /* 64.0000=f(-19.8000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0321999, 0x9999999b}, /* 64.0000=f(-18.1000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0306666, 0x66666668}, /* 64.0000=f(-16.4000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02d6666, 0x6666666a}, /* 64.0000=f(-14.7000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc02a0000, 0x00000004}, /* 64.0000=f(-13.0000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0269999, 0x9999999e}, /* 64.0000=f(-11.3000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0233333, 0x33333338}, /* 64.0000=f(-9.60000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc01f9999, 0x999999a3}, /* 64.0000=f(-7.90000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc018cccc, 0xccccccd6}, /* 64.0000=f(-6.20000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0120000, 0x00000009}, /* 64.0000=f(-4.50000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xc0066666, 0x66666678}, /* 64.0000=f(-2.80000)*/ +{ 9,13, 37,__LINE__, 0x40500000, 0x00000000, 0xbff19999, 0x999999bd}, /* 64.0000=f(-1.10000)*/ +{ 1, 0,123,__LINE__, 0xbff42a90, 0x1421761a, 0x3fe33333, 0x333332ec}, /* -1.26039=f(0.60000)*/ +{ 9, 0,123,__LINE__, 0x3faac416, 0xb11a9d9c, 0x40026666, 0x66666654}, /* 0.05227=f(2.30000)*/ +{10, 0,123,__LINE__, 0x3fd9779e, 0x3e516ea4, 0x400fffff, 0xffffffee}, /* 0.39792=f(4.00000)*/ +{ 0, 0,123,__LINE__, 0xbfb6b690, 0x22bce510, 0x4016cccc, 0xccccccc4}, /* -0.08872=f(5.70000)*/ +{10, 0,123,__LINE__, 0xbfd17ab8, 0x4f3ea7b6, 0x401d9999, 0x99999991}, /* -0.27311=f(7.40000)*/ +{10, 0,123,__LINE__, 0x3fc050cd, 0xbb05f210, 0x40223333, 0x3333332f}, /* 0.12746=f(9.10000)*/ +{10, 0,123,__LINE__, 0x3fc940c4, 0xc40306ca, 0x40259999, 0x99999995}, /* 0.19728=f(10.8000)*/ +{10, 0,123,__LINE__, 0xbfc3b0f8, 0xb4d679af, 0x4028ffff, 0xfffffffb}, /* -0.15383=f(12.5000)*/ +{ 0, 0,123,__LINE__, 0xbfc165b1, 0x7aaa9cc0, 0x402c6666, 0x66666661}, /* -0.13591=f(14.2000)*/ +{ 0, 0,123,__LINE__, 0x3fc594e4, 0xa6fcd009, 0x402fcccc, 0xccccccc7}, /* 0.16860=f(15.9000)*/ +{ 0, 0,123,__LINE__, 0x3fb4e0ac, 0x39a1ab2c, 0x40319999, 0x99999997}, /* 0.08155=f(17.6000)*/ +{10, 0,123,__LINE__, 0xbfc61c4c, 0x79f54028, 0x40334ccc, 0xccccccca}, /* -0.17273=f(19.3000)*/ +{ 0, 0,123,__LINE__, 0xbfa0a8f9, 0x04feeeb9, 0x4034ffff, 0xfffffffd}, /* -0.03253=f(21.0000)*/ +{ 0, 0,123,__LINE__, 0x3fc567a2, 0x087fa337, 0x4036b333, 0x33333330}, /* 0.16722=f(22.7000)*/ +{ 0, 0,123,__LINE__, 0xbf867d4c, 0x44499f34, 0x40386666, 0x66666663}, /* -0.01098=f(24.4000)*/ +{ 0, 0,123,__LINE__, 0xbfc39cd0, 0xaae8ac82, 0x403a1999, 0x99999996}, /* -0.15322=f(26.1000)*/ +{ 0, 0,123,__LINE__, 0x3fa8b668, 0xc801a7a1, 0x403bcccc, 0xccccccc9}, /* 0.04826=f(27.8000)*/ +{11, 0,123,__LINE__, 0x3fc0e92a, 0xfe6b2ee0, 0x403d7fff, 0xfffffffc}, /* 0.13211=f(29.5000)*/ +0,}; +test_y1f(m) {run_vector_1(m,y1f_vec,(char *)(y1f),"y1f","ff"); } diff --git a/newlib/libm/test/yn_vec.c b/newlib/libm/test/yn_vec.c new file mode 100644 index 000000000..69028531e --- /dev/null +++ b/newlib/libm/test/yn_vec.c @@ -0,0 +1,204 @@ +#include "test.h" + one_line_type yn_vec[] = { +{64,0,123,__LINE__, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, +{64,0,123,__LINE__, 0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000, 0x00000000}, +{64,0,123,__LINE__, 0x00000000, 0x00000000, 0x40000000, 0x00000000, 0x00000000, 0x00000000}, +{64,0,123,__LINE__, 0x00000000, 0x00000000, 0x40080000, 0x00000000, 0x00000000, 0x00000000}, +{64,0,123,__LINE__, 0x00000000, 0x00000000, 0x40100000, 0x00000000, 0x00000000, 0x00000000}, +{64,0,123,__LINE__, 0x3feffae1, 0x7c1aebb8, 0x00000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3f99978d, 0x5dda2f5d, 0x3ff00000, 0x00000000, 0x3fa99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3f3479c9, 0xae7be13e, 0x40000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3ec5d788, 0x15461382, 0x40080000, 0x00000000, 0x3fa99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3e51795d, 0x7442f11f, 0x40100000, 0x00000000, 0x3fa99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3fefeb88, 0x65590ab3, 0x00000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3fa99169, 0x52566dfd, 0x3ff00000, 0x00000000, 0x3fb99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3f547683, 0x25fd91e1, 0x40000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3ef5d4e9, 0x3442db3c, 0x40080000, 0x00000000, 0x3fb99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3e9177b0, 0x11ba6ea0, 0x40100000, 0x00000000, 0x3fb99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3fefd1fc, 0x19331411, 0x00000000, 0x00000000, 0x3fc33333, 0x33333334}, +{64,0,123,__LINE__, 0x3fb32563, 0x927c0add, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333334}, +{64,0,123,__LINE__, 0x3f66ff30, 0x46535fa1, 0x40000000, 0x00000000, 0x3fc33333, 0x33333334}, +{64,0,123,__LINE__, 0x3f1267f5, 0xd0689e2d, 0x40080000, 0x00000000, 0x3fc33333, 0x33333334}, +{64,0,123,__LINE__, 0x3eb617f1, 0x7b30b575, 0x40100000, 0x00000000, 0x3fc33333, 0x33333334}, +{64,0,123,__LINE__, 0x3fefae48, 0xd9bfc0d4, 0x00000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3fb978e2, 0xf61c3bd6, 0x3ff00000, 0x00000000, 0x3fc99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3f74696c, 0xf1c4fb46, 0x40000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3f25ca70, 0x33fc81fd, 0x40080000, 0x00000000, 0x3fc99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3ed170fb, 0xdefa5db8, 0x40100000, 0x00000000, 0x3fc99999, 0x9999999a}, +{64,0,123,__LINE__, 0x3fef807f, 0xc72aa864, 0x00000000, 0x00000000, 0x3fd00000, 0x00000000}, +{64,0,123,__LINE__, 0x3fbfc02a, 0x9c749ee9, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000000}, +{64,0,123,__LINE__, 0x3f7fd56a, 0xa4fb4242, 0x40000000, 0x00000000, 0x3fd00000, 0x00000000}, +{64,0,123,__LINE__, 0x3f354008, 0x86a35a2f, 0x40080000, 0x00000000, 0x3fd00000, 0x00000000}, +{64,0,123,__LINE__, 0x3ee54449, 0xf38a05f2, 0x40100000, 0x00000000, 0x3fd00000, 0x00000000}, +{64,0,123,__LINE__, 0x3fef48b6, 0xd692fb9e, 0x00000000, 0x00000000, 0x3fd33333, 0x33333333}, +{64,0,123,__LINE__, 0x3fc2fc1c, 0x68a32001, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333333}, +{64,0,123,__LINE__, 0x3f86de20, 0x9f39196e, 0x40000000, 0x00000000, 0x3fd33333, 0x33333333}, +{64,0,123,__LINE__, 0x3f42541c, 0x0c752fd9, 0x40080000, 0x00000000, 0x3fd33333, 0x33333333}, +{64,0,123,__LINE__, 0x3ef604e0, 0xb2c4c00a, 0x40100000, 0x00000000, 0x3fd33333, 0x33333333}, +{64,0,123,__LINE__, 0x3fef0708, 0xc6573ae5, 0x00000000, 0x00000000, 0x3fd66666, 0x66666666}, +{64,0,123,__LINE__, 0x3fc60f09, 0xfed3cc81, 0x3ff00000, 0x00000000, 0x3fd66666, 0x66666666}, +{64,0,123,__LINE__, 0x3f8f0a84, 0xda6806f7, 0x40000000, 0x00000000, 0x3fd66666, 0x66666666}, +{64,0,123,__LINE__, 0x3f4d0bc1, 0xbfa630ab, 0x40080000, 0x00000000, 0x3fd66666, 0x66666666}, +{64,0,123,__LINE__, 0x3f045d05, 0x37bf774c, 0x40100000, 0x00000000, 0x3fd66666, 0x66666666}, +{64,0,123,__LINE__, 0x3feebb95, 0x0fd4747f, 0x00000000, 0x00000000, 0x3fd99999, 0x99999999}, +{64,0,123,__LINE__, 0x3fc91766, 0x1ebb8177, 0x3ff00000, 0x00000000, 0x3fd99999, 0x99999999}, +{64,0,123,__LINE__, 0x3f943552, 0xd2bdaaf3, 0x40000000, 0x00000000, 0x3fd99999, 0x99999999}, +{64,0,123,__LINE__, 0x3f55a0b4, 0x58ca1be8, 0x40080000, 0x00000000, 0x3fd99999, 0x99999999}, +{64,0,123,__LINE__, 0x3f115640, 0x7fcf3789, 0x40100000, 0x00000000, 0x3fd99999, 0x99999999}, +{64,0,123,__LINE__, 0x3fee667f, 0xd6a10561, 0x00000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{64,0,123,__LINE__, 0x3fcc13be, 0x77afcc52, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{64,0,123,__LINE__, 0x3f997c40, 0x76110a23, 0x40000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{64,0,123,__LINE__, 0x3f5eb65b, 0x151f786c, 0x40080000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{64,0,123,__LINE__, 0x3f1bb61b, 0x892f8cff, 0x40100000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{64,0,123,__LINE__, 0x3fee07f1, 0xd54c3f35, 0x00000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{64,0,123,__LINE__, 0x3fcf02a7, 0x1f4870d6, 0x3ff00000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{64,0,123,__LINE__, 0x3f9f56a9, 0x3f863441, 0x40000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{64,0,123,__LINE__, 0x3f650088, 0x0f70db57, 0x40080000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{64,0,123,__LINE__, 0x3f25116b, 0xd18a61a9, 0x40100000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{64,0,123,__LINE__, 0x3feda018, 0x47adb931, 0x00000000, 0x00000000, 0x3fe19999, 0x99999999}, +{64,0,123,__LINE__, 0x3fd0f15d, 0xa9534f53, 0x3ff00000, 0x00000000, 0x3fe19999, 0x99999999}, +{64,0,123,__LINE__, 0x3fa2e066, 0x08ca87ed, 0x40000000, 0x00000000, 0x3fe19999, 0x99999999}, +{64,0,123,__LINE__, 0x3f6bdca3, 0xb2679435, 0x40080000, 0x00000000, 0x3fe19999, 0x99999999}, +{64,0,123,__LINE__, 0x3f2ec3c2, 0x4d8baa6f, 0x40100000, 0x00000000, 0x3fe19999, 0x99999999}, +{64,0,123,__LINE__, 0x3fed2f24, 0xd2d06e4e, 0x00000000, 0x00000000, 0x3fe33333, 0x33333333}, +{64,0,123,__LINE__, 0x3fd2594f, 0x19ddc92f, 0x3ff00000, 0x00000000, 0x3fe33333, 0x33333333}, +{64,0,123,__LINE__, 0x3fa65b45, 0x84be102a, 0x40000000, 0x00000000, 0x3fe33333, 0x33333333}, +{64,0,123,__LINE__, 0x3f72055f, 0xdad11213, 0x40080000, 0x00000000, 0x3fe33333, 0x33333333}, +{64,0,123,__LINE__, 0x3f35b926, 0x63a336fb, 0x40100000, 0x00000000, 0x3fe33333, 0x33333333}, +{64,0,123,__LINE__, 0x3fecb54d, 0x6a872136, 0x00000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{64,0,123,__LINE__, 0x3fd3b87d, 0xc1127dbb, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{64,0,123,__LINE__, 0x3faa19b6, 0xfbcb3e9a, 0x40000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{64,0,123,__LINE__, 0x3f76d285, 0x13b1873b, 0x40080000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{64,0,123,__LINE__, 0x3f3dd3be, 0xb2075517, 0x40100000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{64,0,123,__LINE__, 0x3fec32cc, 0x34b8cc59, 0x00000000, 0x00000000, 0x3fe66666, 0x66666667}, +{64,0,123,__LINE__, 0x3fd50e44, 0x279c0546, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666667}, +{64,0,123,__LINE__, 0x3fae1952, 0x86f3b2fe, 0x40000000, 0x00000000, 0x3fe66666, 0x66666667}, +{64,0,123,__LINE__, 0x3f7c6245, 0x0da7c943, 0x40080000, 0x00000000, 0x3fe66666, 0x66666667}, +{64,0,123,__LINE__, 0x3f43fddd, 0x592928af, 0x40100000, 0x00000000, 0x3fe66666, 0x66666667}, +{64,0,123,__LINE__, 0x3feba7df, 0x6a752a19, 0x00000000, 0x00000000, 0x3fe80000, 0x00000001}, +{64,0,123,__LINE__, 0x3fd65a01, 0xd66b68bd, 0x3ff00000, 0x00000000, 0x3fe80000, 0x00000001}, +{64,0,123,__LINE__, 0x3fb12bc2, 0xf0d061c1, 0x40000000, 0x00000000, 0x3fe80000, 0x00000001}, +{64,0,123,__LINE__, 0x3f816042, 0xaaa332db, 0x40080000, 0x00000000, 0x3fe80000, 0x00000001}, +{64,0,123,__LINE__, 0x3f4a3fdc, 0xe9688cf6, 0x40100000, 0x00000000, 0x3fe80000, 0x00000001}, +{64,0,123,__LINE__, 0x3feb14c9, 0x36e29d84, 0x00000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fd79b1b, 0xab574ece, 0x3ff00000, 0x00000000, 0x3fe99999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fb368ca, 0xfa5427de, 0x40000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{64,0,123,__LINE__, 0x3f84fc41, 0xb23c60e3, 0x40080000, 0x00000000, 0x3fe99999, 0x9999999b}, +{64,0,123,__LINE__, 0x3f50eca7, 0x311cbd4c, 0x40100000, 0x00000000, 0x3fe99999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fea79cf, 0x9417f64a, 0x00000000, 0x00000000, 0x3feb3333, 0x33333335}, +{64,0,123,__LINE__, 0x3fd8d0fc, 0x2ac09609, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333335}, +{64,0,123,__LINE__, 0x3fb5c250, 0x3ceb775b, 0x40000000, 0x00000000, 0x3feb3333, 0x33333335}, +{64,0,123,__LINE__, 0x3f890a65, 0x7f429003, 0x40080000, 0x00000000, 0x3feb3333, 0x33333335}, +{64,0,123,__LINE__, 0x3f557acc, 0xd794bfe8, 0x40100000, 0x00000000, 0x3feb3333, 0x33333335}, +{64,0,123,__LINE__, 0x3fe9d73c, 0x25f5b277, 0x00000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fd9fb13, 0xce0f024e, 0x3ff00000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fb836ce, 0xdb8280b1, 0x40000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3f8d8f96, 0x8206eb0e, 0x40080000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3f5ae0f9, 0x8b7b7574, 0x40100000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fe92d5c, 0x13137d0b, 0x00000000, 0x00000000, 0x3fee6666, 0x66666669}, +{64,0,123,__LINE__, 0x3fdb18d9, 0x4eda7476, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666669}, +{64,0,123,__LINE__, 0x3fbac4b1, 0x27d714b1, 0x40000000, 0x00000000, 0x3fee6666, 0x66666669}, +{64,0,123,__LINE__, 0x3f91482d, 0xb156b6bd, 0x40080000, 0x00000000, 0x3fee6666, 0x66666669}, +{64,0,123,__LINE__, 0x3f609b4b, 0x7ea68879, 0x40100000, 0x00000000, 0x3fee6666, 0x66666669}, +{64,0,123,__LINE__, 0x3fe87c7f, 0xdbd7b8ee, 0x00000000, 0x00000000, 0x3ff00000, 0x00000001}, +{64,0,123,__LINE__, 0x3fdc29c9, 0xee970c6e, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000001}, +{64,0,123,__LINE__, 0x3fbd6a50, 0x95fa9be9, 0x40000000, 0x00000000, 0x3ff00000, 0x00000001}, +{64,0,123,__LINE__, 0x3f94086a, 0x7638f7a6, 0x40080000, 0x00000000, 0x3ff00000, 0x00000001}, +{64,0,123,__LINE__, 0x3f6449e3, 0x6b5af1b3, 0x40100000, 0x00000000, 0x3ff00000, 0x00000001}, +{64,0,123,__LINE__, 0x3fe7c4fb, 0x2fcfebef, 0x00000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{64,0,123,__LINE__, 0x3fdd2d69, 0xba9c976c, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{64,0,123,__LINE__, 0x3fc012fb, 0x5cfc78b3, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{64,0,123,__LINE__, 0x3f970a5d, 0x1eef9226, 0x40080000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{64,0,123,__LINE__, 0x3f6888a5, 0x228510b7, 0x40100000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{64,0,123,__LINE__, 0x3fe70724, 0xc161d44c, 0x00000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fde2343, 0xcc63c37e, 0x3ff00000, 0x00000000, 0x3ff19999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fc17aef, 0x27865e62, 0x40000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{64,0,123,__LINE__, 0x3f9a4faa, 0xa04e8191, 0x40080000, 0x00000000, 0x3ff19999, 0x9999999b}, +{64,0,123,__LINE__, 0x3f6d6434, 0x5a55c316, 0x40100000, 0x00000000, 0x3ff19999, 0x9999999b}, +{64,0,123,__LINE__, 0x3fe64356, 0x17eddc81, 0x00000000, 0x00000000, 0x3ff26666, 0x66666668}, +{64,0,123,__LINE__, 0x3fdf0aea, 0x85d5bf18, 0x3ff00000, 0x00000000, 0x3ff26666, 0x66666668}, +{64,0,123,__LINE__, 0x3fc2ec1a, 0x23e21b78, 0x40000000, 0x00000000, 0x3ff26666, 0x66666668}, +{64,0,123,__LINE__, 0x3f9dd9bf, 0xb5a70ade, 0x40080000, 0x00000000, 0x3ff26666, 0x66666668}, +{64,0,123,__LINE__, 0x3f7174b5, 0x74230428, 0x40100000, 0x00000000, 0x3ff26666, 0x66666668}, +{64,0,123,__LINE__, 0x3fe579eb, 0x607c7c41, 0x00000000, 0x00000000, 0x3ff33333, 0x33333335}, +{64,0,123,__LINE__, 0x3fdfe3f7, 0xc98d2caf, 0x3ff00000, 0x00000000, 0x3ff33333, 0x33333335}, +{64,0,123,__LINE__, 0x3fc4658c, 0x7339f932, 0x40000000, 0x00000000, 0x3ff33333, 0x33333335}, +{64,0,123,__LINE__, 0x3fa0d4e7, 0xb3f0ea6f, 0x40080000, 0x00000000, 0x3ff33333, 0x33333335}, +{64,0,123,__LINE__, 0x3f7492a5, 0xb6657ad7, 0x40100000, 0x00000000, 0x3ff33333, 0x33333335}, +{64,0,123,__LINE__, 0x3fe4ab43, 0x3d10e1be, 0x00000000, 0x00000000, 0x3ff40000, 0x00000002}, +{64,0,123,__LINE__, 0x3fe05706, 0x9774d334, 0x3ff00000, 0x00000000, 0x3ff40000, 0x00000002}, +{64,0,123,__LINE__, 0x3fc5e650, 0x6ea82715, 0x40000000, 0x00000000, 0x3ff40000, 0x00000002}, +{64,0,123,__LINE__, 0x3fa2e068, 0xdde7f41d, 0x40080000, 0x00000000, 0x3ff40000, 0x00000002}, +{64,0,123,__LINE__, 0x3f781279, 0xda92ee2f, 0x40100000, 0x00000000, 0x3ff40000, 0x00000002}, +{64,0,123,__LINE__, 0x3fe3d7be, 0x92bbfbb9, 0x00000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fe0b46a, 0x18ecb9d4, 0x3ff00000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fc76d6b, 0x3ac0d75b, 0x40000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fa50fc1, 0x44526e78, 0x40080000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3f7bfac7, 0x6edc65a7, 0x40100000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{64,0,123,__LINE__, 0x3fe2ffc0, 0x568baaa2, 0x00000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{64,0,123,__LINE__, 0x3fe109ff, 0x2f1fc3ec, 0x3ff00000, 0x00000000, 0x3ff59999, 0x9999999c}, +{64,0,123,__LINE__, 0x3fc8f9dd, 0x5e41b884, 0x40000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{64,0,123,__LINE__, 0x3fa76330, 0x3bb95571, 0x40080000, 0x00000000, 0x3ff59999, 0x9999999c}, +{64,0,123,__LINE__, 0x3f802911, 0xcfdfbbf5, 0x40100000, 0x00000000, 0x3ff59999, 0x9999999c}, +{64,0,123,__LINE__, 0x3fe223ad, 0x59727c9e, 0x00000000, 0x00000000, 0x3ff66666, 0x66666669}, +{64,0,123,__LINE__, 0x3fe157a2, 0xbb6f3312, 0x3ff00000, 0x00000000, 0x3ff66666, 0x66666669}, +{64,0,123,__LINE__, 0x3fca8aa3, 0x5b8ce82e, 0x40000000, 0x00000000, 0x3ff66666, 0x66666669}, +{64,0,123,__LINE__, 0x3fa9dad6, 0x163299ee, 0x40080000, 0x00000000, 0x3ff66666, 0x66666669}, +{64,0,123,__LINE__, 0x3f828f8e, 0x0cde14e4, 0x40100000, 0x00000000, 0x3ff66666, 0x66666669}, +{64,0,123,__LINE__, 0x3fe143ec, 0x1344e613, 0x00000000, 0x00000000, 0x3ff73333, 0x33333336}, +{64,0,123,__LINE__, 0x3fe19d35, 0xcbd98b75, 0x3ff00000, 0x00000000, 0x3ff73333, 0x33333336}, +{64,0,123,__LINE__, 0x3fcc1eb6, 0x4c93d2fc, 0x40000000, 0x00000000, 0x3ff73333, 0x33333336}, +{64,0,123,__LINE__, 0x3fac76b3, 0xcd3060b1, 0x40080000, 0x00000000, 0x3ff73333, 0x33333336}, +{64,0,123,__LINE__, 0x3f853417, 0xedc03cbe, 0x40100000, 0x00000000, 0x3ff73333, 0x33333336}, +{64,0,123,__LINE__, 0x3fe060e4, 0x6ce96517, 0x00000000, 0x00000000, 0x3ff80000, 0x00000003}, +{64,0,123,__LINE__, 0x3fe1da9d, 0xa9d6fc82, 0x3ff00000, 0x00000000, 0x3ff80000, 0x00000003}, +{64,0,123,__LINE__, 0x3fcdb50c, 0x80d5039f, 0x40000000, 0x00000000, 0x3ff80000, 0x00000003}, +{64,0,123,__LINE__, 0x3faf36aa, 0xc0c5b3bb, 0x40080000, 0x00000000, 0x3ff80000, 0x00000003}, +{64,0,123,__LINE__, 0x3f8819e3, 0xff0b0187, 0x40100000, 0x00000000, 0x3ff80000, 0x00000003}, +{64,0,123,__LINE__, 0x3fdef5ff, 0x13b2d492, 0x00000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{64,0,123,__LINE__, 0x3fe20fc3, 0xe6dcf000, 0x3ff00000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{64,0,123,__LINE__, 0x3fcf4c9a, 0x1d0ea964, 0x40000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{64,0,123,__LINE__, 0x3fb10d3e, 0x464b660f, 0x40080000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{64,0,123,__LINE__, 0x3f8b4418, 0x3c555ec0, 0x40100000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{64,0,123,__LINE__, 0x3fdd254f, 0x22227934, 0x00000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{64,0,123,__LINE__, 0x3fe23c96, 0x66824fe1, 0x3ff00000, 0x00000000, 0x3ff99999, 0x9999999d}, +{64,0,123,__LINE__, 0x3fd07228, 0xde234e77, 0x40000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{64,0,123,__LINE__, 0x3fb290e5, 0x794e918a, 0x40080000, 0x00000000, 0x3ff99999, 0x9999999d}, +{64,0,123,__LINE__, 0x3f8eb5c8, 0x72cb3f07, 0x40100000, 0x00000000, 0x3ff99999, 0x9999999d}, +{64,0,123,__LINE__, 0x3fdb508e, 0xeb1aae8c, 0x00000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{64,0,123,__LINE__, 0x3fe26107, 0x663f6e91, 0x3ff00000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{64,0,123,__LINE__, 0x3fd13d92, 0x88e3f0dd, 0x40000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{64,0,123,__LINE__, 0x3fb4260b, 0xedecb2c7, 0x40080000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{64,0,123,__LINE__, 0x3f9138f9, 0x5390ebd3, 0x40100000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{64,0,123,__LINE__, 0x3fd97895, 0x7ce7f2cf, 0x00000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{64,0,123,__LINE__, 0x3fe27d0d, 0x82c5db53, 0x3ff00000, 0x00000000, 0x3ffb3333, 0x33333337}, +{64,0,123,__LINE__, 0x3fd20802, 0xc5da89b2, 0x40000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{64,0,123,__LINE__, 0x3fb5cc62, 0xb77f9eb0, 0x40080000, 0x00000000, 0x3ffb3333, 0x33333337}, +{64,0,123,__LINE__, 0x3f933dbd, 0xc0e89d76, 0x40100000, 0x00000000, 0x3ffb3333, 0x33333337}, +{64,0,123,__LINE__, 0x3fd79e3a, 0x9e138ae6, 0x00000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{64,0,123,__LINE__, 0x3fe290a3, 0xbaedcc46, 0x3ff00000, 0x00000000, 0x3ffc0000, 0x00000004}, +{64,0,123,__LINE__, 0x3fd2d0f2, 0x7ae76c8a, 0x40000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{64,0,123,__LINE__, 0x3fb7838b, 0x1e8c5990, 0x40080000, 0x00000000, 0x3ffc0000, 0x00000004}, +{64,0,123,__LINE__, 0x3f956a95, 0x623295f7, 0x40100000, 0x00000000, 0x3ffc0000, 0x00000004}, +{64,0,123,__LINE__, 0x3fd5c256, 0x5d20c7de, 0x00000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{64,0,123,__LINE__, 0x3fe29bc9, 0x703828ac, 0x3ff00000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{64,0,123,__LINE__, 0x3fd397db, 0x0e06aef0, 0x40000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{64,0,123,__LINE__, 0x3fb94b16, 0xc2085bbd, 0x40080000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{64,0,123,__LINE__, 0x3f97c0d3, 0xe559d7ff, 0x40100000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{64,0,123,__LINE__, 0x3fd3e5c0, 0xa05c4025, 0x00000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{64,0,123,__LINE__, 0x3fe29e82, 0x64e59f5a, 0x3ff00000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{64,0,123,__LINE__, 0x3fd45c36, 0xb655f5cb, 0x40000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{64,0,123,__LINE__, 0x3fbb2287, 0xc3831b75, 0x40080000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{64,0,123,__LINE__, 0x3f9a41bb, 0x0d6129f8, 0x40100000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{64,0,123,__LINE__, 0x3fd20950, 0xb5facde5, 0x00000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{64,0,123,__LINE__, 0x3fe298d6, 0xb7a495db, 0x3ff00000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{64,0,123,__LINE__, 0x3fd51d80, 0xcca30f3c, 0x40000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{64,0,123,__LINE__, 0x3fbd0950, 0xfe1d8095, 0x40080000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{64,0,123,__LINE__, 0x3f9cee79, 0x030dd010, 0x40100000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{64,0,123,__LINE__, 0x3fd02ddc, 0xe4c5e3e8, 0x00000000, 0x00000000, 0x3fff3333, 0x33333338}, +{64,0,123,__LINE__, 0x3fe28ad2, 0xdcd91caf, 0x3ff00000, 0x00000000, 0x3fff3333, 0x33333338}, +{64,0,123,__LINE__, 0x3fd5db36, 0x1b535d7a, 0x40000000, 0x00000000, 0x3fff3333, 0x33333338}, +{64,0,123,__LINE__, 0x3fbefed6, 0x4831e4df, 0x40080000, 0x00000000, 0x3fff3333, 0x33333338}, +{64,0,123,__LINE__, 0x3f9fc826, 0xafa66438, 0x40100000, 0x00000000, 0x3fff3333, 0x33333338}, +0,}; +test_yn(m) {run_vector_1(m,yn_vec,(char *)(yn),"yn","did"); } diff --git a/newlib/libm/test/ynf_vec.c b/newlib/libm/test/ynf_vec.c new file mode 100644 index 000000000..edd0d1718 --- /dev/null +++ b/newlib/libm/test/ynf_vec.c @@ -0,0 +1,199 @@ +#include "test.h" + one_line_type ynf_vec[] = { + +{32,0,123,__LINE__, 0xbfffab42, 0x0311f796, 0x00000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc0299467, 0xe5a18bc5, 0x3ff00000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc07fd9d6, 0x9d06dcbe, 0x40000000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc0e3e68c, 0xdba5efde, 0x40080000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc152a7a4, 0xa6911cc5, 0x40100000, 0x00000000, 0x3fa99999, 0x9999999a}, +{32,0,123,__LINE__, 0xbff88c3d, 0xd3fcf18c, 0x00000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc019d5f7, 0x4698d59d, 0x3ff00000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc05fe944, 0x20ef173e, 0x40000000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc0b3eb55, 0x16c3c852, 0x40080000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc112aaa1, 0x31157cdc, 0x40100000, 0x00000000, 0x3fb99999, 0x9999999a}, +{32,0,123,__LINE__, 0xbff45519, 0x9a9aa247, 0x00000000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0xc0117469, 0x70206678, 0x3ff00000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0xc04c74b1, 0x98b68060, 0x40000000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0xc097a51f, 0x95d29fe9, 0x40080000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0xc0ed874a, 0x4ee11a42, 0x40100000, 0x00000000, 0x3fc33333, 0x33333334}, +{32,0,123,__LINE__, 0xbff14c35, 0x1831ea96, 0x00000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc00a9731, 0x8e2c8b35, 0x3ff00000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc040141d, 0x501a47ac, 0x40000000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc083fe8d, 0x7292ad0c, 0x40080000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0xc0d2b69a, 0x8cc17517, 0x40100000, 0x00000000, 0x3fc99999, 0x9999999a}, +{32,0,123,__LINE__, 0xbfedcf72, 0x3b7d21f4, 0x00000000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0xc005a201, 0xec26d052, 0x3ff00000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0xc034b386, 0x5a4ae742, 0x40000000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0748842, 0x567299a1, 0x40080000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0xc0beb7af, 0xfb519b8b, 0x40100000, 0x00000000, 0x3fd00000, 0x00000000}, +{32,0,123,__LINE__, 0xbfe9d52f, 0x65f30ce4, 0x00000000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0xc0025847, 0x81bd58a7, 0x3ff00000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0xc02cf5ce, 0xe1dc62f3, 0x40000000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0xc067d8cb, 0x48db5d12, 0x40080000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0xc0adb208, 0x4c3057f3, 0x40100000, 0x00000000, 0x3fd33333, 0x33333333}, +{32,0,123,__LINE__, 0xbfe668f8, 0x269cb98f, 0x00000000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0xc00000cf, 0xb133ffa1, 0x3ff00000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0xc0257606, 0xe872c629, 0x40000000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0xc05e2895, 0xa9f5c43e, 0x40080000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0xc0a01291, 0x01db365b, 0x40100000, 0x00000000, 0x3fd66666, 0x66666666}, +{32,0,123,__LINE__, 0xbfe3648d, 0xa2beedbd, 0x00000000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0xbffc7e73, 0xaf480232, 0x3ff00000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0xc02098bf, 0x73611283, 0x40000000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0xc0544cf5, 0x817c371b, 0x40080000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0xc092e6f4, 0xaa7db185, 0x40100000, 0x00000000, 0x3fd99999, 0x99999999}, +{32,0,123,__LINE__, 0xbfe0af8a, 0xa64cf8b1, 0x00000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xbff9c0b2, 0x3c24181f, 0x3ff00000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc01a8746, 0x7c4209f0, 0x40000000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc04cabd6, 0xf82f5c11, 0x40080000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xc087af79, 0xec8448a5, 0x40100000, 0x00000000, 0x3fdccccc, 0xcccccccc}, +{32,0,123,__LINE__, 0xbfdc72fe, 0xb3b7b8a4, 0x00000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0xbff78b26, 0xa2b7c4e0, 0x3ff00000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0xc015c3f6, 0xb77c4957, 0x40000000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0xc045079d, 0x82668b31, 0x40080000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0xc07f345c, 0x68bbdfa6, 0x40100000, 0x00000000, 0x3fdfffff, 0xffffffff}, +{32,0,123,__LINE__, 0xbfd7edc1, 0xa5c74a03, 0x00000000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0xbff5b705, 0x5ba816d7, 0x3ff00000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0xc0123ecb, 0xad53a024, 0x40000000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0xc03fd0ea, 0xb6dd8a79, 0x40080000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0xc075685f, 0x08278fe9, 0x40100000, 0x00000000, 0x3fe19999, 0x99999999}, +{32,0,123,__LINE__, 0xbfd3bea0, 0x2ea8f055, 0x00000000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0xbff42a90, 0x1e049cb9, 0x3ff00000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0xc00f2471, 0x8187e729, 0x40000000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0xc038b10a, 0xea10f6d6, 0x40080000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0xc06e60bb, 0xde8f14ef, 0x40100000, 0x00000000, 0x3fe33333, 0x33333333}, +{32,0,123,__LINE__, 0xbfcfb24a, 0xb3c28954, 0x00000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0xbff2d40d, 0x6feded13, 0x3ff00000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0xc00afc52, 0x771e3074, 0x40000000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0xc03394d7, 0x35dd4674, 0x40080000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0xc0662c1a, 0xb93689c3, 0x40100000, 0x00000000, 0x3fe4cccc, 0xcccccccd}, +{32,0,123,__LINE__, 0xbfc867b5, 0x59ffc712, 0x00000000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0xbff1a6e9, 0x56728d34, 0x3ff00000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0xc007b11b, 0x25df166b, 0x40000000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0xc02fa392, 0xc2273c16, 0x40080000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0xc060944a, 0x3246acfb, 0x40100000, 0x00000000, 0x3fe66666, 0x66666667}, +{32,0,123,__LINE__, 0xbfc18ee0, 0x9734f23a, 0x00000000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0xbff099fc, 0xbe60fd83, 0x3ff00000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0xc00509b8, 0x49b8ad89, 0x40000000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0xc029f9b6, 0x1fd4c7b0, 0x40080000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0xc0595168, 0x5d870243, 0x40100000, 0x00000000, 0x3fe80000, 0x00000001}, +{32,0,123,__LINE__, 0xbfb638ac, 0x9857e734, 0x00000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0xbfef4cf5, 0x04341787, 0x3ff00000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0xc002de53, 0xbdddcf79, 0x40000000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0xc025a119, 0x5d1201de, 0x40080000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0xc053b015, 0x2951f343, 0x40100000, 0x00000000, 0x3fe99999, 0x9999999b}, +{32,0,123,__LINE__, 0xbfa41bfc, 0xc78b842a, 0x00000000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0xbfed8e7b, 0x7f0fdfef, 0x3ff00000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0xc001126f, 0x4890ce20, 0x40000000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0xc0223cc8, 0x6131d662, 0x40080000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0xc04f1de0, 0x4d92a9aa, 0x40100000, 0x00000000, 0x3feb3333, 0x33333335}, +{32,0,123,__LINE__, 0xbfebf0a7, 0x289d61b8, 0x3ff00000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xbfff2272, 0x1b13153c, 0x40000000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xc01f19f8, 0x1c8fc0b3, 0x40080000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xc048f1e5, 0xdc49dd3f, 0x40100000, 0x00000000, 0x3feccccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fa89f50, 0x75b2c5e8, 0x00000000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0xbfea6d54, 0xa3bd64cf, 0x3ff00000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0xbffc9661, 0x1516a1f9, 0x40000000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0xc01ac9e4, 0x0877ba85, 0x40080000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0xc044416c, 0xc8219ad1, 0x40100000, 0x00000000, 0x3fee6666, 0x66666669}, +{32,0,123,__LINE__, 0x3fb69802, 0x26f358eb, 0x00000000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0xbfe8ffb2, 0x07d66b92, 0x3ff00000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0xbffa6932, 0x2a45a11f, 0x40000000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0xc017493b, 0xe94ad3ab, 0x40080000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0xc040a3a3, 0x5da5f1b7, 0x40100000, 0x00000000, 0x3ff00000, 0x00000001}, +{32,0,123,__LINE__, 0x3fc028e5, 0x7ba671b1, 0x00000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0xbfe7a3ee, 0x4fd1a036, 0x3ff00000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0xbff888db, 0x13daece2, 0x40000000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0xc0146946, 0xaa74c5f3, 0x40080000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0xc03ba020, 0x66d6d9af, 0x40100000, 0x00000000, 0x3ff0cccc, 0xccccccce}, +{32,0,123,__LINE__, 0x3fc4c1c3, 0x8a97c170, 0x00000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0xbfe656fe, 0xd4e6087e, 0x3ff00000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0xbff6e74e, 0xa73b5cfc, 0x40000000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0xc0120767, 0xa624d948, 0x40080000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0xc0372746, 0xf81ba105, 0x40100000, 0x00000000, 0x3ff19999, 0x9999999b}, +{32,0,123,__LINE__, 0x3fc91951, 0xdc7f9b41, 0x00000000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0xbfe51674, 0x19440e82, 0x3ff00000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0xbff57978, 0xed5bd37f, 0x40000000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0xc010099a, 0xa448bba8, 0x40080000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0xc033938b, 0x31301627, 0x40100000, 0x00000000, 0x3ff26666, 0x66666668}, +{32,0,123,__LINE__, 0x3fcd31d7, 0x198f1810, 0x00000000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0xbfe3e059, 0x66ac1181, 0x3ff00000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0xbff43685, 0x636bf197, 0x40000000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0xc00cb81d, 0x4c08e398, 0x40080000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0xc030afa9, 0xf94ecf24, 0x40100000, 0x00000000, 0x3ff33333, 0x33333335}, +{32,0,123,__LINE__, 0x3fd0869f, 0xf937fa16, 0x00000000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0xbfe2b31c, 0x35470a48, 0x3ff00000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0xbff31758, 0x28ed39f1, 0x40000000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0xc009def9, 0x3429cd53, 0x40080000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0xc02ca8a6, 0x6cae1bef, 0x40100000, 0x00000000, 0x3ff40000, 0x00000002}, +{32,0,123,__LINE__, 0x3fd25698, 0x650b1f9a, 0x00000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xbfe18d79, 0x3faf4d46, 0x3ff00000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xbff2162a, 0xc0672ab8, 0x40000000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xc0076ff7, 0x26da4702, 0x40080000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0xc028c844, 0x238c8047, 0x40100000, 0x00000000, 0x3ff4cccc, 0xcccccccf}, +{32,0,123,__LINE__, 0x3fd4098a, 0x03bf8bf4, 0x00000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0xbfe06e6d, 0xc954f277, 0x3ff00000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0xbff12e42, 0x0c971b54, 0x40000000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0xc0055854, 0xa051bc74, 0x40080000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0xc02591b2, 0x37ab7c30, 0x40100000, 0x00000000, 0x3ff59999, 0x9999999c}, +{32,0,123,__LINE__, 0x3fd5a012, 0xe4dcec98, 0x00000000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0xbfdeaa58, 0x1213a9a4, 0x3ff00000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0xbff05bb6, 0x76876572, 0x40000000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0xc0038927, 0x5decadfe, 0x40080000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0xc022e2ea, 0x3a638496, 0x40100000, 0x00000000, 0x3ff66666, 0x66666669}, +{32,0,123,__LINE__, 0x3fd71abe, 0xc53f5eb2, 0x00000000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0xbfdc8223, 0xe8af2ee9, 0x3ff00000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0xbfef3692, 0xa1fe04a8, 0x40000000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0xc001f678, 0xe9ce40a6, 0x40080000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0xc020a1a1, 0x28d8cc82, 0x40100000, 0x00000000, 0x3ff73333, 0x33333336}, +{32,0,123,__LINE__, 0x3fd87a0b, 0x0d06836c, 0x00000000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0xbfda6343, 0xb92d8b07, 0x3ff00000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0xbfedd488, 0x01f6f3b9, 0x40000000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0xc000969c, 0xdf7ef118, 0x40080000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0xc01d72a8, 0xbebf03b5, 0x40100000, 0x00000000, 0x3ff80000, 0x00000003}, +{32,0,123,__LINE__, 0x3fd9be6a, 0x232d2a1a, 0x00000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0xbfd84cf8, 0xe7ade6ca, 0x3ff00000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0xbfec8cbc, 0xe0dd7c84, 0x40000000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0xbffec362, 0xe83a924e, 0x40080000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0xc01a33bf, 0xd946495c, 0x40100000, 0x00000000, 0x3ff8cccc, 0xccccccd0}, +{32,0,123,__LINE__, 0x3fdae846, 0x369db908, 0x00000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfd63eb7, 0xd493af10, 0x3ff00000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0xbfeb5b56, 0x002b29ec, 0x40000000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0xbffca27d, 0x8b11089e, 0x40080000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0xc0176cea, 0xf25a92d4, 0x40100000, 0x00000000, 0x3ff99999, 0x9999999d}, +{32,0,123,__LINE__, 0x3fdbf803, 0x95addba6, 0x00000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0xbfd4381f, 0xd07821fc, 0x3ff00000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0xbfea3d0d, 0x50f130f6, 0x40000000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0xbffabfd9, 0xa44c2351, 0x40080000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0xc01509af, 0xd3f8859b, 0x40100000, 0x00000000, 0x3ffa6666, 0x6666666a}, +{32,0,123,__LINE__, 0x3fdcee02, 0xa7ac1a57, 0x00000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0xbfd238f4, 0x6db73c42, 0x3ff00000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0xbfe92f18, 0xa36f036f, 0x40000000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0xbff91294, 0x95c98040, 0x40080000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0xc012f990, 0xf743eb12, 0x40100000, 0x00000000, 0x3ffb3333, 0x33333337}, +{32,0,123,__LINE__, 0x3fddcaa1, 0x9824527c, 0x00000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0xbfd04117, 0xe92d38c7, 0x3ff00000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0xbfe82f15, 0x515092d3, 0x40000000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0xbff79340, 0x197e7e29, 0x40080000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0xc0112f2f, 0xb4d4a2eb, 0x40100000, 0x00000000, 0x3ffc0000, 0x00000004}, +{32,0,123,__LINE__, 0x3fde8e3d, 0xc0648706, 0x00000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfcca10c, 0xe708dff2, 0x3ff00000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbfe73af7, 0xcb0a0ff0, 0x40000000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xbff63b9c, 0x612a1225, 0x40080000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0xc00f3f46, 0xaf2e44e8, 0x40100000, 0x00000000, 0x3ffccccc, 0xccccccd1}, +{32,0,123,__LINE__, 0x3fdf3934, 0xd9602e2a, 0x00000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0xbfc8cea4, 0x60c507ac, 0x3ff00000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0xbfe650fe, 0x33d095b1, 0x40000000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0xbff50660, 0xdc5a2a5e, 0x40080000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0xc00c83ee, 0xd1748df8, 0x40100000, 0x00000000, 0x3ffd9999, 0x9999999e}, +{32,0,123,__LINE__, 0x3fdfcbe5, 0xfe2a7986, 0x00000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfc50b3f, 0x93b80a84, 0x3ff00000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0xbfe56fa5, 0x69532494, 0x40000000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0xbff3ef10, 0x468232a6, 0x40080000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0xc00a1d8e, 0xa9356bdc, 0x40100000, 0x00000000, 0x3ffe6666, 0x6666666b}, +{32,0,123,__LINE__, 0x3fe02359, 0x42e057b3, 0x00000000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0xbfc15746, 0xfb241dc4, 0x3ff00000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0xbfe4959f, 0xf96ce29c, 0x40000000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0xbff2f1d5, 0x75c2f518, 0x40080000, 0x00000000, 0x3fff3333, 0x33333338}, +{32,0,123,__LINE__, 0xc007ffe0, 0x680bca3f, 0x40100000, 0x00000000, 0x3fff3333, 0x33333338}, +0,}; +test_ynf(m) {run_vector_1(m,ynf_vec,(char *)(ynf),"ynf","fif"); } |